Page MenuHomeFreeBSD

Implement AccECN option (w/ early assigned option number)
Needs ReviewPublic

Authored by rscheff on Aug 23 2022, 9:10 AM.
Tags
None
Referenced Files
F103342808: D36303.id123352.diff
Sat, Nov 23, 7:45 PM
F103281794: D36303.id134552.diff
Sat, Nov 23, 1:02 AM
Unknown Object (File)
Fri, Nov 22, 9:34 PM
Unknown Object (File)
Fri, Nov 22, 9:03 PM
Unknown Object (File)
Fri, Nov 22, 8:49 PM
Unknown Object (File)
Fri, Nov 22, 6:11 PM
Unknown Object (File)
Thu, Nov 21, 8:01 PM
Unknown Object (File)
Thu, Nov 21, 8:01 PM
Subscribers

Details

Reviewers
tuexen
jtl
thj
rrs
glebius
Group Reviewers
transport
Summary

This Diff builds upon D21011. A simplistic reflector for
the received CE, ECT1 and ECT0 marked data bytes in the
AccECN TCP option - which is sent on every ACK, in full.
Only when space is needed for SACK, an abbreviated option
is constructed and sent (if possible).

Potential enhancements: Track which counters changed, and
send only changed counters repeatedly (e.g. 3 times at least)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 47838
Build 44725: arc lint + arc unit

Event Timeline

validating this diff against accecn packetdrill scripts from Linux (Ilpo). Once done, will bring this up again.

  • move ecn sysctls to tcp_ecn.c
  • go with AccECN options from a compile time option to a global setting
  • document the new sysctl option
  • remove outdated comment
  • ensure control packets have accecn opt, if enabled
  • move ecn sysctls to tcp_ecn.c
  • go with AccECN options from a compile time option to a global setting
  • document the new sysctl option
  • remove outdated comment
  • add logging, and make syncache response honor most recent incoming SYN fields
  • add logging
  • more logging
  • ensure control packets have accecn opt, if enabled
  • fix packt_this_ack bug
  • bump man date
  • received accecn counter into tcpinfo
  • add more tcpinfo counters
  • make accecn option counters a struct within tcpcb, which can also be locally allocated (syncache, prior of tcpcb)
  • initialize to_ae properly
  • reference properly to counters
  • bump man page date
  • remove all logging
  • add ntoh24 and hton24 to improve readability
  • compact AccECN opt decoding
  • straighten option output path
  • use temp variable to improve readability