fix(wifi): Fix wrong wifi reason codes reported on station and softAP

- Fix wrong reason code reported when softAP issues a disconnect for station
- Fix wrong reason code reported when association timeout happens at station
- Deprecate enums WIFI_REASON_ASSOC_EXPIRE, WIFI_REASON_NOT_AUTHED, WIFI_REASON_NOT_ASSOCED
  and use WIFI_REASON_DISASSOC_DUE_TO_INACTIVITY,
  WIFI_REASON_CLASS2_FRAME_FROM_NONAUTH_STA,
  WIFI_REASON_CLASS3_FRAME_FROM_NONASSOC_STA respectively
- Update wifi documentation related to reason codes
This commit is contained in:
Sarvesh Bodakhe 2024-08-30 13:19:10 +05:30
parent eeaf6714a5
commit 8058b97326
4 changed files with 19 additions and 20 deletions

View File

@ -69,10 +69,13 @@ typedef enum {
WIFI_REASON_UNSPECIFIED = 1,
WIFI_REASON_AUTH_EXPIRE = 2,
WIFI_REASON_AUTH_LEAVE = 3,
WIFI_REASON_ASSOC_EXPIRE = 4,
WIFI_REASON_ASSOC_EXPIRE = 4, /* Deprecated, will be removed in next IDF major release */
WIFI_REASON_DISASSOC_DUE_TO_INACTIVITY = 4,
WIFI_REASON_ASSOC_TOOMANY = 5,
WIFI_REASON_NOT_AUTHED = 6,
WIFI_REASON_NOT_ASSOCED = 7,
WIFI_REASON_NOT_AUTHED = 6, /* Deprecated, will be removed in next IDF major release */
WIFI_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6,
WIFI_REASON_NOT_ASSOCED = 7, /* Deprecated, will be removed in next IDF major release */
WIFI_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7,
WIFI_REASON_ASSOC_LEAVE = 8,
WIFI_REASON_ASSOC_NOT_AUTHED = 9,
WIFI_REASON_DISASSOC_PWRCAP_BAD = 10,

View File

@ -250,8 +250,8 @@ static void wpa_sta_disconnected_cb(uint8_t reason_code)
{
switch (reason_code) {
case WIFI_REASON_AUTH_EXPIRE:
case WIFI_REASON_NOT_AUTHED:
case WIFI_REASON_NOT_ASSOCED:
case WIFI_REASON_CLASS2_FRAME_FROM_NONAUTH_STA:
case WIFI_REASON_CLASS3_FRAME_FROM_NONASSOC_STA:
case WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT:
case WIFI_REASON_INVALID_PMKID:
case WIFI_REASON_AUTH_FAIL:

View File

@ -756,7 +756,7 @@ Association Phase
+++++++++++++++++++++
- s3.1: The association request is sent and the association timer is enabled.
- s3.2: If the association response is not received before the association timer times out, `WIFI_EVENT_STA_DISCONNECTED`_ will arise and the reason code will be WIFI_REASON_ASSOC_EXPIRE. Refer to `Wi-Fi Reason Code`_.
- s3.2: If the association response is not received before the association timer times out, `WIFI_EVENT_STA_DISCONNECTED`_ will arise and the reason code will be WIFI_REASON_DISASSOC_DUE_TO_INACTIVITY. Refer to `Wi-Fi Reason Code`_.
- s3.3: The association response is received and the association timer is stopped.
- s3.4: The AP rejects the association in the response and `WIFI_EVENT_STA_DISCONNECTED`_ arises, while the reason code is the one specified in the association response. Refer to `Wi-Fi Reason Code`_.
@ -813,20 +813,16 @@ The table below shows the reason-code defined in {IDF_TARGET_NAME}. The first co
For the ESP station, this reason is reported when:
- it is received from the AP.
* - ASSOC_EXPIRE
* - DISASSOC_DUE_TO_INACTIVITY
- 4
- 4
- Disassociated due to inactivity.
For the ESP station, this reason is reported when:
- assoc is timed out.
- it is received from the AP.
For the ESP AP, this reason is reported when:
- the AP has not received any packets from the station in the past five minutes.
- the AP is stopped by calling :cpp:func:`esp_wifi_stop()`.
- the station is de-authed by calling :cpp:func:`esp_wifi_deauth_sta()`.
* - ASSOC_TOOMANY
- 5
- 5
@ -839,7 +835,7 @@ The table below shows the reason-code defined in {IDF_TARGET_NAME}. The first co
For the ESP AP, this reason is reported when:
- the stations associated with the AP reach the maximum number that the AP can support.
* - NOT_AUTHED
* - CLASS2_FRAME_FROM_NONAUTH_STA
- 6
- 6
- Class-2 frame received from a non-authenticated STA.
@ -851,7 +847,7 @@ The table below shows the reason-code defined in {IDF_TARGET_NAME}. The first co
For the ESP AP, this reason is reported when:
- the AP receives a packet with data from a non-authenticated station.
* - NOT_ASSOCED
* - CLASS3_FRAME_FROM_NONASSOC_STA
- 7
- 7
- Class-3 frame received from a non-associated STA.
@ -1116,7 +1112,7 @@ The table below shows the reason-code defined in {IDF_TARGET_NAME}. The first co
* - ASSOC_FAIL
- 203
- reserved
- Espressif-specific Wi-Fi reason code: the association fails, but not because of ASSOC_EXPIRE or ASSOC_TOOMANY.
- Espressif-specific Wi-Fi reason code: the association fails, but not because of DISASSOC_DUE_TO_INACTIVITY or ASSOC_TOOMANY.
* - HANDSHAKE_TIMEOUT
- 204
- reserved

View File

@ -756,7 +756,7 @@ Wi-Fi 驱动程序内部扫描阶段
+++++++++++++++++++++
- s3.1:发送关联请求并使能关联计时器。
- s3.2:如果在关联计时器超时之前未接收到关联响应,将产生 `WIFI_EVENT_STA_DISCONNECTED`_ 事件,且原因代码为 WIFI_REASON_ASSOC_EXPIRE。请参阅 `Wi-Fi 原因代码`_
- s3.2:如果在关联计时器超时之前未接收到关联响应,将产生 `WIFI_EVENT_STA_DISCONNECTED`_ 事件,且原因代码为 WIFI_REASON_DISASSOC_DUE_TO_INACTIVITY。请参阅 `Wi-Fi 原因代码`_
- s3.3:接收到关联响应,且关联计时器终止。
- s3.4AP 在响应中拒绝关联且产生 `WIFI_EVENT_STA_DISCONNECTED`_ 事件,原因代码将在关联响应中指定。请参阅 `Wi-Fi 原因代码`_
@ -813,7 +813,7 @@ Wi-Fi 原因代码
对于 ESP station出现以下情况时报告该代码
- 从 AP 接收到该代码。
* - ASSOC_EXPIRE
* - DISASSOC_DUE_TO_INACTIVITY
- 4
- 4
- 因为 AP 不活跃association 取消。
@ -839,7 +839,7 @@ Wi-Fi 原因代码
对于 ESP AP出现以下情况时将报告该代码
- 与 AP 相关联的 station 数量已到达 AP 可支持的最大值。
* - NOT_AUTHED
* - CLASS2_FRAME_FROM_NONAUTH_STA
- 6
- 6
- 从一个未认证 station 接收到 class-2 frame。
@ -851,7 +851,7 @@ Wi-Fi 原因代码
对于 ESP AP出现以下情况时将报告该代码
- AP 从一个未认证 station 接收到数据包。
* - NOT_ASSOCED
* - CLASS3_FRAME_FROM_NONASSOC_STA
- 7
- 7
- 从一个未关联 station 接收到的 class-3 frame。
@ -1116,7 +1116,7 @@ Wi-Fi 原因代码
* - ASSOC_FAIL
- 203
- 保留
- 乐鑫特有的 Wi-Fi 原因代码: association 失败,但并非由 ASSOC_EXPIRE 或 ASSOC_TOOMANY 引发。
- 乐鑫特有的 Wi-Fi 原因代码: association 失败,但并非由 DISASSOC_DUE_TO_INACTIVITY 或 ASSOC_TOOMANY 引发。
* - HANDSHAKE_TIMEOUT
- 204
- 保留