• Alexander Duyck's avatar
    tcp: Allow full IP tos/IPv6 tclass to be reflected in L3 header · 861602b5
    Alexander Duyck authored
    An issue was recently found where DCTCP SYN/ACK packets did not have the
    ECT bit set in the L3 header. A bit of code review found that the recent
    change referenced below had gone though and added a mask that prevented the
    ECN bits from being populated in the L3 header.
    
    This patch addresses that by rolling back the mask so that it is only
    applied to the flags coming from the incoming TCP request instead of
    applying it to the socket tos/tclass field. Doing this the ECT bits were
    restored in the SYN/ACK packets in my testing.
    
    One thing that is not addressed by this patch set is the fact that
    tcp_reflect_tos appears to be incompatible with ECN based congestion
    avoidance algorithms. At a minimum the feature should likely be documented
    which it currently isn't.
    
    Fixes: ac8f1710 ("tcp: reflect tos value received in SYN to the socket")
    Signed-off-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
    Acked-by: default avatarWei Wang <weiwan@google.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    861602b5
tcp_ipv4.c 78.1 KB