|From:||Gerrit Renker <email@example.com>|
|Subject:||[PATCH 0/37] dccp: Feature negotiation - last call for comments|
|Date:||Thu, 28 Aug 2008 19:44:35 +0200|
This is a last call for comments and review for the DCCP feature negotiation set, before sending a pull request. This set replaces the initial implementation of feature negotiation with a fairly complete set of routines to support negotiation between endpoints. It fixes the (known) problems with the old infrastructure, which was an initial implementation that apparently never was developed further. The patches have been publicly available in the test tree for about a year and were widely tested. Since several applications are using this API and since there is already at least one publicly available application (gstreamer) based on the new API, it would be good to have this available in mainline. This set deals with the negotiation of capabilities, before a connection is established. There is also support for dynamically updating feature values, this will follow in a second set -- a much smaller set since it builds upon the new basis. Please send any comments or issues you find with the code before the end of the week. I will then prepare a second submission / pull request. Part I - Basis --------------- 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. Part II - Core -------------- 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. Part III - Integration and cleanup ---------------------------------- 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. As always, patches are available on git://eden-feed.erg.abdn.ac.uk/dccp_exp [subtree `dccp'] There is also a gitweb view on the server. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to firstname.lastname@example.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds