Add initial descriptions for SCTP related MIB variable.

This work was mostly done by Marie-Helene Kvello-Aune.

MFC after:		3 days
Differential Revision:	https://reviews.freebsd.org/D3583
This commit is contained in:
tuexen 2018-10-26 21:04:17 +00:00
parent 56f6861a96
commit 8397e600b6
2 changed files with 211 additions and 25 deletions

View File

@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd December 15, 2006
.Dd October 10, 2018
.Dt SCTP 4
.Os
.Sh NAME
@ -145,7 +145,7 @@ with no regard to the ordering of any other message.
The FreeBSD implementation of
.Tn SCTP
also supports the following extensions:
.Bl -hang -width indent
.Bl -tag -width "sctp partial reliability"
.It "sctp partial reliability"
This extension allows one to have message be skipped and
not delivered based on some user specified parameters.
@ -168,7 +168,7 @@ utilization.
This extension allows a user on either side to reset the
stream sequence numbers used by any or all streams.
.El
.Pp
.Ss Socket Options
.Tn SCTP
supports a number of socket options which can be set with
.Xr setsockopt 2
@ -176,7 +176,7 @@ and tested with
.Xr getsockopt 2
or
.Xr sctp_opt_info 3 :
.Bl -tag -width ".Dv SCTP_SET_PEER_PRIMARY_ADDR"
.Bl -tag -indent
.It Dv SCTP_NODELAY
Under most circumstances,
.Tn SCTP
@ -409,6 +409,191 @@ Note that the peer
endpoint must also support the stream reset extension
as well.
.El
.Ss MIB Variables
The
.Tn SCTP
protocol implements a number of variables in the
.Va net.inet.sctp
branch of the
.Xr sysctl 3
MIB.
.Bl -ohang
.It Sy Congestion Control
.Bl -tag -width indent
.It Va default_cc_module
Default congestion control module.
Default value is 0.
The minimum is 0, and the maximum is 3.
A value of 0 enables the default congestion control algorithm.
A value of 1 enables the High Speed congestion control algorithm.
A value of 2 enables the HTCP congestion control algorithm.
A value of 3 enables the data center congestion control (DCCC) algorithm.
.It Va initial_cwnd
Defines the initial congestion window size in MTUs.
.It Va cwnd_maxburst
Use congestion control instead of 'blind' logic to limit maximum burst when sending.
Default value is 1. May be set to 0 or 1.
.It Va ecn_enable
Enable Explicit Congestion Notification (ECN).
Default value is 1. May be set to 0 or 1.
.It Va rttvar_steady_step
Number of identical bandwidth measurements DCCC takes to try step down the congestion window.
Default value is 20.
The minimum is 0, and the maximum is 65535.
.It Va rttvar_eqret
Whether DCCC reduces the congestion window size when round-trip time and bandwidth remain unchanged.
Default value is 0.
May be set to 0 or 1.
.It Va rttvar_bw
Shift amount DCCC uses for bandwidth smoothing on round-trip-time calculation.
Default value is 4.
The minimum is 0, and the maximum is 32.
.It Va rttvar_rtt
Shift amount DCCC uses for round-trip-time smoothing on round-trip-time calculation.
Default value is 5.
The minimum is 0, and the maximum is 32.
.It Va use_dcccecn
Enable ECN when using DCCC.
Default value is 1.
May be set to 0 or 1.
.El
.It Sy Misc
.Bl -tag -width indent
.It Va getcred
Get the ucred of a SCTP connection.
.It Va assoclist
List of active SCTP associations.
.It Va stats
SCTP statistics (struct sctp_stat).
.It Va diag_info_code
Diagnostic information error cause code.
.It Va blackhole
Enable SCTP blackholing.
See
.Xr blackhole 4
for more details.
.It Va buffer_splitting
Enable send/receive buffer splitting.
.It Va vtag_time_wait
Vtag wait time in seconds, 0 to disable.
.It Va nat_friendly_init
Enable sending of the NAT-friendly SCTP option on INITs.
.It Va enable_sack_immediately
Enable sending of the SACK-IMMEDIATELY bit.
.It Va udp_tunneling_port
Set the SCTP/UDP tunneling port.
.It Va mobility_fasthandoff
Enable SCTP fast handoff.
.It Va mobility_base
Enable SCTP base mobility
.It Va default_frag_interleave
Default fragment interleave level.
.It Va default_ss_module
Default stream scheduling module.
.It Va log_level
Ltrace/KTR trace logging level.
.It Va max_retran_chunk
Number of retransmissions of a DATA chunk before an association is aborted.
.It Va min_residual
Minimum residual data chunk in second part of split.
.It Va strict_data_order
Enforce strict data ordering, abort if control inside data.
.It Va abort_at_limit
Abort when one-to-one hits qlimit.
.It Va hb_max_burst
Confirmation heartbeat max burst.
.It Va do_sctp_drain
Flush chunks in receive queues with TSN higher than the cumulative TSN if the
system is low on mbufs.
.It Va max_chained_mbufs
Default max number of small mbufs on a chain.
.It Va abc_l_var
SCTP ABC max increase per SACK (L).
.It Va nat_friendly
SCTP NAT friendly operation.
.It Va cmt_use_dac
CMT DAC on/off flag.
.It Va cmt_on_off
CMT settings.
.It Va outgoing_streams
Default number of outgoing streams.
.It Va incoming_streams
Default number of incoming streams.
.It Va add_more_on_output
When space-wise is it worthwhile to try to add more to a socket send buffer.
.It Va path_pf_threshold
Default potentially failed threshold.
.It Va path_rtx_max
Default maximum of retransmissions per path.
.It Va assoc_rtx_max
Default maximum number of retransmissions per association.
.It Va init_rtx_max
Default maximum number of retransmissions for INIT chunks.
.It Va valid_cookie_life
Default cookie lifetime in seconds.
.It Va init_rto_max
Default maximum retransmission timeout during association setup in ms.
.It Va rto_initial
Default initial retransmission timeout in ms.
.It Va rto_min
Default minimum retransmission timeout in ms.
.It Va rto_max
Default maximum retransmission timeout in ms.
.It Va secret_lifetime
Default secret lifetime in seconds.
.It Va shutdown_guard_time
Shutdown guard timer in seconds (0 means 5 times RTO.Max).
.It Va pmtu_raise_time
Default PMTU raise timer in seconds.
.It Va heartbeat_interval
Default heartbeat interval in ms.
.It Va asoc_resource
Max number of cached resources in an association.
.It Va sys_resource
Max number of cached resources in the system.
.It Va sack_freq
Default SACK frequency.
.It Va delayed_sack_time
Default delayed SACK timer in ms.
.It Va chunkscale
Tunable for scaling of number of chunks and messages.
.It Va min_split_point
Minimum size when splitting a chunk.
.It Va pcbhashsize
Tunable for PCB hash table sizes.
.It Va tcbhashsize
Tunable for TCB hash table sizes.
.It Va maxchunks
Default max chunks on queue per association.
.It Va fr_maxburst
Default max burst for SCTP endpoints when fast retransmitting.
.It Va maxburst
Default max burst for SCTP endpoints.
.It Va peer_chkoh
Amount to debit peers rwnd per chunk sent.
.It Va strict_sacks
Enable SCTP Strict SACK checking.
.It Va pktdrop_enable
Enable SCTP PKTDROP.
.It Va nrsack_enable
Enable SCTP NR-SACK.
.It Va reconfig_enable
Enable SCTP RE-CONFIG.
.It Va asconf_enable
Enable SCTP ASCONF.
.It Va auth_enable
Enable SCTP AUTH.
.It Va pr_enable
Enable PR-SCTP.
.It Va auto_asconf
Enable SCTP Auto-ASCONF.
.It Va recvspace
Maximum incoming SCTP buffer size.
.It Va sendspace
Maximum outgoing SCTP buffer size.
.El
.El
.Sh SEE ALSO
.Xr accept 2 ,
.Xr bind 2 ,
@ -418,4 +603,5 @@ as well.
.Xr sctp_connectx 3 ,
.Xr sctp_opt_info 3 ,
.Xr sctp_recvmsg 3 ,
.Xr sctp_sendmsg 3
.Xr sctp_sendmsg 3 ,
.Xr blackhole 4

