mptcp: send ack for every add_addr
authorGeliang Tang <geliangtang@gmail.com>
Mon, 1 Feb 2021 23:09:09 +0000 (15:09 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Mar 2021 09:51:11 +0000 (10:51 +0100)
[ Upstream commit b5a7acd3bd63c7430c98d7f66d0aa457c9ccde30 ]

This patch changes the sending ACK conditions for the ADD_ADDR, send an
ACK packet for any ADD_ADDR, not just when ipv6 addresses or port
numbers are included.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/139
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mptcp/pm.c
net/mptcp/pm_netlink.c

index da2ed576f289915dd97d799f3b9ef43dfeeeb95d..5463d7c8c931ac3247b5e6843059d400b986d1c2 100644 (file)
@@ -188,8 +188,7 @@ void mptcp_pm_add_addr_received(struct mptcp_sock *msk,
 
 void mptcp_pm_add_addr_send_ack(struct mptcp_sock *msk)
 {
-       if (!mptcp_pm_should_add_signal_ipv6(msk) &&
-           !mptcp_pm_should_add_signal_port(msk))
+       if (!mptcp_pm_should_add_signal(msk))
                return;
 
        mptcp_pm_schedule_work(msk, MPTCP_PM_ADD_ADDR_SEND_ACK);
index a6d983d80576ad3db7960aad67d771370977301f..b81ce0ea1f8b96df41718af7ef9d1bd5a7e0ed62 100644 (file)
@@ -408,8 +408,7 @@ void mptcp_pm_nl_add_addr_send_ack(struct mptcp_sock *msk)
 {
        struct mptcp_subflow_context *subflow;
 
-       if (!mptcp_pm_should_add_signal_ipv6(msk) &&
-           !mptcp_pm_should_add_signal_port(msk))
+       if (!mptcp_pm_should_add_signal(msk))
                return;
 
        __mptcp_flush_join_list(msk);
@@ -419,10 +418,9 @@ void mptcp_pm_nl_add_addr_send_ack(struct mptcp_sock *msk)
                u8 add_addr;
 
                spin_unlock_bh(&msk->pm.lock);
-               if (mptcp_pm_should_add_signal_ipv6(msk))
-                       pr_debug("send ack for add_addr6");
-               if (mptcp_pm_should_add_signal_port(msk))
-                       pr_debug("send ack for add_addr_port");
+               pr_debug("send ack for add_addr%s%s",
+                        mptcp_pm_should_add_signal_ipv6(msk) ? " [ipv6]" : "",
+                        mptcp_pm_should_add_signal_port(msk) ? " [port]" : "");
 
                lock_sock(ssk);
                tcp_send_ack(ssk);