From ca8df8a992211c7f61434372b07afcbe0d94ff9f Mon Sep 17 00:00:00 2001 From: Lech Perczak Date: Mon, 19 Jul 2021 21:28:07 +0200 Subject: umbim: use static config by default, fallback to DHCP Finally, inspired by ModemManager's logic, make static configuration obtained through MBIM control channel, preferred. If IP configuration is not available this way, fallback to DHCP(v6) if enabled, else do not create a sub-interface for unavailable IP type. Signed-off-by: Lech Perczak --- package/network/utils/umbim/files/lib/netifd/proto/mbim.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'package') 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 d8df783a92..294dc64400 100755 --- a/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh +++ b/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh @@ -179,8 +179,11 @@ _proto_mbim_setup() { proto_init_update "$ifname" 1 proto_send_update "$interface" + [ -z "$dhcp" ] && dhcp=1 + [ -z "$dhcpv6" ] && dhcpv6=1 + [ "$iptype" != "ipv6" ] && { - if [ -z "$dhcp" -o "$dhcp" = 0 ]; then + if [ -n "$ipv4address" ]; then json_init json_add_string name "${interface}_4" json_add_string ifname "@$interface" @@ -196,7 +199,7 @@ _proto_mbim_setup() { [ -n "$zone" ] && json_add_string zone "$zone" json_close_object ubus call network add_dynamic "$(json_dump)" - else + elif [ "$dhcp" != 0 ]; then echo "mbim[$$]" "Starting DHCP on $ifname" json_init json_add_string name "${interface}_4" @@ -210,7 +213,7 @@ _proto_mbim_setup() { } [ "$iptype" != "ipv4" ] && { - if [ -z "$dhcpv6" -o "$dhcpv6" = 0 ]; then + if [ -n "$ipv6address" ]; then json_init json_add_string name "${interface}_6" json_add_string ifname "@$interface" @@ -226,7 +229,7 @@ _proto_mbim_setup() { [ -n "$zone" ] && json_add_string zone "$zone" json_close_object ubus call network add_dynamic "$(json_dump)" - else + elif [ "$dhcpv6" != 0 ]; then echo "mbim[$$]" "Starting DHCPv6 on $ifname" json_init json_add_string name "${interface}_6" -- cgit v1.2.3