65 lines · plain
1Sample and benchmark scripts for pktgen (packet generator)2==========================================================3This directory contains some pktgen sample and benchmark scripts, that4can easily be copied and adjusted for your own use-case.5 6General doc is located in kernel: Documentation/networking/pktgen.rst7 8Helper include files9====================10This directory contains two helper shell files, that can be "included"11by shell source'ing. Namely "functions.sh" and "parameters.sh".12 13Common parameters14-----------------15The parameters.sh file support easy and consistant parameter parsing16across the sample scripts. Usage example is printed on errors::17 18 Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX19 -i : ($DEV) output interface/device (required)20 -s : ($PKT_SIZE) packet size21 -d : ($DEST_IP) destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed22 -m : ($DST_MAC) destination MAC-addr23 -p : ($DST_PORT) destination PORT range (e.g. 433-444) is also allowed24 -t : ($THREADS) threads to start25 -f : ($F_THREAD) index of first thread (zero indexed CPU number)26 -c : ($SKB_CLONE) SKB clones send before alloc new SKB27 -n : ($COUNT) num messages to send per thread, 0 means indefinitely28 -b : ($BURST) HW level bursting of SKBs29 -v : ($VERBOSE) verbose30 -x : ($DEBUG) debug31 -6 : ($IP6) IPv632 -w : ($DELAY) Tx Delay value (ns)33 -a : ($APPEND) Script will not reset generator's state, but will append its config34 35The global variable being set is also listed. E.g. the required36interface/device parameter "-i" sets variable $DEV.37 38"-a" parameter may be used to create different flows simultaneously.39In this mode script will keep the existing config, will append its settings.40In this mode you'll have to manually run traffic with "pg_ctrl start".41 42For example you may use:43 44 source ./samples/pktgen/functions.sh45 pg_ctrl reset46 # add first device47 ./pktgen_sample06_numa_awared_queue_irq_affinity.sh -a -i ens1f0 -m 34:80:0d:a3:fc:c9 -t 848 # add second device49 ./pktgen_sample06_numa_awared_queue_irq_affinity.sh -a -i ens1f1 -m 34:80:0d:a3:fc:c9 -t 850 # run joint traffic on two devs51 pg_ctrl start52 53Common functions54----------------55The functions.sh file provides; Three different shell functions for56configuring the different components of pktgen: pg_ctrl(), pg_thread()57and pg_set().58 59These functions correspond to pktgens different components.60 * pg_ctrl() control "pgctrl" (/proc/net/pktgen/pgctrl)61 * pg_thread() control the kernel threads and binding to devices62 * pg_set() control setup of individual devices63 64See sample scripts for usage examples.65