mptcp: use adding up size to get ADD_ADDR length
authorGeliang Tang <geliangtang@gmail.com>
Wed, 9 Dec 2020 23:51:21 +0000 (15:51 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Dec 2020 03:02:15 +0000 (19:02 -0800)
This patch uses adding up size to get the ADD_ADDR suboption length rather
than returning the ADD_ADDR size constants.

Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/protocol.h

index 9032174b446a69dfcdb844047dee3a8395e945de..9315f6a8343a70dc27361ebf0e4064761e177765 100644 (file)
@@ -577,10 +577,14 @@ static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk)
 
 static inline unsigned int mptcp_add_addr_len(int family, bool echo)
 {
-       if (family == AF_INET)
-               return echo ? TCPOLEN_MPTCP_ADD_ADDR_BASE
-                           : TCPOLEN_MPTCP_ADD_ADDR;
-       return echo ? TCPOLEN_MPTCP_ADD_ADDR6_BASE : TCPOLEN_MPTCP_ADD_ADDR6;
+       u8 len = TCPOLEN_MPTCP_ADD_ADDR_BASE;
+
+       if (family == AF_INET6)
+               len = TCPOLEN_MPTCP_ADD_ADDR6_BASE;
+       if (!echo)
+               len += MPTCPOPT_THMAC_LEN;
+
+       return len;
 }
 
 bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, unsigned int remaining,