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

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/drivers/net/mlxsw/rif_mac_profile_scale.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 ] ~

  1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0
  3 
  4 # Test for RIF MAC profiles resource. The test adds VLAN netdevices according to
  5 # the maximum number of RIF MAC profiles, sets each of them with a random
  6 # MAC address, and checks that eventually the number of occupied RIF MAC
  7 # profiles equals the maximum number of RIF MAC profiles.
  8 
  9 
 10 RIF_MAC_PROFILE_NUM_NETIFS=2
 11 
 12 rif_mac_profiles_create()
 13 {
 14         local count=$1; shift
 15         local should_fail=$1; shift
 16         local batch_file="$(mktemp)"
 17 
 18         for ((i = 1; i <= count; i++)); do
 19                 vlan=$(( i*10 ))
 20                 m=$(( i*11 ))
 21 
 22                 cat >> $batch_file <<-EOF
 23                         link add link $h1 name $h1.$vlan \
 24                                 address 00:$m:$m:$m:$m:$m type vlan id $vlan
 25                         address add 192.0.$m.1/24 dev $h1.$vlan
 26                 EOF
 27         done
 28 
 29         ip -b $batch_file &> /dev/null
 30         check_err_fail $should_fail $? "RIF creation"
 31 
 32         rm -f $batch_file
 33 }
 34 
 35 rif_mac_profile_test()
 36 {
 37         local count=$1; shift
 38         local should_fail=$1; shift
 39 
 40         rif_mac_profiles_create $count $should_fail
 41 
 42         occ=$(devlink -j resource show $DEVLINK_DEV \
 43               | jq '.[][][] | select(.name=="rif_mac_profiles") |.["occ"]')
 44 
 45         [[ $occ -eq $count ]]
 46         check_err_fail $should_fail $? "Attempt to use $count profiles (actual result $occ)"
 47 }
 48 
 49 rif_mac_profile_setup_prepare()
 50 {
 51         h1=${NETIFS[p1]}
 52         h2=${NETIFS[p2]}
 53 
 54         # Disable IPv6 on the two interfaces to avoid IPv6 link-local addresses
 55         # being generated and RIFs being created.
 56         sysctl_set net.ipv6.conf.$h1.disable_ipv6 1
 57         sysctl_set net.ipv6.conf.$h2.disable_ipv6 1
 58 
 59         ip link set $h1 up
 60         ip link set $h2 up
 61 }
 62 
 63 rif_mac_profile_cleanup()
 64 {
 65         pre_cleanup
 66 
 67         ip link set $h2 down
 68         ip link set $h1 down
 69 
 70         sysctl_restore net.ipv6.conf.$h2.disable_ipv6
 71         sysctl_restore net.ipv6.conf.$h1.disable_ipv6
 72 }

~ [ 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