webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Functions | Variables
sctp_pcb.c File Reference
#include <netinet/sctp_os.h>
#include <netinet/sctp_var.h>
#include <netinet/sctp_sysctl.h>
#include <netinet/sctp_pcb.h>
#include <netinet/sctputil.h>
#include <netinet/sctp.h>
#include <netinet/sctp_header.h>
#include <netinet/sctp_asconf.h>
#include <netinet/sctp_output.h>
#include <netinet/sctp_timer.h>
#include <netinet/sctp_bsd_addr.h>

Functions

void sctp_fill_pcbinfo (struct sctp_pcbinfo *spcb)
 
struct sctp_vrfsctp_allocate_vrf (int vrf_id)
 
struct sctp_ifnsctp_find_ifn (void *ifn, uint32_t ifn_index)
 
struct sctp_vrfsctp_find_vrf (uint32_t vrf_id)
 
void sctp_free_vrf (struct sctp_vrf *vrf)
 
void sctp_free_ifn (struct sctp_ifn *sctp_ifnp)
 
void sctp_update_ifn_mtu (uint32_t ifn_index, uint32_t mtu)
 
void sctp_free_ifa (struct sctp_ifa *sctp_ifap)
 
void sctp_mark_ifa_addr_down (uint32_t vrf_id, struct sockaddr *addr, const char *if_name, uint32_t ifn_index)
 
void sctp_mark_ifa_addr_up (uint32_t vrf_id, struct sockaddr *addr, const char *if_name, uint32_t ifn_index)
 
struct sctp_ifasctp_add_addr_to_vrf (uint32_t vrf_id, void *ifn, uint32_t ifn_index, uint32_t ifn_type, const char *if_name, void *ifa, struct sockaddr *addr, uint32_t ifa_flags, int dynamic_add)
 
void sctp_del_addr_from_vrf (uint32_t vrf_id, struct sockaddr *addr, uint32_t ifn_index, const char *if_name)
 
struct sctp_tcbsctp_findassociation_ep_addr (struct sctp_inpcb **inp_p, struct sockaddr *remote, struct sctp_nets **netp, struct sockaddr *local, struct sctp_tcb *locked_tcb)
 
struct sctp_tcbsctp_findasoc_ep_asocid_locked (struct sctp_inpcb *inp, sctp_assoc_t asoc_id, int want_lock)
 
struct sctp_tcbsctp_findassociation_ep_asocid (struct sctp_inpcb *inp, sctp_assoc_t asoc_id, int want_lock)
 
int sctp_swap_inpcb_for_listen (struct sctp_inpcb *inp)
 
struct sctp_inpcbsctp_pcb_findep (struct sockaddr *nam, int find_tcp_pool, int have_lock, uint32_t vrf_id)
 
struct sctp_tcbsctp_findassociation_addr_sa (struct sockaddr *from, struct sockaddr *to, struct sctp_inpcb **inp_p, struct sctp_nets **netp, int find_tcp_pool, uint32_t vrf_id)
 
struct sctp_tcbsctp_findassociation_addr (struct mbuf *m, int offset, struct sockaddr *src, struct sockaddr *dst, struct sctphdr *sh, struct sctp_chunkhdr *ch, struct sctp_inpcb **inp_p, struct sctp_nets **netp, uint32_t vrf_id)
 
struct sctp_tcbsctp_findassociation_ep_asconf (struct mbuf *m, int offset, struct sockaddr *dst, struct sctphdr *sh, struct sctp_inpcb **inp_p, struct sctp_nets **netp, uint32_t vrf_id)
 
int sctp_inpcb_alloc (struct socket *so, uint32_t vrf_id)
 
void sctp_move_pcb_and_assoc (struct sctp_inpcb *old_inp, struct sctp_inpcb *new_inp, struct sctp_tcb *stcb)
 
void in6_sin6_2_sin (struct sockaddr_in *, struct sockaddr_in6 *sin6)
 
int sctp_inpcb_bind (struct socket *so, struct sockaddr *addr, struct sctp_ifa *sctp_ifap, struct proc *p)
 
