Lines Matching refs:pg
418 struct net_bridge_port_group *pg, in nlmsg_populate_mdb_fill() argument
440 if (__mdb_fill_info(skb, mp, pg)) in nlmsg_populate_mdb_fill()
455 static size_t rtnl_mdb_nlmsg_pg_size(const struct net_bridge_port_group *pg) in rtnl_mdb_nlmsg_pg_size() argument
465 if (!pg) in rtnl_mdb_nlmsg_pg_size()
471 switch (pg->key.addr.proto) { in rtnl_mdb_nlmsg_pg_size()
474 if (pg->key.addr.src.ip4) in rtnl_mdb_nlmsg_pg_size()
476 if (pg->key.port->br->multicast_ctx.multicast_igmp_version == 2) in rtnl_mdb_nlmsg_pg_size()
483 if (!ipv6_addr_any(&pg->key.addr.src.ip6)) in rtnl_mdb_nlmsg_pg_size()
485 if (pg->key.port->br->multicast_ctx.multicast_mld_version == 1) in rtnl_mdb_nlmsg_pg_size()
496 if (!hlist_empty(&pg->src_list)) in rtnl_mdb_nlmsg_pg_size()
499 hlist_for_each_entry(ent, &pg->src_list, node) { in rtnl_mdb_nlmsg_pg_size()
511 static size_t rtnl_mdb_nlmsg_size(const struct net_bridge_port_group *pg) in rtnl_mdb_nlmsg_size() argument
519 rtnl_mdb_nlmsg_pg_size(pg); in rtnl_mdb_nlmsg_size()
524 struct net_bridge_port_group *pg, in __br_mdb_notify() argument
532 br_switchdev_mdb_notify(dev, mp, pg, type); in __br_mdb_notify()
534 skb = nlmsg_new(rtnl_mdb_nlmsg_size(pg), GFP_ATOMIC); in __br_mdb_notify()
538 err = nlmsg_populate_mdb_fill(skb, dev, mp, pg, type); in __br_mdb_notify()
552 struct net_bridge_port_group *pg, in br_mdb_notify() argument
555 __br_mdb_notify(dev, mp, pg, type, true); in br_mdb_notify()
560 struct net_bridge_port_group *pg) in br_mdb_flag_change_notify() argument
562 __br_mdb_notify(dev, mp, pg, RTM_NEWMDB, false); in br_mdb_flag_change_notify()
741 struct net_bridge_port_group *pg, in br_mdb_replace_group_sg() argument
747 pg->flags = flags; in br_mdb_replace_group_sg()
748 pg->rt_protocol = cfg->rt_protocol; in br_mdb_replace_group_sg()
750 mod_timer(&pg->timer, in br_mdb_replace_group_sg()
753 timer_delete(&pg->timer); in br_mdb_replace_group_sg()
755 br_mdb_notify(cfg->br->dev, mp, pg, RTM_NEWMDB); in br_mdb_replace_group_sg()
849 struct net_bridge_port_group *pg, in br_mdb_add_group_src() argument
858 ent = br_multicast_find_group_src(pg, &src->addr); in br_mdb_add_group_src()
860 ent = br_multicast_new_group_src(pg, &src->addr); in br_mdb_add_group_src()
890 static void br_mdb_del_group_src(struct net_bridge_port_group *pg, in br_mdb_del_group_src() argument
895 ent = br_multicast_find_group_src(pg, &src->addr); in br_mdb_del_group_src()
902 struct net_bridge_port_group *pg, in br_mdb_add_group_srcs() argument
909 err = br_mdb_add_group_src(cfg, pg, brmctx, in br_mdb_add_group_srcs()
919 br_mdb_del_group_src(pg, &cfg->src_entries[i]); in br_mdb_add_group_srcs()
924 struct net_bridge_port_group *pg, in br_mdb_replace_group_srcs() argument
932 hlist_for_each_entry(ent, &pg->src_list, node) in br_mdb_replace_group_srcs()
935 err = br_mdb_add_group_srcs(cfg, pg, brmctx, extack); in br_mdb_replace_group_srcs()
939 hlist_for_each_entry_safe(ent, tmp, &pg->src_list, node) { in br_mdb_replace_group_srcs()
947 hlist_for_each_entry(ent, &pg->src_list, node) in br_mdb_replace_group_srcs()
954 struct net_bridge_port_group *pg, in br_mdb_replace_group_star_g() argument
962 err = br_mdb_replace_group_srcs(cfg, pg, brmctx, extack); in br_mdb_replace_group_star_g()
966 pg->flags = flags; in br_mdb_replace_group_star_g()
967 pg->filter_mode = cfg->filter_mode; in br_mdb_replace_group_star_g()
968 pg->rt_protocol = cfg->rt_protocol; in br_mdb_replace_group_star_g()
971 mod_timer(&pg->timer, in br_mdb_replace_group_star_g()
974 timer_delete(&pg->timer); in br_mdb_replace_group_star_g()
976 br_mdb_notify(cfg->br->dev, mp, pg, RTM_NEWMDB); in br_mdb_replace_group_star_g()
979 br_multicast_star_g_handle_mode(pg, cfg->filter_mode); in br_mdb_replace_group_star_g()
1603 struct net_bridge_port_group *pg; in br_mdb_get_reply_alloc() local
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()
1617 nlmsg_size += rtnl_mdb_nlmsg_pg_size(pg); in br_mdb_get_reply_alloc()
1627 struct net_bridge_port_group *pg; in br_mdb_get_reply_fill() local
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()