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

Reply via email to