• Eric Dumazet's avatar
    tcp: add support for usec resolution in TCP TS values · 614e8316
    Eric Dumazet authored
    Back in 2015, Van Jacobson suggested to use usec resolution in TCP TS values.
    This has been implemented in our private kernels.
    
    Goals were :
    
    1) better observability of delays in networking stacks.
    2) better disambiguation of events based on TSval/ecr values.
    3) building block for congestion control modules needing usec resolution.
    
    Back then we implemented a schem based on private SYN options
    to negotiate the feature.
    
    For upstream submission, we chose to use a route attribute,
    because this feature is probably going to be used in private
    networks [1] [2].
    
    ip route add 10/8 ... features tcp_usec_ts
    
    Note that RFC 7323 recommends a
      "timestamp clock frequency in the range 1 ms to 1 sec per tick.",
    but also mentions
      "the maximum acceptable clock frequency is one tick every 59 ns."
    
    [1] Unfortunately RFC 7323 5.5 (Outdated Timestamps) suggests
    to invalidate TS.Recent values after a flow was idle for more
    than 24 days. This is the part making usec_ts a problem
    for peers following this recommendation for long living
    idle flows.
    
    [2] Attempts to standardize usec ts went nowhere:
    
    https://www.ietf.org/proceedings/97/slides/slides-97-tcpm-tcp-options-for-low-latency-00.pdf
    https://datatracker.ietf.org/doc/draft-wang-tcpm-low-latency-opt/Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    614e8316
tcp.c 125 KB