Lines Matching refs:bat_priv
214 const u8 *dst, struct batadv_priv *bat_priv, in batadv_tp_batctl_notify() argument
232 batadv_netlink_tpmeter_notify(bat_priv, dst, result, test_time, in batadv_tp_batctl_notify()
245 struct batadv_priv *bat_priv, in batadv_tp_batctl_error_notify() argument
248 batadv_tp_batctl_notify(reason, dst, bat_priv, 0, 0, cookie); in batadv_tp_batctl_error_notify()
261 static struct batadv_tp_vars *batadv_tp_list_find(struct batadv_priv *bat_priv, in batadv_tp_list_find() argument
267 hlist_for_each_entry_rcu(pos, &bat_priv->tp_list, list) { in batadv_tp_list_find()
300 batadv_tp_list_find_session(struct batadv_priv *bat_priv, const u8 *dst, in batadv_tp_list_find_session() argument
306 hlist_for_each_entry_rcu(pos, &bat_priv->tp_list, list) { in batadv_tp_list_find_session()
368 static void batadv_tp_sender_cleanup(struct batadv_priv *bat_priv, in batadv_tp_sender_cleanup() argument
373 spin_lock_bh(&tp_vars->bat_priv->tp_list_lock); in batadv_tp_sender_cleanup()
375 spin_unlock_bh(&tp_vars->bat_priv->tp_list_lock); in batadv_tp_sender_cleanup()
380 atomic_dec(&tp_vars->bat_priv->tp_num); in batadv_tp_sender_cleanup()
398 static void batadv_tp_sender_end(struct batadv_priv *bat_priv, in batadv_tp_sender_end() argument
403 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_sender_end()
407 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_sender_end()
411 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_sender_end()
420 bat_priv, in batadv_tp_sender_end()
485 struct batadv_priv *bat_priv = tp_vars->bat_priv; in batadv_tp_sender_timeout() local
508 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_sender_timeout()
623 static void batadv_tp_recv_ack(struct batadv_priv *bat_priv, in batadv_tp_recv_ack() argument
641 tp_vars = batadv_tp_list_find_session(bat_priv, icmp->orig, in batadv_tp_recv_ack()
654 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_tp_recv_ack()
658 orig_node = batadv_orig_hash_find(bat_priv, icmp->orig); in batadv_tp_recv_ack()
696 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_recv_ack()
807 struct batadv_priv *bat_priv = tp_vars->bat_priv; in batadv_tp_send() local
819 orig_node = batadv_orig_hash_find(bat_priv, tp_vars->other_end); in batadv_tp_send()
826 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_tp_send()
867 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_send()
889 batadv_tp_sender_end(bat_priv, tp_vars); in batadv_tp_send()
890 batadv_tp_sender_cleanup(bat_priv, tp_vars); in batadv_tp_send()
905 struct batadv_priv *bat_priv = tp_vars->bat_priv; in batadv_tp_start_kthread() local
916 bat_priv, session_cookie); in batadv_tp_start_kthread()
922 batadv_tp_sender_cleanup(bat_priv, tp_vars); in batadv_tp_start_kthread()
936 void batadv_tp_start(struct batadv_priv *bat_priv, const u8 *dst, in batadv_tp_start() argument
950 spin_lock_bh(&bat_priv->tp_list_lock); in batadv_tp_start()
951 tp_vars = batadv_tp_list_find(bat_priv, dst); in batadv_tp_start()
953 spin_unlock_bh(&bat_priv->tp_list_lock); in batadv_tp_start()
955 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_start()
958 dst, bat_priv, session_cookie); in batadv_tp_start()
962 if (!atomic_add_unless(&bat_priv->tp_num, 1, BATADV_TP_MAX_NUM)) { in batadv_tp_start()
963 spin_unlock_bh(&bat_priv->tp_list_lock); in batadv_tp_start()
964 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_start()
967 bat_priv, session_cookie); in batadv_tp_start()
973 spin_unlock_bh(&bat_priv->tp_list_lock); in batadv_tp_start()
974 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_start()
978 dst, bat_priv, session_cookie); in batadv_tp_start()
1017 tp_vars->bat_priv = bat_priv; in batadv_tp_start()
1031 hlist_add_head_rcu(&tp_vars->list, &bat_priv->tp_list); in batadv_tp_start()
1032 spin_unlock_bh(&bat_priv->tp_list_lock); in batadv_tp_start()
1038 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_start()
1060 void batadv_tp_stop(struct batadv_priv *bat_priv, const u8 *dst, in batadv_tp_stop() argument
1066 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_stop()
1069 orig_node = batadv_orig_hash_find(bat_priv, dst); in batadv_tp_stop()
1073 tp_vars = batadv_tp_list_find(bat_priv, orig_node->orig); in batadv_tp_stop()
1075 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_stop()
1107 struct batadv_priv *bat_priv; in batadv_tp_receiver_shutdown() local
1109 bat_priv = tp_vars->bat_priv; in batadv_tp_receiver_shutdown()
1119 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_receiver_shutdown()
1123 spin_lock_bh(&tp_vars->bat_priv->tp_list_lock); in batadv_tp_receiver_shutdown()
1125 spin_unlock_bh(&tp_vars->bat_priv->tp_list_lock); in batadv_tp_receiver_shutdown()
1130 atomic_dec(&bat_priv->tp_num); in batadv_tp_receiver_shutdown()
1155 static int batadv_tp_send_ack(struct batadv_priv *bat_priv, const u8 *dst, in batadv_tp_send_ack() argument
1165 orig_node = batadv_orig_hash_find(bat_priv, dst); in batadv_tp_send_ack()
1171 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_tp_send_ack()
1332 batadv_tp_init_recv(struct batadv_priv *bat_priv, in batadv_tp_init_recv() argument
1337 spin_lock_bh(&bat_priv->tp_list_lock); in batadv_tp_init_recv()
1338 tp_vars = batadv_tp_list_find_session(bat_priv, icmp->orig, in batadv_tp_init_recv()
1343 if (!atomic_add_unless(&bat_priv->tp_num, 1, BATADV_TP_MAX_NUM)) { in batadv_tp_init_recv()
1344 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_init_recv()
1357 tp_vars->bat_priv = bat_priv; in batadv_tp_init_recv()
1364 hlist_add_head_rcu(&tp_vars->list, &bat_priv->tp_list); in batadv_tp_init_recv()
1372 spin_unlock_bh(&bat_priv->tp_list_lock); in batadv_tp_init_recv()
1384 static void batadv_tp_recv_msg(struct batadv_priv *bat_priv, in batadv_tp_recv_msg() argument
1399 tp_vars = batadv_tp_init_recv(bat_priv, icmp); in batadv_tp_recv_msg()
1401 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_recv_msg()
1406 tp_vars = batadv_tp_list_find_session(bat_priv, icmp->orig, in batadv_tp_recv_msg()
1409 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_recv_msg()
1417 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_recv_msg()
1455 batadv_tp_send_ack(bat_priv, icmp->orig, tp_vars->last_recv, in batadv_tp_recv_msg()
1467 void batadv_tp_meter_recv(struct batadv_priv *bat_priv, struct sk_buff *skb) in batadv_tp_meter_recv() argument
1475 batadv_tp_recv_msg(bat_priv, skb); in batadv_tp_meter_recv()
1478 batadv_tp_recv_ack(bat_priv, skb); in batadv_tp_meter_recv()
1481 batadv_dbg(BATADV_DBG_TP_METER, bat_priv, in batadv_tp_meter_recv()