mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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
					
				
					 6 changed files with 26 additions and 11 deletions
				
			
		| 
						 | 
					@ -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 a new issue