Page MenuHomeFreeBSD

tcp: fix handling of TCP RST segments missing timestamps
ClosedPublic

Authored by tuexen on Jan 13 2021, 10:50 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 24, 9:23 PM
Unknown Object (File)
Sat, Nov 23, 2:29 PM
Unknown Object (File)
Wed, Nov 20, 5:54 PM
Unknown Object (File)
Tue, Nov 19, 6:42 AM
Unknown Object (File)
Mon, Nov 18, 2:05 PM
Unknown Object (File)
Wed, Nov 6, 11:12 AM
Unknown Object (File)
Oct 22 2024, 11:19 PM
Unknown Object (File)
Oct 16 2024, 1:02 AM
Subscribers

Details

Summary

A TCP RST segment should be processed even it is missing TCP timestamps.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

With this patch applied, the Go test suite passes on both current (818390ce0ca) and stable/12 (49038d1723a). Thanks!

I'm afraid that I can't provide much better input than dmgk already has, but this does conform to my interpretation of RFC7323 from a brief read at the referenced section.

Functionally, I concur that this is the right way to handle RST packets.

From an implementation, perhaps having the check for TH_RST and the V_tcp_tolerate_missing_ts sysctl of D28142 in a combined || check, rather than two fully independent branches (which is likely if D28142 and D28143 are applied independently).

This revision is now accepted and ready to land.Jan 14 2021, 8:29 AM

Functionally, I concur that this is the right way to handle RST packets.

From an implementation, perhaps having the check for TH_RST and the V_tcp_tolerate_missing_ts sysctl of D28142 in a combined || check, rather than two fully independent branches (which is likely if D28142 and D28143 are applied independently).

I will apply this patch first, then update the D28142 using an ||. I want to keep them separate, since this is a fix of a bug, D28142 is adding a sysctl.