Commit Graph
1653 Commits
Author SHA1 Message Date
Xu Si Yu 66ab063a9a feat(coex): support phy grant protect 2026-09-04 11:06:58 +08:00
Sajia 812634176b refactor(wifi): Improve owe scan time and refactor code 2026-09-03 14:19:57 +05:30
Jiang Jiang Jian ef2b8a164d Merge branch 'fix/scan_only_parse' into 'master'
Add scan only parser to show AP full compatibility

Closes ESPCS-1092

See merge request espressif/esp-idf!49948
2026-09-03 16:43:42 +08:00
Nachiket Kukade a9b89a3fd5 Merge branch 'fix/eloop-wifi-deinit-leak-delay' into 'master'
test(wpa_supplicant): wait for the idle task after esp_wifi_deinit in eloop unit test

Closes IDFCI-11307 and IDFCI-12170

See merge request espressif/esp-idf!52111
2026-09-03 14:03:45 +08:00
tarun.kumar 3a33ee7aa9 fix(wifi) : Add scan only parser to show AP full compatibility 2026-09-02 16:12:35 +05:30
Sarvesh Bodakhe bff264775a test(wifi): wait for the idle task after esp_wifi_deinit in Wi-Fi UTs
The Wi-Fi task deletes itself when esp_wifi_deinit() is called, and FreeRTOS
only reclaims its TCB and stack from the idle task afterwards. Test apps that
read the heap right after deinit therefore see that memory as still allocated
and report a leak, most visibly as the eloop unit tests failing on ESP32.

Wait for the idle task at every point where a test deinitialises Wi-Fi
before a leak check, replacing the single-tick delays that only matched what
esp_wifi_deinit() already waits for internally.
2026-09-01 14:17:10 +05:30
tarun.kumar f1615372d2 fix(wifi) : Add validation check in roc and tx_req api's, update doc 2026-08-31 20:31:05 +05:30
Jiang Jiang Jian 0cae1ec820 Merge branch 'fix/blacklist_roam_reason' into 'master'
Added more reason codes for blacklist roam

Closes WIFIBUG-2040

See merge request espressif/esp-idf!50875
2026-08-31 10:48:44 +08:00
Jiang Jiang Jian 2067f3ae32 Merge branch 'fix/low_rssi_roam_diff' into 'master'
fix(wifi): Require RSSI gain before low-RSSI roam

Closes WIFIBUG-2042

See merge request espressif/esp-idf!51706
2026-08-28 18:00:14 +08:00
tarun.kumar 8c240478bc fix(wifi) : Made changes to scan and doing it group decreasing scan time and increasing throughput 2026-08-25 18:12:38 +05:30
tarun.kumar 23f1cb78a8 fix(wifi): Preserve roam_config ABI and clamp roam diff
Append low_rssi_roam_diff so existing struct members keep their offsets,
and clamp runtime values to 1-99 so determine_best_ap() cannot see 0 or wrap.
2026-08-25 20:01:14 +08:00
tarun.kumar e0aa51f8bf fix(wifi): Require RSSI gain before low-RSSI roam
Low-RSSI roaming used determine_best_ap(0), so a 1 dB better AP was
enough and nearby APs could ping-pong. Add ESP_WIFI_ROAMING_LOW_RSSI_ROAM_DIFF
(default 5 dB) as hysteresis for that path.
2026-08-25 20:01:14 +08:00
Akshat Agrawal 9d46326879 fix(ftm): tolerate small t2/t3 inversion in measurement validation
- Update FTM calibration for esp32c5, C61, C6, C3
2026-08-25 09:53:17 +05:30
yinqingzhao b1ebe0287a feat(wifi): support fixed ampdu rate 2026-08-21 14:26:49 +08:00
tarun.kumar cd3e4935fa fix(wifi) : Added more reason codes for blacklist roam 2026-08-18 11:05:01 +05:30
yinqingzhao 433e17dfd3 feat(wifi): support max bandwidth negotiation 2026-08-12 17:53:45 +08:00
Sarvesh Bodakhe 42651e1ee1 fix(wifi): fix NAN availability time bitmap parsing issue
Accept spec-legal NAN availability time bitmaps (period > 512 TU,
bitmap length > 4, full 9-bit start offset) so iPhone secured NDP
setup is no longer rejected with NDL_UNACCEPTABLE.

Fixes NAN NDP interop with the iPhone 17 series.
2026-08-06 17:25:48 +05:30
sibeibei 2b528716be fix(scan): prioritize if1_conn check for home channel return logic 2026-08-06 15:39:06 +08:00
wangtao@espressif.com bbccbd5b1d fix(wifi): fix wifi scan and wps connect issue 2026-08-04 20:33:34 +08:00
muhaidong 33d39c304f fix(wifi): fix disconnect failure issue 2026-08-04 15:42:39 +08:00
yinqingzhao ab8568f547 fix(wifi): add workaround for s31 beacon timestamp issue 2026-08-03 21:48:27 +08:00
Akshat Agrawal e6976ab858 fix(ftm): Update FTM calibraton values for esp32c5, esp32c3, esp32c6, esp32c61 2026-07-29 16:19:09 +05:30
liuning 3926f44670 fix(wifi): fix chip cant sleep when disconnecting at probe process 2026-07-28 20:29:06 +08:00
zhangyanjiao 119410fbd1 fix(wifi): fixed espnow data rate overridden by stale rate control 2026-07-28 16:58:12 +08:00
yinqingzhao d75eb65787 fix(wifi): fix addba request dialog token zero and add ds parameter IE on 5g band 2026-07-28 10:22:12 +08:00
Akshat Agrawal c268031acd fix(nan): Fix bug bounty reported and discovered vulnerabilities in NAN Rx 2026-07-24 15:11:58 +05:30
zhangyanjiao 6a4fb7e546 fix(wifi): fixed the assignment error in esptouch v2 2026-07-23 10:45:24 +08:00
zhangyanjiao a3fa56db51 fix(wifi): fixed the buffer overflow issues
1. Added validation for password and reserved data length in ESPTouch v2
2. Added bound check for data index in ESPTouch v1 HT40
3. prevent buffer overflow when parsing MBSSID beacon
2026-07-21 14:09:35 +08:00
Island de98d9d4ad Merge branch 'feat/feat_support_phy_enable_using_regdma' into 'master'
Feat/feat support phy enable using regdma

Closes BLERP-2376, BLERP-2381, and PM-635

See merge request espressif/esp-idf!46356
2026-07-21 10:40:03 +08:00
Shreyas Sheth 37646ec2d5 fix(esp_wifi): fix issues for scan, and NULL packets tx for random mac (9bbd59c) 2026-07-18 17:38:50 +08:00
Akshat Agrawal 4f93a6777b Fix(NAN): fix Memory Corruption due to BIP encryption
- Set internal NAN params based on the user configurable Platform

 - On a secured NDP the responder could not derive keys
   (passphrase/credential mismatch); reject cleanly and
   fire ndp_terminated/ndp_confirm(REJECTED) on every
   teardown path so the host frees the NDP-ID.

 - Tear down the old NDP when the same peer re-initiates with
   a new M1, instead of rejecting and leaking the NDL.
2026-07-17 13:51:16 +05:30
Nachiket Kukade a8ff7d2ab3 fix(nan): Guard netif calls in NAN_STARTED default event handler
- Commit 08e98f6f30 utilises CONFIG_LWIP_ND6_SUPPORT_STATIC_ENTRIES
  for adding static entries.
- It moves netif calls that generate GOT IPv6 to NAN_STARTED default
  handler without guard, but guards the removal in NDP Confirm handler
- Fix the possible duplicate calls by putting calls from NAN_STARTED
  handler under CONFIG_LWIP_ND6_SUPPORT_STATIC_ENTRIES guard
2026-07-17 13:51:16 +05:30
Sarvesh Bodakhe 161197138a fix(nan): log service match only after the security gate passes
- subscriber security gate, so a gated (dropped) match still logged an
   affirmative match line while no WIFI_EVENT_NAN_SVC_MATCH was posted.
   Log only when the event is sent.

 - security_cfg was copied into the service slot even with security_reqd=0,
   while credential validation only runs when security_reqd is set. Such an
   undeclared config silently armed the subscriber service-match security
   gate, suppressing match events. Scrub security_cfg from the working copy
   and warn instead.
2026-07-17 13:51:05 +05:30
cjin 6ec7a718f9 feat(sleep_modem): allow multi modem to enable rf with regdma 2026-07-17 11:04:26 +08:00
cjin 226f11da96 feat(modem): rename the sleep modem functions 2026-07-17 11:04:26 +08:00
Akshat Agrawal b08e848f46 fix(nan): Transmit NULL packet correctly to avoid NDP termination 2026-07-13 14:51:43 +05:30
Chen Yu Dong 89590855a0 Merge branch 'refactor/esp_wifi_regulatory_esp_pylib' into 'master'
refactor(esp_wifi): migrate regulatory tools to esp-pylib

See merge request espressif/esp-idf!49976
2026-07-12 00:49:48 +08:00
Shreyas Sheth 53e36b0ce4 fix(wpa_supplicant): Fix issues related to pmkid mismatch and eloop for dpp 2026-07-09 17:38:49 +05:30
tarun.kumar f614b0343c fix(wifi) : Correct blacklist flag
- Fixes state desync where global blacklist was cleared but blacklist bss flag was true causing rejection of correct AP as well.
2026-07-08 15:22:50 +05:30
zhangyanjiao cf695709f1 fix(wifi): fixed the offchan tx fail when SPIRAM_TRY_ALLOCATE_WIFI_LWIP enabled 2026-07-07 15:31:00 +08:00
Sarvesh Bodakhe 61b705f030 refactor(wifi): astyle-format wifi_netif.c
The ternary continuation in esp_wifi_netif_set_static_neighbor() was not
astyle-formatted; re-indent it so the pre-commit astyle hook passes in CI.
2026-07-01 20:30:47 +05:30
Sarvesh Bodakhe 4639b57485 refactor(nan): drop '##' debug marker from key hexdump tags
The six key-material hexdumps (ND-IGTK/BIGTK/TK/GTK and the peer IGTK/BIGTK)
kept a leftover '##' dev-grep marker on their tag string. Drop it; the
descriptive labels stay and the dumps remain at ESP_LOG_DEBUG.
2026-07-01 20:26:10 +05:30
Sarvesh Bodakhe 21a5c603e8 change(wifi): sync NAN/netif wifi headers + rebuilt libs [d3da506]
- injected esp_wifi_netif.h: add esp_wifi_netif_get_ip6_linklocal_from_mac()
  and esp_wifi_netif_set_static_neighbor() (static ND6 IPv6-pin API).
- esp_wifi_types_generic.h (public + injected): rename the NCS-GTK cipher
  suites CCM_128 -> CCMP_128 / GCM_256 -> GCMP_256 to match Wi-Fi Aware v4.0
  (Table 121, section 9.5.21.1); refresh NAN group-protection docs. Enum
  values (5/6), struct layout and on-air behaviour are unchanged.
- nan_security.c: use the renamed macros and update the advertise log.
- esp_wifi/lib: bump to the rebuilt blobs carrying the renamed MD5-checked
  header (han2 d3da506).
2026-07-01 20:18:37 +05:30
Sarvesh Bodakhe 2cc14d131f fix(nan): restrict GTK Key ID to 1/2 and ignore cleartext group KDEs
- Tighten the own GTK Key ID guard from ">3" (which admitted 0 and 3) to
  the spec range 1..2 (Wi-Fi Aware v4.0 §7.1.3.2).
