Lines Matching refs:mp
233 struct net_bridge_mdb_entry *mp, in __mdb_fill_info() argument
249 ifindex = mp->br->dev->ifindex; in __mdb_fill_info()
250 mtimer = &mp->timer; in __mdb_fill_info()
255 e.vid = mp->addr.vid; in __mdb_fill_info()
256 if (mp->addr.proto == htons(ETH_P_IP)) { in __mdb_fill_info()
257 e.addr.u.ip4 = mp->addr.dst.ip4; in __mdb_fill_info()
259 } else if (mp->addr.proto == htons(ETH_P_IPV6)) { in __mdb_fill_info()
260 e.addr.u.ip6 = mp->addr.dst.ip6; in __mdb_fill_info()
263 ether_addr_copy(e.addr.u.mac_addr, mp->addr.dst.mac_addr); in __mdb_fill_info()
266 e.addr.proto = mp->addr.proto; in __mdb_fill_info()
278 switch (mp->addr.proto) { in __mdb_fill_info()
280 dump_srcs_mode = !!(mp->br->multicast_ctx.multicast_igmp_version == 3); in __mdb_fill_info()
281 if (mp->addr.src.ip4) { in __mdb_fill_info()
283 mp->addr.src.ip4)) in __mdb_fill_info()
290 dump_srcs_mode = !!(mp->br->multicast_ctx.multicast_mld_version == 2); in __mdb_fill_info()
291 if (!ipv6_addr_any(&mp->addr.src.ip6)) { in __mdb_fill_info()
293 &mp->addr.src.ip6)) in __mdb_fill_info()
300 ether_addr_copy(e.addr.u.mac_addr, mp->addr.dst.mac_addr); in __mdb_fill_info()
325 struct net_bridge_mdb_entry *mp; in br_mdb_fill_info() local
332 hlist_for_each_entry_rcu(mp, &br->mdb_list, mdb_node) { in br_mdb_fill_info()
345 if (!s_pidx && mp->host_joined) { in br_mdb_fill_info()
346 err = __mdb_fill_info(skb, mp, NULL); in br_mdb_fill_info()
353 for (pp = &mp->ports; (p = rcu_dereference(*pp)) != NULL; in br_mdb_fill_info()
360 err = __mdb_fill_info(skb, mp, p); in br_mdb_fill_info()
417 struct net_bridge_mdb_entry *mp, in nlmsg_populate_mdb_fill() argument
440 if (__mdb_fill_info(skb, mp, pg)) in nlmsg_populate_mdb_fill()
523 struct net_bridge_mdb_entry *mp, in __br_mdb_notify() argument
532 br_switchdev_mdb_notify(dev, mp, pg, type); in __br_mdb_notify()
538 err = nlmsg_populate_mdb_fill(skb, dev, mp, pg, type); in __br_mdb_notify()
551 struct net_bridge_mdb_entry *mp, in br_mdb_notify() argument
555 __br_mdb_notify(dev, mp, pg, type, true); in br_mdb_notify()
559 struct net_bridge_mdb_entry *mp, in br_mdb_flag_change_notify() argument
562 __br_mdb_notify(dev, mp, pg, RTM_NEWMDB, false); in br_mdb_flag_change_notify()
740 struct net_bridge_mdb_entry *mp, in br_mdb_replace_group_sg() argument
755 br_mdb_notify(cfg->br->dev, mp, pg, RTM_NEWMDB); in br_mdb_replace_group_sg()
761 struct net_bridge_mdb_entry *mp, in br_mdb_add_group_sg() argument
770 for (pp = &mp->ports; in br_mdb_add_group_sg()
778 return br_mdb_replace_group_sg(cfg, mp, p, brmctx, in br_mdb_add_group_sg()
794 br_mdb_notify(cfg->br->dev, mp, p, RTM_NEWMDB); in br_mdb_add_group_sg()
953 struct net_bridge_mdb_entry *mp, in br_mdb_replace_group_star_g() argument
976 br_mdb_notify(cfg->br->dev, mp, pg, RTM_NEWMDB); in br_mdb_replace_group_star_g()
985 struct net_bridge_mdb_entry *mp, in br_mdb_add_group_star_g() argument
995 for (pp = &mp->ports; in br_mdb_add_group_star_g()
1003 return br_mdb_replace_group_star_g(cfg, mp, p, brmctx, in br_mdb_add_group_star_g()
1025 br_mdb_notify(cfg->br->dev, mp, p, RTM_NEWMDB); in br_mdb_add_group_star_g()
1045 struct net_bridge_mdb_entry *mp; in br_mdb_add_group() local
1055 mp = br_multicast_new_group(br, &group); in br_mdb_add_group()
1056 if (IS_ERR(mp)) in br_mdb_add_group()
1057 return PTR_ERR(mp); in br_mdb_add_group()
1061 if (mp->host_joined && !(cfg->nlflags & NLM_F_REPLACE)) { in br_mdb_add_group()
1066 br_multicast_host_join(brmctx, mp, false); in br_mdb_add_group()
1067 br_mdb_notify(br->dev, mp, NULL, RTM_NEWMDB); in br_mdb_add_group()
1076 return br_mdb_add_group_star_g(cfg, mp, brmctx, flags, extack); in br_mdb_add_group()
1078 return br_mdb_add_group_sg(cfg, mp, brmctx, flags, extack); in br_mdb_add_group()
1362 struct net_bridge_mdb_entry *mp; in __br_mdb_del() local
1369 mp = br_mdb_ip_get(br, &ip); in __br_mdb_del()
1370 if (!mp) in __br_mdb_del()
1374 if (entry->ifindex == mp->br->dev->ifindex && mp->host_joined) { in __br_mdb_del()
1375 br_multicast_host_leave(mp, false); in __br_mdb_del()
1377 br_mdb_notify(br->dev, mp, NULL, RTM_DELMDB); in __br_mdb_del()
1378 if (!mp->ports && netif_running(br->dev)) in __br_mdb_del()
1379 mod_timer(&mp->timer, jiffies); in __br_mdb_del()
1383 for (pp = &mp->ports; in __br_mdb_del()
1389 br_multicast_del_pg(mp, p, pp); in __br_mdb_del()
1477 struct net_bridge_mdb_entry *mp, in br_mdb_flush_host() argument
1488 state = br_group_is_l2(&mp->addr) ? MDB_PERMANENT : 0; in br_mdb_flush_host()
1492 br_multicast_host_leave(mp, true); in br_mdb_flush_host()
1493 if (!mp->ports && netif_running(br->dev)) in br_mdb_flush_host()
1494 mod_timer(&mp->timer, jiffies); in br_mdb_flush_host()
1498 struct net_bridge_mdb_entry *mp, in br_mdb_flush_pgs() argument
1504 for (pp = &mp->ports; (p = mlock_dereference(*pp, br)) != NULL;) { in br_mdb_flush_pgs()
1525 br_multicast_del_pg(mp, p, pp); in br_mdb_flush_pgs()
1532 struct net_bridge_mdb_entry *mp; in br_mdb_flush() local
1539 hlist_for_each_entry(mp, &br->mdb_list, mdb_node) { in br_mdb_flush()
1540 if (desc->vid && desc->vid != mp->addr.vid) in br_mdb_flush()
1543 br_mdb_flush_host(br, mp, desc); in br_mdb_flush()
1544 br_mdb_flush_pgs(br, mp, desc); in br_mdb_flush()
1601 br_mdb_get_reply_alloc(const struct net_bridge_mdb_entry *mp) in br_mdb_get_reply_alloc() argument
1612 if (mp->host_joined) in br_mdb_get_reply_alloc()
1615 for (pg = mlock_dereference(mp->ports, mp->br); pg; in br_mdb_get_reply_alloc()
1616 pg = mlock_dereference(pg->next, mp->br)) in br_mdb_get_reply_alloc()
1623 struct net_bridge_mdb_entry *mp, u32 portid, in br_mdb_get_reply_fill() argument
1639 bpm->ifindex = mp->br->dev->ifindex; in br_mdb_get_reply_fill()
1651 if (mp->host_joined) { in br_mdb_get_reply_fill()
1652 err = __mdb_fill_info(skb, mp, NULL); in br_mdb_get_reply_fill()
1657 for (pg = mlock_dereference(mp->ports, mp->br); pg; in br_mdb_get_reply_fill()
1658 pg = mlock_dereference(pg->next, mp->br)) { in br_mdb_get_reply_fill()
1659 err = __mdb_fill_info(skb, mp, pg); in br_mdb_get_reply_fill()
1679 struct net_bridge_mdb_entry *mp; in br_mdb_get() local
1694 mp = br_mdb_ip_get(br, &group); in br_mdb_get()
1695 if (!mp || (!mp->ports && !mp->host_joined)) { in br_mdb_get()
1701 skb = br_mdb_get_reply_alloc(mp); in br_mdb_get()
1707 err = br_mdb_get_reply_fill(skb, mp, portid, seq); in br_mdb_get()