12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/sh
- # Copyright (C) 2011 OpenWrt.org
- . /lib/functions.sh
- include /lib/network
- get_ifname() {
- local interface="$1"
- local cfgt
- scan_interfaces
- config_get cfgt "$interface" TYPE
- [ "$cfgt" = "interface" ] && config_get "$interface" ifname
- }
- config_cb() {
- config_get TYPE "$CONFIG_SECTION" TYPE
- [ "interface" = "$TYPE" ] && {
- config_get device "$CONFIG_SECTION" ifname
- [ -z "$device" ] && device="$(get_ifname ${CONFIG_SECTION})"
- config_set "$CONFIG_SECTION" device "$device"
- }
- }
- config_load qos
- print_comments() {
- echo ''
- echo '# Interface: '"$1"
- echo '# Direction: '"$2"
- echo '# Stats: '"$3"
- echo ''
- }
- get_device() {
- ( config_load network; scan_interfaces; config_get "$1" ifname )
- }
- interface_stats() {
- local interface="$1"
- local device
- device="$(get_device "$interface")"
- [ -z "$device" ] && config_get device "$interface" device
- config_get_bool enabled "$interface" enabled 1
- [ -z "$device" -o 1 -ne "$enabled" ] && {
- return 1
- }
- config_get_bool halfduplex "$interface" halfduplex 0
- if [ 1 -ne "$halfduplex" ]; then
- unset halfduplex
- print_comments "$interface" "Egress" "Start"
- tc -s class show dev "$device"
- print_comments "$interface" "Egress" "End"
- id="root"
- else
- id=""
- fi
- print_comments "$interface" "Ingress${halfduplex:+/Egress}" "Start"
- tc -s class show dev "$(tc filter show dev $device $id | grep mirred | sed -e 's,.*\(ifb.*\)).*,\1,')"
- print_comments "$interface" "Ingress${halfduplex:+/Egress}" "End"
- }
- [ -z "$1" ] && config_foreach interface_stats interface || interface_stats "$1"
|