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
Unknown Object (File)
Tue, Apr 9, 7:16 AM
Unknown Object (File)
Sat, Apr 6, 7:04 PM
Unknown Object (File)
Feb 23 2024, 1:13 PM
Unknown Object (File)
Dec 23 2023, 2:58 AM
Unknown Object (File)
Dec 9 2023, 11:28 PM
Unknown Object (File)
Nov 8 2023, 9:18 PM
Unknown Object (File)
Nov 8 2023, 3:37 PM
Unknown Object (File)
Nov 6 2023, 6:58 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