]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/batman-adv/types.h
batman-adv: Add multicast optimization support for bridged setups
[mirror_ubuntu-bionic-kernel.git] / net / batman-adv / types.h
index 32c6d0e42fde5f13a039e0e8d86c20ae3cfe006f..83303c2f4631af0ec9edde29337adc6c6decb397 100644 (file)
@@ -754,6 +754,17 @@ struct batadv_priv_dat {
 #endif
 
 #ifdef CONFIG_BATMAN_ADV_MCAST
+/**
+ * struct batadv_mcast_querier_state - IGMP/MLD querier state when bridged
+ * @exists: whether a querier exists in the mesh
+ * @shadowing: if a querier exists, whether it is potentially shadowing
+ *  multicast listeners (i.e. querier is behind our own bridge segment)
+ */
+struct batadv_mcast_querier_state {
+       bool exists;
+       bool shadowing;
+};
+
 /**
  * struct batadv_priv_mcast - per mesh interface mcast data
  * @mla_list: list of multicast addresses we are currently announcing via TT
@@ -763,6 +774,7 @@ struct batadv_priv_dat {
  * @want_all_ipv6_list: a list of orig_nodes wanting all IPv6 multicast traffic
  * @flags: the flags we have last sent in our mcast tvlv
  * @enabled: whether the multicast tvlv is currently enabled
+ * @bridged: whether the soft interface has a bridge on top
  * @num_disabled: number of nodes that have no mcast tvlv
  * @num_want_all_unsnoopables: number of nodes wanting unsnoopable IP traffic
  * @num_want_all_ipv4: counter for items in want_all_ipv4_list
@@ -777,6 +789,7 @@ struct batadv_priv_mcast {
        struct hlist_head want_all_ipv6_list;
        u8 flags;
        bool enabled;
+       bool bridged;
        atomic_t num_disabled;
        atomic_t num_want_all_unsnoopables;
        atomic_t num_want_all_ipv4;