Lines Matching refs:v
8 static void __vlan_add_pvid(struct net_port_vlans *v, u16 vid) in __vlan_add_pvid() argument
10 if (v->pvid == vid) in __vlan_add_pvid()
14 v->pvid = vid; in __vlan_add_pvid()
17 static void __vlan_delete_pvid(struct net_port_vlans *v, u16 vid) in __vlan_delete_pvid() argument
19 if (v->pvid != vid) in __vlan_delete_pvid()
23 v->pvid = 0; in __vlan_delete_pvid()
26 static void __vlan_add_flags(struct net_port_vlans *v, u16 vid, u16 flags) in __vlan_add_flags() argument
29 __vlan_add_pvid(v, vid); in __vlan_add_flags()
31 __vlan_delete_pvid(v, vid); in __vlan_add_flags()
34 set_bit(vid, v->untagged_bitmap); in __vlan_add_flags()
36 clear_bit(vid, v->untagged_bitmap); in __vlan_add_flags()
39 static int __vlan_add(struct net_port_vlans *v, u16 vid, u16 flags) in __vlan_add() argument
46 if (test_bit(vid, v->vlan_bitmap)) { in __vlan_add()
47 __vlan_add_flags(v, vid, flags); in __vlan_add()
51 if (v->port_idx) { in __vlan_add()
52 p = v->parent.port; in __vlan_add()
56 br = v->parent.br; in __vlan_add()
77 set_bit(vid, v->vlan_bitmap); in __vlan_add()
78 v->num_vlans++; in __vlan_add()
79 __vlan_add_flags(v, vid, flags); in __vlan_add()
89 static int __vlan_del(struct net_port_vlans *v, u16 vid) in __vlan_del() argument
91 if (!test_bit(vid, v->vlan_bitmap)) in __vlan_del()
94 __vlan_delete_pvid(v, vid); in __vlan_del()
95 clear_bit(vid, v->untagged_bitmap); in __vlan_del()
97 if (v->port_idx) { in __vlan_del()
98 struct net_bridge_port *p = v->parent.port; in __vlan_del()
102 clear_bit(vid, v->vlan_bitmap); in __vlan_del()
103 v->num_vlans--; in __vlan_del()
104 if (bitmap_empty(v->vlan_bitmap, VLAN_N_VID)) { in __vlan_del()
105 if (v->port_idx) in __vlan_del()
106 RCU_INIT_POINTER(v->parent.port->vlan_info, NULL); in __vlan_del()
108 RCU_INIT_POINTER(v->parent.br->vlan_info, NULL); in __vlan_del()
109 kfree_rcu(v, rcu); in __vlan_del()
114 static void __vlan_flush(struct net_port_vlans *v) in __vlan_flush() argument
117 v->pvid = 0; in __vlan_flush()
118 bitmap_zero(v->vlan_bitmap, VLAN_N_VID); in __vlan_flush()
119 if (v->port_idx) in __vlan_flush()
120 RCU_INIT_POINTER(v->parent.port->vlan_info, NULL); in __vlan_flush()
122 RCU_INIT_POINTER(v->parent.br->vlan_info, NULL); in __vlan_flush()
123 kfree_rcu(v, rcu); in __vlan_flush()
163 bool br_allowed_ingress(struct net_bridge *br, struct net_port_vlans *v, in br_allowed_ingress() argument
180 if (!v) in br_allowed_ingress()
220 u16 pvid = br_get_pvid(v); in br_allowed_ingress()
248 if (test_bit(*vid, v->vlan_bitmap)) in br_allowed_ingress()
257 const struct net_port_vlans *v, in br_allowed_egress() argument
266 if (!v) in br_allowed_egress()
270 if (test_bit(vid, v->vlan_bitmap)) in br_allowed_egress()
280 struct net_port_vlans *v; in br_should_learn() local
286 v = rcu_dereference(p->vlan_info); in br_should_learn()
287 if (!v) in br_should_learn()
294 *vid = br_get_pvid(v); in br_should_learn()
301 if (test_bit(*vid, v->vlan_bitmap)) in br_should_learn()