On Thursday, May 05, 2016 17:07:04 Linus Lüssing wrote:
querier4.exists = br_multicast_has_querier_anywhere(dev, ETH_P_IP);
querier4.shadowing = br_multicast_has_querier_adjacent(dev,
ETH_P_IP); +
querier6.exists = br_multicast_has_querier_anywhere(dev,
ETH_P_IPV6); + querier6.shadowing = br_multicast_has_querier_adjacent(dev, ETH_P_IPV6); + mcast_data.flags |= BATADV_MCAST_WANT_ALL_UNSNOOPABLES;
/* 1) If no querier exists at all, then multicast listeners on
@@ -369,17 +494,26 @@ static bool batadv_mcast_mla_tvlv_update(struct batadv_priv *bat_priv) * In both cases, we will signalize other batman nodes that * we need all multicast traffic of the according protocol. */
if (!br_multicast_has_querier_anywhere(dev, ETH_P_IP) ||
br_multicast_has_querier_adjacent(dev, ETH_P_IP))
if (!querier4.exists || querier4.shadowing) mcast_data.flags |= BATADV_MCAST_WANT_ALL_IPV4;
if (!br_multicast_has_querier_anywhere(dev, ETH_P_IPV6) ||
br_multicast_has_querier_adjacent(dev, ETH_P_IPV6))
if (!querier6.exists || querier6.shadowing) mcast_data.flags |= BATADV_MCAST_WANT_ALL_IPV6;
Please move these variable assignments into your previous patch that introduces this section.
Thanks, Marek