uqmi: add metric option to interface config
[openwrt/staging/yousong.git] / package / network / utils / uqmi / files / lib / netifd / proto / qmi.sh
index 6dcc2266933067112a81b41f2639a39e180ce9d0..32df6ee9b16f6970e3f44512f86dfb2c0ad88239 100755 (executable)
@@ -19,20 +19,23 @@ proto_qmi_init_config() {
        proto_config_add_string modes
        proto_config_add_boolean ipv6
        proto_config_add_boolean dhcp
+       proto_config_add_int metric
 }
 
 proto_qmi_setup() {
        local interface="$1"
 
-       local device apn auth username password pincode delay modes ipv6 dhcp
+       local device apn auth username password pincode delay modes ipv6 dhcp metric
        local cid_4 pdh_4 cid_6 pdh_6 ipv4
        local ip subnet gateway dns1 dns2 ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
-       json_get_vars device apn auth username password pincode delay modes ipv6 dhcp
+       json_get_vars device apn auth username password pincode delay modes ipv6 dhcp metric
 
        ipv4=1
 
        [ "$ipv6" = 1 ] || ipv6=""
 
+       [ "$metric" = "" ] && metric="0"
+
        [ -n "$ctl_device" ] && device=$ctl_device
 
        [ -n "$device" ] || {
@@ -200,6 +203,7 @@ proto_qmi_setup() {
                        json_add_string name "${interface}_4"
                        json_add_string ifname "@$interface"
                        json_add_string proto "dhcp"
+                       json_add_int metric "$metric"
                        json_close_object
                        ubus call network add_dynamic "$(json_dump)"
                }
@@ -209,6 +213,7 @@ proto_qmi_setup() {
                        json_add_string name "${interface}_6"
                        json_add_string ifname "@$interface"
                        json_add_string proto "dhcpv6"
+                       json_add_int metric "$metric"
                        # RFC 7278: Extend an IPv6 /64 Prefix to LAN
                        json_add_string extendprefix 1
                        json_close_object