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 <lech.perczak@gmail.com>
This commit is contained in:
Lech Perczak 2021-07-19 21:28:07 +02:00 committed by Hauke Mehrtens
parent 464d81fe4a
commit ca8df8a992

View File

@ -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"