From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0A5E0A04B3; Tue, 24 Dec 2019 04:17:07 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4164D1C01; Tue, 24 Dec 2019 04:17:07 +0100 (CET) Received: from mail-ua1-f68.google.com (mail-ua1-f68.google.com [209.85.222.68]) by dpdk.org (Postfix) with ESMTP id E3AC4F72 for ; Tue, 24 Dec 2019 04:17:05 +0100 (CET) Received: by mail-ua1-f68.google.com with SMTP id l6so6314491uap.13 for ; Mon, 23 Dec 2019 19:17:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3RavWyRSQXfV36vt2F1SMEKQEh4Ec/yLMuBnC10z454=; b=OTJ++YsddZLiALerR9A84tad5YJTEy7g2WTVLkRhkboak3vBXhaQhKL75DhGgRFMHO bsx4aWp9GN0hzhNawqjvMJXUwHM/5VZg5zHVtlU1WNmjjiqgXOWQPP+4GuLe+mzQqHg8 cGnW9YcAN85l29lLkYJF/KK4DWb8HBw6NBtD8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3RavWyRSQXfV36vt2F1SMEKQEh4Ec/yLMuBnC10z454=; b=gngBRpV8ro8Wgt/rq3i4dl3CFC8mtRovSkN9GZBL2gDIew67S5qcahzzB2g2zBAEFT 3oMIPCQyzjnUD+fGyIfwkwgnEkfl8H2pQgkVMrEdTyIm5IKXfQA3xzjMQJLlYH2VUKDw lJJhRQkrCxJiLMMjxr7kG5+68+IpBaPGu+4G/syG214gkfs2+WaJFQGGAHQ+8HWx9yJB 29sVcn4un9oevY2aUMY2Hsz21CFq2miSrxfEmyvVT6MEWEQa24B6lIQqywU2nJotXpqg Tb6UldBbNaesayYiTjZl+FUOPytI/rKvG5WNw/+Z+HLnSRbRf5BnydTqY1MflJJ0Oq60 CGvg== X-Gm-Message-State: APjAAAXwCPuYYRWO8ozWjq5XKCPxPli7ZqyJKYZN0jY8ySjVtIuaEWTq 58P+AiEqbbqz7l7qZF/eOwuRikTfPwFFhEBfaq5SWQ== X-Google-Smtp-Source: APXvYqzwcrgKM9uUwVCvq+tUly9r9xGQoM+hG4YU25Vx87lcdDFWZFpuFyVNbrqIsK385qlQDnlc88ZbmJaOoOrHOWc= X-Received: by 2002:a9f:3e9e:: with SMTP id x30mr860893uai.122.1577157425100; Mon, 23 Dec 2019 19:17:05 -0800 (PST) MIME-Version: 1.0 References: <20191216031647.7750-1-somnath.kotur@broadcom.com> <68e1721c-4051-0451-185d-39344a026a38@solarflare.com> <53c0b3d2-5d61-6300-178e-b9500a93a7e3@solarflare.com> In-Reply-To: <53c0b3d2-5d61-6300-178e-b9500a93a7e3@solarflare.com> From: Somnath Kotur Date: Tue, 24 Dec 2019 08:46:53 +0530 Message-ID: To: Andrew Rybchenko Cc: dev , Ferruh Yigit , Olivier Matz , Hemant Agrawal , Sachin Saxena Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [RFC PATCH] mbuf: fix to update documentation of PKT_RX_QINQ_STRIPPED X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Given that we haven't heard any objection from anyone in a while on this ...can we get this in please? Thanks On Mon, Dec 16, 2019 at 2:43 PM Andrew Rybchenko wrote: > > On 12/16/19 11:47 AM, Somnath Kotur wrote: > > On Mon, Dec 16, 2019 at 12:01 PM Andrew Rybchenko > > wrote: > >> > >> On 12/16/19 6:16 AM, Somnath Kotur wrote: > >>> Certain hardware may be able to strip and/or save only the outermost > >>> VLAN instead of both the VLANs in the mbuf in a QinQ scenario. > >>> To handle such cases, we could re-interpret setting of just PKT_RX_QINQ_STRIPPED > >>> to indicate that only the outermost VLAN has been stripped by the hardware and > >>> saved in mbuf->vlan_tci_outer. > >>> Only When both PKT_RX_QINQ_STRIPPED and PKT_RX_VLAN_STRIPPED are set, the 2 vlans > >>> have been stripped by the hardware and their tci are saved in mbuf->vlan_tci (inner) > >>> and mbuf->vlan_tci_outer (outer). > >>> > >>> Signed-off-by: Somnath Kotur > >>> Signed-off-by: JP Lee > >>> --- > >>> lib/librte_mbuf/rte_mbuf_core.h | 15 +++++++++++---- > >>> 1 file changed, 11 insertions(+), 4 deletions(-) > >>> > >>> diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h > >>> index 9a8557d..db1070b 100644 > >>> --- a/lib/librte_mbuf/rte_mbuf_core.h > >>> +++ b/lib/librte_mbuf/rte_mbuf_core.h > >>> @@ -124,12 +124,19 @@ > >>> #define PKT_RX_FDIR_FLX (1ULL << 14) > >>> > >>> /** > >>> - * The 2 vlans have been stripped by the hardware and their tci are > >>> - * saved in mbuf->vlan_tci (inner) and mbuf->vlan_tci_outer (outer). > >>> + * The outer vlan has been stripped by the hardware and their tci are > >>> + * saved in mbuf->vlan_tci_outer (outer). > >>> * This can only happen if vlan stripping is enabled in the RX > >>> * configuration of the PMD. > >>> - * When PKT_RX_QINQ_STRIPPED is set, the flags (PKT_RX_VLAN | > >>> - * PKT_RX_VLAN_STRIPPED | PKT_RX_QINQ) must also be set. > >>> + * When PKT_RX_QINQ_STRIPPED is set, the flags (PKT_RX_VLAN | PKT_RX_QINQ) > >>> + * must also be set. > >>> + * When both PKT_RX_QINQ_STRIPPED and PKT_RX_VLAN_STRIPPED are set, the 2 vlans > >>> + * have been stripped by the hardware and their tci are saved in > >>> + * mbuf->vlan_tci (inner) and mbuf->vlan_tci_outer (outer). > >>> + * This can only happen if vlan stripping is enabled in the RX configuration > >>> + * of the PMD. > >>> + * When PKT_RX_QINQ_STRIPPED and PKT_RX_VLAN_STRIPPED are set, > >>> + * (PKT_RX_VLAN | PKT_RX_QINQ) must also be set. > >>> */ > >>> #define PKT_RX_QINQ_STRIPPED (1ULL << 15) > >>> > >> > >> I always thought that PKT_RX_VLAN_STRIPPED means *one* VLAN > >> stripped regardless if it is outer (if the packet is double > >> tagged) or inner (if only one VLAN tag was present). > >> > >> That's why PKT_RX_QINQ_STRIPPED description says that *two* > >> VLANs have been stripped. > >> > >> What is the problem with such approach? > > The problem is that RX_VLAN_STRIPPED implies that the stripped VLAN > > (outer or inner) is saved in mbuf->vlan_tci, correct? > > Yes. > > > There is no way to convey that it is in QinQ mode and yet only outer > > VLAN has been stripped and saved in mbuf->vlan_tci_outer ? > > Ah, it looks like I understand now that the problem is in > PKT_RX_QINQ description which claims that TCI is saved in > mbuf->vlan_tci_outer and PKT_RX_QINQ_STRIPPED means that > both VLAN tags are stripped regardless (PKT_RX_VLAN_STRIPPED). > Moreover PKT_RX_QINQ_STRIPPED requires PKT_RX_VLAN_STRIPPED. > > It means that PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ, PKT_RX_VLAN > and PKT_RX_VLAN_STRIPPED must be clarified. > > I'm not sure, but it looks like it could affect net/dpaa2, > so I'm including driver maintainers in CC.