aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dccp.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2010-11-14 11:25:46 -0500
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2010-11-15 01:12:00 -0500
commitd83447f0944e73d690218d79c07762ffa4ceb9e4 (patch)
tree2a9adf943eee50d8c495ac9302692a277d862d92 /include/linux/dccp.h
parent18219463c884bfdb7954d298b9edb5194b14d621 (diff)
dccp ccid-2: Schedule Sync as out-of-band mechanism
The problem with Ack Vectors is that i) their length is variable and can in principle grow quite large, ii) it is hard to predict exactly how large they will be. Due to the second point it seems not a good idea to reduce the MPS; in particular when on average there is enough room for the Ack Vector and an increase in length is momentarily due to some burst loss, after which the Ack Vector returns to its normal/average length. The solution taken by this patch is to subtract a minimum-expected Ack Vector length from the MPS, and to defer any larger Ack Vectors onto a separate Sync - but only if indeed there is no space left on the skb. This patch provides the infrastructure to schedule Sync-packets for transporting (urgent) out-of-band data. Its signalling is quicker than scheduling an Ack, since it does not need to wait for new application data. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Diffstat (limited to 'include/linux/dccp.h')
-rw-r--r--include/linux/dccp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 749f01ccd26e..eed52bcd35d0 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -462,6 +462,7 @@ struct dccp_ackvec;
462 * @dccps_hc_rx_insert_options - receiver wants to add options when acking 462 * @dccps_hc_rx_insert_options - receiver wants to add options when acking
463 * @dccps_hc_tx_insert_options - sender wants to add options when sending 463 * @dccps_hc_tx_insert_options - sender wants to add options when sending
464 * @dccps_server_timewait - server holds timewait state on close (RFC 4340, 8.3) 464 * @dccps_server_timewait - server holds timewait state on close (RFC 4340, 8.3)
465 * @dccps_sync_scheduled - flag which signals "send out-of-band message soon"
465 * @dccps_xmitlet - tasklet scheduled by the TX CCID to dequeue data packets 466 * @dccps_xmitlet - tasklet scheduled by the TX CCID to dequeue data packets
466 * @dccps_xmit_timer - used by the TX CCID to delay sending (rate-based pacing) 467 * @dccps_xmit_timer - used by the TX CCID to delay sending (rate-based pacing)
467 * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs) 468 * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs)
@@ -503,6 +504,7 @@ struct dccp_sock {
503 __u8 dccps_hc_rx_insert_options:1; 504 __u8 dccps_hc_rx_insert_options:1;
504 __u8 dccps_hc_tx_insert_options:1; 505 __u8 dccps_hc_tx_insert_options:1;
505 __u8 dccps_server_timewait:1; 506 __u8 dccps_server_timewait:1;
507 __u8 dccps_sync_scheduled:1;
506 struct tasklet_struct dccps_xmitlet; 508 struct tasklet_struct dccps_xmitlet;
507 struct timer_list dccps_xmit_timer; 509 struct timer_list dccps_xmit_timer;
508}; 510};