samples/pktgen: Add sample scripts for pktgen facility
These are Robert Olsson's samples which used to be available from <ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/examples/> but currently are not. Change the documentation to refer to these consistently as 'sample scripts', matching the directory name used here. Cc: Robert Olsson <robert@herjulf.se> Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
ca5b542cce
Коммит
7c95a9d962
|
@ -92,8 +92,8 @@ Result: OK: 13101142(c12220741+d880401) usec, 10000000 (60byte,0frags)
|
||||||
|
|
||||||
Configuring threads and devices
|
Configuring threads and devices
|
||||||
================================
|
================================
|
||||||
This is done via the /proc interface, and most easily done via pgset in
|
This is done via the /proc interface, and most easily done via pgset
|
||||||
the scripts.
|
as defined in the sample scripts.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
@ -192,11 +192,11 @@ Examples:
|
||||||
pgset "rate 300M" set rate to 300 Mb/s
|
pgset "rate 300M" set rate to 300 Mb/s
|
||||||
pgset "ratep 1000000" set rate to 1Mpps
|
pgset "ratep 1000000" set rate to 1Mpps
|
||||||
|
|
||||||
Example scripts
|
Sample scripts
|
||||||
===============
|
==============
|
||||||
|
|
||||||
A collection of small tutorial scripts for pktgen is in the examples
|
A collection of small tutorial scripts for pktgen is in the
|
||||||
directory:
|
samples/pktgen directory:
|
||||||
|
|
||||||
pktgen.conf-1-1 # 1 CPU 1 dev
|
pktgen.conf-1-1 # 1 CPU 1 dev
|
||||||
pktgen.conf-1-2 # 1 CPU 2 dev
|
pktgen.conf-1-2 # 1 CPU 2 dev
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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 means maximum speed.
|
||||||
|
|
||||||
|
CLONE_SKB="clone_skb 1000000"
|
||||||
|
# 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"
|
||||||
|
pgset "dst 10.10.11.2"
|
||||||
|
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
|
|
@ -0,0 +1,74 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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
|
|
@ -0,0 +1,67 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# Config Start Here -----------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# thread config
|
||||||
|
# Each CPU has own thread. Two CPU exammple. We add eth1, eth2 respectivly.
|
||||||
|
# IPv6. Note increase in minimal packet length
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
CLONE_SKB="clone_skb 1000000"
|
||||||
|
# NIC adds 4 bytes CRC
|
||||||
|
PKT_SIZE="pkt_size 66"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
pgset "dst6 fec0::1"
|
||||||
|
pgset "src6 fec0::2"
|
||||||
|
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
|
|
@ -0,0 +1,70 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# Config Start Here -----------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# thread config
|
||||||
|
# Each CPU has own thread. Two CPU exammple. We add eth1, eth2 respectivly.
|
||||||
|
# IPv6. Note increase in minimal packet length
|
||||||
|
|
||||||
|
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 means maximum speed.
|
||||||
|
|
||||||
|
# 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 66"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
pgset "dst6_min fec0::1"
|
||||||
|
pgset "dst6_max fec0::FFFF:FFFF"
|
||||||
|
|
||||||
|
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
|
|
@ -0,0 +1,71 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
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
|
|
@ -0,0 +1,76 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# Config Start Here -----------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# thread config
|
||||||
|
# One CPU means one thread. One 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 "Adding eth2"
|
||||||
|
pgset "add_device eth2"
|
||||||
|
echo "Setting max_before_softirq 10000"
|
||||||
|
pgset "max_before_softirq 10000"
|
||||||
|
|
||||||
|
|
||||||
|
# device config
|
||||||
|
# delay 0 means maximum speed.
|
||||||
|
|
||||||
|
CLONE_SKB="clone_skb 1000000"
|
||||||
|
# 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"
|
||||||
|
pgset "dst 10.10.11.2"
|
||||||
|
pgset "dst_mac 00:04:23:08:91:dc"
|
||||||
|
|
||||||
|
PGDEV=/proc/net/pktgen/eth2
|
||||||
|
echo "Configuring $PGDEV"
|
||||||
|
pgset "$COUNT"
|
||||||
|
pgset "$CLONE_SKB"
|
||||||
|
pgset "$PKT_SIZE"
|
||||||
|
pgset "$DELAY"
|
||||||
|
pgset "dst 192.168.2.2"
|
||||||
|
pgset "dst_mac 00:04:23:08:91:de"
|
||||||
|
|
||||||
|
# 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/eth[1,2]
|
|
@ -0,0 +1,72 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
# We need to remove old config since we dont use this thread. We can only
|
||||||
|
# one NIC on one CPU due to affinity reasons.
|
||||||
|
|
||||||
|
PGDEV=/proc/net/pktgen/kpktgend_1
|
||||||
|
echo "Removing all devices"
|
||||||
|
pgset "rem_device_all"
|
||||||
|
|
||||||
|
# device config
|
||||||
|
# delay 0 means maximum speed.
|
||||||
|
|
||||||
|
CLONE_SKB="clone_skb 1000000"
|
||||||
|
# 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"
|
||||||
|
pgset "dst 10.10.11.2"
|
||||||
|
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
|
|
@ -0,0 +1,82 @@
|
||||||
|
#! /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
|
||||||
|
}
|
||||||
|
|
||||||
|
function pg() {
|
||||||
|
echo inject > $PGDEV
|
||||||
|
cat $PGDEV
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
PGDEV=/proc/net/pktgen/kpktgend_1
|
||||||
|
echo "Removing all devices"
|
||||||
|
pgset "rem_device_all"
|
||||||
|
echo "Adding eth2"
|
||||||
|
pgset "add_device eth2"
|
||||||
|
echo "Setting max_before_softirq 10000"
|
||||||
|
pgset "max_before_softirq 10000"
|
||||||
|
|
||||||
|
|
||||||
|
# device config
|
||||||
|
# delay 0 means maximum speed.
|
||||||
|
|
||||||
|
CLONE_SKB="clone_skb 1000000"
|
||||||
|
# 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"
|
||||||
|
pgset "dst 10.10.11.2"
|
||||||
|
pgset "dst_mac 00:04:23:08:91:dc"
|
||||||
|
|
||||||
|
PGDEV=/proc/net/pktgen/eth2
|
||||||
|
echo "Configuring $PGDEV"
|
||||||
|
pgset "$COUNT"
|
||||||
|
pgset "$CLONE_SKB"
|
||||||
|
pgset "$PKT_SIZE"
|
||||||
|
pgset "$DELAY"
|
||||||
|
pgset "dst 192.168.2.2"
|
||||||
|
pgset "dst_mac 00:04:23:08:91:de"
|
||||||
|
|
||||||
|
# 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/eth[1,2]
|
Загрузка…
Ссылка в новой задаче