aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/networking/dccp.txt54
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
46Socket options 46Socket options
47============== 47==============
48DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes
49a policy ID as argument and can only be set before the connection (i.e. changes
50during an established connection are not supported). Currently, two policies are
51defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special,
52and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
53u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
54a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
55be 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
60DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero
61value is always interpreted as unbounded queue length. If different from zero,
62the interpretation of this parameter depends on the current dequeuing policy
63(see above): the "simple" policy will enforce a fixed queue size by returning
64EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the
65lowest-priority packet first. The default value for this parameter is
66initialised from /proc/sys/net/dccp/default/tx_qlen.
48 67
49DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of 68DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of
50service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, 69service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,
@@ -57,6 +76,24 @@ can be set before calling bind().
57DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet 76DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet
58size (application payload size) in bytes, see RFC 4340, section 14. 77size (application payload size) in bytes, see RFC 4340, section 14.
59 78
79DCCP_SOCKOPT_AVAILABLE_CCIDS is also read-only and returns the list of CCIDs
80supported by the endpoint (see include/linux/dccp.h for symbolic constants).
81The caller needs to provide a sufficiently large (> 2) array of type uint8_t.
82
83DCCP_SOCKOPT_CCID is write-only and sets both the TX and RX CCIDs at the same
84time, combining the operation of the next two socket options. This option is
85preferrable over the latter two, since often applications will use the same
86type of CCID for both directions; and mixed use of CCIDs is not currently well
87understood. This socket option takes as argument at least one uint8_t value, or
88an array of uint8_t values, which must match available CCIDS (see above). CCIDs
89must be registered on the socket before calling connect() or listen().
90
91DCCP_SOCKOPT_TX_CCID is read/write. It returns the current CCID (if set) or sets
92the preference list for the TX CCID, using the same format as DCCP_SOCKOPT_CCID.
93Please note that the getsockopt argument type here is `int', not uint8_t.
94
95DCCP_SOCKOPT_RX_CCID is analogous to DCCP_SOCKOPT_TX_CCID, but for the RX CCID.
96
60DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold 97DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold
61timewait state when closing the connection (RFC 4340, 8.3). The usual case is 98timewait state when closing the connection (RFC 4340, 8.3). The usual case is
62that the closing server sends a CloseReq, whereupon the client holds timewait 99that 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
118send_ndp = 1
119 Whether or not to send NDP count options (sec. 7.7.2).
120
121send_ackvec = 1
122 Whether or not to send Ack Vector options (sec. 11.5).
123
124ack_ratio = 2
125 The default Ack Ratio (sec. 11.3) to use.
126
127tx_ccid = 2 155tx_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
130rx_ccid = 2 159rx_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
133seq_window = 100 162seq_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
136tx_qlen = 5 166tx_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