mesh.h (d585a021c0b10b0477d6b608c53e1feb8cde0507) mesh.h (5bb644a0fd25a5e083ecbfaa92a211db99aa6ef7)
1/*
2 * Copyright (c) 2008 open80211s Ltd.
3 * Authors: Luis Carlos Cobo <luisca@cozybit.com>
4 * Javier Cardona <javier@cozybit.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.

--- 253 unchanged lines hidden (view full) ---

262void mesh_path_tx_pending(struct mesh_path *mpath);
263int mesh_pathtbl_init(void);
264void mesh_pathtbl_unregister(void);
265int mesh_path_del(u8 *addr, struct ieee80211_sub_if_data *sdata);
266void mesh_path_timer(unsigned long data);
267void mesh_path_flush_by_nexthop(struct sta_info *sta);
268void mesh_path_discard_frame(struct sk_buff *skb,
269 struct ieee80211_sub_if_data *sdata);
1/*
2 * Copyright (c) 2008 open80211s Ltd.
3 * Authors: Luis Carlos Cobo <luisca@cozybit.com>
4 * Javier Cardona <javier@cozybit.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.

--- 253 unchanged lines hidden (view full) ---

262void mesh_path_tx_pending(struct mesh_path *mpath);
263int mesh_pathtbl_init(void);
264void mesh_pathtbl_unregister(void);
265int mesh_path_del(u8 *addr, struct ieee80211_sub_if_data *sdata);
266void mesh_path_timer(unsigned long data);
267void mesh_path_flush_by_nexthop(struct sta_info *sta);
268void mesh_path_discard_frame(struct sk_buff *skb,
269 struct ieee80211_sub_if_data *sdata);
270void mesh_path_quiesce(struct ieee80211_sub_if_data *sdata);
271void mesh_path_restart(struct ieee80211_sub_if_data *sdata);
270
271#ifdef CONFIG_MAC80211_MESH
272extern int mesh_allocated;
273
274static inline int mesh_plink_free_count(struct ieee80211_sub_if_data *sdata)
275{
276 return sdata->u.mesh.mshcfg.dot11MeshMaxPeerLinks -
277 atomic_read(&sdata->u.mesh.mshstats.estab_plinks);

--- 11 unchanged lines hidden (view full) ---

289}
290
291#define for_each_mesh_entry(x, p, node, i) \
292 for (i = 0; i <= x->hash_mask; i++) \
293 hlist_for_each_entry_rcu(node, p, &x->hash_buckets[i], list)
294
295void ieee80211_mesh_notify_scan_completed(struct ieee80211_local *local);
296
272
273#ifdef CONFIG_MAC80211_MESH
274extern int mesh_allocated;
275
276static inline int mesh_plink_free_count(struct ieee80211_sub_if_data *sdata)
277{
278 return sdata->u.mesh.mshcfg.dot11MeshMaxPeerLinks -
279 atomic_read(&sdata->u.mesh.mshstats.estab_plinks);

--- 11 unchanged lines hidden (view full) ---

291}
292
293#define for_each_mesh_entry(x, p, node, i) \
294 for (i = 0; i <= x->hash_mask; i++) \
295 hlist_for_each_entry_rcu(node, p, &x->hash_buckets[i], list)
296
297void ieee80211_mesh_notify_scan_completed(struct ieee80211_local *local);
298
299void ieee80211_mesh_quiesce(struct ieee80211_sub_if_data *sdata);
300void ieee80211_mesh_restart(struct ieee80211_sub_if_data *sdata);
301void mesh_plink_quiesce(struct sta_info *sta);
302void mesh_plink_restart(struct sta_info *sta);
297#else
298#define mesh_allocated 0
299static inline void
300ieee80211_mesh_notify_scan_completed(struct ieee80211_local *local) {}
303#else
304#define mesh_allocated 0
305static inline void
306ieee80211_mesh_notify_scan_completed(struct ieee80211_local *local) {}
307static inline void ieee80211_mesh_quiesce(struct ieee80211_sub_if_data *sdata)
308{}
309static inline void ieee80211_mesh_restart(struct ieee80211_sub_if_data *sdata)
310{}
311static inline void mesh_plink_quiesce(struct sta_info *sta) {}
312static inline void mesh_plink_restart(struct sta_info *sta) {}
301#endif
302
303#endif /* IEEE80211S_H */
313#endif
314
315#endif /* IEEE80211S_H */