cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

port_scale.sh (1391B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4# Test for physical ports resource. The test splits each splittable port
      5# to its width and checks that eventually the number of physical ports equals
      6# the maximum number of physical ports.
      7
      8PORT_NUM_NETIFS=0
      9
     10declare -a unsplit
     11
     12port_setup_prepare()
     13{
     14	:
     15}
     16
     17port_cleanup()
     18{
     19	pre_cleanup
     20
     21	for port in "${unsplit[@]}"; do
     22		devlink port unsplit $port
     23		check_err $? "Did not unsplit $netdev"
     24	done
     25	unsplit=()
     26}
     27
     28split_all_ports()
     29{
     30	local should_fail=$1; shift
     31
     32	# Loop over the splittable netdevs and create tuples of netdev along
     33	# with its width. For example:
     34	# '$netdev1 $count1 $netdev2 $count2...', when:
     35	# $netdev1-2 are splittable netdevs in the device, and
     36	# $count1-2 are the netdevs width respectively.
     37	while read netdev count <<<$(
     38		devlink -j port show |
     39		jq -r '.[][] | select(.splittable==true) | "\(.netdev) \(.lanes)"'
     40		)
     41		[[ ! -z $netdev ]]
     42	do
     43		devlink port split $netdev count $count
     44		check_err $? "Did not split $netdev into $count"
     45		unsplit+=( "${netdev}s0" )
     46	done
     47}
     48
     49port_test()
     50{
     51	local max_ports=$1; shift
     52	local should_fail=$1; shift
     53
     54	split_all_ports $should_fail
     55
     56	occ=$(devlink -j resource show $DEVLINK_DEV \
     57	      | jq '.[][][] | select(.name=="physical_ports") |.["occ"]')
     58
     59	[[ $occ -eq $max_ports ]]
     60	check_err_fail $should_fail $? "Attempt to create $max_ports ports (actual result $occ)"
     61
     62}