|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2, v24.11-rc1 |
|
| #
25a2a0dc |
| 09-Oct-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
ethdev: add traffic manager query
Add function to allow querying a node in the scheduler tree. Returns the parameters as were given to the add function. Adding this function allows apps to just que
ethdev: add traffic manager query
Add function to allow querying a node in the scheduler tree. Returns the parameters as were given to the add function. Adding this function allows apps to just query the hierarchy rather than having to maintain their own copies of it internally.
It is used in testpmd to print out details about previously added TM nodes. Example output, configuring three nodes, and then printing the details:
testpmd> add port tm nonleaf node 0 100 -1 0 1 0 -1 1 0 0 testpmd> add port tm nonleaf node 0 90 100 0 1 1 -1 1 0 0 testpmd> add port tm leaf node 0 0 90 0 1 2 -1 0 0xffffffff 0 0 testpmd> testpmd> show port tm node 0 100 Port 0 TM Node 100 Parent Node ID: <NULL> Level ID: 0 Priority: 0 Weight: 0 Shaper Profile ID: <none> Shared Shaper IDs: <none> Stats Mask: 0 Nonleaf Node Parameters Num Strict Priorities: 1 WFQ Weights Mode: WFQ testpmd> show port tm node 0 90 Port 0 TM Node 90 Parent Node ID: 100 Level ID: 1 Priority: 0 Weight: 1 Shaper Profile ID: <none> Shared Shaper IDs: <none> Stats Mask: 0 Nonleaf Node Parameters Num Strict Priorities: 1 WFQ Weights Mode: WFQ testpmd> show port tm node 0 0 Port 0 TM Node 0 Parent Node ID: 90 Level ID: 2 Priority: 0 Weight: 1 Shaper Profile ID: <none> Shared Shaper IDs: <none> Stats Mask: 0 Leaf Node Parameters CMAN Mode: Tail Drop WRED Profile ID: <none> Shared WRED Context Ids: <none>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| #
be86a682 |
| 11-Oct-2024 |
Mingjin Ye <mingjinx.ye@intel.com> |
ethdev: add frequency adjustment
This patch adds freq adjustment API for PTP high accuracy.
Signed-off-by: Simei Su <simei.su@intel.com> Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com> Reviewed-b
ethdev: add frequency adjustment
This patch adds freq adjustment API for PTP high accuracy.
Signed-off-by: Simei Su <simei.su@intel.com> Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
083db2ed |
| 26-Sep-2024 |
Jie Hai <haijie1@huawei.com> |
ethdev: add report of register names and filter
This patch adds "filter" and "names" fields to "rte_dev_reg_info" structure. Names of registers in data fields can be reported and the registers can b
ethdev: add report of register names and filter
This patch adds "filter" and "names" fields to "rte_dev_reg_info" structure. Names of registers in data fields can be reported and the registers can be filtered by their module names.
The new API rte_eth_dev_get_reg_info_ext() is added to support reporting names and filtering by modules. And the original API rte_eth_dev_get_reg_info() does not use the names and filter fields. A local variable is used in rte_eth_dev_get_reg_info for compatibility. If the drivers does not report the names, set them to "index_XXX", which means the location in the register table.
Signed-off-by: Jie Hai <haijie1@huawei.com> Acked-by: Huisong Li <lihuisong@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
be5ded2f |
| 25-Sep-2024 |
Alexander Kozyrev <akozyrev@nvidia.com> |
ethdev: add trace points to flow insertion by index
Adds trace points for rte_flow rule insertion by index functions: rte_flow_async_create_by_index and rte_flow_async_create_by_index_with_pattern.
ethdev: add trace points to flow insertion by index
Adds trace points for rte_flow rule insertion by index functions: rte_flow_async_create_by_index and rte_flow_async_create_by_index_with_pattern.
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
| #
719834a6 |
| 20-Sep-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
use C linkage where appropriate in headers
Assure that 'extern "C" { /../ }' do not cover files included from a particular header file, and address minor issues resulting from this change of order.
use C linkage where appropriate in headers
Assure that 'extern "C" { /../ }' do not cover files included from a particular header file, and address minor issues resulting from this change of order.
Dealing with C++ should delegate to the individual include file level, rather than being imposed by the user of that file. For example, forcing C linkage prevents __Generic macros being replaced with overloaded static inline functions in C++ translation units.
Eliminate 'extern "C"' from files which do not declare any symbols (e.g., only macros or struct types).
On the other hand, the headers check is too naive in assuming that all headers must contain a 'extern "C"'. Such a check was added in commit 1ee492bdc4ff ("buildtools/chkincs: check missing C++ guards"). Since this current change results in many headers not containing such a token, remove the check for 'extern "C"' until we have a better implementation.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
|
Revision tags: v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1 |
|
| #
99231e48 |
| 15-Feb-2024 |
Gregory Etelson <getelson@nvidia.com> |
ethdev: add template table resize
Template table creation API sets table flows capacity. If application needs more flows then the table was designed for, the following procedures must be completed:
ethdev: add template table resize
Template table creation API sets table flows capacity. If application needs more flows then the table was designed for, the following procedures must be completed: 1. Create a new template table with larger flows capacity. 2. Re-create existing flows in the new table and delete flows from the original table. 3. Destroy original table.
Application cannot always execute that procedure: * Port may not have sufficient resources to allocate a new table while maintaining original table. * Application may not have existing flows "recipes" to re-create flows in a new table.
The patch defines a new API that allows application to resize existing template table:
* Resizable template table must be created with the RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE_TABLE bit set.
* Application resizes existing table with the `rte_flow_template_table_resize()` function call. The table resize procedure updates the table maximal flow number only. Other table attributes are not affected by the table resize. ** The table resize procedure must not interrupt existing table flows operations in hardware. ** The table resize procedure must not alter flow handles held by application.
* After `rte_flow_template_table_resize()` returned, application must update table flow rules by calling `rte_flow_async_update_resized()`. The call reconfigures internal flow resources for the new table configuration. The flow update must not interrupt hardware flow operations.
* After table flows were updated, application must call `rte_flow_template_table_resize_complete()`. The function releases PMD resources related to the original table. Application can start new table resize after `rte_flow_template_table_resize_complete()` returned.
Testpmd commands:
* Create resizable template table flow template_table <port-id> create table_id <tbl-id> resizable \ [transfer|ingress|egres] group <group-id> \ rules_number <initial table capacity> \ pattern_template <pt1> [ pattern_template <pt2> [ ... ]] \ actions_template <at1> [ actions_template <at2> [ ... ]]
* Resize table: flow template_table <tbl-id> resize table_resize_id <tbl-id> \ table_resize_rules_num <new table capacity>
* Queue a flow update: flow queue <port-id> update_resized <tbl-id> rule <flow-id>
* Complete table resize: flow template_table <port-id> resize_complete table <tbl-id>
Signed-off-by: Gregory Etelson <getelson@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
|
Revision tags: v23.11, v23.11-rc4 |
|
| #
f618dd5a |
| 21-Nov-2023 |
Huisong Li <lihuisong@huawei.com> |
ethdev: add trace for max LRO
The 'max_lro_pkt_size' in struct rte_eth_dev_info is also important. So this patch also add it.
Fixes: 6679cf21d608 ("ethdev: add trace points") Cc: stable@dpdk.org
S
ethdev: add trace for max LRO
The 'max_lro_pkt_size' in struct rte_eth_dev_info is also important. So this patch also add it.
Fixes: 6679cf21d608 ("ethdev: add trace points") Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
440386f8 |
| 21-Nov-2023 |
Huisong Li <lihuisong@huawei.com> |
ethdev: add trace for new fields
The 'max_rx_bufsize' and 'rss_algo_capa' in struct rte_eth_dev_info and the 'algorithm' in struct rte_eth_rss_conf are introduced to 23.11. This patch add the trace
ethdev: add trace for new fields
The 'max_rx_bufsize' and 'rss_algo_capa' in struct rte_eth_dev_info and the 'algorithm' in struct rte_eth_rss_conf are introduced to 23.11. This patch add the trace of these new fields in related trace point interface.
Fixes: 75c7849a9dcc ("ethdev: add maximum Rx buffer size") Fixes: 34ff088cc241 ("ethdev: set and query RSS hash algorithm")
Signed-off-by: Huisong Li <lihuisong@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
|
Revision tags: v23.11-rc3, v23.11-rc2, v23.11-rc1 |
|
| #
7fe371eb |
| 27-Sep-2023 |
David Marchand <david.marchand@redhat.com> |
ethdev: avoid panicking in absence of ethdev shared data
This is a preparation step before freeing the ethdev shared data memzone.
Previously, because the primary process never freed the memzone, a
ethdev: avoid panicking in absence of ethdev shared data
This is a preparation step before freeing the ethdev shared data memzone.
Previously, because the primary process never freed the memzone, a secondary process could assume this memzone was present. But in the next commit, this will change.
Make eth_dev_shared_data_prepare() report whether the memzone is available so that upper level API can react accordingly.
Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
|
Revision tags: v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1 |
|
| #
72a3dec7 |
| 28-May-2023 |
Gregory Etelson <getelson@nvidia.com> |
ethdev: add indirect flow list action
Indirect API creates a shared flow action with unique action handle. Flow rules can access the shared flow action and resources related to that action through t
ethdev: add indirect flow list action
Indirect API creates a shared flow action with unique action handle. Flow rules can access the shared flow action and resources related to that action through the indirect action handle. In addition, the API allows to update existing shared flow action configuration. After the update completes, new action configuration is available to all flows that reference that shared action.
Indirect actions list expands the indirect action API: • Indirect action list creates a handle for one or several flow actions, while legacy indirect action handle references single action only. Input flow actions arranged in END terminated list. • Flow rule can provide rule specific configuration parameters to existing shared handle. Updates of flow rule specific configuration will not change the base action configuration. Base action configuration was set during the action creation.
Indirect action list handle defines 2 types of resources: • Mutable handle resource can be changed during handle lifespan. • Immutable handle resource value is set during handle creation and cannot be changed.
There are 2 types of mutable indirect handle contexts: • Action mutable context is always shared between all flows that referenced indirect actions list handle. Action mutable context can be changed by explicit invocation of indirect handle update function. • Flow mutable context is private to a flow. Flow mutable context can be updated by indirect list handle flow rule configuration.
flow 1: / indirect handle H conf C1 / | | | | | | flow 2: | | / indirect handle H conf C2 / | | | | | | | | | | | | ========================================================= ^ | | | | | | V | V | ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ | flow mutable flow mutable | context 1 context 2 | ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ indirect | | | action | | | context | V V | ----------------------------------------------------- | action mutable context | ----------------------------------------------------- v action immutable context =========================================================
Indirect action types - immutable, action / flow mutable, are mutually exclusive and depend on the action definition. For example: • Indirect METER_MARK policy is immutable action member and profile is action mutable action member. • Indirect METER_MARK flow action defines init_color as flow mutable member. • Indirect QUOTA flow action does not define flow mutable members.
If indirect list handle was created from a list of actions A1 / A2 ... An / END indirect list flow action can update Ai flow mutable context in the action configuration parameter. Indirect list action configuration is and array [C1, C2, .., Cn] where Ci corresponds to Ai in the action handle source. Ci configuration element points Ai flow mutable update, or it's NULL if Ai has no flow mutable update. Indirect list action configuration can be NULL if the action has no flow mutable updates.
Template API:
Action template format:
template .. indirect_list handle Htmpl conf Ctmpl .. mask .. indirect_list handle Hmask conf Cmask ..
1 If Htmpl was masked (Hmask != 0), it will be fixed in that template. Otherwise, indirect action value is set in a flow rule.
2 If Htmpl and Ctmpl[i] were masked (Hmask !=0 and Cmask[i] != 0), Htmpl's Ai action flow mutable context fill be updated to Ctmpl[i] values and will be fixed in that template.
Flow rule format:
actions .. indirect_list handle Hflow conf Cflow ..
3 If Htmpl was not masked in actions template, Hflow references an action of the same type as Htmpl.
4 Cflow[i] updates handle's Ai flow mutable configuration if the Ci was not masked in action template.
Signed-off-by: Gregory Etelson <getelson@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
| #
8f257a48 |
| 23-May-2023 |
Alexander Kozyrev <akozyrev@nvidia.com> |
ethdev: add flow rule actions update
Introduce the new rte_flow_actions_update() API allowing users to update the action list in the already existing rule. Flow rules can be updated now without the
ethdev: add flow rule actions update
Introduce the new rte_flow_actions_update() API allowing users to update the action list in the already existing rule. Flow rules can be updated now without the need to destroy the rule first and create a new one instead. A single API call ensures that no packets are lost by guaranteeing atomicity and flow state correctness. The rte_flow_async_actions_update() is added as well. The matcher is not updated, only the action list is.
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
| #
0e57a0fb |
| 23-May-2023 |
Alexander Kozyrev <akozyrev@nvidia.com> |
ethdev: fix asynchronous destroy and push tracepoints
The rte_flow_async_destroy() and rte_flow_push() API is intended to be as fast as possible and tracepoints for these functions must be marked as
ethdev: fix asynchronous destroy and push tracepoints
The rte_flow_async_destroy() and rte_flow_push() API is intended to be as fast as possible and tracepoints for these functions must be marked as fast-path tracepoints.
Fixes: 6679cf21d608 ("ethdev: add trace points") Cc: stable@dpdk.org
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
|
Revision tags: v23.03, v23.03-rc4, v23.03-rc3 |
|
| #
782c7db4 |
| 16-Mar-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: fix trace global buffer overflow
With clang 10 compilation, the address sanitizer reports global buffer overflow issue. The issue is observed during trace point registration in rte_trace_poi
ethdev: fix trace global buffer overflow
With clang 10 compilation, the address sanitizer reports global buffer overflow issue. The issue is observed during trace point registration in rte_trace_point_emit_string, for strings in iterator structure.
As a workaround for this clang issue, this patch removes the rte_trace_point_emit_string and instead adds rte_trace_point_emit_ptr to capture the iterator pointer.
Bugzilla ID: 1184 Fixes: 6679cf21d608 ("ethdev: add trace points")
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
|
Revision tags: v23.03-rc2 |
|
| #
26749cd1 |
| 03-Mar-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: optimise parameter passing to xstats trace
The rte_eth_xstat_name structure is of size 64 bytes. Instead of passing the structure as value it is passed as a pointer, to avoid copy of 64 byte
ethdev: optimise parameter passing to xstats trace
The rte_eth_xstat_name structure is of size 64 bytes. Instead of passing the structure as value it is passed as a pointer, to avoid copy of 64 bytes in function call stack.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
f768ebe2 |
| 03-Mar-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: fix trace point null pointer dereference
The speed_fec_capa pointer can be null. So dereferencing the pointer is removed and only the pointer is captured in trace function. Fixed few more tr
ethdev: fix trace point null pointer dereference
The speed_fec_capa pointer can be null. So dereferencing the pointer is removed and only the pointer is captured in trace function. Fixed few more trace functions in which null pointer can be dereferenced. As a result of this fix the address sanitizer error observed with rte_eth_trace_find_next_of() is also resolved.
Coverity issue: 383238 Bugzilla ID: 1162 Fixes: 6679cf21d608 ("ethdev: add trace points") Fixes: ed04fd4072e9 ("ethdev: add trace points for flow")
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
7e4dc58c |
| 28-Feb-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: remove bitfields from trace points
To capture bitfield variables in trace, the pointer to the structure containing the bitfields was referenced. But during trace point registration the point
ethdev: remove bitfields from trace points
To capture bitfield variables in trace, the pointer to the structure containing the bitfields was referenced. But during trace point registration the pointer contains invalid address. Referencing this invalid address causes segmentation fault.
This patch removes the capture of bitfield variables in trace.
Bugzilla ID: 1167 Fixes: 6679cf21d608 ("ethdev: add trace points") Fixes: ed04fd4072e9 ("ethdev: add trace points for flow")
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com> Tested-by: Ali Alnubani <alialnu@nvidia.com>
show more ...
|
|
Revision tags: v23.03-rc1 |
|
| #
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 ...
|
| #
85abfc8d |
| 08-Feb-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: add trace points for TM
Adds trace points for rte_tm specific functions in ethdev lib.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
|
| #
48e48fce |
| 08-Feb-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: add trace points for MTR
Adds trace points for rte_mtr specific functions in ethdev lib.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Sunil Kumar Kori <skori@marvell.com> A
ethdev: add trace points for MTR
Adds trace points for rte_mtr specific functions in ethdev lib.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
ed04fd40 |
| 08-Feb-2023 |
Ankur Dwivedi <adwivedi@marvell.com> |
ethdev: add trace points for flow
Adds trace points for rte_flow specific functions in ethdev lib.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by:
ethdev: add trace points for flow
Adds trace points for rte_flow specific functions in ethdev lib.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.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 ...
|