History log of /dpdk/usertools/dpdk-rss-flows.py (Results 1 – 6 of 6)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# c1d14583 24-Jan-2025 Bruce Richardson <bruce.richardson@intel.com>

net/intel: move Intel drivers to a subdirectory

Consolidate all Intel HW NIC drivers into a drivers/net/intel directory.
This matches the layout used for drivers in the kernel, and potentially
enabl

net/intel: move Intel drivers to a subdirectory

Consolidate all Intel HW NIC drivers into a drivers/net/intel directory.
This matches the layout used for drivers in the kernel, and potentially
enables easier sharing among drivers.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Praveen Shetty <praveen.shetty@intel.com>

show more ...


Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2, v24.11-rc1, 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, v23.11, v23.11-rc4
# 202e5b2b 20-Nov-2023 Robin Jarry <rjarry@redhat.com>

usertools/rss: add cnxk default key

Add default RSS key for CNXK platforms.
CNXK platform uses 48 bytes long key for hash calculations
and a default RETA size of 64.

Example:

~$ usertools/dpdk-r

usertools/rss: add cnxk default key

Add default RSS key for CNXK platforms.
CNXK platform uses 48 bytes long key for hash calculations
and a default RETA size of 64.

Example:

~$ usertools/dpdk-rss-flows.py 8 28.0.0.0/24 40.0.0.0/24 -k cnxk
SRC_IP DST_IP QUEUE
28.0.0.1 40.0.0.1 7
28.0.0.1 40.0.0.2 2
28.0.0.1 40.0.0.3 4
28.0.0.1 40.0.0.7 1
28.0.0.1 40.0.0.8 3
28.0.0.1 40.0.0.9 5
28.0.0.1 40.0.0.10 0
28.0.0.1 40.0.0.11 6

Suggested-by: Sunil Kumar Kori <skori@marvell.com>
Signed-off-by: Robin Jarry <rjarry@redhat.com>
Acked-by: Sunil Kumar Kori <skori@marvell.com>

show more ...


# bfdf091c 20-Nov-2023 Robin Jarry <rjarry@redhat.com>

usertools/rss: add --info flag

Add a flag to print the RSS key and RETA size that are used to compute
balanced traffic. Example:

$ usertools/dpdk-rss-flows.py -i 4 1.0.0.0 2.2.0.0/24 -k mlx
RSS k

usertools/rss: add --info flag

Add a flag to print the RSS key and RETA size that are used to compute
balanced traffic. Example:

$ usertools/dpdk-rss-flows.py -i 4 1.0.0.0 2.2.0.0/24 -k mlx
RSS key: 2cc681d15bdbf4f7fca28319db1a3e946b9e38d92c9c03d1ad9944a7d…
RETA size: 4

SRC_IP DST_IP QUEUE
1.0.0.0 2.2.0.1 2
1.0.0.0 2.2.0.2 0
1.0.0.0 2.2.0.4 1
1.0.0.0 2.2.0.6 3

The flag is only available with the default text output.

Signed-off-by: Robin Jarry <rjarry@redhat.com>
Acked-by: Sunil Kumar Kori <skori@marvell.com>

show more ...


# a9c28754 20-Nov-2023 Robin Jarry <rjarry@redhat.com>

usertools/rss: add driver abstractions

The default RETA size is not the same for all drivers. In some drivers
(mlx5), the RETA size may also be dependent on the number of RX queues.

Introduce a new

usertools/rss: add driver abstractions

The default RETA size is not the same for all drivers. In some drivers
(mlx5), the RETA size may also be dependent on the number of RX queues.

Introduce a new DriverInfo abstraction for known keys. Define a simple
API to expose the RSS key and RETA size (based on the number of RX
queues).

Use that abstraction for all three known keys.

Signed-off-by: Robin Jarry <rjarry@redhat.com>
Acked-by: Sunil Kumar Kori <skori@marvell.com>

show more ...


Revision tags: v23.11-rc3, v23.11-rc2, v23.11-rc1, v23.07
# 1cbed65d 20-Jul-2023 Robin Jarry <rjarry@redhat.com>

usertools/rss: fix byte order of default i40e key

The key is represented as uint32 words in the driver source code but it
is actually stored as little endian in the NIC registers. Fix the byte
order

usertools/rss: fix byte order of default i40e key

The key is represented as uint32 words in the driver source code but it
is actually stored as little endian in the NIC registers. Fix the byte
ordering in the python script.

Fixes: 106a231ae528 ("usertools: add tool to generate balanced rss traffic flows")

Reported-by: Abhiram R N <arn@redhat.com>
Signed-off-by: Robin Jarry <rjarry@redhat.com>

show more ...


Revision tags: v23.07-rc4, v23.07-rc3
# 9f4acbc6 28-Jun-2023 Robin Jarry <rjarry@redhat.com>

