Add support to dump the full management,eapol,
dhcp, arp frames based on the level of the
debug_packet_log configured through ini gEnableDebugLog.
The dump levels are as follows:
* 0x1 - Enable mgmt pkt logs (except probe req/rsp, beacons).
* 0x2 - Enable EAPOL pkt logs.
* 0x4 - Enable DHCP pkt logs.
* 0x8 - Enable mgmt action frames logs.
* 0x10 - Enable ARP pkt logs.
* 0x0 - Disable all the above connection related logs.
Change-Id: If572cccb327da785dd0d56cff6d37ba170b15cc8
CRs-Fixed: 3173604
Currently the dump for the wake event packet is DEBUG level.
Change it to INFO level to get this info on console.
CRs-Fixed: 3172546
Change-Id: If053a835ffab060d93e908177036c2e74b6d9234
320MHz bandwidth is supported only for single PHY mode. Therefore populate
320MHz support from HW_MODE_SINGLE mac_phy_caps_ext2 entry.
Change-Id: I298b13a82ca0532aa6da76d12edd12a57c74121a
CRs-Fixed: 3165631
Currently wmi_roam_event_id event handler only register under feature
WLAN_FEATURE_ROAM_OFFLOAD, but it's needed for LFR2 roaming too. So
refine roam event processing for LFR2/LFR3.
Change-Id: Ic07fd8a543142fc1e151f484979ab99ff55ce802
CRs-Fixed: 3161973
Max tx power limit is received as part of the
WMI_VDEV_START_RESP_EVENTID. Add debugs to print the
max_allowed_tx_power in host.
Change-Id: I4ca0d4a4a2a1e452b8a6a9f1c48ad52fcd2f6213
CRs-Fixed: 3167045
Here upper layer configures roam band via the SETROAMBAND
NCHO command. This means DUT should be restricted to roam
to the configured band only but as per current PCL filtration
logic, DUT is allowed to roam beyond the configured band AP
also. Roam Band definition is:
0: auto (all supported bands)
1: 2.4 only
2: 5 only
3: 2.4 + 5
4: 6 only
5: 2.4 + 6
6: 5 + 6
7: 2.4 + 5 + 6
Fix is to update the PCL filtration logic in wma_send_set_pcl_cmd
and make sure DUT doesn't roam beyond the configured band AP.
Change-Id: Ia2353e8ff982609a4ab5a35715886648f140cd22
CRs-Fixed: 3158456
The thread that triggers wifi logger data from the
framework will be blocked until firmware and host
driver flushes their logs. The thread acquires wdev
lock when it gets suspended.
As the thread gets blocked, any cfg80211 driver kernel
call from the host driver that needs wdev could lead
to assert. Therefore, reduce the timeout from 3seconds
to 500 milliseconds.
Change-Id: I41f664ea686fa7c46ec580b2b0216c66968a677a
CRs-Fixed: 3156050
Enable source port learning for SAP to add AST entry for the
remote stations with next hop. The SAP should use 4-address
frame format for the remote destinations.
Add support to handle data packets for WDS destination.
Change-Id: I6002e6dd9c9bb2c7b2e4f85bf06156dbb7feebee
CRs-Fixed: 2997812
It may cause out of bound access if length exceed
SIR_MAX_BEACON_SIZE.
Add length check to protect that.
Change-Id: I6581b62aa8b380a0f1195a16515ad635a9154023
CRs-Fixed: 3147267
Currently the beacon miss disconnection is sent when host
wlan driver triggers disconnect and roam result is printed
after the roam stats event is received. Since roam
stats event is received after host triggers disconnect,
the order of prints is BMISS_DISCONN -> ROAM SCAN ->
ROAM_SCAN_DONE-> ROAM_RESULT.
But the expected order is ROAM_SCAN->ROAM_SCAN_DONE->ROAM_RESULT
->BMISS_DISCONN.
So send beacon miss disconnection event after roam result.
Change-Id: Ib1695962bc1613fa4101cebf28b188db42fb5ab5
CRs-Fixed: 3152370
PASN peer create request event and deauth events need
host actions and notifying the userspace.
So register for PASN events to wake up host.
Change-Id: Ic83f10984d4e4d5ee0f1e8a5d7c4fbc321395a26
CRs-Fixed: 3150120
In wma_unified_set_sta_ps_param(), sending vdev param to
fw with out validate the vdev param, effects crash in fw
for the invalid vdev.
Add validate vdev param to send proper context data to fw.
Change-Id: I75206cff745a2774f30b36e8e6261cb452d749e8
CRs-Fixed: 3128593
Rename files with blacklist/whitelist to denylist/whitelist.
Rename files with blm to dlm.
Change-Id: Ief7ce0a797f74460c9708f8d2dd440412af5b7eb
CRs-Fixed: 3099864
On some platform, FW report NAN support capability always with the
share reason, but don't have to support NAN on some project so host
configure disable it.
We should check NAN reserve logic only when both fw/host enable it.
Change-Id: Ied9b6e292670b7d49ddcf691275410b95b7fd7bc
CRs-Fixed: 3142145
Add support for below SON peer ops:
PEER_SET_KICKOUT
PEER_SET_EXT_STATS
PEER_REQ_INST_STAT
PEER_GET_MAX_MCS
Change-Id: Iafadd17d6a13cfbba2884e50a0432c34115cd7f7
CRs-Fixed: 3141862
Replace blacklist/whitelist with denylist/allowlist in
qcacld3.0. and replace blm with dlm.
Change-Id: I9ba61dde3b3ea008ca3777448d1f8dab83d33ec1
CRs-Fixed: 3091211
The tx_stats array length num_entries can't be more than
param_buf->num_tx_stats from fw.
Otherwies out-of-bounds will happen when read wmi_tx_stats.
Change-Id: I7ab3c7cc7baef6d903ba6301622bd67efe52cebe
CRs-Fixed: 3104318
Since structure wmi_wlan_profile_t includes tlv header, it has
to consider the tlv header in each iteration.
CRs-Fixed: 3136374
Change-Id: I14a86ed14f616a5f1aaeabd25a81fa22d762ffe3
Print Hexdump of beacon filter ie instead
of printing every 32 bit IE in a loop.
Change-Id: I932944037759ab835e4dd0c0b6e71e49bf768da4
CRs-Fixed: 3134785
Update LFR2 self reassoc failure processing:
1. remove lim_send_switch_chnl_params() from
lim_restore_pre_reassoc_state() when self reassoc failure
to avoid this race condition: one one hand host let FW do
restart, and on the other hand VDEV sm transition to stop
state. Otherwise VDEV sm cannot handle EV_START_RESP event
correcly.
2. register .mlme_vdev_sta_disconn_start callback with
cleanupTrigger eLIM_HOST_DISASSOC.
3. when self reassoc fail, notify reassoc failure reason
to CM SM so that CM SM can trigger CM_DISCONNECT_REQ, then
invoke .mlme_vdev_sta_disconn_start doing cleanup action.
Change-Id: Icb68202e9f72fcbe3e0e4d3e9006a65a73123692
CRs-Fixed: 3109987
Decrease resource which were sent by WMI_INIT_CMD in ftm mode to
save FW memory. Otherwise, qca6490 will crash because of short
of resource in ftm mode.
Change-Id: Ic84e1076693130e9831ad0c08b813e6622f1f99d
CRs-Fixed: 3064388
During MLO roaming, non-assoc link is processed first.
Set the dp peer info flags:
- Non-assoc link: is_first_link = True and is_primary_link = False
- Assoc link: is_first_link = False and is_primary_link = True
For legacy to MLO roaming add checks for link vdev processing
during add sta resp and delete bss peer.
Change-Id: I602e4bc03c09b5d8dd35016448eabfaa3ff5acfa
CRs-Fixed: 3129304
optimize logs in one line for func sch_qos_update_broadcast and
wma_process_update_edca_param_req/wma_update_edca_params_for_ac,
to avoid printing in loop
Change-Id: I0feaa9822406a2610959bb8edbb1ce40b3a9cae8
CRs-Fixed: 3128531
Before MLO sta partner link is up, FW can't indicate CSA event to host.
For this case, host need save csa parameters and process it when MLO
sta partner link is up.
Change-Id: I543c5e1069af5b1e88c6619364a7a44330134d2c
CRs-Fixed: 3082437
mac pointer that is a result of func "cds_get_context"
that may return null.
Add null check for mac pointer while sending the connect rsp.
Change-Id: I51c021b99b2014fafc4c33519b0de6dbeffa0025
CRs-Fixed: 3120707
Currently, wma_add_sta status is not considered while voting for
link up in case of NDI. But if wma_add_sta fails to add a peer,
this link vote leads to stale link vote up.
Same is the case for wma_delete_sta and the return status is not
considered. This leads to a vote down of link for a non-existing
peer if peer is not present.
Below scenario leads to this situation,
1. Enable NAN and have an NDP connection between two devices.
2. Try to establish another NDP between the same devices but
don't respond for the request on the responder side.
3. NDP timeout happens in firmware and firmware sends an
NDP CONFIRM failure with timeout reason. This event carries
number of NDP-peers on the peer also and firmware sends
this as 0.
4. Driver removes the peer entry as firmware mentioned
no.of peers left as 0. It shall vote down the link also.
5. Firmware sends NDP_END for the first NDP connection and host
tries to delete the peer entry as part of this. But the peer
got deleted @step-4 already and wma_delete_sta returns a
failure now.
As the peer is not present, corresponding link vote-down also
should be skipped.
To avoid these, consider the return status of wma_add_sta for
link vote up and consider the return status of wma_delete_sta for
link vote down.
Change-Id: Iea40961366307f57b4f969245c0732d685d5e415
CRs-Fixed: 3108455
When WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE enabled and user space sets
mac address, host will detach vdev and attach again without setting
vdev tx data callback. Then host tx TDLS discovery request timeout
since lim_mgmt_tdls_tx_complete isn't called, finally TDLS link
establish failed. This change set vdev tx data callback after dp vdev
detach and attach done.
Change-Id: Iada58ba2df0612a92503ccfa5f246f7cca9db9ad
CRs-Fixed: 3112831
Intersecting EHT beamforming configuration from ini and FW
indication, then save it to eht caps of mlme.
For sta, update mlme EHT beamforming configuration to FW
through WMI_VDEV_PARAM_SET_EHT_MU_MODE directly.
For ap, intersecting mlme EHT beamforming configuration and user
configuration, then send result to FW.
Change-Id: I3d6185896af9fc58eb1fb6db913d4a425f72c696
CRs-Fixed: 3113235
CM, PE and WMA changes for mlo roaming
- Roam start and roam sync propogation updates.
- Handling connected link bitmap.
- Link specific assoc response generation
- WMA changes to handle add/remove peer
for mlo roaming scenarios.
Change-Id: I365a26ebb761d93dadd33c9fb8248c28e9eda94b
CRs-Fixed: 3033766
Update HW mode change tlv information to wma/policy mgr.
Losing the information will cause FW/host out of sync.
Change-Id: I1ba9931d10617664da653e85335fade1352c3600
CRs-Fixed: 3109789
Currently firmware is crashing due to levelconf structure received NULL
from host.
Hence initialize num_thermal_conf param to fill levelconf structure part of
WMI_THERM_THROT_SET_CONF_CMDID.
Change-Id: Ifcfb49253222fff6656327d9be3977a707c18af4
CRs-Fixed: 3064400
For send_ll_stats_req from upper layer, need send 1 wmi cmd:
WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID, and need 4 events from F/W
for dbs platform:
1. radio_stats_event for radio 0
2. tx_power_level_stats_event for radio 0
3. radio_stats_event for radio 1
4. tx_power_level_stats_event for radio 1.
If new ll_stats_req comes before last send_ll_stats_req finished,
link_stats_results memory wil be freed, left event can't be handled and
last send_ll_stats_req can't get response from low level and time out
after 1.6s, netlink is blocked during 1.6s, many app will be blocked.
To fix it, if new ll_stats_req comes before last send_ll_stats_req
finished, don't free link_stats_results memory.
Change-Id: I27453d8a3c72e62b030657323ecdf463114b4ac8
CRs-Fixed: 3106562
For QCA6390, firmware not advertise service capability for
tx aggr size 256 support information. Actually it supports
max tx aggr size 256. If user want to use aggr size 256 from
ini file , current behavior will reset the size 64 for QCA6390.
Fix this issue to adopt size from ini file configuration.
Change-Id: Icaed9af65d70e3d14ac604636c4269bd00a8c801
CRs-Fixed: 3089384
In function wma_data_tx_ack_comp_hdlr, wma_handle, which is already
validated by wma_validate_handle, is NULL checked again after
dereferencing. The fix is to remove the irrelevant NULL check.
Change-Id: I9eebdb398e61d2991d0ff8e23cd08870d57707e5
CRs-Fixed: 3096718
Delete the BSS peer if failure happens before STA "Join"
and wait for peer delete event.
After peer delete event is received, send lim_cm_send_connect_rsp
to CM to continue the next candidate try.
This is to avoid previous bss peer deleting pending and send
new bss peer create wmi command to target, which is unexpected
by target.
Change-Id: I5da969546994d9a6fe3cd5053f468fb59ba13e18
CRs-Fixed: 3100305
Currently, MAC address update is supported only when interface is down.
Because of this framework needs to issue interface down and interface
up to update the MAC address. Interface down and up will lead to VDEV
delete and VDEV create commands to the FW.
To optimize Host-FW interactions during set MAC address, add support
to update the MAC address without bringing the interface to down state.
Change-Id: I76afa8f8c2504e8271bf689392d526f994afff0a
CRs-Fixed: 3063201
Add support for QCA_WLAN_TWT_SET_PARAM command to configure
QCA_WLAN_VENDOR_ATTR_TWT_SET_PARAM_AP_AC_VALUE attribute.
This attribute provides access category value for
WMI_PDEV_PARAM_TWT_AC_CONFIG. This is used by firmware to
configure access category for TWT HW queue in TWT Responder
mode(SAP).
Change-Id: I06a14d099c516767fe57ba94acc2a5fb95dc4e17
CRs-Fixed: 3052909
After roaming, old peer is deleted and new peer is created,
rx tid queue of new peer need set up again.
In dp_rx_tid_setup_wifi3, if CM is in ROAMING state,
dp_peer_rx_reorder_queue_setup isn't called, REO queue descriptor
isn't configured correctly by host for FW to do reorder/pn check.
To fix it, in dp_rx_tid_setup_wifi3, if CM is in ROAMING state
and not ROAM_START substate, but ROAM SYNC state after roam sync
event received, dp_peer_rx_reorder_queue_setup still can be called,
rx tid queue of new peer will be set up.
Change-Id: I34fbb60ad509a0bc70e112c7ec53a862c8f9ce2d
CRs-Fixed: 3090061
Currently if disable NAN support in host and fw, max vdev will still
decrease 1, which make it unable to support 4 SAP currency case.
Fix it by checking WMI_SERVICE_NAN capability, if don't have to support
NAN feature, skip reserve vdev for NAN in host.
Change-Id: I771a8678d285cbbfc2f92598ac63a27a989ac5a0
CRs-Fixed: 3091454
In cdp_peer_setup_info "is_assoc_link" flag is changed to
"is_first_link" flag to avoid confusion caused by naming.
is_first_link flag means the first link in the ML connection
trying to setup DP ML peer, it can be assoc or non-assoc link.
Change-Id: I2643866dfd465025d98cef14d06e44276799098d
CRs-Fixed: 3092858
Currently, the host does not check STA+STA concurrency
before sending VDEV/PDEV level PCL command to FW.
1. In case of STA Standalone connection, Host should send
PDEV level PCL commands to FW and marks all channels in PCL
as allowed.
2. In the case of STA + STA connection in MCC/SCC, Host
should send PDEV level PCL command for primary vdev id and
mark all channels in PCL as allowed.
3. In case of STA + STA connection in DBS, Host should
send VDEV level PCL command for both vdev id and via PCL
list host should make sure band is restricted to maintain
only DBS.
4. Initially STA + STA connection in DBS and then one STA
got disconnected. In this case, After disconnection Host
should send PDEV level PCL command for connected vdev id
and mark all channels in PCL as allowed.
Change-Id: I59cf5dfd1bf8fb26e360a8b0b5456fe05037376a
CRs-Fixed: 3084156
It is possible tx_time_per_power_level is not freed
in last event, and it is reused in
__wma_unified_radio_tx_power_level_stats_event_handler,
the buffer size may be different for each event by
manually test.
Fix is to check if memory is freed before malloc, if
not null, free it before malloc.
Change-Id: I51064734cf97b9ff0ecbbaf27f38d5a223c91d3b
CRs-Fixed: 3057436
Currently there is no provision to get the calibration failure
information from the driver. Because of this it is getting difficult
to debug the calibration failure issues.
To simplify the calibration failure issue debugging, add support to
parse calibration failures events in the driver.
Change-Id: I6d831804cca259862fea3e8bb4af33d556138d43
CRs-Fixed: 3078926