Lines Matching refs:vlan
3 * Bridge per vlan tunnel port dst_metadata handling code
44 static void vlan_tunnel_info_release(struct net_bridge_vlan *vlan)
46 struct metadata_dst *tdst = rtnl_dereference(vlan->tinfo.tunnel_dst);
48 WRITE_ONCE(vlan->tinfo.tunnel_id, 0);
49 RCU_INIT_POINTER(vlan->tinfo.tunnel_dst, NULL);
54 struct net_bridge_vlan *vlan)
56 if (!rcu_access_pointer(vlan->tinfo.tunnel_dst))
58 rhashtable_remove_fast(&vg->tunnel_hash, &vlan->tnode,
60 vlan_tunnel_info_release(vlan);
64 struct net_bridge_vlan *vlan, u32 tun_id)
66 struct metadata_dst *metadata = rtnl_dereference(vlan->tinfo.tunnel_dst);
79 rcu_assign_pointer(vlan->tinfo.tunnel_dst, metadata);
80 WRITE_ONCE(vlan->tinfo.tunnel_id, key);
82 err = rhashtable_lookup_insert_fast(&vg->tunnel_hash, &vlan->tnode,
89 vlan_tunnel_info_release(vlan);
101 struct net_bridge_vlan *vlan;
106 vlan = br_vlan_find(vg, vid);
107 if (!vlan)
110 return __vlan_tunnel_info_add(vg, vlan, tun_id);
135 struct net_bridge_vlan *vlan, *tmp;
137 list_for_each_entry_safe(vlan, tmp, &vg->vlan_list, vlist)
138 vlan_tunnel_info_del(vg, vlan);
166 struct net_bridge_vlan *vlan;
176 vlan = br_vlan_tunnel_lookup(&vg->tunnel_hash, tinfo->key.tun_id);
177 if (!vlan)
182 __vlan_hwaccel_put_tag(skb, p->br->vlan_proto, vlan->vid);
188 struct net_bridge_vlan *vlan)
194 if (!vlan)
197 tunnel_id = READ_ONCE(vlan->tinfo.tunnel_id);
206 tunnel_dst = rcu_dereference(vlan->tinfo.tunnel_dst);