forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/net/mac80211/mesh.h
....@@ -1,11 +1,8 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Copyright (c) 2008, 2009 open80211s Ltd.
34 * Authors: Luis Carlos Cobo <luisca@cozybit.com>
45 * 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.
96 */
107
118 #ifndef IEEE80211S_H
....@@ -95,6 +92,7 @@
9592 * @last_preq_to_root: Timestamp of last PREQ sent to root
9693 * @is_root: the destination station of this path is a root node
9794 * @is_gate: the destination station of this path is a mesh gate
95
+ * @path_change_count: the number of path changes to destination
9896 *
9997 *
10098 * The dst address is unique in the mesh path table. Since the mesh_path is
....@@ -126,6 +124,7 @@
126124 unsigned long last_preq_to_root;
127125 bool is_root;
128126 bool is_gate;
127
+ u32 path_change_count;
129128 };
130129
131130 /**
....@@ -219,6 +218,12 @@
219218 struct sk_buff *skb);
220219 int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata,
221220 struct sk_buff *skb);
221
+int mesh_add_he_cap_ie(struct ieee80211_sub_if_data *sdata,
222
+ struct sk_buff *skb, u8 ie_len);
223
+int mesh_add_he_oper_ie(struct ieee80211_sub_if_data *sdata,
224
+ struct sk_buff *skb);
225
+int mesh_add_he_6ghz_cap_ie(struct ieee80211_sub_if_data *sdata,
226
+ struct sk_buff *skb);
222227 void mesh_rmc_free(struct ieee80211_sub_if_data *sdata);
223228 int mesh_rmc_init(struct ieee80211_sub_if_data *sdata);
224229 void ieee80211s_init(void);
....@@ -276,10 +281,13 @@
276281 int mesh_path_add_gate(struct mesh_path *mpath);
277282 int mesh_path_send_to_gates(struct mesh_path *mpath);
278283 int mesh_gate_num(struct ieee80211_sub_if_data *sdata);
284
+u32 airtime_link_metric_get(struct ieee80211_local *local,
285
+ struct sta_info *sta);
279286
280287 /* Mesh plinks */
281288 void mesh_neighbour_update(struct ieee80211_sub_if_data *sdata,
282
- u8 *hw_addr, struct ieee802_11_elems *ie);
289
+ u8 *hw_addr, struct ieee802_11_elems *ie,
290
+ struct ieee80211_rx_status *rx_status);
283291 bool mesh_peer_accepts_plinks(struct ieee802_11_elems *ie);
284292 u32 mesh_accept_plinks_update(struct ieee80211_sub_if_data *sdata);
285293 void mesh_plink_timer(struct timer_list *t);