#
8ac3a1cd |
| 16-Mar-2023 |
Eli Britstein <elibr@nvidia.com> |
app/testpmd: assign custom ID to flow rules
Upon creation of a flow, testpmd assigns it a flow ID. Later, the flow ID is used for flow operations (query, destroy, dump).
The testpmd application all
app/testpmd: assign custom ID to flow rules
Upon creation of a flow, testpmd assigns it a flow ID. Later, the flow ID is used for flow operations (query, destroy, dump).
The testpmd application allows to manage flow rules with its IDs. The flow ID is known only when the flow is created. In order to prepare a complete sequence of testpmd commands to copy/paste, the flow IDs must be predictable.
Allow the user to provide an assigned ID.
Example: testpmd> flow create 0 ingress user_id 0x1234 pattern eth / end actions count / drop / end Flow rule #0 created, user-id 0x1234
testpmd> flow query 0 0x1234 count user_id
testpmd> flow dump 0 user_id rule 0x1234
testpmd> flow destroy 0 rule 0x1234 user_id Flow rule #0 destroyed, user-id 0x1234
Here, "user_id" is a flag that signifies the "rule" ID is the user-id.
The motivation is from OVS. OVS dumps its "rte_flow_create" calls to the log in testpmd commands syntax. As the flow ID testpmd would assign is unkwon, it cannot log valid "flow destroy" commands.
With this enhancement, valid testpmd commands can be created in a log to copy/paste to testpmd. The application's flows sequence can then be played back in testpmd, to enable enhanced dpdk debug capabilities of the applications's flows in a controlled environment of testpmd rather than a dynamic, more difficult to debug environment of the application.
Signed-off-by: Eli Britstein <elibr@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
fd5392d8 |
| 16-Mar-2023 |
Eli Britstein <elibr@nvidia.com> |
app/testpmd: change flow rule ID type
Change flow rule type to be uint64_t (instead of currently uint32_t) to be able to accommodate larger IDs, as a pre-step towards allowing user-id to flows.
Sig
app/testpmd: change flow rule ID type
Change flow rule type to be uint64_t (instead of currently uint32_t) to be able to accommodate larger IDs, as a pre-step towards allowing user-id to flows.
Signed-off-by: Eli Britstein <elibr@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
77e7939a |
| 12-Jun-2023 |
Alexander Kozyrev <akozyrev@nvidia.com> |
app/testpmd: add flow rule update command
Add testpmd CLI interface for the flow update API. flow queue 1 update 2 rule 3 actions_template 4 postpone yes pattern end actions queue index
app/testpmd: add flow rule update command
Add testpmd CLI interface for the flow update API. flow queue 1 update 2 rule 3 actions_template 4 postpone yes pattern end actions queue index 3 / end
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
1d343c19 |
| 08-Jun-2023 |
Mike Pattrick <mkp@redhat.com> |
app/testpmd: expand noisy neighbour forward modes
Previously the noisy neighbour vnf simulation would only operate in io mode, forwarding packets as is. However, this limited the usefulness of noisy
app/testpmd: expand noisy neighbour forward modes
Previously the noisy neighbour vnf simulation would only operate in io mode, forwarding packets as is. However, this limited the usefulness of noisy neighbour simulation.
This feature has now been expanded to supporting mac, macswap, and 5tswap modes. To facilitate adding this support, some new header files were added.
Signed-off-by: Mike Pattrick <mkp@redhat.com> 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 ...
|
#
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 ...
|
#
f958bbe2 |
| 16-Mar-2023 |
Huisong Li <lihuisong@huawei.com> |
app/testpmd: display RSS hash key of flow rule
There are two ways to set RSS hash key with rte_flow rule: 1. 'key_len' isn't zero and 'key' is NULL. 2. 'key_len' isn't zero and 'key' isn't NULL. Thi
app/testpmd: display RSS hash key of flow rule
There are two ways to set RSS hash key with rte_flow rule: 1. 'key_len' isn't zero and 'key' is NULL. 2. 'key_len' isn't zero and 'key' isn't NULL. This patch adds displaying for the hash key of rte_flow rule.
Signed-off-by: Huisong Li <lihuisong@huawei.com> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
d0aa6cd7 |
| 16-Mar-2023 |
Chengwen Feng <fengchengwen@huawei.com> |
app/testpmd: show private info in port info
This patch adds dump private info in 'show port info [port_id]' cmd.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Aman Singh <aman.de
app/testpmd: show private info in port info
This patch adds dump private info in 'show port info [port_id]' cmd.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Aman Singh <aman.deep.singh@intel.com> 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 ...
|
#
3e3edab5 |
| 02-Feb-2023 |
Gregory Etelson <getelson@nvidia.com> |
ethdev: add flow quota
Quota action limits traffic according to pre-defined configuration. Quota reflects overall traffic usage regardless bandwidth. Quota flow action initialized with signed tokens
ethdev: add flow quota
Quota action limits traffic according to pre-defined configuration. Quota reflects overall traffic usage regardless bandwidth. Quota flow action initialized with signed tokens number value. Quota flow action updates tokens number according to these rules: 1. if quota was configured to count packet length, for each packet of size S, tokens number reduced by S. 2. If quota was configured to count packets, each packet decrements tokens number. quota action sets packet metadata according to a number of remaining tokens number: PASS - remaining tokens number is non-negative. BLOCK - remaining tokens number is negative.
Quota flow item matches on that data
Application updates tokens number in quota flow action with SET or ADD calls: SET(QUOTA, val) - arm quota with new tokens number set to val ADD(QUOTA, val) - increase existing quota tokens number by val
Both SET and ADD return to application number of tokens stored in port before update.
If quota state was BLOCK (negative action tokens number) application can change it to PASS after providing enough tokens to raise action tokens number to 0 or above.
Application must create a rule with quota action to mark flow and match on the mark with quota item in following flow rule.
Signed-off-by: Gregory Etelson <getelson@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
60261a00 |
| 08-Feb-2023 |
Alexander Kozyrev <akozyrev@nvidia.com> |
ethdev: add flow template table insertion type
Allow user to specify insertion type used in template tables. The insertion type is responsible for choosing the appropriate key value used to map inse
ethdev: add flow template table insertion type
Allow user to specify insertion type used in template tables. The insertion type is responsible for choosing the appropriate key value used to map inserted flow rules into a template table.
Flow rules can be inserted by calculating the hash value for the pattern or inserted by index via the new create_by_index() API. The idea of the index-based insertion is to avoid additional matches and simply execute predefined actions after jumping to the index.
This is how the regular pattern-based table works: 1. The hash is calculated on a 5-tuple of a packet. 2. The corresponding entry in the table is checked for collisions. 3. Actions are executed once the final entry is found. The index-based table skips any lookups for the packet: 1. The index value is taken from a specified field. 2. Actions are executed at the specified index in the table.
The insertion into an already occupied index results in an error. The old rule must be destroyed first. An index cannot be bigger than the size of the table, otherwise, the rule is rejected as well.
Add testpmd CLI interface for specifying a template table insertion type. Available types are: pattern and index. flow template_table 0 create table_id 0 insertion_type index ... Allow specifying the rule index instead of the pattern template index: flow queue 0 create 0 template_table 0 rule_index 5 actions_template 0 ...
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
c469b892 |
| 17-Nov-2022 |
Suanming Mou <suanmingm@nvidia.com> |
app/testpmd: fix async action destruction leak
In case action handle destroy fails, the job memory was not freed properly. This commit fixes the possible memory leak in the action handle destruction
app/testpmd: fix async action destruction leak
In case action handle destroy fails, the job memory was not freed properly. This commit fixes the possible memory leak in the action handle destruction failed case.
Fixes: c9dc03840873 ("ethdev: add indirect action async query")
Reported-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
2809981e |
| 18-Nov-2022 |
David Marchand <david.marchand@redhat.com> |
app/testpmd: fix build with clang 15 in flow code
This variable is not used and has been copy/pasted in a lot of other code.
Fixes: 938a184a1870 ("app/testpmd: implement basic support for flow API"
app/testpmd: fix build with clang 15 in flow code
This variable is not used and has been copy/pasted in a lot of other code.
Fixes: 938a184a1870 ("app/testpmd: implement basic support for flow API") Fixes: 55509e3a49fb ("app/testpmd: support shared flow action") Fixes: 04cc665fab38 ("app/testpmd: add flow template management") Fixes: c4b38873346b ("app/testpmd: add flow table management") Fixes: ecdc927b99f2 ("app/testpmd: add async flow create/destroy operations") Fixes: d906fff51878 ("app/testpmd: add async indirect actions operations") Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
#
6d736e05 |
| 08-Nov-2022 |
Suanming Mou <suanmingm@nvidia.com> |
app/testpmd: flush flow templates when port is removed
Add explicit flushing of template tables, pattern and actions templates, when a port is closed or detached.
Signed-off-by: Suanming Mou <suanm
app/testpmd: flush flow templates when port is removed
Add explicit flushing of template tables, pattern and actions templates, when a port is closed or detached.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Aman Singh <aman.deep.singh@intel.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 ...
|
#
f4f7ba1a |
| 07-Nov-2022 |
Alexander Kozyrev <akozyrev@nvidia.com> |
app/testpmd: fix flow list with async flow API
Flows created with the new asynchronous flow API lack attributes (direction, priority, group number). These attributes are part of a template table for
app/testpmd: fix flow list with async flow API
Flows created with the new asynchronous flow API lack attributes (direction, priority, group number). These attributes are part of a template table for flows created via rte_flow_async_create().
When testpmd tries to list all the flows it accesses flow attributes via pointer and crashes. Save flow attributes during the template table creation and use them in the "flow list" output.
Fixes: ecdc927b99 ("app/testpmd: add async flow create/destroy operations") Cc: stable@dpdk.org
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
86fe1b01 |
| 26-Oct-2022 |
Michael Baum <michaelba@nvidia.com> |
ethdev: add structure for indirect flow age update
Add a new structure for indirect AGE update.
This new structure enables: 1. Update timeout value. 2. Stop AGE checking. 3. Start AGE checking. 4.
ethdev: add structure for indirect flow age update
Add a new structure for indirect AGE update.
This new structure enables: 1. Update timeout value. 2. Stop AGE checking. 3. Start AGE checking. 4. restart AGE checking.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
966eb55e |
| 26-Oct-2022 |
Michael Baum <michaelba@nvidia.com> |
ethdev: add queue-based API to report aged flow rules
When application use queue-based flow rule management and operate the same flow rule on the same queue, e.g create/destroy/query, API of queryin
ethdev: add queue-based API to report aged flow rules
When application use queue-based flow rule management and operate the same flow rule on the same queue, e.g create/destroy/query, API of querying aged flow rules should also have queue id parameter just like other queue-based flow APIs.
By this way, PMD can work in more optimized way since resources are isolated by queue and needn't synchronize.
If application do use queue-based flow management but configure port without RTE_FLOW_PORT_FLAG_STRICT_QUEUE, which means application operate a given flow rule on different queues, the queue id parameter will be ignored.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
eb0d471a |
| 13-Oct-2022 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
ethdev: add proactive error handling mode
Some PMDs (e.g. hns3) could detect hardware or firmware errors, one error recovery mode is to report RTE_ETH_EVENT_INTR_RESET event, and wait for applicatio
ethdev: add proactive error handling mode
Some PMDs (e.g. hns3) could detect hardware or firmware errors, one error recovery mode is to report RTE_ETH_EVENT_INTR_RESET event, and wait for application invoke rte_eth_dev_reset() to recover the port, however, this mode has the following weaknesses:
1) Due to different hardware and software design, some NIC port recovery process requires multiple handshakes with the firmware and PF (when the port is VF). It takes a long time to complete the entire operation for one port, If multiple ports (for example, multiple VFs of a PF) are reset at the same time, other VFs may fail to be reset. (Because the reset processing is serial, the previous VFs must be processed before the subsequent VFs).
2) The impact on the application layer is great, and it should stop working queues, stop calling Rx and Tx functions, and then call rte_eth_dev_reset(), and re-setup all again.
This patch introduces proactive error handling mode, the PMD will try to recover from the errors itself. In this process, the PMD sets the data path pointers to dummy functions (which will prevent the crash), and also make sure the control path operations failed with retcode -EBUSY.
Because the PMD recovers automatically, the application can only sense that the data flow is disconnected for a while and the control API returns an error in this period.
In order to sense the error happening/recovering, three events were introduced:
1) RTE_ETH_EVENT_ERR_RECOVERING: used to notify the application that it detected an error and the recovery is being started. Upon receiving the event, the application should not invoke any control path APIs until receiving RTE_ETH_EVENT_RECOVERY_SUCCESS or RTE_ETH_EVENT_RECOVERY_FAILED event.
2) RTE_ETH_EVENT_RECOVERY_SUCCESS: used to notify the application that it recovers successful from the error, the PMD already re-configures the port, and the effect is the same as that of the restart operation.
3) RTE_ETH_EVENT_RECOVERY_FAILED: used to notify the application that it recovers failed from the error, the port should not usable anymore. The application should close the port.
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
0d5c38ba |
| 13-Oct-2022 |
Chengwen Feng <fengchengwen@huawei.com> |
ethdev: add error handling mode to device info
Currently, the defined error handling modes include:
1) NONE: it means no error handling modes are supported by this port.
2) PASSIVE: passive error
ethdev: add error handling mode to device info
Currently, the defined error handling modes include:
1) NONE: it means no error handling modes are supported by this port.
2) PASSIVE: passive error handling, after the PMD detect that a reset is required, the PMD reports RTE_ETH_EVENT_INTR_RESET event, and application invoke rte_eth_dev_reset() to recover the port.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-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 ...
|
#
9c4a0c18 |
| 26-Sep-2022 |
Alexander Kozyrev <akozyrev@nvidia.com> |
ethdev: add meter color mark flow action
Create a new Flow API action: METER_MARK. It Meters a packet stream and marks its packets with colors. The marking is done on a metadata, not on a packet fie
ethdev: add meter color mark flow action
Create a new Flow API action: METER_MARK. It Meters a packet stream and marks its packets with colors. The marking is done on a metadata, not on a packet field. Unlike the METER action, it performs no policing at all. A user has the flexibility to create any policies with the help of the METER_COLOR item later, only meter profile is mandatory here.
Add testpmd command line to match for METER_MARK action: flow create ... actions meter_mark mtr_profile 20 / end
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
c9dc0384 |
| 20-Sep-2022 |
Suanming Mou <suanmingm@nvidia.com> |
ethdev: add indirect action async query
As rte_flow_action_handle_create/destroy/update() have their own asynchronous rte_flow_async_action_handle_create/destroy/update() version functions to accele
ethdev: add indirect action async query
As rte_flow_action_handle_create/destroy/update() have their own asynchronous rte_flow_async_action_handle_create/destroy/update() version functions to accelerate the indirect action operations in queue based flow engine. Currently, the asynchronous version query function for indirect action was missing.
Add rte_flow_async_action_handle_query() function corresponding to rte_flow_action_handle_query(). The new asynchronous version function enables enqueue the query to the hardware similar as asynchronous flow management does and returns immediately to free the CPU for other tasks. Application can get the query results from rte_flow_pull() when the hardware completes its work.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
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 ...
|