blob: 3ac3eb1f35043517eb3ce7ef1d8f4b9d05c5064e [file] [log] [blame]
Ben Hutchingsdb72aba2015-02-24 02:32:59 +00001#!/bin/bash
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01002# SPDX-License-Identifier: GPL-2.0
Ben Hutchings7c95a9d2015-02-24 02:32:07 +00003
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
Ben Hutchings7c95a9d2015-02-24 02:32:07 +000018# Config Start Here -----------------------------------------------------------
19
20
21# thread config
Ben Hutchings2ad1cdf2015-02-24 02:32:37 +000022# Each CPU has its own thread. One CPU example. We add eth1.
Ben Hutchings7c95a9d2015-02-24 02:32:07 +000023# IPv6. Note increase in minimal packet length
24
25PGDEV=/proc/net/pktgen/kpktgend_0
26 echo "Removing all devices"
27 pgset "rem_device_all"
28 echo "Adding eth1"
29 pgset "add_device eth1"
Ben Hutchings7c95a9d2015-02-24 02:32:07 +000030
31
32# device config
33# delay 0 means maximum speed.
34
35# We need to do alloc for every skb since we cannot clone here.
36CLONE_SKB="clone_skb 0"
37
38# NIC adds 4 bytes CRC
39PKT_SIZE="pkt_size 66"
40
41# COUNT 0 means forever
42#COUNT="count 0"
43COUNT="count 10000000"
44DELAY="delay 0"
45
46PGDEV=/proc/net/pktgen/eth1
47 echo "Configuring $PGDEV"
48 pgset "$COUNT"
49 pgset "$CLONE_SKB"
50 pgset "$PKT_SIZE"
51 pgset "$DELAY"
52 pgset "dst6_min fec0::1"
53 pgset "dst6_max fec0::FFFF:FFFF"
54
55 pgset "dst_mac 00:04:23:08:91:dc"
56
57# Time to run
58PGDEV=/proc/net/pktgen/pgctrl
59
60 echo "Running... ctrl^C to stop"
Ben Hutchings16b5d0c2015-02-24 02:33:08 +000061 trap true INT
Ben Hutchings7c95a9d2015-02-24 02:32:07 +000062 pgset "start"
63 echo "Done"
Ben Hutchings4062bd22015-02-24 02:33:20 +000064 cat /proc/net/pktgen/eth1