aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/input.c
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2010-11-10 15:20:07 -0500
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2010-11-10 15:20:07 -0500
commitf17a37c9b8c4b32c01e501a84fa6f30e344c6110 (patch)
tree7ff8e9a232aaddcd33c302c5c6a577af26634212 /net/dccp/input.c
parent973a34aa8593dbfe84386343c694f5beecb51d8a (diff)
dccp ccid-2: Ack Vector interface clean-up
This patch brings the Ack Vector interface up to date. Its main purpose is to lay the basis for the subsequent patches of this set, which will use the new data structure fields and routines. There are no real algorithmic changes, rather an adaptation: (1) Replaced the static Ack Vector size (2) with a #define so that it can be adapted (with low loss / Ack Ratio, a value of 1 works, so 2 seems to be sufficient for the moment) and added a solution so that computing the ECN nonce will continue to work - even with larger Ack Vectors. (2) Replaced the #defines for Ack Vector states with a complete enum. (3) Replaced #defines to compute Ack Vector length and state with general purpose routines (inlines), and updated code to use these. (4) Added a `tail' field (conversion to circular buffer in subsequent patch). (5) Updated the (outdated) documentation for Ack Vector struct. (6) All sequence number containers now trimmed to 48 bits. (7) Removal of unused bits: * removed dccpav_ack_nonce from struct dccp_ackvec, since this is already redundantly stored in the `dccpavr_ack_nonce' (of Ack Vector record); * removed Elapsed Time for Ack Vectors (it was nowhere used); * replaced semantics of dccpavr_sent_len with dccpavr_ack_runlen, since the code needs to be able to remember the old run length; * reduced the de-/allocation routines (redundant / duplicate tests). Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Diffstat (limited to 'net/dccp/input.c')
-rw-r--r--net/dccp/input.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/dccp/input.c b/net/dccp/input.c
index 265985370fa1..c7aeeba859d4 100644
--- a/net/dccp/input.c
+++ b/net/dccp/input.c
@@ -378,8 +378,7 @@ int dccp_rcv_established(struct sock *sk, struct sk_buff *skb,
378 378
379 if (dp->dccps_hc_rx_ackvec != NULL && 379 if (dp->dccps_hc_rx_ackvec != NULL &&
380 dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk, 380 dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk,
381 DCCP_SKB_CB(skb)->dccpd_seq, 381 DCCP_SKB_CB(skb)->dccpd_seq, DCCPAV_RECEIVED))
382 DCCP_ACKVEC_STATE_RECEIVED))
383 goto discard; 382 goto discard;
384 dccp_deliver_input_to_ccids(sk, skb); 383 dccp_deliver_input_to_ccids(sk, skb);
385 384
@@ -637,8 +636,7 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
637 636
638 if (dp->dccps_hc_rx_ackvec != NULL && 637 if (dp->dccps_hc_rx_ackvec != NULL &&
639 dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk, 638 dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk,
640 DCCP_SKB_CB(skb)->dccpd_seq, 639 DCCP_SKB_CB(skb)->dccpd_seq, DCCPAV_RECEIVED))
641 DCCP_ACKVEC_STATE_RECEIVED))
642 goto discard; 640 goto discard;
643 641
644 dccp_deliver_input_to_ccids(sk, skb); 642 dccp_deliver_input_to_ccids(sk, skb);