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_init_update "$ifname" 1
proto_send_update "$interface" proto_send_update "$interface"
[ -z "$dhcp" ] && dhcp=1
[ -z "$dhcpv6" ] && dhcpv6=1
[ "$iptype" != "ipv6" ] && { [ "$iptype" != "ipv6" ] && {
if [ -z "$dhcp" -o "$dhcp" = 0 ]; then if [ -n "$ipv4address" ]; then
json_init json_init
json_add_string name "${interface}_4" json_add_string name "${interface}_4"
json_add_string ifname "@$interface" json_add_string ifname "@$interface"
@ -196,7 +199,7 @@ _proto_mbim_setup() {
[ -n "$zone" ] && json_add_string zone "$zone" [ -n "$zone" ] && json_add_string zone "$zone"
json_close_object json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
else elif [ "$dhcp" != 0 ]; then
echo "mbim[$$]" "Starting DHCP on $ifname" echo "mbim[$$]" "Starting DHCP on $ifname"
json_init json_init
json_add_string name "${interface}_4" json_add_string name "${interface}_4"
@ -210,7 +213,7 @@ _proto_mbim_setup() {
} }
[ "$iptype" != "ipv4" ] && { [ "$iptype" != "ipv4" ] && {
if [ -z "$dhcpv6" -o "$dhcpv6" = 0 ]; then if [ -n "$ipv6address" ]; then
json_init json_init
json_add_string name "${interface}_6" json_add_string name "${interface}_6"
json_add_string ifname "@$interface" json_add_string ifname "@$interface"
@ -226,7 +229,7 @@ _proto_mbim_setup() {
[ -n "$zone" ] && json_add_string zone "$zone" [ -n "$zone" ] && json_add_string zone "$zone"
json_close_object json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
else elif [ "$dhcpv6" != 0 ]; then
echo "mbim[$$]" "Starting DHCPv6 on $ifname" echo "mbim[$$]" "Starting DHCPv6 on $ifname"
json_init json_init
json_add_string name "${interface}_6" json_add_string name "${interface}_6"