[OpenWrt-Devel] QMI/NCM/MBIM interfaces netifd ifup event too early

Bruno Randolf br1 at einfach.org
Wed Feb 10 12:53:41 EST 2016


Hi!

I have a situation where I have to react to "ifup" events in OpenWRT,
and I believe that QMI/NCM/MBIM interfaces are sending the "ifup" event
too early, which is before they got an IP address. That is due to the
use of "sub-interfaces" for DHCP IPv4 and DHCP IPv6, as seen in the
/lib/netifd/proto/[ncm|qmi|mbim].sh scripts:

	echo "Starting DHCP"
	proto_init_update "$ifname" 1
	proto_send_update "$interface"

	json_init
	json_add_string name "${interface}_4"
	json_add_string ifname "@$interface"
	json_add_string proto "dhcp"
	json_close_object
	ubus call network add_dynamic "$(json_dump)"

	json_init
	json_add_string name "${interface}_6"
	json_add_string ifname "@$interface"
	json_add_string proto "dhcpv6"
	json_close_object
	ubus call network add_dynamic "$(json_dump)"

Here the "main" interface is marked "up" before the sub-interfaces
"xyz_4" or "xyz_6" are added or got an IP address.

Normally, a WAN, WLAN or a 3G (PPP) interface is only "up" after it got
an IP and when we can start sending data thru it. Also I can not always
trigger on the "xyz_4" interface because in the 3G/PPP case the IP is
directly assigned to "xyz" and no "xyz_4" exists...

Is there any way in netifd that we could avoid the use of the
sub-interfaces here (other interfaces also may have DHCP and DHCPv6 IP
assignement without sub-interface, IMHO), or that the main interface
will only be "up" when at least one of the sub-interfaces is up?

Any pointers welcome, I'm ready to "mess" with the code as well... :)

bruno
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list