1 # SPDX-License-Identifier: GPL-2.0 2 source ../rif_counter_scale.sh 3 4 rif_counter_get_target() 5 { 6 local should_fail=$1; shift 7 local max_cnts 8 local max_rifs 9 local target 10 11 max_rifs=$(devlink_resource_size_get rifs) 12 max_cnts=$(devlink_resource_size_get counters rif) 13 14 # Remove already allocated RIFs. 15 ((max_rifs -= $(devlink_resource_occ_get rifs))) 16 17 # 10 KVD slots per counter, ingress+egress counters per RIF 18 ((max_cnts /= 20)) 19 20 # Pointless to run the overflow test if we don't have enough RIFs to 21 # host all the counters. 22 if ((max_cnts > max_rifs && should_fail)); then 23 echo 0 24 return 25 fi 26 27 target=$((max_rifs < max_cnts ? max_rifs : max_cnts)) 28 29 if ((! should_fail)); then 30 echo $target 31 else 32 echo $((target + 1)) 33 fi 34 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.