linux-stable/samples/pktgen
Juhee Kang d993a6f137 samples: pktgen: add missing IPv6 option to pktgen scripts
[ Upstream commit 0f0c4f1b72 ]

Currently, "sample04" and "sample05" are not working properly when
running with an IPv6 option("-6"). The commit 0f06a6787e ("samples:
Add an IPv6 "-6" option to the pktgen scripts") has omitted the addition
of this option at "sample04" and "sample05".

In order to support IPv6 option, this commit adds logic related to IPv6
option.

Fixes: 0f06a6787e ("samples: Add an IPv6 "-6" option to the pktgen scripts")

Signed-off-by: Juhee Kang <claudiajkang@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-15 09:50:40 +02:00
..
functions.sh samples: pktgen: add helper functions for IP(v4/v6) CIDR parsing 2019-10-07 09:26:32 -04:00
parameters.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
pktgen_bench_xmit_mode_netif_receive.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
pktgen_bench_xmit_mode_queue_xmit.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
pktgen_sample01_simple.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
pktgen_sample02_multiqueue.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
pktgen_sample03_burst_single_flow.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
pktgen_sample04_many_flows.sh samples: pktgen: add missing IPv6 option to pktgen scripts 2021-09-15 09:50:40 +02:00
pktgen_sample05_flow_per_thread.sh samples: pktgen: add missing IPv6 option to pktgen scripts 2021-09-15 09:50:40 +02:00
pktgen_sample06_numa_awared_queue_irq_affinity.sh samples: pktgen: allow to specify destination IP range (CIDR) 2019-10-07 09:26:32 -04:00
README.rst docs: networking: convert pktgen.txt to ReST 2020-04-30 12:56:37 -07:00

Sample and benchmark scripts for pktgen (packet generator)
==========================================================
This directory contains some pktgen sample and benchmark scripts, that
can easily be copied and adjusted for your own use-case.

General doc is located in kernel: Documentation/networking/pktgen.rst

Helper include files
====================
This directory contains two helper shell files, that can be "included"
by shell source'ing.  Namely "functions.sh" and "parameters.sh".

Common parameters
-----------------
The parameters.sh file support easy and consistant parameter parsing
across the sample scripts.  Usage example is printed on errors::

 Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX
  -i : ($DEV)       output interface/device (required)
  -s : ($PKT_SIZE)  packet size
  -d : ($DEST_IP)   destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed
  -m : ($DST_MAC)   destination MAC-addr
  -p : ($DST_PORT)  destination PORT range (e.g. 433-444) is also allowed
  -t : ($THREADS)   threads to start
  -f : ($F_THREAD)  index of first thread (zero indexed CPU number)
  -c : ($SKB_CLONE) SKB clones send before alloc new SKB
  -n : ($COUNT)     num messages to send per thread, 0 means indefinitely
  -b : ($BURST)     HW level bursting of SKBs
  -v : ($VERBOSE)   verbose
  -x : ($DEBUG)     debug

The global variable being set is also listed.  E.g. the required
interface/device parameter "-i" sets variable $DEV.

Common functions
----------------
The functions.sh file provides; Three different shell functions for
configuring the different components of pktgen: pg_ctrl(), pg_thread()
and pg_set().

These functions correspond to pktgens different components.
 * pg_ctrl()   control "pgctrl" (/proc/net/pktgen/pgctrl)
 * pg_thread() control the kernel threads and binding to devices
 * pg_set()    control setup of individual devices

See sample scripts for usage examples.