mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 20:53:53 +08:00
70 lines
1.3 KiB
Plaintext
70 lines
1.3 KiB
Plaintext
|
#! /bin/sh
|
||
|
|
||
|
#modprobe pktgen
|
||
|
|
||
|
|
||
|
function pgset() {
|
||
|
local result
|
||
|
|
||
|
echo $1 > $PGDEV
|
||
|
|
||
|
result=`cat $PGDEV | fgrep "Result: OK:"`
|
||
|
if [ "$result" = "" ]; then
|
||
|
cat $PGDEV | fgrep Result:
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# Config Start Here -----------------------------------------------------------
|
||
|
|
||
|
|
||
|
# thread config
|
||
|
# Each CPU has own thread. Two CPU exammple. We add eth1, eth2 respectivly.
|
||
|
|
||
|
PGDEV=/proc/net/pktgen/kpktgend_0
|
||
|
echo "Removing all devices"
|
||
|
pgset "rem_device_all"
|
||
|
echo "Adding eth1"
|
||
|
pgset "add_device eth1"
|
||
|
echo "Setting max_before_softirq 10000"
|
||
|
pgset "max_before_softirq 10000"
|
||
|
|
||
|
|
||
|
# device config
|
||
|
# delay 0
|
||
|
# We need to do alloc for every skb since we cannot clone here.
|
||
|
|
||
|
CLONE_SKB="clone_skb 0"
|
||
|
# NIC adds 4 bytes CRC
|
||
|
PKT_SIZE="pkt_size 60"
|
||
|
|
||
|
# COUNT 0 means forever
|
||
|
#COUNT="count 0"
|
||
|
COUNT="count 10000000"
|
||
|
DELAY="delay 0"
|
||
|
|
||
|
PGDEV=/proc/net/pktgen/eth1
|
||
|
echo "Configuring $PGDEV"
|
||
|
pgset "$COUNT"
|
||
|
pgset "$CLONE_SKB"
|
||
|
pgset "$PKT_SIZE"
|
||
|
pgset "$DELAY"
|
||
|
# Random address with in the min-max range
|
||
|
pgset "flag IPDST_RND"
|
||
|
pgset "dst_min 10.0.0.0"
|
||
|
pgset "dst_max 10.255.255.255"
|
||
|
|
||
|
# 8k Concurrent flows at 4 pkts
|
||
|
pgset "flows 8192"
|
||
|
pgset "flowlen 4"
|
||
|
|
||
|
pgset "dst_mac 00:04:23:08:91:dc"
|
||
|
|
||
|
# Time to run
|
||
|
PGDEV=/proc/net/pktgen/pgctrl
|
||
|
|
||
|
echo "Running... ctrl^C to stop"
|
||
|
pgset "start"
|
||
|
echo "Done"
|
||
|
|
||
|
# Result can be vieved in /proc/net/pktgen/eth1
|