# SPDX-License-Identifier: GPL-2.0 source ../rif_counter_scale.sh rif_counter_get_target() { local should_fail=$1; shift local max_cnts local max_rifs local target max_rifs=$(devlink_resource_size_get rifs) max_cnts=$(devlink_resource_size_get counters rif) # Remove already allocated RIFs. ((max_rifs -= $(devlink_resource_occ_get rifs))) # 10 KVD slots per counter, ingress+egress counters per RIF ((max_cnts /= 20)) # Pointless to run the overflow test if we don't have enough RIFs to # host all the counters. if ((max_cnts > max_rifs && should_fail)); then echo 0 return fi target=$((max_rifs < max_cnts ? max_rifs : max_cnts)) if ((! should_fail)); then echo $target else echo $((target + 1)) fi }