tc-policy: Adapt XPS script to work with ash on Yocto

The Yocto build this is intended for doesn't have /bin/bash
adapt script.

External program "getopt" not avail.

The 'sort' tool is also different, as it comes from busybox.
Adapt the cmdline options for 'sort'.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
This commit is contained in:
Jesper Dangaard Brouer
2022-01-31 10:11:40 +01:00
parent fb84a226b0
commit b1efd37ed5

View File

@@ -1,5 +1,9 @@
#!/bin/bash #!/bin/sh
# #
# This script is a modified version of:
# https://github.com/xdp-project/xdp-cpumap-tc/blob/master/bin/xps_setup.sh
#
# Script simplied for work with shell: ash
function usage() { function usage() {
echo "Change setting of XPS txq to CPU mapping via files" echo "Change setting of XPS txq to CPU mapping via files"
@@ -49,7 +53,7 @@ function mask_to_cpus() {
} }
function sorted_txq_xps_cpus() { function sorted_txq_xps_cpus() {
local queues=$(ls /sys/class/net/$DEV/queues/tx-*/xps_cpus | sort --field-separator='-' -k2n) local queues=$(ls /sys/class/net/$DEV/queues/tx-*/xps_cpus | sort -t '-' -k2n)
echo $queues echo $queues
} }
@@ -108,13 +112,13 @@ function xps_setup_1to1_mapping() {
} }
# Using external program "getopt" to get --long-options # Using external program "getopt" to get --long-options
OPTIONS=$(getopt -o ld: \ ## OPTIONS=$(getopt -o ld: \
--long list,default,disable,dev:,txq:,cpu: -- "$@") ## --long list,default,disable,dev:,txq:,cpu: -- "$@")
if (( $? != 0 )); then ##if (( $? != 0 )); then
usage ## usage
err 2 "Error calling getopt" ## err 2 "Error calling getopt"
fi ##fi
eval set -- "$OPTIONS" ##eval set -- "$OPTIONS"
## --- Parse command line arguments / parameters --- ## --- Parse command line arguments / parameters ---
while true; do while true; do
@@ -191,6 +195,6 @@ if [[ "$DISABLE" == "yes" ]]; then
fi fi
fi fi
if [[ -n "$LIST" ]]; then #if [[ -n "$LIST" ]]; then
list_xps_setup list_xps_setup
fi #fi