From: Lech Perczak Date: Mon, 19 Jul 2021 19:16:08 +0000 (+0200) Subject: umbim: restructure IPv4/IPv6 handling X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=03692dee736b98ba419d4e21e82819f93b637256;p=openwrt%2Fstaging%2Fblogic.git umbim: restructure IPv4/IPv6 handling Check whether interface is configured per IP type, not per DHCP. This is preparation to allow fallback to DHCP if static IP configuration is not available, which is the default option for MBIM modems Signed-off-by: Lech Perczak --- 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 e7866340aed4..9af5b69ac110 100755 --- a/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh +++ b/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh @@ -171,15 +171,15 @@ _proto_mbim_setup() { local zone="$(fw3 -q network "$interface" 2>/dev/null)" - if [ -z "$dhcp" -o "$dhcp" = 0 ]; then - echo "mbim[$$]" "Setting up $ifname" - eval $(umbim $DBG -n -t $tid -d $device config | sed 's/: /=/g') - tid=$((tid + 1)) + echo "mbim[$$]" "Setting up $ifname" + eval $(umbim $DBG -n -t $tid -d $device config | sed 's/: /=/g') + tid=$((tid + 1)) - proto_init_update "$ifname" 1 - proto_send_update "$interface" + proto_init_update "$ifname" 1 + proto_send_update "$interface" - [ "$iptype" != "ipv6" ] && { + [ "$iptype" != "ipv6" ] && { + if [ -z "$dhcp" -o "$dhcp" = 0 ]; then json_init json_add_string name "${interface}_4" json_add_string ifname "@$interface" @@ -195,9 +195,21 @@ _proto_mbim_setup() { [ -n "$zone" ] && json_add_string zone "$zone" json_close_object ubus call network add_dynamic "$(json_dump)" - } + else + echo "mbim[$$]" "Starting DHCP on $ifname" + json_init + json_add_string name "${interface}_4" + json_add_string ifname "@$interface" + json_add_string proto "dhcp" + proto_add_dynamic_defaults + [ -n "$zone" ] && json_add_string zone "$zone" + json_close_object + ubus call network add_dynamic "$(json_dump)" + fi + } - [ "$iptype" != "ipv4" ] && { + [ "$iptype" != "ipv4" ] && { + if [ -z "$dhcp" -o "$dhcp" = 0 ]; then json_init json_add_string name "${interface}_6" json_add_string ifname "@$interface" @@ -213,24 +225,8 @@ _proto_mbim_setup() { [ -n "$zone" ] && json_add_string zone "$zone" json_close_object ubus call network add_dynamic "$(json_dump)" - } - else - echo "mbim[$$]" "Starting DHCP on $ifname" - proto_init_update "$ifname" 1 - proto_send_update "$interface" - - [ "$pdptype" = "ipv4" -o "$pdptype" = "ipv4v6" ] && { - json_init - json_add_string name "${interface}_4" - json_add_string ifname "@$interface" - json_add_string proto "dhcp" - proto_add_dynamic_defaults - [ -n "$zone" ] && json_add_string zone "$zone" - json_close_object - ubus call network add_dynamic "$(json_dump)" - } - - [ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && { + else + echo "mbim[$$]" "Starting DHCPv6 on $ifname" json_init json_add_string name "${interface}_6" json_add_string ifname "@$interface" @@ -240,8 +236,8 @@ _proto_mbim_setup() { [ -n "$zone" ] && json_add_string zone "$zone" json_close_object ubus call network add_dynamic "$(json_dump)" - } - fi + fi + } uci_set_state network $interface tid "$tid" }