- When the Encrypted-Key-Data bit is clear, ignore the Key Data instead of
  parsing KDEs from the clear: group KDEs are only ever carried KEK-wrapped
  (§7.1.3.5; 802.11-2020 §12.7.2). Also store the peer IPN/BIPN from the
  IGTK/BIGTK KDEs for the BIP RX replay-counter seed.
2026-07-01 18:12:25 +05:30
Sarvesh Bodakhe 235207bb2a fix(nan): seed peer BIP RX replay counter from the KDE IPN/BIPN
The peer IGTK/BIGTK were installed with an all-zero seq, so the blob's BIP
RX replay counter started at 0 instead of the peer's advertised value. Store
the 6-octet IPN/BIPN from the IGTK/BIGTK KDE (the octets after the 2-byte
Key ID, per 802.11 Fig 12-42/12-47) into the NDL and pass them as the
install seq. The parser side of this lands with the group-KDE guards.
2026-07-01 18:12:24 +05:30
Sarvesh Bodakhe 1c59572c07 change(wifi): update libs [2e77d2e]
Rebuilt libs with NAN group-key (GTK/IGTK/BIGTK) support, matching the
nan_key_type_t and group-protection header updates so the MD5-checked
esp_wifi_driver.h and esp_wifi_types_generic.h verify.
2026-07-01 18:12:24 +05:30
Sarvesh Bodakhe e952a580db docs(nan): document group-protection fields, CSID ciphers and NIRA
Refresh stale/missing documentation now that the features are implemented:
- group_data_prot / group_mgmt_prot in wifi_nan_discovery_security_params_t
  (esp_wifi_types_generic.h) and wifi_nan_security_params_t (esp_private/
  wifi.h): describe GTKSA / IGTKSA+BIGTKSA instead of "not supported".
- CSID enum: document NCS-GTK-CCM-128 (set internally via group_data_prot,
  not user-selectable) and NCS-PK-PASN-128 (NAN Pairing, via the Wi-Fi
  Aware component).
- Drop "dummy" from the esp_nan_construct_nira() doc (it builds a real
  NIRA) and a stale "IGTK/BIGTK are placeholders" comment.
2026-07-01 18:12:24 +05:30
Sarvesh Bodakhe ebb9539d17 refactor(nan): use shared nan_key_type_t from esp_wifi_driver.h
The NAN key-type selectors are defined by the blob in esp_wifi_driver.h
(nan_key_type_t), which nan_i.h already includes. Add the group-integrity
key types NAN_KEY_ND_IGTK (3) and NAN_KEY_ND_BIGTK (4) there to match the
blob, and drop the duplicate host definitions from nan_i.h so a single
shared enum is used. Resolves the review request to declare these in
nan_key_type_t and avoids redefining the typedef.
2026-07-01 18:12:24 +05:30
Sarvesh Bodakhe 8b2b386825 refactor(nan): declare NAN key types as nan_key_type_t enum
Move the NAN_KEY_ND_TK/ND_GTK/NM_TK/ND_IGTK/ND_BIGTK selectors from #defines
into a nan_key_type_t enum, and finalize their doc wording (drop the
"provisional" note now that the IGTK/BIGTK values are verified against the
blob ABI). They are still passed to esp_wifi_set_nan_key_internal() as the
int key_flag argument, so no call-site or ABI change. Also tidy the
surrounding doc comments.
2026-07-01 18:12:24 +05:30
Sarvesh Bodakhe 5275d5ef08 refactor(nan): put RSN KDE OUI in one array, drop dead OUI byte macros
Replace the three NAN_KDE_OUI_RSN_* byte writes in nan_kde_put_hdr() with a
single nan_kde_rsn_oui[] array, and remove the now-unused NAN_KDE_OUI_RSN_*
byte macros and the never-used NAN_KDE_OUI_WFA_* byte macros. The combined
NAN_KDE_OUI_RSN / NAN_KDE_OUI_WFA (used by the KDE parser) are kept.
2026-07-01 18:12:24 +05:30