mptcp: drop OPTION_MPTCP_ADD_ADDR6
authorGeliang Tang <geliangtang@gmail.com>
Wed, 7 Apr 2021 00:15:59 +0000 (17:15 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Apr 2021 21:09:39 +0000 (14:09 -0700)
Since the family field was added in struct mptcp_out_options, no need to
use OPTION_MPTCP_ADD_ADDR6 to identify the IPv6 address. Drop it.

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/options.c
net/mptcp/protocol.h

index 352c128..3a4c939 100644 (file)
@@ -652,8 +652,8 @@ static bool mptcp_established_options_add_addr(struct sock *sk, struct sk_buff *
        *size = len;
        if (drop_other_suboptions)
                *size -= opt_size;
+       opts->suboptions |= OPTION_MPTCP_ADD_ADDR;
        if (opts->addr.family == AF_INET) {
-               opts->suboptions |= OPTION_MPTCP_ADD_ADDR;
                if (!echo) {
                        opts->ahmac = add_addr_generate_hmac(msk->local_key,
                                                             msk->remote_key,
@@ -664,7 +664,6 @@ static bool mptcp_established_options_add_addr(struct sock *sk, struct sk_buff *
        }
 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
        else if (opts->addr.family == AF_INET6) {
-               opts->suboptions |= OPTION_MPTCP_ADD_ADDR6;
                if (!echo) {
                        opts->ahmac = add_addr6_generate_hmac(msk->local_key,
                                                              msk->remote_key,
@@ -1198,16 +1197,12 @@ void mptcp_write_options(__be32 *ptr, const struct tcp_sock *tp,
        }
 
 mp_capable_done:
-       if ((OPTION_MPTCP_ADD_ADDR
-#if IS_ENABLED(CONFIG_MPTCP_IPV6)
-            | OPTION_MPTCP_ADD_ADDR6
-#endif
-           ) & opts->suboptions) {
+       if (OPTION_MPTCP_ADD_ADDR & opts->suboptions) {
                u8 len = TCPOLEN_MPTCP_ADD_ADDR_BASE;
                u8 echo = MPTCP_ADDR_ECHO;
 
 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
-               if (OPTION_MPTCP_ADD_ADDR6 & opts->suboptions)
+               if (opts->addr.family == AF_INET6)
                        len = TCPOLEN_MPTCP_ADD_ADDR6_BASE;
 #endif
 
@@ -1221,12 +1216,12 @@ mp_capable_done:
 
                *ptr++ = mptcp_option(MPTCPOPT_ADD_ADDR,
                                      len, echo, opts->addr.id);
-               if (OPTION_MPTCP_ADD_ADDR & opts->suboptions) {
+               if (opts->addr.family == AF_INET) {
                        memcpy((u8 *)ptr, (u8 *)&opts->addr.addr.s_addr, 4);
                        ptr += 1;
                }
 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
-               else if (OPTION_MPTCP_ADD_ADDR6 & opts->suboptions) {
+               else if (opts->addr.family == AF_INET6) {
                        memcpy((u8 *)ptr, opts->addr.addr6.s6_addr, 16);
                        ptr += 4;
                }
index 4890dbb..7c5fd06 100644 (file)
 #define OPTION_MPTCP_MPJ_SYNACK        BIT(4)
 #define OPTION_MPTCP_MPJ_ACK   BIT(5)
 #define OPTION_MPTCP_ADD_ADDR  BIT(6)
-#define OPTION_MPTCP_ADD_ADDR6 BIT(7)
-#define OPTION_MPTCP_RM_ADDR   BIT(8)
-#define OPTION_MPTCP_FASTCLOSE BIT(9)
-#define OPTION_MPTCP_PRIO      BIT(10)
-#define OPTION_MPTCP_RST       BIT(11)
+#define OPTION_MPTCP_RM_ADDR   BIT(7)
+#define OPTION_MPTCP_FASTCLOSE BIT(8)
+#define OPTION_MPTCP_PRIO      BIT(9)
+#define OPTION_MPTCP_RST       BIT(10)
 
 /* MPTCP option subtypes */
 #define MPTCPOPT_MP_CAPABLE    0