From patchwork Wed Dec 9 23:51:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mat Martineau X-Patchwork-Id: 11962897 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=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT 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 0DFB1C4361B for ; Wed, 9 Dec 2020 23:53:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C22562074F for ; Wed, 9 Dec 2020 23:53:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727016AbgLIXxX (ORCPT ); Wed, 9 Dec 2020 18:53:23 -0500 Received: from mga06.intel.com ([134.134.136.31]:19330 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726439AbgLIXxX (ORCPT ); Wed, 9 Dec 2020 18:53:23 -0500 IronPort-SDR: iqYMOZyxpz3tEcxP4hN0xyUWGGExa6iV2Zbr5zvYRNsCxXRUYc+3eKrC4ZtWwh+/Kyj0Hk1K8G CbCau92bcuIQ== X-IronPort-AV: E=McAfee;i="6000,8403,9830"; a="235763087" X-IronPort-AV: E=Sophos;i="5.78,407,1599548400"; d="scan'208";a="235763087" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Dec 2020 15:51:37 -0800 IronPort-SDR: CkG4U1GDebA82f+LBnIZEUjvE2RpYUlhHs6zXl1qEb3sC0ky5wwwtLCD3gR7+DJi1wpC68ywsr JmhL9lpLldaA== X-IronPort-AV: E=Sophos;i="5.78,407,1599548400"; d="scan'208";a="318582179" Received: from mjmartin-nuc02.amr.corp.intel.com ([10.254.111.12]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Dec 2020 15:51:37 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Mat Martineau , davem@davemloft.net, kuba@kernel.org, geliangtang@gmail.com, mptcp@lists.01.org Subject: [PATCH net-next 00/11] mptcp: Add port parameter to ADD_ADDR option Date: Wed, 9 Dec 2020 15:51:17 -0800 Message-Id: <20201209235128.175473-1-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org The ADD_ADDR MPTCP option is used to announce available IP addresses that a peer may connect to when adding more TCP subflows to an existing MPTCP connection. There is an optional port number field in that ADD_ADDR header, and this patch set adds capability for that port number to be sent and received. Patches 1, 2, and 4 refactor existing ADD_ADDR code to simplify implementation of port number support. Patches 3 and 5 are the main functional changes, for sending and receiving the port number in the MPTCP ADD_ADDR option. Patch 6 sends the ADD_ADDR option with port number on a bare TCP ACK, since the extra length of the option may run in to cases where sufficient TCP option space is not available on a data packet. Patch 7 plumbs in port number support for the in-kernel MPTCP path manager. Patches 8-11 add some optional debug output and a little more cleanup refactoring. Geliang Tang (11): mptcp: unify ADD_ADDR and echo suboptions writing mptcp: unify ADD_ADDR and ADD_ADDR6 suboptions writing mptcp: add port support for ADD_ADDR suboption writing mptcp: use adding up size to get ADD_ADDR length mptcp: add the outgoing ADD_ADDR port support mptcp: send out dedicated packet for ADD_ADDR using port mptcp: add port parameter for mptcp_pm_announce_addr mptcp: print out port and ahmac when receiving ADD_ADDR mptcp: drop rm_addr_signal flag mptcp: rename add_addr_signal and mptcp_add_addr_status mptcp: use the variable sk instead of open-coding include/net/mptcp.h | 1 + net/mptcp/options.c | 103 ++++++++++++++++++++++++++--------------- net/mptcp/pm.c | 40 +++++++++++----- net/mptcp/pm_netlink.c | 31 +++++++++---- net/mptcp/protocol.h | 50 ++++++++++++-------- 5 files changed, 146 insertions(+), 79 deletions(-)