Add check's in following cases if STA does
not support T2LM negotiation.
1. Do not send T2LM wmi when T2LM IE is present in
beacon or probe response or assoc response.
2. Skip T2LM candidate validation during connection.
3. Drop T2LM action request frame.
CRs-Fixed: 3610173
Change-Id: I9d45bd005675250f6739ce897ab5b482f27f1417
Add ucfg wrapper API over the existing MLD ID get/set APIs
that will be invoked in HDD/OSIF.
Change-Id: I07d2e661c7e8129e54a0449f958749648c25e4ac
CRs-Fixed: 3621169
Current SAP is unable to bringup 2 vdevs and connect 2-link MLO.
To unblock validation we simulate 2link connection on SAP.
Changes are as Follows:
- Add MLD caps to Beacon Frame
- Add RNR IE to Beacon/Probe Rsp Frame
- Add Per-Sta Profile to Probe Rsp Frame
- Add Per-Sta Profile to Assoc Rsp Frame
Change-Id: Ice2d3557e00426ead044ec6b4b507746db4148d4
CRs-Fixed: 3591637
Currently for rx packet delivery whether it is from monitor mode or
local packet capture path, is handled in NAPI softirq context and
netif_receive_skb() is called without disabling local bh.
In case of local packet capture, for tx packets after the tx_mon tlvs are
parsed, ppdu queue is handled in workqueue context and nbuf is passed
up the stack in rx_mon callback. Because the nbuf push type NAPI is used
this is causing 'BUG: using __this_cpu_add() in preemptible' for
nbuf coming from tx_mon workqueue context.
Fix is to identify the appropriate nbuf push type based on the context.
if caller is from softirq context then use DP_NBUF_PUSH_NAPI or
if caller is from non irq context use DP_NBUF_PUSH_BH_DISABLE.
Change-Id: I71b3be70febed1c077e7d4d36274a4805a33b722
CRs-Fixed: 3631536
When FW includes new eMLSR hardware modes in
service ready indication host should be able to
store and update capability information.
Add support in policy manager to handle new HW modes
for eMLSR.
CRs-Fixed: 3618543
Change-Id: I575b93c85940e4d6469fbd038ce90123750729ff
In case of NAN, if the tput levels are between mid to high range then
apply next SNOC voting level.
Change-Id: Ifb77c8f627b5fc565767aac4baa3629b12a37582
CRs-Fixed: 3611715
When there are more than one audio transport mediums
are available, there is a possibility to switch the
audio transport medium from one medium to another
medium.
To provide this support to switch the audio transport
medium, add a bearer switch state machine in host driver.
Change-Id: Ic57c11d2cff72cfa00ce7bc438998c501ce97d33
CRs-Fixed: 3626949
When host handles hw_mode, host rejects NAN if CAC is in progress
as NAN always expect hw_mode DBS and set_hw_mode can't be done
while DFS CAC is going on.
But in hw_mode offloaded solutions, host doesn't have control
on set_hw_mode. Host can expect firmware to take care of
NAN+CAC scenario but that causes some out of sync issues.
So, reject NAN if DFS CAC is running. Framework/application
may retry later.
Change-Id: Icf4367c9185511e732379df2a32bf7889b9b101b
CRs-Fixed: 3614017
Add support for INI twt_disable_info to disable FW initiated
information frame for TWT
Change-Id: I06fe9be364d9def0ccfffc196ae31dcc2ab9a500
CRs-Fixed: 3621241
Currently, before ML probe rsp in cm_get_ml_partner_info()
API, driver tries to get the partner link scan entry
and validate below cases:
1. Whether partner link scan_entry is found or not.
2. And based on the security, reject the particular partner
link.
But in the ML connection, during scan, driver may not receive
the beacon/probe response frame for the partner link. But
later, will generate it from ML probe response.
Due to scan_entry not found, driver may connect with only
1 or 2 link connection.
To fix it, driver should check the partner link security
only after getting the complete partner link info in ML
probe response frame and added in the scan db.
CRs-Fixed: 3615946
Change-Id: Icb7f4e9e41d0da4a34799f535a2a0a1fe3b99f58
When there are more than one audio transport mediums
are available, there is a possibility to switch the
audio transport medium from one medium to another
medium.
To provide this support to switch the audio transport
medium, add a bearer switch infra in host driver.
Change-Id: I9d828d52a2c03e8e4e2c0a284ff0dd7510798dbe
CRs-Fixed: 3609864
Optimize policy manager logging to handle hw mode change event
and freq dump for all mode.
Remove freq dump for all mode as its fixed and decided during
init. Also remove the hw mode offload logs as its also hw specific
and can be easily known other ways.
Change-Id: Ib4f2dceb56d5a82aa3e6c42d0e7b56768abc270b
CRs-Fixed: 3626728
Incase of MLME component failure post vdev create the vdev_id
is freed up without sending the vdev delete to the firmware,
in this specific case of the issue post vdev create to firmware
a dp vdev attach failed because of memory allocation failure.
Send vdev delete to firmware incase of mlme component failure
post vdev create.
Change-Id: Ib5bf2a2a7f77a44a80b76bd7a243f2c286a19f8b
CRs-Fixed: 3623511
For MLO connection, when disconnect is started as part of
link switch, host will send RSO STOP to FW.
Post disconnect complete host tries to enable RSO again on
the other connected STA. This is protected by link switch in
progress check to avoid sending RSO start on link vdev during
link switch. But when NB or SB disconnect is queued during link
switch, then link switch in progress flag is reset and RSO start
might go on the assoc vdev.
Do not enable RSO if disconnect is ongoing on same MLD.
Also while processing RSO stop response fw might send RSO stop
response on link vdev. Add handling to process RSO stop response
on other vdev belonging to same MLD
During roam sync if assoc rsp is received from unexpected peer
then abort roaming and send rso stop to FW,HO fail will clean
host CM state machine.
Change-Id: Ibd1f424c3dea80e50e70ebdf112ee2cf44868ebe
CRs-Fixed: 3626015
In case of wide band scan, FW sends cca_busy_subband_info
tlvs via WMI_CHAN_INFO_EVENTID, which contains value of
rx_clear_count for each 20 MHz freq space.
Fix is to updates rx_clear_count per channel to cp stats
component.
Change-Id: Iff26087da4ffa3e1147c5ffe4127e5aa078f406f
CRs-Fixed: 3626725
Currently, host driver sends ARP pattern to FW for wow mode for
STA interface only. Thus, in case of SAP interface, firmware drops
ARP packets during wow mode as driver does not sent the ARP
response for SAP for wow mode.
So, to fix this, send ARP pattern for wow for SAP interface also.
Change-Id: I8efd895a1c03900245048b2da2a8012ec36dbf71
CRs-Fixed: 3626249
In API wlan_connectivity_mld_link_status_event(), link id
bitmap is passed to userspace instead of band bitmap.
Introduce wlan_convert_link_id_to_diag_band() to convert
link id bitmap to band bitmap which is required by userspace
Change-Id: Idf398d5d326aecc4db03ec70cab0e20f18dfbd3b
CRs-Fixed: 3624522
Reset HDD sta_ctx link info parameters after roaming to
reset the values in case of roaming from 3/2 link AP
to 1 link ML AP
Change-Id: I5e8165e50b92eed476d16696c14d4db82192c4ed
CRs-Fixed: 3627330
As ETSI18 and ETSI20 also added to check SRD channels.
Rename the api of ETSI13 with ETSI.
Change-Id: Ib04e809ba53a55101a6254e0c1ef9f9b37b93fb8
CRs-Fixed: 3616398
TDLS for MLO, it forces link active when sending TDLS discovery
Request, it needs to unforce the link when:
There is no discovery response on that link; or
The remain links except the link which is TDLS link; or
The link for TDLS but no more TDLS connection.
CRs-Fixed: 3623332
Change-Id: Ie9fb0d210952531744bba397c1a34f4d8f1f14fb
Currently, it uses timer count to check whether the expected TDLS
discovery response frames received or not. But sometimes, the
discovery response frame comes back before the timer count increased.
The frame pattern like this:
Send tdls discovery request on link0
Receive tdls discovery request on link0
Send tlds discovery request on link1
Receive tdls discovery request on link1
In this scenario, driver forwards two different discovery responses
frame to supplicant and causes supplicant confusion.
To resolve this issue, check whether the expected discovery response
frames received or not. If not, let the timer to monitor the situation
instead of stop the timer and forward current discovery response
frame to supplicant.
CRs-Fixed: 3624866
Change-Id: I47ee729ed4c426eda232c704fc99f681b9db2fa4
Add NULL check for rso_usr_cfg pointer to avoid NULL pointer
deference in function cm_update_advance_roam_scan_filter().
Change-Id: Ic7d0277705bafd551a8ee9f6cac7c479c71d187e
CRs-Fixed: 3626780
Currently, Host driver validates the frequency for channel
switch announcement, including checks for DFS, indoor channels
and SAP count.
This change is to remove these checks, allowing the host driver
to honor CSA requests from the AP and switch to the specified
channel for STA.
Once the STA moves, SAP will move to the STA channel and if not
allowed due to DFS/unsafe/indoor rules it will move to 2 GHz band
CRs-Fixed: 3620214
Change-Id: Ib6dfb8ffe798fefe576edc0e0db4f50912604c3c
In T2LM status event currently band info is not populating
for the stand by vdev
Update band info for stand by vdev also
Change-Id: If7413158a1e3edf170ae04791d377a4ad6008544
CRs-Fixed: 3624562
In api cm_roam_scan_info_event(), fw_timestamp value
is fetched from wmi_roam_trigger_reason->timestamp
which results in same value as in roam trigger event.
Modified the api cm_roam_scan_info_event() to fetch
fw_timestamp value from
wmi_roam_scan_info->scan_complete_timestamp to send
proper roam scan done event fw_timestamp to userspace
to log.
Change-Id: Idb1bcfad223b20a57b47d6e0040305000f6165ea
CRs-Fixed: 3624454
Currently, policy_mgr_is_sta_sap_scc is validated before updating
DFS frequencies in PCL list.
policy_mgr_is_sta_sap_scc returns false in case of standlone GO
or GO + GO due to which DFS frequencies are not updated in PCL
list and GO is not allowed to come up on DFS channel.
To allow standlone GO on DFS channel don't add DFS frequencies
based on policy_mgr_is_sta_sap_scc. add DFS frequencies based on
allow_go_scc_on_dfs_chn.
Change-Id: I8065e533b73b349ec4f3943ba0ffb2e108283298
CRs-Fixed: 3624038
Add NULL check for psoc_priv pointer to avoid NULL pointer deference
in function pre_cac_handle_radar_ind() and pre_cac_handle_cac_end().
Change-Id: I07d0b98edb8e96d7803444bfd394d055a8b8d156
CRs-Fixed: 3625352
SAP is allowed to come up in STA channel post STA connection in
Non-PSC channel in 6 GHz.
This change is to move SAP into 2.4 GHz if SAP is in non-VLP mode and
STA channel falls into Non-PSC channel.
Change-Id: I37d9a510db3647fc07858af99eb614ebe824cc79
CRs-Fixed: 3596089
The connect request for link vdev is not generated properly from
roaming module for OWE roaming. The assoc IE pointer in connect
request is not allocated, but copied for assoc_req_len. This
causes buffer overflow and some security parameters are
overwritten with wrong values. This results in security
validation failure and ultimately disconnection happens.
Allocate memory for assoc_ie ptr before copying the assoc ie
from rso_cfg.
Change-Id: I7a05d61011f6ac39e7107c4d2270aa3025d79142
CRs-Fixed: 3619743
Currently if ll_lt_sap needs restart, host driver selects
best bw for the restart channel, since ll_lt_sap always
needs to operate on 20 MHz bandwidth, host driver needs
to keep the bw as 20 MHz always when it selects the restart
channel.
In current scenario, ll_lt_sap is up and country change
happens, current operating channel of ll_lt_sap is invalid
according to new country regulatory which leads to restart
of the ll_lt_sap and during restart, ll_lt_sap is changing
the bw to 40 MHz.
To address above issue, add logic to keep the same bandwidth
for ll_lt_sap restart.
Along with the above change, below mentioned changes are
also taken care as part of this fix:
1. Filter 2.4 GHz channels when policy manager modifies
channel list for ll_lt_sap as there is a possibility
that this API gets invoked from different path other than
get_pcl, in current scenario this gets invoked when host
driver tries to get the restart channel and in that case
policy_mgr_pcl_modofication_for_ll_lt_sap gets invoked
with the policy_mgr psoc list which contains 2.4 GHz channels
as well.
2. Return current SAP frequency from wlansap_get_chan_band_restrict
API if SAP need not restart and add a check in the caller API
to not restart the SAP if the restart freq is same as the current
frequency. currently wlansap_get_chan_band_restrict API returns
0 if SAP need not restart or if it does not find any valid frequency.
If this API does not find any valid frequency for SAP restart and
if current SAP frequency is invalid (for ex: if country changes)
then this API returns 0 and the caller does not restart the SAP,
which results for the SAP to operate on invalid frequency.
With this change wlansap_get_chan_band_restrict API returns different
values if SAP need not restart and if SAP needs to restart and there
is no valid frequency.
Change-Id: I90378623265a9f5879e82cecb7c1cfcb9adc7a27
CRs-Fixed: 3617465
If SAP is started on 5 GHz/6 GHz frequency. Concurrent STA
connects on a different non-dfs, non-indoor 5 GHz frequency. SAP
is moved to STA frequency. And if STA disconnection happens
SAP moves to user configured frequency, even if SAP was
previously on same band as the user configured frequency.
Don't move SAP to user configured 5 /6 GHz frequency if SAP is
already on another 5 /6 GHz non-indoor, non-dfs frequency.
Change-Id: Ibb035f3c490d965f70ddead69c9657a94628a122
CRs-Fixed: 3531141
ML STA 2.4 GHz +6 GHz and SAP on 2.4 GHz, start GO failed
because sta_sap_scc_on_dfs_chnl is 0 and driver reject the
GO start.
Fix by allow such combination for sta_sap_scc_on_dfs_chnl = 0
or sta_sap_scc_on_lte_coex_chnl = 0 per requirement.
Change-Id: I5344fee1bf790f1528d46b14c802985aa4987ac3
CRs-Fixed: 3623408
whenever the STA is roaming to the same AP and there is a
HO failure, that AP is getting to the avoid list, resulting in
subsequent connections failing to the same AP
Do not add the AP to avoid list if the HO failure is to the same AP.
Change-Id: I7e375c8dab3e0f22eaf99a1d9117c719c14caba3
CRs-Fixed: 3620443
The host driver now sends a notification to the
firmware when a CSA (Channel Switch Announcement)
is rejected due to no change in channel, bandwidth,
or puncture.
Change-Id: I5d8a424459898d15a7931baf7ca4c3de8308c64e
CRs-Fixed: 3595843
As part of new requirement for coex logging, add new sys node to
send the coex logging configuration command to firmware.
Change-Id: I9d5a42d382cd14e4520eb16a924bdc32d160ef05
CRs-Fixed: 3613443
Upon an update of the policy_mgr connection table, added logics
to get max bandwidth among all the available connections. The
max bandwidth is passed to HDD IPA component via policy_mgr DP
callbacks, which in turn is used to decide proper IPA perf levels.
Change-Id: I20b3e01b433db566bec2a315a76f3015869fc176
CRs-Fixed: 3609165
MLO parameter is not observed in association/reassociation
request/response logs when connected to MLO AP.
Call api wlan_populate_mlo_mgmt_event_param() in the
api cm_roam_mgmt_frame_event() in order to populate
MLO parameter in MGMT frame logs after roaming.
Change-Id: I9dbd1a224ec861964a78883088440d79ae80cdd6
CRs-Fixed: 3620741
Currently, host driver uses CM_ROAMING_HOST for ROAM_INVOKE for
both host initiated(e.g. connect on connect, qos,..) and user
initiated requests(e.g. REASSOC ioctl).
The expectations are different for these cases upon ROAM_INVOKE
failure as explained below,
1. connect-on-connect/FASTREASSOC case: Expectation upon
ROAM_INVOKE failure is to disconnect from current AP as this
status needs to be sent to kernel.
2. REASSOC ioctl: Expectation upon ROAM_INVOKE failure is to stay
connected to the current AP.
So, define a new source CM_ROAMING_USER for REASSOC and use it to
differentiate from CM_ROAMING_HOST to avoid disconnection.
Also, pass right cm_id to WLAN_CM_SM_EV_ROAM_INVOKE_FAIL to
gracefully remove the ROAM command from SER queue.
Change-Id: I0d48d4773c659e667d87c9583ce6530543998e19
CRs-Fixed: 3621341
Currently, host driver picks minimum of the self and AP's NSS
capability at the time of join. Host driver sends the same to
firmware through vdev_start. But APs may upgrade NSS to higher
value during connect. As the NSS is already limited to min at
the time of join, STA is not able to use full capability and
connection also happens with min capability.
So, send self max NSS capability to firmware via vdev_start and
final value(min of self and AP's cap) is sent to firmware
through peer_assoc.
Also, cleanup the ini gActionOUIForceMaxNss as it's no
longer needed.
Change-Id: I0555059d03c77e55a4ccf1543e709904e6ea4e49
CRs-Fixed: 3615495
If any force active link bitmap is present, we have
to clear the force active bitmap from target. Otherwise
that will be conflict with the force inactive num bitmap,
then target can't handle force inactive num 1 command to
exit EMLSR.
Change-Id: Ia3fbcc3ca188ce1e1c93f4d0b0439ac126aeb8cb
CRs-Fixed: 3616604
As per current logic FW sends value of cycle_count, rx_clear_count
and tx_frame_count in usec not in ticks for all chipsets.
No need to divide cycle_count, rx_clear_count and tx_frame_count
by FW clock frequency in host.
Change-Id: Ic319ff3f0b6a776b0522471d51f01f7eeafa1dd5
CRs-Fixed: 3602740
In the scenario about MLO 5 GHz + 6 GHz and 6 GHz is non-tx AP in
MBSSID, if DUT tries to connect 5 GHz link as assoc link and uses
the scan entry generated from 5 GHz beacon. Then there is no info
about profile index and count in the scan entry and these info is
necessary for firmware when vdev up.
To resolve this issue, get the info from 6 GHz scan entry if it
exists.
CRs-Fixed: 3619192
Change-Id: Id18b56ed52055fbd9cdce07d1bb9fd4b20fc1c44
Add support for T2LM status event for connectivity
logging.
For T2LM status event, band, tid_ul and tid_dl are
the parameter used for connectivity logging.
Change-Id: Ifdb763185af88617b90ea761e7d10cc35c628808
CRs-Fixed: 3609648
Currently, when host driver attempting to send the keys
during a link switch, the absence of a key was not handled,
resulting in firmware crashes.
This change is to assert host driver in the event that
no key is found during a link switch.
Change-Id: I7abe452c7dfa1e203c6af563163cf2d5589ab929
CRs-Fixed: 3604274