• M
    mptcp: dedicated request sock for subflow in v6 · 34b21d1d
    Matthieu Baerts 提交于
    tcp_request_sock_ops structure is specific to IPv4. It should then not
    be used with MPTCP subflows on top of IPv6.
    
    For example, it contains the 'family' field, initialised to AF_INET.
    This 'family' field is used by TCP FastOpen code to generate the cookie
    but also by TCP Metrics, SELinux and SYN Cookies. Using the wrong family
    will not lead to crashes but displaying/using/checking wrong things.
    
    Note that 'send_reset' callback from request_sock_ops structure is used
    in some error paths. It is then also important to use the correct one
    for IPv4 or IPv6.
    
    The slab name can also be different in IPv4 and IPv6, it will be used
    when printing some log messages. The slab pointer will anyway be the
    same because the object size is the same for both v4 and v6. A
    BUILD_BUG_ON() has also been added to make sure this size is the same.
    
    Fixes: cec37a6e ("mptcp: Handle MP_CAPABLE options for outgoing connections")
    Reviewed-by: NMat Martineau <mathew.j.martineau@linux.intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: NMatthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: NMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: NJakub Kicinski <kuba@kernel.org>
    34b21d1d
subflow.c 54.1 KB