blob: ff8929da61c5a39b49871fb18da2bc066c0bf221 [file] [log] [blame]
Jesper Dangaard Brouerb64b0d12015-05-21 12:17:19 +02001Sample and benchmark scripts for pktgen (packet generator)
2==========================================================
3This directory contains some pktgen sample and benchmark scripts, that
4can easily be copied and adjusted for your own use-case.
5
6General doc is located in kernel: Documentation/networking/pktgen.txt
7
8Helper include files
9====================
10This directory contains two helper shell files, that can be "included"
11by shell source'ing. Namely "functions.sh" and "parameters.sh".
12
13Common parameters
14-----------------
15The parameters.sh file support easy and consistant parameter parsing
16across the sample scripts. Usage example is printed on errors::
17
18 Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX
19 -i : ($DEV) output interface/device (required)
20 -s : ($PKT_SIZE) packet size
21 -d : ($DEST_IP) destination IP
22 -m : ($DST_MAC) destination MAC-addr
23 -t : ($THREADS) threads to start
Tariq Toukane0e16672017-06-15 19:07:22 +030024 -f : ($F_THREAD) index of first thread (zero indexed CPU number)
Jesper Dangaard Brouerb64b0d12015-05-21 12:17:19 +020025 -c : ($SKB_CLONE) SKB clones send before alloc new SKB
Tariq Toukan69137ea2017-06-15 19:07:21 +030026 -n : ($COUNT) num messages to send per thread, 0 means indefinitely
Jesper Dangaard Brouerb64b0d12015-05-21 12:17:19 +020027 -b : ($BURST) HW level bursting of SKBs
28 -v : ($VERBOSE) verbose
29 -x : ($DEBUG) debug
30
31The global variable being set is also listed. E.g. the required
32interface/device parameter "-i" sets variable $DEV.
33
34Common functions
35----------------
36The functions.sh file provides; Three different shell functions for
37configuring the different components of pktgen: pg_ctrl(), pg_thread()
38and pg_set().
39
40These functions correspond to pktgens different components.
41 * pg_ctrl() control "pgctrl" (/proc/net/pktgen/pgctrl)
42 * pg_thread() control the kernel threads and binding to devices
43 * pg_set() control setup of individual devices
44
45See sample scripts for usage examples.