[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f7a7917b-9d81-b192-514b-3861321a4892@gmail.com>
Date: Mon, 21 May 2018 10:18:32 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Toke Høiland-Jørgensen <toke@...e.dk>,
netdev@...r.kernel.org, cake@...ts.bufferbloat.net
Subject: Re: [PATCH net-next v13 3/7] sch_cake: Add optional ACK filter
On 05/21/2018 09:24 AM, Toke Høiland-Jørgensen wrote:
> + while (oplen_tmp >= 8) {
> + u32 right_b = get_unaligned_be32(sack_tmp + 4);
> + u32 left_b = get_unaligned_be32(sack_tmp);
> +
> + if (left_b >= right_b)
> + continue;
> +
> + if (first)
> + bytes_b += right_b - left_b;
> +
> + if (left_b <= left_a && right_a <= right_b) {
> + found = true;
> + if (!first)
> + break;
> + }
> + oplen_tmp -= 8;
> + sack_tmp += 8;
> + }
>
This is obviously incorrect.
Please take a look at TCP stack, and how it handles sequence wrapping with following macros :
after(), before()
Quite frankly O wonder how this was really tested.
Powered by blists - more mailing lists