void sctp_inpcb_free (struct sctp_inpcb *inp, int immediate, int from)
 
struct sctp_netssctp_findnet (struct sctp_tcb *stcb, struct sockaddr *addr)
 
int sctp_is_address_on_local_host (struct sockaddr *addr, uint32_t vrf_id)
 
int sctp_add_remote_addr (struct sctp_tcb *stcb, struct sockaddr *newaddr, struct sctp_nets **netp, uint16_t port, int set_scope, int from)
 
struct sctp_tcbsctp_aloc_assoc (struct sctp_inpcb *inp, struct sockaddr *firstaddr, int *error, uint32_t override_tag, uint32_t vrf_id, uint16_t o_streams, uint16_t port, struct proc *p)
 
void sctp_remove_net (struct sctp_tcb *stcb, struct sctp_nets *net)
 
int sctp_del_remote_addr (struct sctp_tcb *stcb, struct sockaddr *remaddr)
 
void sctp_delete_from_timewait (uint32_t tag, uint16_t lport, uint16_t rport)
 
int sctp_is_in_timewait (uint32_t tag, uint16_t lport, uint16_t rport)
 
void sctp_add_vtag_to_timewait (uint32_t tag, uint32_t time, uint16_t lport, uint16_t rport)
 
void sctp_clean_up_stream (struct sctp_tcb *stcb, struct sctp_readhead *rh)
 
int sctp_free_assoc (struct sctp_inpcb *inp, struct sctp_tcb *stcb, int from_inpcbfree, int from_location)
 
int sctp_destination_is_reachable (struct sctp_tcb *stcb, struct sockaddr *destaddr)
 
void sctp_add_local_addr_ep (struct sctp_inpcb *inp, struct sctp_ifa *ifa, uint32_t action)
 
void sctp_del_local_addr_ep (struct sctp_inpcb *inp, struct sctp_ifa *ifa)
 
void sctp_add_local_addr_restricted (struct sctp_tcb *stcb, struct sctp_ifa *ifa)
 
void sctp_del_local_addr_restricted (struct sctp_tcb *stcb, struct sctp_ifa *ifa)
 
void sctp_pcb_init ()
 
void sctp_pcb_finish (void)
 
int sctp_load_addresses_from_init (struct sctp_tcb *stcb, struct mbuf *m, int offset, int limit, struct sockaddr *src, struct sockaddr *dst, struct sockaddr *altsa, uint16_t port)
 
int sctp_set_primary_addr (struct sctp_tcb *stcb, struct sockaddr *sa, struct sctp_nets *net)
 
int sctp_is_vtag_good (uint32_t tag, uint16_t lport, uint16_t rport, struct timeval *now)
 
void sctp_drain ()
 
int sctp_initiate_iterator (inp_func inpf, asoc_func af, inp_func inpe, uint32_t pcb_state, uint32_t pcb_features, uint32_t asoc_state, void *argp, uint32_t argi, end_func ef, struct sctp_inpcb *s_inp, uint8_t chunk_output_off)
 

Variables

struct sctp_base_info system_base_info
 

Function Documentation

◆ in6_sin6_2_sin()

void in6_sin6_2_sin ( struct sockaddr_in *  ,
struct sockaddr_in6 *  sin6 
)

◆ sctp_add_addr_to_vrf()

struct sctp_ifa* sctp_add_addr_to_vrf ( uint32_t  vrf_id,
void ifn,
uint32_t  ifn_index,
uint32_t  ifn_type,
const char *  if_name,
void ifa,
struct sockaddr *  addr,
uint32_t  ifa_flags,
int  dynamic_add 
)

◆ sctp_add_local_addr_ep()

void sctp_add_local_addr_ep ( struct sctp_inpcb inp,
struct sctp_ifa ifa,
uint32_t  action 
)

◆ sctp_add_local_addr_restricted()

void sctp_add_local_addr_restricted ( struct sctp_tcb stcb,
struct sctp_ifa ifa 
)

◆ sctp_add_remote_addr()

int sctp_add_remote_addr ( struct sctp_tcb stcb,
struct sockaddr *  newaddr,
struct sctp_nets **  netp,
uint16_t  port,
int  set_scope,
int  from 
)

