examples/l3fwd: sync cli options with documentation
PATCH 1/1 examples/l3fwd: sync cli options with documentation
Synchronize options between print_usage() in main.c and the sample app guide documentation (l3_forward.rst).
Specifically:
- Add missing options to print_usage() synopsis: --eth-link-speed, --disable-rss, --relax-rx-offload, --event-eth-rxqs, and --alg.
- Add missing option descriptions in print_usage(): --disable-rss and --relax-rx-offload.
- Add missing options to l3_forward.rst: --eth-link-speed, --rx-queue-size, --tx-queue-size, --mbcache, --disable-rss, --relax-rx-offload, and --alg.
- Remove obsolete --hash-entry-num from l3_forward.rst as the option has been ignored since commit f5251734c5e1 ("examples/l3fwd: remove hash entry number").
All 25 active long options are now fully documented and aligned across main.c and l3_forward.rst.
Doing a pass of all the options shows main.c >= 2 and rst >= 2 for each of them, proving no more omissions exist now.
$ for opt in $(grep -oP '#define CMD_(LINE|LINK)_OPT_\w+\s+"\K[^"]+' \
examples/l3fwd/main.c | grep -v 'hash-entry-num'); do
printf "%-20s: main.c: %2d, rst: %2d\n" "$opt" \
"$(grep -c -- "--$opt" examples/l3fwd/main.c)" \
"$(grep -c -- "--$opt" doc/guides/sample_app_ug/l3_forward.rst)"
done
config : main.c: 2, rst: 5
eth-link-speed : main.c: 2, rst: 2
rx-queue-size : main.c: 2, rst: 2
tx-queue-size : main.c: 2, rst: 2
eth-dest : main.c: 2, rst: 2
no-numa : main.c: 2, rst: 2
ipv6 : main.c: 2, rst: 3
max-pkt-len : main.c: 2, rst: 2
parse-ptype : main.c: 2, rst: 2
disable-rss : main.c: 2, rst: 2
relax-rx-offload : main.c: 2, rst: 2
per-port-pool : main.c: 2, rst: 2
mode : main.c: 4, rst: 8
eventq-sched : main.c: 2, rst: 6
event-eth-rxqs : main.c: 2, rst: 2
lookup : main.c: 4, rst: 4
event-vector : main.c: 4, rst: 4
event-vector-size : main.c: 2, rst: 2
event-vector-tmo : main.c: 2, rst: 2
rule_ipv4 : main.c: 2, rst: 6
rule_ipv6 : main.c: 2, rst: 6
alg : main.c: 2, rst: 2
rx-burst : main.c: 2, rst: 2
tx-burst : main.c: 2, rst: 2
mbcache : main.c: 2, rst: 2Bugzilla ID: 545
--- .mailmap | 1 + doc/guides/sample_app_ug/l3_forward.rst | 28 +++++++++++++++++++------ examples/l3fwd/main.c | 7 +++++++ 3 files changed, 30 insertions(+), 6 deletions(-)
.mailmap +1 -0
@@ -115,6 +115,7 @@ Andre Richter <[email protected]> Andrea Arcangeli <[email protected]> Andrea Grandi <[email protected]> Andrea Panattoni <[email protected]> +Andrei-Niculae Petre <[email protected]> <[email protected]> Andrew Bailey <[email protected]> Andrew Boyer <[email protected]> <[email protected]> Andrew Harvey <[email protected]>
doc/guides/sample_app_ug/l3_forward.rst +22 -6
@@ -77,19 +77,25 @@ The application has a number of command line options:: [-P] [--lookup LOOKUP_METHOD] --config(port,queue,lcore)[,(port,queue,lcore)] + [--eth-link-speed SPEED] + [--rx-queue-size NPKTS] + [--tx-queue-size NPKTS] [--rx-burst NPKTS] [--tx-burst NPKTS] + [--mbcache CACHESZ] [--eth-dest=X,MM:MM:MM:MM:MM:MM] [--max-pkt-len PKTLEN] [--no-numa] - [--hash-entry-num] [--ipv6] [--parse-ptype] + [--disable-rss] + [--relax-rx-offload] [--per-port-pool] [--mode] [--eventq-sched] [--event-eth-rxqs] [--event-vector [--event-vector-size SIZE] [--event-vector-tmo NS]] + [--alg ALG] [-E] [-L]
@@ -115,22 +121,35 @@ Where, * ``--config (port,queue,lcore)[,(port,queue,lcore)]:`` Determines which queues from which ports are mapped to which cores. +* ``--eth-link-speed SPEED:`` Optional, forces link speed (e.g. 10, 100, 1000, 10000 Mbps). + +* ``--rx-queue-size NPKTS:`` Optional, sets the number of Rx descriptors per queue (default 1024). + +* ``--tx-queue-size NPKTS:`` Optional, sets the number of Tx descriptors per queue (default 1024). + * ``--rx-burst NPKTS:`` Optional, Rx burst size in decimal (default 32). * ``--tx-burst NPKTS:`` Optional, Tx burst size in decimal (default 32). +* ``--mbcache CACHESZ:`` Optional, sets the mbuf pool cache size per lcore (default 512). + * ``--eth-dest=X,MM:MM:MM:MM:MM:MM:`` Optional, ethernet destination for port X. * ``--max-pkt-len:`` Optional, maximum packet length in decimal (64-9600). * ``--no-numa:`` Optional, disables numa awareness. -* ``--hash-entry-num:`` Optional, specifies the hash entry number in hexadecimal to be setup. - * ``--ipv6:`` Optional, set if running ipv6 packets. * ``--parse-ptype:`` Optional, set to use software to analyze packet type. Without this option, hardware will check the packet type. +* ``--disable-rss:`` Optional, disables RSS (Receive Side Scaling). + +* ``--relax-rx-offload:`` Optional, relaxes Rx offload requirements based on device + capabilities. When requested offloads (such as IPv4 checksum offload) are not supported + by the device (e.g., virtual devices such as ``vhost``, ``virtio``, or ``pcap``), + unsupported offloads are masked off and software validation is enabled. + * ``--per-port-pool:`` Optional, set to use independent buffer pools per port. Without this option, single buffer pool is used for all ports. * ``--mode:`` Optional, Packet transfer mode for I/O, poll or eventdev.
@@ -321,9 +340,6 @@ for the convenience to execute hash performance test on 4M/8M/16M flows. .. note:: Value of global variable ipv6 can be specified with --ipv6 in the command line. - Value of global variable hash_entry_number, - which is used to specify the total hash entry number for all used ports in hash performance test, - can be specified with --hash-entry-num VALUE in command line, being its default value 4. .. code-block:: c
examples/l3fwd/main.c +7 -0
@@ -397,6 +397,7 @@ print_usage(const char *prgname)" [-P]" " [--lookup]" " --config (port,queue,lcore)[,(port,queue,lcore)]" +" [--eth-link-speed SPEED]" " [--rx-queue-size NPKTS]" " [--tx-queue-size NPKTS]" " [--rx-burst NPKTS]"
@@ -407,12 +408,16 @@ print_usage(const char *prgname) " [--no-numa]" " [--ipv6]" " [--parse-ptype]" + " [--disable-rss]" + " [--relax-rx-offload]" " [--per-port-pool]" " [--mode]" #ifdef RTE_LIB_EVENTDEV " [--eventq-sched]" + " [--event-eth-rxqs]" " [--event-vector [--event-vector-size SIZE] [--event-vector-tmo NS]]" #endif +" [--alg ALG]" " [-E]" " [-L]\n\n"
@@ -439,6 +444,8 @@ print_usage(const char *prgname)" --no-numa: Disable numa awareness\n" " --ipv6: Set if running ipv6 packets\n" " --parse-ptype: Set to use software to analyze packet type\n" +" --disable-rss: Disable RSS\n" +" --relax-rx-offload: Relax Rx offload mode\n" " --per-port-pool: Use separate buffer pool per port\n" " --mode: Packet transfer mode for I/O, poll or eventdev\n" " Default mode = poll\n"
Signature · 1 line
2.39.5
09/11/2026 01:49, Andrei-Niculae Petre:
Quoted 2 lines
Synchronize options between
print_usage()inmain.cand the sample app guide documentation (l3_forward.rst).
Comments from AI:
- The parser explicitly rejects 10 and 100 Mbps,
so these examples should be removed.
--relax-rx-offload masks unsupported offloads
but does not enable software validation on all forwarding paths.