During ANQP query, supplicant sends the action frames to firmware
and currently, host driver drops tx mgmt frames as peer is not
available. This is because in tx mgmt path, it retrieves the self
peer from non-MLO mac addr but driver creates the peer of type
AP(PEER_AP) with MLD mac addr when MLD mac addr is non-zero and for
non-MLO case, it creates self peer with non-MLD mac addr.
So, to fix this, in case of MLO mac addr, create the self peer while
creating vdev and retrieves that peer with MLD address in tx mgmt path.
Change-Id: Id7ef97668fbd1bf1914d37d09682119eb79be465
CRs-Fixed: 3297288
During Deauth/Disassoc event logging, reason code is being
logged as '0' irrespective of the real reason code.
Modified the api wlan_connectivity_mgmt_event() and
api cm_roam_mgmt_frame_event() to og correct value of
the reason code.
Change-Id: I6d5ba65a9ae312dc82e70202fe598da27a033ff3
CRs-Fixed: 3297871
TWT responder should be enabled based on the hostapd
configuration and self capability.
But when SAP is started, the TWT concurrency work is
scheduled and its enabling the TWT responder without
checking the hostapd configuration. This causes TWT
responder to be enabled even though the hostapd configuration
disables the responder.
Check the TWT responder configuration from TWT component before
sending enable command for TWT responder
Change-Id: Ia6755299421f00b2a1a69fc2e19fac3d39ab95f6
CRs-Fixed: 3291939
When roam from MLO to SLO, partner link vdev1 keeps UP wrongly.
To fixe it, clean up partner link vdev1, but keep assoc link vdev0
MLO flag.
Change-Id: I13d256e9f05755f01cea668456f00bf33c8862b4
CRs-Fixed: 3290015
When roam from SAE legacy to SAE MLO, pre-auth TA is MLD address,
while peer AP expects link address, pre-auth fails.
Parse transmit address field from firmware roam_preauth_start_event and
include it when send NL80211_EXTERNAL_AUTH_START to wpa supplicant for
SAE roaming cases.
If transmit address is all zeros, wpa_supplicant will not do ML sae
auth, use MLD address as TA.
If transmit address is not zeros, wpa_supplicant will do ML sae auth,
use 'transmit address' as TA.
Since self peer is created with mld address, when roam from legacy to
MLO, try to get peer by mld address during pre-auth tx since bss peer
absent, or TX fails for no peer.
Change-Id: I99ed846e94165bfe01e1d1e8c620f035751c7056
CRs-Fixed: 3289987
In SAP due to intrabss forwarding, Tx ring update is going through
when WOW enable command has been sent to FW. This results in crash.
To fix this, set is_tx_pause flag when suspend sequence starts,
which will pause Tx ring HP update.
Change-Id: I81f25b8bfca917c95180c460fd932c0f75094c10
CRs-Fixed: 3295428
This change fixes the use of uninitialized variable and dereference of
free pointer issue in host driver.
Change-Id: I88359cd383d15f9baa73bc7c3ce9d5fccee2a41e
CRs-Fixed: 3295234
Currently, supplicant sends roc request and hostapd sends
vdev start request to host driver. After processing these
request, host driver sends it to firmware.
But for ROC request having long dwell time, firmware can not
handle vdev start req as it waits for ROC request completed
(timeout occurs). This is leads to crash in firmware.
So, to fix this issue, host driver aborts p2p roc request
before starting BSS (sending vdev start request).
Change-Id: I956428cf94015ac6c4ff7063ef9b060146e4377b
CRs-Fixed: 3270079
Based on the new requirement, fw fills the tx packet counts per mcs
and rx packet count per mcs index in the peer extd stats event.
Add logic to parse tx packet count per mcs and rx packet count per mcs
from peer extd stats event.
Change-Id: I4cd8c1ed5dd6942022d9f930f8de0bcbcb679eb5
CRs-Fixed: 3289683
During reassociation, cm_check_for_reassoc_hw_mode_change() is called
to check the coming concurrency is supported or not after preauth is
done. For non-DBS chip, due to STA+STA concurrency is not supported
by FW, the connection manager will run into state disconnecting from
roaming and disconnect current connection by sending disassociate frame,
then do new connection again. It's not normal roaming flow in which
disassociate frame should not be seen over the air.
Per the reassociation flow, it will internally delete previous connection
first, so can call policy_mgr_store_and_del_conn_info_by_vdev_id first to
make sure concurrency checking can pass even if a new STA connection is
coming up.
Change-Id: I5f9f3e1151cb5402405042e3e9f2bec95f0b094c
CRs-Fixed: 3246822
Support neighbor response and beacon request
transmit from driver and deliver received
neighbor request and beacon report to hostapd.
Change-Id: I6a27d04ab4b558c4af799cc185b92f011194233d
CRs-Fixed: 3279625
Rename wlan_cm_ese_populate_addtional_ies() to fix misspelling in the
name: addtional ==> additional
Change-Id: I3a5528d09804628cc665ee882ced3af2581b0f34
CRs-Fixed: 3281750
Fill the number of links that need to be forced inactive
when the force mode is MLO_LINK_FORCE_MODE_INACTIVE_NUM.
Change-Id: Ifd24ba213a9cf011535bfd3662dd83e5b584aa51
CRs-Fixed: 3277465
Currently, in host drivers, compilation fails for some TWT API when
definition is not available for either of 11AX feature flag
(WLAN_FEATURE_11AX) or TWT feature flag (WLAN_SUPPORT_TWT).
Add support for the dummy TWT API to resolve the compilation error
when 11AX and TWT feature flags and are not defined.
Change-Id: I3fa96393d5cdac9e5222b3978108601e1a651143
CRs-Fixed: 3292454
Currently in case STA is up on 5 GHz channel,
2 GHz band is preferred for P2P CLI and SAP when
concurrency priority is throughput and power
instead of SCC channel.
Fix is to prefer SCC channel in case of
throughput an power instead of moving
to another mac.
Change-Id: I0a2eef10e92f277b38e6ae80961e8d6e27047169
CRs-Fixed: 3289767
Add new ini "enable_responder_secure_ltf_support" for R-STA
secure LTF support. Enable this ini for R-STA to advertise
secure LTF support in extended capabilities & RSNXE.
Change-Id: I474b06c52c47b5a54dc827031bf9ff7c0d2f7d05
CRs-Fixed: 3283083
Send MLO Roam config to target, including:
support_link_num: Configure max number of link mlo connection supports.
support_link_band: Configure the band bitmap of mlo connection supports
Bit 0: 2.4 GHz band support if 1
Bit 1: 5 GHz band support if 1
Bit 2: 6 GHz band support if 1
Change-Id: Id59fc93cc271266ff794702d997ffc5113de5bc1
CRs-Fixed: 3273012
At present Pre CAC work queue callback pre_cac_handle_failure
doesn't release the vdev ref count. And the pre_cac_handle_radar_ind
doesn't take ref count before schedule work pre_cac_work.
To fix inconsistency by using psoc as work queue callback parameter
and get pre CAC vdev id from psoc context.
Change-Id: I65339ca9f3ac4b91faf31090978337d041320f99
CRs-Fixed: 3288125
After roam sync is recevied the phymode will be updated for bss peer.
For MLO roaming use link address and channel to find the bss peer and
update the phymode.
Change-Id: Ic181fdb73ceeb8dfb980a4121a7569b12d3361dd
CRs-Fixed: 3280059
To enable the below 2 features in FW:
1. IDLE roam scan
2. Roam triggered due to high channel utilization
in the currently connected channel
Currently, if "roam_triggers" bitmap is set for above
features, Host indicates FW that "IDLE roam scan"
and "roam trigger due to BSS load" features are
enabled irrespective of corresponding INI
'enable_idle_roam' and 'enable_bss_load_roam_trigger'
respectively.
Consider the value of corresponding INI also while
sending enable indication to FW.
Change-Id: I0d59e0a32df4aa95850f12a99bae439fea40acf5
CRs-Fixed: 3281952
Host driver sends RSO stop request to firmware as part of
disconnect and waits for RSO stop response. It pauses the
disconnection and resumes once RSO stop response is received
from the firmware.
But cm_lock is not taken when disconnection is resumed from RSO
stop response path. This causes synchronization issues with
north bound thread which issued the disconnection.
Acquire cm_lock by using cm_sm_deliver_event() API to avoid
this issue.
Disconnect initiator thread and scheduler thread are
synchronized with this change. So, no need to set the RSO
state to STOPPED before sending RSO stop command to
firmware. So the change: I4d43508bdee2b33caba28579939fffdebfab121d
can be reverted.
Change-Id: Id29cd992ecd1bd75cb1b32eebb9e46ca5dcc728d
CRs-Fixed: 3285154
Correct Min, Max and Default value for INI
RoamRSSI_Trigger to avoid Out of range error while
cfg ini item parsing in host.
RoamRSSI_Trigger_min 50
RoamRSSI_Trigger_max 100
RoamRSSI_Trigger_default 75
Change-Id: Ifd4f049987c797ca43a865cefbc2d2517560f105
CRs-Fixed: 3283130
Two mlo sta link vdev (2+6(LPI)) are started but hw mode is SMM (one
link maybe inactive in fw).
When start SAP on 5 GHz low, driver doesn't select force SCC channel for
such case. It left the SAP channel not changed (5 GHz 5220).
Since the 6 GHz STA link is on LPI mode, SAP is not allowed on
6 GHz (policy_mgr_modify_sap_pcl_for_6G_channels). Driver needs to
consider the PCL as well to select force SCC channel. Add new API
policy_mgr_get_pref_force_scc_freq to fix it.
Change-Id: I824de7168a26955caeeaff955a232c80baa13345
CRs-Fixed: 3280704
When disconnect from wpa_supplicant and cm event from F/W happen at same
time, supplicant holds cm cm_req_lock and wait rsp of p2p cleanup roc from
scheduler thread until 2 sec timeout, sheduler thread is blocked to wait
for cm_req_lock.
When wmi peer delete of vdev0 is not sent within 1.2 sec after host send
wmi peer delete of vdev1, firmware will assert.
To fix it, don't wait rsp of p2p cleanup roc when disconnect by async way.
Change-Id: I877b7a446dfd12f621dad5049a67574359bdd322
CRs-Fixed: 3285115
Currently in packet capture, channel for data packets is updated
from pdev. We are updating channel in pdev when we receive auth
frame in mon thread. But, sometimes we are updating channel in
radiotap of M2 in pkt_capture_update_tx_status, before mon thread
process auth packet and update channel in pdev, because of
which we are updating wrong channel in M2.
So, to avoid this move update of channel from mon thread to
pkt_capture_mgmtpkt_process.
Change-Id: Icf14c4331849ad7cfdfbd7a3043e4e4dc3d33721
CRs-Fixed: 3266890
Use uint8_t instead of boolean for tdls maxpeercount in
wlan_tdls_features as this will result in restricting max
supported TDLS peer count as one when more than one TDLS
peers are set.
Change-Id: I468f87e80178c0fb2e80b122f59d0dffcfa3928f
CRs-Fixed: 3284105
Disable 11a support on 6 GHz band and change default rate of 6 GHz
frequency band by using WMI_PDEV_PARAM_DEFAULT_6GHZ_RATE.
Change-Id: I2db2dd54c03cf71e1b697796fa3dc58d2646a8b5
CRs-Fixed: 3251997
Currently, there is no interface id valid check,
Which is resulting in unnecessary Vdev NULL error
logs for interfaces for which Vdev is not created.
So to fix the excessive logging issue add a check
to validate the interface id.
Change-Id: I86b2a60c11631f5122f866a83427d4cd9b794a02
CRs-Fixed: 3283932
Currently, link entry is not added to connection_list of
policy_mgr in case of legacy to MLO roaming. This causes
policy_mgr to miss track of the MLO link.
Check if the connection entry is present in the policy mgr
for the link vdev id and add an entry if it's not present.
Change-Id: Ib19f3616a3384670f1faef20c39476a2bcac2588
CRs-Fixed: 3274435
There is a race condition issue between supplicant and driver thread.
1. Suppliant disable F/W roaming.
2. Supplicant Invoked roaming.
3. Driver reported roam completed to supplicant before EV_ROAM_DONE.
4. Supplicant tried to enabled roaming, failed for vdev ROAMING state.
5. Roaming completed, but RSO kept disabled for supplicant disabled
roaming flag not cleared.
6. F/W roaming kept disabled until next disconnect and reconnect.
To fix it, driver don't report roam completed event to supplicant until
vdev changed from ROAMING to CONNECTED.
Change-Id: I8f0db74b5dce69ea355fde2c43edaf6419c87eb0
CRs-Fixed: 3280727
Disable TDLS offchannel if number of connected peers are more than
one.
Also, re-enable offchannel if all peers are disconnected expect one.
With this change, it is possible to increase the limit of max
connected peers which was previously set as one when TDLS
Offchannel is enabled.
Change-Id: Ic0826aa32c8ef805a2df6da6c7506895cdc08a09
CRs-Fixed: 3265868
Update offchannel frequency based on peer caps such as
1. If 6 GHz is supported then select the ini preferred 6 GHz channel
frequency if peer also supports the same channel.
2. If 6 GHz is supported and peer doesn't support the ini preffered
channel frequency then select the very first 6 GHz channel which
peer supports as preffered offchannel.
3. If peer doesn't support 6 GHz, then select ini preffered 5 GHz
off channel frequency, given that peer should also support it.
4. If peer doesn support 6 GHz and also doesn't support ini preferred
5 GHz offcahnnel, then select the very first 5 GHz channel it
supports.
Update preffered offchannel Bandwidth such as take minimum of peer
supported max bandwith which is extracted from supported opclass and
max Bw device supports.
Change-Id: I93412774f35280105b22d5ec44895572f9d7aeef
CRs-Fixed: 3266066
In STA+SAP concurrency, if the STA is connected in indoor
power, and if the country/channel supports VLP, then bringup
the SAP in VLP. Move the STA to VLP as well.
Restore the power of the STA, when the SAP is disconnected.
Add changes to:
a) Decide the power type for the concurrency during start bss,
stop bss, change channel request calls of the SAP interface.
b) Allow the 6 GHz SCC channel in ACS computation if the channel
supports VLP power or if the channel is indoor and enabled.
Change-Id: I151e2e3e8910a406bb5c1526f4f01715854d173f
CRs-Fixed: 3268100
Currently if SAP is up on 5 GHz DFS/non-DFS channel and country
change happens to world mode where SAP is not allowed on 5 GHz
channels then it moves to a 2.4 GHz channel and saves current
operating frequency band information, now again if a country
change happens SAP tries to move back to the first 5 GHz
active/passive channel.
Sap should come to active channel first. If not available then
it should come on DFS channel, but it shouldn't come up on
passive channel.
To address this issue, add a fix to filter out passive channels.
Change-Id: I32e8a81c2a5d9e785262edbeeef2c879c87f1302
CRs-Fixed: 3277965
For mlo AP, bssid in wmi_roam_synch_event_fixed_param of
WMI_ROAM_SYNCH_EVENT is AP MLD addr, when use it as link addr,
failed to register peer and set peer as connected, so all Tx
are not allowed including EAPOL.
Fix it by getting AP link addr and frequency of each link from
setup_links_param array of WMI_ROAM_SYNCH_EVENT.
Copy link info from roam sync event to connect response before notify
os_if roam complete, os_if will send link info from connect response
to wpa_supplicant, supplicant will use it to add MLO Link KDE(s) into
EAPOL-Key 2/4.
Change-Id: I87833784a4e0b9240725223069c55fb0db3bc88f
CRs-Fixed: 3277878
Hw mode change in progress is set after the set_hw_mode
command is queued in serialization. Its not reset in below
cases:
Active command timeout case, serialization command
cancelled case.
Before connect request is queued, if hw mode change is in
progress, there is 6 secs wait and if there is no hw mode
change response, connection failure. This causes subsequent
connection failures and there is no recovery.
Reset the wait for hw mode change event in serialization
command failure cases.
Change-Id: I716982f06198e9c3495685ddb158044778c4b1ff
CRs-Fixed: 3256424
There are two different name with different range of value for
aliasing INI's. So, it should pick the valid range of value wrt INI
name.
Change-Id: I36b578749567998980b300e5a8daf1acb201cddd
CRs-Fixed: 3269376
Currently rso enable for open and secure connection is handled
incorrectly.
For secure connection roaming should be enabled
after key exchange is complete.
For open connection rso enable is done twice.
Fix is for enabling roam offload for open and secure connection.
Change-Id: I0abde2a6001f176c97e4aa59947260a50c48e6cc
CRs-Fixed: 3271248
Currently if link specific probe response generation fails
STA keeps sending probe requests until proper probe response
is received or join timeout failure. This results in ML
connection failure
Change is to continue with single link ML connection if probe
response generation for link/s by clearing partner link information.
Change-Id: Ia969501a3bdd1ac70e14f3a0eafd0752207b66da
CRs-Fixed: 3238861