Lines Matching full:vlan

129 	struct batadv_softif_vlan *vlan;  in batadv_interface_set_mac_addr()  local
144 hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) { in batadv_interface_set_mac_addr()
145 batadv_tt_local_remove(bat_priv, old_addr, vlan->vid, in batadv_interface_set_mac_addr()
147 batadv_tt_local_add(dev, addr->sa_data, vlan->vid, in batadv_interface_set_mac_addr()
498 * batadv_softif_vlan_release() - release vlan from lists and queue for free
500 * @ref: kref pointer of the vlan object
504 struct batadv_softif_vlan *vlan; in batadv_softif_vlan_release() local
506 vlan = container_of(ref, struct batadv_softif_vlan, refcount); in batadv_softif_vlan_release()
508 spin_lock_bh(&vlan->bat_priv->softif_vlan_list_lock); in batadv_softif_vlan_release()
509 hlist_del_rcu(&vlan->list); in batadv_softif_vlan_release()
510 spin_unlock_bh(&vlan->bat_priv->softif_vlan_list_lock); in batadv_softif_vlan_release()
512 kfree_rcu(vlan, rcu); in batadv_softif_vlan_release()
516 * batadv_softif_vlan_get() - get the vlan object for a specific vid
518 * @vid: the identifier of the vlan object to retrieve
520 * Return: the private data of the vlan matching the vid passed as argument or
526 struct batadv_softif_vlan *vlan_tmp, *vlan = NULL; in batadv_softif_vlan_get() local
536 vlan = vlan_tmp; in batadv_softif_vlan_get()
541 return vlan; in batadv_softif_vlan_get()
545 * batadv_softif_create_vlan() - allocate the needed resources for a new vlan
547 * @vid: the VLAN identifier
553 struct batadv_softif_vlan *vlan; in batadv_softif_create_vlan() local
557 vlan = batadv_softif_vlan_get(bat_priv, vid); in batadv_softif_create_vlan()
558 if (vlan) { in batadv_softif_create_vlan()
559 batadv_softif_vlan_put(vlan); in batadv_softif_create_vlan()
564 vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC); in batadv_softif_create_vlan()
565 if (!vlan) { in batadv_softif_create_vlan()
570 vlan->bat_priv = bat_priv; in batadv_softif_create_vlan()
571 vlan->vid = vid; in batadv_softif_create_vlan()
572 kref_init(&vlan->refcount); in batadv_softif_create_vlan()
574 atomic_set(&vlan->ap_isolation, 0); in batadv_softif_create_vlan()
576 kref_get(&vlan->refcount); in batadv_softif_create_vlan()
577 hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list); in batadv_softif_create_vlan()
588 batadv_softif_vlan_put(vlan); in batadv_softif_create_vlan()
596 * @vlan: the object to remove
599 struct batadv_softif_vlan *vlan) in batadv_softif_destroy_vlan() argument
605 vlan->vid, "vlan interface destroyed", false); in batadv_softif_destroy_vlan()
607 batadv_softif_vlan_put(vlan); in batadv_softif_destroy_vlan()
613 * @proto: protocol of the vlan id
614 * @vid: identifier of the new vlan
616 * Set up all the internal structures for handling the new vlan on top of the
625 struct batadv_softif_vlan *vlan; in batadv_interface_add_vid() local
635 /* if a new vlan is getting created and it already exists, it means that in batadv_interface_add_vid()
641 vlan = batadv_softif_vlan_get(bat_priv, vid); in batadv_interface_add_vid()
642 if (!vlan) in batadv_interface_add_vid()
646 * flag. This must be added again, even if the vlan object already in batadv_interface_add_vid()
659 * @proto: protocol of the vlan id
660 * @vid: identifier of the deleted vlan
662 * Destroy all the internal structures used to handle the vlan identified by vid
666 * or -ENOENT if the specified vlan id wasn't registered.
672 struct batadv_softif_vlan *vlan; in batadv_interface_kill_vid() local
680 vlan = batadv_softif_vlan_get(bat_priv, vid | BATADV_VLAN_HAS_TAG); in batadv_interface_kill_vid()
681 if (!vlan) in batadv_interface_kill_vid()
684 batadv_softif_destroy_vlan(bat_priv, vlan); in batadv_interface_kill_vid()
686 /* finally free the vlan object */ in batadv_interface_kill_vid()
687 batadv_softif_vlan_put(vlan); in batadv_interface_kill_vid()
1082 struct batadv_softif_vlan *vlan; in batadv_softif_destroy_netlink() local
1089 /* destroy the "untagged" VLAN */ in batadv_softif_destroy_netlink()
1090 vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS); in batadv_softif_destroy_netlink()
1091 if (vlan) { in batadv_softif_destroy_netlink()
1092 batadv_softif_destroy_vlan(bat_priv, vlan); in batadv_softif_destroy_netlink()
1093 batadv_softif_vlan_put(vlan); in batadv_softif_destroy_netlink()