forked from mirrors/linux
		
	samples: pktgen: add UDP tx checksum support
Introduce k parameter in pktgen samples in order to toggle UDP tx checksum Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Link: https://lore.kernel.org/r/cf16417902062c6ea2fd3c79e00510e36a40c31a.1622210713.git.lorenzo@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
		
							parent
							
								
									38e9673ce0
								
							
						
					
					
						commit
						460a9aa23d
					
				
					 7 changed files with 18 additions and 1 deletions
				
			
		| 
						 | 
					@ -11,6 +11,7 @@ function usage() {
 | 
				
			||||||
    echo "  -d : (\$DEST_IP)   destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed"
 | 
					    echo "  -d : (\$DEST_IP)   destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed"
 | 
				
			||||||
    echo "  -m : (\$DST_MAC)   destination MAC-addr"
 | 
					    echo "  -m : (\$DST_MAC)   destination MAC-addr"
 | 
				
			||||||
    echo "  -p : (\$DST_PORT)  destination PORT range (e.g. 433-444) is also allowed"
 | 
					    echo "  -p : (\$DST_PORT)  destination PORT range (e.g. 433-444) is also allowed"
 | 
				
			||||||
 | 
					    echo "  -k : (\$UDP_CSUM)  enable UDP tx checksum"
 | 
				
			||||||
    echo "  -t : (\$THREADS)   threads to start"
 | 
					    echo "  -t : (\$THREADS)   threads to start"
 | 
				
			||||||
    echo "  -f : (\$F_THREAD)  index of first thread (zero indexed CPU number)"
 | 
					    echo "  -f : (\$F_THREAD)  index of first thread (zero indexed CPU number)"
 | 
				
			||||||
    echo "  -c : (\$SKB_CLONE) SKB clones send before alloc new SKB"
 | 
					    echo "  -c : (\$SKB_CLONE) SKB clones send before alloc new SKB"
 | 
				
			||||||
| 
						 | 
					@ -26,7 +27,7 @@ function usage() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##  --- Parse command line arguments / parameters ---
 | 
					##  --- Parse command line arguments / parameters ---
 | 
				
			||||||
## echo "Commandline options:"
 | 
					## echo "Commandline options:"
 | 
				
			||||||
while getopts "s:i:d:m:p:f:t:c:n:b:w:vxh6a" option; do
 | 
					while getopts "s:i:d:m:p:f:t:c:n:b:w:vxh6ak" option; do
 | 
				
			||||||
    case $option in
 | 
					    case $option in
 | 
				
			||||||
        i) # interface
 | 
					        i) # interface
 | 
				
			||||||
          export DEV=$OPTARG
 | 
					          export DEV=$OPTARG
 | 
				
			||||||
| 
						 | 
					@ -88,6 +89,10 @@ while getopts "s:i:d:m:p:f:t:c:n:b:w:vxh6a" option; do
 | 
				
			||||||
          export APPEND=yes
 | 
					          export APPEND=yes
 | 
				
			||||||
          info "Append mode: APPEND=$APPEND"
 | 
					          info "Append mode: APPEND=$APPEND"
 | 
				
			||||||
          ;;
 | 
					          ;;
 | 
				
			||||||
 | 
					        k)
 | 
				
			||||||
 | 
					          export UDP_CSUM=yes
 | 
				
			||||||
 | 
					          info "UDP tx checksum: UDP_CSUM=$UDP_CSUM"
 | 
				
			||||||
 | 
					          ;;
 | 
				
			||||||
        h|?|*)
 | 
					        h|?|*)
 | 
				
			||||||
          usage;
 | 
					          usage;
 | 
				
			||||||
          err 2 "[ERROR] Unknown parameters!!!"
 | 
					          err 2 "[ERROR] Unknown parameters!!!"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,6 +72,8 @@ if [ -n "$DST_PORT" ]; then
 | 
				
			||||||
    pg_set $DEV "udp_dst_max $UDP_DST_MAX"
 | 
					    pg_set $DEV "udp_dst_max $UDP_DST_MAX"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ ! -z "$UDP_CSUM" ] && pg_set $dev "flag UDPCSUM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Setup random UDP port src range
 | 
					# Setup random UDP port src range
 | 
				
			||||||
pg_set $DEV "flag UDPSRC_RND"
 | 
					pg_set $DEV "flag UDPSRC_RND"
 | 
				
			||||||
pg_set $DEV "udp_src_min $UDP_SRC_MIN"
 | 
					pg_set $DEV "udp_src_min $UDP_SRC_MIN"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,6 +75,8 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
 | 
				
			||||||
	pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
						pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [ ! -z "$UDP_CSUM" ] && pg_set $dev "flag UDPCSUM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Setup random UDP port src range
 | 
					    # Setup random UDP port src range
 | 
				
			||||||
    pg_set $dev "flag UDPSRC_RND"
 | 
					    pg_set $dev "flag UDPSRC_RND"
 | 
				
			||||||
    pg_set $dev "udp_src_min $UDP_SRC_MIN"
 | 
					    pg_set $dev "udp_src_min $UDP_SRC_MIN"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,6 +73,8 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
 | 
				
			||||||
	pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
						pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [ ! -z "$UDP_CSUM" ] && pg_set $dev "flag UDPCSUM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # 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)
 | 
				
			||||||
    if [[ ${BURST} -ne 0 ]]; then
 | 
					    if [[ ${BURST} -ne 0 ]]; then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,6 +72,8 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
 | 
				
			||||||
	pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
						pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [ ! -z "$UDP_CSUM" ] && pg_set $dev "flag UDPCSUM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Randomize source IP-addresses
 | 
					    # Randomize source IP-addresses
 | 
				
			||||||
    pg_set $dev "flag IPSRC_RND"
 | 
					    pg_set $dev "flag IPSRC_RND"
 | 
				
			||||||
    pg_set $dev "src_min $SRC_MIN"
 | 
					    pg_set $dev "src_min $SRC_MIN"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,6 +62,8 @@ for ((thread = $F_THREAD; thread <= $L_THREAD; thread++)); do
 | 
				
			||||||
	pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
						pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [ ! -z "$UDP_CSUM" ] && pg_set $dev "flag UDPCSUM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Setup source IP-addresses based on thread number
 | 
					    # Setup source IP-addresses based on thread number
 | 
				
			||||||
    pg_set $dev "src_min 198.18.$((thread+1)).1"
 | 
					    pg_set $dev "src_min 198.18.$((thread+1)).1"
 | 
				
			||||||
    pg_set $dev "src_max 198.18.$((thread+1)).1"
 | 
					    pg_set $dev "src_max 198.18.$((thread+1)).1"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,6 +92,8 @@ for ((i = 0; i < $THREADS; i++)); do
 | 
				
			||||||
	pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
						pg_set $dev "udp_dst_max $UDP_DST_MAX"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [ ! -z "$UDP_CSUM" ] && pg_set $dev "flag UDPCSUM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Setup random UDP port src range
 | 
					    # Setup random UDP port src range
 | 
				
			||||||
    pg_set $dev "flag UDPSRC_RND"
 | 
					    pg_set $dev "flag UDPSRC_RND"
 | 
				
			||||||
    pg_set $dev "udp_src_min $UDP_SRC_MIN"
 | 
					    pg_set $dev "udp_src_min $UDP_SRC_MIN"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue