OSDN Git Service

mptcp: fix subflow's local_id issues
authorGeliang Tang <geliangtang@gmail.com>
Tue, 8 Sep 2020 02:49:38 +0000 (10:49 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Sep 2020 19:29:15 +0000 (12:29 -0700)
commit57025817eaa42c0b6e2a907f28a125c74e3b2fc6
tree4e2c782832180b0baff7707682c4f5db887af175
parenta4b5cc9e10803ecba64a7d54c0f47e4564b4a980
mptcp: fix subflow's local_id issues

In mptcp_pm_nl_get_local_id, skc_local is the same as msk_local, so it
always return 0. Thus every subflow's local_id is 0. It's incorrect.

This patch fixed this issue.

Also, we need to ignore the zero address here, like 0.0.0.0 in IPv4. When
we use the zero address as a local address, it means that we can use any
one of the local addresses. The zero address is not a new address, we don't
need to add it to PM, so this patch added a new function address_zero to
check whether an address is the zero address, if it is, we ignore this
address.

Fixes: 01cacb00b35cb ("mptcp: add netlink-based PM")
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/pm_netlink.c