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] [Patch 0/10]: Finish and repair existing Ack Vector implementation
Date: Thu, 21 Feb 2008 09:09:18 +0000	[thread overview]
Message-ID: <1203584968-8957-1-git-send-email-gerrit@erg.abdn.ac.uk> (raw)
In-Reply-To: ack_vector_implementation_repackaged_no_changes

This is a re-packaged resubmission (reduction from about 20 small patches) of the
Ack Vector patch set, which accomplishes two main things.

 First, it completes the implementation of a circular Ack Vector buffer. So far
 the buffer was implemented as a linear array which dropped packets on overflow.

 Second, it makes the Ack Vector implementation workable for Ack Ratios greater
 than 1. The code does not currently work when Ack Ratio is greater than 1.
 
 The reason that existing problems were not observed is that the main module 
 sets Ack Ratio to 1, which in effect bypasses Ack Vectors entirely.
 
 Several bugs with regard to a basic implementation of RFC 4340 Ack Vectors
 were fixed and protections against corrupting buffer state added:
 * successive overlapping Ack Vectors were corrupting buffer state;
 * a protection against outdated entries was missing;
 * a modification was necessary to compute ECN nonces over multiple vectors;
 * reserving entries (one per packet) didn't work well with large burst losses;
 
A summary of the problems that were fixed and full code documentation is on
http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/ack_vectors/

The code has been tested extensively and has been part of the test tree for over
two months.

Ack Vectors are a necessary requirement of CCID-2, so it expected that CCID-2
can subsequently also be improved.
 
 Short summary
 -------------
 Patch # 1: Fixes an oversight: Ack Vectors need to be ignored as long as
            feature-negotiation is processing.
 Patch # 2: Ack Vector interface clean-up -- preparation for subsequent patches.
 Patch # 3: Separates Ack Vector - specific code from option-inserting code.
 Patch # 4: Completes the implementation of a fully circular Ack Vector buffer. 
 Patch # 5: Adds a tested algorithm to update Ack Vector buffer state.
 Patch # 6: Updates and revises the way new Ack Vector information is registered.
 Patch # 7: Consolidates Ack Vector processing within DCCP main module.
 Patch # 8: Adds a fallback solution - scheduling a Sync when out-of-space.
 Patch # 9: Removes older and now unused parts of the Ack Vector infrastructure.
 Patch #10: Separates the task of parsing Ack Vectors from the CCID(-2) code.

The revised patch set has been uploaded to
	git://eden-feed.erg.abdn.ac.uk/dccp_exp 	[dccp]

             reply	other threads:[~2008-02-21  9:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-21  9:09 Gerrit Renker [this message]
2008-02-21  9:09 ` [PATCH 01/10] [ACKVEC]: Need to ignore Ack Vectors on request sockets Gerrit Renker
2008-02-21  9:09   ` [PATCH 02/10] [ACKVEC]: Ack Vector interface clean-up Gerrit Renker
2008-02-21  9:09     ` [PATCH 03/10] [ACKVEC]: Separate internals of Ack Vectors from option-parsing code Gerrit Renker
2008-02-21  9:09       ` [PATCH 04/10] [ACKVEC]: Implementation of circular Ack Vector buffer with overflow handling Gerrit Renker
2008-02-21  9:09         ` [PATCH 05/10] [ACKVEC]: Algorithm to update buffer state Gerrit Renker
2008-02-21  9:09           ` [PATCH 06/10] [ACKVEC]: Update code for the Ack Vector input/registration routine Gerrit Renker
2008-02-21  9:09             ` [PATCH 07/10] [ACKVEC]: Consolidate Ack-Vector processing within main DCCP module Gerrit Renker
2008-02-21  9:09               ` [PATCH 08/10] [ACKVEC]: Schedule SyncAck when running out of space Gerrit Renker
2008-02-21  9:09                 ` [PATCH 09/10] [ACKVEC]: Remove old infrastructure Gerrit Renker
2008-02-21  9:09                   ` [PATCH 10/10] [ACKVEC]: Separate option parsing from CCID processing 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=1203584968-8957-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