samples: Add an IPv6 '-6' option to the pktgen scripts
Add a '-6' option to the sample pktgen scripts for sending out IPv6 packets. [root@kerneldev010.prn1 ~/pktgen]# ./pktgen_sample03_burst_single_flow.sh -i eth0 -s 64 -d fe80::f652:14ff:fec2:a14c -m f4:52:14:c2:a1:4c -b 32 -6 [root@kerneldev011.prn1 ~]# tcpdump -i eth0 -nn -c3 port 9 tcpdump: WARNING: eth0: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 14:38:51.815297 IP6 fe80::f652:14ff:fec2:2ad2.9 > fe80::f652:14ff:fec2:a14c.9: UDP, length 16 14:38:51.815311 IP6 fe80::f652:14ff:fec2:2ad2.9 > fe80::f652:14ff:fec2:a14c.9: UDP, length 16 14:38:51.815313 IP6 fe80::f652:14ff:fec2:2ad2.9 > fe80::f652:14ff:fec2:a14c.9: UDP, length 16 Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									1c137ef486
								
							
						
					
					
						commit
						0f06a6787e
					
				| @ -14,12 +14,13 @@ function usage() { | |||||||
|     echo "  -b : (\$BURST)     HW level bursting of SKBs" |     echo "  -b : (\$BURST)     HW level bursting of SKBs" | ||||||
|     echo "  -v : (\$VERBOSE)   verbose" |     echo "  -v : (\$VERBOSE)   verbose" | ||||||
|     echo "  -x : (\$DEBUG)     debug" |     echo "  -x : (\$DEBUG)     debug" | ||||||
|  |     echo "  -6 : (\$IP6)       IPv6" | ||||||
|     echo "" |     echo "" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ##  --- Parse command line arguments / parameters --- | ##  --- Parse command line arguments / parameters --- | ||||||
| ## echo "Commandline options:" | ## echo "Commandline options:" | ||||||
| while getopts "s:i:d:m:t:c:b:vxh" option; do | while getopts "s:i:d:m:t:c:b:vxh6" option; do | ||||||
|     case $option in |     case $option in | ||||||
|         i) # interface |         i) # interface | ||||||
|           export DEV=$OPTARG |           export DEV=$OPTARG | ||||||
| @ -59,6 +60,10 @@ while getopts "s:i:d:m:t:c:b:vxh" option; do | |||||||
|           export DEBUG=yes |           export DEBUG=yes | ||||||
|           info "Debug mode: DEBUG=$DEBUG" |           info "Debug mode: DEBUG=$DEBUG" | ||||||
|           ;; |           ;; | ||||||
|  | 	6) | ||||||
|  | 	  export IP6=6 | ||||||
|  | 	  info "IP6: IP6=$IP6" | ||||||
|  | 	  ;; | ||||||
|         h|?|*) |         h|?|*) | ||||||
|           usage; |           usage; | ||||||
|           err 2 "[ERROR] Unknown parameters!!!" |           err 2 "[ERROR] Unknown parameters!!!" | ||||||
|  | |||||||
| @ -34,7 +34,9 @@ root_check_run_with_sudo "$@" | |||||||
| source ${basedir}/parameters.sh | source ${basedir}/parameters.sh | ||||||
| # Using invalid DST_MAC will cause the packets to get dropped in | # Using invalid DST_MAC will cause the packets to get dropped in | ||||||
| # ip_rcv() which is part of the test | # ip_rcv() which is part of the test | ||||||
| [ -z "$DEST_IP" ] && DEST_IP="198.18.0.42" | if [ -z "$DEST_IP" ]; then | ||||||
|  |     [ -z "$IP6" ] && DEST_IP="198.18.0.42" || DEST_IP="FD00::1" | ||||||
|  | fi | ||||||
| [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" | [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" | ||||||
| [ -z "$BURST" ] && BURST=1024 | [ -z "$BURST" ] && BURST=1024 | ||||||
| 
 | 
 | ||||||
| @ -64,7 +66,7 @@ for ((thread = 0; thread < $THREADS; thread++)); do | |||||||
| 
 | 
 | ||||||
|     # Destination |     # Destination | ||||||
|     pg_set $dev "dst_mac $DST_MAC" |     pg_set $dev "dst_mac $DST_MAC" | ||||||
|     pg_set $dev "dst $DEST_IP" |     pg_set $dev "dst$IP6 $DEST_IP" | ||||||
| 
 | 
 | ||||||
|     # Inject packet into RX path of stack |     # Inject packet into RX path of stack | ||||||
|     pg_set $dev "xmit_mode netif_receive" |     pg_set $dev "xmit_mode netif_receive" | ||||||
|  | |||||||
| @ -13,7 +13,9 @@ root_check_run_with_sudo "$@" | |||||||
| 
 | 
 | ||||||
| # Parameter parsing via include | # Parameter parsing via include | ||||||
| source ${basedir}/parameters.sh | source ${basedir}/parameters.sh | ||||||
| [ -z "$DEST_IP" ] && DEST_IP="198.18.0.42" | if [ -z "$DEST_IP" ]; then | ||||||
|  |     [ -z "$IP6" ] && DEST_IP="198.18.0.42" || DEST_IP="FD00::1" | ||||||
|  | fi | ||||||
| [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" | [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" | ||||||
| 
 | 
 | ||||||
| # Burst greater than 1 are invalid for queue_xmit mode | # Burst greater than 1 are invalid for queue_xmit mode | ||||||
| @ -47,7 +49,7 @@ for ((thread = 0; thread < $THREADS; thread++)); do | |||||||
| 
 | 
 | ||||||
|     # Destination |     # Destination | ||||||
|     pg_set $dev "dst_mac $DST_MAC" |     pg_set $dev "dst_mac $DST_MAC" | ||||||
|     pg_set $dev "dst $DEST_IP" |     pg_set $dev "dst$IP6 $DEST_IP" | ||||||
| 
 | 
 | ||||||
|     # Inject packet into TX qdisc egress path of stack |     # Inject packet into TX qdisc egress path of stack | ||||||
|     pg_set $dev "xmit_mode queue_xmit" |     pg_set $dev "xmit_mode queue_xmit" | ||||||
|  | |||||||
| @ -14,7 +14,9 @@ root_check_run_with_sudo "$@" | |||||||
| source ${basedir}/parameters.sh | source ${basedir}/parameters.sh | ||||||
| # | # | ||||||
| # Set some default params, if they didn't get set | # Set some default params, if they didn't get set | ||||||
| [ -z "$DEST_IP" ] && DEST_IP="198.18.0.42" | if [ -z "$DEST_IP" ]; then | ||||||
|  |     [ -z "$IP6" ] && DEST_IP="198.18.0.42" || DEST_IP="FD00::1" | ||||||
|  | fi | ||||||
| [ -z "$CLONE_SKB" ] && CLONE_SKB="0" | [ -z "$CLONE_SKB" ] && CLONE_SKB="0" | ||||||
| # Example enforce param "-m" for dst_mac | # Example enforce param "-m" for dst_mac | ||||||
| [ -z "$DST_MAC" ] && usage && err 2 "Must specify -m dst_mac" | [ -z "$DST_MAC" ] && usage && err 2 "Must specify -m dst_mac" | ||||||
| @ -54,7 +56,7 @@ pg_set $DEV "flag NO_TIMESTAMP" | |||||||
| 
 | 
 | ||||||
| # Destination | # Destination | ||||||
| pg_set $DEV "dst_mac $DST_MAC" | pg_set $DEV "dst_mac $DST_MAC" | ||||||
| pg_set $DEV "dst $DEST_IP" | pg_set $DEV "dst$IP6 $DEST_IP" | ||||||
| 
 | 
 | ||||||
| # Setup random UDP port src range | # Setup random UDP port src range | ||||||
| pg_set $DEV "flag UDPSRC_RND" | pg_set $DEV "flag UDPSRC_RND" | ||||||
|  | |||||||
| @ -23,7 +23,9 @@ UDP_MIN=9 | |||||||
| UDP_MAX=109 | UDP_MAX=109 | ||||||
| 
 | 
 | ||||||
| # (example of setting default params in your script) | # (example of setting default params in your script) | ||||||
| [ -z "$DEST_IP" ] && DEST_IP="198.18.0.42" | if [ -z "$DEST_IP" ]; then | ||||||
|  |     [ -z "$IP6" ] && DEST_IP="198.18.0.42" || DEST_IP="FD00::1" | ||||||
|  | fi | ||||||
| [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" | [ -z "$DST_MAC" ] && DST_MAC="90:e2:ba:ff:ff:ff" | ||||||
| 
 | 
 | ||||||
| # General cleanup everything since last run | # General cleanup everything since last run | ||||||
| @ -54,7 +56,7 @@ for ((thread = 0; thread < $THREADS; thread++)); do | |||||||
| 
 | 
 | ||||||
|     # Destination |     # Destination | ||||||
|     pg_set $dev "dst_mac $DST_MAC" |     pg_set $dev "dst_mac $DST_MAC" | ||||||
|     pg_set $dev "dst $DEST_IP" |     pg_set $dev "dst$IP6 $DEST_IP" | ||||||
| 
 | 
 | ||||||
|     # Setup random UDP port src range |     # Setup random UDP port src range | ||||||
|     pg_set $dev "flag UDPSRC_RND" |     pg_set $dev "flag UDPSRC_RND" | ||||||
|  | |||||||
| @ -25,7 +25,9 @@ root_check_run_with_sudo "$@" | |||||||
| # Parameter parsing via include | # Parameter parsing via include | ||||||
| source ${basedir}/parameters.sh | source ${basedir}/parameters.sh | ||||||
| # Set some default params, if they didn't get set | # Set some default params, if they didn't get set | ||||||
| [ -z "$DEST_IP" ]   && DEST_IP="198.18.0.42" | if [ -z "$DEST_IP" ]; then | ||||||
|  |     [ -z "$IP6" ] && DEST_IP="198.18.0.42" || DEST_IP="FD00::1" | ||||||
|  | fi | ||||||
| [ -z "$DST_MAC" ]   && DST_MAC="90:e2:ba:ff:ff:ff" | [ -z "$DST_MAC" ]   && DST_MAC="90:e2:ba:ff:ff:ff" | ||||||
| [ -z "$BURST" ]     && BURST=32 | [ -z "$BURST" ]     && BURST=32 | ||||||
| [ -z "$CLONE_SKB" ] && CLONE_SKB="100000" | [ -z "$CLONE_SKB" ] && CLONE_SKB="100000" | ||||||
| @ -55,7 +57,7 @@ for ((thread = 0; thread < $THREADS; thread++)); do | |||||||
| 
 | 
 | ||||||
|     # Destination |     # Destination | ||||||
|     pg_set $dev "dst_mac $DST_MAC" |     pg_set $dev "dst_mac $DST_MAC" | ||||||
|     pg_set $dev "dst $DEST_IP" |     pg_set $dev "dst$IP6 $DEST_IP" | ||||||
| 
 | 
 | ||||||
|     # Setup burst, for easy testing -b 0 disable bursting |     # Setup burst, for easy testing -b 0 disable bursting | ||||||
|     # (internally in pktgen default and minimum burst=1) |     # (internally in pktgen default and minimum burst=1) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user