aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dccp.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2007-12-13 09:25:01 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:57:48 -0500
commitb8599d20708fa3bde1e414689f3474560c2d990b (patch)
treeadeb51da63a75b03fa55ddbc4712c8359240a3bf /include/linux/dccp.h
parent28be5440044d5b19b0331f79fb3e81845ad6d77e (diff)
[DCCP]: Support for server holding timewait state
This adds a socket option and signalling support for the case where the server holds timewait state on closing the connection, as described in RFC 4340, 8.3. Since holding timewait state at the server is the non-usual case, it is enabled via a socket option. Documentation for this socket option has been added. The setsockopt statement has been made resilient against different possible cases of expressing boolean `true' values using a suggestion by Ian McDonald. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/dccp.h')
-rw-r--r--include/linux/dccp.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 312b989c7edb..c676021603f5 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -205,6 +205,7 @@ struct dccp_so_feat {
205#define DCCP_SOCKOPT_CHANGE_L 3 205#define DCCP_SOCKOPT_CHANGE_L 3
206#define DCCP_SOCKOPT_CHANGE_R 4 206#define DCCP_SOCKOPT_CHANGE_R 4
207#define DCCP_SOCKOPT_GET_CUR_MPS 5 207#define DCCP_SOCKOPT_GET_CUR_MPS 5
208#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
208#define DCCP_SOCKOPT_SEND_CSCOV 10 209#define DCCP_SOCKOPT_SEND_CSCOV 10
209#define DCCP_SOCKOPT_RECV_CSCOV 11 210#define DCCP_SOCKOPT_RECV_CSCOV 11
210#define DCCP_SOCKOPT_CCID_RX_INFO 128 211#define DCCP_SOCKOPT_CCID_RX_INFO 128
@@ -492,6 +493,7 @@ struct dccp_ackvec;
492 * @dccps_role - role of this sock, one of %dccp_role 493 * @dccps_role - role of this sock, one of %dccp_role
493 * @dccps_hc_rx_insert_options - receiver wants to add options when acking 494 * @dccps_hc_rx_insert_options - receiver wants to add options when acking
494 * @dccps_hc_tx_insert_options - sender wants to add options when sending 495 * @dccps_hc_tx_insert_options - sender wants to add options when sending
496 * @dccps_server_timewait - server holds timewait state on close (RFC 4340, 8.3)
495 * @dccps_xmit_timer - timer for when CCID is not ready to send 497 * @dccps_xmit_timer - timer for when CCID is not ready to send
496 * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs) 498 * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs)
497 */ 499 */
@@ -528,6 +530,7 @@ struct dccp_sock {
528 enum dccp_role dccps_role:2; 530 enum dccp_role dccps_role:2;
529 __u8 dccps_hc_rx_insert_options:1; 531 __u8 dccps_hc_rx_insert_options:1;
530 __u8 dccps_hc_tx_insert_options:1; 532 __u8 dccps_hc_tx_insert_options:1;
533 __u8 dccps_server_timewait:1;
531 struct timer_list dccps_xmit_timer; 534 struct timer_list dccps_xmit_timer;
532}; 535};
533 536