• Paolo Abeni's avatar
    mptcp: always include dack if possible. · 2398e399
    Paolo Abeni authored
    Currently passive MPTCP socket can skip including the DACK
    option - if the peer sends data before accept() completes.
    
    The above happens because the msk 'can_ack' flag is set
    only after the accept() call.
    
    Such missing DACK option may cause - as per RFC spec -
    unwanted fallback to TCP.
    
    This change addresses the issue using the key material
    available in the current subflow, if any, to create a suitable
    dack option when msk ack seq is not yet available.
    
    v1 -> v2:
     - adavance the generated ack after the initial MPC packet
    
    Fixes: d22f4988 ("mptcp: process MP_CAPABLE data option")
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2398e399
options.c 15.2 KB