forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]> Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>
- Loading branch information
Showing
9 changed files
with
584 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
Oops, something went wrong.