• Geliang Tang's avatar
    mptcp: infinite mapping sending · 1e39e5a3
    Geliang Tang authored
    This patch adds the infinite mapping sending logic.
    
    Add a new flag send_infinite_map in struct mptcp_subflow_context. Set
    it true when a single contiguous subflow is in use and the
    allow_infinite_fallback flag is true in mptcp_pm_mp_fail_received().
    
    In mptcp_sendmsg_frag(), if this flag is true, call the new function
    mptcp_update_infinite_map() to set the infinite mapping.
    
    Add a new flag infinite_map in struct mptcp_ext, set it true in
    mptcp_update_infinite_map(), and check this flag in a new helper
    mptcp_check_infinite_map().
    
    In mptcp_update_infinite_map(), set data_len to 0, and clear the
    send_infinite_map flag, then do fallback.
    
    In mptcp_established_options(), use the helper mptcp_check_infinite_map()
    to let the infinite mapping DSS can be sent out in the fallback mode.
    Suggested-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Signed-off-by: default avatarGeliang Tang <geliang.tang@suse.com>
    Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1e39e5a3
protocol.c 94.9 KB