1. 05 Nov, 2008 1 commit
    • Gerrit Renker's avatar
      dccp: Basic data structure for feature negotiation · bd012f2e
      Gerrit Renker authored
      This patch prepares for the new and extended feature-negotiation
      routines.
      
      The following feature-negotiation data structures are provided:
      	* a container for the various (SP or NN) values,
      	* symbolic state names to track feature states,
      	* an entry struct which holds all current information together,
      	* elementary functions to fill in and process these structures.
      
      Entry structs are arranged as FIFO for the following reason: RFC 4340
      specifies that if multiple options of the same type are present, they
      are processed in the order of their appearance in the packet; which
      means that this order needs to be preserved in the local data
      structure (the later insertion code also respects this order).
      
      The struct list_head has been chosen for the following reasons: the most
      frequent operations are
      
       * add new entry at tail (when receiving Change or setting socket
         options);
       * delete entry (when Confirm has been received);
       * deep copy of entire list (cloning from listening socket onto
         request socket).
      
      The NN value has been set to 64 bit, which is a currently sufficient
      upper limit (Sequence Window feature has 48 bit).
      
      Thanks to Arnaldo, who contributed the streamlined layout of the entry
      struct.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd012f2e
  2. 04 Nov, 2008 26 commits
  3. 03 Nov, 2008 13 commits