Commit Graph
53 Commits
Author SHA1 Message Date
jgujarathi 52bcdb9400 refactor(esp_wifi): Cleanup of wifi crypto funcs within wifi libs
- Remove unnecessary funcs from wpa_crypto_funcs_t and consolidate some
  of their usages in wifi libs
2024-09-23 14:24:08 +05:30
jgujarathi e411e43b4b fix(examples) : Common component's wifi disconnect handler should ignore roaming disconnect
- Common component's wifi disconnect handler should ignore roaming disconnect (WIFI_REASON_ROAMING)
  as connect gets issued internally in these cases.
2024-09-11 11:39:43 +08:00
jgujarathi 6547315dde fix(esp_wifi): Stops roaming app upon application initiated disconnect
Stops roaming app when the application initiates a disconnect.
Roaming app if enabled will be restarted when the station reconnects again.
2024-09-11 11:39:43 +08:00
jgujarathi e2ba2cfbe2 fix(esp_supplicant): Fix compilation issues with btm and rrm status funcs
- Ensure that the btm and rrm status funcs can be used even if 80211.kv
  are not enabled in menuconfig. They will return false in such cases.
2024-09-11 11:39:43 +08:00
jgujarathi 770162d76c feat(esp_wifi): Adds a new API to set default scan parameters
- esp_wifi_set_scan_parameters() : Used to set the default scan parameters to be used
while scanning. These parameters will be used for all scans conducted by station
including connect scan. Parameters provided through esp_wifi_scan_start() override the
default parameters for that scan only
- esp_wifi_get_scan_parameters(): Used to get the current default scan parameters.
2024-04-19 11:01:53 +08:00
jgujarathi c5d8acc40a feat(esp_wifi): Showcase roaming_app capabalities through dedicated example
- Shows use of roaming app through dedicated example : roaming_app_example.
- Changes the location of the earlier roaming example by moving it into the roaming_11kvr.
- Please note that this feature is still experimental and still being optimised
and tuned.
2024-04-01 23:00:01 +08:00
jgujarathi 0d7c909e87 feat(esp_wifi): Showcases the new scan by bitmap config
- Showcases the ability to scan by the bitmap config newly added
to the wifi_scan_config_t by implementing it in the scan config
2024-04-01 23:00:01 +08:00
jgujarathi 9a88dab748 feat(esp_wifi): Add support for advanced roaming as a wifi app
- Adds support for advanced roaming as a wifi app.
2024-04-01 23:00:01 +08:00
jgujarathi 71e6c10f7c fix(wpa_supplicant): Update supplicant last scan time when application scanning
- Any scanning currently updates the bss table held by supplicant anyway,
  but the time record used to maintain the recency of the last scan is
  only updated by supplicant issued scans. Updating the last scan time
  for application trigerred scanning will prevent the needless scanning
  by supplicant if there has been an application trigerred scan in
  the time diff threshold(currently 10s).
2024-04-01 23:00:01 +08:00
jgujarathi b23e29d5ae fix(wpa_supplicant): Add current bss channel as hint to scanning
- Add current bss channel as hint to scanning during supplicant connect
  making the process faster.
2024-04-01 23:00:01 +08:00
jgujarathi 560c951e33 fix(wpa_supplicant): Add default durations to supplicant issued scans
- Add default durations to supplicant issued scans based on results from
  initial experiments where probe response times were recorded in a
  significantly noisy environment. It was noticed  that  within 70ms
  we receive over 80% of the responses 90% of the time
2024-04-01 23:00:01 +08:00
jgujarathi 84d7ab5c0c fix(wpa_supplicant): Clear bssid flag and channel in supplicant disconnect handler
- Clear the bssid set flag and channel in supplicant disconnect handler as this
  can cause the station to recursively connect to the wrong AP in case
  roaming through BTM mechanisms fails.
- Fix issue with incorrect blocking time calculation when blocking scan
  issued for a single channel.
2024-04-01 23:00:01 +08:00
jgujarathi ff622e4428 fix(wpa_supplicant): Apply the Neighbor report event in roaming example
- Apply the neighbor report event structure in the roaming example.
- This replaces the existing callback structure that existed earlier.
2024-04-01 23:00:01 +08:00
jgujarathi c6134a23dd fix(wpa_supplicant): Replace Neighbor Report callback with an event
- Deprecate the existing esp_rrm_send_neighbor_rep_request() API
- Adds a new API to send neighbor report requests esp_rrm_send_neighbor_report_request().
  This replaces the older API's callback procedure with a new Wi-Fi
  event that is posted when the neighbor report is received.
  This moves the execution of the callback from supplicant
  context to freertos context.
