mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
qosmngr: update qos stats as per feedback
- All params apart from ifname converted to intergers. - Output of stats for a particular interface now available. - The ubus call accepts qid as integer.
This commit is contained in:
parent
61d9885cd5
commit
123e2df9fa
2 changed files with 34 additions and 16 deletions
|
|
@ -327,6 +327,7 @@ configure_qos() {
|
||||||
}
|
}
|
||||||
|
|
||||||
get_queue_stats() {
|
get_queue_stats() {
|
||||||
|
local ifname
|
||||||
json_init
|
json_init
|
||||||
json_add_array "queues"
|
json_add_array "queues"
|
||||||
i=0
|
i=0
|
||||||
|
|
@ -339,6 +340,13 @@ get_queue_stats() {
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
if [ "$ifname" != "$1" ]; then
|
||||||
|
i=$((i + 1))
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
order=$(uci -q get qos.@queue[$i].precedence)
|
order=$(uci -q get qos.@queue[$i].precedence)
|
||||||
stats="$(tmctl getqstats --devtype 0 --if $ifname --qid $order)"
|
stats="$(tmctl getqstats --devtype 0 --if $ifname --qid $order)"
|
||||||
ret="$(echo $stats | awk '{print substr($0,0,5)}')"
|
ret="$(echo $stats | awk '{print substr($0,0,5)}')"
|
||||||
|
|
@ -348,8 +356,9 @@ get_queue_stats() {
|
||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
json_add_object ""
|
json_add_object ""
|
||||||
json_add_string "qid" "$order"
|
json_add_int "qid" "$order"
|
||||||
json_add_string "iface" "$ifname"
|
json_add_string "iface" "$ifname"
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
|
@ -367,21 +376,22 @@ get_queue_stats() {
|
||||||
# convert to iopsyswrt names
|
# convert to iopsyswrt names
|
||||||
case "$pname" in
|
case "$pname" in
|
||||||
txPackets)
|
txPackets)
|
||||||
json_add_string "tx_packets" "$val"
|
json_add_int "tx_packets" "$val"
|
||||||
;;
|
;;
|
||||||
txBytes)
|
txBytes)
|
||||||
json_add_string "tx_bytes" "$val"
|
json_add_int "tx_bytes" "$val"
|
||||||
;;
|
;;
|
||||||
droppedPackets)
|
droppedPackets)
|
||||||
json_add_string "tx_dropped_packets" "$val"
|
json_add_int "tx_dropped_packets" "$val"
|
||||||
;;
|
;;
|
||||||
droppedBytes)
|
droppedBytes)
|
||||||
json_add_string "tx_dropped_bytes" "$val"
|
json_add_int "tx_dropped_bytes" "$val"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
json_close_object
|
json_close_object
|
||||||
|
|
||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -414,7 +424,7 @@ get_eth_q_stats() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
json_add_object ""
|
json_add_object ""
|
||||||
json_add_string "qid" "$qid"
|
json_add_int "qid" "$qid"
|
||||||
json_add_string "iface" "$ifname"
|
json_add_string "iface" "$ifname"
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
|
@ -432,16 +442,16 @@ get_eth_q_stats() {
|
||||||
# convert to iopsyswrt names
|
# convert to iopsyswrt names
|
||||||
case "$pname" in
|
case "$pname" in
|
||||||
txPackets)
|
txPackets)
|
||||||
json_add_string "tx_packets" "$val"
|
json_add_int "tx_packets" "$val"
|
||||||
;;
|
;;
|
||||||
txBytes)
|
txBytes)
|
||||||
json_add_string "tx_bytes" "$val"
|
json_add_int "tx_bytes" "$val"
|
||||||
;;
|
;;
|
||||||
droppedPackets)
|
droppedPackets)
|
||||||
json_add_string "tx_dropped_packets" "$val"
|
json_add_int "tx_dropped_packets" "$val"
|
||||||
;;
|
;;
|
||||||
droppedBytes)
|
droppedBytes)
|
||||||
json_add_string "tx_dropped_bytes" "$val"
|
json_add_int "tx_dropped_bytes" "$val"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
@ -451,3 +461,14 @@ get_eth_q_stats() {
|
||||||
json_close_array
|
json_close_array
|
||||||
json_dump
|
json_dump
|
||||||
}
|
}
|
||||||
|
|
||||||
|
read_queue_stats() {
|
||||||
|
itf="$1"
|
||||||
|
q_idx="$2"
|
||||||
|
|
||||||
|
if [ -n "$itf" -a -n "$q_idx" ]; then
|
||||||
|
get_eth_q_stats $itf $q_idx
|
||||||
|
else
|
||||||
|
get_queue_stats $itf
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ include /lib/qos
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
list)
|
list)
|
||||||
echo '{ "queue_stats": { "ifname":"string", "qid":"string" } }'
|
echo '{ "queue_stats": { "ifname":"String", "qid":"Integer" } }'
|
||||||
|
|
||||||
;;
|
;;
|
||||||
call)
|
call)
|
||||||
|
|
@ -16,11 +16,8 @@ case "$1" in
|
||||||
json_load "$input"
|
json_load "$input"
|
||||||
json_get_var iface ifname
|
json_get_var iface ifname
|
||||||
json_get_var qid qid
|
json_get_var qid qid
|
||||||
if [ -n "$iface" -a -n "$qid" ]; then
|
|
||||||
get_eth_q_stats $iface $qid
|
read_queue_stats $iface $qid
|
||||||
else
|
|
||||||
get_queue_stats
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue