40f843ee5e
Currently, kernel pktgen has the feature to specify destination address range for sending packet. (e.g. pgset "dst_min/dst_max") But on samples, each pktgen script doesn't have any option to achieve this. This commit adds the feature to specify the destination address range with CIDR. -d : ($DEST_IP) destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed # ./pktgen_sample01_simple.sh -6 -d fe80::20/126 -p 3000 -n 4 # tcpdump ip6 and udp 05:14:18.082285 IP6 fe80::99.71 > fe80::23.3000: UDP, length 16 05:14:18.082564 IP6 fe80::99.43 > fe80::23.3000: UDP, length 16 05:14:18.083366 IP6 fe80::99.107 > fe80::22.3000: UDP, length 16 05:14:18.083585 IP6 fe80::99.97 > fe80::21.3000: UDP, length 16 Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
functions.sh | ||
parameters.sh | ||
pktgen_bench_xmit_mode_netif_receive.sh | ||
pktgen_bench_xmit_mode_queue_xmit.sh | ||
pktgen_sample01_simple.sh | ||
pktgen_sample02_multiqueue.sh | ||
pktgen_sample03_burst_single_flow.sh | ||
pktgen_sample04_many_flows.sh | ||
pktgen_sample05_flow_per_thread.sh | ||
pktgen_sample06_numa_awared_queue_irq_affinity.sh | ||
README.rst |
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. 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.