| /linux/net/batman-adv/ |
| H A D | multicast.c | 68 static void batadv_mcast_start_timer(struct batadv_priv *bat_priv) in batadv_mcast_start_timer() argument 70 queue_delayed_work(batadv_event_workqueue, &bat_priv->mcast.work, in batadv_mcast_start_timer() 164 static u8 batadv_mcast_mla_rtr_flags_meshif_get(struct batadv_priv *bat_priv, in batadv_mcast_mla_rtr_flags_meshif_get() argument 167 struct net_device *dev = bridge ? bridge : bat_priv->mesh_iface; in batadv_mcast_mla_rtr_flags_meshif_get() 194 static u8 batadv_mcast_mla_rtr_flags_bridge_get(struct batadv_priv *bat_priv, in batadv_mcast_mla_rtr_flags_bridge_get() argument 197 struct net_device *dev = bat_priv->mesh_iface; in batadv_mcast_mla_rtr_flags_bridge_get() 226 static u8 batadv_mcast_mla_rtr_flags_get(struct batadv_priv *bat_priv, in batadv_mcast_mla_rtr_flags_get() argument 231 flags &= batadv_mcast_mla_rtr_flags_meshif_get(bat_priv, bridge); in batadv_mcast_mla_rtr_flags_get() 232 flags &= batadv_mcast_mla_rtr_flags_bridge_get(bat_priv, bridge); in batadv_mcast_mla_rtr_flags_get() 246 static u8 batadv_mcast_mla_forw_flags_get(struct batadv_priv *bat_priv) in batadv_mcast_mla_forw_flags_get() argument [all …]
|
| H A D | gateway_client.c | 79 batadv_gw_get_selected_gw_node(struct batadv_priv *bat_priv) in batadv_gw_get_selected_gw_node() argument 84 gw_node = rcu_dereference(bat_priv->gw.curr_gw); in batadv_gw_get_selected_gw_node() 103 batadv_gw_get_selected_orig(struct batadv_priv *bat_priv) in batadv_gw_get_selected_orig() argument 108 gw_node = batadv_gw_get_selected_gw_node(bat_priv); in batadv_gw_get_selected_orig() 127 static void batadv_gw_select(struct batadv_priv *bat_priv, in batadv_gw_select() argument 132 spin_lock_bh(&bat_priv->gw.list_lock); in batadv_gw_select() 137 curr_gw_node = rcu_replace_pointer(bat_priv->gw.curr_gw, new_gw_node, in batadv_gw_select() 142 spin_unlock_bh(&bat_priv->gw.list_lock); in batadv_gw_select() 156 void batadv_gw_reselect(struct batadv_priv *bat_priv) in batadv_gw_reselect() argument 158 atomic_set(&bat_priv->gw.reselect, 1); in batadv_gw_reselect() [all …]
|
| H A D | distributed-arp-table.c | 101 static void batadv_dat_start_timer(struct batadv_priv *bat_priv) in batadv_dat_start_timer() argument 103 queue_delayed_work(batadv_event_workqueue, &bat_priv->dat.work, in batadv_dat_start_timer() 157 static void __batadv_dat_purge(struct batadv_priv *bat_priv, in __batadv_dat_purge() argument 166 if (!bat_priv->dat.hash) in __batadv_dat_purge() 169 for (i = 0; i < bat_priv->dat.hash->size; i++) { in __batadv_dat_purge() 170 head = &bat_priv->dat.hash->table[i]; in __batadv_dat_purge() 171 list_lock = &bat_priv->dat.hash->list_locks[i]; in __batadv_dat_purge() 198 struct batadv_priv *bat_priv; in batadv_dat_purge() local 202 bat_priv = container_of(priv_dat, struct batadv_priv, dat); in batadv_dat_purge() 204 __batadv_dat_purge(bat_priv, batadv_dat_to_purge); in batadv_dat_purge() [all …]
|
| H A D | distributed-arp-table.h | 27 bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv, 29 bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv, 31 void batadv_dat_snoop_outgoing_arp_reply(struct batadv_priv *bat_priv, 33 bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv, 35 void batadv_dat_snoop_outgoing_dhcp_ack(struct batadv_priv *bat_priv, 39 void batadv_dat_snoop_incoming_dhcp_ack(struct batadv_priv *bat_priv, 41 bool batadv_dat_drop_broadcast_packet(struct batadv_priv *bat_priv, 63 batadv_dat_init_own_addr(struct batadv_priv *bat_priv, in batadv_dat_init_own_addr() argument 71 bat_priv->dat.addr = (batadv_dat_addr_t)addr; in batadv_dat_init_own_addr() 74 int batadv_dat_init(struct batadv_priv *bat_priv); [all …]
|
| H A D | bat_v_ogm.c | 53 struct batadv_orig_node *batadv_v_ogm_orig_get(struct batadv_priv *bat_priv, in batadv_v_ogm_orig_get() argument 59 orig_node = batadv_orig_hash_find(bat_priv, addr); in batadv_v_ogm_orig_get() 63 orig_node = batadv_orig_node_new(bat_priv, addr); in batadv_v_ogm_orig_get() 68 hash_added = batadv_hash_add(bat_priv->orig_hash, batadv_compare_orig, in batadv_v_ogm_orig_get() 99 static void batadv_v_ogm_start_timer(struct batadv_priv *bat_priv) in batadv_v_ogm_start_timer() argument 105 if (delayed_work_pending(&bat_priv->bat_v.ogm_wq)) in batadv_v_ogm_start_timer() 108 msecs = atomic_read(&bat_priv->orig_interval) - BATADV_JITTER; in batadv_v_ogm_start_timer() 110 queue_delayed_work(batadv_event_workqueue, &bat_priv->bat_v.ogm_wq, in batadv_v_ogm_start_timer() 122 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_ogm_send_to_if() local 129 batadv_inc_counter(bat_priv, BATADV_CNT_MGMT_TX); in batadv_v_ogm_send_to_if() [all …]
|
| H A D | tvlv.c | 69 batadv_tvlv_handler_get(struct batadv_priv *bat_priv, u8 type, u8 version) in batadv_tvlv_handler_get() argument 75 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_handler_get() 131 batadv_tvlv_container_get(struct batadv_priv *bat_priv, u8 type, u8 version) in batadv_tvlv_container_get() argument 135 lockdep_assert_held(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_get() 137 hlist_for_each_entry(tvlv_tmp, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_get() 162 static u16 batadv_tvlv_container_list_size(struct batadv_priv *bat_priv) in batadv_tvlv_container_list_size() argument 167 lockdep_assert_held(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_list_size() 169 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_list_size() 186 static void batadv_tvlv_container_remove(struct batadv_priv *bat_priv, in batadv_tvlv_container_remove() argument 189 lockdep_assert_held(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_remove() [all …]
|
| H A D | gateway_common.c | 25 void batadv_gw_tvlv_container_update(struct batadv_priv *bat_priv) in batadv_gw_tvlv_container_update() argument 31 gw_mode = atomic_read(&bat_priv->gw.mode); in batadv_gw_tvlv_container_update() 36 batadv_tvlv_container_unregister(bat_priv, BATADV_TVLV_GW, 1); in batadv_gw_tvlv_container_update() 39 down = atomic_read(&bat_priv->gw.bandwidth_down); in batadv_gw_tvlv_container_update() 40 up = atomic_read(&bat_priv->gw.bandwidth_up); in batadv_gw_tvlv_container_update() 43 batadv_tvlv_container_register(bat_priv, BATADV_TVLV_GW, 1, in batadv_gw_tvlv_container_update() 57 static void batadv_gw_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv, in batadv_gw_tvlv_ogm_handler_v1() argument 82 batadv_gw_node_update(bat_priv, orig, &gateway); in batadv_gw_tvlv_ogm_handler_v1() 86 atomic_read(&bat_priv->gw.mode) == BATADV_GW_MODE_CLIENT) in batadv_gw_tvlv_ogm_handler_v1() 87 batadv_gw_check_election(bat_priv, orig); in batadv_gw_tvlv_ogm_handler_v1() [all …]
|
| H A D | tp_meter.c | 215 const u8 *dst, struct batadv_priv *bat_priv, in batadv_tp_batctl_notify() argument 233 batadv_netlink_tpmeter_notify(bat_priv, dst, result, test_time, in batadv_tp_batctl_notify() 246 struct batadv_priv *bat_priv, in batadv_tp_batctl_error_notify() argument 249 batadv_tp_batctl_notify(reason, dst, bat_priv, 0, 0, cookie); in batadv_tp_batctl_error_notify() 262 static struct batadv_tp_vars *batadv_tp_list_find(struct batadv_priv *bat_priv, in batadv_tp_list_find() argument 268 hlist_for_each_entry_rcu(pos, &bat_priv->tp_list, list) { in batadv_tp_list_find() 301 batadv_tp_list_find_session(struct batadv_priv *bat_priv, const u8 *dst, in batadv_tp_list_find_session() argument 307 hlist_for_each_entry_rcu(pos, &bat_priv->tp_list, list) { in batadv_tp_list_find_session() 372 static void batadv_tp_sender_cleanup(struct batadv_priv *bat_priv, in batadv_tp_sender_cleanup() argument 377 spin_lock_bh(&tp_vars->bat_priv->tp_list_lock); in batadv_tp_sender_cleanup() [all …]
|
| H A D | bridge_loop_avoidance.h | 36 bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb, 38 bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb, 45 bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, u8 *orig, 47 bool batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv, 49 void batadv_bla_update_orig_address(struct batadv_priv *bat_priv, 53 int batadv_bla_init(struct batadv_priv *bat_priv); 54 void batadv_bla_free(struct batadv_priv *bat_priv); 56 bool batadv_bla_check_claim(struct batadv_priv *bat_priv, u8 *addr, 62 static inline bool batadv_bla_rx(struct batadv_priv *bat_priv, in batadv_bla_rx() argument 69 static inline bool batadv_bla_tx(struct batadv_priv *bat_priv, in batadv_bla_tx() argument [all …]
|
| H A D | multicast.h | 45 batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, 48 int batadv_mcast_forw_send(struct batadv_priv *bat_priv, struct sk_buff *skb, 51 void batadv_mcast_init(struct batadv_priv *bat_priv); 54 struct batadv_priv *bat_priv); 58 void batadv_mcast_free(struct batadv_priv *bat_priv); 64 int batadv_mcast_forw_tracker_tvlv_handler(struct batadv_priv *bat_priv, 69 bool batadv_mcast_forw_push(struct batadv_priv *bat_priv, struct sk_buff *skb, 72 int batadv_mcast_forw_mcsend(struct batadv_priv *bat_priv, struct sk_buff *skb); 77 batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, in batadv_mcast_forw_mode() argument 84 batadv_mcast_forw_send(struct batadv_priv *bat_priv, struct sk_buff *skb, in batadv_mcast_forw_send() argument [all …]
|
| H A D | originator.c | 54 batadv_orig_hash_find(struct batadv_priv *bat_priv, const void *data) in batadv_orig_hash_find() argument 56 struct batadv_hashtable *hash = bat_priv->orig_hash; in batadv_orig_hash_find() 218 int batadv_originator_init(struct batadv_priv *bat_priv) in batadv_originator_init() argument 220 if (bat_priv->orig_hash) in batadv_originator_init() 223 bat_priv->orig_hash = batadv_hash_new(1024); in batadv_originator_init() 225 if (!bat_priv->orig_hash) in batadv_originator_init() 228 batadv_hash_set_lock_class(bat_priv->orig_hash, in batadv_originator_init() 231 INIT_DELAYED_WORK(&bat_priv->orig_work, batadv_purge_orig); in batadv_originator_init() 233 &bat_priv->orig_work, in batadv_originator_init() 348 batadv_orig_to_router(struct batadv_priv *bat_priv, u8 *orig_addr, in batadv_orig_to_router() argument [all …]
|
| H A D | translation-table.h | 18 int batadv_tt_init(struct batadv_priv *bat_priv); 21 u16 batadv_tt_local_remove(struct batadv_priv *bat_priv, 26 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv, 30 batadv_tt_global_hash_find(struct batadv_priv *bat_priv, const u8 *addr, 33 int batadv_tt_global_hash_count(struct batadv_priv *bat_priv, 35 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv, 38 void batadv_tt_free(struct batadv_priv *bat_priv); 39 bool batadv_is_my_client(struct batadv_priv *bat_priv, const u8 *addr, 41 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, u8 *src, u8 *dst, 43 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv); [all …]
|
| H A D | gateway_client.h | 18 void batadv_gw_check_client_stop(struct batadv_priv *bat_priv); 19 void batadv_gw_reselect(struct batadv_priv *bat_priv); 20 void batadv_gw_election(struct batadv_priv *bat_priv); 22 batadv_gw_get_selected_orig(struct batadv_priv *bat_priv); 23 void batadv_gw_check_election(struct batadv_priv *bat_priv, 25 void batadv_gw_node_update(struct batadv_priv *bat_priv, 28 void batadv_gw_node_delete(struct batadv_priv *bat_priv, 30 void batadv_gw_node_free(struct batadv_priv *bat_priv); 33 batadv_gw_get_selected_gw_node(struct batadv_priv *bat_priv); 35 bool batadv_gw_out_of_range(struct batadv_priv *bat_priv, struct sk_buff *skb); [all …]
|
| H A D | multicast_forw.c | 149 static bool batadv_mcast_forw_push_dest(struct batadv_priv *bat_priv, in batadv_mcast_forw_push_dest() argument 162 if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig, vid)) in batadv_mcast_forw_push_dest() 190 static int batadv_mcast_forw_push_dests_list(struct batadv_priv *bat_priv, in batadv_mcast_forw_push_dests_list() argument 205 !batadv_mcast_forw_push_dest(bat_priv, skb, vid, orig_node, in batadv_mcast_forw_push_dests_list() 230 batadv_mcast_forw_push_tt(struct batadv_priv *bat_priv, struct sk_buff *skb, in batadv_mcast_forw_push_tt() argument 242 tt_global = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_mcast_forw_push_tt() 248 if (!batadv_mcast_forw_push_dest(bat_priv, skb, vid, in batadv_mcast_forw_push_tt() 276 static bool batadv_mcast_forw_push_want_all(struct batadv_priv *bat_priv, in batadv_mcast_forw_push_want_all() argument 288 head = &bat_priv->mcast.want_all_ipv4_list; in batadv_mcast_forw_push_want_all() 293 head = &bat_priv->mcast.want_all_ipv6_list; in batadv_mcast_forw_push_want_all() [all …]
|
| H A D | send.h | 24 struct batadv_priv *bat_priv, 27 void batadv_forw_packet_ogmv1_queue(struct batadv_priv *bat_priv, 42 int batadv_forw_bcast_packet(struct batadv_priv *bat_priv, 46 void batadv_send_bcast_packet(struct batadv_priv *bat_priv, 51 batadv_purge_outstanding_packets(struct batadv_priv *bat_priv, 53 bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv, 57 int batadv_send_skb_unicast(struct batadv_priv *bat_priv, 62 int batadv_send_skb_via_tt_generic(struct batadv_priv *bat_priv, 66 int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb, 82 static inline int batadv_send_skb_via_tt(struct batadv_priv *bat_priv, in batadv_send_skb_via_tt() argument [all …]
|
| H A D | tvlv.h | 16 void batadv_tvlv_container_register(struct batadv_priv *bat_priv, 19 u16 batadv_tvlv_container_ogm_append(struct batadv_priv *bat_priv, 22 void batadv_tvlv_ogm_receive(struct batadv_priv *bat_priv, 25 void batadv_tvlv_container_unregister(struct batadv_priv *bat_priv, 28 void batadv_tvlv_handler_register(struct batadv_priv *bat_priv, 29 void (*optr)(struct batadv_priv *bat_priv, 34 int (*uptr)(struct batadv_priv *bat_priv, 38 int (*mptr)(struct batadv_priv *bat_priv, 41 void batadv_tvlv_handler_unregister(struct batadv_priv *bat_priv, 43 int batadv_tvlv_containers_process(struct batadv_priv *bat_priv, [all …]
|
| H A D | bat_v.c | 46 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_iface_activate() local 49 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_v_iface_activate() 100 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_iface_update_mac() local 103 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_v_iface_update_mac() 179 struct batadv_priv *bat_priv, in batadv_v_neigh_dump_hardif() argument 211 struct batadv_priv *bat_priv, in batadv_v_neigh_dump() argument 226 bat_priv, single_hardif, in batadv_v_neigh_dump() 231 netdev_for_each_lower_private_rcu(bat_priv->mesh_iface, hard_iface, iter) { in batadv_v_neigh_dump() 237 bat_priv, hard_iface, in batadv_v_neigh_dump() 265 struct batadv_priv *bat_priv, in batadv_v_orig_dump_subentry() argument [all …]
|
| H A D | bat_v_elp.c | 228 struct batadv_priv *bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_elp_wifi_neigh_probe() local 266 batadv_dbg(BATADV_DBG_BATMAN, bat_priv, in batadv_v_elp_wifi_neigh_probe() 291 struct batadv_priv *bat_priv; in batadv_v_elp_periodic_work() local 297 bat_priv = netdev_priv(hard_iface->mesh_iface); in batadv_v_elp_periodic_work() 299 if (atomic_read(&bat_priv->mesh_state) == BATADV_MESH_DEACTIVATING) in batadv_v_elp_periodic_work() 320 batadv_dbg(BATADV_DBG_BATMAN, bat_priv, in batadv_v_elp_periodic_work() 493 static void batadv_v_elp_neigh_update(struct batadv_priv *bat_priv, in batadv_v_elp_neigh_update() argument 505 orig_neigh = batadv_v_ogm_orig_get(bat_priv, elp_packet->orig); in batadv_v_elp_neigh_update() 551 struct batadv_priv *bat_priv = netdev_priv(if_incoming->mesh_iface); in batadv_v_elp_packet_recv() local 563 if (batadv_is_my_mac(bat_priv, ethhdr->h_source)) in batadv_v_elp_packet_recv() [all …]
|
| H A D | bat_v.h | 16 int batadv_v_mesh_init(struct batadv_priv *bat_priv); 17 void batadv_v_mesh_free(struct batadv_priv *bat_priv); 30 static inline int batadv_v_mesh_init(struct batadv_priv *bat_priv) in batadv_v_mesh_init() argument 35 static inline void batadv_v_mesh_free(struct batadv_priv *bat_priv) in batadv_v_mesh_free() argument
|
| H A D | fragmentation.c | 352 struct batadv_priv *bat_priv = netdev_priv(recv_if->mesh_iface); in batadv_frag_skb_fwd() local 360 neigh_node = batadv_orig_to_router(bat_priv, packet->dest, recv_if); in batadv_frag_skb_fwd() 369 batadv_inc_counter(bat_priv, BATADV_CNT_FRAG_FWD); in batadv_frag_skb_fwd() 370 batadv_add_counter(bat_priv, BATADV_CNT_FRAG_FWD_BYTES, in batadv_frag_skb_fwd() 438 struct batadv_priv *bat_priv; in batadv_frag_send_packet() local 465 bat_priv = orig_node->bat_priv; in batadv_frag_send_packet() 466 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_frag_send_packet() 487 frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno)); in batadv_frag_send_packet() 520 batadv_inc_counter(bat_priv, BATADV_CNT_FRAG_TX); in batadv_frag_send_packet() 521 batadv_add_counter(bat_priv, BATADV_CNT_FRAG_TX_BYTES, in batadv_frag_send_packet() [all …]
|
| H A D | originator.h | 21 int batadv_originator_init(struct batadv_priv *bat_priv); 22 void batadv_originator_free(struct batadv_priv *bat_priv); 23 void batadv_purge_orig_ref(struct batadv_priv *bat_priv); 25 struct batadv_orig_node *batadv_orig_node_new(struct batadv_priv *bat_priv, 40 batadv_orig_to_router(struct batadv_priv *bat_priv, u8 *orig_addr, 86 batadv_orig_hash_find(struct batadv_priv *bat_priv, const void *data);
|
| H A D | gateway_common.h | 27 void batadv_gw_tvlv_container_update(struct batadv_priv *bat_priv); 28 void batadv_gw_init(struct batadv_priv *bat_priv); 29 void batadv_gw_free(struct batadv_priv *bat_priv);
|
| H A D | tp_meter.h | 16 void batadv_tp_start(struct batadv_priv *bat_priv, const u8 *dst, 18 void batadv_tp_stop(struct batadv_priv *bat_priv, const u8 *dst, 20 void batadv_tp_meter_recv(struct batadv_priv *bat_priv, struct sk_buff *skb);
|
| H A D | bat_v_ogm.h | 16 int batadv_v_ogm_init(struct batadv_priv *bat_priv); 17 void batadv_v_ogm_free(struct batadv_priv *bat_priv); 21 struct batadv_orig_node *batadv_v_ogm_orig_get(struct batadv_priv *bat_priv,
|
| H A D | bitarray.c | 38 struct batadv_priv *bat_priv = priv; in batadv_bit_get_packet() local 63 batadv_dbg(BATADV_DBG_BATMAN, bat_priv, in batadv_bit_get_packet() 81 batadv_dbg(BATADV_DBG_BATMAN, bat_priv, in batadv_bit_get_packet()
|