On Jan 28, 2008 11:16 PM, Gerrit Renker <[EMAIL PROTECTED]> wrote: > This patch was triggered by finding the following message in the syslog: > "kernel: dccp_check_seqno: DCCP: Step 6 failed for DATAACK packet, [...] > P.ackno exists or LAWL(82947089) <= P.ackno(82948208) > <= S.AWH(82948728), sending SYNC..." > > Note the difference between AWH and AWL: it is 1639 packets (while Sequence > Window was actually at 100). A closer look at the trace showed that > LAWL = AWL = 82947089 equalled the ISS on the Response. > > The cause of the bug was that AWL was only ever set on the first packet - the > DCCP-Request sent by dccp_v{4,6}_connect(). > > The fix is to continually update AWL/AWH with each new packet (as GSS=AWH). > > In addition, AWL/AWH are now updated to enforce more stringent checks on the > initial sequence numbers when connecting: > * AWL is initialised to ISS and remains at this value; > * AWH is always set to GSS (via dccp_update_gss()); > * so on the first Request: AWL = AWH = ISS, > and on the n-th Request: AWL = ISS, AWH = ISS+n. > > As a consequence, only Response packets that refer to Requests sent by this > host will pass, all others are discarded. This is the intention and in effect > implements the initial adjustments for AWL as specified in RFC 4340, 7.5.1. > > Note: A problem that remains is that ISS can potentially be under-run even > after > the initial handshake; this is addressed a subsequent patch. > > Signed-off-by: Gerrit Renker <[EMAIL PROTECTED]>
Yes I had seen this and had worked out that variables weren't being updated as they should be but hadn't got as far as a fix before I stopped my coding days so much :-( Acked-by: Ian McDonald <[EMAIL PROTECTED]> - To unsubscribe from this list: send the line "unsubscribe dccp" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html