mirror of https://gitee.com/openkylin/linux.git
mptcp: rename fourth ack field
The name is misleading, it actually tracks the 'fully established' status. Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
79e28519ac
commit
0be534f5c0
|
@ -259,11 +259,11 @@ static bool mptcp_established_options_mp(struct sock *sk, struct sk_buff *skb,
|
|||
struct mptcp_ext *mpext;
|
||||
unsigned int data_len;
|
||||
|
||||
pr_debug("subflow=%p fourth_ack=%d seq=%x:%x remaining=%d", subflow,
|
||||
subflow->fourth_ack, subflow->snd_isn,
|
||||
pr_debug("subflow=%p fully established=%d seq=%x:%x remaining=%d",
|
||||
subflow, subflow->fully_established, subflow->snd_isn,
|
||||
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) {
|
||||
/* When skb is not available, we better over-estimate the
|
||||
* 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,
|
|||
return false;
|
||||
}
|
||||
|
||||
static bool check_fourth_ack(struct mptcp_subflow_context *subflow,
|
||||
struct sk_buff *skb,
|
||||
struct mptcp_options_received *mp_opt)
|
||||
static bool check_fully_established(struct mptcp_subflow_context *subflow,
|
||||
struct sk_buff *skb,
|
||||
struct mptcp_options_received *mp_opt)
|
||||
{
|
||||
/* here we can process OoO, in-window pkts, only in-sequence 4th ack
|
||||
* are relevant
|
||||
*/
|
||||
if (likely(subflow->fourth_ack ||
|
||||
if (likely(subflow->fully_established ||
|
||||
TCP_SKB_CB(skb)->seq != subflow->ssn_offset + 1))
|
||||
return true;
|
||||
|
||||
if (mp_opt->use_ack)
|
||||
subflow->fourth_ack = 1;
|
||||
subflow->fully_established = 1;
|
||||
|
||||
if (subflow->can_ack)
|
||||
return true;
|
||||
|
@ -467,7 +467,7 @@ void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb,
|
|||
struct mptcp_ext *mpext;
|
||||
|
||||
mp_opt = &opt_rx->mptcp;
|
||||
if (!check_fourth_ack(subflow, skb, mp_opt))
|
||||
if (!check_fully_established(subflow, skb, mp_opt))
|
||||
return;
|
||||
|
||||
if (!mp_opt->dss)
|
||||
|
|
|
@ -119,7 +119,7 @@ struct mptcp_subflow_context {
|
|||
u32 map_data_len;
|
||||
u32 request_mptcp : 1, /* send MP_CAPABLE */
|
||||
mp_capable : 1, /* remote is MPTCP capable */
|
||||
fourth_ack : 1, /* send initial DSS */
|
||||
fully_established : 1, /* path validated */
|
||||
conn_finished : 1,
|
||||
map_valid : 1,
|
||||
mpc_map : 1,
|
||||
|
|
|
@ -802,7 +802,7 @@ static void subflow_ulp_clone(const struct request_sock *req,
|
|||
new_ctx->tcp_sock = newsk;
|
||||
|
||||
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->remote_key = subflow_req->remote_key;
|
||||
new_ctx->local_key = subflow_req->local_key;
|
||||
|
|
Loading…
Reference in New Issue