2024-04-01 23:00:01 +08:00
jgujarathi 743772fb76 fix(btm): Improve BTM scanning effiency by using channel bitmap
- Improve the BTM scanning efficiency by using channel bitmap feature in
  scanning. This sets only the channels we need to scan instead of all.
2024-04-01 23:00:01 +08:00
jgujarathi c3f1c3fcde feat(esp_wifi): Add channel bitmaps to the scan config
- Add the ability to specify the specific channels and the
  in wifi_config_t.
- Adds warning that discourages setting bssid and channel in sta_config
  when btm/mbo is enabled and supported by the network.
- Fix issues with reporting authmodes of FT supporting APs during scanning.
- Additional typo fixes in the public header files
2024-04-01 23:00:01 +08:00
jgujarathi 7ef11a1409 fix(rsnxe): Expands maximum size of RSNXE IE to 255
- Allows for RSNXE IE to be processed as a variable length upto
255 bytes, changing the earlier max of 20.
2024-03-26 15:06:36 +05:30
jgujarathi 40ccd1525f fix(wpa_supplicant): Cancel offchannel listen operations before sending dpp fail
- Ensure that offchannel listening operations are cancelled before sending dpp
  fail event
2024-03-18 14:33:57 +05:30
jgujarathi 537cf9bfc0 fix(wpa_supplicant): Ensure dpp auth structure is deinited in dpp task context
- Ensure that the dpp auth data gets deinited only in DPP task context to ensure
  that there are no concurrency issues in usage of DPP auth data.
2024-03-18 14:33:57 +05:30
jgujarathi 8ab5cee34a docs(esp_wifi): Add docs for additional authmode incompatible situation
- Adds documentation for additional situations where authmode incompatible disconnect
  reason code will be reported
2024-01-04 11:56:42 +05:30
jgujarathi b35ab4e1df fix(esp_wifi): Report authmode incompatible WPA AP scanned and we require PMF
- Report the authmode incompatible if the scanned AP is in WPA mode and we require PMF
  according to sta config
2024-01-01 07:42:03 +05:30
jgujarathi 4b4095e47d fix(esp_wifi): Cover additional situations for reporting new reason codes
- WIFI_REASON_NO_AP_FOUND_W_COMPATIBLE_SECURITY will be reported for the following
  reasons
  -- AP has PMF required but station is not configured for pmf capable/required.
  -- Station has PMF required but AP is not configured for pmf capable/required.
  -- The AP is using unsupported group management/pairwise ciphers
  -- OWE not enabled by station for found OWE AP
  -- AP RSNXE parsing failed in supplicant
  -- AP is in Independent BSS mode
2023-12-28 15:40:54 +05:30
jgujarathi 40adf0bfcd fix(esp_wifi): Correct wifi lib docs for esp_wifi_crypto_types.h
- Wifi lib changes for docs of some APIs in esp_wifi_crypto_types.h
2023-12-15 12:28:18 +05:30
jgujarathi 322aa53d9d fix(wpa_supplicant): Add support for a dpp authentication timeout
- Adds support for a 1 second dpp authentication timeout.
2023-12-01 15:08:32 +05:30
jgujarathi 8508363ce5 fix(wpa_supplicant): Restructuring DPP init method to ensure cleanup
- Restructuring DPP init function to ensure cleanup of variables in case of
  init failure
2023-12-01 12:23:03 +05:30
jgujarathi 76da067bce fix(wpa_supplicant): Fix location of clearing up dpp global variables
- Fix location of cleaing up dpp global variables to ensure that there are
  no concurrency issues.
2023-12-01 12:23:03 +05:30
jgujarathi 30c510020f fix(wpa_supplicant): Fix a memory leak in dpp deinit path
- Ensures that the auth information of dpp gets freed when there is
  dpp gets deinited.
2023-12-01 12:23:00 +05:30
jgujarathi f73432f651 fix(wpa_supplicant): Move concurrent wps and dpp check to before creating task
- Move the check for checking concurrent wps and dpp check to before creating
  task rather than after.
