It has been observed that for a specific network configuration, netifd was not able to set the IPv6 to an interface during the reload procedure. The only option, before this fix, is to use the restart procedure which is not acceptible.
This fix disables configuring the IPv6 for a bridge member when it is added to a bridge and enables IPv6 configuration when a member is removed from a bridge. Signed-off-by: Hrvoje Varga <hrvoje.va...@sartura.hr> --- system-linux.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/system-linux.c b/system-linux.c index 6e4a194..ebb01d6 100644 --- a/system-linux.c +++ b/system-linux.c @@ -673,6 +673,9 @@ int system_bridge_addif(struct device *bridge, struct device *dev) char *oldbr; int ret = 0; + // Disable setting the IPv6 for an iterface which will be added + // to a bridge. + system_set_disable_ipv6(dev, "1"); oldbr = system_get_bridge(dev->ifname, dev_buf, sizeof(dev_buf)); if (!oldbr || strcmp(oldbr, bridge->ifname) != 0) ret = system_bridge_if(bridge->ifname, dev, SIOCBRADDIF, NULL); @@ -702,6 +705,9 @@ int system_bridge_addif(struct device *bridge, struct device *dev) int system_bridge_delif(struct device *bridge, struct device *dev) { + // Enable setting the IPv6 for an iterface which will be removed + // from a bridge. + system_set_disable_ipv6(dev, "0"); return system_bridge_if(bridge->ifname, dev, SIOCBRDELIF, NULL); } -- 2.10.0 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel