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::
2020 -s : ($PKT_SIZE) packet size
2121 -d : ($DEST_IP) destination IP
2222 -m : ($DST_MAC) destination MAC-addr
23+ -p : ($DST_PORT) destination PORT range (e.g. 433-444) is also allowed
2324 -t : ($THREADS) threads to start
2425 -f : ($F_THREAD) index of first thread (zero indexed CPU number)
2526 -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() {
1010 echo " -s : (\$ PKT_SIZE) packet size"
1111 echo " -d : (\$ DEST_IP) destination IP"
1212 echo " -m : (\$ DST_MAC) destination MAC-addr"
13+ echo " -p : (\$ DST_PORT) destination PORT range (e.g. 433-444) is also allowed"
1314 echo " -t : (\$ THREADS) threads to start"
1415 echo " -f : (\$ F_THREAD) index of first thread (zero indexed CPU number)"
1516 echo " -c : (\$ SKB_CLONE) SKB clones send before alloc new SKB"
@@ -23,7 +24,7 @@ function usage() {
2324
2425# # --- Parse command line arguments / parameters ---
2526# # 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
2728 case $option in
2829 i) # interface
2930 export DEV=$OPTARG
@@ -41,6 +42,10 @@ while getopts "s:i:d:m:f:t:c:n:b:vxh6" option; do
4142 export DST_MAC=$OPTARG
4243 info " Destination MAC set to: DST_MAC=$DST_MAC "
4344 ;;
45+ p) # PORT
46+ export DST_PORT=$OPTARG
47+ info " Destination PORT set to: DST_PORT=$DST_PORT "
48+ ;;
4449 f)
4550 export F_THREAD=$OPTARG
4651 info " Index of first thread (zero indexed CPU number): $F_THREAD "
Original file line number Diff line number Diff line change 4141[ -z " $DST_MAC " ] && DST_MAC=" 90:e2:ba:ff:ff:ff"
4242[ -z " $BURST " ] && BURST=1024
4343[ -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
4448
4549# Base Config
4650DELAY=" 0" # Zero means max speed
@@ -69,6 +73,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
6973 pg_set $dev " dst_mac $DST_MAC "
7074 pg_set $dev " dst$IP6 $DEST_IP "
7175
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+
7283 # Inject packet into RX path of stack
7384 pg_set $dev " xmit_mode netif_receive"
7485
Original file line number Diff line number Diff line change @@ -24,6 +24,10 @@ if [[ -n "$BURST" ]]; then
2424 err 1 " Bursting not supported for this mode"
2525fi
2626[ -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
2731
2832# Base Config
2933DELAY=" 0" # Zero means max speed
@@ -52,6 +56,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
5256 pg_set $dev " dst_mac $DST_MAC "
5357 pg_set $dev " dst$IP6 $DEST_IP "
5458
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+
5566 # Inject packet into TX qdisc egress path of stack
5667 pg_set $dev " xmit_mode queue_xmit"
5768done
Original file line number Diff line number Diff line change 2222# Example enforce param "-m" for dst_mac
2323[ -z " $DST_MAC " ] && usage && err 2 " Must specify -m dst_mac"
2424[ -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
2529
2630# Base Config
2731DELAY=" 0" # Zero means max speed
@@ -59,6 +63,13 @@ pg_set $DEV "flag NO_TIMESTAMP"
5963pg_set $DEV " dst_mac $DST_MAC "
6064pg_set $DEV " dst$IP6 $DEST_IP "
6165
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+
6273# Setup random UDP port src range
6374pg_set $DEV " flag UDPSRC_RND"
6475pg_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
2929 [ -z " $IP6 " ] && DEST_IP=" 198.18.0.42" || DEST_IP=" FD00::1"
3030fi
3131[ -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
3236
3337# General cleanup everything since last run
3438pg_ctrl " reset"
@@ -60,6 +64,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
6064 pg_set $dev " dst_mac $DST_MAC "
6165 pg_set $dev " dst$IP6 $DEST_IP "
6266
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+
6374 # Setup random UDP port src range
6475 pg_set $dev " flag UDPSRC_RND"
6576 pg_set $dev " udp_src_min $UDP_MIN "
Original file line number Diff line number Diff line change 3333[ -z " $BURST " ] && BURST=32
3434[ -z " $CLONE_SKB " ] && CLONE_SKB=" 0" # No need for clones when bursting
3535[ -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
3640
3741# Base Config
3842DELAY=" 0" # Zero means max speed
@@ -60,6 +64,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
6064 pg_set $dev " dst_mac $DST_MAC "
6165 pg_set $dev " dst$IP6 $DEST_IP "
6266
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+
6374 # Setup burst, for easy testing -b 0 disable bursting
6475 # (internally in pktgen default and minimum burst=1)
6576 if [[ ${BURST} -ne 0 ]]; then
Original file line number Diff line number Diff line change @@ -17,6 +17,10 @@ source ${basedir}/parameters.sh
1717[ -z " $DST_MAC " ] && DST_MAC=" 90:e2:ba:ff:ff:ff"
1818[ -z " $CLONE_SKB " ] && CLONE_SKB=" 0"
1919[ -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
2024
2125# NOTICE: Script specific settings
2226# =======
@@ -56,6 +60,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
5660 pg_set $dev " dst_mac $DST_MAC "
5761 pg_set $dev " dst $DEST_IP "
5862
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+
5970 # Randomize source IP-addresses
6071 pg_set $dev " flag IPSRC_RND"
6172 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
2222[ -z " $CLONE_SKB " ] && CLONE_SKB=" 0"
2323[ -z " $BURST " ] && BURST=32
2424[ -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
2629
2730# Base Config
2831DELAY=" 0" # Zero means max speed
@@ -50,6 +53,13 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
5053 pg_set $dev " dst_mac $DST_MAC "
5154 pg_set $dev " dst $DEST_IP "
5255
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+
5363 # Setup source IP-addresses based on thread number
5464 pg_set $dev " src_min 198.18.$(( thread+ 1 )) .1"
5565 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
3535 [ -z " $IP6 " ] && DEST_IP=" 198.18.0.42" || DEST_IP=" FD00::1"
3636fi
3737[ -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
3842
3943# General cleanup everything since last run
4044pg_ctrl " reset"
@@ -77,6 +81,13 @@ for ((i = 0; i < $THREADS; i++)); do
7781 pg_set $dev " dst_mac $DST_MAC "
7882 pg_set $dev " dst$IP6 $DEST_IP "
7983
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+
8091 # Setup random UDP port src range
8192 pg_set $dev " flag UDPSRC_RND"
8293 pg_set $dev " udp_src_min $UDP_MIN "
You can’t perform that action at this time.
0 commit comments