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
F89317445: D36303.id111633.diff
Fri, Jul 26, 2:10 PM
F89317442: D36303.id110016.diff
Fri, Jul 26, 2:10 PM
F89317441: D36303.id111278.diff
Fri, Jul 26, 2:10 PM
F89317423: D36303.id132863.diff
Fri, Jul 26, 2:09 PM
F89317419: D36303.id134552.diff
Fri, Jul 26, 2:09 PM
F89317415: D36303.id111807.diff
Fri, Jul 26, 2:09 PM
F89317388: D36303.id109702.diff
Fri, Jul 26, 2:09 PM
F89317383: D36303.id123335.diff
Fri, Jul 26, 2: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