huangcm
2025-02-24 69ed55dec4b2116a19e4cca4393cbc014fce5fb2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/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
# Each CPU has its own thread. One CPU example. We add eth1.
# IPv6. Note increase in minimal packet length
 
PGDEV=/proc/net/pktgen/kpktgend_0
  echo "Removing all devices"
 pgset "rem_device_all"
  echo "Adding eth1"
 pgset "add_device eth1"
 
 
# device config
# delay 0 means maximum speed.
 
# We need to do alloc for every skb since we cannot clone here.
CLONE_SKB="clone_skb 0"
 
# NIC adds 4 bytes CRC
PKT_SIZE="pkt_size 66"
 
# 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 "dst6_min fec0::1"
 pgset "dst6_max fec0::FFFF:FFFF"
 
 pgset "dst_mac  00:04:23:08:91:dc"
 
# 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