kernel_optimize_test/samples/pktgen
Martin KaFai Lau 0f06a6787e samples: Add an IPv6 '-6' option to the pktgen scripts
Add a '-6' option to the sample pktgen scripts for sending out
IPv6 packets.

[root@kerneldev010.prn1 ~/pktgen]# ./pktgen_sample03_burst_single_flow.sh -i eth0 -s 64 -d fe80::f652:14ff:fec2:a14c -m f4:52:14:c2:a1:4c -b 32 -6

[root@kerneldev011.prn1 ~]# tcpdump -i eth0 -nn -c3 port 9
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:38:51.815297 IP6 fe80::f652:14ff:fec2:2ad2.9 > fe80::f652:14ff:fec2:a14c.9: UDP, length 16
14:38:51.815311 IP6 fe80::f652:14ff:fec2:2ad2.9 > fe80::f652:14ff:fec2:a14c.9: UDP, length 16
14:38:51.815313 IP6 fe80::f652:14ff:fec2:2ad2.9 > fe80::f652:14ff:fec2:a14c.9: UDP, length 16

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-07-20 22:16:02 -07:00
..
functions.sh pktgen: new pktgen helper functions for samples scripts 2015-05-22 23:59:16 -04:00
parameters.sh samples: Add an IPv6 '-6' option to the pktgen scripts 2016-07-20 22:16:02 -07:00
pktgen_bench_xmit_mode_netif_receive.sh samples: Add an IPv6 '-6' option to the pktgen scripts 2016-07-20 22:16:02 -07:00
pktgen_bench_xmit_mode_queue_xmit.sh samples: Add an IPv6 '-6' option to the pktgen scripts 2016-07-20 22:16:02 -07:00
pktgen_sample01_simple.sh samples: Add an IPv6 '-6' option to the pktgen scripts 2016-07-20 22:16:02 -07:00
pktgen_sample02_multiqueue.sh samples: Add an IPv6 '-6' option to the pktgen scripts 2016-07-20 22:16:02 -07:00
pktgen_sample03_burst_single_flow.sh samples: Add an IPv6 '-6' option to the pktgen scripts 2016-07-20 22:16:02 -07:00
pktgen_sample04_many_flows.sh pktgen: add sample script pktgen_sample04_many_flows.sh 2016-07-14 15:19:51 -07:00
pktgen_sample05_flow_per_thread.sh pktgen: add sample script pktgen_sample05_flow_per_thread.sh 2016-07-14 15:19:51 -07:00
pktgen.conf-1-1-ip6 samples/pktgen: Show the results rather than just commenting where they are 2015-02-23 22:04:25 -05:00
pktgen.conf-1-1-ip6-rdos samples/pktgen: Show the results rather than just commenting where they are 2015-02-23 22:04:25 -05:00
pktgen.conf-1-2 samples/pktgen: Show the results rather than just commenting where they are 2015-02-23 22:04:25 -05:00
README.rst pktgen: new pktgen helper functions for samples scripts 2015-05-22 23:59:16 -04: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.txt

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
  -m : ($DST_MAC)   destination MAC-addr
  -t : ($THREADS)   threads to start
  -c : ($SKB_CLONE) SKB clones send before alloc new SKB
  -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.