#
045e35aa |
| 10-Oct-2024 |
James Hershaw <james.hershaw@corigine.com> |
app/testpmd: support switching LED on/off
Add command to change the state of a controllable LED on an ethdev port to on/off. This is for the purpose of identifying which physical port is associated
app/testpmd: support switching LED on/off
Add command to change the state of a controllable LED on an ethdev port to on/off. This is for the purpose of identifying which physical port is associated with an ethdev.
Usage: testpmd> set port <port-id> led <on/off>
Signed-off-by: James Hershaw <james.hershaw@corigine.com> Reviewed-by: Chaoyong He <chaoyong.he@corigine.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
54780542 |
| 10-Oct-2024 |
James Hershaw <james.hershaw@corigine.com> |
app/testpmd: support setting device EEPROM
There is currently no means to test the .set_eeprom function callback of a given PMD in drivers/net/. This patch adds functionality to allow a user to set
app/testpmd: support setting device EEPROM
There is currently no means to test the .set_eeprom function callback of a given PMD in drivers/net/. This patch adds functionality to allow a user to set device eeprom from the testpmd cmdline.
Usage: testpmd> set port <port-id> eeprom <accept_risk> magic <magic> \ value <value> offset <offset>
- <accept_risk> is a fixed string that is required from the user to acknowledge the risk involved in using this command and accepting the responsibility for that. - <magic> is a decimal. - <value> is a hex-as-string with no leading "0x". - <offset> is a decimal (this field is optional and defaults to 0 if not specified.)
Signed-off-by: James Hershaw <james.hershaw@corigine.com> Reviewed-by: Chaoyong He <chaoyong.he@corigine.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
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 ...
|
#
389fca75 |
| 23-Jul-2024 |
Gavin Li <gavinl@nvidia.com> |
app/testpmd: restore deprecated VXLAN-GPE item support
VXLAN-GPE support was removed from testpmd recently. Drivers which are not migrated to the new unified VXLAN item are still using VXLAN-GPE in
app/testpmd: restore deprecated VXLAN-GPE item support
VXLAN-GPE support was removed from testpmd recently. Drivers which are not migrated to the new unified VXLAN item are still using VXLAN-GPE in tests.
This commit is to restore the support of the deprecated VXLAN-GPE flow item in testpmd.
After this change, there are two command line items with the same name, ie. "protocol". One is for the new VXLAN extensions and the other is for the deprecated VXLAN-GPE item. Add a new one that is more obvious for the new VXLAN structure since the two have different command line context.
Fixes: da118115d95c ("app/testpmd: support matching any VXLAN field")
Signed-off-by: Gavin Li <gavinl@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
06d8e7da |
| 24-May-2024 |
Thomas Monjalon <thomas@monjalon.net> |
doc: remove empty section from testpmd guide
When removing the documentation for the obsolete flow filtering, the related section was kept almost empty. It can be safely removed.
Fixes: 5007ac13189
doc: remove empty section from testpmd guide
When removing the documentation for the obsolete flow filtering, the related section was kept almost empty. It can be safely removed.
Fixes: 5007ac13189d ("ethdev: remove deprecated Flow Director configuration") Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
da118115 |
| 05-Jun-2024 |
Gavin Li <gavinl@nvidia.com> |
app/testpmd: support matching any VXLAN field
VXLAN extensions (VXLAN-GPE and VXLAN-GBP) are unified in a single VXLAN flow item.
It is user responsibility to explicitly match VXLAN-GPE with its UD
app/testpmd: support matching any VXLAN field
VXLAN extensions (VXLAN-GPE and VXLAN-GBP) are unified in a single VXLAN flow item.
It is user responsibility to explicitly match VXLAN-GPE with its UDP port. Below are examples to match standard VXLAN, VXLAN-GPE and VXLAN-GBP. To match standard vxlan, ... / udp dst is 4789 / vxlan ... / ... To match VXLAN-GBP, group policy ID is 4321, ... / udp dst is 4789 / vxlan flag_g is 1 group_policy_id is 4321 ... / ... To match VXLAN-GPE, next protocol is IPv6 ... / udp dst is 4790 / vxlan flag_p is 1 protocol is 2 ... / ...
Signed-off-by: Gavin Li <gavinl@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
7a30ea42 |
| 03-May-2024 |
Kevin Traynor <ktraynor@redhat.com> |
doc: fix testpmd ring size command
The documentation is missing the 'config' word.
In app, 'help ports' shows the correct syntax:
port config (port_id) (rxq|txq) (queue_id) ring_size (value)
Fixe
doc: fix testpmd ring size command
The documentation is missing the 'config' word.
In app, 'help ports' shows the correct syntax:
port config (port_id) (rxq|txq) (queue_id) ring_size (value)
Fixes: 1a77cffa8143 ("app/testpmd: enable queue ring size configure") Cc: stable@dpdk.org
Signed-off-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
2d9c7e56 |
| 29-Feb-2024 |
Oleksandr Kolomeiets <okl-plv@napatech.com> |
app/testpmd: support updating flow rule actions
"flow update" updates a flow rule specified by a rule ID with a new action list by making a call to "rte_flow_actions_update()":
flow update {por
app/testpmd: support updating flow rule actions
"flow update" updates a flow rule specified by a rule ID with a new action list by making a call to "rte_flow_actions_update()":
flow update {port_id} {rule_id} actions {action} [/ {action} [...]] / end [user_id]
Creating, updating and destroying a flow rule:
testpmd> flow create 0 group 1 pattern eth / end actions drop / end Flow rule #0 created testpmd> flow update 0 0 actions queue index 1 / end Flow rule #0 updated with new actions testpmd> flow destroy 0 rule 0 Flow rule #0 destroyed
Signed-off-by: Oleksandr Kolomeiets <okl-plv@napatech.com> Reviewed-by: Mykola Kostenok <mko-plv@napatech.com> Reviewed-by: Christian Koue Muf <ckm@napatech.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
32dced79 |
| 12-Jan-2024 |
Gavin Li <gavinl@nvidia.com> |
app/testpmd: support VXLAN-GPE reserved fields matching
Add support for VXLAN-GPE rsvd0 and rsvd1 fields in flow rule pattern to testpmd
Signed-off-by: Gavin Li <gavinl@nvidia.com> Acked-by: Darius
app/testpmd: support VXLAN-GPE reserved fields matching
Add support for VXLAN-GPE rsvd0 and rsvd1 fields in flow rule pattern to testpmd
Signed-off-by: Gavin Li <gavinl@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|
#
20313fa7 |
| 12-Jan-2024 |
Gavin Li <gavinl@nvidia.com> |
app/testpmd: support VXLAN-GPE flags matching
Add support for VXLAN-GPE flags field in flow rule pattern to testpmd.
Signed-off-by: Gavin Li <gavinl@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnow
app/testpmd: support VXLAN-GPE flags matching
Add support for VXLAN-GPE flags field in flow rule pattern to testpmd.
Signed-off-by: Gavin Li <gavinl@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|
#
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 ...
|
#
9733f099 |
| 13-Feb-2024 |
Ori Kam <orika@nvidia.com> |
ethdev: add encapsulation hash calculation
During encapsulation of a packet, it is possible to change some outer headers to improve flow distribution. For example, from VXLAN RFC: "It is recommended
ethdev: add encapsulation hash calculation
During encapsulation of a packet, it is possible to change some outer headers to improve flow distribution. For example, from VXLAN RFC: "It is recommended that the UDP source port number be calculated using a hash of fields from the inner packet -- one example being a hash of the inner Ethernet frame's headers. This is to enable a level of entropy for the ECMP/load-balancing"
The tunnel protocol defines which outer field should hold this hash, but it doesn't define the hash calculation algorithm.
An application that uses flow offloads gets the first few packets (exception path) and then decides to offload the flow. As a result, there are two different paths that a packet from a given flow may take. SW for the first few packets or HW for the rest. When the packet goes through the SW, the SW encapsulates the packet and must use the same hash calculation as the HW will do for the rest of the packets in this flow.
The new function rte_flow_calc_encap_hash can query the hash value from the driver for a given packet as if the packet was passed through the HW.
Testpmd command: flow hash {port} encap {target field} pattern {item} [/ {item} [...] ] / end
Testpmd example for VXLAN encapsulation: flow hash 0 encap hash_field_sport pattern ipv4 dst is 7.7.7.7 src is 8.8.8.8 / udp dst is 5678 src is 1234 / end
Signed-off-by: Ori Kam <orika@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
42392190 |
| 09-Feb-2024 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
ethdev: support RSS based on IPv6 flow label
On supporting hardware, the 20-bit Flow Label field in the IPv6 header can be used to perform RSS in the ingress path.
Flow label values can be chosen s
ethdev: support RSS based on IPv6 flow label
On supporting hardware, the 20-bit Flow Label field in the IPv6 header can be used to perform RSS in the ingress path.
Flow label values can be chosen such that they can be used as part of the input to a hash function used in a load distribution scheme.
Example to configure IPv6 flow label based RSS: flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-flow-label end / end
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
4d9b46a2 |
| 07-Feb-2024 |
Satha Rao <skoteshwar@marvell.com> |
app/testpmd: get Tx queue used descriptor count
Existing Rx desc used count command extended to get Tx queue used count. testpmd> show port 0 rxq 0 desc used count testpmd> show port 0 txq 0
app/testpmd: get Tx queue used descriptor count
Existing Rx desc used count command extended to get Tx queue used count. testpmd> show port 0 rxq 0 desc used count testpmd> show port 0 txq 0 desc used count
Signed-off-by: Satha Rao <skoteshwar@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
58143b7b |
| 06-Feb-2024 |
Suanming Mou <suanmingm@nvidia.com> |
ethdev: add flow item for comparison
The new item type is added for the case user wants to match traffic based on packet field compare result with other fields or immediate value.
e.g. take advanta
ethdev: add flow item for comparison
The new item type is added for the case user wants to match traffic based on packet field compare result with other fields or immediate value.
e.g. take advantage the compare item user will be able to accumulate a IPv4/TCP packet's TCP data_offset and IPv4 IHL field to a tag register, then compare the tag register with IPv4 header total length to understand the packet has payload or not.
The supported operations can be as below: - RTE_FLOW_ITEM_COMPARE_EQ (equal) - RTE_FLOW_ITEM_COMPARE_NE (not equal) - RTE_FLOW_ITEM_COMPARE_LT (less than) - RTE_FLOW_ITEM_COMPARE_LE (less than or equal) - RTE_FLOW_ITEM_COMPARE_GT (great than) - RTE_FLOW_ITEM_COMPARE_GE (great than or equal)
A sample for create the comparison flow: flow pattern_template 0 create ingress pattern_template_id 1 template \ compare op mask le a_type mask tag a_tag_index mask 1 b_type \ mask tag b_tag_index mask 2 width mask 0xffffffff / end flow actions_template 0 create ingress actions_template_id 1 template \ count / drop / end mask count / drop / end flow template_table 0 create table_id 1 group 2 priority 1 ingress \ rules_number 1 pattern_template 1 actions_template 1 flow queue 0 create 0 template_table 1 pattern_template 0 \ actions_template 0 postpone no pattern compare op is le \ a_type is tag a_tag_index is 1 b_type is tag b_tag_index is 2 \ width is 32 / end actions count / drop / end
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
eb704df7 |
| 31-Jan-2024 |
Bing Zhao <bingz@nvidia.com> |
ethdev: add NAT64 flow action
In order to support the communication between IPv4 and IPv6 nodes in the network, different technologies are used, like dual-stacks, tunneling and NAT64. In some IPv4-o
ethdev: add NAT64 flow action
In order to support the communication between IPv4 and IPv6 nodes in the network, different technologies are used, like dual-stacks, tunneling and NAT64. In some IPv4-only clients, it is hard to deploy new software and(or) hardware to support IPv6 protocol.
NAT64 is a choice and it will also reduce the unnecessary overhead of the traffic in the network. The NAT64 gateways take the responsibility of the packet headers translation between the IPv6 clouds and IPv4-only clouds.
The commit introduce the NAT64 flow action to offload the software involvement to the hardware.
This action should support the offloading of the IP headers' translation. The following fields should be reset correctly in the translation. - Version - Traffic Class / TOS - Flow Label (0 in v4) - Payload Length / Total length - Next Header - Hop Limit / TTL
The PMD needs to support the basic conversion of the fields above, and the well-known prefix will be used when translating IPv4 address to IPv6 address. Another modify fields can be used after the NAT64 to support other modes with different prefix and offset.
The ICMP* and transport layers protocol is out of the scope of NAT64 rte_flow action.
Testpmd usage example with flow template API: ... flow actions_template 0 create ingress actions_template_id 1 \ template count / nat64 / jump / end mask count / nat64 / \ jump / end flow template_table 0 create group 1 priority 0 ingress table_id \ 0x1 rules_number 8 pattern_template 0 actions_template 1 flow queue 0 create 2 template_table 0x1 pattern_template 0 \ actions_template 0 postpone no pattern eth / end actions count / \ nat64 type 1 / jump group 2 / end ...
Reference links: - https://datatracker.ietf.org/doc/html/rfc6146 - https://datatracker.ietf.org/doc/html/rfc6052 - https://datatracker.ietf.org/doc/html/rfc6145
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
738ef8f7 |
| 14-Dec-2023 |
Michael Baum <michaelba@nvidia.com> |
ethdev: add flow item for random matching
Add support for a new item type "RTE_FLOW_ITEM_TYPE_RANDOM". This item enables to match on some random value as a part of flow rule.
Example in testpmd:
ethdev: add flow item for random matching
Add support for a new item type "RTE_FLOW_ITEM_TYPE_RANDOM". This item enables to match on some random value as a part of flow rule.
Example in testpmd:
pattern random spec value 0x1 mask value 0x3 / eth / end
Flow rule with above pattern matching 25% of the traffic, it hits only when random value suffix is "01" and miss the others ("00", "10", "11").
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
3da59f30 |
| 01-Dec-2023 |
Jie Hai <haijie1@huawei.com> |
app/testpmd: set RSS hash algorithm
Since API rte_eth_dev_rss_hash_update() supports setting RSS hash algorithm, add new command to support it:
testpmd> port config 0 rss-hash-algo symmetric_toepli
app/testpmd: set RSS hash algorithm
Since API rte_eth_dev_rss_hash_update() supports setting RSS hash algorithm, add new command to support it:
testpmd> port config 0 rss-hash-algo symmetric_toeplitz
Signed-off-by: Jie Hai <haijie1@huawei.com> Reviewed-by: Huisong Li <lihuisong@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
6280fe56 |
| 10-Nov-2023 |
Dengdui Huang <huangdengdui@huawei.com> |
app/testpmd: allow offload config for all ports
Support config Rx/Tx offload for all ports in following commands: 1. port config all rx_offload (offloading) (on|off) 2. port config all tx_offload (o
app/testpmd: allow offload config for all ports
Support config Rx/Tx offload for all ports in following commands: 1. port config all rx_offload (offloading) (on|off) 2. port config all tx_offload (offloading) (on|off)
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Huisong Li <lihuisong@huawei.com>
show more ...
|
#
92628e2b |
| 02-Nov-2023 |
Jie Hai <haijie1@huawei.com> |
ethdev: get RSS algorithm names
This patch adds new API rte_eth_dev_rss_algo_name() to get name of a RSS algorithm and document it.
Example:
testpmd> show port 0 rss-hash algorithm RSS algorithm:
ethdev: get RSS algorithm names
This patch adds new API rte_eth_dev_rss_algo_name() to get name of a RSS algorithm and document it.
Example:
testpmd> show port 0 rss-hash algorithm RSS algorithm: toeplitz
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 ...
|
#
8f6c2a12 |
| 23-Oct-2023 |
Chengwen Feng <fengchengwen@huawei.com> |
app/testpmd: ease configuring all offloads
Extend supports all offload configuration in following commands: 1. port config 0 rx_offload all on/off 2. port config 0 tx_offload all on/off 3. port 0 rx
app/testpmd: ease configuring all offloads
Extend supports all offload configuration in following commands: 1. port config 0 rx_offload all on/off 2. port config 0 tx_offload all on/off 3. port 0 rxq 0 rx_offload all on/off 4. port 0 txq 0 tx_offload all on/off
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Huisong Li <lihuisong@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
676a21f9 |
| 11-Oct-2023 |
Suanming Mou <suanmingm@nvidia.com> |
doc: add modify field action in testpmd guide
This commit adds the missing modify_field action description to `testpmd_funcs.rst`.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Ferru
doc: add modify field action in testpmd guide
This commit adds the missing modify_field action description to `testpmd_funcs.rst`.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
ffe18b05 |
| 10-Oct-2023 |
Ori Kam <orika@nvidia.com> |
ethdev: add calculate hash function
rte_flow supports insert by index table, see commit 60261a005dff ("ethdev: add flow template table insertion type").
Using the above table, the application can c
ethdev: add calculate hash function
rte_flow supports insert by index table, see commit 60261a005dff ("ethdev: add flow template table insertion type").
Using the above table, the application can create rules that are based on hash. For example application can create the following logic in order to create load balancing: 1. Create insert by index table with 2 rules, that hashes based on dmac 2. Insert to index 0 a rule that sends the traffic to port A. 3. Insert to index 1 a rule that sends the traffic to port B.
Let's also assume that before this table, there is a 5 tuple match table that jumps to the above table.
So each packet that matches one of the 5 tuple rules is RSSed to port A or B, based on dmac hash.
The issue arises when there is a miss on the 5 tuple table, which resulted due to the packet being the first packet of this flow, or fragmented packet or any other reason. In this case, the application must calculate what would be the hash calculated by the HW so it can send the packet to the correct port.
This new API allows applications to calculate the hash value of a given packet for a given table.
Signed-off-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
a3d2c697 |
| 09-Oct-2023 |
Alexander Kozyrev <akozyrev@nvidia.com> |
ethdev: add packet type matching item
Add RTE_FLOW_ITEM_TYPE_PTYPE to allow matching on L2/L3/L4 and tunnel information as defined in mbuf.
To match on RTE_PTYPE_L4_TCP and RTE_PTYPE_INNER_L4_UDP:
ethdev: add packet type matching item
Add RTE_FLOW_ITEM_TYPE_PTYPE to allow matching on L2/L3/L4 and tunnel information as defined in mbuf.
To match on RTE_PTYPE_L4_TCP and RTE_PTYPE_INNER_L4_UDP: flow pattern_template 0 create pattern_template_id 1 ingress template ptype packet_type mask 0x0f000f00 / end flow queue 0 create 0 template_table 1 pattern_template 0 actions_template 0 pattern ptype packet_type is 0x02000100 / end actions queue index 1 / end
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
ef8bd7d0 |
| 08-Oct-2023 |
Dengdui Huang <huangdengdui@huawei.com> |
app/testpmd: add command to flush multicast MAC addresses
Add command to flush all multicast MAC address Usage: mcast_addr flush <port_id> : flush all multicast MAC address on port_id
Signe
app/testpmd: add command to flush multicast MAC addresses
Add command to flush all multicast MAC address Usage: mcast_addr flush <port_id> : flush all multicast MAC address on port_id
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|