• Paolo Abeni's avatar
    mptcp: fix DATA_FIN generation on early shutdown · d87903b6
    Paolo Abeni authored
    If the msk is closed before sending or receiving any data,
    no DATA_FIN is generated, instead an MPC ack packet is
    crafted out.
    
    In the above scenario, the MPTCP protocol creates and sends a
    pure ack and such packets matches also the criteria for an
    MPC ack and the protocol tries first to insert MPC options,
    leading to the described error.
    
    This change addresses the issue by avoiding the insertion of an
    MPC option for DATA_FIN packets or if the sub-flow is not
    established.
    
    To avoid doing multiple times the same test, fetch the data_fin
    flag in a bool variable and pass it to both the interested
    helpers.
    
    Fixes: 6d0060f6 ("mptcp: Write MPTCP DSS headers to outgoing data packets")
    Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    d87903b6
options.c 34.7 KB