2023-11-28 15:18:39 +05:30
jgujarathi bb4b9d0687 fix(wpa_supplicant): Fix a crash in esp_wifi_wps_disable
- Fixes a crash observed in esp_wifi_wps_disable when wps process
  is ongoing, caused due to concurrency issues in cancelling timers.
2023-11-28 11:55:35 +05:30
jgujarathi b47b75f6c8 fix(esp_wifi): Expand situations for REASON_NO_AP_FOUND_WITH_COMPATIBLE_SECURITY
- Fixes issue with connecting and discovering WEP APs
- Expsnds the reasons for trigerring a disconnect using
REASON_NO_AP_FOUND_WITH_COMPATIBLE_SECURITY
-- SAE-PK configured as compulsory in sta config but disabled for the AP
-- SAE-H2e configured as compulsory in sta config but disabled for an AP
that has authmode as WPA3-PSK or WPA3-WPA2-PSK.
-- Open AP found but we have set password or enabled enterprise mode.
-- SAE H2E only ap but we have SAE HnP setup in config.
-- WPA3-EXT_PSK AP but SAE-H2E disabled in config
2023-11-22 11:29:30 +05:30
jgujarathi 47e8de1d4d fix(esp_wifi): Add more descriptive reasons for disconnect
Adds 3 more ddisconnect reasons in case of No AP found.
1. REASON_NO_AP_FOUND_IN_RSSI_THRESHOLD : AP rejected because it did
   not meet rssi threshold.

2. REASON_NO_AP_FOUND_IN_AUTHMODE THRESHOLD : AP rejected because it
   did not meet security threshold.

3. REASON_NO_AP_FOUND_WITH_COMPATIBLE_ SECURITY : AP rejected because
   of incompatible security configuration. These situations could include
   -- bss offerring WEP, but our password is not WEP compliant,
   -- Encrypted AP bss but we have no password config set.
   -- AP is Enterprise but we have not setup enterprise config and vice versa

    Closes https://github.com/espressif/esp-idf/issues/5957
2023-11-13 14:22:59 +08:00
jgujarathi 6ddeba878c fix(esp_wifi): Fixes issues in beacon_timeout, PMKSA and AID assignment
- Fixes issue wheere beacon timeout would get triggerred multiple times
  leading to a m f probe req.

- Fix missing PMKSA flush scenarios.

- Fix wrong AID assigned to station when multiple stations try to connect
  simultaneously with mixed order of auth-request and assoc-request frames.
2023-10-17 15:35:14 +05:30
jgujarathi a08e4afd07 fix(wpa_supplicant/dpp): Ensure dpp follows init->bootstrap->listen path
- esp_supp_dpp_init : Ensures that the mode is set to station before
  the API call.
- Ensures that dpp follows the path of init(esp_supp_dpp_init) ->
  bootstrap(esp_supp_dpp_bootstrap_gen) -> listen(esp_supp_dpp_start_listen)
  by returning errors if any of them is invoked out of order.
2023-10-03 14:21:33 +05:30
jgujarathi 906685898d fix(esp_wifi): Fix issues with extended caps IE, scan and HT40 mode
-Merges the addition of extended caps IE for assoc req, probe resp
 and beacons in a single place. This ensures that there are no
 duplicate Extended Caps IE in the frame. Moves the capability
 indication for BTM and HT20/40 from supplicant to wifi libs.

-Fix issue with frequent disconections when scanning for only a single
 channel.

-Prints error message and returns ESP_ERR_NOT_SUPPORTED in case
 esp32c2 tries to set bandwidth to HT40.
2023-09-14 10:19:27 +05:30
jgujarathi cabb41d889 fix(esp_wifi) : Trigger null data frame TX before offchan channel switch.
Moves the location of null data frame TX to before channel switch during
offchannel action frame TX req.
2023-07-31 16:51:57 +05:30
jgujarathi c610594abb fix(rrm) : Fix crash in RRM neighbour report requests.
Fix crash in sending new RRM neighbour report requests by removing
the call to neighbour report request timeout callback in case of
already ongoing neighbour report request timer.
2023-07-25 16:38:59 +05:30
jgujarathi 2fe35e8b49 esp_wifi : Add a obss scan timer disarm upon sta disconnect.
Adds a obss scan timer disarm when a sta disconnects from an AP.
2023-07-03 17:55:57 +05:30
jgujarathi 98e33605b4 wpa_supplicant : Fix occasional crash during btm roam.
Fix crash due to premature deallocation of neighbour report elements
by scan_done. Post event to btm_rrm_t task to handle scan_done serially
rather than when btm_rrm_t task is processing btm request rx frame.
2023-07-03 04:16:21 +00:00
jgujarathi 1302c5a622 esp_wifi : Fix collection of issues during sta scan and roam.
1) Fix issue during split scan to allow for data tx.
2) Fix issue when parsing wpa_ie to set correct authmode when AP
   supports both WPA_EAP and WPA_EAP_SHA256 authmode.
   Closes https://github.com/espressif/esp-idf/issues/11202
