|
Revision tags: v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2 |
|
| #
6285aa6a |
| 03-Mar-2024 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: add Linux ethtool link mode conversion
Speed capabilities of a NIC may be discovered through its Linux kernel driver. It is especially useful for bifurcated drivers, so they don't have to du
ethdev: add Linux ethtool link mode conversion
Speed capabilities of a NIC may be discovered through its Linux kernel driver. It is especially useful for bifurcated drivers, so they don't have to duplicate the same logic in the DPDK driver.
Parsing ethtool speed capabilities is made easy thanks to the functions added in ethdev for internal usage only. Of course these functions work only on Linux, so they are not compiled in other environments.
In order to ease parsing, the ethtool macro names are parsed externally in a shell command which generates a C array included in this patch. It also avoids to depend on a kernel version. This C array should be updated in future to get latest ethtool bits. Note it is easier to update this array than adding new cases in a parsing code.
The types in the functions are following the ethtool type: uint32_t for bitmaps, and int8_t for the number of 32-bitmaps.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
|
Revision tags: v24.03-rc1 |
|
| #
537bfdda |
| 06-Feb-2024 |
Dariusz Sosnowski <dsosnowski@nvidia.com> |
ethdev: rework fast path async flow API
This patch reworks the async flow API functions called in data path, to reduce the overhead during flow operations at the library level. Main source of the ov
ethdev: rework fast path async flow API
This patch reworks the async flow API functions called in data path, to reduce the overhead during flow operations at the library level. Main source of the overhead was indirection and checks done while ethdev library was fetching rte_flow_ops from a given driver.
This patch introduces rte_flow_fp_ops struct which holds callbacks to driver's implementation of fast path async flow API functions. Each driver implementing these functions must populate flow_fp_ops field inside rte_eth_dev structure with a reference to its own implementation. By default, ethdev library provides dummy callbacks with implementations returning ENOSYS. Such design provides a few assumptions:
- rte_flow_fp_ops struct for given port is always available. - Each callback is either: - Default provided by library. - Set up by driver.
As a result, no checks for availability of the implementation are needed at library level in data path. Any library-level validation checks in async flow API are compiled if and only if RTE_FLOW_DEBUG macro is defined.
This design was based on changes in ethdev library introduced in [1].
These changes apply only to the following API functions:
- rte_flow_async_create() - rte_flow_async_create_by_index() - rte_flow_async_actions_update() - rte_flow_async_destroy() - rte_flow_push() - rte_flow_pull() - rte_flow_async_action_handle_create() - rte_flow_async_action_handle_destroy() - rte_flow_async_action_handle_update() - rte_flow_async_action_handle_query() - rte_flow_async_action_handle_query_update() - rte_flow_async_action_list_handle_create() - rte_flow_async_action_list_handle_destroy() - rte_flow_async_action_list_handle_query_update()
This patch also adjusts the mlx5 PMD to the introduced flow API changes.
[1] commit c87d435a4d79 ("ethdev: copy fast-path API into separate structure")
Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
|
Revision tags: v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1, v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1 |
|
| #
4fe767ac |
| 07-Jun-2023 |
Jie Hai <haijie1@huawei.com> |
ethdev: extract telemetry code to a file
This patch extracts telemetry related codes in rte_ethdev.c to a new file rte_ethdev_telemetry.c.
Signed-off-by: Jie Hai <haijie1@huawei.com> Acked-by: Ferr
ethdev: extract telemetry code to a file
This patch extracts telemetry related codes in rte_ethdev.c to a new file rte_ethdev_telemetry.c.
Signed-off-by: Jie Hai <haijie1@huawei.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
70cc4e1f |
| 04-Apr-2023 |
David Marchand <david.marchand@redhat.com> |
enable lock check
Now that a lot of components can be compiled with the lock checks, invert the logic and opt out for components not ready yet: - drivers/bus/dpaa, - drivers/common/cnxk, - drivers/c
enable lock check
Now that a lot of components can be compiled with the lock checks, invert the logic and opt out for components not ready yet: - drivers/bus/dpaa, - drivers/common/cnxk, - drivers/common/mlx5, - drivers/event/cnxk, - drivers/net/bnx2x, - drivers/net/bnxt, - drivers/net/cnxk, - drivers/net/enic, - drivers/net/hns3, - drivers/net/mlx5, - lib/ipsec, - lib/timer,
The FreeBSD pthread API has been annotated but Linux glibc does not have those annotations. Disable lock checks for FreeBSD where pthread_mutex_* are used: - drivers/net/failsafe, - drivers/net/hinic, - lib/eal, - lib/ethdev,
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Sachin Saxena <sachin.saxena@oss.nxp.com>
show more ...
|
|
Revision tags: v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1 |
|
| #
5c414971 |
| 15-Feb-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: drop export of internal tracepoints
The internal tracepoints are removed from the version.map file. Also, removed ethdev_trace.h from meson.build.
Signed-off-by: Ankur Dwivedi <adwivedi@mar
ethdev: drop export of internal tracepoints
The internal tracepoints are removed from the version.map file. Also, removed ethdev_trace.h from meson.build.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
| #
6679cf21 |
| 08-Feb-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: add trace points
Adds trace points for ethdev functions.
The rte_ethdev_trace.h is removed. The file ethdev_trace.h is added as an internal header. ethdev_trace.h contains internal slow pat
ethdev: add trace points
Adds trace points for ethdev functions.
The rte_ethdev_trace.h is removed. The file ethdev_trace.h is added as an internal header. ethdev_trace.h contains internal slow path and fast path tracepoints. The public fast path tracepoints are present in rte_ethdev_trace_fp.h header.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
|
Revision tags: v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1 |
|
| #
6b81dddb |
| 04-Oct-2022 |
Jerin Jacob <jerinj@marvell.com> |
ethdev: support congestion management
NIC HW controllers often come with congestion management support on various HW objects such as Rx queue depth or mempool queue depth.
Also, it can support vari
ethdev: support congestion management
NIC HW controllers often come with congestion management support on various HW objects such as Rx queue depth or mempool queue depth.
Also, it can support various modes of operation such as RED (Random early discard), WRED etc on those HW objects.
Add a framework to express such modes(enum rte_cman_mode) and introduce (enum rte_eth_cman_obj) to enumerate the different objects where the modes can operate on.
Add RTE_CMAN_RED mode of operation and RTE_ETH_CMAN_OBJ_RX_QUEUE, RTE_ETH_CMAN_OBJ_RX_QUEUE_MEMPOOL objects.
Introduce reserved fields in configuration structure backed by rte_eth_cman_config_init() to add new configuration parameters without ABI breakage.
Add rte_eth_cman_info_get() API to get the information such as supported modes and objects.
Add rte_eth_cman_config_init(), rte_eth_cman_config_set() APIs to configure congestion management on those object with associated mode.
Finally, add rte_eth_cman_config_get() API to retrieve the applied configuration.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Sunil Kumar Kori <skori@marvell.com>
show more ...
|
|
Revision tags: v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1 |
|
| #
c42754fd |
| 26-May-2022 |
Robin Zhang <robinx.zhang@intel.com> |
ethdev: support SFF-8636 module telemetry
Add support for module EEPROM information format defined in SFF-8636 Rev 2.7.
Signed-off-by: Robin Zhang <robinx.zhang@intel.com> Signed-off-by: Kevin Liu
ethdev: support SFF-8636 module telemetry
Add support for module EEPROM information format defined in SFF-8636 Rev 2.7.
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 ...
|
| #
0caf7f37 |
| 26-May-2022 |
Robin Zhang <robinx.zhang@intel.com> |
ethdev: support SFF-8472 module telemetry
Add support for module EEPROM information format defined in SFF-8472 Rev 12.0
Signed-off-by: Robin Zhang <robinx.zhang@intel.com> Signed-off-by: Kevin Liu
ethdev: support SFF-8472 module telemetry
Add support for module EEPROM information format defined in SFF-8472 Rev 12.0
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 ...
|
| #
084b4880 |
| 26-May-2022 |
Robin Zhang <robinx.zhang@intel.com> |
ethdev: support SFF-8079 module telemetry
Add support for module EEPROM information format defined in SFF-8079 Rev 1.7.
Signed-off-by: Robin Zhang <robinx.zhang@intel.com> Signed-off-by: Kevin Liu
ethdev: support SFF-8079 module telemetry
Add support for module EEPROM information format defined in SFF-8079 Rev 1.7.
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 ...
|
| #
266c2beb |
| 26-May-2022 |
Robin Zhang <robinx.zhang@intel.com> |
ethdev: add common code for different SFF specs
Add support for SFF-8024 Rev 4.0 of pluggable I/O configuration and some common utilities for SFF-8436/8636 and SFF-8472/8079.
Signed-off-by: Robin Z
ethdev: add common code for different SFF specs
Add support for SFF-8024 Rev 4.0 of pluggable I/O configuration and some common utilities for SFF-8436/8636 and SFF-8472/8079.
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 ...
|
| #
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 ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1 |
|
| #
a41f593f |
| 11-Feb-2022 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: introduce generic dummy packet burst function
Multiple PMDs have dummy/noop Rx/Tx packet burst functions.
These dummy functions are very simple, introduce a common function in the ethdev an
ethdev: introduce generic dummy packet burst function
Multiple PMDs have dummy/noop Rx/Tx packet burst functions.
These dummy functions are very simple, introduce a common function in the ethdev and update drivers to use it instead of each driver having its own functions.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1, v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
99a2dd95 |
| 20-Apr-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also m
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal'
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|