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
F132452894: D36303.id132863.diff
Fri, Oct 17, 1:47 AM
F132421630: D36303.id111278.diff
Thu, Oct 16, 7:23 PM
F132421248: D36303.id110016.diff
Thu, Oct 16, 7:19 PM
F132408106: D36303.id111633.diff
Thu, Oct 16, 4:39 PM
Unknown Object (File)
Wed, Oct 15, 9:37 PM
Unknown Object (File)
Wed, Oct 15, 4:09 PM
Unknown Object (File)
Wed, Oct 15, 4:09 PM
Unknown Object (File)
Wed, Oct 15, 4:09 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 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