1#!/bin/bash
2
3#modprobe pktgen
4
5
6function pgset() {
7    local result
8
9    echo $1 > $PGDEV
10
11    result=`cat $PGDEV | fgrep "Result: OK:"`
12    if [ "$result" = "" ]; then
13         cat $PGDEV | fgrep Result:
14    fi
15}
16
17# Config Start Here -----------------------------------------------------------
18
19
20# thread config
21# Each CPU has its own thread. Two CPU example. We add eth1 to the first
22# and leave the second idle.
23
24PGDEV=/proc/net/pktgen/kpktgend_0
25  echo "Removing all devices"
26 pgset "rem_device_all"
27  echo "Adding eth1"
28 pgset "add_device eth1"
29
30# We need to remove old config since we dont use this thread. We can only
31# one NIC on one CPU due to affinity reasons.
32
33PGDEV=/proc/net/pktgen/kpktgend_1
34  echo "Removing all devices"
35 pgset "rem_device_all"
36
37# device config
38# delay 0 means maximum speed.
39
40CLONE_SKB="clone_skb 1000000"
41# NIC adds 4 bytes CRC
42PKT_SIZE="pkt_size 60"
43
44# COUNT 0 means forever
45#COUNT="count 0"
46COUNT="count 10000000"
47DELAY="delay 0"
48
49PGDEV=/proc/net/pktgen/eth1
50  echo "Configuring $PGDEV"
51 pgset "$COUNT"
52 pgset "$CLONE_SKB"
53 pgset "$PKT_SIZE"
54 pgset "$DELAY"
55 pgset "dst 10.10.11.2"
56 pgset "dst_mac  00:04:23:08:91:dc"
57
58
59# Time to run
60PGDEV=/proc/net/pktgen/pgctrl
61
62 echo "Running... ctrl^C to stop"
63 trap true INT
64 pgset "start"
65 echo "Done"
66 cat /proc/net/pktgen/eth1
67