Netdev List
 help / color / mirror / Atom feed
From: "Ian McDonald" <ian.mcdonald@jandi.co.nz>
To: "Gerrit Renker" <gerrit@erg.abdn.ac.uk>
Cc: acme@redhat.com, dccp@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH 3/6] [DCCP]: Bug-Fix - AWL was never updated
Date: Tue, 29 Jan 2008 06:59:18 +1300	[thread overview]
Message-ID: <5640c7e00801280959k456fd080l3f29953c0d74eb16@mail.gmail.com> (raw)
In-Reply-To: <1201515376-8280-4-git-send-email-gerrit@erg.abdn.ac.uk>

On Jan 28, 2008 11:16 PM, Gerrit Renker <gerrit@erg.abdn.ac.uk> 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 <gerrit@erg.abdn.ac.uk>

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 <ian.mcdonald@jandi.co.nz>

      parent reply	other threads:[~2008-01-28 17:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-28 10:16 [DCCP] [Patch 0/6] [BUG-Fix]: Fixes for CCID3, seqnos, and dccp_probe Gerrit Renker
2008-01-28 10:16 ` [PATCH 1/6] [CCID3]: Function returned wrong value Gerrit Renker
2008-01-28 10:16   ` [PATCH 2/6] [DCCP]: Bug in initial acknowledgment number assignment Gerrit Renker
2008-01-28 10:16     ` [PATCH 3/6] [DCCP]: Bug-Fix - AWL was never updated Gerrit Renker
2008-01-28 10:16       ` [PATCH 4/6] [DCCP]: Fix the adjustments to AWL and SWL Gerrit Renker
2008-01-28 10:16         ` [PATCH 5/6] [DCCP]: Merge now-reduced connect_init() function Gerrit Renker
2008-01-28 10:16           ` [PATCH 6/6] [DCCP-PROBE]: Reduce noise in output and convert to ktime_t Gerrit Renker
2008-01-28 17:59       ` Ian McDonald [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5640c7e00801280959k456fd080l3f29953c0d74eb16@mail.gmail.com \
    --to=ian.mcdonald@jandi.co.nz \
    --cc=acme@redhat.com \
    --cc=dccp@vger.kernel.org \
    --cc=gerrit@erg.abdn.ac.uk \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox