Searched refs:neigh_node (Results 1 - 15 of 15) sorted by relevance

/linux-4.1.27/net/batman-adv/
H A Dicmp_socket.c159 struct batadv_neigh_node *neigh_node = NULL; batadv_socket_write() local
219 neigh_node = batadv_orig_router_get(orig_node, batadv_socket_write()
221 if (!neigh_node) batadv_socket_write()
224 if (!neigh_node->if_incoming) batadv_socket_write()
227 if (neigh_node->if_incoming->if_status != BATADV_IF_ACTIVE) batadv_socket_write()
232 addr = neigh_node->if_incoming->net_dev->dev_addr; batadv_socket_write()
256 batadv_send_skb_packet(skb, neigh_node->if_incoming, neigh_node->addr); batadv_socket_write()
267 if (neigh_node) batadv_socket_write()
268 batadv_neigh_node_free_ref(neigh_node); batadv_socket_write()
H A Doriginator.c178 * batadv_neigh_node_release - release neigh_node from lists and queue for
180 * @neigh_node: neigh neighbor to free
182 static void batadv_neigh_node_release(struct batadv_neigh_node *neigh_node) batadv_neigh_node_release() argument
188 &neigh_node->ifinfo_list, list) { batadv_neigh_node_release()
191 batadv_hardif_free_ref(neigh_node->if_incoming); batadv_neigh_node_release()
193 kfree_rcu(neigh_node, rcu); batadv_neigh_node_release()
199 * @neigh_node: neigh neighbor to free
201 void batadv_neigh_node_free_ref(struct batadv_neigh_node *neigh_node) batadv_neigh_node_free_ref() argument
203 if (atomic_dec_and_test(&neigh_node->refcount)) batadv_neigh_node_free_ref()
204 batadv_neigh_node_release(neigh_node); batadv_neigh_node_free_ref()
321 * batadv_neigh_ifinfo_get - find the ifinfo from an neigh_node
322 * @neigh_node: the neigh node to be queried
355 * @neigh_node: the neigh node to be queried
399 * batadv_neigh_node_new - create and init a new neigh_node object
404 * Allocates a new neigh_node object and initialises all the generic fields.
412 struct batadv_neigh_node *neigh_node; batadv_neigh_node_new() local
414 neigh_node = kzalloc(sizeof(*neigh_node), GFP_ATOMIC); batadv_neigh_node_new()
415 if (!neigh_node) batadv_neigh_node_new()
418 INIT_HLIST_NODE(&neigh_node->list); batadv_neigh_node_new()
419 INIT_HLIST_HEAD(&neigh_node->ifinfo_list); batadv_neigh_node_new()
420 spin_lock_init(&neigh_node->ifinfo_lock); batadv_neigh_node_new()
422 ether_addr_copy(neigh_node->addr, neigh_addr); batadv_neigh_node_new()
423 neigh_node->if_incoming = hard_iface; batadv_neigh_node_new()
424 neigh_node->orig_node = orig_node; batadv_neigh_node_new()
427 atomic_set(&neigh_node->refcount, 2); batadv_neigh_node_new()
430 return neigh_node; batadv_neigh_node_new()
529 struct batadv_neigh_node *neigh_node; batadv_orig_node_release() local
535 hlist_for_each_entry_safe(neigh_node, node_tmp, batadv_orig_node_release()
537 hlist_del_rcu(&neigh_node->list); batadv_orig_node_release()
538 batadv_neigh_node_free_ref(neigh_node); batadv_orig_node_release()
780 struct batadv_neigh_node *neigh_node; batadv_purge_orig_neighbors() local
788 hlist_for_each_entry_safe(neigh_node, node_tmp, batadv_purge_orig_neighbors()
790 last_seen = neigh_node->last_seen; batadv_purge_orig_neighbors()
791 if_incoming = neigh_node->if_incoming; batadv_purge_orig_neighbors()
802 orig_node->orig, neigh_node->addr, batadv_purge_orig_neighbors()
807 orig_node->orig, neigh_node->addr, batadv_purge_orig_neighbors()
812 hlist_del_rcu(&neigh_node->list); batadv_purge_orig_neighbors()
813 batadv_neigh_node_free_ref(neigh_node); batadv_purge_orig_neighbors()
818 batadv_purge_neigh_ifinfo(bat_priv, neigh_node); batadv_purge_orig_neighbors()
H A Dfragmentation.c336 struct batadv_neigh_node *neigh_node = NULL; batadv_frag_skb_fwd() local
346 neigh_node = batadv_find_router(bat_priv, orig_node_dst, recv_if); batadv_frag_skb_fwd()
347 if (!neigh_node) batadv_frag_skb_fwd()
354 if (total_size > neigh_node->if_incoming->net_dev->mtu) { batadv_frag_skb_fwd()
360 batadv_send_skb_packet(skb, neigh_node->if_incoming, batadv_frag_skb_fwd()
361 neigh_node->addr); batadv_frag_skb_fwd()
368 if (neigh_node) batadv_frag_skb_fwd()
369 batadv_neigh_node_free_ref(neigh_node); batadv_frag_skb_fwd()
415 * @neigh_node: next-hop of the created fragments
421 struct batadv_neigh_node *neigh_node) batadv_frag_send_packet()
427 unsigned mtu = neigh_node->if_incoming->net_dev->mtu; batadv_frag_send_packet()
468 batadv_send_skb_packet(skb_fragment, neigh_node->if_incoming, batadv_frag_send_packet()
469 neigh_node->addr); batadv_frag_send_packet()
488 batadv_send_skb_packet(skb, neigh_node->if_incoming, neigh_node->addr); batadv_frag_send_packet()
419 batadv_frag_send_packet(struct sk_buff *skb, struct batadv_orig_node *orig_node, struct batadv_neigh_node *neigh_node) batadv_frag_send_packet() argument
H A Dbat_iv_ogm.c269 struct batadv_neigh_node *neigh_node, *tmp_neigh_node; batadv_iv_ogm_neigh_new() local
271 neigh_node = batadv_neigh_node_new(hard_iface, neigh_addr, orig_node); batadv_iv_ogm_neigh_new()
272 if (!neigh_node) batadv_iv_ogm_neigh_new()
276 kfree(neigh_node); batadv_iv_ogm_neigh_new()
277 neigh_node = NULL; batadv_iv_ogm_neigh_new()
281 neigh_node->orig_node = orig_neigh; batadv_iv_ogm_neigh_new()
282 neigh_node->if_incoming = hard_iface; batadv_iv_ogm_neigh_new()
288 hlist_add_head_rcu(&neigh_node->list, &orig_node->neigh_list); batadv_iv_ogm_neigh_new()
290 kfree(neigh_node); batadv_iv_ogm_neigh_new()
292 neigh_node = tmp_neigh_node; batadv_iv_ogm_neigh_new()
303 return neigh_node; batadv_iv_ogm_neigh_new()
979 struct batadv_neigh_node *neigh_node = NULL, *tmp_neigh_node = NULL; batadv_iv_ogm_orig_update() local
997 if (WARN(neigh_node, "too many matching neigh_nodes")) batadv_iv_ogm_orig_update()
998 batadv_neigh_node_free_ref(neigh_node); batadv_iv_ogm_orig_update()
999 neigh_node = tmp_neigh_node; batadv_iv_ogm_orig_update()
1023 if (!neigh_node) { batadv_iv_ogm_orig_update()
1030 neigh_node = batadv_iv_ogm_neigh_new(if_incoming, batadv_iv_ogm_orig_update()
1035 if (!neigh_node) batadv_iv_ogm_orig_update()
1042 neigh_ifinfo = batadv_neigh_ifinfo_new(neigh_node, if_outgoing); batadv_iv_ogm_orig_update()
1046 neigh_node->last_seen = jiffies; batadv_iv_ogm_orig_update()
1048 spin_lock_bh(&neigh_node->ifinfo_lock); batadv_iv_ogm_orig_update()
1054 spin_unlock_bh(&neigh_node->ifinfo_lock); batadv_iv_ogm_orig_update()
1065 if (router == neigh_node) batadv_iv_ogm_orig_update()
1091 orig_node_tmp = neigh_node->orig_node; batadv_iv_ogm_orig_update()
1093 if_num = neigh_node->if_incoming->if_num; batadv_iv_ogm_orig_update()
1101 batadv_update_route(bat_priv, orig_node, if_outgoing, neigh_node); batadv_iv_ogm_orig_update()
1107 if (neigh_node) batadv_iv_ogm_orig_update()
1108 batadv_neigh_node_free_ref(neigh_node); batadv_iv_ogm_orig_update()
1134 struct batadv_neigh_node *neigh_node = NULL, *tmp_neigh_node; batadv_iv_ogm_calc_tq() local
1157 neigh_node = tmp_neigh_node; batadv_iv_ogm_calc_tq()
1162 if (!neigh_node) batadv_iv_ogm_calc_tq()
1163 neigh_node = batadv_iv_ogm_neigh_new(if_incoming, batadv_iv_ogm_calc_tq()
1168 if (!neigh_node) batadv_iv_ogm_calc_tq()
1171 /* if orig_node is direct neighbor update neigh_node last_seen */ batadv_iv_ogm_calc_tq()
1173 neigh_node->last_seen = jiffies; batadv_iv_ogm_calc_tq()
1181 neigh_ifinfo = batadv_neigh_ifinfo_new(neigh_node, if_outgoing); batadv_iv_ogm_calc_tq()
1203 /* neigh_node->real_packet_count is never zero as we batadv_iv_ogm_calc_tq()
1256 if (neigh_node) batadv_iv_ogm_calc_tq()
1257 batadv_neigh_node_free_ref(neigh_node); batadv_iv_ogm_calc_tq()
1280 struct batadv_neigh_node *neigh_node; batadv_iv_ogm_update_seqnos() local
1314 hlist_for_each_entry_rcu(neigh_node, &orig_node->neigh_list, list) { batadv_iv_ogm_update_seqnos()
1315 neigh_ifinfo = batadv_neigh_ifinfo_new(neigh_node, batadv_iv_ogm_update_seqnos()
1320 neigh_addr = neigh_node->addr; batadv_iv_ogm_update_seqnos()
1326 neigh_node->if_incoming == if_incoming) { batadv_iv_ogm_update_seqnos()
1774 struct batadv_neigh_node *neigh_node; batadv_iv_ogm_orig_print_neigh() local
1777 hlist_for_each_entry_rcu(neigh_node, &orig_node->neigh_list, list) { batadv_iv_ogm_orig_print_neigh()
1778 n_ifinfo = batadv_neigh_ifinfo_get(neigh_node, if_outgoing); batadv_iv_ogm_orig_print_neigh()
1783 neigh_node->addr, batadv_iv_ogm_orig_print_neigh()
1800 struct batadv_neigh_node *neigh_node; batadv_iv_ogm_orig_print() local
1819 neigh_node = batadv_orig_router_get(orig_node, hlist_for_each_entry_rcu()
1821 if (!neigh_node) hlist_for_each_entry_rcu()
1824 n_ifinfo = batadv_neigh_ifinfo_get(neigh_node, hlist_for_each_entry_rcu()
1840 neigh_node->addr, hlist_for_each_entry_rcu()
1841 neigh_node->if_incoming->net_dev->name); hlist_for_each_entry_rcu()
1849 batadv_neigh_node_free_ref(neigh_node); hlist_for_each_entry_rcu()
H A Dnetwork-coding.h39 struct batadv_neigh_node *neigh_node);
93 struct batadv_neigh_node *neigh_node) batadv_nc_skb_forward()
92 batadv_nc_skb_forward(struct sk_buff *skb, struct batadv_neigh_node *neigh_node) batadv_nc_skb_forward() argument
H A Dfragmentation.h30 struct batadv_neigh_node *neigh_node);
H A Drouting.h27 struct batadv_neigh_node *neigh_node);
H A Dsend.c104 struct batadv_neigh_node *neigh_node; batadv_send_skb_to_orig() local
108 neigh_node = batadv_find_router(bat_priv, orig_node, recv_if); batadv_send_skb_to_orig()
109 if (!neigh_node) batadv_send_skb_to_orig()
116 skb->len > neigh_node->if_incoming->net_dev->mtu) { batadv_send_skb_to_orig()
118 if (batadv_frag_send_packet(skb, orig_node, neigh_node)) batadv_send_skb_to_orig()
128 if (recv_if && batadv_nc_skb_forward(skb, neigh_node)) { batadv_send_skb_to_orig()
131 batadv_send_skb_packet(skb, neigh_node->if_incoming, batadv_send_skb_to_orig()
132 neigh_node->addr); batadv_send_skb_to_orig()
137 if (neigh_node) batadv_send_skb_to_orig()
138 batadv_neigh_node_free_ref(neigh_node); batadv_send_skb_to_orig()
H A Drouting.c41 * @neigh_node: neighbor which should be the next router
48 struct batadv_neigh_node *neigh_node) _batadv_update_route()
64 if ((curr_router) && (!neigh_node)) { _batadv_update_route()
71 } else if ((!curr_router) && (neigh_node)) { _batadv_update_route()
74 orig_node->orig, neigh_node->addr); _batadv_update_route()
76 } else if (neigh_node && curr_router) { _batadv_update_route()
79 orig_node->orig, neigh_node->addr, _batadv_update_route()
87 if (neigh_node && !atomic_inc_not_zero(&neigh_node->refcount)) _batadv_update_route()
88 neigh_node = NULL; _batadv_update_route()
91 rcu_assign_pointer(orig_ifinfo->router, neigh_node); _batadv_update_route()
105 * @neigh_node: neighbor which should be the next router
110 struct batadv_neigh_node *neigh_node) batadv_update_route()
119 if (router != neigh_node) batadv_update_route()
120 _batadv_update_route(bat_priv, orig_node, recv_if, neigh_node); batadv_update_route()
45 _batadv_update_route(struct batadv_priv *bat_priv, struct batadv_orig_node *orig_node, struct batadv_hard_iface *recv_if, struct batadv_neigh_node *neigh_node) _batadv_update_route() argument
107 batadv_update_route(struct batadv_priv *bat_priv, struct batadv_orig_node *orig_node, struct batadv_hard_iface *recv_if, struct batadv_neigh_node *neigh_node) batadv_update_route() argument
H A Dnetwork-coding.c538 nc_packet->neigh_node->if_incoming, batadv_nc_send_packet()
1005 * @neigh_node: next hop to forward packet to
1013 struct batadv_neigh_node *neigh_node) batadv_nc_code_packets()
1036 router_neigh = batadv_orig_router_get(neigh_node->orig_node, batadv_nc_code_packets()
1046 neigh_tmp = nc_packet->neigh_node; batadv_nc_code_packets()
1069 second_dest = neigh_node->addr; batadv_nc_code_packets()
1078 first_dest = neigh_node->addr; batadv_nc_code_packets()
1177 batadv_send_skb_packet(skb_dest, neigh_node->if_incoming, first_dest); batadv_nc_code_packets()
1368 * @neigh_node: next hop to forward packet to
1379 struct batadv_neigh_node *neigh_node, batadv_nc_skb_dst_search()
1382 struct net_device *netdev = neigh_node->if_incoming->soft_iface; batadv_nc_skb_dst_search()
1384 struct batadv_orig_node *orig_node = neigh_node->orig_node; batadv_nc_skb_dst_search()
1392 neigh_node->addr, batadv_nc_skb_dst_search()
1406 neigh_node->addr); batadv_nc_skb_dst_search()
1408 nc_packet->neigh_node->addr); batadv_nc_skb_dst_search()
1412 neigh_node)) batadv_nc_skb_dst_search()
1427 * @neigh_node: next hop to forward packet to
1434 struct batadv_neigh_node *neigh_node, batadv_nc_skb_add_to_path()
1447 nc_packet->neigh_node = neigh_node; batadv_nc_skb_add_to_path()
1462 * @neigh_node: next hop to forward packet to
1467 struct batadv_neigh_node *neigh_node) batadv_nc_skb_forward()
1469 const struct net_device *netdev = neigh_node->if_incoming->soft_iface; batadv_nc_skb_forward()
1488 if (batadv_nc_skb_dst_search(skb, neigh_node, ethhdr)) batadv_nc_skb_forward()
1495 neigh_node->addr); batadv_nc_skb_forward()
1502 if (!batadv_nc_skb_add_to_path(skb, nc_path, neigh_node, packet_id)) batadv_nc_skb_forward()
1009 batadv_nc_code_packets(struct batadv_priv *bat_priv, struct sk_buff *skb, struct ethhdr *ethhdr, struct batadv_nc_packet *nc_packet, struct batadv_neigh_node *neigh_node) batadv_nc_code_packets() argument
1378 batadv_nc_skb_dst_search(struct sk_buff *skb, struct batadv_neigh_node *neigh_node, struct ethhdr *ethhdr) batadv_nc_skb_dst_search() argument
1432 batadv_nc_skb_add_to_path(struct sk_buff *skb, struct batadv_nc_path *nc_path, struct batadv_neigh_node *neigh_node, __be32 packet_id) batadv_nc_skb_add_to_path() argument
1466 batadv_nc_skb_forward(struct sk_buff *skb, struct batadv_neigh_node *neigh_node) batadv_nc_skb_forward() argument
H A Doriginator.h38 void batadv_neigh_node_free_ref(struct batadv_neigh_node *neigh_node);
H A Ddistributed-arp-table.c580 struct batadv_neigh_node *neigh_node = NULL; batadv_dat_send_data() local
594 neigh_node = batadv_orig_router_get(cand[i].orig_node, batadv_dat_send_data()
596 if (!neigh_node) batadv_dat_send_data()
608 neigh_node->if_incoming, batadv_dat_send_data()
609 neigh_node->addr); batadv_dat_send_data()
627 batadv_neigh_node_free_ref(neigh_node); batadv_dat_send_data()
H A Dtypes.h188 * neigh_node->bat_iv.real_bits & neigh_node->bat_iv.real_packet_count
194 * neigh_node->bat_iv.real_bits & neigh_node->bat_iv.real_packet_count
1056 * @neigh_node: pointer to original next hop neighbor of skb
1064 struct batadv_neigh_node *neigh_node; member in struct:batadv_nc_packet
/linux-4.1.27/include/net/
H A Dnetrom.h86 struct hlist_node neigh_node; member in struct:nr_neigh
158 hlist_for_each_entry(__nr_neigh, list, neigh_node)
161 hlist_for_each_entry_safe(__nr_neigh, node2, list, neigh_node)
/linux-4.1.27/net/netrom/
H A Dnr_route.c168 hlist_add_head(&nr_neigh->neigh_node, &nr_neigh_list); nr_add_node()
334 hlist_del_init(&nr_neigh->neigh_node); __nr_remove_neigh()
447 hlist_add_head(&nr_neigh->neigh_node, &nr_neigh_list); nr_add_neigh()
962 nr_neigh = hlist_entry(v, struct nr_neigh, neigh_node); nr_neigh_show()

Completed in 390 milliseconds