aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/ackvec.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2010-11-14 11:25:23 -0500
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2010-11-15 01:11:59 -0500
commit3802408644515e29fb723d51a5317301b212cf3a (patch)
tree834533b0cf43366747ea237b43f06e4462aed94e /net/dccp/ackvec.h
parent5753fdfe8bd8e9a2ff9e5af19b0ffc78bfcd502a (diff)
dccp ccid-2: Update code for the Ack Vector input/registration routine
This patch updates the code which registers new packets as received, using the new circular buffer interface. It contributes a new algorithm which * supports both tail/head pointers and buffer wrap-around and * deals with overflow (head/tail move in lock-step). Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Diffstat (limited to 'net/dccp/ackvec.h')
-rw-r--r--net/dccp/ackvec.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/dccp/ackvec.h b/net/dccp/ackvec.h
index 3f7008187b8e..21c4212d1be0 100644
--- a/net/dccp/ackvec.h
+++ b/net/dccp/ackvec.h
@@ -29,6 +29,9 @@
29/* Estimated minimum average Ack Vector length - used for updating MPS */ 29/* Estimated minimum average Ack Vector length - used for updating MPS */
30#define DCCPAV_MIN_OPTLEN 16 30#define DCCPAV_MIN_OPTLEN 16
31 31
32/* Threshold for coping with large bursts of losses */
33#define DCCPAV_BURST_THRESH (DCCPAV_MAX_ACKVEC_LEN / 8)
34
32enum dccp_ackvec_states { 35enum dccp_ackvec_states {
33 DCCPAV_RECEIVED = 0x00, 36 DCCPAV_RECEIVED = 0x00,
34 DCCPAV_ECN_MARKED = 0x40, 37 DCCPAV_ECN_MARKED = 0x40,
@@ -116,6 +119,7 @@ extern int dccp_ackvec_parse(struct sock *sk, const struct sk_buff *skb,
116 u64 *ackno, const u8 opt, 119 u64 *ackno, const u8 opt,
117 const u8 *value, const u8 len); 120 const u8 *value, const u8 len);
118 121
122extern void dccp_ackvec_input(struct dccp_ackvec *av, struct sk_buff *skb);
119extern int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum); 123extern int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum);
120extern void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno); 124extern void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno);
121extern u16 dccp_ackvec_buflen(const struct dccp_ackvec *av); 125extern u16 dccp_ackvec_buflen(const struct dccp_ackvec *av);