Commit 0be534f5 authored by Paolo Abeni's avatar Paolo Abeni Committed by David S. Miller

mptcp: rename fourth ack field

The name is misleading, it actually tracks the 'fully established'
status.
Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 79e28519
...@@ -259,11 +259,11 @@ static bool mptcp_established_options_mp(struct sock *sk, struct sk_buff *skb, ...@@ -259,11 +259,11 @@ static bool mptcp_established_options_mp(struct sock *sk, struct sk_buff *skb,
struct mptcp_ext *mpext; struct mptcp_ext *mpext;
unsigned int data_len; unsigned int data_len;
pr_debug("subflow=%p fourth_ack=%d seq=%x:%x remaining=%d", subflow, pr_debug("subflow=%p fully established=%d seq=%x:%x remaining=%d",
subflow->fourth_ack, subflow->snd_isn, subflow, subflow->fully_established, subflow->snd_isn,
skb ? TCP_SKB_CB(skb)->seq : 0, remaining); skb ? TCP_SKB_CB(skb)->seq : 0, remaining);
if (subflow->mp_capable && !subflow->fourth_ack && skb && if (subflow->mp_capable && !subflow->fully_established && skb &&
subflow->snd_isn == TCP_SKB_CB(skb)->seq) { subflow->snd_isn == TCP_SKB_CB(skb)->seq) {
/* When skb is not available, we better over-estimate the /* When skb is not available, we better over-estimate the
* emitted options len. A full DSS option is longer than * emitted options len. A full DSS option is longer than
...@@ -429,19 +429,19 @@ bool mptcp_synack_options(const struct request_sock *req, unsigned int *size, ...@@ -429,19 +429,19 @@ bool mptcp_synack_options(const struct request_sock *req, unsigned int *size,
return false; return false;
} }
static bool check_fourth_ack(struct mptcp_subflow_context *subflow, static bool check_fully_established(struct mptcp_subflow_context *subflow,
struct sk_buff *skb, struct sk_buff *skb,
struct mptcp_options_received *mp_opt) struct mptcp_options_received *mp_opt)
{ {
/* here we can process OoO, in-window pkts, only in-sequence 4th ack /* here we can process OoO, in-window pkts, only in-sequence 4th ack
* are relevant * are relevant
*/ */
if (likely(subflow->fourth_ack || if (likely(subflow->fully_established ||
TCP_SKB_CB(skb)->seq != subflow->ssn_offset + 1)) TCP_SKB_CB(skb)->seq != subflow->ssn_offset + 1))
return true; return true;
if (mp_opt->use_ack) if (mp_opt->use_ack)
subflow->fourth_ack = 1; subflow->fully_established = 1;
if (subflow->can_ack) if (subflow->can_ack)
return true; return true;
...@@ -467,7 +467,7 @@ void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb, ...@@ -467,7 +467,7 @@ void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb,
struct mptcp_ext *mpext; struct mptcp_ext *mpext;
mp_opt = &opt_rx->mptcp; mp_opt = &opt_rx->mptcp;
if (!check_fourth_ack(subflow, skb, mp_opt)) if (!check_fully_established(subflow, skb, mp_opt))
return; return;
if (!mp_opt->dss) if (!mp_opt->dss)
......
...@@ -119,7 +119,7 @@ struct mptcp_subflow_context { ...@@ -119,7 +119,7 @@ struct mptcp_subflow_context {
u32 map_data_len; u32 map_data_len;
u32 request_mptcp : 1, /* send MP_CAPABLE */ u32 request_mptcp : 1, /* send MP_CAPABLE */
mp_capable : 1, /* remote is MPTCP capable */ mp_capable : 1, /* remote is MPTCP capable */
fourth_ack : 1, /* send initial DSS */ fully_established : 1, /* path validated */
conn_finished : 1, conn_finished : 1,
map_valid : 1, map_valid : 1,
mpc_map : 1, mpc_map : 1,
......
...@@ -802,7 +802,7 @@ static void subflow_ulp_clone(const struct request_sock *req, ...@@ -802,7 +802,7 @@ static void subflow_ulp_clone(const struct request_sock *req,
new_ctx->tcp_sock = newsk; new_ctx->tcp_sock = newsk;
new_ctx->mp_capable = 1; new_ctx->mp_capable = 1;
new_ctx->fourth_ack = subflow_req->remote_key_valid; new_ctx->fully_established = subflow_req->remote_key_valid;
new_ctx->can_ack = subflow_req->remote_key_valid; new_ctx->can_ack = subflow_req->remote_key_valid;
new_ctx->remote_key = subflow_req->remote_key; new_ctx->remote_key = subflow_req->remote_key;
new_ctx->local_key = subflow_req->local_key; new_ctx->local_key = subflow_req->local_key;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment