History log of /dpdk/doc/guides/testpmd_app_ug/testpmd_funcs.rst (Results 1 – 25 of 364)
Revision Date Author Comments
# 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 ...


12345678910>>...15