diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2010-11-14 11:25:23 -0500 |
---|---|---|
committer | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2010-11-15 01:11:59 -0500 |
commit | 3802408644515e29fb723d51a5317301b212cf3a (patch) | |
tree | 834533b0cf43366747ea237b43f06e4462aed94e /net/dccp/ackvec.h | |
parent | 5753fdfe8bd8e9a2ff9e5af19b0ffc78bfcd502a (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.h | 4 |
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 | |||
32 | enum dccp_ackvec_states { | 35 | enum 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 | ||
122 | extern void dccp_ackvec_input(struct dccp_ackvec *av, struct sk_buff *skb); | ||
119 | extern int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum); | 123 | extern int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum); |
120 | extern void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno); | 124 | extern void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno); |
121 | extern u16 dccp_ackvec_buflen(const struct dccp_ackvec *av); | 125 | extern u16 dccp_ackvec_buflen(const struct dccp_ackvec *av); |