Lines Matching refs:tt
67 struct batadv_tt_common_entry *tt; in batadv_choose_tt() local
70 tt = (struct batadv_tt_common_entry *)data; in batadv_choose_tt()
71 hash = batadv_hash_bytes(hash, &tt->addr, ETH_ALEN); in batadv_choose_tt()
72 hash = batadv_hash_bytes(hash, &tt->vid, sizeof(tt->vid)); in batadv_choose_tt()
95 struct batadv_tt_common_entry to_search, *tt, *tt_tmp = NULL; in batadv_tt_hash_find() local
108 hlist_for_each_entry_rcu(tt, head, hash_entry) { in batadv_tt_hash_find()
109 if (!batadv_compare_eth(tt, addr)) in batadv_tt_hash_find()
112 if (tt->vid != vid) in batadv_tt_hash_find()
115 if (!atomic_inc_not_zero(&tt->refcount)) in batadv_tt_hash_find()
118 tt_tmp = tt; in batadv_tt_hash_find()
142 tt_common_entry = batadv_tt_hash_find(bat_priv->tt.local_hash, addr, in batadv_tt_local_hash_find()
167 tt_common_entry = batadv_tt_hash_find(bat_priv->tt.global_hash, addr, in batadv_tt_global_hash_find()
238 atomic_add(v, &vlan->tt.num_entries); in batadv_tt_local_size_mod()
283 if (atomic_add_return(v, &vlan->tt.num_entries) == 0) { in batadv_tt_global_size_mod()
367 spin_lock_bh(&bat_priv->tt.changes_list_lock); in batadv_tt_local_event()
368 list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list, in batadv_tt_local_event()
402 list_add_tail(&tt_change_node->list, &bat_priv->tt.changes_list); in batadv_tt_local_event()
405 spin_unlock_bh(&bat_priv->tt.changes_list_lock); in batadv_tt_local_event()
408 atomic_dec(&bat_priv->tt.local_changes); in batadv_tt_local_event()
410 atomic_inc(&bat_priv->tt.local_changes); in batadv_tt_local_event()
451 tt_local_entries += atomic_read(&vlan->tt.num_entries); in batadv_tt_local_table_transmit_size()
466 if (bat_priv->tt.local_hash) in batadv_tt_local_init()
469 bat_priv->tt.local_hash = batadv_hash_new(1024); in batadv_tt_local_init()
471 if (!bat_priv->tt.local_hash) in batadv_tt_local_init()
474 batadv_hash_set_lock_class(bat_priv->tt.local_hash, in batadv_tt_local_init()
489 batadv_hash_remove(bat_priv->tt.global_hash, batadv_compare_tt, in batadv_tt_global_free()
584 (uint8_t)atomic_read(&bat_priv->tt.vn)); in batadv_tt_local_add()
606 hash_added = batadv_hash_add(bat_priv->tt.local_hash, batadv_compare_tt, in batadv_tt_local_add()
717 num_entries += atomic_read(&vlan->tt.num_entries); in batadv_tt_prepare_tvlv_global_data()
743 tt_vlan->crc = htonl(vlan->tt.crc); in batadv_tt_prepare_tvlv_global_data()
789 num_entries += atomic_read(&vlan->tt.num_entries); in batadv_tt_prepare_tvlv_local_data()
809 (*tt_data)->ttvn = atomic_read(&bat_priv->tt.vn); in batadv_tt_prepare_tvlv_local_data()
815 tt_vlan->crc = htonl(vlan->tt.crc); in batadv_tt_prepare_tvlv_local_data()
842 tt_diff_entries_num = atomic_read(&bat_priv->tt.local_changes); in batadv_tt_tvlv_container_update()
861 spin_lock_bh(&bat_priv->tt.changes_list_lock); in batadv_tt_tvlv_container_update()
862 atomic_set(&bat_priv->tt.local_changes, 0); in batadv_tt_tvlv_container_update()
864 list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list, in batadv_tt_tvlv_container_update()
875 spin_unlock_bh(&bat_priv->tt.changes_list_lock); in batadv_tt_tvlv_container_update()
878 spin_lock_bh(&bat_priv->tt.last_changeset_lock); in batadv_tt_tvlv_container_update()
879 kfree(bat_priv->tt.last_changeset); in batadv_tt_tvlv_container_update()
880 bat_priv->tt.last_changeset_len = 0; in batadv_tt_tvlv_container_update()
881 bat_priv->tt.last_changeset = NULL; in batadv_tt_tvlv_container_update()
888 bat_priv->tt.last_changeset = kzalloc(tt_diff_len, GFP_ATOMIC); in batadv_tt_tvlv_container_update()
889 if (bat_priv->tt.last_changeset) { in batadv_tt_tvlv_container_update()
890 memcpy(bat_priv->tt.last_changeset, in batadv_tt_tvlv_container_update()
892 bat_priv->tt.last_changeset_len = tt_diff_len; in batadv_tt_tvlv_container_update()
895 spin_unlock_bh(&bat_priv->tt.last_changeset_lock); in batadv_tt_tvlv_container_update()
907 struct batadv_hashtable *hash = bat_priv->tt.local_hash; in batadv_tt_local_seq_print_text()
927 net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn)); in batadv_tt_local_seq_print_text()
972 vlan->tt.crc); in batadv_tt_local_seq_print_text()
1049 tt_entry_exists = batadv_hash_remove(bat_priv->tt.local_hash, in batadv_tt_local_remove()
1118 struct batadv_hashtable *hash = bat_priv->tt.local_hash; in batadv_tt_local_purge()
1144 if (!bat_priv->tt.local_hash) in batadv_tt_local_table_free()
1147 hash = bat_priv->tt.local_hash; in batadv_tt_local_table_free()
1176 bat_priv->tt.local_hash = NULL; in batadv_tt_local_table_free()
1181 if (bat_priv->tt.global_hash) in batadv_tt_global_init()
1184 bat_priv->tt.global_hash = batadv_hash_new(1024); in batadv_tt_global_init()
1186 if (!bat_priv->tt.global_hash) in batadv_tt_global_init()
1189 batadv_hash_set_lock_class(bat_priv->tt.global_hash, in batadv_tt_global_init()
1199 spin_lock_bh(&bat_priv->tt.changes_list_lock); in batadv_tt_changes_list_free()
1201 list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list, in batadv_tt_changes_list_free()
1207 atomic_set(&bat_priv->tt.local_changes, 0); in batadv_tt_changes_list_free()
1208 spin_unlock_bh(&bat_priv->tt.changes_list_lock); in batadv_tt_changes_list_free()
1366 hash_added = batadv_hash_add(bat_priv->tt.global_hash, in batadv_tt_global_add()
1546 last_ttvn, vlan->tt.crc, in batadv_tt_global_print_entry()
1578 last_ttvn, vlan->tt.crc, in batadv_tt_global_print_entry()
1592 struct batadv_hashtable *hash = bat_priv->tt.global_hash; in batadv_tt_global_seq_print_text()
1823 struct batadv_hashtable *hash = bat_priv->tt.global_hash; in batadv_tt_global_del_orig()
1889 struct batadv_hashtable *hash = bat_priv->tt.global_hash; in batadv_tt_global_purge()
1936 if (!bat_priv->tt.global_hash) in batadv_tt_global_table_free()
1939 hash = bat_priv->tt.global_hash; in batadv_tt_global_table_free()
1959 bat_priv->tt.global_hash = NULL; in batadv_tt_global_table_free()
2068 struct batadv_hashtable *hash = bat_priv->tt.global_hash; in batadv_tt_global_crc()
2144 struct batadv_hashtable *hash = bat_priv->tt.local_hash; in batadv_tt_local_crc()
2192 spin_lock_bh(&bat_priv->tt.req_list_lock); in batadv_tt_req_list_free()
2194 list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) { in batadv_tt_req_list_free()
2199 spin_unlock_bh(&bat_priv->tt.req_list_lock); in batadv_tt_req_list_free()
2227 spin_lock_bh(&bat_priv->tt.req_list_lock); in batadv_tt_req_purge()
2228 list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) { in batadv_tt_req_purge()
2235 spin_unlock_bh(&bat_priv->tt.req_list_lock); in batadv_tt_req_purge()
2247 spin_lock_bh(&bat_priv->tt.req_list_lock); in batadv_new_tt_req_node()
2248 list_for_each_entry(tt_req_node_tmp, &bat_priv->tt.req_list, list) { in batadv_new_tt_req_node()
2262 list_add(&tt_req_node->list, &bat_priv->tt.req_list); in batadv_new_tt_req_node()
2264 spin_unlock_bh(&bat_priv->tt.req_list_lock); in batadv_new_tt_req_node()
2388 crc = vlan->tt.crc; in batadv_tt_global_check_crc()
2409 vlan->tt.crc = batadv_tt_local_crc(bat_priv, vlan->vid); in batadv_tt_local_update_crc()
2436 vlan->tt.crc = crc; in batadv_tt_global_update_crc()
2512 spin_lock_bh(&bat_priv->tt.req_list_lock); in batadv_send_tt_request()
2514 spin_unlock_bh(&bat_priv->tt.req_list_lock); in batadv_send_tt_request()
2607 batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.global_hash, in batadv_send_other_tt_response()
2681 spin_lock_bh(&bat_priv->tt.commit_lock); in batadv_send_my_tt_response()
2683 my_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn); in batadv_send_my_tt_response()
2698 !bat_priv->tt.last_changeset) in batadv_send_my_tt_response()
2707 spin_lock_bh(&bat_priv->tt.last_changeset_lock); in batadv_send_my_tt_response()
2709 tt_len = bat_priv->tt.last_changeset_len; in batadv_send_my_tt_response()
2718 memcpy(tt_change, bat_priv->tt.last_changeset, in batadv_send_my_tt_response()
2719 bat_priv->tt.last_changeset_len); in batadv_send_my_tt_response()
2720 spin_unlock_bh(&bat_priv->tt.last_changeset_lock); in batadv_send_my_tt_response()
2722 req_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn); in batadv_send_my_tt_response()
2736 batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.local_hash, in batadv_send_my_tt_response()
2760 spin_unlock_bh(&bat_priv->tt.last_changeset_lock); in batadv_send_my_tt_response()
2762 spin_unlock_bh(&bat_priv->tt.commit_lock); in batadv_send_my_tt_response()
2946 spin_lock_bh(&bat_priv->tt.req_list_lock); in batadv_handle_tt_response()
2947 list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) { in batadv_handle_tt_response()
2954 spin_unlock_bh(&bat_priv->tt.req_list_lock); in batadv_handle_tt_response()
2964 spin_lock_bh(&bat_priv->tt.roam_list_lock); in batadv_tt_roam_list_free()
2966 list_for_each_entry_safe(node, safe, &bat_priv->tt.roam_list, list) { in batadv_tt_roam_list_free()
2971 spin_unlock_bh(&bat_priv->tt.roam_list_lock); in batadv_tt_roam_list_free()
2978 spin_lock_bh(&bat_priv->tt.roam_list_lock); in batadv_tt_roam_purge()
2979 list_for_each_entry_safe(node, safe, &bat_priv->tt.roam_list, list) { in batadv_tt_roam_purge()
2987 spin_unlock_bh(&bat_priv->tt.roam_list_lock); in batadv_tt_roam_purge()
3002 spin_lock_bh(&bat_priv->tt.roam_list_lock); in batadv_tt_check_roam_count()
3006 list_for_each_entry(tt_roam_node, &bat_priv->tt.roam_list, list) { in batadv_tt_check_roam_count()
3031 list_add(&tt_roam_node->list, &bat_priv->tt.roam_list); in batadv_tt_check_roam_count()
3036 spin_unlock_bh(&bat_priv->tt.roam_list_lock); in batadv_tt_check_roam_count()
3095 bat_priv = container_of(priv_tt, struct batadv_priv, tt); in batadv_tt_purge()
3102 queue_delayed_work(batadv_event_workqueue, &bat_priv->tt.work, in batadv_tt_purge()
3111 cancel_delayed_work_sync(&bat_priv->tt.work); in batadv_tt_free()
3119 kfree(bat_priv->tt.last_changeset); in batadv_tt_free()
3133 struct batadv_hashtable *hash = bat_priv->tt.local_hash; in batadv_tt_local_set_flags()
3172 struct batadv_hashtable *hash = bat_priv->tt.local_hash; in batadv_tt_local_purge_pending_clients()
3230 if (atomic_read(&bat_priv->tt.local_changes) < 1) { in batadv_tt_local_commit_changes_nolock()
3231 if (!batadv_atomic_dec_not_zero(&bat_priv->tt.ogm_append_cnt)) in batadv_tt_local_commit_changes_nolock()
3242 atomic_inc(&bat_priv->tt.vn); in batadv_tt_local_commit_changes_nolock()
3245 (uint8_t)atomic_read(&bat_priv->tt.vn)); in batadv_tt_local_commit_changes_nolock()
3248 atomic_set(&bat_priv->tt.ogm_append_cnt, BATADV_TT_OGM_APPEND_MAX); in batadv_tt_local_commit_changes_nolock()
3259 spin_lock_bh(&bat_priv->tt.commit_lock); in batadv_tt_local_commit_changes()
3261 spin_unlock_bh(&bat_priv->tt.commit_lock); in batadv_tt_local_commit_changes()
3472 spin_lock_bh(&bat_priv->tt.commit_lock); in batadv_tt_local_resize_to_mtu()
3495 spin_unlock_bh(&bat_priv->tt.commit_lock); in batadv_tt_local_resize_to_mtu()
3698 INIT_DELAYED_WORK(&bat_priv->tt.work, batadv_tt_purge); in batadv_tt_init()
3699 queue_delayed_work(batadv_event_workqueue, &bat_priv->tt.work, in batadv_tt_init()
3717 struct batadv_tt_global_entry *tt; in batadv_tt_global_is_isolated() local
3720 tt = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_tt_global_is_isolated()
3721 if (!tt) in batadv_tt_global_is_isolated()
3724 ret = tt->common.flags & BATADV_TT_CLIENT_ISOLA; in batadv_tt_global_is_isolated()
3726 batadv_tt_global_entry_free_ref(tt); in batadv_tt_global_is_isolated()