Page MenuHomeFreeBSD

All ECN handling code in a common source file
ClosedPublic

Authored by rscheff on Feb 3 2022, 9:32 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 22 2024, 1:21 AM
Unknown Object (File)
Feb 22 2024, 1:21 AM
Unknown Object (File)
Feb 22 2024, 1:21 AM
Unknown Object (File)
Feb 22 2024, 1:21 AM
Unknown Object (File)
Jan 11 2024, 9:16 AM
Unknown Object (File)
Dec 20 2023, 8:17 AM
Unknown Object (File)
Dec 12 2023, 2:05 AM
Unknown Object (File)
Dec 1 2023, 5:38 PM

Details

Summary

In order to keep the various stacks up to date
and not having to manually adjust ECN related
changes simultaneously at up to three different
places, extract the common code into dedicated
functions and refer to them instead.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 44300
Build 41188: arc lint + arc unit

Event Timeline

  • clean commit against main, for ease of review

No manual page change. Will review if and when one comes.

  • add ECN handling in the 3rd output path.
sys/netinet/tcp_stacks/rack.c
16009

This is the section which was missing, and may end up sending a packet with unexpected IP ECN / TCP ECN bits from the last cached copy.

@rrs : If this is only ever called while TCPS_ESTABLISHED(), the special handling of SYN-RECEIVED could be removed, and the check if we are in >= SYN-RECEIVED above could be removed...

rrs added inline comments.
sys/netinet/tcp_stacks/rack.c
16009

I don't think it hurts to have the code, and I am not 100% sure that we wont get
called in SYN-RECV.. only 99.9 so leaving it is probably best.

This revision is now accepted and ready to land.Feb 4 2022, 3:21 PM
  • restore diff after revert in main
  • fix type of flag variable in rack.c
This revision now requires review to proceed.Feb 5 2022, 10:36 AM
sys/netinet/tcp_stacks/rack.c
15830

this was throwing compiler warn_as_err locally - CI compile error not yet reproduced

  • move tcp_set_flag aft the added setting of the ECN flags
  • remove #include from tcp_ecn.h
  • shuffle #include around, so that tcp_ecn.h doesn't need any
  • restore #include in tcp_ecn.h
This revision is now accepted and ready to land.Feb 5 2022, 3:13 PM