Subject: Re: [PATCH]NET: Add ECN support for TSO

From: "Michael Chan" <[email-masked]>
Date: Wed, 26 Jul 2006 12:40:45 -0700

On Fri, 2006-07-14 at 12:12 -0400, Dan Reader wrote:

> If we implement the approach you suggest and all data sent uses TSO, the
> receiver can easily determine the expected codepoint of almost any
> isolated CE packet.  It simply has to look at the segment before and the
> segment after (which it can wait for, thanks to delayed ACKs).  If they
> have the same ECT value, use that one.  If they're different, then it
> just has to perform a check for non-MSS (i.e. the boundary between TSOs
> if send ops do not yield a multiple of MSS) and it might know.

I don't think it's that easy to guess.  The TSO sizes are almost always
multiples of MSS because they get trimmed or they are limited by the
congestion window.  The receiver will eventually make a mistake using
your scheme above that the sender can reliably detect.

I agree that replicating the ECT bits makes it less random, but it seems
to be the simplest and best approach.  In real life, there will be some
TSO and some non-TSO packets making it even more difficult to guess.
Randomizing the ECT bits in hardware makes verification of the nonce-sum
very complicated and unreliable.