• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4#modprobe pktgen
5
6
7function pgset() {
8    local result
9
10    echo $1 > $PGDEV
11
12    result=`cat $PGDEV | fgrep "Result: OK:"`
13    if [ "$result" = "" ]; then
14         cat $PGDEV | fgrep Result:
15    fi
16}
17
18# Config Start Here -----------------------------------------------------------
19
20
21# thread config
22# One CPU means one thread. One CPU example. We add eth1, eth2 respectivly.
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  echo "Adding eth2"
30 pgset "add_device eth2"
31
32
33# device config
34# delay 0 means maximum speed.
35
36CLONE_SKB="clone_skb 1000000"
37# NIC adds 4 bytes CRC
38PKT_SIZE="pkt_size 60"
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 "dst 10.10.11.2"
52 pgset "dst_mac  00:04:23:08:91:dc"
53
54PGDEV=/proc/net/pktgen/eth2
55  echo "Configuring $PGDEV"
56 pgset "$COUNT"
57 pgset "$CLONE_SKB"
58 pgset "$PKT_SIZE"
59 pgset "$DELAY"
60 pgset "dst 192.168.2.2"
61 pgset "dst_mac  00:04:23:08:91:de"
62
63# Time to run
64PGDEV=/proc/net/pktgen/pgctrl
65
66 echo "Running... ctrl^C to stop"
67 trap true INT
68 pgset "start"
69 echo "Done"
70 cat /proc/net/pktgen/eth1 /proc/net/pktgen/eth2
71