mptcp: refine opt_mp_capable determination
[platform/kernel/linux-starfive.git] / net / mptcp / subflow.c
index 45b8115..70b7a47 100644 (file)
@@ -157,8 +157,8 @@ static int subflow_check_req(struct request_sock *req,
 
        mptcp_get_options(skb, &mp_opt);
 
-       opt_mp_capable = !!(mp_opt.suboptions & OPTIONS_MPTCP_MPC);
-       opt_mp_join = !!(mp_opt.suboptions & OPTIONS_MPTCP_MPJ);
+       opt_mp_capable = !!(mp_opt.suboptions & OPTION_MPTCP_MPC_SYN);
+       opt_mp_join = !!(mp_opt.suboptions & OPTION_MPTCP_MPJ_SYN);
        if (opt_mp_capable) {
                SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVE);
 
@@ -254,8 +254,8 @@ int mptcp_subflow_init_cookie_req(struct request_sock *req,
        subflow_init_req(req, sk_listener);
        mptcp_get_options(skb, &mp_opt);
 
-       opt_mp_capable = !!(mp_opt.suboptions & OPTIONS_MPTCP_MPC);
-       opt_mp_join = !!(mp_opt.suboptions & OPTIONS_MPTCP_MPJ);
+       opt_mp_capable = !!(mp_opt.suboptions & OPTION_MPTCP_MPC_ACK);
+       opt_mp_join = !!(mp_opt.suboptions & OPTION_MPTCP_MPJ_ACK);
        if (opt_mp_capable && opt_mp_join)
                return -EINVAL;
 
@@ -486,7 +486,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
 
        mptcp_get_options(skb, &mp_opt);
        if (subflow->request_mptcp) {
-               if (!(mp_opt.suboptions & OPTIONS_MPTCP_MPC)) {
+               if (!(mp_opt.suboptions & OPTION_MPTCP_MPC_SYNACK)) {
                        MPTCP_INC_STATS(sock_net(sk),
                                        MPTCP_MIB_MPCAPABLEACTIVEFALLBACK);
                        mptcp_do_fallback(sk);
@@ -506,7 +506,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
        } else if (subflow->request_join) {
                u8 hmac[SHA256_DIGEST_SIZE];
 
-               if (!(mp_opt.suboptions & OPTIONS_MPTCP_MPJ)) {
+               if (!(mp_opt.suboptions & OPTION_MPTCP_MPJ_SYNACK)) {
                        subflow->reset_reason = MPTCP_RST_EMPTCP;
                        goto do_reset;
                }
@@ -783,12 +783,12 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk,
                 * options.
                 */
                mptcp_get_options(skb, &mp_opt);
-               if (!(mp_opt.suboptions & OPTIONS_MPTCP_MPC))
+               if (!(mp_opt.suboptions & OPTION_MPTCP_MPC_ACK))
                        fallback = true;
 
        } else if (subflow_req->mp_join) {
                mptcp_get_options(skb, &mp_opt);
-               if (!(mp_opt.suboptions & OPTIONS_MPTCP_MPJ) ||
+               if (!(mp_opt.suboptions & OPTION_MPTCP_MPJ_ACK) ||
                    !subflow_hmac_valid(req, &mp_opt) ||
                    !mptcp_can_accept_new_subflow(subflow_req->msk)) {
                        SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKMAC);