[PATCH v2 05/11] scan: store vendor quirks in scan_bss
James Prestwood <[email protected]> Wed, 27 Aug 2025 05:54:55 -0700
| Newsgroups | dev.linux.lists.iwd |
|---|---|
| Message-ID | <[email protected]> |
As each vendor IE is parsed lookup if there are any quirks associated
with it, and store these in a bit mask.
---
src/scan.c | 6 ++++++
src/scan.h | 2 ++
2 files changed, 8 insertions(+)
diff --git a/src/scan.c b/src/scan.c
index d9f27c83..46ea79ef 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -51,6 +51,7 @@
#include "src/mpdu.h"
#include "src/band.h"
#include "src/scan.h"
+#include "src/vendor_quirks.h"
/* User configurable options */
static double RANK_2G_FACTOR;
@@ -1221,6 +1222,11 @@ static void scan_parse_vendor_specific(struct scan_bss *bss, const void *data,
uint16_t cost_flags;
bool dgaf_disable;
+ if (L_WARN_ON(len < 3))
+ return;
+
+ vendor_quirks_append_for_oui(data, &bss->vendor_quirks);
+
if (!bss->wpa && is_ie_wpa_ie(data, len)) {
bss->wpa = l_memdup(data - 2, len + 2);
return;
diff --git a/src/scan.h b/src/scan.h
index 4c1ebc21..ae6a3a79 100644
--- a/src/scan.h
+++ b/src/scan.h
@@ -21,6 +21,7 @@
*/
#include "src/defs.h"
+#include "src/vendor_quirks.h"
struct scan_freq_set;
struct ie_rsn_info;
@@ -79,6 +80,7 @@ struct scan_bss {
uint8_t *wfd; /* Concatenated WFD IEs */
ssize_t wfd_size; /* Size of Concatenated WFD IEs */
int8_t snr;
+ struct vendor_quirk vendor_quirks;
bool mde_present : 1;
bool cc_present : 1;
bool cap_rm_neighbor_report : 1;
--
2.34.1