dccp: Query supported CCIDs
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Wed, 12 Nov 2008 08:47:26 +0000 (00:47 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Nov 2008 08:47:26 +0000 (00:47 -0800)
commitd90ebcbfa7f5a8b4e20518c9f94c5c4e4cd3c2e5
treeb1fb407c7ee1adbe8215311675d133a83a2d55b5
parente8ef967a54f401ac5e8637b7f7f8bddb006144c4
dccp: Query supported CCIDs

This provides a data structure to record which CCIDs are locally supported
and three accessor functions:
 - a test function for internal use which is used to validate CCID requests
   made by the user;
 - a copy function so that the list can be used for feature-negotiation;
 - documented getsockopt() support so that the user can query capabilities.

The data structure is a table which is filled in at compile-time with the
list of available CCIDs (which in turn depends on the Kconfig choices).

Using the copy function for cloning the list of supported CCIDs is useful for
feature negotiation, since the negotiation is now with the full list of available
CCIDs (e.g. {2, 3}) instead of the default value {2}. This means negotiation
will not fail if the peer requests to use CCID3 instead of CCID2.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/dccp.txt
include/linux/dccp.h
net/dccp/ccid.c
net/dccp/ccid.h
net/dccp/feat.c
net/dccp/proto.c