mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
50 lines
1.2 KiB
Bash
Executable file
50 lines
1.2 KiB
Bash
Executable file
#!/bin/sh
|
|
# Handle queues and their order
|
|
|
|
Q_COUNT=0
|
|
|
|
# Preliminary configuration of a queue
|
|
pre_configure_queue() {
|
|
# Delete queues
|
|
hw_queue_init_all
|
|
|
|
for intf in $(db get hw.board.ethernetPortOrder); do
|
|
hw_intf_init "${intf}"
|
|
done
|
|
}
|
|
|
|
# UCI queue section handler
|
|
handle_queue() {
|
|
local qid="$1" #queue section ID
|
|
local intf_name="$2"
|
|
|
|
config_get is_enable "$qid" "enable" 1
|
|
|
|
# no need to configure disabled queues
|
|
if [ "${is_enable}" == "0" ]; then
|
|
return
|
|
fi
|
|
|
|
config_get ifname "$qid" "ifname"
|
|
# if ifname is empty that is good enough to break
|
|
if [ -z "$ifname" ];then
|
|
return
|
|
fi
|
|
|
|
config_get sc_alg "$qid" "scheduling"
|
|
config_get wgt "$qid" "weight" 1
|
|
config_get rate "$qid" "rate"
|
|
config_get bs "$qid" "burst_size"
|
|
config_get qsize "$qid" "queue_size" 1024
|
|
config_get precedence "$qid" "precedence"
|
|
|
|
hw_queue_set "${ifname}" "${Q_COUNT}" "${precedence}" "$qsize" "$wgt" "$sc_alg" "$shapingrate" "$rate" "$bs"
|
|
Q_COUNT=$((Q_COUNT + 1))
|
|
}
|
|
|
|
# Configure all queues specified in UCI tree 'qos.queue'
|
|
configure_queue() {
|
|
# Load UCI file
|
|
config_load qos
|
|
config_foreach handle_queue queue
|
|
}
|