Lines Matching refs:br

86 	list_for_each_entry_rcu(p, &brmctx->br->port_list, list) {  in br_rports_fill_info()
188 lockdep_is_held(&p->key.port->br->multicast_lock)) { in __mdb_fill_srcs()
247 ifindex = mp->br->dev->ifindex; in __mdb_fill_info()
278 dump_srcs_mode = !!(mp->br->multicast_ctx.multicast_igmp_version == 3); in __mdb_fill_info()
288 dump_srcs_mode = !!(mp->br->multicast_ctx.multicast_mld_version == 2); in __mdb_fill_info()
322 struct net_bridge *br = netdev_priv(dev); in br_mdb_fill_info() local
326 if (!br_opt_get(br, BROPT_MULTICAST_ENABLED)) in br_mdb_fill_info()
333 hlist_for_each_entry_rcu(mp, &br->mdb_list, mdb_node) { in br_mdb_fill_info()
428 struct net_bridge *br = netdev_priv(dev); in br_mdb_dump() local
445 if (br_rports_fill_info(skb, &br->multicast_ctx) < 0) in br_mdb_dump()
522 if (pg->key.port->br->multicast_ctx.multicast_igmp_version == 2) in rtnl_mdb_nlmsg_size()
531 if (pg->key.port->br->multicast_ctx.multicast_mld_version == 1) in rtnl_mdb_nlmsg_size()
825 __br_mdb_choose_context(struct net_bridge *br, in __br_mdb_choose_context() argument
832 if (!br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED)) { in __br_mdb_choose_context()
833 brmctx = &br->multicast_ctx; in __br_mdb_choose_context()
842 v = br_vlan_find(br_vlan_group(br), entry->vid); in __br_mdb_choose_context()
856 static int br_mdb_add_group(struct net_bridge *br, struct net_bridge_port *port, in br_mdb_add_group() argument
873 brmctx = __br_mdb_choose_context(br, entry, extack); in br_mdb_add_group()
895 mp = br_mdb_ip_get(br, &group); in br_mdb_add_group()
897 mp = br_multicast_new_group(br, &group); in br_mdb_add_group()
911 br_mdb_notify(br->dev, mp, NULL, RTM_NEWMDB); in br_mdb_add_group()
917 (p = mlock_dereference(*pp, br)) != NULL; in br_mdb_add_group()
943 br_mdb_notify(br->dev, mp, p, RTM_NEWMDB); in br_mdb_add_group()
957 star_mp = br_mdb_ip_get(br, &star_group); in br_mdb_add_group()
967 static int __br_mdb_add(struct net *net, struct net_bridge *br, in __br_mdb_add() argument
975 spin_lock_bh(&br->multicast_lock); in __br_mdb_add()
976 ret = br_mdb_add_group(br, p, entry, mdb_attrs, extack); in __br_mdb_add()
977 spin_unlock_bh(&br->multicast_lock); in __br_mdb_add()
992 struct net_bridge *br; in br_mdb_add() local
999 br = netdev_priv(dev); in br_mdb_add()
1001 if (!netif_running(br->dev)) { in br_mdb_add()
1006 if (!br_opt_get(br, BROPT_MULTICAST_ENABLED)) { in br_mdb_add()
1011 if (entry->ifindex != br->dev->ifindex) { in br_mdb_add()
1024 if (p->br != br) { in br_mdb_add()
1034 vg = br_vlan_group(br); in br_mdb_add()
1040 if (br_vlan_enabled(br->dev) && vg && entry->vid == 0) { in br_mdb_add()
1043 err = __br_mdb_add(net, br, p, entry, mdb_attrs, extack); in br_mdb_add()
1048 err = __br_mdb_add(net, br, p, entry, mdb_attrs, extack); in br_mdb_add()
1054 static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry, in __br_mdb_del() argument
1063 if (!netif_running(br->dev) || !br_opt_get(br, BROPT_MULTICAST_ENABLED)) in __br_mdb_del()
1068 spin_lock_bh(&br->multicast_lock); in __br_mdb_del()
1069 mp = br_mdb_ip_get(br, &ip); in __br_mdb_del()
1074 if (entry->ifindex == mp->br->dev->ifindex && mp->host_joined) { in __br_mdb_del()
1077 br_mdb_notify(br->dev, mp, NULL, RTM_DELMDB); in __br_mdb_del()
1078 if (!mp->ports && netif_running(br->dev)) in __br_mdb_del()
1084 (p = mlock_dereference(*pp, br)) != NULL; in __br_mdb_del()
1095 spin_unlock_bh(&br->multicast_lock); in __br_mdb_del()
1109 struct net_bridge *br; in br_mdb_del() local
1116 br = netdev_priv(dev); in br_mdb_del()
1118 if (entry->ifindex != br->dev->ifindex) { in br_mdb_del()
1128 if (p->br != br) { in br_mdb_del()
1134 vg = br_vlan_group(br); in br_mdb_del()
1140 if (br_vlan_enabled(br->dev) && vg && entry->vid == 0) { in br_mdb_del()
1143 err = __br_mdb_del(br, entry, mdb_attrs); in br_mdb_del()
1146 err = __br_mdb_del(br, entry, mdb_attrs); in br_mdb_del()