3) Fix an occasional crash during sta roam.
4) Add home_channel_dwell_time to wifi_scan_config_t. This allows
   configuration of the time spent between scanning consecutive
   channels for tx.
2023-07-03 04:05:52 +00:00
jgujarathi e803554654 wpa_supplicant : Fix scan results for GCMP and GCMP-256 cipher.
Add support for recognising GCMP and GCMP-256 ciphers if used by AP.
Update the scan example to show the correct cipher.
2023-05-05 10:13:17 +05:30
jgujarathi 00c0bf683f wpa_supplicant : Add MBO ie in probe request.
Adds the MBO information element in the probe request frame by resetting
scan_ie after set_config is done.
2023-05-05 10:12:29 +05:30
jgujarathi 20c316d4cf wpa_supplicant : Add disable for tls key usage check.
Disable the key usage check this leads to false negative results
while using wfa certificates during testing.
2023-03-01 14:14:26 +05:30
jgujarathi d9d1c3e334 wpa_supplicant : Add validations for 192-bit Suite B test cases.
Add validation for group data cipher, pairwise cipher and AKM Suites to
ensure correct ciphers are supported by AP during 192-bit Enterprise
connections.
2023-03-01 12:04:45 +05:30
jgujarathi 178497c432 wpa_supplicant : Add deinitialization of Enterprise config_methods.
Add deinitialization of config_methods as it prevents correct reinitialization of sta in eap_peer_config_init() during reassoc.
2023-02-17 17:21:41 +05:30
jgujarathi a512a5d990 wpa_supplicant : Add support for unregistering wifi wpa3 callbacks.
Unregister wifi callbacks allows for disabling support for wpa3 functions when not required.
2023-02-17 17:20:49 +05:30
jgujarathi 88ea8c5fed wpa_supplicant : Prevent h2e config overwrite
Current esp_wifi_get_config doesn't return correct value of h2e config which will cause h2e config to be overwritten in Station connected handler.

Add one preventative condition to take care of this.
2023-02-01 14:04:23 +05:30
jgujarathi c565724f3a wpa_supplicant : fix invalid de-init of last_scan_res_used
During the wifi deinit last_scan_res_used is not set to 0 which will cause it be used directly after reinit.

Added changes which will set it to 0 during init and deinit.
2023-02-01 12:17:42 +05:30
jgujarathi 417fc6d404 wpa_supplicant : Correct scan results for GCMP RSN
Fixed a typo which was causing scan results for GCMP not showing correctly
2023-02-01 12:12:29 +05:30
jgujarathi 2272350820 (esp_wifi) : Adds improvements to esp_wps.c to cover up potential memory leaks. 2022-11-07 10:53:44 +05:30
jgujarathi 915fb4dfe2 Removed some occurences of the RC4 cipher suite(deprecated now) 2022-10-26 03:02:16 +00:00
Jash Gujarathi ee493e0b45 Merge branch 'bugfix/fix_sta_scan_when_already_connected' into 'master'
esp-wifi: Restores station status to connected when no other AP is found for roam

Closes WIFI-4785

See merge request espressif/esp-idf!20120

\[WiFi\]Fixed the bug that station connected to an AP already connected caused subsequent scan fail.
2022-09-20 20:59:44 +08:00
jgujarathi 9e44dde2cd esp_wifi : updated the wifi lib to fix the printf issue on esp32c2 2022-09-20 05:45:30 +00:00
jgujarathi b5b1a1f31d esp-wifi : Adds the status connected for station, when the station is already connected to the ap of the same bss- wifi-4785 2022-09-20 05:45:30 +00:00