Lines Matching refs:port_vlan

141 	struct prestera_port_vlan *port_vlan;  in prestera_port_vlan_by_vid()  local
143 list_for_each_entry(port_vlan, &port->vlans_list, port_head) { in prestera_port_vlan_by_vid()
144 if (port_vlan->vid == vid) in prestera_port_vlan_by_vid()
145 return port_vlan; in prestera_port_vlan_by_vid()
154 struct prestera_port_vlan *port_vlan; in prestera_port_vlan_create() local
157 port_vlan = prestera_port_vlan_by_vid(port, vid); in prestera_port_vlan_create()
158 if (port_vlan) in prestera_port_vlan_create()
165 port_vlan = kzalloc(sizeof(*port_vlan), GFP_KERNEL); in prestera_port_vlan_create()
166 if (!port_vlan) { in prestera_port_vlan_create()
171 port_vlan->port = port; in prestera_port_vlan_create()
172 port_vlan->vid = vid; in prestera_port_vlan_create()
174 list_add(&port_vlan->port_head, &port->vlans_list); in prestera_port_vlan_create()
176 return port_vlan; in prestera_port_vlan_create()
184 prestera_port_vlan_bridge_leave(struct prestera_port_vlan *port_vlan) in prestera_port_vlan_bridge_leave() argument
187 struct prestera_port *port = port_vlan->port; in prestera_port_vlan_bridge_leave()
191 u16 vid = port_vlan->vid; in prestera_port_vlan_bridge_leave()
194 br_port = port_vlan->br_port; in prestera_port_vlan_bridge_leave()
208 list_del(&port_vlan->br_vlan_head); in prestera_port_vlan_bridge_leave()
211 port_vlan->br_port = NULL; in prestera_port_vlan_bridge_leave()
214 static void prestera_port_vlan_destroy(struct prestera_port_vlan *port_vlan) in prestera_port_vlan_destroy() argument
216 struct prestera_port *port = port_vlan->port; in prestera_port_vlan_destroy()
217 u16 vid = port_vlan->vid; in prestera_port_vlan_destroy()
219 if (port_vlan->br_port) in prestera_port_vlan_destroy()
220 prestera_port_vlan_bridge_leave(port_vlan); in prestera_port_vlan_destroy()
223 list_del(&port_vlan->port_head); in prestera_port_vlan_destroy()
224 kfree(port_vlan); in prestera_port_vlan_destroy()
656 struct prestera_port_vlan *port_vlan; in prestera_port_bridge_vlan_stp_set() local
658 list_for_each_entry(port_vlan, &br_vlan->port_vlan_list, br_vlan_head) { in prestera_port_bridge_vlan_stp_set()
659 if (port_vlan->port != port) in prestera_port_bridge_vlan_stp_set()
908 prestera_port_vlan_bridge_join(struct prestera_port_vlan *port_vlan, in prestera_port_vlan_bridge_join() argument
911 struct prestera_port *port = port_vlan->port; in prestera_port_vlan_bridge_join()
913 u16 vid = port_vlan->vid; in prestera_port_vlan_bridge_join()
916 if (port_vlan->br_port) in prestera_port_vlan_bridge_join()
940 list_add(&port_vlan->br_vlan_head, &br_vlan->port_vlan_list); in prestera_port_vlan_bridge_join()
943 port_vlan->br_port = br_port; in prestera_port_vlan_bridge_join()
961 struct prestera_port_vlan *port_vlan; in prestera_bridge_port_vlan_add() local
971 port_vlan = prestera_port_vlan_by_vid(port, vid); in prestera_bridge_port_vlan_add()
972 if (port_vlan && port_vlan->br_port != br_port) in prestera_bridge_port_vlan_add()
975 if (!port_vlan) { in prestera_bridge_port_vlan_add()
976 port_vlan = prestera_port_vlan_create(port, vid, is_untagged); in prestera_bridge_port_vlan_add()
977 if (IS_ERR(port_vlan)) in prestera_bridge_port_vlan_add()
978 return PTR_ERR(port_vlan); in prestera_bridge_port_vlan_add()
989 err = prestera_port_vlan_bridge_join(port_vlan, br_port); in prestera_bridge_port_vlan_add()
1000 prestera_port_vlan_destroy(port_vlan); in prestera_bridge_port_vlan_add()
1010 struct prestera_port_vlan *port_vlan; in prestera_bridge_port_vlan_del() local
1012 port_vlan = prestera_port_vlan_by_vid(port, vid); in prestera_bridge_port_vlan_del()
1013 if (WARN_ON(!port_vlan)) in prestera_bridge_port_vlan_del()
1016 prestera_port_vlan_bridge_leave(port_vlan); in prestera_bridge_port_vlan_del()
1018 prestera_port_vlan_destroy(port_vlan); in prestera_bridge_port_vlan_del()