Bug 206122 - tcp keep-alive message sent without timestamp option
Summary: tcp keep-alive message sent without timestamp option
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-net (Nobody)
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2016-01-11 01:28 UTC by Yongmin Cho
Modified: 2016-12-22 17:53 UTC (History)
1 user (show)

See Also:


Attachments
tcp keep-alive message sent with timestamp option. (1.49 KB, patch)
2016-01-11 01:28 UTC, Yongmin Cho
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yongmin Cho 2016-01-11 01:28:46 UTC
Created attachment 165382 [details]
tcp keep-alive message sent with timestamp option.

Hi, all.

I have checked tcp keep-alive in freebsd head.
According to RFC7323, tcp timestamp option must be sent with
keep-alive packet after timestamp option has been negotiated.
So I have tested this on linux-3.13.0.
tcp keep-alive message is sent with timestamp option on linux-3.13.0.
But on freebsd head, tcp keep-alive packet is sent without timestamp option
after negotiated. So I made patch file based on freebsd head.
Please check this patch file. any feedback will be welcome.

Thank you in advance for your answers!

According in RFC7323:
    Once TSopt has been successfully negotiated, that is both <SYN>
    and <SYN,ACK> contain TSopt, the TSopt MUST be sent in every non-<RST>
    segment for the duration of the connection, and SHOULD be sent in
    an <RST> segment (see Section 5.2 for details).  The TCP SHOULD
    remember this state by setting a flag, referred to as Snd.TS.OK,
    to one. If a non-<RST> segment is received without a TSopt, a TCP SHOULD
    silently drop the segment. A TCP MUST NOT abort a TCP connection
    because any segment lacks an expected TSopt.
Comment 1 Hiren Panchasara freebsd_committer freebsd_triage 2016-12-22 17:53:53 UTC
I believe r296455 by jtl@ fixed this. If not, please reopen.