[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080922045744.GA6889@gerrit.erg.abdn.ac.uk>
Date: Mon, 22 Sep 2008 06:57:44 +0200
From: Gerrit Renker <gerrit@....abdn.ac.uk>
To: David Miller <davem@...emloft.net>
Cc: acme@...hat.com, dccp@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: net-next-2.6 [pull-request] [PATCH 0/37] dccp: Revised set of
feature-negotiation patches
Hi Dave,
it has been unfortunate that there had been an error in the submission
of the DCCP feature negotiation patch set.
I would like to return to the submission of the original set of patches,
i.e. those 37 that were discussed and for which fixes had been uploaded.
The changeset provides infrastructure for doing end-to-end feature negotiation,
is self-contained, has been tested for a long while, and is free from
duct-tape fixes.
(Just for reference - the count of `XXX'-es in the current feat.c is 15,
plus 2 FIXMEs.)
There is a benefit of using this patch set, as it will make it easier
for other people to add code (new CCIDs) to DCCP.
Only 2 CCIDs exist so far, whose performance and scope is somewhat limited.
There is room for about 250 more CCIDs, for different and completely new
algorithms.
To plug in new CCIDs, feature negotiation at the endpoints is necessary.
The extensions that Arnaldo had suggested are also much easier to
construct with this set. With the present code I think it is nearly impossible.
If you would like to reopen review and discussion, I am willing to address
any further comments.
I have put the set of 37 patches (complete list below) onto a freshly cloned
net-next-2.6 (from today), compile-tested (it is bisectable), and uploaded to
git://eden-feed.erg.abdn.ac.uk/net-next-2.6 [subtree `master']
The revised changeset can be also be viewed at:
http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p=net-next-2.6.git
Best regards
Gerrit
List of patches in this set
---------------------------
Patch #1: Provides the basic datastructure for feature negotiation. It gets
around the problem that feature-negotiation values have no uniform
type - they can be 48-bit numbers, single characters, 2-byte integers
or a list of unsigned chars.
Patch #2: Provides a lookup-table for the different negotiable features.
Patch #3: Adds list management for the list keeping the negotiation-options.
Patch #4: Initialisation routines (for request sockets and normal sockets).
Patch #5: Analogous to #4, this provides the cleanup routines.
Patch #6: Changes the existing policy to allow anytime changes as that lead
to unpredictable results.
Patch #7: Adds registration routines. These form part of the user interface
and are later used by the socket API to set individual preferences.
Patch #8: CCIDs are a negotiable feature. This patch adds support to query the
supported CCIDs, so as to advertise only the locally supported ones.
Patch #9: The choice of CCID in turn creates new feature dependencies. The patch
adds automatic tracking of such dependencies to avoid later failure.
Patch #10: Provides a mechanism to then resolve CCID-dependent features. Since
CCIDs are a server-priority feature, this is done by the server.
Patch #11: Deprecates old featneg API, as it was dangerous/clumsy.
Patch #12: Support to negotiate checksum-coverage values (as in UDP-Lite).
Patch #13: Deprecates Ack Ratio sysctl, to enable automatic updating.
Patch #14: Tidies up the setsockopt interface for new additions.
Patch #15: Set/getsockopt support to negotiate CCIDs with the peer.
Patch #16: Socket API to query the current CCID from userspace.
Patch #17: Prepares the variable-length htonl/ntohl functions for 48 bits.
Such a length is needed by e.g. the Sequence Window feature.
Patch #18: Support for DCCP `Mandatory' type options (RFC 4340, 5.8.2).
Patch #19: Routine to insert feature-negotiation header options.
Patch #20: Complements #19, to add feature-negotiation options onto the skb.
Patch #21: Complements #20 and completes the insertion of featneg options.
Patch #22: Logic/algorithm to actually reconcile negotiation options.
Patch #23: Receiver support to process incoming Change L/R options.
Patch #24: Receiver support to process incoming Confirm R/L options.
Patch #25: Handlers for activating successfully negotiated features.
Patch #26: Integration of dynamic negotiation, part I (socket setup).
Patch #27: Integration of dynamic negotiation, part II (server side).
Patch #28: Integration of dynamic negotiation, part III (client side).
Patch #29: Cleans up the older infrastructure.
Patch #30: Removes obsolete parts of the old CCID interface.
Patch #31: Removes manual intervention on NDP count (now automatic).
Patch #32: Removes Ack Vector sysctl (handled automatically now).
Patch #33: Initialisation framework for the supported features.
Patch #34: Auto-loading of CCID modules so that the modules are available
when the negotiation is completed.
Patch #35: Adds full support for local/remote Sequence Window.
Patch #36: Initialisation and type-checking of involved sysctls.
Patch #37: A set of (useful) debugging/printing helper functions.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists