~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/bpf/test_xsk.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/testing/selftests/bpf/test_xsk.sh (Version linux-6.12-rc7) and /tools/testing/selftests/bpf/test_xsk.sh (Version linux-2.6.32.71)


  1 #!/bin/bash                                       
  2 # SPDX-License-Identifier: GPL-2.0                
  3 # Copyright(c) 2020 Intel Corporation, Weqaar <    
  4                                                   
  5 # AF_XDP selftests based on veth                  
  6 #                                                 
  7 # End-to-end AF_XDP over Veth test                
  8 #                                                 
  9 # Topology:                                       
 10 # ---------                                       
 11 #                 -----------                     
 12 #               _ | Process | _                   
 13 #              /  -----------  \                  
 14 #             /        |        \                 
 15 #            /         |         \                
 16 #      -----------     |     -----------          
 17 #      | Thread1 |     |     | Thread2 |          
 18 #      -----------     |     -----------          
 19 #           |          |          |               
 20 #      -----------     |     -----------          
 21 #      |  xskX   |     |     |  xskY   |          
 22 #      -----------     |     -----------          
 23 #           |          |          |               
 24 #      -----------     |     ----------           
 25 #      |  vethX  | --------- |  vethY |           
 26 #      -----------   peer    ----------           
 27 #                                                 
 28 # AF_XDP is an address family optimized for hi    
 29 # it is XDP’s user-space interface.             
 30 #                                                 
 31 # An AF_XDP socket is linked to a single UMEM     
 32 # contiguous memory, divided into equal-sized     
 33 #                                                 
 34 # Refer to AF_XDP Kernel Documentation for det    
 35 # https://www.kernel.org/doc/html/latest/netwo    
 36 #                                                 
 37 # Prerequisites setup by script:                  
 38 #                                                 
 39 #   Set up veth interfaces as per the topology    
 40 #   * setup two veth interfaces                   
 41 #   ** veth<xxxx>                                 
 42 #   ** veth<yyyy>                                 
 43 #   *** xxxx and yyyy are randomly generated 4    
 44 #       conflict with any existing interface      
 45 #   * tests the veth and xsk layers of the top    
 46 #                                                 
 47 # See the source xskxceiver.c for information     
 48 #                                                 
 49 # Kernel configuration:                           
 50 # ---------------------                           
 51 # See "config" file for recommended kernel con    
 52 #                                                 
 53 # Turn on XDP sockets and veth support when co    
 54 #       Networking support -->                    
 55 #               Networking options -->            
 56 #                       [ * ] XDP sockets         
 57 #                                                 
 58 # Executing Tests:                                
 59 # ----------------                                
 60 # Must run with CAP_NET_ADMIN capability.         
 61 #                                                 
 62 # Run:                                            
 63 #   sudo ./test_xsk.sh                            
 64 #                                                 
 65 # If running from kselftests:                     
 66 #   sudo make run_tests                           
 67 #                                                 
 68 # Run with verbose output:                        
 69 #   sudo ./test_xsk.sh -v                         
 70 #                                                 
 71 # Set up veth interfaces and leave them up so     
 72 #   sudo ./test_xsk.sh -d                         
 73 #                                                 
 74 # Run test suite for physical device in loopba    
 75 #   sudo ./test_xsk.sh -i IFACE                   
 76 #                                                 
 77 # Run test suite in a specific mode only [skb,    
 78 #   sudo ./test_xsk.sh -m MODE                    
 79 #                                                 
 80 # List available tests                            
 81 #   ./test_xsk.sh -l                              
 82 #                                                 
 83 # Run a specific test from the test suite         
 84 #   sudo ./test_xsk.sh -t TEST_NAME               
 85 #                                                 
 86 # Display the available command line options      
 87 #   ./test_xsk.sh -h                              
 88                                                   
 89 . xsk_prereqs.sh                                  
 90                                                   
 91 ETH=""                                            
 92                                                   
 93 while getopts "vi:dm:lt:h" flag                   
 94 do                                                
 95         case "${flag}" in                         
 96                 v) verbose=1;;                    
 97                 d) debug=1;;                      
 98                 i) ETH=${OPTARG};;                
 99                 m) MODE=${OPTARG};;               
100                 l) list=1;;                       
101                 t) TEST=${OPTARG};;               
102                 h) help=1;;                       
103         esac                                      
104 done                                              
105                                                   
106 TEST_NAME="PREREQUISITES"                         
107                                                   
108 URANDOM=/dev/urandom                              
109 [ ! -e "${URANDOM}" ] && { echo "${URANDOM} no    
110                                                   
111 VETH0_POSTFIX=$(cat ${URANDOM} | tr -dc '0-9'     
112 VETH0=ve${VETH0_POSTFIX}                          
113 VETH1_POSTFIX=$(cat ${URANDOM} | tr -dc '0-9'     
114 VETH1=ve${VETH1_POSTFIX}                          
115 MTU=1500                                          
116                                                   
117 trap ctrl_c INT                                   
118                                                   
119 function ctrl_c() {                               
120         cleanup_exit ${VETH0} ${VETH1}            
121         exit 1                                    
122 }                                                 
123                                                   
124 setup_vethPairs() {                               
125         if [[ $verbose -eq 1 ]]; then             
126                 echo "setting up ${VETH0}"        
127         fi                                        
128         ip link add ${VETH0} numtxqueues 4 num    
129         if [ -f /proc/net/if_inet6 ]; then        
130                 echo 1 > /proc/sys/net/ipv6/co    
131                 echo 1 > /proc/sys/net/ipv6/co    
132         fi                                        
133         if [[ $verbose -eq 1 ]]; then             
134                 echo "setting up ${VETH1}"        
135         fi                                        
136                                                   
137         if [[ $busy_poll -eq 1 ]]; then           
138                 echo 2 > /sys/class/net/${VETH    
139                 echo 200000 > /sys/class/net/$    
140                 echo 2 > /sys/class/net/${VETH    
141                 echo 200000 > /sys/class/net/$    
142         fi                                        
143                                                   
144         ip link set ${VETH1} mtu ${MTU}           
145         ip link set ${VETH0} mtu ${MTU}           
146         ip link set ${VETH1} up                   
147         ip link set ${VETH0} up                   
148 }                                                 
149                                                   
150 if [[ $list -eq 1 ]]; then                        
151         ./${XSKOBJ} -l                            
152         exit                                      
153 fi                                                
154                                                   
155 if [[ $help -eq 1 ]]; then                        
156         ./${XSKOBJ}                               
157         exit                                      
158 fi                                                
159                                                   
160 if [ ! -z $ETH ]; then                            
161         VETH0=${ETH}                              
162         VETH1=${ETH}                              
163 else                                              
164         validate_root_exec                        
165         validate_veth_support ${VETH0}            
166         validate_ip_utility                       
167         setup_vethPairs                           
168                                                   
169         retval=$?                                 
170         if [ $retval -ne 0 ]; then                
171                 test_status $retval "${TEST_NA    
172                 cleanup_exit ${VETH0} ${VETH1}    
173                 exit $retval                      
174         fi                                        
175 fi                                                
176                                                   
177                                                   
178 if [[ $verbose -eq 1 ]]; then                     
179         ARGS+="-v "                               
180 fi                                                
181                                                   
182 if [ -n "$MODE" ]; then                           
183         ARGS+="-m ${MODE} "                       
184 fi                                                
185                                                   
186 if [ -n "$TEST" ]; then                           
187         ARGS+="-t ${TEST} "                       
188 fi                                                
189                                                   
190 retval=$?                                         
191 test_status $retval "${TEST_NAME}"                
192                                                   
193 ## START TESTS                                    
194                                                   
195 statusList=()                                     
196                                                   
197 TEST_NAME="XSK_SELFTESTS_${VETH0}_SOFTIRQ"        
198                                                   
199 if [[ $debug -eq 1 ]]; then                       
200     echo "-i" ${VETH0} "-i" ${VETH1}              
201     exit                                          
202 fi                                                
203                                                   
204 exec_xskxceiver                                   
205                                                   
206 if [ -z $ETH ]; then                              
207         cleanup_exit ${VETH0} ${VETH1}            
208 else                                              
209         cleanup_iface ${ETH} ${MTU}               
210 fi                                                
211                                                   
212 if [[ $list -eq 1 ]]; then                        
213     exit                                          
214 fi                                                
215                                                   
216 TEST_NAME="XSK_SELFTESTS_${VETH0}_BUSY_POLL"      
217 busy_poll=1                                       
218                                                   
219 if [ -z $ETH ]; then                              
220         setup_vethPairs                           
221 fi                                                
222 exec_xskxceiver                                   
223                                                   
224 ## END TESTS                                      
225                                                   
226 if [ -z $ETH ]; then                              
227         cleanup_exit ${VETH0} ${VETH1}            
228 else                                              
229         cleanup_iface ${ETH} ${MTU}               
230 fi                                                
231                                                   
232 failures=0                                        
233 echo -e "\nSummary:"                              
234 for i in "${!statusList[@]}"                      
235 do                                                
236         if [ ${statusList[$i]} -ne 0 ]; then      
237                 test_status ${statusList[$i]}     
238                 failures=1                        
239         fi                                        
240 done                                              
241                                                   
242 if [ $failures -eq 0 ]; then                      
243         echo "All tests successful!"              
244 fi                                                
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php