46#include <sys/sysctl.h>
48FEATURE(sctp,
"Stream Control Transmission Protocol");
124#if defined(SCTP_LOCAL_TRACE_BUF)
130#if defined(SCTP_DEBUG)
191 int loopback_scope, ipv4_local_scope, local_scope, site_scope;
192 int ipv4_addr_legal, ipv6_addr_legal;
210 ipv4_local_scope = 1;
249 if (ipv4_addr_legal) {
268 if (ipv6_addr_legal) {
269 struct sockaddr_in6 *sin6;
272 if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
275 &sin6->sin6_addr) != 0) {
278 if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
279 if (local_scope == 0)
282 if ((site_scope == 0) && (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr)))
292 memset((
void *)&xladdr, 0,
sizeof(
struct xsctp_laddr));
296 error = SYSCTL_OUT(req, &xladdr,
sizeof(
struct xsctp_laddr));
310 memset((
void *)&xladdr, 0,
sizeof(
struct xsctp_laddr));
316 error = SYSCTL_OUT(req, &xladdr,
sizeof(
struct xsctp_laddr));
325 memset((
void *)&xladdr, 0,
sizeof(
struct xsctp_laddr));
329 error = SYSCTL_OUT(req, &xladdr,
sizeof(
struct xsctp_laddr));
346 unsigned int number_of_endpoints;
347 unsigned int number_of_local_addresses;
348 unsigned int number_of_associations;
349 unsigned int number_of_remote_addresses;
360 number_of_endpoints = 0;
361 number_of_local_addresses = 0;
362 number_of_associations = 0;
363 number_of_remote_addresses = 0;
366 if (req->oldptr == NULL) {
369 number_of_endpoints++;
372 number_of_associations++;
374 TAILQ_FOREACH(net, &stcb->
asoc.
nets, sctp_next) {
375 number_of_remote_addresses++;
381 n = (number_of_endpoints + 1) *
sizeof(
struct xsctp_inpcb) +
382 (number_of_local_addresses + number_of_endpoints + number_of_associations) *
sizeof(
struct xsctp_laddr) +
383 (number_of_associations + number_of_endpoints) *
sizeof(
struct xsctp_tcb) +
384 (number_of_remote_addresses + number_of_associations) *
sizeof(
struct xsctp_raddr);
387 req->oldidx = (n + n / 8);
390 if (req->newptr != NULL) {
395 memset(&xinpcb, 0,
sizeof(xinpcb));
396 memset(&xstcb, 0,
sizeof(xstcb));
397 memset(&xraddr, 0,
sizeof(xraddr));
420 xinpcb.
qlen = so->sol_qlen;
421 xinpcb.
qlen_old = so->sol_qlen > USHRT_MAX ?
423 xinpcb.
maxqlen = so->sol_qlimit;
425 USHRT_MAX : (
uint16_t)so->sol_qlimit;
430 error = SYSCTL_OUT(req, &xinpcb,
sizeof(
struct xsctp_inpcb));
479 error = SYSCTL_OUT(req, &xstcb,
sizeof(
struct xsctp_tcb));
493 TAILQ_FOREACH(net, &stcb->
asoc.
nets, sctp_next) {
507 xraddr.
rtt = net->
rtt / 1000;
522 error = SYSCTL_OUT(req, &xraddr,
sizeof(
struct xsctp_raddr));
532 memset((
void *)&xraddr, 0,
sizeof(
struct xsctp_raddr));
536 error = SYSCTL_OUT(req, &xraddr,
sizeof(
struct xsctp_raddr));
547 memset((
void *)&xstcb, 0,
sizeof(
struct xsctp_tcb));
549 error = SYSCTL_OUT(req, &xstcb,
sizeof(
struct xsctp_tcb));
558 memset((
void *)&xinpcb, 0,
sizeof(
struct xsctp_inpcb));
560 error = SYSCTL_OUT(req, &xinpcb,
sizeof(
struct xsctp_inpcb));
574 error = sysctl_handle_int(oidp, &
new, 0, req);
576 (req->newptr != NULL)) {
577#if (SCTPCTL_UDP_TUNNELING_PORT_MIN == 0)
606 error = sysctl_handle_int(oidp, &
new, 0, req);
608 (req->newptr != NULL)) {
609#if (SCTPCTL_AUTH_ENABLE_MIN == 0)
632 error = sysctl_handle_int(oidp, &
new, 0, req);
634 (req->newptr != NULL)) {
635#if (SCTPCTL_ASCONF_ENABLE_MIN == 0)
655#if defined(SMP) && defined(SCTP_USE_PERCPU_STAT)
662 if ((req->newptr != NULL) &&
663 (req->newlen !=
sizeof(
struct sctpstat))) {
666 memset(&sb_temp, 0,
sizeof(
struct sctpstat));
668 if (req->newptr != NULL) {
669 error = SYSCTL_IN(req, &sb_temp,
sizeof(
struct sctpstat));
674#if defined(SMP) && defined(SCTP_USE_PERCPU_STAT)
675 memset(&sb, 0,
sizeof(sb));
676 for (cpu = 0; cpu < mp_maxid; cpu++) {
801 if (req->newptr != NULL) {
802 memcpy(sarry, &sb_temp,
sizeof(
struct sctpstat));
805 error = SYSCTL_OUT(req, &sb,
sizeof(
struct sctpstat));
811 if (req->newptr != NULL) {
818#if defined(SCTP_LOCAL_TRACE_BUF)
820sctp_sysctl_handle_trace_log(SYSCTL_HANDLER_ARGS)
829sctp_sysctl_handle_trace_log_clear(SYSCTL_HANDLER_ARGS)
838#define SCTP_UINT_SYSCTL(mib_name, var_name, prefix) \
840 sctp_sysctl_handle_##mib_name(SYSCTL_HANDLER_ARGS) \
845 new = SCTP_BASE_SYSCTL(var_name); \
846 error = sysctl_handle_int(oidp, &new, 0, req); \
847 if ((error == 0) && (req->newptr != NULL)) { \
848 if ((new < prefix##_MIN) || \
849 (new > prefix##_MAX)) { \
852 SCTP_BASE_SYSCTL(var_name) = new; \
857 SYSCTL_PROC(_net_inet_sctp, OID_AUTO, mib_name, \
858 CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, \
859 NULL, 0, sctp_sysctl_handle_##mib_name, "UI", prefix##_DESC);
871 CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
875 CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
878SCTP_UINT_SYSCTL(reconfig_enable, sctp_reconfig_enable, SCTPCTL_RECONFIG_ENABLE)
880SCTP_UINT_SYSCTL(pktdrop_enable, sctp_pktdrop_enable, SCTPCTL_PKTDROP_ENABLE)
887SCTP_UINT_SYSCTL(min_split_point, sctp_min_split_point, SCTPCTL_MIN_SPLIT_POINT)
889SCTP_UINT_SYSCTL(delayed_sack_time, sctp_delayed_sack_time_default, SCTPCTL_DELAYED_SACK_TIME)
891SCTP_UINT_SYSCTL(sys_resource, sctp_system_free_resc_limit, SCTPCTL_SYS_RESOURCE)
892SCTP_UINT_SYSCTL(asoc_resource, sctp_asoc_free_resc_limit, SCTPCTL_ASOC_RESOURCE)
893SCTP_UINT_SYSCTL(heartbeat_interval, sctp_heartbeat_interval_default, SCTPCTL_HEARTBEAT_INTERVAL)
894SCTP_UINT_SYSCTL(pmtu_raise_time, sctp_pmtu_raise_time_default, SCTPCTL_PMTU_RAISE_TIME)
895SCTP_UINT_SYSCTL(shutdown_guard_time, sctp_shutdown_guard_time_default, SCTPCTL_SHUTDOWN_GUARD_TIME)
896SCTP_UINT_SYSCTL(secret_lifetime, sctp_secret_lifetime_default, SCTPCTL_SECRET_LIFETIME)
900SCTP_UINT_SYSCTL(init_rto_max, sctp_init_rto_max_default, SCTPCTL_INIT_RTO_MAX)
901SCTP_UINT_SYSCTL(valid_cookie_life, sctp_valid_cookie_life_default, SCTPCTL_VALID_COOKIE_LIFE)
902SCTP_UINT_SYSCTL(init_rtx_max, sctp_init_rtx_max_default, SCTPCTL_INIT_RTX_MAX)
903SCTP_UINT_SYSCTL(assoc_rtx_max, sctp_assoc_rtx_max_default, SCTPCTL_ASSOC_RTX_MAX)
904SCTP_UINT_SYSCTL(path_rtx_max, sctp_path_rtx_max_default, SCTPCTL_PATH_RTX_MAX)
905SCTP_UINT_SYSCTL(path_pf_threshold, sctp_path_pf_threshold, SCTPCTL_PATH_PF_THRESHOLD)
906SCTP_UINT_SYSCTL(add_more_on_output, sctp_add_more_threshold, SCTPCTL_ADD_MORE_ON_OUTPUT)
907SCTP_UINT_SYSCTL(incoming_streams, sctp_nr_incoming_streams_default, SCTPCTL_INCOMING_STREAMS)
908SCTP_UINT_SYSCTL(outgoing_streams, sctp_nr_outgoing_streams_default, SCTPCTL_OUTGOING_STREAMS)
911SCTP_UINT_SYSCTL(cwnd_maxburst, sctp_use_cwnd_based_maxburst, SCTPCTL_CWND_MAXBURST)
914SCTP_UINT_SYSCTL(max_chained_mbufs, sctp_mbuf_threshold_count, SCTPCTL_MAX_CHAINED_MBUFS)
917SCTP_UINT_SYSCTL(abort_at_limit, sctp_abort_if_one_2_one_hits_limit, SCTPCTL_ABORT_AT_LIMIT)
919SCTP_UINT_SYSCTL(max_retran_chunk, sctp_max_retran_chunk, SCTPCTL_MAX_RETRAN_CHUNK)
921SCTP_UINT_SYSCTL(default_cc_module, sctp_default_cc_module, SCTPCTL_DEFAULT_CC_MODULE)
922SCTP_UINT_SYSCTL(default_ss_module, sctp_default_ss_module, SCTPCTL_DEFAULT_SS_MODULE)
923SCTP_UINT_SYSCTL(default_frag_interleave, sctp_default_frag_interleave, SCTPCTL_DEFAULT_FRAG_INTERLEAVE)
925SCTP_UINT_SYSCTL(mobility_fasthandoff, sctp_mobility_fasthandoff, SCTPCTL_MOBILITY_FASTHANDOFF)
926#if defined(SCTP_LOCAL_TRACE_BUF)
928 CTLFLAG_VNET | CTLTYPE_STRUCT | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
929 NULL, 0, sctp_sysctl_handle_trace_log,
"S,sctplog"a
930 ,
"SCTP logging (struct sctp_log)");
932 CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
933 NULL, 0, sctp_sysctl_handle_trace_log_clear,
"IU",
934 "Clear SCTP Logging buffer");
937 CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
940SCTP_UINT_SYSCTL(enable_sack_immediately, sctp_enable_sack_immediately, SCTPCTL_SACK_IMMEDIATELY_ENABLE)
941SCTP_UINT_SYSCTL(nat_friendly_init, sctp_inits_include_nat_friendly, SCTPCTL_NAT_FRIENDLY_INITS)
943SCTP_UINT_SYSCTL(buffer_splitting, sctp_buffer_splitting, SCTPCTL_BUFFER_SPLITTING)
948SCTP_UINT_SYSCTL(rttvar_steady_step, sctp_steady_step, SCTPCTL_RTTVAR_STEADYS)
952SCTP_UINT_SYSCTL(diag_info_code, sctp_diag_info_code, SCTPCTL_DIAG_INFO_CODE)
957 CTLFLAG_VNET | CTLTYPE_STRUCT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
959 "SCTP statistics (struct sctp_stat)");
961 CTLFLAG_VNET | CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
963 "List of active SCTP associations");
int prison_check_ip4(const struct ucred *cred, const struct in_addr *ia)
#define SCTP_PCB_FLAGS_BOUND_V6
#define SCTP_PCB_FLAGS_SOCKET_ALLGONE
#define SCTP_PCB_FLAGS_SOCKET_GONE
#define SCTP_PCB_FLAGS_BOUNDALL
#define IN4_ISPRIVATE_ADDRESS(a)
#define SCTP_FROM_SCTP_SYSCTL
#define SCTP_ADDR_UNCONFIRMED
#define SCTP_ADDR_REACHABLE
#define SCTP_TCB_LOCK(_tcb)
#define SCTP_INP_INFO_WLOCK()
#define SCTP_INP_RLOCK(_inp)
#define SCTP_INP_INFO_RLOCK()
#define SCTP_INP_DECR_REF(_inp)
#define SCTP_INP_INFO_RUNLOCK()
#define SCTP_INP_INCR_REF(_inp)
#define SCTP_TCB_UNLOCK(_tcb)
#define SCTP_INP_INFO_WUNLOCK()
#define SCTP_INP_RUNLOCK(_inp)
#define SCTP_LTRACE_ERR_RET(inp, stcb, net, file, err)
#define SCTP_IFN_IS_IFT_LOOP(ifn)
#define SCTP_BASE_INFO(__m)
#define SCTP_IPV6_V6ONLY(sctp_inpcb)
#define SCTP_IS_LISTENING(inp)
#define SCTP_BASE_SYSCTL(__m)
int sctp_is_addr_restricted(struct sctp_tcb *stcb, struct sctp_ifa *ifa)
struct sctp_vrf * sctp_find_vrf(uint32_t vrf_id)
static int sctp_sysctl_handle_assoclist(SYSCTL_HANDLER_ARGS)
static int sctp_sysctl_handle_stats(SYSCTL_HANDLER_ARGS)
static unsigned int sctp_sysctl_number_of_addresses(struct sctp_inpcb *inp)
static int sctp_sysctl_handle_asconf(SYSCTL_HANDLER_ARGS)
#define SCTP_UINT_SYSCTL(mib_name, var_name, prefix)
FEATURE(sctp, "Stream Control Transmission Protocol")
static int sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sysctl_req *req)
SYSCTL_PROC(_net_inet_sctp, OID_AUTO, auth_enable, CTLFLAG_VNET|CTLTYPE_UINT|CTLFLAG_RW|CTLFLAG_NEEDGIANT, NULL, 0, sctp_sysctl_handle_auth, "IU", SCTPCTL_AUTH_ENABLE_DESC)
static int sctp_sysctl_handle_auth(SYSCTL_HANDLER_ARGS)
static int sctp_sysctl_handle_udp_tunneling(SYSCTL_HANDLER_ARGS)
#define SCTPCTL_TIME_WAIT_DEFAULT
#define SCTPCTL_MIN_RESIDUAL_DEFAULT
#define SCTPCTL_RECONFIG_ENABLE_DEFAULT
#define SCTPCTL_FRMAXBURST_DEFAULT
#define SCTPCTL_CHUNKSCALE_DEFAULT
#define SCTPCTL_DO_SCTP_DRAIN_DEFAULT
#define SCTPCTL_NAT_FRIENDLY_DEFAULT
#define SCTPCTL_MAX_CHAINED_MBUFS_DEFAULT
#define SCTPCTL_RTTVAR_STEADYS_DEFAULT
#define SCTPCTL_SENDALL_LIMIT_DEFAULT
#define SCTPCTL_ASCONF_ENABLE_DESC
#define SCTPCTL_BLACKHOLE_DEFAULT
#define SCTPCTL_ABORT_AT_LIMIT_DEFAULT
#define SCTPCTL_PATH_PF_THRESHOLD_DEFAULT
#define SCTPCTL_HB_MAX_BURST_DEFAULT
#define SCTPCTL_AUTH_ENABLE_MAX
#define SCTPCTL_PKTDROP_ENABLE_DEFAULT
#define SCTPCTL_PR_ENABLE_DEFAULT
#define SCTPCTL_TCBHASHSIZE_DEFAULT
#define SCTPCTL_MULTIPLEASCONFS_DEFAULT
#define SCTPCTL_NAT_FRIENDLY_INITS_DEFAULT
#define SCTPCTL_PMTU_RAISE_TIME_DEFAULT
#define SCTPCTL_ASCONF_ENABLE_DEFAULT
#define SCTPCTL_ASCONF_ENABLE_MAX
#define SCTPCTL_OUTGOING_STREAMS_DEFAULT
#define SCTPCTL_RTTVAR_RTT_DEFAULT
#define SCTPCTL_SYS_RESOURCE_DEFAULT
#define SCTPCTL_CMT_ON_OFF_DEFAULT
#define SCTPCTL_CMT_USE_DAC_DEFAULT
#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_DEFAULT
#define SCTPCTL_DIAG_INFO_CODE_DEFAULT
#define SCTPCTL_DELAYED_SACK_TIME_DEFAULT
#define SCTPCTL_PCBHASHSIZE_DEFAULT
#define SCTPCTL_ADD_MORE_ON_OUTPUT_DEFAULT
#define SCTPCTL_RTO_INITIAL_DEFAULT
#define SCTPCTL_RTTVAR_EQRET_DEFAULT
#define SCTPCTL_MAXBURST_DEFAULT
#define SCTPCTL_MAXCHUNKS_DEFAULT
#define SCTPCTL_SHUTDOWN_GUARD_TIME_DEFAULT
#define SCTPCTL_RTTVAR_DCCCECN_DEFAULT
#define SCTPCTL_UDP_TUNNELING_PORT_MAX
#define SCTPCTL_RTTVAR_BW_DEFAULT
#define SCTPCTL_ABC_L_VAR_DEFAULT
#define SCTPCTL_INITIAL_CWND_DEFAULT
#define SCTPCTL_INIT_RTX_MAX_DEFAULT
#define SCTPCTL_PEER_CHKOH_DEFAULT
#define SCTPCTL_RECVSPACE_DEFAULT
#define SCTPCTL_DEFAULT_SS_MODULE_DEFAULT
#define SCTPCTL_NRSACK_ENABLE_DEFAULT
#define SCTPCTL_UDP_TUNNELING_PORT_DESC
#define SCTPCTL_PATH_RTX_MAX_DEFAULT
#define SCTPCTL_MAX_RETRAN_CHUNK_DEFAULT
#define SCTPCTL_ASOC_RESOURCE_DEFAULT
#define SCTPCTL_UDP_TUNNELING_PORT_DEFAULT
#define SCTPCTL_SECRET_LIFETIME_DEFAULT
#define SCTPCTL_MOBILITY_FASTHANDOFF_DEFAULT
#define SCTPCTL_UDP_TUNNELING_PORT_MIN
#define SCTPCTL_AUTOASCONF_DEFAULT
#define SCTPCTL_RTO_MIN_DEFAULT
#define SCTPCTL_DEFAULT_FRAG_INTERLEAVE_DEFAULT
#define SCTPCTL_AUTH_ENABLE_DEFAULT
#define SCTPCTL_DEFAULT_CC_MODULE_DEFAULT
#define SCTPCTL_INIT_RTO_MAX_DEFAULT
#define SCTPCTL_CWND_MAXBURST_DEFAULT
#define SCTPCTL_BUFFER_SPLITTING_DEFAULT
#define SCTPCTL_VALID_COOKIE_LIFE_DEFAULT
#define SCTPCTL_MAXDGRAM_DEFAULT
#define SCTPCTL_HEARTBEAT_INTERVAL_DEFAULT
#define SCTPCTL_MIN_SPLIT_POINT_DEFAULT
#define SCTPCTL_INCOMING_STREAMS_DEFAULT
#define SCTPCTL_ECN_ENABLE_DEFAULT
#define SCTPCTL_MOBILITY_BASE_DEFAULT
#define SCTPCTL_LOGGING_LEVEL_DEFAULT
#define SCTPCTL_AUTH_ENABLE_MIN
#define SCTPCTL_AUTH_ENABLE_DESC
#define SCTPCTL_ASSOC_RTX_MAX_DEFAULT
#define SCTPCTL_SACK_FREQ_DEFAULT
#define SCTPCTL_RTO_MAX_DEFAULT
#define SCTPCTL_ASCONF_ENABLE_MIN
int32_t sctp_map_assoc_state(int kernel_state)
int sctp_over_udp_start(void)
void sctp_over_udp_stop(void)
#define sctp_get_associd(stcb)
struct timeval start_time
struct sctpnetlisthead nets
struct sctp_scoping scope
uint32_t heart_beat_delay
struct sctp_nets * primary_destination
unsigned int overall_error_count
struct timeval discontinuity_time
union sctp_sockstore address
struct sctp_ifalist ifalist
struct socket * sctp_socket
union sctp_inpcb::@33 ip_inp
struct sctpasochead sctp_asoc_list
struct sctpladdr sctp_addr_list
struct timeval start_time
union sctp_sockstore _l_addr
uint16_t failure_threshold
uint32_t heart_beat_delay
struct timeval start_time
struct sctp_association asoc
struct sctp_ifnlist ifnlist
uint32_t sctps_slowpath_sack
uint32_t sctps_fastretransinrtt
uint32_t sctps_datadropchklmt
uint32_t sctps_protocol_drains_done
uint32_t sctps_timoinpkill
uint32_t sctps_collisionestab
uint32_t sctps_sends_with_flags
uint32_t sctps_datadroprwnd
uint32_t sctps_lowlevelerrusr
uint32_t sctps_protocol_drain_calls
uint32_t sctps_timowindowprobe
uint32_t sctps_recvexpress
uint32_t sctps_recvheartbeat
uint32_t sctps_recvheartbeatack
uint32_t sctps_recvauthfailed
uint32_t sctps_timodelprim
uint32_t sctps_inorderchunks
uint32_t sctps_naglequeued
uint32_t sctps_timoshutdownguard
uint32_t sctps_primary_randry
uint32_t sctps_recvexpressm
uint32_t sctps_timocookie
uint32_t sctps_recvdatagrams
uint32_t sctps_recvpktwithdata
uint32_t sctps_sendfastretrans
uint32_t sctps_outunorderchunks
uint32_t sctps_timoshutdownack
uint32_t sctps_checksumerrors
uint32_t sctps_windowprobed
uint32_t sctps_restartestab
uint32_t sctps_cached_strmoq
uint32_t sctps_fragusrmsgs
uint32_t sctps_recvauthmissing
uint32_t sctps_timoheartbeat
uint32_t sctps_ecnereducedcwnd
uint32_t sctps_markedretrans
uint32_t sctps_timoasconf
uint32_t sctps_sendpackets
uint32_t sctps_timosecret
uint32_t sctps_sendheartbeat
uint32_t sctps_outoftheblue
uint32_t sctps_timoautoclose
uint32_t sctps_send_burst_avoid
uint32_t sctps_wu_sacks_sent
uint32_t sctps_timoshutdown
uint32_t sctps_activeestab
uint32_t sctps_inunorderchunks
uint32_t sctps_timoassockill
uint32_t sctps_outcontrolchunks
uint32_t sctps_recvpackets
uint32_t sctps_sends_with_eof
uint32_t sctps_timoearlyfr
uint32_t sctps_lowlevelerr
uint32_t sctps_read_peeks
uint32_t sctps_timoiterator
uint32_t sctps_incontrolchunks
uint32_t sctps_outpackets
uint32_t sctps_recvdupdata
uint32_t sctps_senderrors
uint32_t sctps_timostrmrst
uint32_t sctps_outorderchunks
uint32_t sctps_maxburstqueued
uint32_t sctps_left_abandon
uint32_t sctps_cmt_randry
uint32_t sctps_sends_with_abort
uint32_t sctps_sendretransdata
uint32_t sctps_sendmultfastretrans
uint32_t sctps_recvivalhmacid
uint32_t sctps_ifnomemqueued
struct sctp_timeval sctps_discontinuitytime
uint32_t sctps_passiveestab
uint32_t sctps_reasmusrmsgs
uint32_t sctps_fwdtsn_map_over
uint32_t sctps_vtagexpress
uint32_t sctps_recvivalkeyid
uint32_t sctps_sends_with_unord
uint32_t sctps_send_cwnd_avoid
uint32_t sctps_timopathmtu
uint32_t sctps_cached_chk
uint32_t fragmentation_point
struct sctp_timeval start_time
uint32_t heartbeat_interval
uint8_t heartbeat_enabled
uint8_t potentially_failed
union sctp_sockstore address
uint32_t heartbeat_interval
union sctp_sockstore primary_addr
uint32_t cumulative_tsn_ack
struct sctp_timeval discontinuity_time
struct sctp_timeval start_time
uint32_t retransmitted_tsns