usertools/rss: generate balanced RSS traffic flows

usage: dpdk-rss-flows.py [-h] [-s SPORT_RANGE] [-d DPORT_RANGE] [-r]
[-k RSS_KEY] [-t RETA_SIZE] [-a] [-j]

usertools/rss: generate balanced RSS traffic flows

usage: dpdk-rss-flows.py [-h] [-s SPORT_RANGE] [-d DPORT_RANGE] [-r]
[-k RSS_KEY] [-t RETA_SIZE] [-a] [-j]
RX_QUEUES SRC DST

Craft IP{v6}/{TCP/UDP} traffic flows that will evenly spread over a
given number of RX queues according to the RSS algorithm.

positional arguments:
RX_QUEUES The number of RX queues to fill.
SRC The source IP network/address.
DST The destination IP network/address.

options:
-h, --help show this help message and exit
-s SPORT_RANGE, --sport-range SPORT_RANGE
The layer 4 (TCP/UDP) source port range. Can
be a single fixed value or a range
<start>-<end>.
-d DPORT_RANGE, --dport-range DPORT_RANGE
The layer 4 (TCP/UDP) destination port range.
Can be a single fixed value or a range
<start>-<end>.
-r, --check-reverse-traffic
The reversed traffic (source <-> dest) should
also be evenly balanced in the queues.
-k RSS_KEY, --rss-key RSS_KEY
The random 40-bytes key used to compute the
RSS hash. This option supports either a well-
known name or the hex value of the key (well-
known names: "intel", "mlx", default:
"intel").
-t RETA_SIZE, --reta-size RETA_SIZE
Size of the redirection table or "RETA"
(default: 128).
-a, --all-flows Output ALL flows that can be created based on
source and destination address/port ranges
along their matched queue number. ATTENTION:
this option can produce very long outputs
depending on the address and port range sizes.
-j, --json Output in parseable JSON format.

Examples:

~$ dpdk-rss-flows.py 8 28.0.0.0/24 40.0.0.0/24
SRC_IP DST_IP QUEUE
28.0.0.1 40.0.0.1 5
28.0.0.1 40.0.0.2 4
28.0.0.1 40.0.0.3 2
28.0.0.1 40.0.0.6 3
28.0.0.1 40.0.0.8 0
28.0.0.1 40.0.0.9 6
28.0.0.1 40.0.0.10 7
28.0.0.1 40.0.0.11 1

~$ dpdk-rss-flows.py 8 28.0.0.0/24 40.0.0.0/24 -r
SRC_IP DST_IP QUEUE QUEUE_REVERSE
28.0.0.1 40.0.0.1 5 3
28.0.0.1 40.0.0.2 4 2
28.0.0.1 40.0.0.8 0 6
28.0.0.1 40.0.0.9 6 7
28.0.0.1 40.0.0.16 2 4
28.0.0.1 40.0.0.19 3 5
28.0.0.1 40.0.0.24 1 0
28.0.0.1 40.0.0.25 7 1

~$ dpdk-rss-flows.py 8 28.0.0.0/24 40.0.0.0/24 -s 32000-64000 -d 53
SRC_IP SPORT DST_IP DPORT QUEUE
28.0.0.1 32000 40.0.0.1 53 0
28.0.0.1 32001 40.0.0.1 53 1
28.0.0.1 32004 40.0.0.1 53 4
28.0.0.1 32005 40.0.0.1 53 5
28.0.0.1 32008 40.0.0.1 53 2
28.0.0.1 32009 40.0.0.1 53 3
28.0.0.1 32012 40.0.0.1 53 6
28.0.0.1 32013 40.0.0.1 53 7

~$ dpdk-rss-flows.py 4 2a01:cb00:f8b:9700::/64 2620:52:0:2592::/64 -rj
[
{
"queue": 0,
"queue_reverse": 3,
"src_ip": "2a01:cb00:f8b:9700::1",
"dst_ip": "2620:52:0:2592::1",
"src_port": 0,
"dst_port": 0
},
{
"queue": 3,
"queue_reverse": 0,
"src_ip": "2a01:cb00:f8b:9700::1",
"dst_ip": "2620:52:0:2592::2",
"src_port": 0,
"dst_port": 0
},
{
"queue": 2,
"queue_reverse": 1,
"src_ip": "2a01:cb00:f8b:9700::1",
"dst_ip": "2620:52:0:2592::3",
"src_port": 0,
"dst_port": 0
},
{
"queue": 1,
"queue_reverse": 2,
"src_ip": "2a01:cb00:f8b:9700::1",
"dst_ip": "2620:52:0:2592::1a",
"src_port": 0,
"dst_port": 0
}
]

Signed-off-by: Robin Jarry <rjarry@redhat.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

show more ...