hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/mac80211/ieee80211_i.h
....@@ -644,6 +644,26 @@
644644 struct cfg80211_csa_settings settings;
645645 };
646646
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
+
647667 struct ieee80211_if_mesh {
648668 struct timer_list housekeeping_timer;
649669 struct timer_list mesh_path_timer;
....@@ -718,8 +738,8 @@
718738 /* offset from skb->data while building IE */
719739 int meshconf_offset;
720740
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 */
723743 int mesh_paths_generation;
724744 int mpp_paths_generation;
725745 };