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, eth2 respectively. 22 23PGDEV=/proc/net/pktgen/kpktgend_0 24 echo "Removing all devices" 25 pgset "rem_device_all" 26 echo "Adding eth1" 27 pgset "add_device eth1" 28 29PGDEV=/proc/net/pktgen/kpktgend_1 30 echo "Removing all devices" 31 pgset "rem_device_all" 32 echo "Adding eth2" 33 pgset "add_device eth2" 34 35 36# device config 37# delay 0 means maximum speed. 38 39CLONE_SKB="clone_skb 1000000" 40# NIC adds 4 bytes CRC 41PKT_SIZE="pkt_size 60" 42 43# COUNT 0 means forever 44#COUNT="count 0" 45COUNT="count 10000000" 46DELAY="delay 0" 47 48PGDEV=/proc/net/pktgen/eth1 49 echo "Configuring $PGDEV" 50 pgset "$COUNT" 51 pgset "$CLONE_SKB" 52 pgset "$PKT_SIZE" 53 pgset "$DELAY" 54 pgset "dst 10.10.11.2" 55 pgset "dst_mac 00:04:23:08:91:dc" 56 57PGDEV=/proc/net/pktgen/eth2 58 echo "Configuring $PGDEV" 59 pgset "$COUNT" 60 pgset "$CLONE_SKB" 61 pgset "$PKT_SIZE" 62 pgset "$DELAY" 63 pgset "dst 192.168.2.2" 64 pgset "dst_mac 00:04:23:08:91:de" 65 66# Time to run 67PGDEV=/proc/net/pktgen/pgctrl 68 69 echo "Running... ctrl^C to stop" 70 trap true INT 71 pgset "start" 72 echo "Done" 73 cat /proc/net/pktgen/eth1 /proc/net/pktgen/eth2 74