Lines Matching refs:vg

35 static bool __vlan_add_pvid(struct net_bridge_vlan_group *vg, u16 vid)  in __vlan_add_pvid()  argument
37 if (vg->pvid == vid) in __vlan_add_pvid()
41 vg->pvid = vid; in __vlan_add_pvid()
46 static bool __vlan_delete_pvid(struct net_bridge_vlan_group *vg, u16 vid) in __vlan_delete_pvid() argument
48 if (vg->pvid != vid) in __vlan_delete_pvid()
52 vg->pvid = 0; in __vlan_delete_pvid()
60 struct net_bridge_vlan_group *vg; in __vlan_add_flags() local
65 vg = br_vlan_group(v->br); in __vlan_add_flags()
67 vg = nbp_vlan_group(v->port); in __vlan_add_flags()
70 ret = __vlan_add_pvid(vg, v->vid); in __vlan_add_flags()
72 ret = __vlan_delete_pvid(vg, v->vid); in __vlan_add_flags()
98 struct net_bridge_vlan_group *vg; in __vlan_add_list() local
103 vg = br_vlan_group(v->br); in __vlan_add_list()
105 vg = nbp_vlan_group(v->port); in __vlan_add_list()
107 headp = &vg->vlan_list; in __vlan_add_list()
144 struct net_bridge_vlan_group *vg; in br_vlan_get_master() local
147 vg = br_vlan_group(br); in br_vlan_get_master()
148 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
155 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
179 struct net_bridge_vlan_group *vg; in br_vlan_put_master() local
184 vg = br_vlan_group(masterv->br); in br_vlan_put_master()
186 rhashtable_remove_fast(&vg->vlan_hash, in br_vlan_put_master()
208 struct net_bridge_vlan_group *vg; in __vlan_add() local
216 vg = br_vlan_group(br); in __vlan_add()
221 vg = nbp_vlan_group(p); in __vlan_add()
262 vg->num_vlans++; in __vlan_add()
265 err = rhashtable_lookup_insert_fast(&vg->vlan_hash, &v->vnode, in __vlan_add()
278 vg->num_vlans--; in __vlan_add()
298 struct net_bridge_vlan_group *vg; in __vlan_del() local
303 vg = br_vlan_group(v->br); in __vlan_del()
306 vg = nbp_vlan_group(v->port); in __vlan_del()
310 __vlan_delete_pvid(vg, v->vid); in __vlan_del()
324 vg->num_vlans--; in __vlan_del()
328 vlan_tunnel_info_del(vg, v); in __vlan_del()
329 rhashtable_remove_fast(&vg->vlan_hash, &v->vnode, in __vlan_del()
340 static void __vlan_group_free(struct net_bridge_vlan_group *vg) in __vlan_group_free() argument
342 WARN_ON(!list_empty(&vg->vlan_list)); in __vlan_group_free()
343 rhashtable_destroy(&vg->vlan_hash); in __vlan_group_free()
344 vlan_tunnel_deinit(vg); in __vlan_group_free()
345 kfree(vg); in __vlan_group_free()
348 static void __vlan_flush(struct net_bridge_vlan_group *vg) in __vlan_flush() argument
352 __vlan_delete_pvid(vg, vg->pvid); in __vlan_flush()
353 list_for_each_entry_safe(vlan, tmp, &vg->vlan_list, vlist) in __vlan_flush()
359 struct net_bridge_vlan_group *vg, in br_handle_vlan() argument
375 v = br_vlan_find(vg, vid); in br_handle_vlan()
411 struct net_bridge_vlan_group *vg, in __allowed_ingress() argument
453 u16 pvid = br_get_pvid(vg); in __allowed_ingress()
481 v = br_vlan_find(vg, *vid); in __allowed_ingress()
501 struct net_bridge_vlan_group *vg, struct sk_buff *skb, in br_allowed_ingress() argument
512 return __allowed_ingress(br, vg, skb, vid); in br_allowed_ingress()
516 bool br_allowed_egress(struct net_bridge_vlan_group *vg, in br_allowed_egress() argument
527 v = br_vlan_find(vg, vid); in br_allowed_egress()
537 struct net_bridge_vlan_group *vg; in br_should_learn() local
544 vg = nbp_vlan_group_rcu(p); in br_should_learn()
545 if (!vg || !vg->num_vlans) in br_should_learn()
552 *vid = br_get_pvid(vg); in br_should_learn()
559 if (br_vlan_find(vg, *vid)) in br_should_learn()
566 struct net_bridge_vlan_group *vg, in br_vlan_add_existing() argument
592 vg->num_vlans++; in br_vlan_add_existing()
613 struct net_bridge_vlan_group *vg; in br_vlan_add() local
620 vg = br_vlan_group(br); in br_vlan_add()
621 vlan = br_vlan_find(vg, vid); in br_vlan_add()
623 return br_vlan_add_existing(br, vg, vlan, flags, changed); in br_vlan_add()
656 struct net_bridge_vlan_group *vg; in br_vlan_delete() local
661 vg = br_vlan_group(br); in br_vlan_delete()
662 v = br_vlan_find(vg, vid); in br_vlan_delete()
669 vlan_tunnel_info_del(vg, v); in br_vlan_delete()
676 struct net_bridge_vlan_group *vg; in br_vlan_flush() local
680 vg = br_vlan_group(br); in br_vlan_flush()
681 __vlan_flush(vg); in br_vlan_flush()
684 __vlan_group_free(vg); in br_vlan_flush()
687 struct net_bridge_vlan *br_vlan_find(struct net_bridge_vlan_group *vg, u16 vid) in br_vlan_find() argument
689 if (!vg) in br_vlan_find()
692 return br_vlan_lookup(&vg->vlan_hash, vid); in br_vlan_find()
765 struct net_bridge_vlan_group *vg; in __br_vlan_set_proto() local
773 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
774 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in __br_vlan_set_proto()
789 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
790 list_for_each_entry(vlan, &vg->vlan_list, vlist) in __br_vlan_set_proto()
797 list_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist) in __br_vlan_set_proto()
801 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
802 list_for_each_entry(vlan, &vg->vlan_list, vlist) in __br_vlan_set_proto()
831 static bool vlan_default_pvid(struct net_bridge_vlan_group *vg, u16 vid) in vlan_default_pvid() argument
835 if (vid != vg->pvid) in vlan_default_pvid()
838 v = br_vlan_lookup(&vg->vlan_hash, vid); in vlan_default_pvid()
868 struct net_bridge_vlan_group *vg; in __br_vlan_set_default_pvid() local
890 vg = br_vlan_group(br); in __br_vlan_set_default_pvid()
891 pvent = br_vlan_find(vg, pvid); in __br_vlan_set_default_pvid()
892 if ((!old_pvid || vlan_default_pvid(vg, old_pvid)) && in __br_vlan_set_default_pvid()
909 vg = nbp_vlan_group(p); in __br_vlan_set_default_pvid()
911 !vlan_default_pvid(vg, old_pvid)) || in __br_vlan_set_default_pvid()
912 br_vlan_find(vg, pvid)) in __br_vlan_set_default_pvid()
980 struct net_bridge_vlan_group *vg; in br_vlan_init() local
984 vg = kzalloc(sizeof(*vg), GFP_KERNEL); in br_vlan_init()
985 if (!vg) in br_vlan_init()
987 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params); in br_vlan_init()
990 ret = vlan_tunnel_init(vg); in br_vlan_init()
993 INIT_LIST_HEAD(&vg->vlan_list); in br_vlan_init()
996 rcu_assign_pointer(br->vlgrp, vg); in br_vlan_init()
1007 vlan_tunnel_deinit(vg); in br_vlan_init()
1009 rhashtable_destroy(&vg->vlan_hash); in br_vlan_init()
1011 kfree(vg); in br_vlan_init()
1024 struct net_bridge_vlan_group *vg; in nbp_vlan_init() local
1027 vg = kzalloc(sizeof(struct net_bridge_vlan_group), GFP_KERNEL); in nbp_vlan_init()
1028 if (!vg) in nbp_vlan_init()
1035 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params); in nbp_vlan_init()
1038 ret = vlan_tunnel_init(vg); in nbp_vlan_init()
1041 INIT_LIST_HEAD(&vg->vlan_list); in nbp_vlan_init()
1042 rcu_assign_pointer(p->vlgrp, vg); in nbp_vlan_init()
1059 vlan_tunnel_deinit(vg); in nbp_vlan_init()
1061 rhashtable_destroy(&vg->vlan_hash); in nbp_vlan_init()
1064 kfree(vg); in nbp_vlan_init()
1128 struct net_bridge_vlan_group *vg; in nbp_vlan_flush() local
1132 vg = nbp_vlan_group(port); in nbp_vlan_flush()
1133 __vlan_flush(vg); in nbp_vlan_flush()
1136 __vlan_group_free(vg); in nbp_vlan_flush()
1168 struct net_bridge_vlan_group *vg; in br_vlan_get_pvid() local
1172 vg = br_vlan_group(netdev_priv(dev)); in br_vlan_get_pvid()
1176 *p_pvid = br_get_pvid(vg); in br_vlan_get_pvid()
1184 struct net_bridge_vlan_group *vg; in br_vlan_get_info() local
1191 vg = nbp_vlan_group(p); in br_vlan_get_info()
1193 vg = br_vlan_group(netdev_priv(dev)); in br_vlan_get_info()
1197 v = br_vlan_find(vg, vid); in br_vlan_get_info()