reason1
kernel log 在16:39:14.619 开始 Auth TX: success, 完成四次握手,连接成功后,在16:39:25.983 wlan: [1507:I:HDD] Disconnect reason: 1 WLAN_REASON_UNSPECIFIED vendor: 0 LG: 1,
现有log分析不了,本地尝试复现未复现到这个现场,大概率是环境因素导致的,麻烦用相同环境复现下并特别抓下cnss log分析,抓取cnss log步骤如下:
- 正常环境 +adb环境准备
- 执行抓取cnss log命令:adb root ; adb shell cnss_diag -f -c > cnss.txt
- 正常测试直到复现
- 停止步骤2 得到cnss log.
reason2
从 kernel log kernel_log_20240612093920 中看到,06-12 09:45:25 这次联接失败,是由于在第二次握手时,车机成功发送了EAPOL-2 帧给AP后,收到了AP 取消车机认证的帧 (Deauth RX)(正常时,此时AP 应回复 EAPOL-3 帧)。取消认证的原因 reason 是2 (REASON_PREV_AUTH_NOT_VALID: Previous authentication no longer valid),也把 reason 2 上报给了IVI 层。
06-12 09:42:29.048 0 0 I [schedu][0x108bb1d7782][09:45:20.977481] wlan: [15446:I:OSIF] wlan0(vdevid-0): ba:9f:f1:f9:ec:25 Connect with 46:1a:57:53:41:2d SSID "dxl" is SUCCESS cm_id 0xc00001 cm_reason 0 status_code 0 is_reassoc 0
06-12 09:42:29.059 0 0 I [dp_rx_][0x108bb208039][09:45:20.987837] wlan: [15458:I:QDF] EAPOL-1 RX: SA:46:1a:57:53:41:2d DA:ba:9f:f1:f9:ec:25
06-12 09:42:29.105 0 0 I [soft_i][0x108bb2e2e81][09:45:21.034534] wlan: [0:I:QDF] EAPOL-2 TX: SA:ba:9f:f1:f9:ec:25 DA:46:1a:57:53:41:2d msdu_id:0 status: succ
06-12 09:42:33.208 0 0 I [schedu][0x108bfe0202c][09:45:25.137170] wlan: [15446:I:PE] Deauth RX: vdev 0 from 46:1a:57:53:41:2d for ba:9f:f1:f9:ec:25 RSSI = -43 reason 2 mlm state = 14, sme state = 10 systemrole = 2
06-12 09:42:33.239 0 0 I [schedu][0x108bfe94676][09:45:25.168400] wlan: [15446:I:OSIF] wlan0(vdevid-0): ba:9f:f1:f9:ec:25 disconnect 46:1a:57:53:41:2d cm_id 0xd00002 source 5 reason:2 REASON_PREV_AUTH_NOT_VALID vendor:0
所以从wifi driver 分析,联接失败是由于对手件AP 给车机发送了取消认证帧,不是车机的问题。
driver 把联接失败的原因 reason 2 (REASON_PREV_AUTH_NOT_VALID: Previous authentication no longer valid),也发送给了IVI 层。
reason3
//取消关联的请求相关打印
08-22 09:41:27.616 0 0 W [schedu][6007847973][09:41:27.595752] wlan: [1201:W:PE] lim_process_mlm_disassoc_req_ntf: 1007: Invalid MLM_DISASSOC_REQ, Addr= 14:2d:4d:16:3a:5f
//底层收到上层的断连
08-22 09:41:27.616 0 0 I [schedu][6007850197][09:41:27.595868] wlan: [1201:I:HDD] SAP disassociated 14:2d:4d:16:3a:5f
//车机正常确认 手机 是否已经离线(无应答)
08-22 09:41:27.694 0 0 I [schedu][6009352825][09:41:27.674130] wlan: [1201:I:PE] Disassoc TX: vdev 2 seq 2460 reason 3 and waitForAck 1 to 14:2d:4d:16:3a:5f From 06:7f:0e:af:b4:d1
//车机断开了连接
08-22 09:41:27.711 0 0 I [schedu][6009671338][09:41:27.690719] wlan: [1201:I:HDD] SAP disassociated 14:2d:4d:16:3a:5f
分析过程:由时间点发生的断连,分析为手机发起的断连,断连请求来自于上层且底层确认过手机是否离线。
reason 3(#define WLAN_REASON_DEAUTH_LEAVING 3)释义:Deauthenticated because sending STA is leaving (or has left) IBSS or ESS
reason4
分析过程:
中途出现的断连原因报错:lim_ps_offload_handle_missed_beacon_ind: 1778: Received Heart Beat Failure。固件没有检测到热点的活跃状态。
断连原因:Deauth TX: vdev 0 seq_num 2940 reason 4 waitForAck 0 to 92:b1:df:95:d5:1f from 04:7f:0e:2b:56:8f(#define WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY 4)
其中连接过程中多次出现 status:nack(* @QDF_TX_RX_STATUS_NO_ACK: packet sent but no ack),说明此热点环境存在问题,时常出现不活跃情况。
reason5
分析过程:
05-30 07:58:57.476 0 0 I [schedu][15566432877][07:59:00.256007] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -39 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 07:59:12.402 0 0 I [schedu][15852995868][07:59:15.181162] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -33 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 07:59:36.078 0 0 I [schedu][16307581662][07:59:38.857506] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -38 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 07:59:59.772 0 0 I [schedu][16762500328][08:00:02.551186] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -35 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 08:00:09.293 0 0 I [schedu][16945304170][08:00:12.072220] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -33 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 08:00:40.086 0 0 I [schedu][17536530506][08:00:42.865258] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -32 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 08:00:48.846 0 0 I [schedu][17704719548][08:00:51.625104] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -36 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 08:01:31.866 0 0 I [schedu][18530710502][08:01:34.645466] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -37 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 08:07:53.426 0 0 I [schedu][25856658829][08:07:56.205275] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -49 reason 5 mlm state = 14, sme state = 10 systemrole = 3
05-30 08:22:01.162 0 0 I [schedu][42133200408][08:22:03.941815] wlan: [1213:I:PE] Disassoc RX: vdev 0 from ca:1f:da:1e:84:65 for f8:6b:14:77:04:32 RSSI = -28 reason 5 mlm state = 14, sme state = 10 systemrole = 3
分析结论:
查看源码:
REASON_DISASSOC_AP_BUSY = 5, REASON_DISASSOC_AP_BUSY: Disassociated because AP is unable to handle all currently associated STAs
由注释可知:当客户端设备试图与接入点建立或维持连接时,接入点可能会因为某些原因而无法处理客户端的请求,例如接入点已经达到了其最大连接数、正在处理其他重要任务或者受到了网络拥塞等。
在这种情况下,接入点会向客户端发送一个断开连接的消息,使用断开连接原因代码 REASON_DISASSOC_AP_BUSY 来指示客户端连接无法继续,因为接入点当前正忙于处理其他任务或请求。
问题在复现的时间段,对端 AP 无法处理HUT发出的连接请求,非 HUT 侧问题。