dccp ccid-2: Ack Vector interface clean-up
commitf17a37c9b8c4b32c01e501a84fa6f30e344c6110
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Wed, 10 Nov 2010 20:20:07 +0000 (10 21:20 +0100)
committerGerrit Renker <gerrit@erg.abdn.ac.uk>
Wed, 10 Nov 2010 20:20:07 +0000 (10 21:20 +0100)
tree7ff8e9a232aaddcd33c302c5c6a577af26634212
parent973a34aa8593dbfe84386343c694f5beecb51d8a
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>
net/dccp/ackvec.c
net/dccp/ackvec.h
net/dccp/ccids/ccid2.c
net/dccp/input.c
net/dccp/options.c