dccp: Integration of dynamic feature activation - part 1 (socket setup)
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Mon, 8 Dec 2008 09:15:26 +0000 (01:15 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Dec 2008 09:15:26 +0000 (01:15 -0800)
commit6eb55d172b5f6de65afdae6285f8d732e4785bf7
treedbc81b2610db0e62cf2c69a0da9dfa68ea3ff8c1
parentb74ca3a896b9ab5f952bc440154758e708c48884
dccp: Integration of dynamic feature activation - part 1 (socket setup)

This first patch out of three replaces the hardcoded default settings with
initialisation code for the dynamic feature negotiation.

The patch also ensures that the client feature-negotiation queue is flushed
only when entering the OPEN state.

Since confirmed Change options are removed as soon as they are confirmed
(in the DCCP-Response), this ensures that Confirm options are retransmitted.

Note on retransmitting Confirm options:
---------------------------------------
Implementation experience showed that it is necessary to retransmit Confirm
options. Thanks to Leandro Melo de Sales who reported a bug in an earlier
revision of the patch set, resulting from not retransmitting these options.

As long as the client is in PARTOPEN, it needs to retransmit the Confirm
options for the Change options received on the DCCP-Response from the server.

Otherwise, if the packet containing the Confirm options gets dropped in the
network, the connection aborts due to undefined feature negotiation state.

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>
net/dccp/proto.c