| #
7dcd73e3 |
| 04-Oct-2022 |
Olivier Matz <olivier.matz@6wind.com> |
drivers/bus: set device NUMA node to unknown by default
The dev->device.numa_node field is set by each bus driver for every device it manages to indicate on which NUMA node this device lies.
When t
drivers/bus: set device NUMA node to unknown by default
The dev->device.numa_node field is set by each bus driver for every device it manages to indicate on which NUMA node this device lies.
When this information is unknown, the assigned value is not consistent across the bus drivers.
Set the default value to SOCKET_ID_ANY (-1) by all bus drivers when the NUMA information is unavailable. This change impacts rte_eth_dev_socket_id() in the same manner.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
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 ...
|
| #
8af559f9 |
| 13-Sep-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
ethdev: support telemetry private dump
This patch supports telemetry private dump a ethdev port.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems
ethdev: support telemetry private dump
This patch supports telemetry private dump a ethdev port.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
| #
a04322f6 |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
bus: hide bus object
Make rte_bus opaque for non internal users. This will make extending this object possible without breaking the ABI.
Introduce a new driver header and move rte_bus definition an
bus: hide bus object
Make rte_bus opaque for non internal users. This will make extending this object possible without breaking the ABI.
Introduce a new driver header and move rte_bus definition and helpers. Update drivers and library to use the internal header.
Some applications may have been dereferencing rte_bus objects, mark this object's accessors as stable.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
| #
770ebc06 |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
bus: move IOVA definition from header
iova enum definition does not need to be defined as part of the bus API. Move it to rte_eal.h. With this step, rte_eal.h does not depend on rte_bus.h and rte_de
bus: move IOVA definition from header
iova enum definition does not need to be defined as part of the bus API. Move it to rte_eal.h. With this step, rte_eal.h does not depend on rte_bus.h and rte_dev.h. Fix existing code that was relying on these implicit inclusions.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
| #
8f1d23ec |
| 23-Aug-2022 |
David Marchand <david.marchand@redhat.com> |
eal: deprecate RTE_FUNC_PTR_* macros
Those macros have no real value and are easily replaced with a simple if() block.
Existing users have been converted using a new cocci script. Deprecate them.
eal: deprecate RTE_FUNC_PTR_* macros
Those macros have no real value and are easily replaced with a simple if() block.
Existing users have been converted using a new cocci script. Deprecate them.
Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
|
Revision tags: v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2 |
|
| #
83be526a |
| 20-Jun-2022 |
Sean Morrissey <sean.morrissey@intel.com> |
ethdev: remove unneeded header includes
These header includes have been flagged by the iwyu_tool and removed.
Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
|
|
Revision tags: v22.07-rc1 |
|
| #
bc70e559 |
| 08-Jun-2022 |
Spike Du <spiked@nvidia.com> |
ethdev: introduce available Rx descriptors threshold
A new event RTE_ETH_EVENT_RX_AVAIL_THRESH should be generated by HW when number of available descriptors in Rx queue goes below the threshold.
T
ethdev: introduce available Rx descriptors threshold
A new event RTE_ETH_EVENT_RX_AVAIL_THRESH should be generated by HW when number of available descriptors in Rx queue goes below the threshold.
The threshold is defined as a percentage of an Rx queue size with valid values from 0 to 99 (inclusive). Zero (default) value disables it.
There is no capability reporting for the feature. Application should simply try to set required threshold value and handle result.
Add testpmd commands to control the threshold: set port <port_id> rxq <rxq_id> avail_thresh <avail_thresh_num>
Signed-off-by: Spike Du <spiked@nvidia.com> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
| #
ea6101a8 |
| 01-Jun-2022 |
Min Hu (Connor) <humin29@huawei.com> |
ethdev: fix port close in secondary process
Secondary process needs to close device to release process private resources. But secondary process should not be obliged to wait for device stop before
ethdev: fix port close in secondary process
Secondary process needs to close device to release process private resources. But secondary process should not be obliged to wait for device stop before closing ethdev.
Fixes: febc855b358e ("ethdev: forbid closing started device") Cc: stable@dpdk.org
Signed-off-by: Min Hu (Connor) <humin29@huawei.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
| #
7546a2cd |
| 26-May-2022 |
Robin Zhang <robinx.zhang@intel.com> |
ethdev: add telemetry command for module EEPROM
Add a new telemetry command /ethdev/module_eeprom to dump the module EEPROM of each port. The format of module EEPROM information follows the SFF(Smal
ethdev: add telemetry command for module EEPROM
Add a new telemetry command /ethdev/module_eeprom to dump the module EEPROM of each port. The format of module EEPROM information follows the SFF(Small Form Factor) Committee specifications.
Signed-off-by: Robin Zhang <robinx.zhang@intel.com> Signed-off-by: Kevin Liu <kevinx.liu@intel.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
| #
74b74269 |
| 03-May-2022 |
Min Hu (Connor) <humin29@huawei.com> |
ethdev: fix port state when stop
Currently, 'dev_started' is always set to be 0 when dev stop, whether it succeeded or failed. This is unreasonable and this patch fixed it.
Fixes: 62024eb82756 ("et
ethdev: fix port state when stop
Currently, 'dev_started' is always set to be 0 when dev stop, whether it succeeded or failed. This is unreasonable and this patch fixed it.
Fixes: 62024eb82756 ("ethdev: change stop operation callback to return int") Cc: stable@dpdk.org
Signed-off-by: Min Hu (Connor) <humin29@huawei.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
show more ...
|
| #
590e988f |
| 13-May-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
ethdev: fix possible null pointer access
The rte_tel_data_alloc() may return NULL, so the caller should add judgement for it.
Fixes: 083b0b310b19 ("ethdev: add common stats for telemetry") Cc: stab
ethdev: fix possible null pointer access
The rte_tel_data_alloc() may return NULL, so the caller should add judgement for it.
Fixes: 083b0b310b19 ("ethdev: add common stats for telemetry") Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
| #
2d00e2b4 |
| 13-May-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
ethdev: fix memory leak in xstats telemetry
The 'eth_xstats' should be freed after telemetry dictionary setup.
Fixes: c190daedb9b1 ("ethdev: add telemetry callbacks") Cc: stable@dpdk.org
Signed-of
ethdev: fix memory leak in xstats telemetry
The 'eth_xstats' should be freed after telemetry dictionary setup.
Fixes: c190daedb9b1 ("ethdev: add telemetry callbacks") Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
| #
b8fcb65c |
| 13-May-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
ethdev: simplify xstats get implementation
Use eth_dev_get_xstats_basic_count() to retrieve generic statistics count.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup
ethdev: simplify xstats get implementation
Use eth_dev_get_xstats_basic_count() to retrieve generic statistics count.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
| #
485df884 |
| 13-May-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
ethdev: clarify null location case in xstats get
When xstats location is null in rte_eth_xstats_get() the return value is not clearly specified. Some PMDs (eg. hns3/ipn3ke/mvpp2/axgbe) return zero
ethdev: clarify null location case in xstats get
When xstats location is null in rte_eth_xstats_get() the return value is not clearly specified. Some PMDs (eg. hns3/ipn3ke/mvpp2/axgbe) return zero while others return the required number of elements.
In this patch, special parameter combinations are restricted: 1. highlight that xstats location may be null if and only if n is 0. 2. amend n parameter description to specify that if n is lower than the required number of elements, the function returns the required number of elements. 3. specify that if n is zero, the xstats must be NULL, the function returns the required number of elements (a duplicate which should help to not very attentive readers).
Add sanity check for null xstats and non-zero n case on API level to make it unnecessary to care about it in drivers.
Fixes: ce757f5c9a4d ("ethdev: new method to retrieve extended statistics") Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
| #
93e1ea6d |
| 06-Apr-2022 |
Huisong Li <lihuisong@huawei.com> |
ethdev: fix RSS update when RSS is disabled
The RTE_ETH_MQ_RX_RSS_FLAG flag is a switch to enable RSS. If the flag is not set in dev_configure, RSS will be not configured and enabled. However, RSS h
ethdev: fix RSS update when RSS is disabled
The RTE_ETH_MQ_RX_RSS_FLAG flag is a switch to enable RSS. If the flag is not set in dev_configure, RSS will be not configured and enabled. However, RSS hash and reta can still be configured by ethdev ops to enable RSS if the flag isn't set. The behavior is inconsistent.
Fixes: 99a2dd955fba ("lib: remove librte_ prefix from directory names") Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com> Signed-off-by: Min Hu (Connor) <humin29@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
show more ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
ffe77e91 |
| 16-Feb-2022 |
David Marchand <david.marchand@redhat.com> |
ethdev: fix MAC address in telemetry device info
The right size for a human readable MAC is RTE_ETHER_ADDR_FMT_SIZE. While at it, the net library provides a helper for MAC address formatting. Prefer
ethdev: fix MAC address in telemetry device info
The right size for a human readable MAC is RTE_ETHER_ADDR_FMT_SIZE. While at it, the net library provides a helper for MAC address formatting. Prefer it.
Fixes: 58b43c1ddfd1 ("ethdev: add telemetry endpoint for device info") Cc: stable@dpdk.org
Reported-by: Christophe Fontaine <cfontain@redhat.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
|
Revision tags: v22.03-rc1 |
|
| #
4b4f810e |
| 11-Feb-2022 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: move driver interface functions to its own file
ethdev has two interfaces, one interface between applications and library, these APIs are declared in the rte_ethdev.h public header. Other in
ethdev: move driver interface functions to its own file
ethdev has two interfaces, one interface between applications and library, these APIs are declared in the rte_ethdev.h public header. Other interface is between drivers and library, these functions are declared in ethdev_driver.h and marked as internal.
But all functions are defined in rte_ethdev.c file. This patch moves functions for drivers to its own file, ethdev_driver.c for cleanup, no functional change in functions.
Some public APIs and driver helpers call common internal functions, which were mostly static since both were in same file. To be able to move driver helpers, common functions are moved to ethdev_private.c. (ethdev_private.c is used for functions that are internal to the library and shared by multiple .c files in the ethdev library.)
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
| #
edcf22c6 |
| 11-Feb-2022 |
Min Hu (Connor) <humin29@huawei.com> |
ethdev: introduce dump API
Added the ethdev dump API which provides querying private info from device. There exists many private properties in different PMD drivers, such as adapter state, Rx/Tx fun
ethdev: introduce dump API
Added the ethdev dump API which provides querying private info from device. There exists many private properties in different PMD drivers, such as adapter state, Rx/Tx func algorithm in hns3 PMD. The information of these properties is important for debug. As the information is private, the new API is introduced.
Signed-off-by: Min Hu (Connor) <humin29@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Ray Kinsella <mdr@ashroe.eu> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
| #
8b8dd445 |
| 09-Feb-2022 |
Yunjian Wang <wangyunjian@huawei.com> |
ethdev: remove unnecessary null check
This NULL check is unnecessary, 'eth_dev' is never NULL.
Fixes: 58b43c1ddfd1 ("ethdev: add telemetry endpoint for device info") Cc: stable@dpdk.org
Signed-off
ethdev: remove unnecessary null check
This NULL check is unnecessary, 'eth_dev' is never NULL.
Fixes: 58b43c1ddfd1 ("ethdev: add telemetry endpoint for device info") Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
| #
3c059b2c |
| 08-Feb-2022 |
Akhil Goyal <gakhil@marvell.com> |
ethdev: add mbuf dynfield for incomplete IP reassembly
Hardware IP reassembly may be incomplete for multiple reasons like reassembly timeout reached, duplicate fragments, etc. To save application cy
ethdev: add mbuf dynfield for incomplete IP reassembly
Hardware IP reassembly may be incomplete for multiple reasons like reassembly timeout reached, duplicate fragments, etc. To save application cycles to process these packets again, a new mbuf dynflag is added to show that the mbuf received is not reassembled properly.
Now if this dynflag is set, application can retrieve corresponding chain of mbufs using mbuf dynfield set by the PMD. Now, it will be up to application to either drop those fragments or wait for more time.
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
| #
a75ab6e5 |
| 08-Feb-2022 |
Akhil Goyal <gakhil@marvell.com> |
ethdev: introduce IP reassembly offload
IP Reassembly is a costly operation if it is done in software. The operation becomes even more costlier if IP fragments are encrypted. However, if it is offlo
ethdev: introduce IP reassembly offload
IP Reassembly is a costly operation if it is done in software. The operation becomes even more costlier if IP fragments are encrypted. However, if it is offloaded to HW, it can considerably save application cycles.
Hence, a new offload feature is exposed in eth_dev ops for devices which can attempt IP reassembly of packets in hardware. - rte_eth_ip_reassembly_capability_get() - to get the maximum values of reassembly configuration which can be set. - rte_eth_ip_reassembly_conf_set() - to set IP reassembly configuration and to enable the feature in the PMD (to be called before rte_eth_dev_start()). - rte_eth_ip_reassembly_conf_get() - to get the current configuration set in PMD.
Now when the offload is enabled using rte_eth_ip_reassembly_conf_set(), the resulting reassembled IP packet would be a typical segmented mbuf in case of success.
And if reassembly of IP fragments is failed or is incomplete (if fragments do not come before the reass_timeout, overlap, etc), the mbuf dynamic flags can be updated by the PMD. This is updated in a subsequent patch.
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
| #
06c047b6 |
| 09-Feb-2022 |
Stephen Hemminger <stephen@networkplumber.org> |
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free functions found by nullfree.cocci
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| #
0de345e9 |
| 08-Feb-2022 |
Jerin Jacob <jerinj@marvell.com> |
ethdev: support queue-based priority flow control
Based on device support and use-case need, there are two different ways to enable PFC. The first case is the port level PFC configuration, in this c
ethdev: support queue-based priority flow control
Based on device support and use-case need, there are two different ways to enable PFC. The first case is the port level PFC configuration, in this case, rte_eth_dev_priority_flow_ctrl_set() API shall be used to configure the PFC, and PFC frames will be generated using based on VLAN TC value.
The second case is the queue level PFC configuration, in this case, Any packet field content can be used to steer the packet to the specific queue using rte_flow or RSS and then use rte_eth_dev_priority_flow_ctrl_queue_configure() to configure the TC mapping on each queue. Based on congestion selected on the specific queue, configured TC shall be used to generate PFC frames.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|