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