FreeBSD kernel IPv4 code
|
#include <sys/cdefs.h>
Go to the source code of this file.
Macros | |
#define | _NETINET_SCTP_ASCONF_H_ |
#define _NETINET_SCTP_ASCONF_H_ |
Definition at line 39 of file sctp_asconf.h.
__FBSDID | ( | "$FreeBSD$" | ) |
uint32_t sctp_addr_mgmt_ep_sa | ( | struct sctp_inpcb * | inp, |
struct sockaddr * | sa, | ||
uint32_t | type, | ||
uint32_t | vrf_id | ||
) |
Definition at line 3160 of file sctp_asconf.c.
References sctp_laddr::action, sctp_asconf_iterator::cnt, sctp_ifa::ifa, sctp_laddr::ifa, sctp_inpcb::laddr_count, sctp_asconf_iterator::list_of_work, sctp_ifa::refcount, SCTP_ADD_IP_ADDRESS, sctp_add_local_addr_ep(), sctp_inpcb::sctp_addr_list, SCTP_ADDR_NOT_LOCKED, sctp_asconf_iterator_end(), sctp_asconf_iterator_ep(), sctp_asconf_iterator_ep_end(), sctp_asconf_iterator_stcb(), SCTP_ASOC_ANY_STATE, sctp_inpcb::sctp_asoc_list, SCTP_BASE_INFO, SCTP_DEL_IP_ADDRESS, sctp_del_local_addr_ep(), sctp_find_ifa_by_addr(), sctp_find_ifa_in_ep(), SCTP_FREE, SCTP_FROM_SCTP_ASCONF, SCTP_INCR_LADDR_COUNT, sctp_initiate_iterator(), SCTP_LTRACE_ERR_RET, SCTP_MALLOC, SCTP_PCB_ANY_FEATURES, SCTP_PCB_ANY_FLAGS, SCTP_PRINTF, and SCTP_ZONE_GET.
Referenced by sctp_bindx_add_address(), and sctp_bindx_delete_address().
void sctp_asconf_cleanup | ( | struct sctp_tcb * | stcb | ) |
Definition at line 939 of file sctp_asconf.c.
References sctp_association::asconf_seq_out, sctp_association::asconf_seq_out_acked, sctp_tcb::asoc, sctp_tcb::sctp_ep, SCTP_FROM_SCTP_ASCONF, SCTP_LOC_2, sctp_timer_stop(), SCTP_TIMER_TYPE_ASCONF, and sctp_toss_old_asconf().
Referenced by sctp_asconf_timer(), and sctp_process_unrecog_chunk().
void sctp_asconf_iterator_end | ( | void * | ptr, |
uint32_t | val | ||
) |
Definition at line 2263 of file sctp_asconf.c.
References sctp_laddr::action, sctp_ifa::ifa, sctp_laddr::ifa, sctp_asconf_iterator::list_of_work, sctp_ifa::localifa_flags, SCTP_ADD_IP_ADDRESS, SCTP_BASE_INFO, SCTP_DECR_LADDR_COUNT, SCTP_FREE, sctp_free_ifa(), and SCTP_ZONE_FREE.
Referenced by sctp_addr_mgmt_ep_sa(), and sctp_handle_addr_wq().
int sctp_asconf_iterator_ep | ( | struct sctp_inpcb * | inp, |
void * | ptr, | ||
uint32_t | val | ||
) |
Definition at line 2024 of file sctp_asconf.c.
References sctp_ifa::address, sctp_asconf_iterator::cnt, sctp_ifa::ifa, sctp_laddr::ifa, sctp_asconf_iterator::list_of_work, sctp_sockstore::sa, sctp_inpcb::sctp_flags, SCTP_IPV6_V6ONLY, and SCTP_PCB_FLAGS_BOUND_V6.
Referenced by sctp_addr_mgmt_ep_sa(), and sctp_handle_addr_wq().
void sctp_asconf_iterator_stcb | ( | struct sctp_inpcb * | inp, |
struct sctp_tcb * | stcb, | ||
void * | ptr, | ||
uint32_t | type | ||
) |
Definition at line 3257 of file sctp_asconf.c.
References sctp_net_route::_l_addr, sctp_laddr::action, sctp_ifa::address, sctp_asconf_addr_param::addrp, sctp_asconf_addr::ap, sctp_asconf_addr_param::aph, sctp_asconf_tag_param::aph, sctp_association::asconf_queue, sctp_tcb::asoc, sctp_inpcb::def_vrf_id, sctp_laddr::ifa, sctp_asconf_addr::ifa, sctp_ifn::ifalist, sctp_vrf::ifnlist, IN4_ISLOOPBACK_ADDRESS, IN4_ISPRIVATE_ADDRESS, sctp_inpcb::inp, inpcb::inp_cred, sctp_inpcb::ip_inp, sctp_asconf_tag_param::local_vtag, sctp_ifa::localifa_flags, sctp_association::my_vtag, next, sctp_paramhdr::param_length, sctp_paramhdr::param_type, sctp_association::peer_vtag, sctp_ipv6addr_param::ph, sctp_asconf_paramhdr::ph, prison_check_ip4(), sctp_asconf_tag_param::remote_vtag, sctp_nets::ro, sctp_sockstore::sa, SCTP_ADD_IP_ADDRESS, sctp_inpcb::sctp_addr_list, SCTP_ADDR_NOT_LOCKED, sctp_asconf_queue_mgmt(), SCTP_BEING_DELETED, SCTP_DEBUG_ASCONF1, SCTP_DEL_IP_ADDRESS, sctp_tcb::sctp_ep, sctp_find_vrf(), sctp_inpcb::sctp_flags, SCTP_FREE, SCTP_IPI_ADDR_RLOCK, SCTP_IPI_ADDR_RUNLOCK, SCTP_IPV4_ADDRESS, SCTP_IPV6_ADDRESS, SCTP_MALLOC, SCTP_NAT_VTAGS, SCTP_PCB_FLAGS_BOUNDALL, sctp_send_asconf(), SCTPDBG, sctp_asconf_addr::sent, sctp_sockstore::sin, sctp_sockstore::sin6, sockaddr_in::sin_addr, sctp_asconf_addr::special_del, and sctp_ifn::vrf.
Referenced by sctp_handle_nat_missing_state().
Definition at line 993 of file sctp_asconf.c.
References sctp_net_route::_l_addr, sctp_tcb::asoc, sctp_association::deleted_primary, sctp_nets::dest_state, sctp_association::num_send_timers_up, sctp_association::primary_destination, sctp_nets::ro, sctp_sockstore::sa, SCTP_ADDR_UNCONFIRMED, sctp_chunk_output(), SCTP_DEBUG_ASCONF1, sctp_tcb::sctp_ep, SCTP_FROM_SCTP_ASCONF, SCTP_INP_DECR_REF, SCTP_LOC_3, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED, sctp_t3rxt_timer(), SCTP_TCB_LOCK_ASSERT, sctp_timer_start(), sctp_timer_stop(), SCTP_TIMER_TYPE_SEND, SCTPDBG, SCTPDBG_ADDR, sctp_association::sent_queue, sctp_association::sent_queue_cnt, and sctp_tmit_chunk::whoTo.
Referenced by sctp_handle_heartbeat_ack(), and sctp_process_asconf_set_primary().
void sctp_check_address_list | ( | struct sctp_tcb * | stcb, |
struct mbuf * | m, | ||
int | offset, | ||
int | length, | ||
struct sockaddr * | init_addr, | ||
uint16_t | local_scope, | ||
uint16_t | site_scope, | ||
uint16_t | ipv4_scope, | ||
uint16_t | loopback_scope | ||
) |
Definition at line 3132 of file sctp_asconf.c.
References sctp_check_address_list_all(), sctp_check_address_list_ep(), sctp_tcb::sctp_ep, sctp_inpcb::sctp_flags, sctp_is_feature_on, SCTP_PCB_FLAGS_BOUNDALL, SCTP_PCB_FLAGS_DO_ASCONF, and sctp_process_initack_addresses().
Referenced by sctp_process_cookie_new().
struct mbuf * sctp_compose_asconf | ( | struct sctp_tcb * | stcb, |
int * | retlen, | ||
int | addr_locked | ||
) |
Definition at line 2554 of file sctp_asconf.c.
References sctp_ipv6addr_param::addr, sctp_asconf_addr_param::addrp, sctp_asconf_addr::ap, sctp_asconf_addr_param::aph, sctp_association::asconf_queue, sctp_association::asconf_seq_out, sctp_tcb::asoc, sctp_asconf_chunk::ch, sctp_chunkhdr::chunk_flags, sctp_chunkhdr::chunk_length, sctp_chunkhdr::chunk_type, sctp_asconf_paramhdr::correlation_id, next, sctp_paramhdr::param_length, sctp_paramhdr::param_type, sctp_ipv6addr_param::ph, sctp_asconf_paramhdr::ph, SCTP_ASCONF, SCTP_BUF_LEN, SCTP_BUF_NEXT, SCTP_DEBUG_ASCONF1, SCTP_DEL_IP_ADDRESS, sctp_tcb::sctp_ep, sctp_find_valid_localaddr(), sctp_find_valid_localaddr_ep(), sctp_inpcb::sctp_flags, sctp_get_mbuf_for_msg(), SCTP_IPV4_ADDRESS, SCTP_IPV6_ADDRESS, sctp_m_freem, SCTP_PCB_FLAGS_BOUNDALL, SCTP_SIZE32, SCTPDBG, sctp_asconf_addr::sent, sctp_asconf_chunk::serial_number, sctp_association::smallest_mtu, and sctp_asconf_addr::special_del.
Referenced by sctp_send_asconf().
void sctp_handle_asconf | ( | struct mbuf * | m, |
unsigned int | offset, | ||
struct sockaddr * | src, | ||
struct sctp_asconf_chunk * | cp, | ||
struct sctp_tcb * | stcb, | ||
int | first | ||
) |
Definition at line 606 of file sctp_asconf.c.
References sctp_association::asconf_ack_sent, sctp_association::asconf_seq_in, sctp_tcb::asoc, sctp_asconf_chunk::ch, sctp_asconf_ack_chunk::ch, sctp_chunkhdr::chunk_flags, sctp_chunkhdr::chunk_length, sctp_chunkhdr::chunk_type, sctp_asconf_ack::data, sctp_association::last_control_chunk_from, sctp_asconf_ack::last_sent_to, sctp_asconf_ack::len, next, sctp_paramhdr::param_length, sctp_paramhdr::param_type, sctp_ipv6addr_param::ph, sctp_asconf_paramhdr::ph, SCTP_ADD_IP_ADDRESS, SCTP_ASCONF_ACK, SCTP_BASE_INFO, SCTP_BASE_SYSCTL, SCTP_BUF_LEN, SCTP_BUF_NEXT, SCTP_DEBUG_ASCONF1, SCTP_DEL_IP_ADDRESS, SCTP_ERROR_CAUSE_IND, sctp_findnet(), sctp_get_mbuf_for_msg(), sctp_m_freem, sctp_m_getptr(), SCTP_NAT_VTAGS, SCTP_PARAM_BUFFER_SIZE, sctp_process_asconf_add_ip(), sctp_process_asconf_delete_ip(), sctp_process_asconf_set_primary(), SCTP_SET_PRIM_ADDR, SCTP_SIZE32, SCTP_SUCCESS_REPORT, SCTP_TSN_GE, SCTP_ULP_ADAPTATION, SCTP_ZONE_FREE, SCTP_ZONE_GET, SCTPDBG, SCTPDBG_ADDR, sctp_asconf_chunk::serial_number, sctp_asconf_ack_chunk::serial_number, and sctp_asconf_ack::serial_number.
Referenced by sctp_process_control().
void sctp_handle_asconf_ack | ( | struct mbuf * | m, |
int | offset, | ||
struct sctp_asconf_ack_chunk * | cp, | ||
struct sctp_tcb * | stcb, | ||
struct sctp_nets * | net, | ||
int * | abort_no_unlock | ||
) |
Definition at line 1662 of file sctp_asconf.c.
References sctp_asconf_addr::ap, sctp_asconf_addr_param::aph, sctp_association::asconf_queue, sctp_association::asconf_seq_out, sctp_association::asconf_seq_out_acked, sctp_tcb::asoc, sctp_asconf_ack_chunk::ch, sctp_chunkhdr::chunk_length, sctp_asconf_paramhdr::correlation_id, id, next, sctp_paramhdr::param_length, sctp_paramhdr::param_type, sctp_asconf_paramhdr::ph, sctp_abort_an_association(), SCTP_ADDR_NOT_LOCKED, sctp_asconf_ack_clear(), sctp_asconf_find_param(), sctp_asconf_process_error(), sctp_asconf_process_param_ack(), SCTP_CAUSE_PROTOCOL_VIOLATION, SCTP_DEBUG_ASCONF1, SCTP_DIAG_INFO_LEN, sctp_tcb::sctp_ep, SCTP_ERROR_CAUSE_IND, SCTP_FROM_SCTP_ASCONF, sctp_generate_cause(), SCTP_LOC_5, sctp_m_getptr(), SCTP_PARAM_BUFFER_SIZE, sctp_send_asconf(), SCTP_SIZE32, SCTP_SNPRINTF, SCTP_SO_NOT_LOCKED, SCTP_SUCCESS_REPORT, sctp_timer_start(), sctp_timer_stop(), SCTP_TIMER_TYPE_ASCONF, sctp_toss_old_asconf(), SCTPDBG, sctp_asconf_addr::sent, and sctp_asconf_ack_chunk::serial_number.
Referenced by sctp_process_control().
Definition at line 2328 of file sctp_asconf.c.
References sctp_ifa::address, sctp_association::asconf_send_queue, sctp_tcb::asoc, sctp_asconf_chunk::ch, sctp_chunkhdr::chunk_length, sctp_tmit_chunk::data, sctp_paramhdr::param_length, sctp_paramhdr::param_type, sctp_asconf_paramhdr::ph, sctp_sockstore::sa, SCTP_ADD_IP_ADDRESS, sctp_addr_match(), SCTP_DEBUG_ASCONF1, SCTP_DEL_IP_ADDRESS, sctp_m_getptr(), SCTP_PARAM_BUFFER_SIZE, SCTP_SIZE32, and SCTPDBG.
Referenced by sctp_choose_boundall(), sctp_choose_boundspecific_stcb(), sctp_count_num_preferred_boundall(), sctp_does_stcb_own_this_addr(), sctp_find_valid_localaddr(), sctp_find_valid_localaddr_ep(), sctp_select_nth_preferred_addr_from_ifn_boundall(), and sctp_setopt().
Definition at line 1049 of file sctp_asconf.c.
References sctp_tcb::asoc, sctp_association::cc_functions, sctp_nets::error_count, sctp_nets::marked_retrans, sctp_association::marked_retrans, sctp_nets::RTO, sctp_chunk_output(), SCTP_DATAGRAM_RESEND, SCTP_DEBUG_ASCONF1, sctp_tcb::sctp_ep, sctp_flight_size_decrease, SCTP_FROM_SCTP_ASCONF, SCTP_LOC_4, SCTP_OUTPUT_FROM_T3, sctp_cc_functions::sctp_set_initial_cc_param, SCTP_SO_NOT_LOCKED, sctp_timer_stop(), SCTP_TIMER_TYPE_SEND, sctp_total_flight_decrease, sctp_ucount_incr, SCTPDBG, sctp_tmit_chunk::sent, sctp_association::sent_queue, sctp_association::sent_queue_retran_cnt, and sctp_tmit_chunk::whoTo.
Referenced by sctp_path_check_and_react().
int32_t sctp_set_primary_ip_address_sa | ( | struct sctp_tcb * | stcb, |
struct sockaddr * | sa | ||
) |
Definition at line 2288 of file sctp_asconf.c.
References sctp_tcb::asoc, sctp_ifa::ifa, SCTP_ADDR_NOT_LOCKED, sctp_asconf_queue_add(), SCTP_DEBUG_ASCONF1, sctp_find_ifa_by_addr(), SCTP_GET_STATE, sctp_send_asconf(), SCTP_SET_PRIM_ADDR, SCTP_STATE_OPEN, SCTP_STATE_SHUTDOWN_RECEIVED, sctp_timer_start(), SCTP_TIMER_TYPE_ASCONF, SCTPDBG, SCTPDBG_ADDR, sctp_ifa::vrf_id, and sctp_association::vrf_id.
Referenced by sctp_setopt().