Index: stable/12/share/man/man4/sctp.4 =================================================================== --- stable/12/share/man/man4/sctp.4 (revision 339866) +++ stable/12/share/man/man4/sctp.4 (revision 339867) @@ -1,421 +1,607 @@ .\" Copyright (c) 2006, Randall Stewart. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" -.Dd December 15, 2006 +.Dd October 10, 2018 .Dt SCTP 4 .Os .Sh NAME .Nm sctp .Nd Internet Stream Control Transmission Protocol .Sh SYNOPSIS .In sys/types.h .In sys/socket.h .In netinet/sctp.h .Ft int .Fn socket AF_INET SOCK_STREAM IPPROTO_SCTP .Ft int .Fn socket AF_INET SOCK_SEQPACKET IPPROTO_SCTP .Sh DESCRIPTION The .Tn SCTP protocol provides reliable, flow-controlled, two-way transmission of data. It is a message oriented protocol and can support the .Dv SOCK_STREAM and .Dv SOCK_SEQPACKET abstractions. .Tn SCTP uses the standard Internet address format and, in addition, provides a per-host collection of .Dq "port addresses" . Thus, each address is composed of an Internet address specifying the host and network, with a specific .Tn SCTP port on the host identifying the peer entity. .Pp There are two models of programming in SCTP. The first uses the .Dv SOCK_STREAM abstraction. In this abstraction sockets utilizing the .Tn SCTP protocol are either .Dq active or .Dq passive . Active sockets initiate connections to passive sockets. By default, .Tn SCTP sockets are created active; to create a passive socket, the .Xr listen 2 system call must be used after binding the socket with the .Xr bind 2 or .Xr sctp_bindx 3 system calls. Only passive sockets may use the .Xr accept 2 call to accept incoming connections. Only active sockets may use the .Xr connect 2 call to initiate connections. .Pp The other abstraction .Dv SOCK_SEQPACKET provides a .Dq connectionless mode of operation in that the user may send to an address (using any of the valid send calls that carry a socket address) and an association will be setup implicitly by the underlying .Tn SCTP transport stack. This abstraction is the only one capable of sending data on the third leg of the four-way handshake. A user must still call .Xr listen 2 to allow the socket to accept connections. Calling .Xr listen 2 however does not restrict the user from still initiating implicit connections to other peers. .Pp The .Tn SCTP protocol directly supports multi-homing. So when binding a socket with the .Dq wildcard address .Dv INADDR_ANY , the .Tn SCTP stack will inform the peer about all of the local addresses that are deemed in scope of the peer. The peer will then possibly have multiple paths to reach the local host. .Pp The .Tn SCTP transport protocol is also multi-streamed. Multi-streaming refers to the ability to send sub-ordered flows of messages. A user performs this by specifying a specific stream in one of the extended send calls such as the .Xr sctp_send 3 function call. Sending messages on different streams will allow parallel delivery of data i.e., a message loss in stream 1 will not block the delivery of messages sent in stream 2. .Pp The .Tn SCTP transport protocol also provides a unordered service as well. The unordered service allows a message to be sent and delivered with no regard to the ordering of any other message. .Ss Extensions 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. .It "sctp dynamic addressing" This extension allows addresses to be added and deleted dynamically from an existing association. .It "sctp authentication" This extension allows the user to authenticate specific peer chunks (including data) to validate that the peer who sent the message is in fact the peer who setup the association. A shared key option is also provided for so that two stacks can pre-share keys. .It "packet drop" Some routers support a special satellite protocol that will report losses due to corruption. This allows retransmissions without subsequent loss in bandwidth utilization. .It "stream reset" 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 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 sends data when it is presented; when outstanding data has not yet been acknowledged, it gathers small amounts of output to be sent in a single packet once an acknowledgement is received. For some clients, such as window systems that send a stream of mouse events which receive no replies, this packetization may cause significant delays. The boolean option .Dv SCTP_NODELAY defeats this algorithm. .It Dv SCTP_RTOINFO This option returns specific information about an associations .Dq "Retransmission Time Out" . It can also be used to change the default values. .It Dv SCTP_ASSOCINFO This option returns specific information about the requested association. .It Dv SCTP_INITMSG This option allows you to get or set the default sending parameters when an association is implicitly setup. It allows you to change such things as the maximum number of streams allowed inbound and the number of streams requested of the peer. .It Dv SCTP_AUTOCLOSE For the one-to-many model .Dv ( SOCK_SEQPACKET ) associations are setup implicitly. This option allows the user to specify a default number of idle seconds to allow the association be maintained. After the idle timer (where no user message have been sent or have been received from the peer) the association will be gracefully closed. The default for this value is 0, or unlimited (i.e., no automatic close). .It Dv SCTP_SET_PEER_PRIMARY_ADDR The dynamic address extension allows a peer to also request a particular address of its be made into the primary address. This option allows the caller to make such a request to a peer. Note that if the peer does not also support the dynamic address extension, this call will fail. Note the caller must provide a valid local address that the peer has been told about during association setup or dynamically. .It Dv SCTP_PRIMARY_ADDR This option allows the setting of the primary address that the caller wishes to send to. The caller provides the address of a peer that is to be made primary. .It Dv SCTP_ADAPTATION_LAYER The dynamic address extension also allows a user to pass a 32 bit opaque value upon association setup. This option allows a user to set or get this value. .It Dv SCTP_DISABLE_FRAGMENTS By default .Tn SCTP will fragment user messages into multiple pieces that will fit on the network and then later, upon reception, reassemble the pieces into a single user message. If this option is enabled instead, any send that exceeds the path maximum transfer unit (P-MTU) will fail and the message will NOT be sent. .It Dv SCTP_PEER_ADDR_PARAMS This option will allow a user to set or get specific peer address parameters. .It Dv SCTP_DEFAULT_SEND_PARAM When a user does not use one of the extended send calls (e.g., .Xr sctp_sendmsg 3 ) a set of default values apply to each send. These values include things like the stream number to send to as well as the per-protocol id. This option lets a caller both get and set these values. If the user changes these default values, then these new values will be used as the default whenever no information is provided by the sender (i.e., the non-extended API is used). .It Dv SCTP_EVENTS .Tn SCTP has non-data events that it can communicate to its application. By default these are all disabled since they arrive in the data path with a special flag .Dv MSG_NOTIFICATION set upon the received message. This option lets a caller both get what events are current being received as well as set different events that they may be interested in receiving. .It Dv SCTP_I_WANT_MAPPED_V4_ADDR .Tn SCTP supports both IPV4 and IPV6. An association may span both IPV4 and IPV6 addresses since .Tn SCTP is multi-homed. By default, when opening an IPV6 socket, when data arrives on the socket from a peer's V4 address the V4 address will be presented with an address family of AF_INET. If this is undesirable, then this option can be enabled which will then convert all V4 addresses into mapped V6 representations. .It Dv SCTP_MAXSEG By default .Tn SCTP chooses its message fragmentation point based upon the smallest P-MTU of the peer. This option lets the caller set it to a smaller value. Note that while the user can change this value, if the P-MTU is smaller than the value set by the user, then the P-MTU value will override any user setting. .It Dv SCTP_DELAYED_ACK_TIME This option lets the user both set and get the delayed ack time (in milliseconds) that .Tn SCTP is using. The default is 200 milliseconds. .It Dv SCTP_PARTIAL_DELIVERY_POINT .Tn SCTP at times may need to start delivery of a very large message before the entire message has arrived. By default SCTP waits until the incoming message is larger than one fourth of the receive buffer. This option allows the stacks value to be overridden with a smaller value. .It Dv SCTP_FRAGMENT_INTERLEAVE .Tn SCTP at times will start partial delivery (as mentioned above). In the normal case successive reads will continue to return the rest of the message, blocking if needed, until all of that message is read. However this means other messages may have arrived and be ready for delivery and be blocked behind the message being partially delivered. If this option is enabled, when a partial delivery message has no more data to be received, then a subsequent read may return a different message that is ready for delivery. By default this option is off since the user must be using the extended API's to be able to tell the difference between messages (via the stream and stream sequence number). .It Dv SCTP_AUTH_CHUNK By default only the dynamic addressing chunks are authenticated. This option lets a user request an additional chunk be authenticated as well. Note that successive calls to this option will work and continue to add more chunks that require authentication. Note that this option only effects future associations and not existing ones. .It Dv SCTP_AUTH_KEY This option allows a user to specify a shared key that can be later used to authenticate a peer. .It Dv SCTP_HMAC_IDENT This option will let you get or set the list of HMAC algorithms used to authenticate peers. Note that the HMAC values are in priority order where the first HMAC identifier is the most preferred and the last is the least preferred. .It Dv SCTP_AUTH_ACTIVE_KEY This option allows you to make a key active for the generation of authentication information. Note that the peer must have the same key or else the data will be discarded. .It Dv SCTP_AUTH_DELETE_KEY This option allows you to delete an old key. .It Dv SCTP_USE_EXT_RECVINFO The sockets api document allows an extended send/receive information structure to be used. The extended structure includes additional fields related to the next message to be received (after the current receive completes) if such information is known. By default the system will not pass this information. This option allows the user to request this information. .It Dv SCTP_AUTO_ASCONF By default when bound to all address and the system administrator has enables automatic dynamic addresses, the .Tn SCTP stack will automatically generate address changes into add and delete requests to any peers by setting this option to true. This option allows an endpoint to disable that behavior. .It Dv SCTP_MAXBURST By default .Tn SCTP implements micro-burst control so that as the congestion window opens up no large burst of packets can be generated. The default burst limit is four. This option lets the user change this value. .It Dv SCTP_CONTEXT Many sctp extended calls have a context field. The context field is a 32 bit opaque value that will be returned in send failures. This option lets the caller set the default context value to use when none is provided by the user. .It Dv SCTP_EXPLICIT_EOR By default, a single send is a complete message. .Tn SCTP generates an implied record boundary. If this option is enabled, then all sends are part of the same message until the user indicates an end of record with the special flag .Dv SCTP_EOR passed in the sctp_sndrcvinfo flags field. This effectively makes all sends part of the same message until the user specifies differently. This means that a caller must NOT change the stream number until after the .Dv SCTP_EOR is passed to .Tn SCTP else an error will be returned. .It Dv SCTP_STATUS This option is a read-only option that returns various status information about the specified association. .It Dv SCTP_GET_PEER_ADDR_INFO This read-only option returns information about a peer address. .It Dv SCTP_PEER_AUTH_CHUNKS This read-only option returns a list of the chunks the peer requires to be authenticated. .It Dv SCTP_LOCAL_AUTH_CHUNKS This read-only option returns a list of the locally required chunks that must be authenticated. .It Dv SCTP_RESET_STREAMS This socket option is used to cause a stream sequence number or all stream sequence numbers to be reset. Note that the peer .Tn SCTP 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 , .Xr connect 2 , .Xr listen 2 , .Xr sctp_bindx 3 , .Xr sctp_connectx 3 , .Xr sctp_opt_info 3 , .Xr sctp_recvmsg 3 , -.Xr sctp_sendmsg 3 +.Xr sctp_sendmsg 3 , +.Xr blackhole 4 Index: stable/12/sys/netinet/sctp_sysctl.h =================================================================== --- stable/12/sys/netinet/sctp_sysctl.h (revision 339866) +++ stable/12/sys/netinet/sctp_sysctl.h (revision 339867) @@ -1,571 +1,571 @@ /*- * SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 2007, by Cisco Systems, Inc. All rights reserved. * Copyright (c) 2008-2012, by Randall Stewart. All rights reserved. * Copyright (c) 2008-2012, by Michael Tuexen. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * a) Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * b) Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the distribution. * * c) Neither the name of Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. */ #include __FBSDID("$FreeBSD$"); #ifndef _NETINET_SCTP_SYSCTL_H_ #define _NETINET_SCTP_SYSCTL_H_ #include #include struct sctp_sysctl { uint32_t sctp_sendspace; uint32_t sctp_recvspace; uint32_t sctp_auto_asconf; uint32_t sctp_multiple_asconfs; uint32_t sctp_ecn_enable; uint32_t sctp_pr_enable; uint32_t sctp_auth_enable; uint32_t sctp_asconf_enable; uint32_t sctp_reconfig_enable; uint32_t sctp_nrsack_enable; uint32_t sctp_pktdrop_enable; uint32_t sctp_fr_max_burst_default; uint32_t sctp_peer_chunk_oh; uint32_t sctp_max_burst_default; uint32_t sctp_max_chunks_on_queue; uint32_t sctp_hashtblsize; uint32_t sctp_pcbtblsize; uint32_t sctp_min_split_point; uint32_t sctp_chunkscale; uint32_t sctp_delayed_sack_time_default; uint32_t sctp_sack_freq_default; uint32_t sctp_system_free_resc_limit; uint32_t sctp_asoc_free_resc_limit; uint32_t sctp_heartbeat_interval_default; uint32_t sctp_pmtu_raise_time_default; uint32_t sctp_shutdown_guard_time_default; uint32_t sctp_secret_lifetime_default; uint32_t sctp_rto_max_default; uint32_t sctp_rto_min_default; uint32_t sctp_rto_initial_default; uint32_t sctp_init_rto_max_default; uint32_t sctp_valid_cookie_life_default; uint32_t sctp_init_rtx_max_default; uint32_t sctp_assoc_rtx_max_default; uint32_t sctp_path_rtx_max_default; uint32_t sctp_path_pf_threshold; uint32_t sctp_add_more_threshold; uint32_t sctp_nr_incoming_streams_default; uint32_t sctp_nr_outgoing_streams_default; uint32_t sctp_cmt_on_off; uint32_t sctp_cmt_use_dac; uint32_t sctp_use_cwnd_based_maxburst; uint32_t sctp_nat_friendly; uint32_t sctp_L2_abc_variable; uint32_t sctp_mbuf_threshold_count; uint32_t sctp_do_drain; uint32_t sctp_hb_maxburst; uint32_t sctp_abort_if_one_2_one_hits_limit; uint32_t sctp_min_residual; uint32_t sctp_max_retran_chunk; uint32_t sctp_logging_level; /* JRS - Variable for default congestion control module */ uint32_t sctp_default_cc_module; /* RS - Variable for default stream scheduling module */ uint32_t sctp_default_ss_module; uint32_t sctp_default_frag_interleave; uint32_t sctp_mobility_base; uint32_t sctp_mobility_fasthandoff; uint32_t sctp_inits_include_nat_friendly; uint32_t sctp_rttvar_bw; uint32_t sctp_rttvar_rtt; uint32_t sctp_rttvar_eqret; uint32_t sctp_steady_step; uint32_t sctp_use_dccc_ecn; uint32_t sctp_diag_info_code; #if defined(SCTP_LOCAL_TRACE_BUF) struct sctp_log sctp_log; #endif uint32_t sctp_udp_tunneling_port; uint32_t sctp_enable_sack_immediately; uint32_t sctp_vtag_time_wait; uint32_t sctp_buffer_splitting; uint32_t sctp_initial_cwnd; uint32_t sctp_blackhole; #if defined(SCTP_DEBUG) uint32_t sctp_debug_on; #endif #if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING) uint32_t sctp_output_unlocked; #endif }; /* * limits for the sysctl variables */ /* maxdgram: Maximum outgoing SCTP buffer size */ #define SCTPCTL_MAXDGRAM_DESC "Maximum outgoing SCTP buffer size" #define SCTPCTL_MAXDGRAM_MIN 0 #define SCTPCTL_MAXDGRAM_MAX 0xFFFFFFFF #define SCTPCTL_MAXDGRAM_DEFAULT 262144 /* 256k */ /* recvspace: Maximum incoming SCTP buffer size */ #define SCTPCTL_RECVSPACE_DESC "Maximum incoming SCTP buffer size" #define SCTPCTL_RECVSPACE_MIN 0 #define SCTPCTL_RECVSPACE_MAX 0xFFFFFFFF #define SCTPCTL_RECVSPACE_DEFAULT 262144 /* 256k */ /* autoasconf: Enable SCTP Auto-ASCONF */ #define SCTPCTL_AUTOASCONF_DESC "Enable SCTP Auto-ASCONF" #define SCTPCTL_AUTOASCONF_MIN 0 #define SCTPCTL_AUTOASCONF_MAX 1 #define SCTPCTL_AUTOASCONF_DEFAULT 1 /* autoasconf: Enable SCTP Auto-ASCONF */ #define SCTPCTL_MULTIPLEASCONFS_DESC "Enable SCTP Muliple-ASCONFs" #define SCTPCTL_MULTIPLEASCONFS_MIN 0 #define SCTPCTL_MULTIPLEASCONFS_MAX 1 #define SCTPCTL_MULTIPLEASCONFS_DEFAULT SCTP_DEFAULT_MULTIPLE_ASCONFS /* ecn_enable: Enable SCTP ECN */ #define SCTPCTL_ECN_ENABLE_DESC "Enable SCTP ECN" #define SCTPCTL_ECN_ENABLE_MIN 0 #define SCTPCTL_ECN_ENABLE_MAX 1 #define SCTPCTL_ECN_ENABLE_DEFAULT 1 /* pr_enable: Enable PR-SCTP */ #define SCTPCTL_PR_ENABLE_DESC "Enable PR-SCTP" #define SCTPCTL_PR_ENABLE_MIN 0 #define SCTPCTL_PR_ENABLE_MAX 1 #define SCTPCTL_PR_ENABLE_DEFAULT 1 /* auth_enable: Enable SCTP AUTH function */ #define SCTPCTL_AUTH_ENABLE_DESC "Enable SCTP AUTH function" #define SCTPCTL_AUTH_ENABLE_MIN 0 #define SCTPCTL_AUTH_ENABLE_MAX 1 #define SCTPCTL_AUTH_ENABLE_DEFAULT 1 /* asconf_enable: Enable SCTP ASCONF */ #define SCTPCTL_ASCONF_ENABLE_DESC "Enable SCTP ASCONF" #define SCTPCTL_ASCONF_ENABLE_MIN 0 #define SCTPCTL_ASCONF_ENABLE_MAX 1 #define SCTPCTL_ASCONF_ENABLE_DEFAULT 1 /* reconfig_enable: Enable SCTP RE-CONFIG */ #define SCTPCTL_RECONFIG_ENABLE_DESC "Enable SCTP RE-CONFIG" #define SCTPCTL_RECONFIG_ENABLE_MIN 0 #define SCTPCTL_RECONFIG_ENABLE_MAX 1 #define SCTPCTL_RECONFIG_ENABLE_DEFAULT 1 /* nrsack_enable: Enable NR_SACK */ #define SCTPCTL_NRSACK_ENABLE_DESC "Enable SCTP NR-SACK" #define SCTPCTL_NRSACK_ENABLE_MIN 0 #define SCTPCTL_NRSACK_ENABLE_MAX 1 #define SCTPCTL_NRSACK_ENABLE_DEFAULT 0 /* pktdrop_enable: Enable SCTP Packet Drop Reports */ #define SCTPCTL_PKTDROP_ENABLE_DESC "Enable SCTP PKTDROP" #define SCTPCTL_PKTDROP_ENABLE_MIN 0 #define SCTPCTL_PKTDROP_ENABLE_MAX 1 #define SCTPCTL_PKTDROP_ENABLE_DEFAULT 0 /* loopback_nocsum: Enable NO Csum on packets sent on loopback */ #define SCTPCTL_LOOPBACK_NOCSUM_DESC "Enable NO Csum on packets sent on loopback" #define SCTPCTL_LOOPBACK_NOCSUM_MIN 0 #define SCTPCTL_LOOPBACK_NOCSUM_MAX 1 #define SCTPCTL_LOOPBACK_NOCSUM_DEFAULT 1 /* peer_chkoh: Amount to debit peers rwnd per chunk sent */ #define SCTPCTL_PEER_CHKOH_DESC "Amount to debit peers rwnd per chunk sent" #define SCTPCTL_PEER_CHKOH_MIN 0 #define SCTPCTL_PEER_CHKOH_MAX 0xFFFFFFFF #define SCTPCTL_PEER_CHKOH_DEFAULT 256 /* maxburst: Default max burst for sctp endpoints */ #define SCTPCTL_MAXBURST_DESC "Default max burst for sctp endpoints" #define SCTPCTL_MAXBURST_MIN 0 #define SCTPCTL_MAXBURST_MAX 0xFFFFFFFF #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 /* maxchunks: Default max chunks on queue per asoc */ #define SCTPCTL_MAXCHUNKS_DESC "Default max chunks on queue per asoc" #define SCTPCTL_MAXCHUNKS_MIN 0 #define SCTPCTL_MAXCHUNKS_MAX 0xFFFFFFFF #define SCTPCTL_MAXCHUNKS_DEFAULT SCTP_ASOC_MAX_CHUNKS_ON_QUEUE /* tcbhashsize: Tunable for Hash table sizes */ #define SCTPCTL_TCBHASHSIZE_DESC "Tunable for TCB hash table sizes" #define SCTPCTL_TCBHASHSIZE_MIN 1 #define SCTPCTL_TCBHASHSIZE_MAX 0xFFFFFFFF #define SCTPCTL_TCBHASHSIZE_DEFAULT SCTP_TCBHASHSIZE /* pcbhashsize: Tunable for PCB Hash table sizes */ #define SCTPCTL_PCBHASHSIZE_DESC "Tunable for PCB hash table sizes" #define SCTPCTL_PCBHASHSIZE_MIN 1 #define SCTPCTL_PCBHASHSIZE_MAX 0xFFFFFFFF #define SCTPCTL_PCBHASHSIZE_DEFAULT SCTP_PCBHASHSIZE /* min_split_point: Minimum size when splitting a chunk */ #define SCTPCTL_MIN_SPLIT_POINT_DESC "Minimum size when splitting a chunk" #define SCTPCTL_MIN_SPLIT_POINT_MIN 0 #define SCTPCTL_MIN_SPLIT_POINT_MAX 0xFFFFFFFF #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 /* delayed_sack_time: Default delayed SACK timer in ms */ #define SCTPCTL_DELAYED_SACK_TIME_DESC "Default delayed SACK timer in ms" #define SCTPCTL_DELAYED_SACK_TIME_MIN 0 #define SCTPCTL_DELAYED_SACK_TIME_MAX 0xFFFFFFFF #define SCTPCTL_DELAYED_SACK_TIME_DEFAULT SCTP_RECV_MSEC /* sack_freq: Default SACK frequency */ #define SCTPCTL_SACK_FREQ_DESC "Default SACK frequency" #define SCTPCTL_SACK_FREQ_MIN 0 #define SCTPCTL_SACK_FREQ_MAX 0xFFFFFFFF #define SCTPCTL_SACK_FREQ_DEFAULT SCTP_DEFAULT_SACK_FREQ /* sys_resource: Max number of cached resources in the system */ #define SCTPCTL_SYS_RESOURCE_DESC "Max number of cached resources in the system" #define SCTPCTL_SYS_RESOURCE_MIN 0 #define SCTPCTL_SYS_RESOURCE_MAX 0xFFFFFFFF #define SCTPCTL_SYS_RESOURCE_DEFAULT SCTP_DEF_SYSTEM_RESC_LIMIT /* asoc_resource: Max number of cached resources in an asoc */ #define SCTPCTL_ASOC_RESOURCE_DESC "Max number of cached resources in an asoc" #define SCTPCTL_ASOC_RESOURCE_MIN 0 #define SCTPCTL_ASOC_RESOURCE_MAX 0xFFFFFFFF #define SCTPCTL_ASOC_RESOURCE_DEFAULT SCTP_DEF_ASOC_RESC_LIMIT /* heartbeat_interval: Default heartbeat interval in ms */ #define SCTPCTL_HEARTBEAT_INTERVAL_DESC "Default heartbeat interval in ms" #define SCTPCTL_HEARTBEAT_INTERVAL_MIN 0 #define SCTPCTL_HEARTBEAT_INTERVAL_MAX 0xFFFFFFFF #define SCTPCTL_HEARTBEAT_INTERVAL_DEFAULT SCTP_HB_DEFAULT_MSEC /* pmtu_raise_time: Default PMTU raise timer in seconds */ #define SCTPCTL_PMTU_RAISE_TIME_DESC "Default PMTU raise timer in seconds" #define SCTPCTL_PMTU_RAISE_TIME_MIN 0 #define SCTPCTL_PMTU_RAISE_TIME_MAX 0xFFFFFFFF #define SCTPCTL_PMTU_RAISE_TIME_DEFAULT SCTP_DEF_PMTU_RAISE_SEC /* shutdown_guard_time: Default shutdown guard timer in seconds */ #define SCTPCTL_SHUTDOWN_GUARD_TIME_DESC "Shutdown guard timer in seconds (0 means 5 times RTO.Max)" #define SCTPCTL_SHUTDOWN_GUARD_TIME_MIN 0 #define SCTPCTL_SHUTDOWN_GUARD_TIME_MAX 0xFFFFFFFF #define SCTPCTL_SHUTDOWN_GUARD_TIME_DEFAULT 0 /* secret_lifetime: Default secret lifetime in seconds */ #define SCTPCTL_SECRET_LIFETIME_DESC "Default secret lifetime in seconds" #define SCTPCTL_SECRET_LIFETIME_MIN 0 #define SCTPCTL_SECRET_LIFETIME_MAX 0xFFFFFFFF #define SCTPCTL_SECRET_LIFETIME_DEFAULT SCTP_DEFAULT_SECRET_LIFE_SEC /* rto_max: Default maximum retransmission timeout in ms */ #define SCTPCTL_RTO_MAX_DESC "Default maximum retransmission timeout in ms" #define SCTPCTL_RTO_MAX_MIN 0 #define SCTPCTL_RTO_MAX_MAX 0xFFFFFFFF #define SCTPCTL_RTO_MAX_DEFAULT SCTP_RTO_UPPER_BOUND /* rto_min: Default minimum retransmission timeout in ms */ #define SCTPCTL_RTO_MIN_DESC "Default minimum retransmission timeout in ms" #define SCTPCTL_RTO_MIN_MIN 0 #define SCTPCTL_RTO_MIN_MAX 0xFFFFFFFF #define SCTPCTL_RTO_MIN_DEFAULT SCTP_RTO_LOWER_BOUND /* rto_initial: Default initial retransmission timeout in ms */ #define SCTPCTL_RTO_INITIAL_DESC "Default initial retransmission timeout in ms" #define SCTPCTL_RTO_INITIAL_MIN 0 #define SCTPCTL_RTO_INITIAL_MAX 0xFFFFFFFF #define SCTPCTL_RTO_INITIAL_DEFAULT SCTP_RTO_INITIAL /* init_rto_max: Default maximum retransmission timeout during association setup in ms */ #define SCTPCTL_INIT_RTO_MAX_DESC "Default maximum retransmission timeout during association setup in ms" #define SCTPCTL_INIT_RTO_MAX_MIN 0 #define SCTPCTL_INIT_RTO_MAX_MAX 0xFFFFFFFF #define SCTPCTL_INIT_RTO_MAX_DEFAULT SCTP_RTO_UPPER_BOUND /* valid_cookie_life: Default cookie lifetime in sec */ #define SCTPCTL_VALID_COOKIE_LIFE_DESC "Default cookie lifetime in seconds" #define SCTPCTL_VALID_COOKIE_LIFE_MIN 0 #define SCTPCTL_VALID_COOKIE_LIFE_MAX 0xFFFFFFFF #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 /* assoc_rtx_max: Default maximum number of retransmissions per association */ #define SCTPCTL_ASSOC_RTX_MAX_DESC "Default maximum number of retransmissions per association" #define SCTPCTL_ASSOC_RTX_MAX_MIN 0 #define SCTPCTL_ASSOC_RTX_MAX_MAX 0xFFFFFFFF #define SCTPCTL_ASSOC_RTX_MAX_DEFAULT SCTP_DEF_MAX_SEND /* path_rtx_max: Default maximum of retransmissions per path */ #define SCTPCTL_PATH_RTX_MAX_DESC "Default maximum of retransmissions per path" #define SCTPCTL_PATH_RTX_MAX_MIN 0 #define SCTPCTL_PATH_RTX_MAX_MAX 0xFFFFFFFF #define SCTPCTL_PATH_RTX_MAX_DEFAULT SCTP_DEF_MAX_PATH_RTX /* path_pf_threshold: threshold for considering the path potentially failed */ #define SCTPCTL_PATH_PF_THRESHOLD_DESC "Default potentially failed threshold" #define SCTPCTL_PATH_PF_THRESHOLD_MIN 0 #define SCTPCTL_PATH_PF_THRESHOLD_MAX 0xFFFF #define SCTPCTL_PATH_PF_THRESHOLD_DEFAULT SCTPCTL_PATH_PF_THRESHOLD_MAX /* add_more_on_output: When space-wise is it worthwhile to try to add more to a socket send buffer */ #define SCTPCTL_ADD_MORE_ON_OUTPUT_DESC "When space-wise is it worthwhile to try to add more to a socket send buffer" #define SCTPCTL_ADD_MORE_ON_OUTPUT_MIN 0 #define SCTPCTL_ADD_MORE_ON_OUTPUT_MAX 0xFFFFFFFF #define SCTPCTL_ADD_MORE_ON_OUTPUT_DEFAULT SCTP_DEFAULT_ADD_MORE /* incoming_streams: Default number of incoming streams */ #define SCTPCTL_INCOMING_STREAMS_DESC "Default number of incoming streams" #define SCTPCTL_INCOMING_STREAMS_MIN 1 #define SCTPCTL_INCOMING_STREAMS_MAX 65535 #define SCTPCTL_INCOMING_STREAMS_DEFAULT SCTP_ISTREAM_INITIAL /* outgoing_streams: Default number of outgoing streams */ #define SCTPCTL_OUTGOING_STREAMS_DESC "Default number of outgoing streams" #define SCTPCTL_OUTGOING_STREAMS_MIN 1 #define SCTPCTL_OUTGOING_STREAMS_MAX 65535 #define SCTPCTL_OUTGOING_STREAMS_DEFAULT SCTP_OSTREAM_INITIAL /* cmt_on_off: CMT on/off flag */ #define SCTPCTL_CMT_ON_OFF_DESC "CMT settings" #define SCTPCTL_CMT_ON_OFF_MIN SCTP_CMT_OFF #define SCTPCTL_CMT_ON_OFF_MAX SCTP_CMT_MAX #define SCTPCTL_CMT_ON_OFF_DEFAULT SCTP_CMT_OFF /* cmt_use_dac: CMT DAC on/off flag */ #define SCTPCTL_CMT_USE_DAC_DESC "CMT DAC on/off flag" #define SCTPCTL_CMT_USE_DAC_MIN 0 #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 /* nat_friendly: SCTP NAT friendly operation */ #define SCTPCTL_NAT_FRIENDLY_DESC "SCTP NAT friendly operation" #define SCTPCTL_NAT_FRIENDLY_MIN 0 #define SCTPCTL_NAT_FRIENDLY_MAX 1 #define SCTPCTL_NAT_FRIENDLY_DEFAULT 1 /* abc_l_var: SCTP ABC max increase per SACK (L) */ #define SCTPCTL_ABC_L_VAR_DESC "SCTP ABC max increase per SACK (L)" #define SCTPCTL_ABC_L_VAR_MIN 0 #define SCTPCTL_ABC_L_VAR_MAX 0xFFFFFFFF #define SCTPCTL_ABC_L_VAR_DEFAULT 2 /* max_chained_mbufs: Default max number of small mbufs on a chain */ #define SCTPCTL_MAX_CHAINED_MBUFS_DESC "Default max number of small mbufs on a chain" #define SCTPCTL_MAX_CHAINED_MBUFS_MIN 0 #define SCTPCTL_MAX_CHAINED_MBUFS_MAX 0xFFFFFFFF #define SCTPCTL_MAX_CHAINED_MBUFS_DEFAULT SCTP_DEFAULT_MBUFS_IN_CHAIN /* do_sctp_drain: Should SCTP respond to the drain calls */ #define SCTPCTL_DO_SCTP_DRAIN_DESC "Should SCTP respond to the drain calls" #define SCTPCTL_DO_SCTP_DRAIN_MIN 0 #define SCTPCTL_DO_SCTP_DRAIN_MAX 1 #define SCTPCTL_DO_SCTP_DRAIN_DEFAULT 1 /* hb_max_burst: Confirmation Heartbeat max burst? */ #define SCTPCTL_HB_MAX_BURST_DESC "Confirmation Heartbeat max burst" #define SCTPCTL_HB_MAX_BURST_MIN 1 #define SCTPCTL_HB_MAX_BURST_MAX 0xFFFFFFFF #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 /* min_residual: min residual in a data fragment leftover */ #define SCTPCTL_MIN_RESIDUAL_DESC "Minimum residual data chunk in second part of split" #define SCTPCTL_MIN_RESIDUAL_MIN 20 #define SCTPCTL_MIN_RESIDUAL_MAX 65535 #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 /* sctp_logging: This gives us logging when the options are enabled */ #define SCTPCTL_LOGGING_LEVEL_DESC "Ltrace/KTR trace logging level" #define SCTPCTL_LOGGING_LEVEL_MIN 0 #define SCTPCTL_LOGGING_LEVEL_MAX 0xffffffff #define SCTPCTL_LOGGING_LEVEL_DEFAULT 0 /* JRS - default congestion control module sysctl */ #define SCTPCTL_DEFAULT_CC_MODULE_DESC "Default congestion control module" #define SCTPCTL_DEFAULT_CC_MODULE_MIN 0 #define SCTPCTL_DEFAULT_CC_MODULE_MAX 2 #define SCTPCTL_DEFAULT_CC_MODULE_DEFAULT 0 /* RS - default stream scheduling module sysctl */ #define SCTPCTL_DEFAULT_SS_MODULE_DESC "Default stream scheduling module" #define SCTPCTL_DEFAULT_SS_MODULE_MIN 0 #define SCTPCTL_DEFAULT_SS_MODULE_MAX 5 #define SCTPCTL_DEFAULT_SS_MODULE_DEFAULT 0 /* RRS - default fragment interleave */ #define SCTPCTL_DEFAULT_FRAG_INTERLEAVE_DESC "Default fragment interleave level" #define SCTPCTL_DEFAULT_FRAG_INTERLEAVE_MIN 0 #define SCTPCTL_DEFAULT_FRAG_INTERLEAVE_MAX 2 #define SCTPCTL_DEFAULT_FRAG_INTERLEAVE_DEFAULT 1 /* mobility_base: Enable SCTP mobility support */ #define SCTPCTL_MOBILITY_BASE_DESC "Enable SCTP base mobility" #define SCTPCTL_MOBILITY_BASE_MIN 0 #define SCTPCTL_MOBILITY_BASE_MAX 1 #define SCTPCTL_MOBILITY_BASE_DEFAULT 0 /* mobility_fasthandoff: Enable SCTP fast handoff support */ #define SCTPCTL_MOBILITY_FASTHANDOFF_DESC "Enable SCTP fast handoff" #define SCTPCTL_MOBILITY_FASTHANDOFF_MIN 0 #define SCTPCTL_MOBILITY_FASTHANDOFF_MAX 1 #define SCTPCTL_MOBILITY_FASTHANDOFF_DEFAULT 0 /* Enable SCTP/UDP tunneling port */ #define SCTPCTL_UDP_TUNNELING_PORT_DESC "Set the SCTP/UDP tunneling port" #define SCTPCTL_UDP_TUNNELING_PORT_MIN 0 #define SCTPCTL_UDP_TUNNELING_PORT_MAX 65535 #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 #define SCTPCTL_DIAG_INFO_CODE_DESC "Diagnostic information error cause code" #define SCTPCTL_DIAG_INFO_CODE_MIN 0 #define SCTPCTL_DIAG_INFO_CODE_MAX 65535 #define SCTPCTL_DIAG_INFO_CODE_DEFAULT 0 #if defined(SCTP_DEBUG) /* debug: Configure debug output */ #define SCTPCTL_DEBUG_DESC "Configure debug output" #define SCTPCTL_DEBUG_MIN 0 #define SCTPCTL_DEBUG_MAX 0xFFFFFFFF #define SCTPCTL_DEBUG_DEFAULT 0 #endif #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 #endif #if defined(_KERNEL) || defined(__Userspace__) #if defined(SYSCTL_DECL) SYSCTL_DECL(_net_inet_sctp); #endif void sctp_init_sysctls(void); #endif /* _KERNEL */ #endif /* __sctp_sysctl_h__ */ Index: stable/12 =================================================================== --- stable/12 (revision 339866) +++ stable/12 (revision 339867) Property changes on: stable/12 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r339791