Lines Matching refs:bat_priv

125 	struct batadv_priv *bat_priv = netdev_priv(soft_iface);  in batadv_mesh_init()  local
128 spin_lock_init(&bat_priv->forw_bat_list_lock); in batadv_mesh_init()
129 spin_lock_init(&bat_priv->forw_bcast_list_lock); in batadv_mesh_init()
130 spin_lock_init(&bat_priv->tt.changes_list_lock); in batadv_mesh_init()
131 spin_lock_init(&bat_priv->tt.req_list_lock); in batadv_mesh_init()
132 spin_lock_init(&bat_priv->tt.roam_list_lock); in batadv_mesh_init()
133 spin_lock_init(&bat_priv->tt.last_changeset_lock); in batadv_mesh_init()
134 spin_lock_init(&bat_priv->tt.commit_lock); in batadv_mesh_init()
135 spin_lock_init(&bat_priv->gw.list_lock); in batadv_mesh_init()
137 spin_lock_init(&bat_priv->mcast.want_lists_lock); in batadv_mesh_init()
139 spin_lock_init(&bat_priv->tvlv.container_list_lock); in batadv_mesh_init()
140 spin_lock_init(&bat_priv->tvlv.handler_list_lock); in batadv_mesh_init()
141 spin_lock_init(&bat_priv->softif_vlan_list_lock); in batadv_mesh_init()
143 INIT_HLIST_HEAD(&bat_priv->forw_bat_list); in batadv_mesh_init()
144 INIT_HLIST_HEAD(&bat_priv->forw_bcast_list); in batadv_mesh_init()
145 INIT_HLIST_HEAD(&bat_priv->gw.list); in batadv_mesh_init()
147 INIT_HLIST_HEAD(&bat_priv->mcast.want_all_unsnoopables_list); in batadv_mesh_init()
148 INIT_HLIST_HEAD(&bat_priv->mcast.want_all_ipv4_list); in batadv_mesh_init()
149 INIT_HLIST_HEAD(&bat_priv->mcast.want_all_ipv6_list); in batadv_mesh_init()
151 INIT_LIST_HEAD(&bat_priv->tt.changes_list); in batadv_mesh_init()
152 INIT_HLIST_HEAD(&bat_priv->tt.req_list); in batadv_mesh_init()
153 INIT_LIST_HEAD(&bat_priv->tt.roam_list); in batadv_mesh_init()
155 INIT_HLIST_HEAD(&bat_priv->mcast.mla_list); in batadv_mesh_init()
157 INIT_HLIST_HEAD(&bat_priv->tvlv.container_list); in batadv_mesh_init()
158 INIT_HLIST_HEAD(&bat_priv->tvlv.handler_list); in batadv_mesh_init()
159 INIT_HLIST_HEAD(&bat_priv->softif_vlan_list); in batadv_mesh_init()
161 ret = batadv_originator_init(bat_priv); in batadv_mesh_init()
165 ret = batadv_tt_init(bat_priv); in batadv_mesh_init()
169 ret = batadv_bla_init(bat_priv); in batadv_mesh_init()
173 ret = batadv_dat_init(bat_priv); in batadv_mesh_init()
177 ret = batadv_nc_mesh_init(bat_priv); in batadv_mesh_init()
181 batadv_gw_init(bat_priv); in batadv_mesh_init()
182 batadv_mcast_init(bat_priv); in batadv_mesh_init()
184 atomic_set(&bat_priv->gw.reselect, 0); in batadv_mesh_init()
185 atomic_set(&bat_priv->mesh_state, BATADV_MESH_ACTIVE); in batadv_mesh_init()
196 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_mesh_free() local
198 atomic_set(&bat_priv->mesh_state, BATADV_MESH_DEACTIVATING); in batadv_mesh_free()
200 batadv_purge_outstanding_packets(bat_priv, NULL); in batadv_mesh_free()
202 batadv_gw_node_free(bat_priv); in batadv_mesh_free()
203 batadv_nc_mesh_free(bat_priv); in batadv_mesh_free()
204 batadv_dat_free(bat_priv); in batadv_mesh_free()
205 batadv_bla_free(bat_priv); in batadv_mesh_free()
207 batadv_mcast_free(bat_priv); in batadv_mesh_free()
213 batadv_tt_free(bat_priv); in batadv_mesh_free()
220 batadv_originator_free(bat_priv); in batadv_mesh_free()
222 batadv_gw_free(bat_priv); in batadv_mesh_free()
224 free_percpu(bat_priv->bat_counters); in batadv_mesh_free()
225 bat_priv->bat_counters = NULL; in batadv_mesh_free()
227 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE); in batadv_mesh_free()
238 bool batadv_is_my_mac(struct batadv_priv *bat_priv, const u8 *addr) in batadv_is_my_mac() argument
248 if (hard_iface->soft_iface != bat_priv->soft_iface) in batadv_is_my_mac()
271 struct batadv_priv *bat_priv = netdev_priv(net_dev); in batadv_seq_print_text_primary_if_get() local
274 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_seq_print_text_primary_if_get()
388 struct batadv_priv *bat_priv; in batadv_batman_skb_recv() local
413 bat_priv = netdev_priv(hard_iface->soft_iface); in batadv_batman_skb_recv()
415 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE) in batadv_batman_skb_recv()
425 batadv_dbg(BATADV_DBG_BATMAN, bat_priv, in batadv_batman_skb_recv()
567 int batadv_algo_select(struct batadv_priv *bat_priv, char *name) in batadv_algo_select() argument
575 bat_priv->bat_algo_ops = bat_algo_ops; in batadv_algo_select()
646 *batadv_tvlv_handler_get(struct batadv_priv *bat_priv, u8 type, u8 version) in batadv_tvlv_handler_get() argument
652 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_handler_get()
694 *batadv_tvlv_container_get(struct batadv_priv *bat_priv, u8 type, u8 version) in batadv_tvlv_container_get() argument
698 hlist_for_each_entry(tvlv_tmp, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_get()
725 static u16 batadv_tvlv_container_list_size(struct batadv_priv *bat_priv) in batadv_tvlv_container_list_size() argument
730 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_list_size()
747 static void batadv_tvlv_container_remove(struct batadv_priv *bat_priv, in batadv_tvlv_container_remove() argument
750 lockdep_assert_held(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_container_remove()
769 void batadv_tvlv_container_unregister(struct batadv_priv *bat_priv, in batadv_tvlv_container_unregister() argument
774 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_unregister()
775 tvlv = batadv_tvlv_container_get(bat_priv, type, version); in batadv_tvlv_container_unregister()
776 batadv_tvlv_container_remove(bat_priv, tvlv); in batadv_tvlv_container_unregister()
777 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_unregister()
792 void batadv_tvlv_container_register(struct batadv_priv *bat_priv, in batadv_tvlv_container_register() argument
813 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_register()
814 tvlv_old = batadv_tvlv_container_get(bat_priv, type, version); in batadv_tvlv_container_register()
815 batadv_tvlv_container_remove(bat_priv, tvlv_old); in batadv_tvlv_container_register()
816 hlist_add_head(&tvlv_new->list, &bat_priv->tvlv.container_list); in batadv_tvlv_container_register()
817 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_register()
867 u16 batadv_tvlv_container_ogm_append(struct batadv_priv *bat_priv, in batadv_tvlv_container_ogm_append() argument
877 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_ogm_append()
878 tvlv_value_len = batadv_tvlv_container_list_size(bat_priv); in batadv_tvlv_container_ogm_append()
891 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_ogm_append()
902 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_ogm_append()
921 static int batadv_tvlv_call_handler(struct batadv_priv *bat_priv, in batadv_tvlv_call_handler() argument
938 tvlv_handler->ogm_handler(bat_priv, orig_node, in batadv_tvlv_call_handler()
952 return tvlv_handler->unicast_handler(bat_priv, src, in batadv_tvlv_call_handler()
974 int batadv_tvlv_containers_process(struct batadv_priv *bat_priv, in batadv_tvlv_containers_process() argument
995 tvlv_handler = batadv_tvlv_handler_get(bat_priv, in batadv_tvlv_containers_process()
999 ret |= batadv_tvlv_call_handler(bat_priv, tvlv_handler, in batadv_tvlv_containers_process()
1014 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_containers_process()
1017 tvlv_handler->ogm_handler(bat_priv, orig_node, in batadv_tvlv_containers_process()
1034 void batadv_tvlv_ogm_receive(struct batadv_priv *bat_priv, in batadv_tvlv_ogm_receive() argument
1050 batadv_tvlv_containers_process(bat_priv, true, orig_node, NULL, NULL, in batadv_tvlv_ogm_receive()
1068 void batadv_tvlv_handler_register(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
1069 void (*optr)(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
1074 int (*uptr)(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
1082 tvlv_handler = batadv_tvlv_handler_get(bat_priv, type, version); in batadv_tvlv_handler_register()
1100 spin_lock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
1101 hlist_add_head_rcu(&tvlv_handler->list, &bat_priv->tvlv.handler_list); in batadv_tvlv_handler_register()
1102 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
1112 void batadv_tvlv_handler_unregister(struct batadv_priv *bat_priv, in batadv_tvlv_handler_unregister() argument
1117 tvlv_handler = batadv_tvlv_handler_get(bat_priv, type, version); in batadv_tvlv_handler_unregister()
1122 spin_lock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_unregister()
1124 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_unregister()
1139 void batadv_tvlv_unicast_send(struct batadv_priv *bat_priv, u8 *src, in batadv_tvlv_unicast_send() argument
1152 orig_node = batadv_orig_hash_find(bat_priv, dst); in batadv_tvlv_unicast_send()
1229 bool batadv_vlan_ap_isola_get(struct batadv_priv *bat_priv, unsigned short vid) in batadv_vlan_ap_isola_get() argument
1237 vlan = batadv_softif_vlan_get(bat_priv, vid); in batadv_vlan_ap_isola_get()