summaryrefslogtreecommitdiffstats
path: root/include/net/ieee80211_radiotap.h
diff options
context:
space:
mode:
authorMordechay Goodstein <mordechay.goodstein@intel.com>2023-03-01 12:09:35 +0200
committerJohannes Berg <johannes.berg@intel.com>2023-03-07 10:59:10 +0100
commit9179dff82598ab8b4e88dcc93c9e26a2594efd1a (patch)
tree8a3f6d43e7e6ef8e78d3c31c0a5f1509337efa39 /include/net/ieee80211_radiotap.h
parent18cbf7c089ba70fefe1b4c01af28753cabfbf38f (diff)
downloadlinux-stable-9179dff82598ab8b4e88dcc93c9e26a2594efd1a.tar.gz
linux-stable-9179dff82598ab8b4e88dcc93c9e26a2594efd1a.tar.bz2
linux-stable-9179dff82598ab8b4e88dcc93c9e26a2594efd1a.zip
wifi: mac80211: add support for driver adding radiotap TLVs
The new TLV format enables adding TLVs after the fixed fields in radiotap, as part of the radiotap header. Support this and move vendor data to the TLV format, allowing a reuse of the RX_FLAG_RADIOTAP_VENDOR_DATA as the new RX_FLAG_RADIOTAP_TLV_AT_END flag. Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230301115906.b18fd5da8477.I576400ec40a7b35ef97a3b09a99b3a49e9174786@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/ieee80211_radiotap.h')
-rw-r--r--include/net/ieee80211_radiotap.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/net/ieee80211_radiotap.h b/include/net/ieee80211_radiotap.h
index 0fc2667a9a5d..95436686d3fe 100644
--- a/include/net/ieee80211_radiotap.h
+++ b/include/net/ieee80211_radiotap.h
@@ -369,6 +369,26 @@ struct ieee80211_radiotap_tlv {
u8 data[];
} __packed;
+/**
+ * struct ieee80211_radiotap_vendor_tlv - vendor radiotap data information
+ * @type: should always be set to IEEE80211_RADIOTAP_VENDOR_NAMESPACE
+ * @len: length of data
+ * @oui: radiotap vendor namespace OUI
+ * @oui_subtype: radiotap vendor sub namespace
+ * @vendor_type: radiotap vendor type
+ * @reserved: should always be set to zero (to avoid leaking memory)
+ * @data: the actual vendor namespace data
+ */
+struct ieee80211_radiotap_vendor_tlv {
+ __le16 type; /* IEEE80211_RADIOTAP_VENDOR_NAMESPACE */
+ __le16 len;
+ u8 oui[3];
+ u8 oui_subtype;
+ __le16 vendor_type;
+ __le16 reserved;
+ u8 data[];
+} __packed;
+
/* ieee80211_radiotap_eht_usig - content of U-SIG tlv (type 33)
* see www.radiotap.org/fields/U-SIG.html for details
*/