From patchwork Fri Dec 13 00:58:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mat Martineau X-Patchwork-Id: 1208922 X-Patchwork-Delegate: matthieu.baerts@tessares.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.01.org (client-ip=198.145.21.10; helo=ml01.01.org; envelope-from=mptcp-bounces@lists.01.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47Ysjv2CHBz9sPn for ; Fri, 13 Dec 2019 11:58:42 +1100 (AEDT) Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id B5E011011368C; Thu, 12 Dec 2019 17:02:02 -0800 (PST) Received-SPF: None (mailfrom) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=mathew.j.martineau@linux.intel.com; receiver= Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 5A3901011367C for ; Thu, 12 Dec 2019 17:02:00 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2019 16:58:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,307,1571727600"; d="scan'208";a="296773951" Received: from mjmartin-nuc02.mjmartin-nuc02 (HELO mjmartin-nuc02.sea.intel.com) ([10.251.17.224]) by orsmga001.jf.intel.com with ESMTP; 12 Dec 2019 16:58:36 -0800 From: Mat Martineau To: mptcp@lists.01.org Cc: Mat Martineau Date: Thu, 12 Dec 2019 16:58:19 -0800 Message-Id: <20191213005822.29791-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191213005822.29791-1-mathew.j.martineau@linux.intel.com> References: <20191213005822.29791-1-mathew.j.martineau@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: HBWY65M3W3AVAPHQ3Z7FTMBCZQC763NV X-Message-ID-Hash: HBWY65M3W3AVAPHQ3Z7FTMBCZQC763NV X-MailFrom: mathew.j.martineau@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.1.1 Precedence: list Subject: [MPTCP] [PATCH] .topmsg: mptcp: Write MPTCP DSS headers to outgoing data packets List-Id: Discussions regarding MPTCP upstreaming Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Update information about DSS options appearing in segmented packets. Signed-off-by: Mat Martineau --- .topmsg | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.topmsg b/.topmsg index bb759658a0ec..424db4f06d5f 100644 --- a/.topmsg +++ b/.topmsg @@ -3,11 +3,12 @@ Subject: [PATCH] mptcp: Write MPTCP DSS headers to outgoing data packets Per-packet metadata required to write the MPTCP DSS option is written to the skb_ext area. One write to the socket may contain more than one -packet of data, in which case the DSS option in the first packet will -have a mapping covering all of the data in that write. Packets after the -first do not have a DSS option. This is complicated to handle under -memory pressure, since the first packet (with the DSS mapping) is pushed -to the TCP core before the remaining skbs are allocated. +packet of data, which is copied to page fragments and mapped in to MPTCP +DSS segments with size determined by the available page fragments and +the maximum mapping length allowed by the MPTCP specification. If +do_tcp_sendpages() splits a DSS segment in to multiple skbs, that's ok - +the later skbs can either have duplicated DSS mapping information or +none at all, and the receiver can handle that. The current implementation uses the subflow frag cache and tcp sendpages to avoid excessive code duplication. More work is required to