Page MenuHomeFreeBSD

tcp: Make dsack stats be aware of TLPs
ClosedPublic

Authored by rrs on Sep 27 2021, 4:39 PM.

Details

Summary

This changes the way we account for DSACK bytes with respect to
TLPs. We keep them as separate byte counts since a TLP that induces
a DSACK is somewhat expected versus ones that are not.

Question for Michael, right now this code is only if you have NETFLIX_STATS in place, but
maybe we might want to have some DSACK byte tracking stats. The reason we want it
is to compare against retransmissions and get a "feel" for if we are increasing or decreasing
needless retransmissions. In theory I could make the sysctl var's that track this in at least
the base tcp_subr..

Thoughts? Or for that matter maybe there is no need for this update :)

Test Plan

Make sure the counters are showing up.

Diff Detail

Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

rrs requested review of this revision.Sep 27 2021, 4:39 PM
rrs added a reviewer: tuexen.
This revision is now accepted and ready to land.Sep 27 2021, 5:00 PM

This refactors so that we end up with the data in netstat instead
so that it can be used by others besides NF. I also add the hooks
into tcp_sack so the counters are maintained for the base stack, though
we don't track TLPs (or do TLPs for that matter). BBR has the netstats
removed and now uses the proper api. Note that it does do TLP but
as of yet does not track what dsack bytes were caused by TLPs.

This revision now requires review to proceed.Oct 1 2021, 1:59 PM
This revision is now accepted and ready to land.Oct 1 2021, 2:22 PM