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. One CPU example. We add eth1.
22# IPv6. Note increase in minimal packet length
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
31# device config
32# delay 0 means maximum speed.
33
34# We need to do alloc for every skb since we cannot clone here.
35CLONE_SKB="clone_skb 0"
36
37# NIC adds 4 bytes CRC
38PKT_SIZE="pkt_size 66"
39
40# COUNT 0 means forever
41#COUNT="count 0"
42COUNT="count 10000000"
43DELAY="delay 0"
44
45PGDEV=/proc/net/pktgen/eth1
46  echo "Configuring $PGDEV"
47 pgset "$COUNT"
48 pgset "$CLONE_SKB"
49 pgset "$PKT_SIZE"
50 pgset "$DELAY"
51 pgset "dst6_min fec0::1"
52 pgset "dst6_max fec0::FFFF:FFFF"
53
54 pgset "dst_mac  00:04:23:08:91:dc"
55
56# Time to run
57PGDEV=/proc/net/pktgen/pgctrl
58
59 echo "Running... ctrl^C to stop"
60 trap true INT
61 pgset "start"
62 echo "Done"
63 cat /proc/net/pktgen/eth1
64