Lines Matching refs:orig_node

67 				 struct batadv_orig_node *orig_node);
72 struct batadv_orig_node *orig_node,
360 * for orig_node identified by vid
361 * @orig_node: the originator for which the table has to be modified
365 static void batadv_tt_global_size_mod(struct batadv_orig_node *orig_node,
370 vlan = batadv_orig_node_vlan_new(orig_node, vid);
375 spin_lock_bh(&orig_node->vlan_list_lock);
380 spin_unlock_bh(&orig_node->vlan_list_lock);
389 * @orig_node: the originator which global table size has to be decreased
392 static void batadv_tt_global_size_inc(struct batadv_orig_node *orig_node,
395 batadv_tt_global_size_mod(orig_node, vid, 1);
401 * @orig_node: the originator which global table size has to be decreased
404 static void batadv_tt_global_size_dec(struct batadv_orig_node *orig_node,
407 batadv_tt_global_size_mod(orig_node, vid, -1);
435 batadv_orig_node_put(orig_entry->orig_node);
771 orig_entry->orig_node);
825 * @orig_node: originator for which the TT data has to be prepared
840 batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
853 spin_lock_bh(&orig_node->vlan_list_lock);
854 hlist_for_each_entry(vlan, &orig_node->vlan_list, list) {
876 (*tt_data)->ttvn = atomic_read(&orig_node->last_ttvn);
880 hlist_for_each_entry(vlan, &orig_node->vlan_list, list) {
892 spin_unlock_bh(&orig_node->vlan_list_lock);
1433 * @orig_node: the originator for which the orig_list_entry has to be found
1435 * retrieve the orig_tt_list_entry belonging to orig_node from the
1442 const struct batadv_orig_node *orig_node)
1450 if (tmp_orig_entry->orig_node != orig_node)
1467 * @orig_node: the originator to search in the list
1469 * from @orig_node
1471 * find out if an orig_node is already in the list of a tt_global_entry.
1477 const struct batadv_orig_node *orig_node,
1483 orig_entry = batadv_tt_global_orig_entry_find(entry, orig_node);
1523 * @orig_node: the originator to add an orig entry for
1529 struct batadv_orig_node *orig_node, int ttvn,
1536 orig_entry = batadv_tt_global_orig_entry_find(tt_global, orig_node);
1551 kref_get(&orig_node->refcount);
1552 batadv_tt_global_size_inc(orig_node, tt_global->common.vid);
1553 orig_entry->orig_node = orig_node;
1574 * @orig_node: the originator announcing the client
1586 * The caller must hold the orig_node refcount.
1591 struct batadv_orig_node *orig_node,
1603 if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig, vid))
1671 orig_node, NULL))
1710 batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn,
1716 orig_node->orig);
1763 router = batadv_orig_router_get(orig_entry->orig_node,
1810 vlan = batadv_orig_node_vlan_get(orig->orig_node,
1825 last_ttvn = atomic_read(&orig->orig_node->last_ttvn);
1829 orig->orig_node->orig) ||
2015 batadv_tt_global_size_dec(orig_entry->orig_node,
2041 * batadv_tt_global_del_orig_node() - remove orig_node from a global tt entry
2043 * @tt_global_entry: the global entry to remove the orig_node from
2044 * @orig_node: the originator announcing the client
2047 * Remove the given orig_node and its according orig_entry from the given
2053 struct batadv_orig_node *orig_node,
2064 if (orig_entry->orig_node == orig_node) {
2068 orig_node->orig,
2085 struct batadv_orig_node *orig_node,
2099 if (orig_entry->orig_node != orig_node) {
2115 orig_node, message);
2122 * @orig_node: an originator serving this client
2130 struct batadv_orig_node *orig_node,
2143 orig_node, message);
2175 orig_node, message);
2187 * @orig_node: the originator owning the entries to remove
2193 struct batadv_orig_node *orig_node,
2225 orig_node, message);
2239 clear_bit(BATADV_ORIG_CAPA_HAS_TT, &orig_node->capa_initialized);
2376 struct batadv_orig_node *orig_node = NULL;
2401 orig_node = best_entry->orig_node;
2402 if (orig_node && !kref_get_unless_zero(&orig_node->refcount))
2403 orig_node = NULL;
2410 return orig_node;
2415 * to the given orig_node
2417 * @orig_node: originator for which the CRC should be computed
2438 struct batadv_orig_node *orig_node,
2482 orig_node);
2607 struct batadv_orig_node *orig_node,
2614 spin_lock_bh(&orig_node->tt_buff_lock);
2616 kfree(orig_node->tt_buff);
2617 orig_node->tt_buff_len = 0;
2618 orig_node->tt_buff = kmalloc(tt_buff_len, GFP_ATOMIC);
2619 if (orig_node->tt_buff) {
2620 memcpy(orig_node->tt_buff, tt_buff, tt_buff_len);
2621 orig_node->tt_buff_len = tt_buff_len;
2624 spin_unlock_bh(&orig_node->tt_buff_lock);
2646 * @orig_node: orig node this request is being issued for
2649 * has already been issued for this orig_node, NULL otherwise.
2653 struct batadv_orig_node *orig_node)
2659 if (batadv_compare_eth(tt_req_node_tmp, orig_node) &&
2670 ether_addr_copy(tt_req_node->addr, orig_node->orig);
2709 * @data_ptr: an orig_node object (may be NULL)
2724 const struct batadv_orig_node *orig_node = data_ptr;
2734 return batadv_tt_global_entry_has_orig(tt_global_entry, orig_node,
2801 * @orig_node: originator for which the CRCs have to be checked
2808 static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
2821 /* if orig_node is a backbone node for this VLAN, don't check
2824 if (batadv_bla_is_backbone_gw_orig(orig_node->bat_priv,
2825 orig_node->orig,
2829 vlan = batadv_orig_node_vlan_get(orig_node,
2846 hlist_for_each_entry_rcu(vlan, &orig_node->vlan_list, list)
2873 * batadv_tt_global_update_crc() - update all the global CRCs for this orig_node
2875 * @orig_node: the orig_node for which the CRCs have to be updated
2878 struct batadv_orig_node *orig_node)
2885 hlist_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
2886 /* if orig_node is a backbone node for this VLAN, don't compute
2889 if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig,
2893 crc = batadv_tt_global_crc(bat_priv, orig_node, vlan->vid);
2929 * reply from the same orig_node yet
3055 /* Copy the last orig_node's OGM buffer */
3133 struct batadv_orig_node *orig_node;
3149 orig_node = batadv_orig_hash_find(bat_priv, req_src);
3150 if (!orig_node)
3180 /* Copy the last orig_node's OGM buffer */
3212 orig_node->orig, full_table ? 'F' : '.', req_ttvn);
3226 batadv_orig_node_put(orig_node);
3253 struct batadv_orig_node *orig_node,
3263 batadv_tt_global_del(bat_priv, orig_node,
3269 if (!batadv_tt_global_add(bat_priv, orig_node,
3282 set_bit(BATADV_ORIG_CAPA_HAS_TT, &orig_node->capa_initialized);
3290 struct batadv_orig_node *orig_node;
3292 orig_node = batadv_orig_hash_find(bat_priv, resp_src);
3293 if (!orig_node)
3297 batadv_tt_global_del_orig(bat_priv, orig_node, -1,
3300 _batadv_tt_update_changes(bat_priv, orig_node, tt_change, num_entries,
3303 spin_lock_bh(&orig_node->tt_buff_lock);
3304 kfree(orig_node->tt_buff);
3305 orig_node->tt_buff_len = 0;
3306 orig_node->tt_buff = NULL;
3307 spin_unlock_bh(&orig_node->tt_buff_lock);
3309 atomic_set(&orig_node->last_ttvn, ttvn);
3312 batadv_orig_node_put(orig_node);
3316 struct batadv_orig_node *orig_node,
3320 _batadv_tt_update_changes(bat_priv, orig_node, tt_change,
3323 batadv_tt_save_orig_buffer(bat_priv, orig_node, tt_change,
3325 atomic_set(&orig_node->last_ttvn, ttvn);
3370 struct batadv_orig_node *orig_node = NULL;
3380 orig_node = batadv_orig_hash_find(bat_priv, resp_src);
3381 if (!orig_node)
3384 spin_lock_bh(&orig_node->tt_lock);
3396 batadv_tt_update_changes(bat_priv, orig_node, num_entries,
3400 /* Recalculate the CRC for this orig_node and store it */
3401 batadv_tt_global_update_crc(bat_priv, orig_node);
3403 spin_unlock_bh(&orig_node->tt_lock);
3416 batadv_orig_node_put(orig_node);
3467 * reply from the same orig_node yet
3509 * @orig_node: message destination
3518 struct batadv_orig_node *orig_node)
3535 orig_node->orig, client, batadv_print_vid(vid));
3543 orig_node->orig, BATADV_TVLV_ROAM, 1,
3769 * @orig_node: the orig_node of the ogm
3777 struct batadv_orig_node *orig_node,
3782 u8 orig_ttvn = (u8)atomic_read(&orig_node->last_ttvn);
3789 &orig_node->capa_initialized);
3805 spin_lock_bh(&orig_node->tt_lock);
3807 batadv_tt_update_changes(bat_priv, orig_node, tt_num_changes,
3814 batadv_tt_global_update_crc(bat_priv, orig_node);
3816 spin_unlock_bh(&orig_node->tt_lock);
3827 if (!batadv_tt_global_check_crc(orig_node, tt_vlan,
3835 !batadv_tt_global_check_crc(orig_node, tt_vlan,
3840 orig_node->orig, ttvn, orig_ttvn,
3842 batadv_send_tt_request(bat_priv, orig_node, ttvn,
3905 * @orig_node: orig node which the temporary entry should be associated with
3912 struct batadv_orig_node *orig_node,
3922 if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
3924 atomic_read(&orig_node->last_ttvn)))
3929 addr, batadv_print_vid(vid), orig_node->orig);
3978 * @orig: the orig_node of the ogm
4114 struct batadv_orig_node *orig_node = NULL;
4126 orig_node = batadv_orig_hash_find(bat_priv, src);
4127 if (!orig_node)
4137 batadv_tt_global_add(bat_priv, orig_node, roaming_adv->client,
4139 atomic_read(&orig_node->last_ttvn) + 1);
4142 batadv_orig_node_put(orig_node);