#
3d4e27fd |
| 25-Aug-2023 |
David Marchand <david.marchand@redhat.com> |
use abstracted bit count functions
Now that DPDK provides such bit count functions, make use of them.
This patch was prepared with a "brutal" commandline:
$ old=__builtin_clzll; new=rte_clz64; g
use abstracted bit count functions
Now that DPDK provides such bit count functions, make use of them.
This patch was prepared with a "brutal" commandline:
$ old=__builtin_clzll; new=rte_clz64; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_clz; new=rte_clz32; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g"
$ old=__builtin_ctzll; new=rte_ctz64; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_ctz; new=rte_ctz32; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g"
$ old=__builtin_popcountll; new=rte_popcount64; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g" $ old=__builtin_popcount; new=rte_popcount32; git grep -lw $old :^lib/eal/include/rte_bitops.h | xargs sed -i -e "s#\<$old\>#$new#g"
Then inclusion of rte_bitops.h was added were necessary.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Reviewed-by: Long Li <longli@microsoft.com>
show more ...
|
#
57a6b442 |
| 28-Jun-2023 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
app/testpmd: add dump commands help message
There was missing "dump_xxxxx" commands help message. Patch updates "help display" section of the help message.
Signed-off-by: Viacheslav Ovsiienko <viac
app/testpmd: add dump commands help message
There was missing "dump_xxxxx" commands help message. Patch updates "help display" section of the help message.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
17401008 |
| 27-Jun-2023 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
app/testpmd: add trace dump command
The "dump_trace" CLI command is added to trigger saving the trace dumps to the trace directory.
The tracing data are saved according to the EAL configuration (ex
app/testpmd: add trace dump command
The "dump_trace" CLI command is added to trigger saving the trace dumps to the trace directory.
The tracing data are saved according to the EAL configuration (explicit --trace-dir EAL command line parameter alters the target folder to save). The result dump folder gets the name like rte-YYYY-MM-DD-xx-HH-MM-SS format.
This command is useful to get the trace date without exiting testpmd application and to get the multiple dumps to observe the situation in dynamics.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
66a1e115 |
| 14-Jun-2023 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: rename functions checking queue validity
Two functions helping to check Rx/Tx queues validity were added in DPDK 23.07-rc1. As the release is not closed, it is still time to rename.
The nam
ethdev: rename functions checking queue validity
Two functions helping to check Rx/Tx queues validity were added in DPDK 23.07-rc1. As the release is not closed, it is still time to rename.
The name proposed originally rte_eth_dev_is_valid_*xq is consistent with this function: rte_eth_dev_is_valid_port() However, the suffixes "rxq" and "txq" are uncommon in ethdev functions.
Also for shortness, many functions are dropping "_dev_" as these functions which manage the queues: rte_eth_*x_queue_info_get() rte_eth_*x_queue_setup() rte_eth_*x_hairpin_queue_setup For completeness, there are some old functions having "_dev_": rte_eth_dev_*x_queue_start() rte_eth_dev_*x_queue_stop() Anyway in all above examples, the subject is after the prefix, and the verb is at the end.
That's why I propose renaming into: rte_eth_*x_queue_is_valid()
Fixes: 7ea7e0cd3a08 ("ethdev: add functions to check queue validity")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
db42a842 |
| 05-Jun-2023 |
Dengdui Huang <huangdengdui@huawei.com> |
app/testpmd: fix crash with invalid queue
When input queue ID is invalid, it will lead to Segmentation fault, like:
dpdk-testpmd -a 0000:01:00.0 -- -i testpmd> show port 0 txq/rxq 99 desc 0 status
app/testpmd: fix crash with invalid queue
When input queue ID is invalid, it will lead to Segmentation fault, like:
dpdk-testpmd -a 0000:01:00.0 -- -i testpmd> show port 0 txq/rxq 99 desc 0 status Segmentation fault
dpdk-testpmd -a 0000:01:00.0 -- -i testpmd> show port 0 rxq 99 desc used count Segmentation fault
This patch fixes it.
Fixes: fae9aa717d6c ("app/testpmd: support checking descriptor status") Fixes: 3f9acb5c83bb ("ethdev: avoid non-dataplane checks in Rx queue count") Cc: stable@dpdk.org
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
d54c7f15 |
| 01-Jun-2023 |
Julien Aube <julien_dpdk@jaube.fr> |
app/testpmd: support 2.5Gbps and 5Gbps speed
This extends the support for 2.5G and 5G NIC commonly found today
Signed-off-by: Julien Aube <julien_dpdk@jaube.fr> Reviewed-by: Ferruh Yigit <ferruh.yi
app/testpmd: support 2.5Gbps and 5Gbps speed
This extends the support for 2.5G and 5G NIC commonly found today
Signed-off-by: Julien Aube <julien_dpdk@jaube.fr> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
e30aa525 |
| 08-Apr-2023 |
Jie Hai <haijie1@huawei.com> |
ethdev: introduce low latency RS FEC
This patch introduces LLRS (low latency Reed Solomon FEC). LLRS supports for 25 Gbps, 50 Gbps, 100 Gbps, 200 Gbps and 400 Gbps Ethernet networks.
Signed-off-by:
ethdev: introduce low latency RS FEC
This patch introduces LLRS (low latency Reed Solomon FEC). LLRS supports for 25 Gbps, 50 Gbps, 100 Gbps, 200 Gbps and 400 Gbps Ethernet networks.
Signed-off-by: Jie Hai <haijie1@huawei.com> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
f1d0993e |
| 17-Mar-2023 |
Stephen Hemminger <stephen@networkplumber.org> |
app/testpmd: fix interactive mode on Windows
The cmdline_poll() function is broken and was not fully tested, go back to using cmdline_interact().
Instead, use sigaction() to cancel read character o
app/testpmd: fix interactive mode on Windows
The cmdline_poll() function is broken and was not fully tested, go back to using cmdline_interact().
Instead, use sigaction() to cancel read character on Unix OS's and a new helper to cancel I/O on Windows.
Bugzilla ID: 1180 Fixes: 0fd1386c30c3 ("app/testpmd: cleanup cleanly from signal") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
0fd1386c |
| 03-Feb-2023 |
Stephen Hemminger <stephen@networkplumber.org> |
app/testpmd: cleanup cleanly from signal
Do a clean shutdown of testpmd when a signal is received; instead of having testpmd kill itself. This fixes the problem where a signal could be received in
app/testpmd: cleanup cleanly from signal
Do a clean shutdown of testpmd when a signal is received; instead of having testpmd kill itself. This fixes the problem where a signal could be received in the middle of a PMD and then the signal handler would call PMD's close routine leading to locking problems.
The cmdline structure no longer needs to be global it can just be local to the prompt() function.
An added benefit is it gets rid of some Windows specific code.
Fixes: d9a191a00e81 ("app/testpmd: fix quitting in container") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
a131d9ec |
| 01-Mar-2023 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: add link speed 400G
There are some devices supporting 400G speed, and it is well standardized in IEEE.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Morten Brørup <mb@sm
ethdev: add link speed 400G
There are some devices supporting 400G speed, and it is well standardized in IEEE.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
06ea5479 |
| 17-Feb-2023 |
Jiawei Wang <jiaweiw@nvidia.com> |
ethdev: add Tx queue mapping of 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 fo
ethdev: add Tx queue mapping of 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 <jiaweiw@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
bc84182d |
| 09-Feb-2023 |
Robin Jarry <rjarry@redhat.com> |
app/testpmd: add dump command for lcores
Add a simple command that calls rte_lcore_dump().
Signed-off-by: Robin Jarry <rjarry@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by
app/testpmd: add dump command for lcores
Add a simple command that calls rte_lcore_dump().
Signed-off-by: Robin Jarry <rjarry@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru> Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
show more ...
|
#
40aec524 |
| 02-Dec-2022 |
Sunil Kumar Kori <skori@marvell.com> |
app/testpmd: add congestion management commands
Support congestion management CLIs.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Aman Singh <aman.deep.singh@intel.com> Acked-by: Fe
app/testpmd: add congestion management commands
Support congestion management CLIs.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Aman Singh <aman.deep.singh@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
54a0f4d7 |
| 10-Nov-2022 |
Yuan Wang <yuanx.wang@intel.com> |
app/testpmd: fix protocol header list for Rx buffer split
The "show config rxhdrs" cmd displays the configured protocol headers that are used for protocol-based buffer split. However, it shows inner
app/testpmd: fix protocol header list for Rx buffer split
The "show config rxhdrs" cmd displays the configured protocol headers that are used for protocol-based buffer split. However, it shows inner-ipv6 as inner-ipv4.
This patch fixes that by redefining rx_pkt_hdr_protos to hold the full ptypes, and the show and set commands therefore remain symmetrical.
Fixes: 52e2e7edcf48 ("app/testpmd: add protocol-based buffer split")
Signed-off-by: Yuan Wang <yuanx.wang@intel.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
236bc417 |
| 26-Oct-2022 |
Gregory Etelson <getelson@nvidia.com> |
app/testpmd: fix MAC header in checksum forward engine
MLX5 SR-IOV Tx engine will not transmit Ethernet frame if destination MAC address matched local port address. The frame ether looped-back to Rx
app/testpmd: fix MAC header in checksum forward engine
MLX5 SR-IOV Tx engine will not transmit Ethernet frame if destination MAC address matched local port address. The frame ether looped-back to Rx or dropped, depending on the port configuration.
Application running over MLX5 SR-IOV port cannot transmit packet polled from Rx queue as is. The packet Ethernet destination address must be changed.
Add new run-time configuration parameter to the `csum` forwarding engine to control MAC addresses configuration:
testpmd> csum mac-swap on|off <port_id>
`mac-swap on` replace MAC addresses. `mac-swap off` keep Ethernet header unchanged.
Fixes: 9b4ea7ae77fa ("app/testpmd: revert MAC update in checksum forwarding") Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com> Acked-by: Huisong Li <lihuisong@huawei.com>
show more ...
|
#
020dbb4c |
| 17-Oct-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
app/testpmd: remove jumbo offload
The jumbo offload was removed from patch [1], but testpmd still exist jumbo offload related code, this patch removes it, and also updates the rst file.
[1] ethdev:
app/testpmd: remove jumbo offload
The jumbo offload was removed from patch [1], but testpmd still exist jumbo offload related code, this patch removes it, and also updates the rst file.
[1] ethdev: remove jumbo offload flag
Fixes: b563c1421282 ("ethdev: remove jumbo offload flag") Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
23f2dfd3 |
| 12-Oct-2022 |
Yuan Wang <yuanx.wang@intel.com> |
app/testpmd: remove unused parameter in Rx header split
Protocol header sequence checking is supported in the ethdev library, the application does not need to do it again.
Coverity issue: 381396 Fi
app/testpmd: remove unused parameter in Rx header split
Protocol header sequence checking is supported in the ethdev library, the application does not need to do it again.
Coverity issue: 381396 Fixes: 52e2e7edcf48 ("app/testpmd: add protocol-based buffer split")
Signed-off-by: Yuan Wang <yuanx.wang@intel.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
52e2e7ed |
| 09-Oct-2022 |
Yuan Wang <yuanx.wang@intel.com> |
app/testpmd: add protocol-based buffer split
Add command line parameter: --rxhdrs=eth[,ipv4]
Set the protocol_hdr of segments to scatter packets on receiving if split feature is engaged. And the qu
app/testpmd: add protocol-based buffer split
Add command line parameter: --rxhdrs=eth[,ipv4]
Set the protocol_hdr of segments to scatter packets on receiving if split feature is engaged. And the queues with BUFFER_SPLIT flag.
Add interactive mode command: testpmd>set rxhdrs eth,ipv4,ipv4-udp (protocol sequence should be valid)
The protocol split feature is off by default. To enable protocol split, you need: 1. Start testpmd with multiple mempools. E.g. --mbuf-size=2048,2048 2. Configure Rx queue with rx_offload buffer split on. 3. Set the protocol type of buffer split. E.g. set rxhdrs eth,eth-ipv4 (default protocols of testpmd : eth|ipv4|ipv6|ipv4-tcp|ipv6-tcp| ipv4-udp|ipv6-udp|ipv4-sctp|ipv6-sctp|grenat|inner-eth| inner-ipv4|inner-ipv6|inner-ipv4-tcp|inner-ipv6-tcp| inner-ipv4-udp|inner-ipv6-udp|inner-ipv4-sctp|inner-ipv6-sctp) Above protocols can be configured in testpmd. But the configuration can only be applied when it is supported by specific pmd.
Signed-off-by: Yuan Wang <yuanx.wang@intel.com> Signed-off-by: Xuan Ding <xuan.ding@intel.com> Signed-off-by: Wenxuan Wu <wenxuanx.wu@intel.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
3a26e41e |
| 28-Sep-2022 |
Satha Rao <skoteshwar@marvell.com> |
ethdev: increase queue rate parameter from 16b to 32b
The rate parameter modified to uint32_t, so that it can work for more than 64 Gbps.
Signed-off-by: Satha Rao <skoteshwar@marvell.com> Reviewed-
ethdev: increase queue rate parameter from 16b to 32b
The rate parameter modified to uint32_t, so that it can work for more than 64 Gbps.
Signed-off-by: Satha Rao <skoteshwar@marvell.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
8d54b1ec |
| 12-Aug-2022 |
Xuan Ding <xuan.ding@intel.com> |
ethdev: remove Rx header split port offload
As announced in the deprecation note, remove the Rx offload flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size' field from the structure 'rte_eth_
ethdev: remove Rx header split port offload
As announced in the deprecation note, remove the Rx offload flag 'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' and 'split_hdr_size' field from the structure 'rte_eth_rxmode'. Meanwhile, the place where the examples and apps initialize the 'split_hdr_size' field, and where the drivers check if the 'split_hdr_size' value is 0 are also removed.
User can still use `RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT` for per-queue packet split offload, which is configured by 'rte_eth_rxseg_split'.
Signed-off-by: Xuan Ding <xuan.ding@intel.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
5007ac13 |
| 03-Aug-2022 |
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> |
ethdev: remove deprecated Flow Director configuration
Remove deprecated fdir_conf from device configuration. Assume that mode is equal to RTE_FDIR_MODE_NONE.
Add internal Flow Director configuratio
ethdev: remove deprecated Flow Director configuration
Remove deprecated fdir_conf from device configuration. Assume that mode is equal to RTE_FDIR_MODE_NONE.
Add internal Flow Director configuration copy in ixgbe and txgbe device private data since flow API supports requires it. Initialize mode to the first flow rule mode on the rule validation or creation.
Since Flow Director configuration data types are still used by some drivers internally, move it from public API to ethdev driver internal API.
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Dongdong Liu <liudongdong3@huawei.com>
show more ...
|
#
0100a038 |
| 21-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
net/ixgbe: move testpmd commands
Move related specific testpmd commands into this driver directory. The bypass init is left in testpmd at this point and can be moved later. While at it, fix checkpat
net/ixgbe: move testpmd commands
Move related specific testpmd commands into this driver directory. The bypass init is left in testpmd at this point and can be moved later. While at it, fix checkpatch warnings.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
show more ...
|
#
1bcb7ba9 |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
app/testpmd: drop PCI register commands
Those commands date back to the early stages of DPDK when only PCI devices were supported. At the time, developers may have used those commands to help in deb
app/testpmd: drop PCI register commands
Those commands date back to the early stages of DPDK when only PCI devices were supported. At the time, developers may have used those commands to help in debugging their buggy^Wwork in progress drivers.
Removing them, we can drop the dependency on the PCI bus and library and make testpmd bus agnostic.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
72b452c5 |
| 27-Aug-2022 |
Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> |
eal: remove unneeded includes from a public header
Do not include <ctype.h>, <errno.h>, and <stdlib.h> from <rte_common.h>, because they are not used by this file. Include the needed headers directl
eal: remove unneeded includes from a public header
Do not include <ctype.h>, <errno.h>, and <stdlib.h> from <rte_common.h>, because they are not used by this file. Include the needed headers directly from the files that need them.
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
9ad341b5 |
| 29-Jun-2022 |
Huisong Li <lihuisong@huawei.com> |
app/testpmd: refactor config all RSS command
The "port config <port_id> rss-hash-key" and "show port <port_id> rss-hash key" commands both use the 'rss_type_table[]' to get 'rss_types' or the RSS ty
app/testpmd: refactor config all RSS command
The "port config <port_id> rss-hash-key" and "show port <port_id> rss-hash key" commands both use the 'rss_type_table[]' to get 'rss_types' or the RSS type name. So this patch uses the 'rss_type_table[]' to get the RSS types. In this way, this command naturally supports more individual types.
Suggested-by: Ferruh Yigit <ferruh.yigit@xilinx.com> Signed-off-by: Huisong Li <lihuisong@huawei.com> Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
show more ...
|