/linux-4.1.27/net/batman-adv/ |
H A D | icmp_socket.c | 159 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 D | originator.c | 178 * 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 D | fragmentation.c | 336 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 D | bat_iv_ogm.c | 269 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 D | network-coding.h | 39 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 D | fragmentation.h | 30 struct batadv_neigh_node *neigh_node);
|
H A D | routing.h | 27 struct batadv_neigh_node *neigh_node);
|
H A D | send.c | 104 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 D | routing.c | 41 * @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 D | network-coding.c | 538 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 D | originator.h | 38 void batadv_neigh_node_free_ref(struct batadv_neigh_node *neigh_node);
|
H A D | distributed-arp-table.c | 580 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 D | types.h | 188 * 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 D | netrom.h | 86 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 D | nr_route.c | 168 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()
|