--- zzzz-none-000/linux-4.9.276/net/mac80211/ieee80211_i.h 2021-07-20 14:21:16.000000000 +0000 +++ falcon-5530-750/linux-4.9.276/net/mac80211/ieee80211_i.h 2023-04-05 08:19:02.000000000 +0000 @@ -107,6 +107,9 @@ /* Keep track of what bits of information we have valid info for. */ u8 valid_data; + + const u8 *vendor_vht; + u8 vendor_vht_len; }; /** @@ -127,6 +130,7 @@ * @IEEE80211_BSS_VALID_WMM: WMM/UAPSD data was gathered from non-corrupt IE * @IEEE80211_BSS_VALID_RATES: Supported rates were gathered from non-corrupt IE * @IEEE80211_BSS_VALID_ERP: ERP flag was gathered from non-corrupt IE + * @IEEE80211_BSS_VALID_VENDOR_VHT: vendor VHT was gathered from non-corrupt IE * * These are bss flags that are attached to a bss in the * @valid_data field of &struct ieee80211_bss. They show which parts @@ -134,9 +138,10 @@ * beacon/probe response. */ enum ieee80211_bss_valid_data_flags { - IEEE80211_BSS_VALID_WMM = BIT(1), - IEEE80211_BSS_VALID_RATES = BIT(2), - IEEE80211_BSS_VALID_ERP = BIT(3) + IEEE80211_BSS_VALID_WMM = BIT(1), + IEEE80211_BSS_VALID_RATES = BIT(2), + IEEE80211_BSS_VALID_ERP = BIT(3), + IEEE80211_BSS_VALID_VENDOR_VHT = BIT(4) }; typedef unsigned __bitwise__ ieee80211_tx_result; @@ -387,6 +392,9 @@ struct ieee80211_vht_cap ap_vht_cap; + const u8 *vendor_vht; + u8 vendor_vht_len; + size_t ie_len; u8 ie[]; }; @@ -514,6 +522,8 @@ struct ieee80211_vht_cap vht_capa; /* configured VHT overrides */ struct ieee80211_vht_cap vht_capa_mask; /* Valid parts of vht_capa */ + int vendor_wds; + /* TDLS support */ u8 tdls_peer[ETH_ALEN] __aligned(2); struct delayed_work tdls_peer_del_work; @@ -1415,6 +1425,8 @@ struct ieee802_11_elems { const u8 *ie_start; size_t total_len; + u8 *vendor_events_filter; + u8 vendor_events_filter_len; /* pointers to IEs */ const struct ieee80211_tdls_lnkie *lnk_id; @@ -1452,6 +1464,8 @@ const u8 *opmode_notif; const struct ieee80211_sec_chan_offs_ie *sec_chan_offs; const struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie; + const u8 *vendor_vht; + const u8 *vendor_ie_to_notify; /* length of them, respectively */ u8 ext_capab_len; @@ -1469,6 +1483,8 @@ u8 prep_len; u8 perr_len; u8 country_elem_len; + u8 vendor_vht_len; + u8 vendor_ie_to_notify_len; /* whether a parse error occurred while retrieving these elements */ bool parse_error; @@ -1877,12 +1893,13 @@ u32 ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action, struct ieee802_11_elems *elems, + u8 *vendor_events_filter, u8 vendor_events_filter_len, u64 filter, u32 crc); static inline void ieee802_11_parse_elems(const u8 *start, size_t len, bool action, struct ieee802_11_elems *elems) { - ieee802_11_parse_elems_crc(start, len, action, elems, 0, 0); + ieee802_11_parse_elems_crc(start, len, action, elems, NULL, 0, 0, 0); }