diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/networking/dccp.txt | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt index 39131a3c78f8..fcfc12534428 100644 --- a/Documentation/networking/dccp.txt +++ b/Documentation/networking/dccp.txt | |||
@@ -45,6 +45,25 @@ http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree | |||
45 | 45 | ||
46 | Socket options | 46 | Socket options |
47 | ============== | 47 | ============== |
48 | DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes | ||
49 | a policy ID as argument and can only be set before the connection (i.e. changes | ||
50 | during an established connection are not supported). Currently, two policies are | ||
51 | defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special, | ||
52 | and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an | ||
53 | u32 priority value as ancillary data to sendmsg(), where higher numbers indicate | ||
54 | a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to | ||
55 | be formatted using a cmsg(3) message header filled in as follows: | ||
56 | cmsg->cmsg_level = SOL_DCCP; | ||
57 | cmsg->cmsg_type = DCCP_SCM_PRIORITY; | ||
58 | cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); /* or CMSG_LEN(4) */ | ||
59 | |||
60 | DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero | ||
61 | value is always interpreted as unbounded queue length. If different from zero, | ||
62 | the interpretation of this parameter depends on the current dequeuing policy | ||
63 | (see above): the "simple" policy will enforce a fixed queue size by returning | ||
64 | EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the | ||
65 | lowest-priority packet first. The default value for this parameter is | ||
66 | initialised from /proc/sys/net/dccp/default/tx_qlen. | ||
48 | 67 | ||
49 | DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of | 68 | DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of |
50 | service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, | 69 | service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, |
@@ -57,6 +76,24 @@ can be set before calling bind(). | |||
57 | DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet | 76 | DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet |
58 | size (application payload size) in bytes, see RFC 4340, section 14. | 77 | size (application payload size) in bytes, see RFC 4340, section 14. |
59 | 78 | ||
79 | DCCP_SOCKOPT_AVAILABLE_CCIDS is also read-only and returns the list of CCIDs | ||
80 | supported by the endpoint (see include/linux/dccp.h for symbolic constants). | ||
81 | The caller needs to provide a sufficiently large (> 2) array of type uint8_t. | ||
82 | |||
83 | DCCP_SOCKOPT_CCID is write-only and sets both the TX and RX CCIDs at the same | ||
84 | time, combining the operation of the next two socket options. This option is | ||
85 | preferrable over the latter two, since often applications will use the same | ||
86 | type of CCID for both directions; and mixed use of CCIDs is not currently well | ||
87 | understood. This socket option takes as argument at least one uint8_t value, or | ||
88 | an array of uint8_t values, which must match available CCIDS (see above). CCIDs | ||
89 | must be registered on the socket before calling connect() or listen(). | ||
90 | |||
91 | DCCP_SOCKOPT_TX_CCID is read/write. It returns the current CCID (if set) or sets | ||
92 | the preference list for the TX CCID, using the same format as DCCP_SOCKOPT_CCID. | ||
93 | Please note that the getsockopt argument type here is `int', not uint8_t. | ||
94 | |||
95 | DCCP_SOCKOPT_RX_CCID is analogous to DCCP_SOCKOPT_TX_CCID, but for the RX CCID. | ||
96 | |||
60 | DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold | 97 | DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold |
61 | timewait state when closing the connection (RFC 4340, 8.3). The usual case is | 98 | timewait state when closing the connection (RFC 4340, 8.3). The usual case is |
62 | that the closing server sends a CloseReq, whereupon the client holds timewait | 99 | that the closing server sends a CloseReq, whereupon the client holds timewait |
@@ -115,23 +152,16 @@ retries2 | |||
115 | importance for retransmitted acknowledgments and feature negotiation, | 152 | importance for retransmitted acknowledgments and feature negotiation, |
116 | data packets are never retransmitted. Analogue of tcp_retries2. | 153 | data packets are never retransmitted. Analogue of tcp_retries2. |
117 | 154 | ||
118 | send_ndp = 1 | ||
119 | Whether or not to send NDP count options (sec. 7.7.2). | ||
120 | |||
121 | send_ackvec = 1 | ||
122 | Whether or not to send Ack Vector options (sec. 11.5). | ||
123 | |||
124 | ack_ratio = 2 | ||
125 | The default Ack Ratio (sec. 11.3) to use. | ||
126 | |||
127 | tx_ccid = 2 | 155 | tx_ccid = 2 |
128 | Default CCID for the sender-receiver half-connection. | 156 | Default CCID for the sender-receiver half-connection. Depending on the |
157 | choice of CCID, the Send Ack Vector feature is enabled automatically. | ||
129 | 158 | ||
130 | rx_ccid = 2 | 159 | rx_ccid = 2 |
131 | Default CCID for the receiver-sender half-connection. | 160 | Default CCID for the receiver-sender half-connection; see tx_ccid. |
132 | 161 | ||
133 | seq_window = 100 | 162 | seq_window = 100 |
134 | The initial sequence window (sec. 7.5.2). | 163 | The initial sequence window (sec. 7.5.2) of the sender. This influences |
164 | the local ackno validity and the remote seqno validity windows (7.5.1). | ||
135 | 165 | ||
136 | tx_qlen = 5 | 166 | tx_qlen = 5 |
137 | The size of the transmit buffer in packets. A value of 0 corresponds | 167 | The size of the transmit buffer in packets. A value of 0 corresponds |