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
F102374679: D36303.id132863.diff
Mon, Nov 11, 9:53 AM
Unknown Object (File)
Sun, Nov 10, 10:00 AM
Unknown Object (File)
Sun, Nov 10, 3:59 AM
Unknown Object (File)
Sat, Nov 9, 3:44 PM
Unknown Object (File)
Sat, Nov 9, 1:30 PM
Unknown Object (File)
Sat, Nov 9, 8:17 AM
Unknown Object (File)
Sat, Nov 9, 6:51 AM
Unknown Object (File)
Sat, Nov 9, 6:38 AM
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 56082
Build 52971: 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