File tree Expand file tree Collapse file tree 10 files changed +95
-2
lines changed Expand file tree Collapse file tree 10 files changed +95
-2
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ across the sample scripts. Usage example is printed on errors::
20
20
-s : ($PKT_SIZE) packet size
21
21
-d : ($DEST_IP) destination IP
22
22
-m : ($DST_MAC) destination MAC-addr
23
+ -p : ($DST_PORT) destination PORT range (e.g. 433-444) is also allowed
23
24
-t : ($THREADS) threads to start
24
25
-f : ($F_THREAD) index of first thread (zero indexed CPU number)
25
26
-c : ($SKB_CLONE) SKB clones send before alloc new SKB
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ function usage() {
10
10
echo " -s : (\$ PKT_SIZE) packet size"
11
11
echo " -d : (\$ DEST_IP) destination IP"
12
12
echo " -m : (\$ DST_MAC) destination MAC-addr"
13
+ echo " -p : (\$ DST_PORT) destination PORT range (e.g. 433-444) is also allowed"
13
14
echo " -t : (\$ THREADS) threads to start"
14
15
echo " -f : (\$ F_THREAD) index of first thread (zero indexed CPU number)"
15
16
echo " -c : (\$ SKB_CLONE) SKB clones send before alloc new SKB"
@@ -23,7 +24,7 @@ function usage() {
23
24
24
25
# # --- Parse command line arguments / parameters ---
25
26
# # echo "Commandline options:"
26
- while getopts " s:i:d:m:f:t:c:n:b:vxh6" option; do
27
+ while getopts " s:i:d:m:p: f:t:c:n:b:vxh6" option; do
27
28
case $option in
28
29
i) # interface
29
30
export DEV=$OPTARG
@@ -41,6 +42,10 @@ while getopts "s:i:d:m:f:t:c:n:b:vxh6" option; do
41
42
export DST_MAC=$OPTARG
42
43
info " Destination MAC set to: DST_MAC=$DST_MAC "
43
44
;;
45
+ p) # PORT
46
+ export DST_PORT=$OPTARG
47
+ info " Destination PORT set to: DST_PORT=$DST_PORT "
48
+ ;;
44
49
f)
45
50
export F_THREAD=$OPTARG
46
51
info " Index of first thread (zero indexed CPU number): $F_THREAD "
Original file line number Diff line number Diff line change 41
41
[ -z " $DST_MAC " ] && DST_MAC=" 90:e2:ba:ff:ff:ff"
42
42
[ -z " $BURST " ] && BURST=1024
43
43
[ -z " $COUNT " ] && COUNT=" 10000000" # Zero means indefinitely
44
+ if [ -n " $DST_PORT " ]; then
45
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
46
+ validate_ports $DST_MIN $DST_MAX
47
+ fi
44
48
45
49
# Base Config
46
50
DELAY=" 0" # Zero means max speed
@@ -69,6 +73,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
69
73
pg_set $dev " dst_mac $DST_MAC "
70
74
pg_set $dev " dst$IP6 $DEST_IP "
71
75
76
+ if [ -n " $DST_PORT " ]; then
77
+ # Single destination port or random port range
78
+ pg_set $dev " flag UDPDST_RND"
79
+ pg_set $dev " udp_dst_min $DST_MIN "
80
+ pg_set $dev " udp_dst_max $DST_MAX "
81
+ fi
82
+
72
83
# Inject packet into RX path of stack
73
84
pg_set $dev " xmit_mode netif_receive"
74
85
Original file line number Diff line number Diff line change @@ -24,6 +24,10 @@ if [[ -n "$BURST" ]]; then
24
24
err 1 " Bursting not supported for this mode"
25
25
fi
26
26
[ -z " $COUNT " ] && COUNT=" 10000000" # Zero means indefinitely
27
+ if [ -n " $DST_PORT " ]; then
28
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
29
+ validate_ports $DST_MIN $DST_MAX
30
+ fi
27
31
28
32
# Base Config
29
33
DELAY=" 0" # Zero means max speed
@@ -52,6 +56,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
52
56
pg_set $dev " dst_mac $DST_MAC "
53
57
pg_set $dev " dst$IP6 $DEST_IP "
54
58
59
+ if [ -n " $DST_PORT " ]; then
60
+ # Single destination port or random port range
61
+ pg_set $dev " flag UDPDST_RND"
62
+ pg_set $dev " udp_dst_min $DST_MIN "
63
+ pg_set $dev " udp_dst_max $DST_MAX "
64
+ fi
65
+
55
66
# Inject packet into TX qdisc egress path of stack
56
67
pg_set $dev " xmit_mode queue_xmit"
57
68
done
Original file line number Diff line number Diff line change 22
22
# Example enforce param "-m" for dst_mac
23
23
[ -z " $DST_MAC " ] && usage && err 2 " Must specify -m dst_mac"
24
24
[ -z " $COUNT " ] && COUNT=" 100000" # Zero means indefinitely
25
+ if [ -n " $DST_PORT " ]; then
26
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
27
+ validate_ports $DST_MIN $DST_MAX
28
+ fi
25
29
26
30
# Base Config
27
31
DELAY=" 0" # Zero means max speed
@@ -59,6 +63,13 @@ pg_set $DEV "flag NO_TIMESTAMP"
59
63
pg_set $DEV " dst_mac $DST_MAC "
60
64
pg_set $DEV " dst$IP6 $DEST_IP "
61
65
66
+ if [ -n " $DST_PORT " ]; then
67
+ # Single destination port or random port range
68
+ pg_set $DEV " flag UDPDST_RND"
69
+ pg_set $DEV " udp_dst_min $DST_MIN "
70
+ pg_set $DEV " udp_dst_max $DST_MAX "
71
+ fi
72
+
62
73
# Setup random UDP port src range
63
74
pg_set $DEV " flag UDPSRC_RND"
64
75
pg_set $DEV " udp_src_min $UDP_MIN "
Original file line number Diff line number Diff line change @@ -29,6 +29,10 @@ if [ -z "$DEST_IP" ]; then
29
29
[ -z " $IP6 " ] && DEST_IP=" 198.18.0.42" || DEST_IP=" FD00::1"
30
30
fi
31
31
[ -z " $DST_MAC " ] && DST_MAC=" 90:e2:ba:ff:ff:ff"
32
+ if [ -n " $DST_PORT " ]; then
33
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
34
+ validate_ports $DST_MIN $DST_MAX
35
+ fi
32
36
33
37
# General cleanup everything since last run
34
38
pg_ctrl " reset"
@@ -60,6 +64,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
60
64
pg_set $dev " dst_mac $DST_MAC "
61
65
pg_set $dev " dst$IP6 $DEST_IP "
62
66
67
+ if [ -n " $DST_PORT " ]; then
68
+ # Single destination port or random port range
69
+ pg_set $dev " flag UDPDST_RND"
70
+ pg_set $dev " udp_dst_min $DST_MIN "
71
+ pg_set $dev " udp_dst_max $DST_MAX "
72
+ fi
73
+
63
74
# Setup random UDP port src range
64
75
pg_set $dev " flag UDPSRC_RND"
65
76
pg_set $dev " udp_src_min $UDP_MIN "
Original file line number Diff line number Diff line change 33
33
[ -z " $BURST " ] && BURST=32
34
34
[ -z " $CLONE_SKB " ] && CLONE_SKB=" 0" # No need for clones when bursting
35
35
[ -z " $COUNT " ] && COUNT=" 0" # Zero means indefinitely
36
+ if [ -n " $DST_PORT " ]; then
37
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
38
+ validate_ports $DST_MIN $DST_MAX
39
+ fi
36
40
37
41
# Base Config
38
42
DELAY=" 0" # Zero means max speed
@@ -60,6 +64,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
60
64
pg_set $dev " dst_mac $DST_MAC "
61
65
pg_set $dev " dst$IP6 $DEST_IP "
62
66
67
+ if [ -n " $DST_PORT " ]; then
68
+ # Single destination port or random port range
69
+ pg_set $dev " flag UDPDST_RND"
70
+ pg_set $dev " udp_dst_min $DST_MIN "
71
+ pg_set $dev " udp_dst_max $DST_MAX "
72
+ fi
73
+
63
74
# Setup burst, for easy testing -b 0 disable bursting
64
75
# (internally in pktgen default and minimum burst=1)
65
76
if [[ ${BURST} -ne 0 ]]; then
Original file line number Diff line number Diff line change @@ -17,6 +17,10 @@ source ${basedir}/parameters.sh
17
17
[ -z " $DST_MAC " ] && DST_MAC=" 90:e2:ba:ff:ff:ff"
18
18
[ -z " $CLONE_SKB " ] && CLONE_SKB=" 0"
19
19
[ -z " $COUNT " ] && COUNT=" 0" # Zero means indefinitely
20
+ if [ -n " $DST_PORT " ]; then
21
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
22
+ validate_ports $DST_MIN $DST_MAX
23
+ fi
20
24
21
25
# NOTICE: Script specific settings
22
26
# =======
@@ -56,6 +60,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
56
60
pg_set $dev " dst_mac $DST_MAC "
57
61
pg_set $dev " dst $DEST_IP "
58
62
63
+ if [ -n " $DST_PORT " ]; then
64
+ # Single destination port or random port range
65
+ pg_set $dev " flag UDPDST_RND"
66
+ pg_set $dev " udp_dst_min $DST_MIN "
67
+ pg_set $dev " udp_dst_max $DST_MAX "
68
+ fi
69
+
59
70
# Randomize source IP-addresses
60
71
pg_set $dev " flag IPSRC_RND"
61
72
pg_set $dev " src_min 198.18.0.0"
Original file line number Diff line number Diff line change @@ -22,7 +22,10 @@ source ${basedir}/parameters.sh
22
22
[ -z " $CLONE_SKB " ] && CLONE_SKB=" 0"
23
23
[ -z " $BURST " ] && BURST=32
24
24
[ -z " $COUNT " ] && COUNT=" 0" # Zero means indefinitely
25
-
25
+ if [ -n " $DST_PORT " ]; then
26
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
27
+ validate_ports $DST_MIN $DST_MAX
28
+ fi
26
29
27
30
# Base Config
28
31
DELAY=" 0" # Zero means max speed
@@ -50,6 +53,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
50
53
pg_set $dev " dst_mac $DST_MAC "
51
54
pg_set $dev " dst $DEST_IP "
52
55
56
+ if [ -n " $DST_PORT " ]; then
57
+ # Single destination port or random port range
58
+ pg_set $dev " flag UDPDST_RND"
59
+ pg_set $dev " udp_dst_min $DST_MIN "
60
+ pg_set $dev " udp_dst_max $DST_MAX "
61
+ fi
62
+
53
63
# Setup source IP-addresses based on thread number
54
64
pg_set $dev " src_min 198.18.$(( thread+ 1 )) .1"
55
65
pg_set $dev " src_max 198.18.$(( thread+ 1 )) .1"
Original file line number Diff line number Diff line change @@ -35,6 +35,10 @@ if [ -z "$DEST_IP" ]; then
35
35
[ -z " $IP6 " ] && DEST_IP=" 198.18.0.42" || DEST_IP=" FD00::1"
36
36
fi
37
37
[ -z " $DST_MAC " ] && DST_MAC=" 90:e2:ba:ff:ff:ff"
38
+ if [ -n " $DST_PORT " ]; then
39
+ read -r DST_MIN DST_MAX <<< $( parse_ports $DST_PORT )
40
+ validate_ports $DST_MIN $DST_MAX
41
+ fi
38
42
39
43
# General cleanup everything since last run
40
44
pg_ctrl " reset"
@@ -77,6 +81,13 @@ for ((i = 0; i < $THREADS; i++)); do
77
81
pg_set $dev " dst_mac $DST_MAC "
78
82
pg_set $dev " dst$IP6 $DEST_IP "
79
83
84
+ if [ -n " $DST_PORT " ]; then
85
+ # Single destination port or random port range
86
+ pg_set $dev " flag UDPDST_RND"
87
+ pg_set $dev " udp_dst_min $DST_MIN "
88
+ pg_set $dev " udp_dst_max $DST_MAX "
89
+ fi
90
+
80
91
# Setup random UDP port src range
81
92
pg_set $dev " flag UDPSRC_RND"
82
93
pg_set $dev " udp_src_min $UDP_MIN "
You can’t perform that action at this time.
0 commit comments