.. | .. |
---|
644 | 644 | struct cfg80211_csa_settings settings; |
---|
645 | 645 | }; |
---|
646 | 646 | |
---|
| 647 | +/** |
---|
| 648 | + * struct mesh_table |
---|
| 649 | + * |
---|
| 650 | + * @known_gates: list of known mesh gates and their mpaths by the station. The |
---|
| 651 | + * gate's mpath may or may not be resolved and active. |
---|
| 652 | + * @gates_lock: protects updates to known_gates |
---|
| 653 | + * @rhead: the rhashtable containing struct mesh_paths, keyed by dest addr |
---|
| 654 | + * @walk_head: linked list containing all mesh_path objects |
---|
| 655 | + * @walk_lock: lock protecting walk_head |
---|
| 656 | + * @entries: number of entries in the table |
---|
| 657 | + */ |
---|
| 658 | +struct mesh_table { |
---|
| 659 | + struct hlist_head known_gates; |
---|
| 660 | + spinlock_t gates_lock; |
---|
| 661 | + struct rhashtable rhead; |
---|
| 662 | + struct hlist_head walk_head; |
---|
| 663 | + spinlock_t walk_lock; |
---|
| 664 | + atomic_t entries; /* Up to MAX_MESH_NEIGHBOURS */ |
---|
| 665 | +}; |
---|
| 666 | + |
---|
647 | 667 | struct ieee80211_if_mesh { |
---|
648 | 668 | struct timer_list housekeeping_timer; |
---|
649 | 669 | struct timer_list mesh_path_timer; |
---|
.. | .. |
---|
718 | 738 | /* offset from skb->data while building IE */ |
---|
719 | 739 | int meshconf_offset; |
---|
720 | 740 | |
---|
721 | | - struct mesh_table *mesh_paths; |
---|
722 | | - struct mesh_table *mpp_paths; /* Store paths for MPP&MAP */ |
---|
| 741 | + struct mesh_table mesh_paths; |
---|
| 742 | + struct mesh_table mpp_paths; /* Store paths for MPP&MAP */ |
---|
723 | 743 | int mesh_paths_generation; |
---|
724 | 744 | int mpp_paths_generation; |
---|
725 | 745 | }; |
---|