Same as for other network interfaces, the option 'metric' should be respected.

(Unfortunately I could not test these changes, since I don't have these modems
and QMI is broken on trunk for me... But the same method is used in the
"HiLink" script I just added before.)

Signed-off-by: Bruno Randolf <b...@einfach.org>
---
 package/network/utils/comgt/files/directip.sh              |  7 +++++--
 package/network/utils/comgt/files/ncm.sh                   |  7 +++++--
 package/network/utils/umbim/files/lib/netifd/proto/mbim.sh |  7 +++++--
 package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh   | 11 +++++++----
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/package/network/utils/comgt/files/directip.sh 
b/package/network/utils/comgt/files/directip.sh
index d828052..048b647 100644
--- a/package/network/utils/comgt/files/directip.sh
+++ b/package/network/utils/comgt/files/directip.sh
@@ -15,14 +15,15 @@ proto_directip_init_config() {
        proto_config_add_string "auth"
        proto_config_add_string "username"
        proto_config_add_string "password"
+       proto_config_add_string "metric"
 }
 
 proto_directip_setup() {
        local interface="$1"
        local chat devpath devname
 
-       local device apn pincode ifname auth username password
-       json_get_vars device apn pincode auth username password
+       local device apn pincode ifname auth username password metric
+       json_get_vars device apn pincode auth username password metric
 
        [ -n "$ctl_device" ] && device=$ctl_device
 
@@ -80,6 +81,7 @@ proto_directip_setup() {
        json_add_string name "${interface}_4"
        json_add_string ifname "@$interface"
        json_add_string proto "dhcp"
+       json_add_int metric $metric
        ubus call network add_dynamic "$(json_dump)"
 
        json_init
@@ -87,6 +89,7 @@ proto_directip_setup() {
        json_add_string ifname "@$interface"
        json_add_string proto "dhcpv6"
        json_add_string extendprefix 1
+       json_add_int metric $metric
        ubus call network add_dynamic "$(json_dump)"
 
        return 0
diff --git a/package/network/utils/comgt/files/ncm.sh 
b/package/network/utils/comgt/files/ncm.sh
index 571cfaa..39bdaaf 100644
--- a/package/network/utils/comgt/files/ncm.sh
+++ b/package/network/utils/comgt/files/ncm.sh
@@ -19,6 +19,7 @@ proto_ncm_init_config() {
        proto_config_add_string mode
        proto_config_add_string pdptype
        proto_config_add_boolean ipv6
+       proto_config_add_string metric
 }
 
 proto_ncm_setup() {
@@ -26,8 +27,8 @@ proto_ncm_setup() {
 
        local manufacturer initialize setmode connect ifname devname devpath
 
-       local device apn auth username password pincode delay mode pdptype ipv6
-       json_get_vars device apn auth username password pincode delay mode 
pdptype ipv6
+       local device apn auth username password pincode delay mode pdptype ipv6 
metric
+       json_get_vars device apn auth username password pincode delay mode 
pdptype ipv6 metric
        
        if [ "$ipv6" = 0 ]; then
                ipv6=""
@@ -141,6 +142,7 @@ proto_ncm_setup() {
        json_add_string name "${interface}_4"
        json_add_string ifname "@$interface"
        json_add_string proto "dhcp"
+       json_add_int metric $metric
        ubus call network add_dynamic "$(json_dump)"
 
        [ -n "$ipv6" ] && {
@@ -149,6 +151,7 @@ proto_ncm_setup() {
                json_add_string ifname "@$interface"
                json_add_string proto "dhcpv6"
                json_add_string extendprefix 1
+               json_add_int metric $metric
                ubus call network add_dynamic "$(json_dump)"
        }
 }
diff --git a/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh 
b/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh
index f8b2c06..ab62ed6 100755
--- a/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh
+++ b/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh
@@ -17,6 +17,7 @@ proto_mbim_init_config() {
        proto_config_add_string auth
        proto_config_add_string username
        proto_config_add_string password
+       proto_config_add_string metric
 }
 
 _proto_mbim_setup() {
@@ -24,8 +25,8 @@ _proto_mbim_setup() {
        local tid=2
        local ret
 
-       local device apn pincode delay
-       json_get_vars device apn pincode delay auth username password
+       local device apn pincode delay metric
+       json_get_vars device apn pincode delay auth username password metric
 
        [ -n "$ctl_device" ] && device=$ctl_device
 
@@ -130,6 +131,7 @@ _proto_mbim_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)"
 
@@ -138,6 +140,7 @@ _proto_mbim_setup() {
        json_add_string ifname "@$interface"
        json_add_string proto "dhcpv6"
        json_add_string extendprefix 1
+       json_add_int metric $metric
        ubus call network add_dynamic "$(json_dump)"
 }
 
diff --git a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh 
b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
index 48864be..b129a7c 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -19,15 +19,16 @@ proto_qmi_init_config() {
        proto_config_add_string modes
        proto_config_add_boolean ipv6
        proto_config_add_boolean dhcp
+       proto_config_add_string 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
 
@@ -152,7 +153,7 @@ proto_qmi_setup() {
                        proto_add_ipv4_address "$ip" "$subnet"
                        proto_add_dns_server "$dns1"
                        proto_add_dns_server "$dns2"
-                       proto_add_ipv4_route "0.0.0.0" 0 "$gateway"
+                       proto_add_ipv4_route "0.0.0.0" 0 "$gateway" "" "$metric"
                        proto_add_data
                        json_add_string "cid_4" "$cid_4"
                        json_add_string "pdh_4" "$pdh_4"
@@ -175,7 +176,7 @@ proto_qmi_setup() {
                        proto_add_ipv6_address "$ip_6" "128"
                        proto_add_ipv6_prefix "${ip_6}/${ip_prefix_length}"
                        proto_add_ipv6_route "$gateway_6" "128"
-                       proto_add_ipv6_route "::0" 0 "$gateway_6" "" "" 
"${ip_6}/${ip_prefix_length}"
+                       proto_add_ipv6_route "::0" 0 "$gateway_6" "$metric" "" 
"${ip_6}/${ip_prefix_length}"
                        proto_add_dns_server "$dns1_6"
                        proto_add_dns_server "$dns2_6"
                        proto_add_data
@@ -204,6 +205,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)"
                }
@@ -215,6 +217,7 @@ proto_qmi_setup() {
                        json_add_string proto "dhcpv6"
                        # RFC 7278: Extend an IPv6 /64 Prefix to LAN
                        json_add_string extendprefix 1
+                       json_add_int metric $metric
                        json_close_object
                        ubus call network add_dynamic "$(json_dump)"
                }
-- 
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to