• M
    tcp: minimize false-positives on TCP/GRO check · 0b9aefea
    Marcelo Ricardo Leitner 提交于
    Markus Trippelsdorf reported that after commit dcb17d22 ("tcp: warn
    on bogus MSS and try to amend it") the kernel started logging the
    warning for a NIC driver that doesn't even support GRO.
    
    It was diagnosed that it was possibly caused on connections that were
    using TCP Timestamps but some packets lacked the Timestamps option. As
    we reduce rcv_mss when timestamps are used, the lack of them would cause
    the packets to be bigger than expected, although this is a valid case.
    
    As this warning is more as a hint, getting a clean-cut on the
    threshold is probably not worth the execution time spent on it. This
    patch thus alleviates the false-positives with 2 quick checks: by
    accounting for the entire TCP option space and also checking against the
    interface MTU if it's available.
    
    These changes, specially the MTU one, might mask some real positives,
    though if they are really happening, it's possible that sooner or later
    it will be triggered anyway.
    Reported-by: NMarkus Trippelsdorf <markus@trippelsdorf.de>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    0b9aefea
tcp_input.c 183.3 KB