dccp: Basic data structure for feature negotiation
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Wed, 5 Nov 2008 07:38:20 +0000 (23:38 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Nov 2008 07:38:20 +0000 (23:38 -0800)
commitbd012f2e7be9f69a47d240ded0fa491967d9827c
tree940cc895a7da7a065847cf604cddfab097e385cc
parentd5f642384e9da75393160350f75bbb9a527f7c58
dccp: Basic data structure for feature negotiation

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: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/feat.h
This page took 0.024821 seconds and 5 git commands to generate.