Hi Ori, Thomas and Ferruh, Could you please help to review it?
Thanks. > -----Original Message----- > From: Jiawei Wang <jiaw...@nvidia.com> > Sent: Tuesday, February 14, 2023 11:49 PM > To: Slava Ovsiienko <viachesl...@nvidia.com>; Ori Kam <or...@nvidia.com>; > NBU-Contact-Thomas Monjalon (EXTERNAL) <tho...@monjalon.net>; > andrew.rybche...@oktetlabs.ru; Aman Singh <aman.deep.si...@intel.com>; > Yuying Zhang <yuying.zh...@intel.com>; Ferruh Yigit <ferruh.yi...@amd.com> > Cc: dev@dpdk.org; Raslan Darawsheh <rasl...@nvidia.com> > Subject: [PATCH v5 1/2] ethdev: introduce the Tx map API for aggregated ports > > When multiple ports are aggregated into a single DPDK port, > (example: Linux bonding, DPDK bonding, failsafe, etc.), we want to know which > port use for Tx via a queue. > > This patch introduces the new ethdev API rte_eth_dev_map_aggr_tx_affinity(), > it's used to map a Tx queue with an aggregated port of the DPDK port > (specified with port_id), The affinity is the number of the aggregated port. > Value 0 means no affinity and traffic could be routed to any aggregated port, > this is the default current behavior. > > The maximum number of affinity is given by rte_eth_dev_count_aggr_ports(). > > Add the trace point for ethdev rte_eth_dev_count_aggr_ports() and > rte_eth_dev_map_aggr_tx_affinity() functions. > > Add the testpmd command line: > testpmd> port config (port_id) txq (queue_id) affinity (value) > > For example, there're two physical ports connected to a single DPDK port (port > id 0), and affinity 1 stood for the first physical port and affinity 2 stood > for the > second physical port. > Use the below commands to config tx phy affinity for per Tx Queue: > port config 0 txq 0 affinity 1 > port config 0 txq 1 affinity 1 > port config 0 txq 2 affinity 2 > port config 0 txq 3 affinity 2 > > These commands config the Tx Queue index 0 and Tx Queue index 1 with phy > affinity 1, uses Tx Queue 0 or Tx Queue 1 send packets, these packets will be > sent from the first physical port, and similar with the second physical port > if > sending packets with Tx Queue 2 or Tx Queue 3. > > Signed-off-by: Jiawei Wang <jiaw...@nvidia.com> > --- > app/test-pmd/cmdline.c | 96 +++++++++++++++++++++ > doc/guides/rel_notes/release_23_03.rst | 7 ++ > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 14 +++ > lib/ethdev/ethdev_driver.h | 39 +++++++++ > lib/ethdev/ethdev_trace.h | 17 ++++ > lib/ethdev/ethdev_trace_points.c | 6 ++ > lib/ethdev/rte_ethdev.c | 49 +++++++++++ > lib/ethdev/rte_ethdev.h | 46 ++++++++++ > lib/ethdev/version.map | 2 + > 9 files changed, 276 insertions(+) > snip > 2.18.1