Lines Matching refs:bat_priv
102 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_mesh_init() local
105 spin_lock_init(&bat_priv->forw_bat_list_lock); in batadv_mesh_init()
106 spin_lock_init(&bat_priv->forw_bcast_list_lock); in batadv_mesh_init()
107 spin_lock_init(&bat_priv->tt.changes_list_lock); in batadv_mesh_init()
108 spin_lock_init(&bat_priv->tt.req_list_lock); in batadv_mesh_init()
109 spin_lock_init(&bat_priv->tt.roam_list_lock); in batadv_mesh_init()
110 spin_lock_init(&bat_priv->tt.last_changeset_lock); in batadv_mesh_init()
111 spin_lock_init(&bat_priv->tt.commit_lock); in batadv_mesh_init()
112 spin_lock_init(&bat_priv->gw.list_lock); in batadv_mesh_init()
114 spin_lock_init(&bat_priv->mcast.want_lists_lock); in batadv_mesh_init()
116 spin_lock_init(&bat_priv->tvlv.container_list_lock); in batadv_mesh_init()
117 spin_lock_init(&bat_priv->tvlv.handler_list_lock); in batadv_mesh_init()
118 spin_lock_init(&bat_priv->softif_vlan_list_lock); in batadv_mesh_init()
120 INIT_HLIST_HEAD(&bat_priv->forw_bat_list); in batadv_mesh_init()
121 INIT_HLIST_HEAD(&bat_priv->forw_bcast_list); in batadv_mesh_init()
122 INIT_HLIST_HEAD(&bat_priv->gw.list); in batadv_mesh_init()
124 INIT_HLIST_HEAD(&bat_priv->mcast.want_all_unsnoopables_list); in batadv_mesh_init()
125 INIT_HLIST_HEAD(&bat_priv->mcast.want_all_ipv4_list); in batadv_mesh_init()
126 INIT_HLIST_HEAD(&bat_priv->mcast.want_all_ipv6_list); in batadv_mesh_init()
128 INIT_LIST_HEAD(&bat_priv->tt.changes_list); in batadv_mesh_init()
129 INIT_LIST_HEAD(&bat_priv->tt.req_list); in batadv_mesh_init()
130 INIT_LIST_HEAD(&bat_priv->tt.roam_list); in batadv_mesh_init()
132 INIT_HLIST_HEAD(&bat_priv->mcast.mla_list); in batadv_mesh_init()
134 INIT_HLIST_HEAD(&bat_priv->tvlv.container_list); in batadv_mesh_init()
135 INIT_HLIST_HEAD(&bat_priv->tvlv.handler_list); in batadv_mesh_init()
136 INIT_HLIST_HEAD(&bat_priv->softif_vlan_list); in batadv_mesh_init()
138 ret = batadv_originator_init(bat_priv); in batadv_mesh_init()
142 ret = batadv_tt_init(bat_priv); in batadv_mesh_init()
146 ret = batadv_bla_init(bat_priv); in batadv_mesh_init()
150 ret = batadv_dat_init(bat_priv); in batadv_mesh_init()
154 ret = batadv_nc_mesh_init(bat_priv); in batadv_mesh_init()
158 batadv_gw_init(bat_priv); in batadv_mesh_init()
159 batadv_mcast_init(bat_priv); in batadv_mesh_init()
161 atomic_set(&bat_priv->gw.reselect, 0); in batadv_mesh_init()
162 atomic_set(&bat_priv->mesh_state, BATADV_MESH_ACTIVE); in batadv_mesh_init()
173 struct batadv_priv *bat_priv = netdev_priv(soft_iface); in batadv_mesh_free() local
175 atomic_set(&bat_priv->mesh_state, BATADV_MESH_DEACTIVATING); in batadv_mesh_free()
177 batadv_purge_outstanding_packets(bat_priv, NULL); in batadv_mesh_free()
179 batadv_gw_node_purge(bat_priv); in batadv_mesh_free()
180 batadv_nc_mesh_free(bat_priv); in batadv_mesh_free()
181 batadv_dat_free(bat_priv); in batadv_mesh_free()
182 batadv_bla_free(bat_priv); in batadv_mesh_free()
184 batadv_mcast_free(bat_priv); in batadv_mesh_free()
190 batadv_tt_free(bat_priv); in batadv_mesh_free()
197 batadv_originator_free(bat_priv); in batadv_mesh_free()
199 batadv_gw_free(bat_priv); in batadv_mesh_free()
201 free_percpu(bat_priv->bat_counters); in batadv_mesh_free()
202 bat_priv->bat_counters = NULL; in batadv_mesh_free()
204 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE); in batadv_mesh_free()
213 int batadv_is_my_mac(struct batadv_priv *bat_priv, const uint8_t *addr) in batadv_is_my_mac() argument
222 if (hard_iface->soft_iface != bat_priv->soft_iface) in batadv_is_my_mac()
245 struct batadv_priv *bat_priv = netdev_priv(net_dev); in batadv_seq_print_text_primary_if_get() local
248 primary_if = batadv_primary_if_get_selected(bat_priv); in batadv_seq_print_text_primary_if_get()
362 struct batadv_priv *bat_priv; in batadv_batman_skb_recv() local
387 bat_priv = netdev_priv(hard_iface->soft_iface); in batadv_batman_skb_recv()
389 if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE) in batadv_batman_skb_recv()
399 batadv_dbg(BATADV_DBG_BATMAN, bat_priv, in batadv_batman_skb_recv()
546 int batadv_algo_select(struct batadv_priv *bat_priv, char *name) in batadv_algo_select() argument
555 bat_priv->bat_algo_ops = bat_algo_ops; in batadv_algo_select()
628 *batadv_tvlv_handler_get(struct batadv_priv *bat_priv, in batadv_tvlv_handler_get() argument
635 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_handler_get()
677 *batadv_tvlv_container_get(struct batadv_priv *bat_priv, in batadv_tvlv_container_get() argument
682 hlist_for_each_entry(tvlv_tmp, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_get()
709 static uint16_t batadv_tvlv_container_list_size(struct batadv_priv *bat_priv) in batadv_tvlv_container_list_size() argument
714 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_list_size()
749 void batadv_tvlv_container_unregister(struct batadv_priv *bat_priv, in batadv_tvlv_container_unregister() argument
754 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_unregister()
755 tvlv = batadv_tvlv_container_get(bat_priv, type, version); in batadv_tvlv_container_unregister()
757 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_unregister()
772 void batadv_tvlv_container_register(struct batadv_priv *bat_priv, in batadv_tvlv_container_register() argument
793 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_register()
794 tvlv_old = batadv_tvlv_container_get(bat_priv, type, version); in batadv_tvlv_container_register()
796 hlist_add_head(&tvlv_new->list, &bat_priv->tvlv.container_list); in batadv_tvlv_container_register()
797 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_register()
847 uint16_t batadv_tvlv_container_ogm_append(struct batadv_priv *bat_priv, in batadv_tvlv_container_ogm_append() argument
858 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_ogm_append()
859 tvlv_value_len = batadv_tvlv_container_list_size(bat_priv); in batadv_tvlv_container_ogm_append()
872 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_ogm_append()
883 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_ogm_append()
902 static int batadv_tvlv_call_handler(struct batadv_priv *bat_priv, in batadv_tvlv_call_handler() argument
919 tvlv_handler->ogm_handler(bat_priv, orig_node, in batadv_tvlv_call_handler()
933 return tvlv_handler->unicast_handler(bat_priv, src, in batadv_tvlv_call_handler()
955 int batadv_tvlv_containers_process(struct batadv_priv *bat_priv, in batadv_tvlv_containers_process() argument
976 tvlv_handler = batadv_tvlv_handler_get(bat_priv, in batadv_tvlv_containers_process()
980 ret |= batadv_tvlv_call_handler(bat_priv, tvlv_handler, in batadv_tvlv_containers_process()
995 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_containers_process()
998 tvlv_handler->ogm_handler(bat_priv, orig_node, in batadv_tvlv_containers_process()
1015 void batadv_tvlv_ogm_receive(struct batadv_priv *bat_priv, in batadv_tvlv_ogm_receive() argument
1031 batadv_tvlv_containers_process(bat_priv, true, orig_node, NULL, NULL, in batadv_tvlv_ogm_receive()
1049 void batadv_tvlv_handler_register(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
1050 void (*optr)(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
1055 int (*uptr)(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
1063 tvlv_handler = batadv_tvlv_handler_get(bat_priv, type, version); in batadv_tvlv_handler_register()
1081 spin_lock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
1082 hlist_add_head_rcu(&tvlv_handler->list, &bat_priv->tvlv.handler_list); in batadv_tvlv_handler_register()
1083 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
1093 void batadv_tvlv_handler_unregister(struct batadv_priv *bat_priv, in batadv_tvlv_handler_unregister() argument
1098 tvlv_handler = batadv_tvlv_handler_get(bat_priv, type, version); in batadv_tvlv_handler_unregister()
1103 spin_lock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_unregister()
1105 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_unregister()
1120 void batadv_tvlv_unicast_send(struct batadv_priv *bat_priv, uint8_t *src, in batadv_tvlv_unicast_send() argument
1133 orig_node = batadv_orig_hash_find(bat_priv, dst); in batadv_tvlv_unicast_send()
1210 bool batadv_vlan_ap_isola_get(struct batadv_priv *bat_priv, unsigned short vid) in batadv_vlan_ap_isola_get() argument
1218 vlan = batadv_softif_vlan_get(bat_priv, vid); in batadv_vlan_ap_isola_get()