Lines Matching refs:orig_node

145 static void batadv_iv_ogm_orig_free(struct batadv_orig_node *orig_node)  in batadv_iv_ogm_orig_free()  argument
147 kfree(orig_node->bat_iv.bcast_own); in batadv_iv_ogm_orig_free()
148 kfree(orig_node->bat_iv.bcast_own_sum); in batadv_iv_ogm_orig_free()
159 static int batadv_iv_ogm_orig_add_if(struct batadv_orig_node *orig_node, in batadv_iv_ogm_orig_add_if() argument
166 spin_lock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_orig_add_if()
175 memcpy(data_ptr, orig_node->bat_iv.bcast_own, old_size); in batadv_iv_ogm_orig_add_if()
176 kfree(orig_node->bat_iv.bcast_own); in batadv_iv_ogm_orig_add_if()
177 orig_node->bat_iv.bcast_own = data_ptr; in batadv_iv_ogm_orig_add_if()
183 memcpy(data_ptr, orig_node->bat_iv.bcast_own_sum, in batadv_iv_ogm_orig_add_if()
185 kfree(orig_node->bat_iv.bcast_own_sum); in batadv_iv_ogm_orig_add_if()
186 orig_node->bat_iv.bcast_own_sum = data_ptr; in batadv_iv_ogm_orig_add_if()
191 spin_unlock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_orig_add_if()
203 batadv_iv_ogm_drop_bcast_own_entry(struct batadv_orig_node *orig_node, in batadv_iv_ogm_drop_bcast_own_entry() argument
211 lockdep_assert_held(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_drop_bcast_own_entry()
217 data_ptr = orig_node->bat_iv.bcast_own; in batadv_iv_ogm_drop_bcast_own_entry()
220 memmove(data_ptr, orig_node->bat_iv.bcast_own, del_if_num * chunk_size); in batadv_iv_ogm_drop_bcast_own_entry()
225 (uint8_t *)orig_node->bat_iv.bcast_own + if_offset, in batadv_iv_ogm_drop_bcast_own_entry()
229 if (orig_node->bat_iv.bcast_own != data_ptr) { in batadv_iv_ogm_drop_bcast_own_entry()
230 kfree(orig_node->bat_iv.bcast_own); in batadv_iv_ogm_drop_bcast_own_entry()
231 orig_node->bat_iv.bcast_own = data_ptr; in batadv_iv_ogm_drop_bcast_own_entry()
242 batadv_iv_ogm_drop_bcast_own_sum_entry(struct batadv_orig_node *orig_node, in batadv_iv_ogm_drop_bcast_own_sum_entry() argument
249 lockdep_assert_held(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_drop_bcast_own_sum_entry()
254 data_ptr = orig_node->bat_iv.bcast_own_sum; in batadv_iv_ogm_drop_bcast_own_sum_entry()
256 memmove(data_ptr, orig_node->bat_iv.bcast_own_sum, in batadv_iv_ogm_drop_bcast_own_sum_entry()
261 orig_node->bat_iv.bcast_own_sum + if_offset, in batadv_iv_ogm_drop_bcast_own_sum_entry()
265 if (orig_node->bat_iv.bcast_own_sum != data_ptr) { in batadv_iv_ogm_drop_bcast_own_sum_entry()
266 kfree(orig_node->bat_iv.bcast_own_sum); in batadv_iv_ogm_drop_bcast_own_sum_entry()
267 orig_node->bat_iv.bcast_own_sum = data_ptr; in batadv_iv_ogm_drop_bcast_own_sum_entry()
280 static int batadv_iv_ogm_orig_del_if(struct batadv_orig_node *orig_node, in batadv_iv_ogm_orig_del_if() argument
284 spin_lock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_orig_del_if()
287 kfree(orig_node->bat_iv.bcast_own); in batadv_iv_ogm_orig_del_if()
288 kfree(orig_node->bat_iv.bcast_own_sum); in batadv_iv_ogm_orig_del_if()
289 orig_node->bat_iv.bcast_own = NULL; in batadv_iv_ogm_orig_del_if()
290 orig_node->bat_iv.bcast_own_sum = NULL; in batadv_iv_ogm_orig_del_if()
292 batadv_iv_ogm_drop_bcast_own_entry(orig_node, max_if_num, in batadv_iv_ogm_orig_del_if()
294 batadv_iv_ogm_drop_bcast_own_sum_entry(orig_node, max_if_num, in batadv_iv_ogm_orig_del_if()
298 spin_unlock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_orig_del_if()
316 struct batadv_orig_node *orig_node; in batadv_iv_ogm_orig_get() local
320 orig_node = batadv_orig_hash_find(bat_priv, addr); in batadv_iv_ogm_orig_get()
321 if (orig_node) in batadv_iv_ogm_orig_get()
322 return orig_node; in batadv_iv_ogm_orig_get()
324 orig_node = batadv_orig_node_new(bat_priv, addr); in batadv_iv_ogm_orig_get()
325 if (!orig_node) in batadv_iv_ogm_orig_get()
328 spin_lock_init(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_orig_get()
331 orig_node->bat_iv.bcast_own = kzalloc(size, GFP_ATOMIC); in batadv_iv_ogm_orig_get()
332 if (!orig_node->bat_iv.bcast_own) in batadv_iv_ogm_orig_get()
336 orig_node->bat_iv.bcast_own_sum = kzalloc(size, GFP_ATOMIC); in batadv_iv_ogm_orig_get()
337 if (!orig_node->bat_iv.bcast_own_sum) in batadv_iv_ogm_orig_get()
340 kref_get(&orig_node->refcount); in batadv_iv_ogm_orig_get()
342 batadv_choose_orig, orig_node, in batadv_iv_ogm_orig_get()
343 &orig_node->hash_entry); in batadv_iv_ogm_orig_get()
347 return orig_node; in batadv_iv_ogm_orig_get()
350 batadv_orig_node_put(orig_node); in batadv_iv_ogm_orig_get()
352 batadv_orig_node_put(orig_node); in batadv_iv_ogm_orig_get()
360 struct batadv_orig_node *orig_node, in batadv_iv_ogm_neigh_new() argument
365 neigh_node = batadv_neigh_node_get_or_create(orig_node, in batadv_iv_ogm_neigh_new()
370 neigh_node->orig_node = orig_neigh; in batadv_iv_ogm_neigh_new()
831 static void batadv_iv_ogm_forward(struct batadv_orig_node *orig_node, in batadv_iv_ogm_forward() argument
895 struct batadv_orig_node *orig_node; in batadv_iv_ogm_slide_own_bcast_window() local
906 hlist_for_each_entry_rcu(orig_node, head, hash_entry) { in batadv_iv_ogm_slide_own_bcast_window()
907 spin_lock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_slide_own_bcast_window()
909 word = &orig_node->bat_iv.bcast_own[word_index]; in batadv_iv_ogm_slide_own_bcast_window()
913 w = &orig_node->bat_iv.bcast_own_sum[if_num]; in batadv_iv_ogm_slide_own_bcast_window()
915 spin_unlock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_slide_own_bcast_window()
1016 struct batadv_orig_node *orig_node, in batadv_iv_ogm_orig_update() argument
1041 &orig_node->neigh_list, list) { in batadv_iv_ogm_orig_update()
1081 orig_node, orig_tmp); in batadv_iv_ogm_orig_update()
1114 router = batadv_orig_router_get(orig_node, if_outgoing); in batadv_iv_ogm_orig_update()
1135 orig_node_tmp = router->orig_node; in batadv_iv_ogm_orig_update()
1141 orig_node_tmp = neigh_node->orig_node; in batadv_iv_ogm_orig_update()
1151 batadv_update_route(bat_priv, orig_node, if_outgoing, neigh_node); in batadv_iv_ogm_orig_update()
1177 static bool batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node, in batadv_iv_ogm_calc_tq() argument
1224 if (orig_node == orig_neigh_node) in batadv_iv_ogm_calc_tq()
1227 orig_node->last_seen = jiffies; in batadv_iv_ogm_calc_tq()
1296 orig_node->orig, orig_neigh_node->orig, total_count, in batadv_iv_ogm_calc_tq()
1330 struct batadv_orig_node *orig_node; in batadv_iv_ogm_update_seqnos() local
1344 orig_node = batadv_iv_ogm_orig_get(bat_priv, batadv_ogm_packet->orig); in batadv_iv_ogm_update_seqnos()
1345 if (!orig_node) in batadv_iv_ogm_update_seqnos()
1348 orig_ifinfo = batadv_orig_ifinfo_new(orig_node, if_outgoing); in batadv_iv_ogm_update_seqnos()
1350 batadv_orig_node_put(orig_node); in batadv_iv_ogm_update_seqnos()
1354 spin_lock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_update_seqnos()
1358 if (!hlist_empty(&orig_node->neigh_list) && in batadv_iv_ogm_update_seqnos()
1367 hlist_for_each_entry_rcu(neigh_node, &orig_node->neigh_list, list) { in batadv_iv_ogm_update_seqnos()
1410 spin_unlock_bh(&orig_node->bat_iv.ogm_cnt_lock); in batadv_iv_ogm_update_seqnos()
1411 batadv_orig_node_put(orig_node); in batadv_iv_ogm_update_seqnos()
1427 struct batadv_orig_node *orig_node, in batadv_iv_ogm_process_per_outif() argument
1484 router = batadv_orig_router_get(orig_node, if_outgoing); in batadv_iv_ogm_process_per_outif()
1486 router_router = batadv_orig_router_get(router->orig_node, in batadv_iv_ogm_process_per_outif()
1508 batadv_tvlv_ogm_receive(bat_priv, ogm_packet, orig_node); in batadv_iv_ogm_process_per_outif()
1514 orig_neigh_node = orig_node; in batadv_iv_ogm_process_per_outif()
1523 batadv_nc_update_nc_node(bat_priv, orig_node, orig_neigh_node, in batadv_iv_ogm_process_per_outif()
1538 is_bidirect = batadv_iv_ogm_calc_tq(orig_node, orig_neigh_node, in batadv_iv_ogm_process_per_outif()
1545 orig_ifinfo = batadv_orig_ifinfo_new(orig_node, if_outgoing); in batadv_iv_ogm_process_per_outif()
1554 batadv_iv_ogm_orig_update(bat_priv, orig_node, in batadv_iv_ogm_process_per_outif()
1577 batadv_iv_ogm_forward(orig_node, ethhdr, ogm_packet, in batadv_iv_ogm_process_per_outif()
1602 batadv_iv_ogm_forward(orig_node, ethhdr, ogm_packet, in batadv_iv_ogm_process_per_outif()
1634 struct batadv_orig_node *orig_neigh_node, *orig_node; in batadv_iv_ogm_process() local
1760 orig_node = batadv_iv_ogm_orig_get(bat_priv, ogm_packet->orig); in batadv_iv_ogm_process()
1761 if (!orig_node) in batadv_iv_ogm_process()
1764 batadv_iv_ogm_process_per_outif(skb, ogm_offset, orig_node, in batadv_iv_ogm_process()
1778 batadv_iv_ogm_process_per_outif(skb, ogm_offset, orig_node, in batadv_iv_ogm_process()
1785 batadv_orig_node_put(orig_node); in batadv_iv_ogm_process()
1886 batadv_iv_ogm_orig_print_neigh(struct batadv_orig_node *orig_node, in batadv_iv_ogm_orig_print_neigh() argument
1893 hlist_for_each_entry_rcu(neigh_node, &orig_node->neigh_list, list) { in batadv_iv_ogm_orig_print_neigh()
1919 struct batadv_orig_node *orig_node; in batadv_iv_ogm_orig_print() local
1933 hlist_for_each_entry_rcu(orig_node, head, hash_entry) { in batadv_iv_ogm_orig_print()
1934 neigh_node = batadv_orig_router_get(orig_node, in batadv_iv_ogm_orig_print()
1947 last_seen_jiffies = jiffies - orig_node->last_seen; in batadv_iv_ogm_orig_print()
1953 orig_node->orig, last_seen_secs, in batadv_iv_ogm_orig_print()
1958 batadv_iv_ogm_orig_print_neigh(orig_node, if_outgoing, in batadv_iv_ogm_orig_print()
2020 struct batadv_orig_node *orig_node, in batadv_iv_ogm_orig_dump_subentry() argument
2028 last_seen_msecs = jiffies_to_msecs(jiffies - orig_node->last_seen); in batadv_iv_ogm_orig_dump_subentry()
2043 orig_node->orig) || in batadv_iv_ogm_orig_dump_subentry()
2082 struct batadv_orig_node *orig_node, int *sub_s) in batadv_iv_ogm_orig_dump_entry() argument
2090 neigh_node_best = batadv_orig_router_get(orig_node, if_outgoing); in batadv_iv_ogm_orig_dump_entry()
2101 hlist_for_each_entry_rcu(neigh_node, &orig_node->neigh_list, list) { in batadv_iv_ogm_orig_dump_entry()
2109 orig_node, neigh_node, in batadv_iv_ogm_orig_dump_entry()
2146 struct batadv_orig_node *orig_node; in batadv_iv_ogm_orig_dump_bucket() local
2150 hlist_for_each_entry_rcu(orig_node, head, hash_entry) { in batadv_iv_ogm_orig_dump_bucket()
2155 if_outgoing, orig_node, in batadv_iv_ogm_orig_dump_bucket()
2514 struct batadv_orig_node *orig_node; in batadv_iv_gw_get_best_gw_node() local
2518 orig_node = gw_node->orig_node; in batadv_iv_gw_get_best_gw_node()
2519 router = batadv_orig_router_get(orig_node, BATADV_IF_DEFAULT); in batadv_iv_gw_get_best_gw_node()
2586 struct batadv_orig_node *orig_node) in batadv_iv_gw_is_eligible() argument
2612 router_orig = batadv_orig_router_get(orig_node, BATADV_IF_DEFAULT); in batadv_iv_gw_is_eligible()
2664 router = batadv_orig_router_get(gw_node->orig_node, BATADV_IF_DEFAULT); in batadv_iv_gw_write_buffer_text()
2676 gw_node->orig_node->orig, in batadv_iv_gw_write_buffer_text()
2739 router = batadv_orig_router_get(gw_node->orig_node, BATADV_IF_DEFAULT); in batadv_iv_gw_dump_entry()
2765 gw_node->orig_node->orig) || in batadv_iv_gw_dump_entry()