Message ID | 20240208054311.3642-1-ajit.khaparde@broadcom.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CC03243AC3; Thu, 8 Feb 2024 06:43:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 597404029C; Thu, 8 Feb 2024 06:43:19 +0100 (CET) Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by mails.dpdk.org (Postfix) with ESMTP id 9A97040295 for <dev@dpdk.org>; Thu, 8 Feb 2024 06:43:17 +0100 (CET) Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-78406c22dc7so82244485a.0 for <dev@dpdk.org>; Wed, 07 Feb 2024 21:43:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707370996; x=1707975796; darn=dpdk.org; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=n5ttXWttbKfFV4k3cvr64vxEWQAhGcXWK/giJSvjKls=; b=VcXxbhcQVqpSHp2ZqpZpkQ0jR2/wf/2rnr5Ah/6/R38BDQX6kR//aQMusWNy1QqO6q OQ+edM8I7n5fxKoAYlMiCz0Ulpca2QHsOst5DZKIgNFk1ap2Mn2YMY1Wv6Bjt814m8O2 5rj+Mzuy4RDXyQu+xdSn0ih8APvQyuGWoZ+5E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707370996; x=1707975796; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=n5ttXWttbKfFV4k3cvr64vxEWQAhGcXWK/giJSvjKls=; b=fPKLyExIkvzkbIJDufZfcDJNo1NXwtaWla296Xsx5VBgsGshenAENh3JhLTzLybxMs 9ytB9cNe+BzJm+fk4m4zTOHhxHxZ63ms0s9TSE0ZU2JmPHm6p/JLVMRYqKTctfTFVUS2 8T/AMScoB85x9yUTrU0/XRX2U4tFss9nIpCjmhE9XC1N4NE39kpIt1Po6HjX4Uu9SIua kfh94QtrXQQKUhyPkTpKEd2b4Le/eLOdGihZe3YQzr+MNpv0rCsG/NBY4ldEZtNY+Tw1 N9fUwEXjniawVVHfvmH+8maaTHVCrU+F9RRFZLPGn11ghDp/AlsOZo5DQISdgCSv+wLM nLMA== X-Gm-Message-State: AOJu0YxK/759tVnWdYDUS+K83mH6IEDk3vBVs3BF5T0Tr+kz4AdS1P5F XwkIUxzrwPCPyH3b6ARMY3LatOJYvE0o+TP59rDV6PeTwiIUrWxeBIKTaMNRoUkWFtRFZDFbLjK wyCCgLTCy+sr+oM2veJp6GV9OUTj1GxYSHeKzIRCOhIrkNnEf2AUCm1yD563Wc6BxLoEGQjdsv9 kFBfbNukRS/VXighhTVefVsZpOJxaJ X-Google-Smtp-Source: AGHT+IEKoJMnILJ1DeVG/DrIqDKudGP5fEhhs58v2snrNlPwk0cen36lNMjQU+gPq/4RsidEfMEq1Q== X-Received: by 2002:a0c:e346:0:b0:68c:92ca:fec5 with SMTP id a6-20020a0ce346000000b0068c92cafec5mr7389902qvm.51.1707370996267; Wed, 07 Feb 2024 21:43:16 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVFIjCFqatL5vcTyd0VZBN8IOTqlh1P/M/VGFZvr6B9pNzew7LGPaaAhsMhBb06HOaSOi0HxfJaDfDzs0k2pihGDr6gQiy/rS4YsDc2kw== Received: from localhost.localdomain ([2605:a601:a780:1400:500e:b22e:1a:2d97]) by smtp.gmail.com with ESMTPSA id mc3-20020a056214554300b0068cc4248169sm622949qvb.100.2024.02.07.21.43.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Feb 2024 21:43:15 -0800 (PST) From: Ajit Khaparde <ajit.khaparde@broadcom.com> To: dev@dpdk.org Cc: ferruh.yigit@intel.com, andrew.rybchenko@oktetlabs.ru Subject: [PATCH 0/3] Support IPv6 flow label based RSS Date: Wed, 7 Feb 2024 21:43:08 -0800 Message-Id: <20240208054311.3642-1-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000c139190610d849b2" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
Support IPv6 flow label based RSS
|
|
Message
Ajit Khaparde
Feb. 8, 2024, 5:43 a.m. UTC
The use of 5-tuple of the source address, destination address, source port, destination port, and the transport protocol type may not be possible due to IP fragmentation, encryption, or inability to parse past IPv6 extensions headers. Flow label values can be chosen such that they can be used as part of the input to a hash function used in a load distribution scheme. On supporting hardware, the 20-bit Flow Label field in the IPv6 header can be used to perform RSS in the ingress path. Please apply. Example to configure IPv6 flow label based RSS: flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-flow-label end / end Ajit Khaparde (3): ethdev: add support for RSS based on IPv6 flow label app/testpmd: add IPv6 flow label to RSS types net/bnxt: add IPv6 flow label based RSS support app/test-pmd/config.c | 1 + drivers/net/bnxt/bnxt.h | 1 + drivers/net/bnxt/bnxt_ethdev.c | 2 ++ drivers/net/bnxt/bnxt_hwrm.c | 7 +++++++ drivers/net/bnxt/bnxt_vnic.c | 9 +++++++-- lib/ethdev/rte_ethdev.h | 1 + 6 files changed, 19 insertions(+), 2 deletions(-)
Comments
On 2/8/2024 5:43 AM, Ajit Khaparde wrote: > The use of 5-tuple of the source address, destination address, > source port, destination port, and the transport protocol type > may not be possible due to IP fragmentation, encryption, or > inability to parse past IPv6 extensions headers. > > Flow label values can be chosen such that they can be > used as part of the input to a hash function used in a load > distribution scheme. > > On supporting hardware, the 20-bit Flow Label field in the > IPv6 header can be used to perform RSS in the ingress path. > > Please apply. > Hi Ajit, First two patch looks OK but can you please combine them into single patch? There are two ways for RSS, config APIs and rte_flow based support, testpmd patch only adds flow based support, I don't know if old method support is required, but if you want to add you can check following sample: 'Commit 46914aa1c793 ("ethdev: add eCPRI RSS offload type")' Third patch, bnxt one, doesn't apply. It looks like it is on top of different source code, if you prefer you can make it another patch and get your tree. > Example to configure IPv6 flow label based RSS: > > flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-flow-label end / end > > Ajit Khaparde (3): > ethdev: add support for RSS based on IPv6 flow label > app/testpmd: add IPv6 flow label to RSS types > net/bnxt: add IPv6 flow label based RSS support > > app/test-pmd/config.c | 1 + > drivers/net/bnxt/bnxt.h | 1 + > drivers/net/bnxt/bnxt_ethdev.c | 2 ++ > drivers/net/bnxt/bnxt_hwrm.c | 7 +++++++ > drivers/net/bnxt/bnxt_vnic.c | 9 +++++++-- > lib/ethdev/rte_ethdev.h | 1 + > 6 files changed, 19 insertions(+), 2 deletions(-) >
On Thu, Feb 8, 2024 at 10:47 AM Ferruh Yigit <ferruh.yigit@amd.com> wrote: > > On 2/8/2024 5:43 AM, Ajit Khaparde wrote: > > The use of 5-tuple of the source address, destination address, > > source port, destination port, and the transport protocol type > > may not be possible due to IP fragmentation, encryption, or > > inability to parse past IPv6 extensions headers. > > > > Flow label values can be chosen such that they can be > > used as part of the input to a hash function used in a load > > distribution scheme. > > > > On supporting hardware, the 20-bit Flow Label field in the > > IPv6 header can be used to perform RSS in the ingress path. > > > > Please apply. > > > > Hi Ajit, > Thanks Ferruh. > First two patch looks OK but can you please combine them into single patch? Sure. Can do. > > There are two ways for RSS, config APIs and rte_flow based support, > testpmd patch only adds flow based support, I don't know if old method > support is required, but if you want to add you can check following sample: > 'Commit 46914aa1c793 ("ethdev: add eCPRI RSS offload type")' Ok. Let me check. > > > Third patch, bnxt one, doesn't apply. It looks like it is on top of > different source code, if you prefer you can make it another patch and > get your tree. Yes. That's right. I had used the brcm-next-net for that and wanted to have a driver patch to show usability of the code. I think in v2, I will just send the ethdev + testpmd patch and add the driver patch in the PMD list/tree for cherry-pick. Thanks Ajit > > > > Example to configure IPv6 flow label based RSS: > > > > flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-flow-label end / end > > > > Ajit Khaparde (3): > > ethdev: add support for RSS based on IPv6 flow label > > app/testpmd: add IPv6 flow label to RSS types > > net/bnxt: add IPv6 flow label based RSS support > > > > app/test-pmd/config.c | 1 + > > drivers/net/bnxt/bnxt.h | 1 + > > drivers/net/bnxt/bnxt_ethdev.c | 2 ++ > > drivers/net/bnxt/bnxt_hwrm.c | 7 +++++++ > > drivers/net/bnxt/bnxt_vnic.c | 9 +++++++-- > > lib/ethdev/rte_ethdev.h | 1 + > > 6 files changed, 19 insertions(+), 2 deletions(-) > > >
On 2/8/2024 6:56 PM, Ajit Khaparde wrote: > On Thu, Feb 8, 2024 at 10:47 AM Ferruh Yigit <ferruh.yigit@amd.com> wrote: >> >> On 2/8/2024 5:43 AM, Ajit Khaparde wrote: >>> The use of 5-tuple of the source address, destination address, >>> source port, destination port, and the transport protocol type >>> may not be possible due to IP fragmentation, encryption, or >>> inability to parse past IPv6 extensions headers. >>> >>> Flow label values can be chosen such that they can be >>> used as part of the input to a hash function used in a load >>> distribution scheme. >>> >>> On supporting hardware, the 20-bit Flow Label field in the >>> IPv6 header can be used to perform RSS in the ingress path. >>> >>> Please apply. >>> >> >> Hi Ajit, >> > Thanks Ferruh. > >> First two patch looks OK but can you please combine them into single patch? > Sure. Can do. > >> >> There are two ways for RSS, config APIs and rte_flow based support, >> testpmd patch only adds flow based support, I don't know if old method >> support is required, but if you want to add you can check following sample: >> 'Commit 46914aa1c793 ("ethdev: add eCPRI RSS offload type")' > Ok. Let me check. > >> >> >> Third patch, bnxt one, doesn't apply. It looks like it is on top of >> different source code, if you prefer you can make it another patch and >> get your tree. > Yes. That's right. I had used the brcm-next-net for that and wanted > to have a driver patch to show usability of the code. > > I think in v2, I will just send the ethdev + testpmd patch > ack. > and add the driver patch in the PMD list/tree for cherry-pick. > > Thanks > Ajit > >> >> >>> Example to configure IPv6 flow label based RSS: >>> >>> flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-flow-label end / end >>> >>> Ajit Khaparde (3): >>> ethdev: add support for RSS based on IPv6 flow label >>> app/testpmd: add IPv6 flow label to RSS types >>> net/bnxt: add IPv6 flow label based RSS support >>> >>> app/test-pmd/config.c | 1 + >>> drivers/net/bnxt/bnxt.h | 1 + >>> drivers/net/bnxt/bnxt_ethdev.c | 2 ++ >>> drivers/net/bnxt/bnxt_hwrm.c | 7 +++++++ >>> drivers/net/bnxt/bnxt_vnic.c | 9 +++++++-- >>> lib/ethdev/rte_ethdev.h | 1 + >>> 6 files changed, 19 insertions(+), 2 deletions(-) >>> >>