Reland "hostapd: donot process 2.4ghz probe requests"
This reverts commit 8fbe25ac02942ba3b6c39b615cb2325f7a0c1e19.
Reason for revert: the Mistral patch to populate 2.4GHz probe request was reverted due to regression in b:146569345. Reland this hostapd WAR so that Mistral could recognize dual band capable clients. See b:151800186#comment8 for more context.
Original change's description:
> Revert "hostapd: donot process 2.4ghz probe requests"
>
> This reverts commit 5c61cc49e9cfc2498784edf78c7577695e468628.
>
> Reason for revert: b:139151531 Remove the WAR since the issue of populating
> 2.4GHz probe request has been fixed. Verify hostapd receive 2.4GHz probe
> reqeust and dual_band_capable field is marked correctly.
>
> Original change's description:
> > hostapd: donot process 2.4ghz probe requests
> >
> > some of Google WiFi products firmware doesn't populate 2.4ghz probe
> > request info to user space which is required to decide station band
> > capability. As a work around, mark station as the dual band capable
> > if 5ghz probe request info of station are available.
> >
> > BUG=b:139151531
> > TEST=1) Build for Google WiFi products
> > 2) Connect a station to Google WiFi and confirm from logs
> >
> > Change-Id: Ib5e2b35992734b1037929564426ce778430e4cf1
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/hostap/+/1749556
> > Reviewed-by: Julan Hsu <julanhsu@google.com>
> > Reviewed-by: Ramya Bhagavatula <rbhagavatula@chromium.org>
> > Reviewed-by: Brian Norris <briannorris@chromium.org>
> > Tested-by: NARAYANRADDI MASTI <nmasti@google.com>
> > Commit-Queue: NARAYANRADDI MASTI <nmasti@google.com>
>
> Bug: b:139151531
> Change-Id: I1fae46541da0b4e5ae1474866f15aa3e518791b4
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/hostap/+/1806059
> Tested-by: Roy Luo <royluo@google.com>
> Reviewed-by: Julan Hsu <julanhsu@google.com>
> Reviewed-by: Julan Hsu <julanhsu@chromium.org>
> Commit-Queue: Roy Luo <royluo@google.com>
Bug: b:139151531
Change-Id: I23e3e3c96cad2e5eeef55a218caae044885532f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/hostap/+/2891401
Tested-by: Roy Luo <royluo@google.com>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Srinivasa duvvuri <sduvvuri@google.com>
Commit-Queue: Roy Luo <royluo@google.com>
diff --git a/src/ap/steering.c b/src/ap/steering.c
index 6e851fb..0f63580 100644
--- a/src/ap/steering.c
+++ b/src/ap/steering.c
@@ -437,35 +437,24 @@
size_t buf_size;
int pos;
struct stat st;
- Boolean is_2g_capable = FALSE, is_5g_capable = FALSE;
if (steering_path == NULL)
return FALSE;
+ /* TODO: Some of Google WiFi products firmware doesn't
+ * populate 2.4ghz probe request info to user space
+ * hence the assumption here is that device would be 2.4ghz
+ * capable if 5ghz probe request info is available.
+ */
buf_size = sizeof(probepath);
pos = os_strlcpy(probepath, steering_path, buf_size);
pos += os_strlcpy(&probepath[pos], "/", buf_size - pos);
pos += os_strlcpy(&probepath[pos], "i_", buf_size - pos);
- pos += os_strlcpy(&probepath[pos], ifnames[0], buf_size - pos);
- os_snprintf(&probepath[pos], buf_size - pos, "/" COMPACT_MACSTR ".%d",
- MAC2STR(mac), STEER_EVENT_PROBE);
-
- if (stat(probepath, &st) != -1)
- is_2g_capable = TRUE;
-
- os_memset(probepath, 0, buf_size);
-
- pos = os_strlcpy(probepath, steering_path, buf_size);
- pos += os_strlcpy(&probepath[pos], "/", buf_size - pos);
- pos += os_strlcpy(&probepath[pos], "i_", buf_size - pos);
pos += os_strlcpy(&probepath[pos], ifnames[1], buf_size - pos);
os_snprintf(&probepath[pos], buf_size - pos, "/" COMPACT_MACSTR ".%d",
MAC2STR(mac), STEER_EVENT_PROBE);
- if (stat(probepath, &st) != -1)
- is_5g_capable = TRUE;
-
- return (is_2g_capable && is_5g_capable);
+ return (stat(probepath, &st) != -1) ? TRUE : FALSE;
}
/**