On Thu, Apr 11, 2019 at 8:55 AM Eric Dumazet <eduma...@google.com> wrote: > > After commit e21db6f69a95 ("tcp: track total bytes delivered with ECN CE > marks") > core TCP stack does a very good job tracking ECN signals. > > The "sender's best estimate of CE information" Yuchung mentioned in his > patch is indeed the best we can do. > > DCTCP can use tp->delivered_ce and tp->delivered to not duplicate the logic, > and use the existing best estimate. > > This solves some problems, since current DCTCP logic does not deal with losses > and/or GRO or ack aggregation very well. > > This also removes a dubious use of inet_csk(sk)->icsk_ack.rcv_mss > (this should have been tp->mss_cache), and a 64 bit divide. > > Finally, we can see that the DCTCP logic, calling dctcp_update_alpha() for > every ACK could be done differently, calling it only once per RTT. > > Signed-off-by: Eric Dumazet <eduma...@google.com> > Cc: Yuchung Cheng <ych...@google.com> > Cc: Neal Cardwell <ncardw...@google.com> > Cc: Soheil Hassas Yeganeh <soh...@google.com> > Cc: Florian Westphal <f...@strlen.de> > Cc: Daniel Borkmann <dan...@iogearbox.net> > Cc: Lawrence Brakmo <bra...@fb.com> > Cc: Abdul Kabbani <akabb...@google.com> > ---
Thanks, Eric! There is a slight change in semantics, switching from bytes to packets. But my sense is that the new semantics of packet-based counting are a better approach, and a closer fit to the design in the DCTCP paper from SIGCOMM 2010, which talks about measuring "the fraction of packets that were marked in the last window of data", and using that to estimate "the probability that the queue size is greater than K". Acked-by: Neal Cardwell <ncardw...@google.com> thanks, neal