mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
net: samples: pktgen mode samples/tests for qdisc layer
This adds samples for pktgen to use with new mode to inject pkts into the qdisc layer. This also doubles as nice test cases to test any patches against qdisc layer. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0967f24459
commit
6fd980ac39
66
samples/pktgen/pktgen_bench_xmit_mode_queue_xmit.sh
Executable file
66
samples/pktgen/pktgen_bench_xmit_mode_queue_xmit.sh
Executable file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Benchmark script:
|
||||
# - developed for benchmarking egress qdisc path, derived (more
|
||||
# like cut'n'pasted) from ingress benchmark script.
|
||||
#
|
||||
# Script for injecting packets into egress qdisc path of the stack
|
||||
# with pktgen "xmit_mode queue_xmit".
|
||||
#
|
||||
basedir=`dirname $0`
|
||||
source ${basedir}/functions.sh
|
||||
root_check_run_with_sudo "$@"
|
||||
|
||||
# Parameter parsing via include
|
||||
source ${basedir}/parameters.sh
|
||||
[ -z "$DEST_IP" ] && DEST_IP="198.18.0.42"
|
||||
[ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff"
|
||||
|
||||
# Burst greater than 1 are invalid for queue_xmit mode
|
||||
if [[ -n "$BURST" ]]; then
|
||||
err 1 "Bursting not supported for this mode"
|
||||
fi
|
||||
|
||||
# Base Config
|
||||
DELAY="0" # Zero means max speed
|
||||
COUNT="10000000" # Zero means indefinitely
|
||||
|
||||
# General cleanup everything since last run
|
||||
pg_ctrl "reset"
|
||||
|
||||
# Threads are specified with parameter -t value in $THREADS
|
||||
for ((thread = 0; thread < $THREADS; thread++)); do
|
||||
# The device name is extended with @name, using thread number to
|
||||
# make then unique, but any name will do.
|
||||
dev=${DEV}@${thread}
|
||||
|
||||
# Add remove all other devices and add_device $dev to thread
|
||||
pg_thread $thread "rem_device_all"
|
||||
pg_thread $thread "add_device" $dev
|
||||
|
||||
# Base config of dev
|
||||
pg_set $dev "flag QUEUE_MAP_CPU"
|
||||
pg_set $dev "count $COUNT"
|
||||
pg_set $dev "pkt_size $PKT_SIZE"
|
||||
pg_set $dev "delay $DELAY"
|
||||
pg_set $dev "flag NO_TIMESTAMP"
|
||||
|
||||
# Destination
|
||||
pg_set $dev "dst_mac $DST_MAC"
|
||||
pg_set $dev "dst $DEST_IP"
|
||||
|
||||
# Inject packet into TX qdisc egress path of stack
|
||||
pg_set $dev "xmit_mode queue_xmit"
|
||||
done
|
||||
|
||||
# start_run
|
||||
echo "Running... ctrl^C to stop" >&2
|
||||
pg_ctrl "start"
|
||||
echo "Done" >&2
|
||||
|
||||
# Print results
|
||||
for ((thread = 0; thread < $THREADS; thread++)); do
|
||||
dev=${DEV}@${thread}
|
||||
echo "Device: $dev"
|
||||
cat /proc/net/pktgen/$dev | grep -A2 "Result:"
|
||||
done
|
Loading…
Reference in New Issue
Block a user