linux-kernel-test/net/dccp
Gerrit Renker c49b22729f dccp: Integration of dynamic feature activation - part 3 (client side)
This integrates feature-activation in the client, with these details:

 1. When dccp_parse_options() fails, the reset code is already set, request_sent
    _state_process() currently overrides this with `Packet Error', which is not
    intended - so changed to use the reset code set in dccp_parse_options();

 2. There was a FIXME to change the error code when dccp_ackvec_add() fails.
    I have looked this up and found that: 
    * the check whether ackno < ISN is already made earlier,
    * this Response is likely the 1st packet with an Ackno that the client gets,
    * so when dccp_ackvec_add() fails, the reason is likely not a packet error.

 3. When feature negotiation fails, the socket should be marked as not usable,
    so that the application is notified that an error occurs. This is achieved
    by a new label, which uses an error code of `Aborted' and which sets the
    socket state to CLOSED, as well as sk_err.

 4. Avoids parsing the Ack twice in Respond state by not doing option processing
    again in dccp_rcv_respond_partopen_state_process (as option processing has
    already been done on the request_sock in dccp_check_req).    

Since this addresses congestion-control initialisation, a corresponding
FIXME has been removed.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
2008-09-04 07:45:30 +02:00
..
ccids dccp: Registration routines for changing feature values 2008-09-04 07:45:27 +02:00
ackvec.c dccp: Set per-connection CCIDs via socket options 2008-09-04 07:45:28 +02:00
ackvec.h dccp: Set per-connection CCIDs via socket options 2008-09-04 07:45:28 +02:00
ccid.c dccp: Query supported CCIDs 2008-09-04 07:45:27 +02:00
ccid.h dccp: API to query the current TX/RX CCID 2008-09-04 07:45:28 +02:00
dccp.h dccp: Feature activation handlers 2008-09-04 07:45:30 +02:00
diag.c [INET]: Let inet_diag and friends autoload 2007-10-22 02:59:54 -07:00
feat.c dccp: Feature activation handlers 2008-09-04 07:45:30 +02:00
feat.h dccp: Processing Confirm options 2008-09-04 07:45:29 +02:00
input.c dccp: Integration of dynamic feature activation - part 3 (client side) 2008-09-04 07:45:30 +02:00
ipv4.c dccp: Cleanup routines for feature negotiation 2008-09-04 07:45:26 +02:00
ipv6.c dccp: Cleanup routines for feature negotiation 2008-09-04 07:45:26 +02:00
ipv6.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Kconfig [DCCP]: Promote CCID2 as default CCID 2008-01-28 14:54:46 -08:00
Makefile [DCCPv6]: Resolve conditional build problem 2006-12-02 21:22:28 -08:00
minisocks.c dccp: Integration of dynamic feature activation - part 2 (server side) 2008-09-04 07:45:30 +02:00
options.c dccp: Processing Confirm options 2008-09-04 07:45:29 +02:00
output.c dccp: Mechanism to resolve CCID dependencies 2008-09-04 07:45:27 +02:00
probe.c dccp: API to query the current TX/RX CCID 2008-09-04 07:45:28 +02:00
proto.c dccp: Integration of dynamic feature activation - part 1 (socket setup) 2008-09-04 07:45:30 +02:00
sysctl.c dccp: Deprecate Ack Ratio sysctl 2008-09-04 07:45:28 +02:00
timer.c dccp: Limit feature negotiation to connection setup phase 2008-09-04 07:45:27 +02:00