|
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 ...
|
| #
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 ...
|
| #
e075ca1d |
| 18-Sep-2024 |
Adel Belkhiri <adel.belkhiri@polymtl.ca> |
ethdev: optimize activation of fast path tracepoints
Split the tracepoints rte_ethdev_trace_rx_burst and rte_eth_trace_call_rx_callbacks into two separate ones for empty and non-empty calls to avoid
ethdev: optimize activation of fast path tracepoints
Split the tracepoints rte_ethdev_trace_rx_burst and rte_eth_trace_call_rx_callbacks into two separate ones for empty and non-empty calls to avoid saturating quickly the trace buffer.
Signed-off-by: Adel Belkhiri <adel.belkhiri@polymtl.ca> Acked-by: Jerin Jacob <jerinj@marvell.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 ...
|
| #
d4b9235f |
| 18-Jan-2024 |
Jerin Jacob <jerinj@marvell.com> |
ethdev: add Tx queue used count query
Introduce a new API to retrieve the number of used descriptors in a Tx queue. Applications can leverage this API in the fast path to inspect the Tx queue occupa
ethdev: add Tx queue used count query
Introduce a new API to retrieve the number of used descriptors in a Tx queue. Applications can leverage this API in the fast path to inspect the Tx queue occupancy and take appropriate actions based on the available free descriptors.
A notable use case could be implementing Random Early Discard (RED) in software based on Tx queue occupancy.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Reviewed-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 |
|
| #
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 ...
|
|
Revision tags: v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, 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 ...
|
|
Revision tags: v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1, v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1, v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, 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 ...
|