Add TPE IE EIRP power parsing support for 6 GHz channels.
1) Currently, is_psd_power flag is derived from current
channel list chan flag which returns true if corresponding
channel supports PSD power. Normally, all 6 GHz channels
support PSD, so this flag is usually set to 1. But, AP
can transmit EIRP power in TPE IE for 6 GHz channels,
thus derive this flag based on tx_power interpretation
field in TPE IE for accurate value.
2) The calculated center freq is passed as argument to
retrieve regulatory power from reg channel list
but this logic works only for PSD. E.g. In case of EIRP,
center freq can be 6125 MHz for oper freq 6115 and BW
40 MHz, and causing reg APIs to return reg power as 0.
Thus, pass operating freq as argument in case of EIRP.
Change-Id: If1ad3870a866592d970adad218e507c9c756f615
CRs-Fixed: 3266393
After vdev creation, self peer is created using mld mac address.
In case of SAE roaming, the auth frame received from supplicant
has link mac address thus it is unable to find peer.
Add api to find mld mac address from link mac address.
Change-Id: Ic01bf4da7b79779efd8b9ea8f1e180291c877593
CRs-Fixed: 3275434
Currently, driver configures PS only for assoc vdev using
__wlan_hdd_cfg80211_set_power_mgmt().
Fix is, driver should configure power save for ML links
as well.
Change-Id: I4b624fce83398781f919a3a1f770aab9b04e1c09
CRs-Fixed: 3271792
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
Currently, switch_to_rso_stop happens based on the
current state check and the expected state is
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
The thread(e.g. user thread) that is sending rso_stop to
firmware might have got the expected state value when
it has read the state and proceeded with commands needed
to send to firmware. ROAM_SCAN_MODE is one of these commands
and firmware sends a response for the same. The response
gets processed in scheduler thread.
The expected sequence as per the current implementation is,
1. Check the current RSO state and proceed if it's any of
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
2. Send all commands corresponds to switch_to_rso_stop to fw
3. Set the new state to RSO_STOPPED
4. In scheduler thread, get response for
ROAM_SCAN_MODE(one of the commands sent in step2) and
proceed from RSO state RSO_STOPPED
5. scheduler thread sets the state to DEINIT.
But the user thread may get suspended while sending commands
to firmware (step2) and may get resumed after step4. The new
sequence could be,
1. Check the current RSO state and proceed if it's any of
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
2. Send some commands corresponds to switch_to_rso_stop and
thread gets suspended. Assume it has sent ROAM_SCAN_MODE.
3. In scheduler thread, get response for
ROAM_SCAN_MODE(one of the commands sent in step2) and
proceed from RSO state RSO_ENABLED.
4. As part of step-3, scheduler thread moves the state to
RSO_STOPPED and then to RSO_DEINIT.
5. User thread gets resumed and sets the new state
to RSO_STOPPED. This leaves the RSO state in invalid
state even after disconnect.
Set the state to RSO_STOPPED before sending any commands
to firmware. This is to ensure the state is not corrupted by
the scheduler thread.
Change-Id: I4d43508bdee2b33caba28579939fffdebfab121d
CRs-Fixed: 3278047
In SAP+GO concurrency, if move SAP to DFS channel (BW 160 MHz)
and cause MCC with GO, the target will do CAC on SAP, but target
doesn't support MCC with GO when SAP is CAC state.
Fix by checking correct BW of CSA target channel so that correct
DFS flag can be got and if target channel is DFS causing MCC
with other AP interface then reject CSA request.
Change-Id: Ic7821cf62d3b364e4d2ea052dc82d65d18054091
CRs-Fixed: 3275285
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: I89a275500f1e1ad42f2cae534e9f67e1b9e3a4eb
CRs-Fixed: 3268673
Update the cfg HE capabilities to advertise with
user-configured channel width.
Change-Id: Id6a00341bad91edbc0123eb7334b5b83548b2f94
CRs-Fixed: 3271506
Correct the offset for 20 MHz BW only MCS map field in EHT
capability setting for VDEV IEs.
Change-Id: I3654f9a8845728bc1c62aa55d0dbe5aa988a111c
CRs-Fixed: 3271414
An invalid VDEV ID is sent to FW during adapter start after SSR
leading to assertion failure.
Validate return value of start adapter and skip to next adapter
incase of any failure.
Validate the VDEV ID sent in the SMPS params before sending to FW.
Change-Id: I7038fb2c7ecaa5892f5058b5b719767314ec62bf
CRs-Fixed: 3271202
Do not limit the STA supported BW capabilities to BSS
supported BW during the connection if the STA is operating
in testbed mode.
Change-Id: Idad613b7ea28059ab3ca9f474b2b0923cb4d5405
CRs-Fixed: 3271416
EasyMesh agent fails to send measurement request to the client which
supports radio measurement.
When EasyMesh queries sta information, driver should indicate correct
radio measurement capability to EasyMesh. Otherwise EasyMesh overwrites
sta radio measurement capability with incorrect value.
Change-Id: I2b916e006786e049610c577b781dd569f344e7f2
CRs-Fixed: 3272631
Currently cpu cxpc threshold is hardcoded in host driver.
As, Each platform has different threshold for PM QoS and
this threshold needs to be set accordingly.
To address above issue, add new ini to set cpu cxpc threshold.
Change-Id: I34d1e7f836585f3ff5e8d0044c6c224f58e99776
CRs-Fixed: 3263352
Reset the 320 MHz BW support in EHT capabilities for
connection with less than 320 MHz bandwidth.
Change-Id: Ifd9240597170556b835aea3132e106127cf1432a
CRs-Fixed: 3271501
Add feature flag to skip MSI interrupt mask set of
mon rx ring if device mode is not monitor mode to
fix double free issue resulting from call
to api from two different contexts.
Change-Id: Ie065c1034ef8b9f2cf4eb762c4a9be23d9799efd
CRs-Fixed: 3277477
When aggregation of a flow is in progress, there can be case
when the HW flow table entry match may fail for few packets.
Such packets, even though belong to a flow already present in
flow table, are routed independently to any RX ring.
When software checks this rx ring ID, from the independently routed
packet and compares the ring ID against the one which is assigned
for the flow, there will be a mismatch leading to unwanted behaviour.
Hence, always validate the fse_metadata before taking any
action on the basis of rx ring ID mismatch. The non-matching
packets, with invalid fse metadata can be submitted to network
stack independently.
Change-Id: Ia95f20ef1050bc981b2d22571b612fd2af6f6a65
CRs-Fixed: 3272353
In reg_is_6ghz_psc_chan_freq, logging all channels except
6 GHz band channels.
Added 6 GHz band check in wma_update_channel_list to avoid
redundant log prints in reg_is_6ghz_psc_chan_freq
Change-Id: I1a4a43707e8dc44d0c6f4f6d6ac9f86324a4d2fd
CRs-Fixed: 3277118
Currently, host drivers drops NAN tx mgmt frames while transmitting
it to firmware as it is unable to find the peer for NAN and
also, random mac check is false because tx channel is not available
for NAN (kernel sends channel as null).
As peer does not exist for NAN, creates self peer while creating
vdev.
So, to fix this, add check for NAN iface to retrieve peer from vdev
mac address and use this peer in tx mgmt frames.
Change-Id: I8ef9e3502397a667841eb6e852ed5755049af44d
CRs-Fixed: 3275426
Current code has return variables that are declared but not initialized.
To fix this, add initialization with a default value on declaration.
Change-Id: I62a69892f031351036417a77998d13a38bd41420
CRs-Fixed: 3273478
In case of single link mlo roaming, set both dp peer flags
is_first_link and is_primary_link to 1, then datapath will
create MLD peer.
Change-Id: I935c42b2c3eaa558028d45bdbf502007723f656c
CRs-Fixed: 3271224
Set the number of partner links to min of assoc response ML
IE number of partner links and user configured number of
links to fix the disconnection in single link MLO connection
due to mismatch in the number of links. MLO manager triggers
the connect request for non-zero partner links and connect
request fails if number of partner links is zero leads to
connection failure.
Change-Id: I25f5d5e9df979af1efb4e0db961a65e077bd0759
CRs-Fixed: 3271499
SAE authentication frames during roaming should be cached and
printed after roam scan done print. This support is not present
in diag logging.
Enable SAE auth frame caching for diag logging.
Change-Id: I205bd2fd1c91253d1e6aaf3361857baf67ccd6fd
CRs-Fixed: 3254216
In certain concurrencies the total WOW patterns sent
to FW is exceeding the FW limit of five patterns which
can lead to ping failure as FW may drop the packet.
For STA mode ML adapter, send only the MLD MAC address
on which the data packet will be received.
Do not send ARP pattern in SAP/P2P-GO mode which is
sent with length zero.
On successful pattern delete request sent to FW,
decrement the default pattern count.
Change-Id: Ib45cf797a4bc3c6fbc23a2a95e877d7d8af34629
CRs-Fixed: 3257348
As per single netdev design, if the frame is received on the
on link vdev then retrieve assoc link net device and use that
to send the frame to userspace.
Change-Id: I85b2f7363cfb237877ca945c9b627f2bf89d0f54
CRs-Fixed: 3272194