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@gmail.com>
This commit is contained in:
Lech Perczak 2021-07-19 21:16:08 +02:00 committed by Hauke Mehrtens
parent c1e0d07744
commit 03692dee73

View File

@ -171,7 +171,6 @@ _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))
@ -180,6 +179,7 @@ _proto_mbim_setup() {
proto_send_update "$interface"
[ "$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" ] && {
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" ] && {
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
}
uci_set_state network $interface tid "$tid"
}