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>
This commit is contained in:
@ -29,6 +29,9 @@
|
||||
/* Estimated minimum average Ack Vector length - used for updating MPS */
|
||||
#define DCCPAV_MIN_OPTLEN 16
|
||||
|
||||
/* Threshold for coping with large bursts of losses */
|
||||
#define DCCPAV_BURST_THRESH (DCCPAV_MAX_ACKVEC_LEN / 8)
|
||||
|
||||
enum dccp_ackvec_states {
|
||||
DCCPAV_RECEIVED = 0x00,
|
||||
DCCPAV_ECN_MARKED = 0x40,
|
||||
@ -116,6 +119,7 @@ extern int dccp_ackvec_parse(struct sock *sk, const struct sk_buff *skb,
|
||||
u64 *ackno, const u8 opt,
|
||||
const u8 *value, const u8 len);
|
||||
|
||||
extern void dccp_ackvec_input(struct dccp_ackvec *av, struct sk_buff *skb);
|
||||
extern int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum);
|
||||
extern void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno);
|
||||
extern u16 dccp_ackvec_buflen(const struct dccp_ackvec *av);
|
||||
|
Reference in New Issue
Block a user