Lines Matching refs:brmctx
951 int br_multicast_rcv(struct net_bridge_mcast **brmctx,
955 struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge_mcast *brmctx,
968 struct net_bridge_mcast *brmctx,
970 int br_multicast_set_router(struct net_bridge_mcast *brmctx, unsigned long val);
976 int br_multicast_set_querier(struct net_bridge_mcast *brmctx, unsigned long val);
977 int br_multicast_set_igmp_version(struct net_bridge_mcast *brmctx,
980 int br_multicast_set_mld_version(struct net_bridge_mcast *brmctx,
1021 void br_multicast_host_join(const struct net_bridge_mcast *brmctx,
1038 struct net_bridge_mcast *brmctx);
1039 void br_multicast_ctx_deinit(struct net_bridge_mcast *brmctx);
1050 const struct net_bridge_mcast *brmctx);
1052 const struct net_bridge_mcast *brmctx,
1055 size_t br_rports_size(const struct net_bridge_mcast *brmctx);
1056 void br_multicast_set_query_intvl(struct net_bridge_mcast *brmctx,
1058 void br_multicast_set_startup_query_intvl(struct net_bridge_mcast *brmctx,
1070 br_multicast_get_first_rport_node(struct net_bridge_mcast *brmctx,
1075 return rcu_dereference(hlist_first_rcu(&brmctx->ip6_mc_router_list));
1077 return rcu_dereference(hlist_first_rcu(&brmctx->ip4_mc_router_list));
1100 static inline bool br_ip4_multicast_is_router(struct net_bridge_mcast *brmctx)
1102 return timer_pending(&brmctx->ip4_mc_router_timer);
1105 static inline bool br_ip6_multicast_is_router(struct net_bridge_mcast *brmctx)
1108 return timer_pending(&brmctx->ip6_mc_router_timer);
1115 br_multicast_is_router(struct net_bridge_mcast *brmctx, struct sk_buff *skb)
1117 switch (brmctx->multicast_router) {
1123 return br_ip4_multicast_is_router(brmctx);
1125 return br_ip6_multicast_is_router(brmctx);
1127 return br_ip4_multicast_is_router(brmctx) ||
1128 br_ip6_multicast_is_router(brmctx);
1137 __br_multicast_querier_exists(struct net_bridge_mcast *brmctx,
1143 if (brmctx->multicast_querier) {
1144 if (is_ipv6 && !br_opt_get(brmctx->br, BROPT_HAS_IPV6_ADDR))
1156 static inline bool br_multicast_querier_exists(struct net_bridge_mcast *brmctx,
1162 return __br_multicast_querier_exists(brmctx,
1163 &brmctx->ip4_other_query, false);
1166 return __br_multicast_querier_exists(brmctx,
1167 &brmctx->ip6_other_query, true);
1189 br_multicast_should_handle_mode(const struct net_bridge_mcast *brmctx,
1194 return !!(brmctx->multicast_igmp_version == 3);
1197 return !!(brmctx->multicast_mld_version == 2);
1209 static inline unsigned long br_multicast_lmqt(const struct net_bridge_mcast *brmctx)
1211 return brmctx->multicast_last_member_interval *
1212 brmctx->multicast_last_member_count;
1215 static inline unsigned long br_multicast_gmi(const struct net_bridge_mcast *brmctx)
1217 return brmctx->multicast_membership_interval;
1221 br_multicast_ctx_is_vlan(const struct net_bridge_mcast *brmctx)
1223 return !!brmctx->vlan;
1242 br_multicast_ctx_vlan_global_disabled(const struct net_bridge_mcast *brmctx)
1244 return br_multicast_ctx_is_vlan(brmctx) &&
1245 (!br_opt_get(brmctx->br, BROPT_MCAST_VLAN_SNOOPING_ENABLED) ||
1246 !(brmctx->vlan->priv_flags & BR_VLFLAG_GLOBAL_MCAST_ENABLED));
1250 br_multicast_ctx_vlan_disabled(const struct net_bridge_mcast *brmctx)
1252 return br_multicast_ctx_is_vlan(brmctx) &&
1253 !(brmctx->vlan->priv_flags & BR_VLFLAG_MCAST_ENABLED);
1282 br_rports_have_mc_router(const struct net_bridge_mcast *brmctx)
1285 return !hlist_empty(&brmctx->ip4_mc_router_list) ||
1286 !hlist_empty(&brmctx->ip6_mc_router_list);
1288 return !hlist_empty(&brmctx->ip4_mc_router_list);
1326 br_multicast_ctx_matches_vlan_snooping(const struct net_bridge_mcast *brmctx)
1330 vlan_snooping_enabled = !!br_opt_get(brmctx->br,
1333 return !!(vlan_snooping_enabled == br_multicast_ctx_is_vlan(brmctx));
1336 static inline int br_multicast_rcv(struct net_bridge_mcast **brmctx,
1345 static inline struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge_mcast *brmctx,
1394 struct net_bridge_mcast *brmctx,
1399 static inline bool br_multicast_is_router(struct net_bridge_mcast *brmctx,
1405 static inline bool br_multicast_querier_exists(struct net_bridge_mcast *brmctx,
1462 struct net_bridge_mcast *brmctx)
1466 static inline void br_multicast_ctx_deinit(struct net_bridge_mcast *brmctx)