diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2008-11-04 23:38:20 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-04 23:38:20 -0800 |
commit | bd012f2e7be9f69a47d240ded0fa491967d9827c (patch) | |
tree | 940cc895a7da7a065847cf604cddfab097e385cc /net/TUNABLE | |
parent | d5f642384e9da75393160350f75bbb9a527f7c58 (diff) |
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>
Diffstat (limited to 'net/TUNABLE')
0 files changed, 0 insertions, 0 deletions