qosify: add support for configuring overhead
authorFelix Fietkau <nbd@nbd.name>
Sun, 21 Nov 2021 12:46:41 +0000 (13:46 +0100)
committerFelix Fietkau <nbd@nbd.name>
Sun, 21 Nov 2021 12:47:18 +0000 (13:47 +0100)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/config/qosify/files/qosify.conf
package/network/config/qosify/files/qosify.init

index 865a023390fdaa0002c36e6ad4c4ba7fb6015dd7..ac3423a8d4a63a86207a48eb34b547892a8ce7d6 100644 (file)
@@ -28,6 +28,7 @@ config interface wan
        option disabled 1
        option bandwidth_up 100mbit
        option bandwidth_down 100mbit
+       option overhead_type none
        # defaults:
        option ingress 1
        option egress 1
index eca79e6024c8650637a40f2acd9ac4e8e74879ba..f676d92a52e4f87275f9000d5955aa28e9d1820e 100644 (file)
@@ -72,7 +72,46 @@ add_interface() {
        add_option boolean autorate_ingress
        add_option string ingress_options
        add_option string egress_options
-       add_option string options
+
+       config_get user_options "$cfg" options
+
+       config_get otype "$cfg" overhead_type
+       options=
+       case "$otype" in
+               none);;
+               manual)
+                       config_get overhead "$cfg" overhead
+                       [ -n "$overhead" ] && append options "overhead $overhead"
+
+                       config_get encap "$cfg" overhead_encap
+                       [ -n "$encap" ] && append options "$encap"
+               ;;
+               conservative|\
+               pppoa-vcmux|\
+               pppoa-llc|\
+               pppoe-vcmux|\
+               pppoe-llcsnap|\
+               bridged-vcmux|\
+               bridged-llcsnap|\
+               ipoa-vcmux|\
+               ipoa-llcsnap|\
+               pppoe-ptm|\
+               bridged-ptm|\
+               docsis|\
+               ethernet)
+                       append options "$otype"
+               ;;
+       esac
+
+       config_get mpu "$cfg" overhead_mpu
+       [ -n "$mpu" ] && append options "mpu $mpu"
+
+       config_get ovlan "$cfg" overhead_vlan
+       [ "${ovlan:-0}" -ge 2 ] && append options "ether-vlan"
+       [ "${ovlan:-0}" -ge 1 ] && append options "ether-vlan"
+
+       [ -n "$user_options" ] && append options "$user_options"
+       [ -n "$options" ] && json_add_string options "$options"
 
        json_close_object
 }