From: Jiawei Wang <jiaweiw@nvidia.com>
To: <viacheslavo@nvidia.com>, <orika@nvidia.com>,
<thomas@monjalon.net>, <andrew.rybchenko@oktetlabs.ru>
Cc: <dev@dpdk.org>, <rasland@nvidia.com>
Subject: [PATCH v4 0/2] add new PHY affinity in the flow item and Tx queue API
Date: Fri, 3 Feb 2023 15:33:37 +0200 [thread overview]
Message-ID: <20230203133339.30271-1-jiaweiw@nvidia.com> (raw)
In-Reply-To: <20230203050717.46914-1-jiaweiw@nvidia.com>
When multiple physical ports are connected to a single DPDK port,
(example: kernel bonding, DPDK bonding, failsafe, etc.),
we want to know which physical port is used for Rx and Tx.
This patch maps a DPDK Tx queue with a physical port,
by adding tx_phy_affinity setting in Tx queue.
The affinity number is the physical port ID where packets will be
sent.
Value 0 means no affinity and traffic could be routed to any
connected physical ports, this is the default current behavior.
The number of physical ports is reported with rte_eth_dev_info_get().
This patch allows to map a Rx queue with a physical port by using
a flow rule. The new item is called RTE_FLOW_ITEM_TYPE_PHY_AFFINITY.
While uses the phy affinity as a matching item in the flow rule, and
sets the same phy_affinity value on the Tx queue, then the packet
can be sent from the same physical port as the receiving one.
The physical affinity numbering starts from 1, then trying to
match on phy_affinity 0 will result in an error.
RFC: http://patches.dpdk.org/project/dpdk/cover/20221221102934.13822-1-jiaweiw@nvidia.com/
v4:
* Rebase the latest code
* Update new field description
* Update release release note
* Reword the commit log to make clear
v3:
* Update exception rule
* Update the commit log
* Add the description for PHY affinity and numbering definition
* Add the number of physical ports into device info
* Change the patch order
v2: Update based on the comments
Jiawei Wang (2):
ethdev: introduce the PHY affinity field in Tx queue API
ethdev: add PHY affinity match item
app/test-pmd/cmdline.c | 100 ++++++++++++++++++++
app/test-pmd/cmdline_flow.c | 28 ++++++
app/test-pmd/config.c | 1 +
devtools/libabigail.abignore | 5 +
doc/guides/prog_guide/rte_flow.rst | 8 ++
doc/guides/rel_notes/release_23_03.rst | 5 +
doc/guides/testpmd_app_ug/testpmd_funcs.rst | 17 ++++
lib/ethdev/rte_ethdev.h | 10 ++
lib/ethdev/rte_flow.c | 1 +
lib/ethdev/rte_flow.h | 35 +++++++
10 files changed, 210 insertions(+)
--
2.18.1
next prev parent reply other threads:[~2023-02-03 13:34 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20221221102934.13822-1-jiaweiw@nvidia.com/>
2023-02-03 5:07 ` [PATCH v3 " Jiawei Wang
2023-02-03 5:07 ` [PATCH v3 1/2] ethdev: introduce the PHY affinity field in " Jiawei Wang
2023-02-03 5:07 ` [PATCH v3 2/2] ethdev: add PHY affinity match item Jiawei Wang
2023-02-03 13:33 ` Jiawei Wang [this message]
2023-02-03 13:33 ` [PATCH v4 1/2] ethdev: introduce the PHY affinity field in Tx queue API Jiawei Wang
2023-02-06 15:29 ` Jiawei(Jonny) Wang
2023-02-07 9:40 ` Ori Kam
2023-02-09 19:44 ` Ferruh Yigit
2023-02-10 14:06 ` Jiawei(Jonny) Wang
2023-02-14 9:38 ` Jiawei(Jonny) Wang
2023-02-14 10:01 ` Ferruh Yigit
2023-02-03 13:33 ` [PATCH v4 2/2] ethdev: add PHY affinity match item Jiawei Wang
2023-02-14 15:48 ` [PATCH v5 0/2] Added support for Tx queue mapping with an aggregated port Jiawei Wang
2023-02-14 15:48 ` [PATCH v5 1/2] ethdev: introduce the Tx map API for aggregated ports Jiawei Wang
2023-02-15 11:41 ` Jiawei(Jonny) Wang
2023-02-16 17:42 ` Thomas Monjalon
2023-02-17 6:45 ` Jiawei(Jonny) Wang
2023-02-16 17:58 ` Ferruh Yigit
2023-02-17 6:44 ` Jiawei(Jonny) Wang
2023-02-17 8:24 ` Andrew Rybchenko
2023-02-17 9:50 ` Jiawei(Jonny) Wang
2023-02-14 15:48 ` [PATCH v5 2/2] ethdev: add Aggregated affinity match item Jiawei Wang
2023-02-16 17:46 ` Thomas Monjalon
2023-02-17 6:45 ` Jiawei(Jonny) Wang
2023-02-17 10:50 ` [PATCH v6 0/2] Add Tx queue mapping of aggregated ports Jiawei Wang
2023-02-17 10:50 ` [PATCH v6 1/2] ethdev: add " Jiawei Wang
2023-02-17 12:53 ` Ferruh Yigit
2023-02-17 12:56 ` Andrew Rybchenko
2023-02-17 12:59 ` Ferruh Yigit
2023-02-17 13:05 ` Jiawei(Jonny) Wang
2023-02-17 13:41 ` Jiawei(Jonny) Wang
2023-02-17 15:03 ` Andrew Rybchenko
2023-02-17 15:32 ` Ferruh Yigit
2023-02-17 10:50 ` [PATCH v6 2/2] ethdev: add flow matching of aggregated port Jiawei Wang
2023-02-17 13:01 ` [PATCH v6 0/2] Add Tx queue mapping of aggregated ports Ferruh Yigit
2023-02-17 13:07 ` Jiawei(Jonny) Wang
2023-02-17 15:47 ` [PATCH v7 " Jiawei Wang
2023-02-17 15:47 ` [PATCH v7 1/2] ethdev: add " Jiawei Wang
2023-02-17 15:47 ` [PATCH v7 2/2] ethdev: add flow matching of aggregated port Jiawei Wang
2023-02-17 16:45 ` [PATCH v7 0/2] Add Tx queue mapping of aggregated ports Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230203133339.30271-1-jiaweiw@nvidia.com \
--to=jiaweiw@nvidia.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=orika@nvidia.com \
--cc=rasland@nvidia.com \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).