◆ sctp_add_vtag_to_timewait()

void sctp_add_vtag_to_timewait ( uint32_t  tag,
uint32_t  time,
uint16_t  lport,
uint16_t  rport 
)

◆ sctp_allocate_vrf()

struct sctp_vrf* sctp_allocate_vrf ( int  vrf_id)

◆ sctp_aloc_assoc()

struct sctp_tcb* sctp_aloc_assoc ( struct sctp_inpcb inp,
struct sockaddr *  firstaddr,
int *  error,
uint32_t  override_tag,
uint32_t  vrf_id,
uint16_t  o_streams,
uint16_t  port,
struct proc p 
)

◆ sctp_clean_up_stream()

void sctp_clean_up_stream ( struct sctp_tcb stcb,
struct sctp_readhead *  rh 
)

◆ sctp_del_addr_from_vrf()

void sctp_del_addr_from_vrf ( uint32_t  vrf_id,
struct sockaddr *  addr,
uint32_t  ifn_index,
const char *  if_name 
)

◆ sctp_del_local_addr_ep()

void sctp_del_local_addr_ep ( struct sctp_inpcb inp,
struct sctp_ifa ifa 
)

◆ sctp_del_local_addr_restricted()

void sctp_del_local_addr_restricted ( struct sctp_tcb stcb,
struct sctp_ifa ifa 
)

◆ sctp_del_remote_addr()

int sctp_del_remote_addr ( struct sctp_tcb stcb,
struct sockaddr *  remaddr 
)

◆ sctp_delete_from_timewait()

void sctp_delete_from_timewait ( uint32_t  tag,
uint16_t  lport,
uint16_t  rport 
)

◆ sctp_destination_is_reachable()

int sctp_destination_is_reachable ( struct sctp_tcb stcb,
struct sockaddr *  destaddr 
)

◆ sctp_drain()

void sctp_drain ( )

◆ sctp_fill_pcbinfo()

void sctp_fill_pcbinfo ( struct sctp_pcbinfo spcb)

◆ sctp_find_ifn()

struct sctp_ifn* sctp_find_ifn ( void ifn,
uint32_t  ifn_index 
)

◆ sctp_find_vrf()

struct sctp_vrf* sctp_find_vrf ( uint32_t  vrf_id)

◆ sctp_findasoc_ep_asocid_locked()

struct sctp_tcb* sctp_findasoc_ep_asocid_locked ( struct sctp_inpcb inp,
sctp_assoc_t  asoc_id,
int  want_lock 
)

◆ sctp_findassociation_addr()

struct sctp_tcb* sctp_findassociation_addr ( struct mbuf m,
int  offset,
struct sockaddr *  src,
struct sockaddr *  dst,
struct sctphdr sh,
struct sctp_chunkhdr ch,
struct sctp_inpcb **  inp_p,
struct sctp_nets **  netp,
uint32_t  vrf_id 
)

◆ sctp_findassociation_addr_sa()

struct sctp_tcb* sctp_findassociation_addr_sa ( struct sockaddr *  from,
struct sockaddr *  to,
struct sctp_inpcb **  inp_p,
struct sctp_nets **  netp,
int  find_tcp_pool,
uint32_t  vrf_id 
)

◆ sctp_findassociation_ep_addr()

struct sctp_tcb* sctp_findassociation_ep_addr ( struct sctp_inpcb **  inp_p,
struct sockaddr *  remote,
struct sctp_nets **  netp,
struct sockaddr *  local,
struct sctp_tcb locked_tcb 
)

◆ sctp_findassociation_ep_asconf()

struct sctp_tcb* sctp_findassociation_ep_asconf ( struct mbuf m,
int  offset,
struct sockaddr *  dst,
struct sctphdr sh,
struct sctp_inpcb **  inp_p,
struct sctp_nets **  netp,
uint32_t  vrf_id 
)

◆ sctp_findassociation_ep_asocid()

struct sctp_tcb* sctp_findassociation_ep_asocid ( struct sctp_inpcb inp,
sctp_assoc_t  asoc_id,
int  want_lock 
)

