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()
223 prestera_port_vlan_bridge_leave(struct prestera_port_vlan *port_vlan) in prestera_port_vlan_bridge_leave() argument
226 struct prestera_port *port = port_vlan->port; in prestera_port_vlan_bridge_leave()
230 u16 vid = port_vlan->vid; in prestera_port_vlan_bridge_leave()
233 br_port = port_vlan->br_port; in prestera_port_vlan_bridge_leave()
247 list_del(&port_vlan->br_vlan_head); in prestera_port_vlan_bridge_leave()
250 port_vlan->br_port = NULL; in prestera_port_vlan_bridge_leave()
253 static void prestera_port_vlan_destroy(struct prestera_port_vlan *port_vlan) in prestera_port_vlan_destroy() argument
255 struct prestera_port *port = port_vlan->port; in prestera_port_vlan_destroy()
256 u16 vid = port_vlan->vid; in prestera_port_vlan_destroy()
258 if (port_vlan->br_port) in prestera_port_vlan_destroy()
259 prestera_port_vlan_bridge_leave(port_vlan); in prestera_port_vlan_destroy()
262 list_del(&port_vlan->port_head); in prestera_port_vlan_destroy()
263 kfree(port_vlan); in prestera_port_vlan_destroy()
667 struct prestera_port_vlan *port_vlan; in prestera_port_bridge_vlan_stp_set() local
669 list_for_each_entry(port_vlan, &br_vlan->port_vlan_list, br_vlan_head) { in prestera_port_bridge_vlan_stp_set()
670 if (port_vlan->port != port) in prestera_port_bridge_vlan_stp_set()
912 prestera_port_vlan_bridge_join(struct prestera_port_vlan *port_vlan, in prestera_port_vlan_bridge_join() argument
915 struct prestera_port *port = port_vlan->port; in prestera_port_vlan_bridge_join()
917 u16 vid = port_vlan->vid; in prestera_port_vlan_bridge_join()
920 if (port_vlan->br_port) in prestera_port_vlan_bridge_join()
945 list_add(&port_vlan->br_vlan_head, &br_vlan->port_vlan_list); in prestera_port_vlan_bridge_join()
948 port_vlan->br_port = br_port; in prestera_port_vlan_bridge_join()
966 struct prestera_port_vlan *port_vlan; in prestera_bridge_port_vlan_add() local
976 port_vlan = prestera_port_vlan_by_vid(port, vid); in prestera_bridge_port_vlan_add()
977 if (port_vlan && port_vlan->br_port != br_port) in prestera_bridge_port_vlan_add()
980 if (!port_vlan) { in prestera_bridge_port_vlan_add()
981 port_vlan = prestera_port_vlan_create(port, vid, is_untagged); in prestera_bridge_port_vlan_add()
982 if (IS_ERR(port_vlan)) in prestera_bridge_port_vlan_add()
983 return PTR_ERR(port_vlan); in prestera_bridge_port_vlan_add()
994 err = prestera_port_vlan_bridge_join(port_vlan, br_port); in prestera_bridge_port_vlan_add()
1005 prestera_port_vlan_destroy(port_vlan); in prestera_bridge_port_vlan_add()
1015 struct prestera_port_vlan *port_vlan; in prestera_bridge_port_vlan_del() local
1017 port_vlan = prestera_port_vlan_by_vid(port, vid); in prestera_bridge_port_vlan_del()
1018 if (WARN_ON(!port_vlan)) in prestera_bridge_port_vlan_del()
1021 prestera_port_vlan_bridge_leave(port_vlan); in prestera_bridge_port_vlan_del()
1023 prestera_port_vlan_destroy(port_vlan); in prestera_bridge_port_vlan_del()