From patchwork Thu Mar 19 10:06:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Abeni X-Patchwork-Id: 222249 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD20FC4332D for ; Thu, 19 Mar 2020 10:07:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 91B0220739 for ; Thu, 19 Mar 2020 10:07:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="ighL+TI7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726902AbgCSKHV (ORCPT ); Thu, 19 Mar 2020 06:07:21 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:53669 "EHLO us-smtp-delivery-74.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725601AbgCSKHV (ORCPT ); Thu, 19 Mar 2020 06:07:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584612439; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=nWEk+0kj8FksCoj7KClb84pskllv3CGFPyiC3mzU2go=; b=ighL+TI7oq2di4zoP/W5dtaoYgT8Wemv4LOUfX8gW2FG/DOEqBwXUCcSpD4zzcdfj2Cw14 zccHTMiYQ+wN+sN1M46hp+gMmRwXG2x8fGr1w1ehwUE00Ik+JNZSWOxLRa8fTNIXwYSOh3 wJd/hrDKSVVKbR3Rvzc5prBL7DdUR90= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-205-2BrI8os1OeKFJVmJ3XqIkQ-1; Thu, 19 Mar 2020 06:07:18 -0400 X-MC-Unique: 2BrI8os1OeKFJVmJ3XqIkQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4CEF2107ACC4; Thu, 19 Mar 2020 10:07:17 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-114-148.ams2.redhat.com [10.36.114.148]) by smtp.corp.redhat.com (Postfix) with ESMTP id A6FCC9CA3; Thu, 19 Mar 2020 10:07:15 +0000 (UTC) From: Paolo Abeni To: netdev@vger.kernel.org Cc: Mat Martineau , "David S. Miller" Subject: [PATCH net-next] mptcp: rename fourth ack field Date: Thu, 19 Mar 2020 11:06:30 +0100 Message-Id: <3c7d0601bc04139108479bf06a8d299b14496300.1584612221.git.pabeni@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The name is misleading, it actually tracks the 'fully established' status. Reviewed-by: Mat Martineau Signed-off-by: Paolo Abeni --- net/mptcp/options.c | 18 +++++++++--------- net/mptcp/protocol.h | 2 +- net/mptcp/subflow.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 63c8ee49cef2..55f3ce7638a0 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -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) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 9baf6fcba914..eb3f65264a40 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -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, diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 052d72a1d3a2..e1faa88855bf 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -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;