#!/bin/bash

#modprobe pktgen


function pgset() {
    local result

    echo $1 > $PGDEV

    result=`cat $PGDEV | fgrep "Result: OK:"`
    if [ "$result" = "" ]; then
         cat $PGDEV | fgrep Result:
    fi
}

# Config Start Here -----------------------------------------------------------


# thread config
# One CPU means one thread. One CPU example. 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 "Adding eth2"
 pgset "add_device eth2"


# 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"

PGDEV=/proc/net/pktgen/eth2
  echo "Configuring $PGDEV"
 pgset "$COUNT"
 pgset "$CLONE_SKB"
 pgset "$PKT_SIZE"
 pgset "$DELAY"
 pgset "dst 192.168.2.2"
 pgset "dst_mac  00:04:23:08:91:de"

# Time to run
PGDEV=/proc/net/pktgen/pgctrl

 echo "Running... ctrl^C to stop"
 trap true INT
 pgset "start"
 echo "Done"
 cat /proc/net/pktgen/eth1 /proc/net/pktgen/eth2
/></form></td></tr>
<tr><td class='sub'>net-next plumbings</td><td class='sub right'>Tobias Klauser</td></tr></table>
<table class='tabs'><tr><td>
<a href='/cgit.cgi/linux/net-next.git/'>summary</a><a href='/cgit.cgi/linux/net-next.git/refs/?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>refs</a><a class='active' href='/cgit.cgi/linux/net-next.git/log/include/uapi/asm-generic/poll.h'>log</a><a href='/cgit.cgi/linux/net-next.git/tree/include/uapi/asm-generic/poll.h?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/include/uapi/asm-generic/poll.h?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/include/uapi/asm-generic/poll.h?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/include/uapi/asm-generic/poll.h'>
<input type='hidden' name='id' value='52ea3e802047552a8c1ec8c42cad361ffd4ca09c'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/include?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>include</a>/<a href='/cgit.cgi/linux/net-next.git/log/include/uapi?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>uapi</a>/<a href='/cgit.cgi/linux/net-next.git/log/include/uapi/asm-generic?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>asm-generic</a>/<a href='/cgit.cgi/linux/net-next.git/log/include/uapi/asm-generic/poll.h?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c'>poll.h</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/include/uapi/asm-generic/poll.h?id=52ea3e802047552a8c1ec8c42cad361ffd4ca09c&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>