• Florian Westphal's avatar
    mptcp: subflow: add mptcp_subflow_init_cookie_req helper · c83a47e5
    Florian Westphal authored
    Will be used to initialize the mptcp request socket when a MP_CAPABLE
    request was handled in syncookie mode, i.e. when a TCP ACK containing a
    MP_CAPABLE option is a valid syncookie value.
    
    Normally (non-cookie case), MPTCP will generate a unique 32 bit connection
    ID and stores it in the MPTCP token storage to be able to retrieve the
    mptcp socket for subflow joining.
    
    In syncookie case, we do not want to store any state, so just generate the
    unique ID and use it in the reply.
    
    This means there is a small window where another connection could generate
    the same token.
    
    When Cookie ACK comes back, we check that the token has not been registered
    in the mean time.  If it was, the connection needs to fall back to TCP.
    
    Changes in v2:
     - use req->syncookie instead of passing 'want_cookie' arg to ->init_req()
       (Eric Dumazet)
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c83a47e5
token.c 10.7 KB