[openwrt/openwrt] umbim: restructure IPv4/IPv6 handling

LEDE Commits lede-commits at lists.infradead.org
Sat Apr 29 12:39:10 PDT 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/03692dee736b98ba419d4e21e82819f93b637256

commit 03692dee736b98ba419d4e21e82819f93b637256
Author: Lech Perczak <lech.perczak at gmail.com>
AuthorDate: Mon Jul 19 21:16:08 2021 +0200

    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 <lech.perczak at gmail.com>
---
 .../utils/umbim/files/lib/netifd/proto/mbim.sh     | 54 ++++++++++------------
 1 file changed, 25 insertions(+), 29 deletions(-)

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 e7866340ae..9af5b69ac1 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"
 }




More information about the lede-commits mailing list