Need to add support for rTWT feature in host. Host needs to define rTWT
ini, and set rTWT bit in EHT Cap. rTWT ini will allow users to
enable/disable rTWT feature. We define rTWT ini and function to get ini
value. EHT Cap will advertise rTWT support to peer. To populate EHT Cap
we must validate rTWT is supported in driver. To do this, we check rTWT
and bTWT params.
Changes are as follows.
1) Define rTWT ini
2) Get rTWT ini value
3) Get rTWT support
4) Set rTWT bit in EHT Cap
Change-Id: Id5676c6b7c3d4f48a0010f2e9ae369d9dfa710e9
CRs-Fixed: 3446652
To process get_cu_for_each_subbw request from upper layer,
host needs to trigger scan for initial connection ch width
on every get_cu request.
Change-Id: I2bbf20c9207f46983b14dcd95bf81f32cfd7c060
CRs-Fixed: 3466958
Some AP doesn't honor CCK rate for auth/assoc.
this ini is added to detect specified AP and
send auth/assoc/reassoc(non-offload) with 6 Mbps
rate on 2.4 GHz, then AP will ack to STA.
Change-Id: I8a164471198842368add40ca726420569dd82430
CRs-Fixed: 3412381
Add the following fixes in case of peer-level tid-to-link
mapping negotiation.
1) Copy peer-level mapping to wlan_prev_t2lm_negotiated_info
from wlan_t2lm_onging_negotiation_info after negotiation
is completed as the former structure is used for mapping
reference.
2) Currently, the Host sends peer-level negotiated mapping
to FW, followed by an action frame response to the AP.
Reverse this order to align with the design flow.
Change-Id: I0e0db95c539cfd9aee27b481683e3e807a1f712e
CRs-Fixed: 3423125
When MLO STA is supported in MDM, driver needs to
use the new PCL table for 4th connection.
Move the existing PCL table under macro MDM_PLATFORM
to support this.
Change-Id: I494e7a8d6ecc0a550027ff7f64de5deb11b987a9
CRs-Fixed: 3467738
Change mask for OUI as the 2nd byte will change dynamically
for each powerup/powerdown.
Change-Id: Ia742f96956e470fd0c02ae4ee8813f0f84e96556
CRs-Fixed: 3460525
Allow a maximum of one ML SAP instance at a time and restrict any
other ML SAP start. The existing code allows secondary ML SAP to
come up if no other concurrent connections are present.
Add the condition to check only SAP mode in the policy manager list
so that other opmodes are not considered.
Allow new ML SAP instance only if no other ML SAP instance exists.
Change-Id: I3ea08b2c8de92f84e288e078a19cac0da261e69e
CRs-Fixed: 3460774
Currently host driver sets value of out psoc to NULL once it
assigns value of out_psoc to a local variable. Now if there is
any issue after this assignment, this global out_psoc is not
available for debugging purpose.
To debug some complex issues, set out_psoc to NULL at the end
of the psoc destroy function.
CRs-Fixed: 3469397
Change-Id: I479b0c4aedd77f374d8dff085cfade00a8e5cc5b
eMLSR + NAN concurrency is not supported currently, so handle it
as mentioned below
1. eMLSR+NAN: If NAN is coming up when eMLSR is active, disable
one ML link so that eMLSR gets disabled.
2. NAN+eMLSR: If eMLSR is coming up when NAN is already enabled,
disable one link so that eMLSR doesn't get enabled.
Also, cleanup the APIs to carry a generic flag to indicate that
a concurrent connection is coming up instead of mode specific flag
as there is no dependency on modes to handle concurrency.
Change-Id: I625f8b18f9d7e991922d22af53f3e8743a3727bd
CRs-Fixed: 3443900
Firmware sends beacon/probe response of the roam candidate to host
through roam_frame_event when it chooses a candidate which needs
SAE authentication to be performed. This is needed as the host
checks if corresponding scan entry is present in the scan db
before starting SAE authentication trigger.
But in MLO roaming case, firmware might send ML probe response
and the scan entry corresponds to re-assoc link might be present
in the per STA profile of the ML probe response.
So, extract all per-STA profiles and add them to scan db.
Also, use this API to extract and add the link specific
ML probe responses for the ML probe response received
in roam sync indication if extraction via roam info fails due
to some reason(currently it may fail if fw roams to a link but
got ML probe rsp from other link as link_info is not
present roam info).
Change-Id: I6c67927732a54568dfe618bdecaca8f37515e203
CRs-Fixed: 3454834
Currently, in WMI_WOW_ADD_WAKE_PATTERN_CMDID driver sends only SAP mac
address and pattern_id. So, FW does not have bridge mac address.
To fix it, driver will send bridge mac address and pattern_id along
with SAP mac address and pattern_id.
Change-Id: I3fae9f0383a1ba8c64edfa6cf8518ab9a5604a14
CRs-Fixed: 3456318
When P2P CLI is connected first and then STA is connected,
disable TDLS on existing interface and enable TDLS on the STA
vdev.
When existing STA + TDLS exists, disable off channel when P2P
connection is started and re-enable off channel for TDLS once
connection is complete. Don't teardown TDLS peers once the
P2P client connection is successful.
Change-Id: I91d152a3a052706289c06cebc932c84a69fdbc00
CRs-Fixed: 3455639
As part of commit(Id680d0f6193740b24e78115ac7dc7be26e28acff)
during roam driver notify the TDLS STA about disconnection.
During this driver sends the TDLS disable command to Firmware
without deleting the TDLS peers. As a result of this in FW the
TDLS delete instance is called and TDLS handle is marked as NULL.
And later in driver the TDLS peers are getting deleted and now
the teardown update command is sent to Firmware. But in FW as
the TDLS handle is already NULL, it has asserted and crashed.
Fix is to delete the TDLS peers in driver and update the teardown
to Firmware and then send the TDLS disable command to Firmware.
Change-Id: Ic425cc065a29bbc444531f523eaccb14014ae47a
CRs-Fixed: 3455117
Currently, MLO vdev flag is not cleared even when STA roams to a
legacy AP from an ML AP. This causes sending invalid info to
kernel as the os_if APIs still treat the connection as MLO
connection though STA roams to an ML AP.
Clear the assoc vdev MLO flag to avoid this.
Change-Id: Iaf013aebd1fe794202abdeeaa6b5db14987b6103
CRs-Fixed: 3466501
tdls_disable_in_progress checks are always false since the
tdls_disable_in_progress is never set to true.
So cleanup the condition checks that use the
tdls_disable_in_progress variable.
Change-Id: I8a5f868c09919fc5835b9f8f7f30a32d59dab74a
CRs-Fixed: 3445123
Remove unwanted QDF asserts from PMO and suspend all components as there is
error handling present for error cases.
Change-Id: I43b1ba36d9e2fb467a7a7c110abd4a2d44e5b1a8
CRs-Fixed: 3459928
In wlan_hdd_get_station_stats, NULL checking for
pdev_stats fails as it doesn't pass pdev stats info
to hdd layer. stats will not pass to userspace, it will
display tx bitrate unknown in command "iw p2p0 link" or
"iw p2p0 station dump".
issue only happen on p2p0 and not on wlan0. as wlan0 can
use cached stats in __wlan_hdd_cfg80211_ll_stats_get.
Fix is pass pdev stats info to hdd layer in
get_station_stats_cb.
regression cause is:
Iaefc5629872431cbc6c24090b1edb6cebdad995a
Change-Id: I33b608988aa288e0f8139524de5e20fcbba4f2be
CRs-Fixed: 3457955
TDLS AP capabilities are stored in MLME, but is not used while
sending WMI_TDLS_SET_STATE_CMDID to firmware, instead false is
passed without passing the actual AP capabilities. This could
cause TDLS getting enabling when AP doesn't allow TDLS.
Cleanup few API and remove ap_cap structure in TDLS vdev private
object
Change-Id: I43c140d58e8777da3acf748f08f5d9915fd91bf4
CRs-Fixed: 3449324
If CSA on SAP/P2P GO causes MCC with the current STA TDLS vdev,
then teardown the TDLS connections, disable off channel and send
disable TDLS to firmware.
If CSA causes MCC -> DBS or MCC -> SCC then allow TDLS and update
the peer off channel list to firmware
Disable TDLS off-channel before SAP/P2P GO vdev restart.
Once CSA is complete, TDLS off-channel will be re-enabled based
on the concurrency.
Add interface manager changes to notify STA channel switch.
Change-Id: I36b359a7e1cf570cfb2b2f0e6abedf148a8fd174
CRs-Fixed: 3445112
When a T2LM teardown action frame is received clear the
previously negotiated peer level t2lm mapping and update
FW with established mapping if valid or default mapping
applies.
Change-Id: I7951c76fe3d6c1bf231300675f2b954ff7697b39
CRs-Fixed: 3420421
Currently, MLO flags are cleared before issuing disconnect on
the link vdev when DUT roams to a single link ML-AP. But these
flags get cleared as part of disconnect handler and not supposed
to be cleared anywhere else.
Clearing these flags before issuing disconnect on link causes
sending disconnect done indication to kernel as the flags
got cleared, which make the vdev as non-MLO. This race condition
is possible when a disconnect is queued from userspace on
link vdev while one disconnect gets processed on it(due to
single link roaming).
Change-Id: I8206c1b8197bf26ad852eafb631c8585bc749846
CRs-Fixed: 3439175
Since for MLD device, it can only choice one link for tdls,
add logic like this:
1\ As initiator, it needs to send discovery request on each
link, before send the frame, it needs to force active the link;
2\ As responder, it sends the discovery response the link id,
before send the frame, it needs to force active the link;
3\ For other tdls management and tdls operation, it needs to
find out which link(vdev) is used as tdls link first.
Change-Id: I64e27219eb6c6b3fef62e541423aa8e5d84b1560
CRs-Fixed: 3439568
TWT concurrency update is called before ndp connection is added to
policy_mgr count. TWT concurrency_handler reads incorrect count which
causes wrong mode to be checked. Fix is to call TWT concurrency
update after NDP entry is made in the policy manager.
Change-Id: I7f259885f7402ab018ff7c7cd020bb3f9298dba1
CRs-Fixed: 3454000
Host received deauth and roam sync back-to-back after WoW, sent vdev
RSO_DISABLE before RSO_STATUS event, F/W assert.
1. Host received deauth event, limSmeState went out of link est state, sent
async event of cm_send_sb_disconnect_req.
2. Host received and handled roam_sync, CM_RSO: vdev0:
[ROAM_RSO_ENABLED(2)] --> [ROAM_SYNCH_IN_PROG(5)], roam sync failed since
not in link est state.
3. Host aborted roaming, ent back to CM-VDEV-0: CONNECTED, removed roaming
cmd from serialization queue.
4. Host sent RSO stop to F/W.
5. Host handled cm_send_sb_disconnect_req, dropped RSO stop during roam
sync, called cm_disconnect_continue_after_rso_stop without waiting for
RSO_STATUS event.
6. Host sent vdev RSO_DISABLE and vdev stop before received RSO_STATUS
event, F/W asserted.
To fix it, if host roam sync failed, need wait for HO_FAIL event and handle
it before handling other cmd, can't remove roaming cmd from assoc vdev
serialization queue to unblock other pending cmd before handling
HO_FAIL, just send assoc link RSO stop to F/W one time with
REASON_ROAM_SYNCH_FAILED, then wait for 2 events: FW_ROAM_EVT RSO status
and HO_FAIL. then handle HO_FAIL, at last remove roaming cmd, unblock other
cmd and trigger disconnect.
Change-Id: I03dd3ed21007ee67613c2d90b5567348c240f375
CRs-Fixed: 3445233
For MLD case, it may receive two discovery response frames if
peer is MLD device. In this case, it needs to check the response
frame and make a decision about which vdev is used for TDLS
vdev.
Change-Id: I3d7c3343aef2d6843b362fca191caef8b982d3f8
CRs-Fixed: 3439577
Set parameter add_sta_params->eht_capable accordingly whether
the peer STA support it or not.
Change-Id: Ib3664be74ece59804321e187fea889610c0a2a86
CRs-Fixed: 3454661
Reserve log like "[18:11:32.086000] [ROAM_TRIGGER]: VDEV[0]"
for common roam and special roam.
Some customers are used to get log from serial port, reserve
this log can better support debug.
Change-Id: I79565c87cfcf42ae5de3d6895c27666d2676370b
CRs-Fixed: 3451003
Update tdls vdevs to 2 if fw 11be capable. Add
WMI_SERVICE_11BE_TDLS_SUPPORT update num tdls vdevs
to 2 for firmware while init_cmd_send_tlv.
Change-Id: I12cced5718cb189ce1f96d204ac64108ccef5ca3
CRs-Fixed: 3436013
Add gActionOUIDisableDynamicQosNullTxRate to control FW's dynamic qos
null tx rate feature.
Some APs sometimes don't honor Qos null frames with some specific rate.
This ini will disable dynamic qos null tx rate feature for specified
APs.
Change-Id: I1690c14142c93e8456705183c9e12c41c20f3a4a
CRs-Fixed: 3450104
Currently host driver doesn't fill peer mac address
per ml vdev for station stats request as part of peer
stats request hence incorrect stats sent to userspace.
To address this issue, save peer mac per ml vdev in
request info structure.
Change-Id: Iebb1b810e112743602607e31d779be2ba1d48f90
CRs-Fixed: 3450665
Rename policy_mgr_is_sap_allowed_on_indoor() to
policy_mgr_is_sap_go_interface_allowed_on_indoor() since
it is common between SAP and GO. Cleanup the API as well.
Change-Id: I8380bd81c5050e9f12c00fff830455f14135c2b4
CRs-Fixed: 3423703
Add support for sending QMI WFDS misc request to QMI
server on Direct link deinit.
Change-Id: I611625d83719c0f8a7dfbef1d3c8328cb618ef7f
CRs-Fixed: 3454630
Since for MLO there may be several link connections, for TDLS
using api policy_mgr_get_connection_count_with_mlo() to replace
with policy_mgr_get_connection_count() to follow the original
logic.
Change-Id: Ic13c89f2e834196c01ca6966329cbd0d1552f292
CRs-Fixed: 3436049
Rename wlan_cm_set_offload_ssid() to
wlan_cm_update_offload_ssid_from_candidate().
Also, add separate APIs for get and set roam_offload_bssid.
Change-Id: I64d6661a265aeafde7c09fa59bc94cf7a49baf0b
CRs-Fixed: 3445337
Currently, OWE assoc link scan entry is cached post roam success
but link scan entry is not cached. This causes join failure while
non-assoc link tries to get connected post assoc link roam.
So, cache scan entries of all links while processing first link
itself to avoid these failures.
This also fixes adding scan entry properly for non-MLO OWE
cases as well.
Change-Id: I3188f98f2682acceaae28f226e6c8abe0c81fff9
CRs-Fixed: 3437632
Currently, when ML probe response is received in non-assoc link
channel, right link_id is not passed to the link_probe rsp
generation API as it loops through all available per STA profiles.
It fails when probe rsp received link id is given as corresponding
per STA profile is not present in the probe rsp.
Skip calling the ML probe rsp generation API for
the link id on which it's received.
Change-Id: Ib636c6d5909b7f2760c7e57ec4f14f8ed060a910
CRs-Fixed: 3428521
Add new api for tdls mld feature:
ucfg_tdls_get_mlo_vdev
ucfg_tdls_release_mlo_vdev
ucfg_tdls_discovery_on_going
Change-Id: I874fd5ef1af94a9e576ba6738a12b7e2af891537
CRs-Fixed: 3439345
Currently cck and ofdm flags are filled wrongly for monitor
mode data packets based on preamble and wireshark deriving
incorrect phy type for 11G & 11B.
This change is to update cck and ofdm flags based on packet
type.
Change-Id: I5fcdc463ea2a6d83253e39cc377a2471aeb4e144
CRs-Fixed: 3447567
Currently, For legacy modes monitor mode reporting incorrect tx rate
for data packet in radiotap header due to packetcapture_hdr rate
is hardcoded as '0'.
This change calculates the data rate of legacy packets using mcs
reported in tx completion.
Change-Id: I2a651b8fb36947672bd30f8a635f0e643219e520
CRs-Fixed: 3442376
Currently monitor mode HT & VHT data packet tx rate is not
matching with ota packet tx rate due to incorrect mcs value.
This change is to update proper mcs value for HT & VHT modes.
Change-Id: Ib4fb06a06ce35a4e8e683e5a22c8be226492b13f
CRs-Fixed: 3442509
Existing check for 4 vif concurrency in policy_mgr_allow_4th_new_freq
is insufficient to handle the case: ML STA on 2412 MHz and
5805 MHz, GO on 5180 MHz, SAP on 5805 MHz. Then user trigger
SAP CSA to 5240 MHz. Driver should reject the CSA because
DBS or SBS both can't meet the requirement that 3 VIFs MCC is not
supported in same mac.
Fix by loop all the hw mode to check vif channel and mode
combination are supported or not. If no one support the combination,
reject the 4th connection.
Change-Id: I67709395f7734d1f636a1410ac112a837cb66e79
CRs-Fixed: 3446747
Since we fill roam information into a ring buffer, when ready to
write a buffer, we need clear the dirty data first.
Change-Id: I94dac785803f15451df816c303f8a594ee688ff7
CRs-Fixed: 3437152
1. Permit to add monitor iface even wlan0 down per customer requirement.
2. Don't need check sta adapter number when add monitor iface, monitor
iface doesn't depend on sta adapter number, sta adapter num is different
for mlo/non-mlo, dual sta/single sta.
Change-Id: I83494ba504288ee21abb2c5d287713fe86f8efe9
CRs-Fixed: 3447188