aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/networking
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2008-09-04 01:30:19 -0400
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2008-09-04 01:45:28 -0400
commitfade756f18d42694e3acb00e3471ab43002cba16 (patch)
treef2ae912af9678315b672eb292ef17de42a97fbf3 /Documentation/networking
parent73bbe095bbb9ce5f94d5475bad54c7ccd8573b1b (diff)
dccp: Set per-connection CCIDs via socket options
With this patch, TX/RX CCIDs can now be changed on a per-connection basis, which overrides the defaults set by the global sysctl variables for TX/RX CCIDs. To make full use of this facility, the remaining patches of this patch set are needed, which track dependencies and activate negotiated feature values. Note on the maximum number of CCIDs that can be registered: ----------------------------------------------------------- The maximum number of CCIDs that can be registered on the socket is constrained by the space in a Confirm/Change feature negotiation option. The space in these in turn depends on the size of header options as defined in RFC 4340, 5.8. Since this is a recurring constant, it has been moved from ackvec.h into linux/dccp.h, clarifying its purpose. Relative to this size, the maximum number of CCID identifiers that can be present in a Confirm option (which always consumes 1 byte more than a Change option, cf. 6.1) is 2 bytes less than the maximum TLV size: one for the CCID-feature-type and one for the selected value. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Diffstat (limited to 'Documentation/networking')
-rw-r--r--Documentation/networking/dccp.txt14
1 files changed, 14 insertions, 0 deletions
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt
index 43df4487379b..610083ff73f6 100644
--- a/Documentation/networking/dccp.txt
+++ b/Documentation/networking/dccp.txt
@@ -61,6 +61,20 @@ DCCP_SOCKOPT_AVAILABLE_CCIDS is also read-only and returns the list of CCIDs
61supported by the endpoint (see include/linux/dccp.h for symbolic constants). 61supported by the endpoint (see include/linux/dccp.h for symbolic constants).
62The caller needs to provide a sufficiently large (> 2) array of type uint8_t. 62The caller needs to provide a sufficiently large (> 2) array of type uint8_t.
63 63
64DCCP_SOCKOPT_CCID is write-only and sets both the TX and RX CCIDs at the same
65time, combining the operation of the next two socket options. This option is
66preferrable over the latter two, since often applications will use the same
67type of CCID for both directions; and mixed use of CCIDs is not currently well
68understood. This socket option takes as argument at least one uint8_t value, or
69an array of uint8_t values, which must match available CCIDS (see above). CCIDs
70must be registered on the socket before calling connect() or listen().
71
72DCCP_SOCKOPT_TX_CCID is read/write. It returns the current CCID (if set) or sets
73the preference list for the TX CCID, using the same format as DCCP_SOCKOPT_CCID.
74Please note that the getsockopt argument type here is `int', not uint8_t.
75
76DCCP_SOCKOPT_RX_CCID is analogous to DCCP_SOCKOPT_TX_CCID, but for the RX CCID.
77
64DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold 78DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold
65timewait state when closing the connection (RFC 4340, 8.3). The usual case is 79timewait state when closing the connection (RFC 4340, 8.3). The usual case is
66that the closing server sends a CloseReq, whereupon the client holds timewait 80that the closing server sends a CloseReq, whereupon the client holds timewait