View File

@ -212,7 +212,7 @@ struct sctp_sysctl {
#define SCTPCTL_MAXBURST_DEFAULT SCTP_DEF_MAX_BURST
/* fr_maxburst: Default max burst for sctp endpoints when fast retransmitting */
#define SCTPCTL_FRMAXBURST_DESC "Default fr max burst for sctp endpoints"
#define SCTPCTL_FRMAXBURST_DESC "Default max burst for SCTP endpoints when fast retransmitting"
#define SCTPCTL_FRMAXBURST_MIN 0
#define SCTPCTL_FRMAXBURST_MAX 0xFFFFFFFF
#define SCTPCTL_FRMAXBURST_DEFAULT SCTP_DEF_FRMAX_BURST
@ -243,7 +243,7 @@ struct sctp_sysctl {
#define SCTPCTL_MIN_SPLIT_POINT_DEFAULT SCTP_DEFAULT_SPLIT_POINT_MIN
/* chunkscale: Tunable for Scaling of number of chunks and messages */
#define SCTPCTL_CHUNKSCALE_DESC "Tunable for Scaling of number of chunks and messages"
#define SCTPCTL_CHUNKSCALE_DESC "Tunable for scaling of number of chunks and messages"
#define SCTPCTL_CHUNKSCALE_MIN 1
#define SCTPCTL_CHUNKSCALE_MAX 0xFFFFFFFF
#define SCTPCTL_CHUNKSCALE_DEFAULT SCTP_CHUNKQUEUE_SCALE
@ -327,7 +327,7 @@ struct sctp_sysctl {
#define SCTPCTL_VALID_COOKIE_LIFE_DEFAULT SCTP_DEFAULT_COOKIE_LIFE
/* init_rtx_max: Default maximum number of retransmission for INIT chunks */
#define SCTPCTL_INIT_RTX_MAX_DESC "Default maximum number of retransmission for INIT chunks"
#define SCTPCTL_INIT_RTX_MAX_DESC "Default maximum number of retransmissions for INIT chunks"
#define SCTPCTL_INIT_RTX_MAX_MIN 0
#define SCTPCTL_INIT_RTX_MAX_MAX 0xFFFFFFFF
#define SCTPCTL_INIT_RTX_MAX_DEFAULT SCTP_DEF_MAX_INIT
@ -380,8 +380,8 @@ struct sctp_sysctl {
#define SCTPCTL_CMT_USE_DAC_MAX 1
#define SCTPCTL_CMT_USE_DAC_DEFAULT 0
/* cwnd_maxburst: Use a CWND adjusting maxburst */
#define SCTPCTL_CWND_MAXBURST_DESC "Use a CWND adjusting maxburst"
/* cwnd_maxburst: Use a CWND adjusting to implement maxburst */
#define SCTPCTL_CWND_MAXBURST_DESC "Adjust congestion control window to limit maximum burst when sending"
#define SCTPCTL_CWND_MAXBURST_MIN 0
#define SCTPCTL_CWND_MAXBURST_MAX 1
#define SCTPCTL_CWND_MAXBURST_DEFAULT 1
@ -417,7 +417,7 @@ struct sctp_sysctl {
#define SCTPCTL_HB_MAX_BURST_DEFAULT SCTP_DEF_HBMAX_BURST
/* abort_at_limit: When one-2-one hits qlimit abort */
#define SCTPCTL_ABORT_AT_LIMIT_DESC "When one-2-one hits qlimit abort"
#define SCTPCTL_ABORT_AT_LIMIT_DESC "Abort when one-to-one hits qlimit"
#define SCTPCTL_ABORT_AT_LIMIT_MIN 0
#define SCTPCTL_ABORT_AT_LIMIT_MAX 1
#define SCTPCTL_ABORT_AT_LIMIT_DEFAULT 0
@ -429,7 +429,7 @@ struct sctp_sysctl {
#define SCTPCTL_MIN_RESIDUAL_DEFAULT 1452
/* max_retran_chunk: max chunk retransmissions */
#define SCTPCTL_MAX_RETRAN_CHUNK_DESC "Maximum times an unlucky chunk can be retran'd before assoc abort"
#define SCTPCTL_MAX_RETRAN_CHUNK_DESC "Maximum times an unlucky chunk can be retransmitted before assoc abort"
#define SCTPCTL_MAX_RETRAN_CHUNK_MIN 0
#define SCTPCTL_MAX_RETRAN_CHUNK_MAX 65535
#define SCTPCTL_MAX_RETRAN_CHUNK_DEFAULT 30
@ -477,63 +477,63 @@ struct sctp_sysctl {
#define SCTPCTL_UDP_TUNNELING_PORT_DEFAULT 0
/* Enable sending of the SACK-IMMEDIATELY bit */
#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_DESC "Enable sending of the SACK-IMMEDIATELY-bit."
#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_DESC "Enable sending of the SACK-IMMEDIATELY-bit"
#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_MIN 0
#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_MAX 1
#define SCTPCTL_SACK_IMMEDIATELY_ENABLE_DEFAULT SCTPCTL_SACK_IMMEDIATELY_ENABLE_MAX
/* Enable sending of the NAT-FRIENDLY message */
#define SCTPCTL_NAT_FRIENDLY_INITS_DESC "Enable sending of the nat-friendly SCTP option on INITs."
#define SCTPCTL_NAT_FRIENDLY_INITS_DESC "Enable sending of the nat-friendly SCTP option on INITs"
#define SCTPCTL_NAT_FRIENDLY_INITS_MIN 0
#define SCTPCTL_NAT_FRIENDLY_INITS_MAX 1
#define SCTPCTL_NAT_FRIENDLY_INITS_DEFAULT SCTPCTL_NAT_FRIENDLY_INITS_MIN
/* Vtag time wait in seconds */
#define SCTPCTL_TIME_WAIT_DESC "Vtag time wait time in seconds, 0 disables it."
#define SCTPCTL_TIME_WAIT_DESC "Vtag time wait time in seconds, 0 disables it"
#define SCTPCTL_TIME_WAIT_MIN 0
#define SCTPCTL_TIME_WAIT_MAX 0xffffffff
#define SCTPCTL_TIME_WAIT_DEFAULT SCTP_TIME_WAIT
/* Enable Send/Receive buffer splitting */
#define SCTPCTL_BUFFER_SPLITTING_DESC "Enable send/receive buffer splitting."
#define SCTPCTL_BUFFER_SPLITTING_DESC "Enable send/receive buffer splitting"
#define SCTPCTL_BUFFER_SPLITTING_MIN 0
#define SCTPCTL_BUFFER_SPLITTING_MAX 0x3
#define SCTPCTL_BUFFER_SPLITTING_DEFAULT SCTPCTL_BUFFER_SPLITTING_MIN
/* Initial congestion window in MTU */
#define SCTPCTL_INITIAL_CWND_DESC "Initial congestion window in MTUs"
/* Initial congestion window in MTUs */
#define SCTPCTL_INITIAL_CWND_DESC "Defines the initial congestion window size in MTUs"
#define SCTPCTL_INITIAL_CWND_MIN 0
#define SCTPCTL_INITIAL_CWND_MAX 0xffffffff
#define SCTPCTL_INITIAL_CWND_DEFAULT 3
/* rttvar smooth avg for bw calc */
#define SCTPCTL_RTTVAR_BW_DESC "Shift amount for bw smoothing on rtt calc"
#define SCTPCTL_RTTVAR_BW_DESC "Shift amount DCCC uses for bw smoothing on rtt calc"
#define SCTPCTL_RTTVAR_BW_MIN 0
#define SCTPCTL_RTTVAR_BW_MAX 32
#define SCTPCTL_RTTVAR_BW_DEFAULT 4
/* rttvar smooth avg for bw calc */
#define SCTPCTL_RTTVAR_RTT_DESC "Shift amount for rtt smoothing on rtt calc"
#define SCTPCTL_RTTVAR_RTT_DESC "Shift amount DCCC uses for rtt smoothing on rtt calc"
#define SCTPCTL_RTTVAR_RTT_MIN 0
#define SCTPCTL_RTTVAR_RTT_MAX 32
#define SCTPCTL_RTTVAR_RTT_DEFAULT 5
#define SCTPCTL_RTTVAR_EQRET_DESC "What to return when rtt and bw are unchanged"
#define SCTPCTL_RTTVAR_EQRET_DESC "Whether DCCC increases cwnd when the rtt and bw are unchanged"
#define SCTPCTL_RTTVAR_EQRET_MIN 0
#define SCTPCTL_RTTVAR_EQRET_MAX 1
#define SCTPCTL_RTTVAR_EQRET_DEFAULT 0
#define SCTPCTL_RTTVAR_STEADYS_DESC "How many the sames it takes to try step down of cwnd"
#define SCTPCTL_RTTVAR_STEADYS_DESC "Number of identical bw measurements DCCC takes to try step down of cwnd"
#define SCTPCTL_RTTVAR_STEADYS_MIN 0
#define SCTPCTL_RTTVAR_STEADYS_MAX 0xFFFF
#define SCTPCTL_RTTVAR_STEADYS_DEFAULT 20 /* 0 means disable feature */
#define SCTPCTL_RTTVAR_DCCCECN_DESC "Enable for RTCC CC datacenter ECN"
#define SCTPCTL_RTTVAR_DCCCECN_DESC "Enable ECN for DCCC."
#define SCTPCTL_RTTVAR_DCCCECN_MIN 0
#define SCTPCTL_RTTVAR_DCCCECN_MAX 1
#define SCTPCTL_RTTVAR_DCCCECN_DEFAULT 1 /* 0 means disable feature */
#define SCTPCTL_BLACKHOLE_DESC "Enable SCTP blackholing. See blackhole(4) for more details."
#define SCTPCTL_BLACKHOLE_DESC "Enable SCTP blackholing, see blackhole(4) for more details"
#define SCTPCTL_BLACKHOLE_MIN 0
#define SCTPCTL_BLACKHOLE_MAX 2
#define SCTPCTL_BLACKHOLE_DEFAULT SCTPCTL_BLACKHOLE_MIN
@ -553,7 +553,7 @@ struct sctp_sysctl {
#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
#define SCTPCTL_OUTPUT_UNLOCKED_DESC "Unlock socket when sending packets down to IP."
#define SCTPCTL_OUTPUT_UNLOCKED_DESC "Unlock socket when sending packets down to IP"
#define SCTPCTL_OUTPUT_UNLOCKED_MIN 0
#define SCTPCTL_OUTPUT_UNLOCKED_MAX 1
#define SCTPCTL_OUTPUT_UNLOCKED_DEFAULT SCTPCTL_OUTPUT_UNLOCKED_MIN