◆ sctp_findnet()

struct sctp_nets* sctp_findnet ( struct sctp_tcb stcb,
struct sockaddr *  addr 
)

◆ sctp_free_assoc()

int sctp_free_assoc ( struct sctp_inpcb inp,
struct sctp_tcb stcb,
int  from_inpcbfree,
int  from_location 
)

◆ sctp_free_ifa()

void sctp_free_ifa ( struct sctp_ifa sctp_ifap)

◆ sctp_free_ifn()

void sctp_free_ifn ( struct sctp_ifn sctp_ifnp)

◆ sctp_free_vrf()

void sctp_free_vrf ( struct sctp_vrf vrf)

◆ sctp_initiate_iterator()

int sctp_initiate_iterator ( inp_func  inpf,
asoc_func  af,
inp_func  inpe,
uint32_t  pcb_state,
uint32_t  pcb_features,
uint32_t  asoc_state,
void argp,
uint32_t  argi,
end_func  ef,
struct sctp_inpcb s_inp,
uint8_t  chunk_output_off 
)

◆ sctp_inpcb_alloc()

int sctp_inpcb_alloc ( struct socket so,
uint32_t  vrf_id 
)

◆ sctp_inpcb_bind()

int sctp_inpcb_bind ( struct socket so,
struct sockaddr *  addr,
struct sctp_ifa sctp_ifap,
struct proc p 
)

◆ sctp_inpcb_free()

void sctp_inpcb_free ( struct sctp_inpcb inp,
int  immediate,
int  from 
)

◆ sctp_is_address_on_local_host()

int sctp_is_address_on_local_host ( struct sockaddr *  addr,
uint32_t  vrf_id 
)

◆ sctp_is_in_timewait()

int sctp_is_in_timewait ( uint32_t  tag,
uint16_t  lport,
uint16_t  rport 
)

◆ sctp_is_vtag_good()

int sctp_is_vtag_good ( uint32_t  tag,
uint16_t  lport,
uint16_t  rport,
struct timeval *  now 
)

◆ sctp_load_addresses_from_init()

int sctp_load_addresses_from_init ( struct sctp_tcb stcb,
struct mbuf m,
int  offset,
int  limit,
struct sockaddr *  src,
struct sockaddr *  dst,
struct sockaddr *  altsa,
uint16_t  port 
)

◆ sctp_mark_ifa_addr_down()

void sctp_mark_ifa_addr_down ( uint32_t  vrf_id,
struct sockaddr *  addr,
const char *  if_name,
uint32_t  ifn_index 
)

◆ sctp_mark_ifa_addr_up()

void sctp_mark_ifa_addr_up ( uint32_t  vrf_id,
struct sockaddr *  addr,
const char *  if_name,
uint32_t  ifn_index 
)

◆ sctp_move_pcb_and_assoc()

void sctp_move_pcb_and_assoc ( struct sctp_inpcb old_inp,
struct sctp_inpcb new_inp,
struct sctp_tcb stcb 
)

◆ sctp_pcb_findep()

struct sctp_inpcb* sctp_pcb_findep ( struct sockaddr *  nam,
int  find_tcp_pool,
int  have_lock,
uint32_t  vrf_id 
)

◆ sctp_pcb_finish()

void sctp_pcb_finish ( void  )

◆ sctp_pcb_init()

void sctp_pcb_init ( )

◆ sctp_remove_net()

void sctp_remove_net ( struct sctp_tcb stcb,
struct sctp_nets net 
)

◆ sctp_set_primary_addr()

int sctp_set_primary_addr ( struct sctp_tcb stcb,
struct sockaddr *  sa,
struct sctp_nets net 
)

◆ sctp_swap_inpcb_for_listen()

int sctp_swap_inpcb_for_listen ( struct sctp_inpcb inp)

◆ sctp_update_ifn_mtu()

void sctp_update_ifn_mtu ( uint32_t  ifn_index,
uint32_t  mtu 
)

Variable Documentation

◆ system_base_info

struct sctp_base_info system_base_info