Lines Matching defs:neigh_node
262 * @ref: kref pointer of the neigh_node
280 * batadv_neigh_node_release() - release neigh_node from lists and queue for
282 * @ref: kref pointer of the neigh_node
287 struct batadv_neigh_node *neigh_node;
290 neigh_node = container_of(ref, struct batadv_neigh_node, refcount);
293 &neigh_node->ifinfo_list, list) {
297 batadv_hardif_neigh_put(neigh_node->hardif_neigh);
299 batadv_hardif_put(neigh_node->if_incoming);
301 kfree_rcu(neigh_node, rcu);
351 struct batadv_neigh_node *neigh_node;
358 neigh_node = batadv_find_router(bat_priv, orig_node, if_outgoing);
361 return neigh_node;
443 * batadv_neigh_ifinfo_get() - find the ifinfo from an neigh_node
663 * Allocates a new neigh_node object and initialises all the generic fields.
672 struct batadv_neigh_node *neigh_node;
677 neigh_node = batadv_neigh_node_get(orig_node, hard_iface, neigh_addr);
678 if (neigh_node)
686 neigh_node = kzalloc(sizeof(*neigh_node), GFP_ATOMIC);
687 if (!neigh_node)
690 INIT_HLIST_NODE(&neigh_node->list);
691 INIT_HLIST_HEAD(&neigh_node->ifinfo_list);
692 spin_lock_init(&neigh_node->ifinfo_lock);
695 ether_addr_copy(neigh_node->addr, neigh_addr);
696 neigh_node->if_incoming = hard_iface;
697 neigh_node->orig_node = orig_node;
698 neigh_node->last_seen = jiffies;
702 neigh_node->hardif_neigh = hardif_neigh;
705 kref_init(&neigh_node->refcount);
707 kref_get(&neigh_node->refcount);
708 hlist_add_head_rcu(&neigh_node->list, &orig_node->neigh_list);
718 return neigh_node;
734 struct batadv_neigh_node *neigh_node;
737 neigh_node = batadv_neigh_node_get(orig_node, hard_iface, neigh_addr);
738 if (neigh_node)
739 return neigh_node;
849 struct batadv_neigh_node *neigh_node;
860 hlist_for_each_entry_safe(neigh_node, node_tmp,
862 hlist_del_rcu(&neigh_node->list);
863 batadv_neigh_node_put(neigh_node);
1108 struct batadv_neigh_node *neigh_node;
1116 hlist_for_each_entry_safe(neigh_node, node_tmp,
1118 last_seen = neigh_node->last_seen;
1119 if_incoming = neigh_node->if_incoming;
1130 orig_node->orig, neigh_node->addr,
1135 orig_node->orig, neigh_node->addr,
1140 hlist_del_rcu(&neigh_node->list);
1141 batadv_neigh_node_put(neigh_node);
1146 batadv_purge_neigh_ifinfo(bat_priv, neigh_node);