Netdev List
 help / color / mirror / Atom feed
From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
To: acme@redhat.com
Cc: dccp@vger.kernel.org, netdev@vger.kernel.org
Subject: [DCCP] [RFC] [Patch 0/14]: Ack Vector implementation + fixes
Date: Wed, 19 Dec 2007 14:25:41 +0000	[thread overview]
Message-ID: <1198074355-18842-1-git-send-email-gerrit@erg.abdn.ac.uk> (raw)
In-Reply-To: dccp_ackvector_rfc_patch_set

This set of patches adds functionality to the existing DCCP Ack Vector
implementation, extends it to a full circular buffer, and fixes two
previously undiscovered problems which otherwise result in a corrupted
buffer state. 
It is important that Ack Vectors run reliably since otherwise problems in
other parts (in particular CCID2) can not be fixed.

Quite some testing has been performed so that I am almost convinced it is
bug free. To make 100% sure that it contains no further hidden issues
as before, I would like to post this as RFC, to be eventually submitted
next year.


Patch  #1: Fixes the problem that CCID2 ignores Ack Vectors on some packets.
Patch  #2: Adds a tail pointer to the buffer and makes the size configurable.
Patch  #3: Decouples the use of Elapsed Time from the use of Ack Vectors. 
Patch  #4: Provides inlines for Ack Vector state and run length.
Patch  #5: Removes redundancies from the allocation / de-allocation routines.
Patch  #6: Splits Ack Vector specific code from option-specific code.
Patch  #7: Avoids doing unnecessary work when clearing state: the sender of
           Ack Vectors is only interested in the highest-received Ack Number
	   when clearing state. Hence parsing any Ack Vectors for this purpose
	   (which only contain lower Ack Numbers) is entirely unnecessary.
Patch  #8: Replaces #defines for Ack Vector states with enum.
Patch  #9: Provides two extensions required for robustness: overflow handling
           (indicated by a flag) and tracking the lowest-unacknowledged sequence
	   number (tail_ackno)
Patch #10: Inlines for buffer index manipulation, dynamic buffer length calculation.
Patch #11: Implements algorithm to clear buffer state (non-trivial).
Patch #12: Updates the code which registers incoming packets in the buffer.
Patch #13: Aggregates Ack-Vector specific code into one function, thus making it
           easier/simpler for the main DCCP module to use Ack Vectors.
Patch #14: Cleans up old and now unused bits.


The above patches have been uploaded to 

	git://eden-feed.erg.abdn.ac.uk/dccp_exp		[dccp]

but please note that the server will be switched off from 21/12 ... 01/08.

Detailed information and documentation can be found on 
	http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/ack_vectors/

             reply	other threads:[~2007-12-19 14:26 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-19 14:25 Gerrit Renker [this message]
2007-12-19 14:25 ` [PATCH 01/14] [CCID2]: Ack Vectors can happen on most packets Gerrit Renker
2007-12-19 14:25   ` [PATCH 02/14] [ACKVEC]: Update Ack Vector fields Gerrit Renker
2007-12-19 14:25     ` [PATCH 03/14] [ACKVEC]: Use Elapsed Time separately Gerrit Renker
2007-12-19 14:25       ` [PATCH 04/14] [ACKVEC]: Inlines for run length and state Gerrit Renker
2007-12-19 14:25         ` [PATCH 05/14] [ACKVEC]: Smaller allocation/deallocation routines Gerrit Renker
2007-12-19 14:25           ` [PATCH 06/14] [ACKVEC]: Simplify adding Ack Vector records, split option-specific code Gerrit Renker
2007-12-19 14:25             ` [PATCH 07/14] [ACKVEC]: Unnecessary to parse Ack Vectors when clearing HC-receiver state Gerrit Renker
2007-12-19 14:25               ` [PATCH 08/14] [ACKVEC]: Use enum to enumerate Ack Vector states Gerrit Renker
2007-12-19 14:25                 ` [PATCH 09/14] [ACKVEC]: Support for circular Ack Vector buffer with overflow handling Gerrit Renker
2007-12-19 14:25                   ` [PATCH 10/14] [ACKVEC]: Determine buffer length dynamically Gerrit Renker
2007-12-19 14:25                     ` [PATCH 11/14] [ACKVEC]: Implement algorithm to update buffer state Gerrit Renker
2007-12-19 14:25                       ` [PATCH 12/14] [ACKVEC]: Update Ack Vector input routine Gerrit Renker
2007-12-19 14:25                         ` [PATCH 13/14] [ACKVEC]: Aggregate Ack-Vector related processing into single function Gerrit Renker
2007-12-19 14:25                           ` [PATCH 14/14] [ACKVEC]: Remove old infrastructure Gerrit Renker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1198074355-18842-1-git-send-email-gerrit@erg.abdn.ac.uk \
    --to=gerrit@erg.abdn.ac.uk \
    --cc=acme@redhat.com \
    --cc=dccp@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox