[v2,2/3] usertools/rss: add --info flag

Message ID 20231120162256.74399-5-rjarry@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [v2,1/3] usertools/rss: add driver abstractions |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Robin Jarry Nov. 20, 2023, 4:22 p.m. UTC
  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>
---
 usertools/dpdk-rss-flows.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
  

Comments

Sunil Kumar Kori Nov. 21, 2023, 6:15 a.m. UTC | #1
> -----Original Message-----
> From: Robin Jarry <rjarry@redhat.com>
> Sent: Monday, November 20, 2023 9:53 PM
> To: dev@dpdk.org
> Subject: [EXT] [PATCH v2 2/3] usertools/rss: add --info flag
> 
> External Email
> 
> ----------------------------------------------------------------------
> 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>
> ---
>  usertools/dpdk-rss-flows.py | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
Acked-by: Sunil Kumar Kori <skori@marvell.com>

> --
> 2.42.0
  

Patch

diff --git a/usertools/dpdk-rss-flows.py b/usertools/dpdk-rss-flows.py
index 241ee4fe28c6..fd225a697f08 100755
--- a/usertools/dpdk-rss-flows.py
+++ b/usertools/dpdk-rss-flows.py
@@ -352,6 +352,14 @@  def parse_args():
         Output in parseable JSON format.
         """,
     )
+    parser.add_argument(
+        "-i",
+        "--info",
+        action="store_true",
+        help="""
+        Print RETA size and RSS key above the results. Not available with --json.
+        """,
+    )
 
     args = parser.parse_args()
 
@@ -360,6 +368,9 @@  def parse_args():
             f"{args.ip_src} and {args.ip_dst} don't have the same protocol version"
         )
 
+    if args.json and args.info:
+        parser.error("--json and --info are mutually exclusive")
+
     if args.rss_key in DEFAULT_DRIVERS:
         driver_info = DEFAULT_DRIVERS[args.rss_key]
     else:
@@ -442,6 +453,11 @@  def main():
             cells.append(r)
         rows.append(tuple(cells))
 
+    if args.info:
+        print(f"RSS key:     {binascii.hexlify(args.rss_key).decode()}")
+        print(f"RETA size:   {args.reta_size}")
+        print()
+
     fmt = [f"%-{w}s" for w in widths]
     fmt[-1] = "%s"  # avoid trailing whitespace
     fmt = "    ".join(fmt)