The current host driver maintains a singular global mac session
for the timer. In situations where the SAP timer runs in one context
and P2P operates in another, the P2P GO context might unintentionally
halt the timer in global mac context for SAP.
Scenario:-
Initially host driver created SAP at index zero, After that it created
another P2P GO at index one before calling start bss api host driver
was trying to stop the interface and dfs timer offload was running for
SAP at index zero, As host driver never initialized cac offload for
P2P GO and dfc timer is running on global mac ctx and it was trying to
destroy the timer during hostapd deinit without even calling timer init.
This is due to absence of checks to validate whether P2P initiated
the timer.
This modification ensures that the timer initiates only when not running
in any session and halts only when the mac ctx and SAP context share the
same vdev id.
Change-Id: I77e14f660b946e8d1a815030f11ad36c14fc8bc4
CRs-Fixed: 3615156
Previous code change results in incorrect pointer
assignment for class variable. Fix this by returning
class_create value, and explicitly assigning class
to this value.
Change-Id: I8fd53fe0c6825cf6bdf4786ca2788044d71a8e86
CRs-Fixed: 3638971
User can set following combination of configs in vendor command for
packet capture mode:
1. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON: to receive all mgmt frames but
no beacons
2. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON + PKT_CAPTURE_MGMT_CONNECT_BEACON +
connected_beacon_interval : to receive all other mgmt frames and only
connected SSID beacons at particular intervals
3. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON +
PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON: to receive all other mgmt
frames and beacons only during scan.
But with current condition connected SSID or scan beacons config will
not be sent to FW as host checks for PKT_CAPTURE_MGMT_CONNECT_NO_BEACON
config only. Also, on reception of any beacon, host checks for only
PKT_CAPTURE_MGMT_CONNECT_NO_BEACON and if it is set, host drops the
beacon which is wrong.
So, enhance the conditions to send config to FW as well as
remove the condition on reception of any beacon so that connected SSID or
scan beacons are forwarded to packet capture interface when connected
beacon interval config or PKT_CAPTURE_MGMT_CONNECT_BEACON or
PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON is set by user in vendor command
along with PKT_CAPTURE_MGMT_CONNECT_NO_BEACON config.
Change-Id: I246b175f1c88ed45214527880ba14cdc17bf8206
CRs-Fixed: 3604708
Currently, host driver takes vdev reference while sending coex
logging config to the target. If user issues logging config
command before creating vdev, then vdev will be null and
dereferencing it causes crash in driver.
To fix this, add null check for vdev just after taking reference.
Change-Id: I91d7834ecdc506a7b7a20b38a7c8150bd22adb72
CRs-Fixed: 3637112
When scan is complete, tdls notifier tries to update the
tdls_current_mode for all available TDLS & P2P vdev. This causes
the TDLS current mode to enabled wrongly and further add peer gets
honored for P2P Client vdev in STA + P2P client concurrency.
So avoid changing current mode for P2P cli when STA vdev is
present.
Also add check for P2P CLI mode in tdls_check_is_tdls_allowed()
to avoid tdls commands going on P2P client vdev.
Change-Id: I681de9781a4892e307681da5699ca7b30f8f9651
CRs-Fixed: 3626695
If LL_LT_SAP is already present and if STA tries to
come up on same mac, then it may result in data loss
on LL_LT_SAP as STA will need ROC on the connection
channel for some time, to avoid these data loss during
STA connection, add logic to switch the bearer for LL_LT_SAP
data to non-wlan and once connection completes, switch back
the bearer to wlan.
Change-Id: I7ace6c6f4f41548ec112882dc81be6c6b5a4eae0
CRs-Fixed: 3627656
MLD is applicable for infrasture modes(STA/SAP) and is mandatory to
operate in 11BE for these modes. NAN/NDI(NDP) may want to use EHT
rates and it's not mandatory to support MLO.
Currently, host driver sets vdev dot11mode as 11AX when MLD address
is zero. But this is applicable for STA/SAP only. So, exempt NAN/NDI
modes from this dot11mode downgrade operation to allow these to use
EHT rates.
Change-Id: Ie43811eb7bd12dbf286617cebe194ced8c28c3f0
CRs-Fixed: 3635961
Current code has compilation errors when building
on sun kernel. Fix this by resolving the errors.
Change-Id: If28a393485cfe4d661e2026ce1f9bc9d6318ca19
CRs-Fixed: 3632177
For certain cert cases involving power save, STA is expected
to wake up only to receive DTIM beacons but Firmware is not
aware of the AP's DTIM period. Thus, Host caches the DTIM period
received from AP within the TIM IE and configures this value as
the listen interval to Firmware via existing WMI.
CRs-Fixed: 3601676
Change-Id: I23e191b00e22b9cd26344ad40f485807d81ed3d8
Userspace can dynamically modify association BW and as part of
disconnect need to reset the BW to original value, if not the
next connection will might happen with downgraded BW.
Currently the restore is happening on deflink VDEV instead of
actual disconnecting VDEV.
Fix this by changing function argument to accept link info
pointer in HDD adapter of that corresponding VDEV.
Additionally, the driver capability for 6 GHz-320 MHz is not
properly restored and further connections to 320 MHz are
happening on 160 MHz.
To fix the 160 MHz downgrade, use original EHT capabilities in
global MAC context instead of using modified EHT cap where
320 MHz support got reset on userspace dynamic BW update.
Change-Id: If2badb0a234f45d57dc186729bc529137d7a5131
CRs-Fixed: 3628940
In api wma_roam_update_vdev(), peer frequency is set before
peer setup which results in band info to be missing in
Datapath connectivity logs after roaming.
Modify api wma_roam_update_vdev() to set peer frequency
after peer setup in order to print band info for
datapath connectivity logs after roaming.
Change-Id: Idc2d6c1cda072f576c26964a0fc0c418760608f4
CRs-Fixed: 3629093
Based on new requirement, add changes to send the vendor event
send audio transport switch request and also add changes to process
the response received as a vendor command.
Change-Id: I4b8804c9021ea8807ca785f81f3df431690029fb
CRs-Fixed: 3626954
Based on the new requirement, host driver needs to send the audio
transport switch request from host driver to user space, to
support this requirement, register os_if callback function with
bearer switch state machine
Change-Id: Ib94ff4d9876e79d984401262253602c975b0fb1e
CRs-Fixed: 3626952
When initial connection was 320 MHz, via command SET_MAX_BANDWIDTH
set channel bandwidth less than 320 MHz, driver disable 6 GHz
connection by disable support_320mhz_6g EHT capability.
In order to allow re-connection with 320 MHz, need to re-enable
support_320mhz_6g EHT capability before disconnect complete.
Change-Id: I8b3203c14893d2c5db658ca42e90de4946c3d836
CRs-Fixed: 3629179
If "override_ht20_40_24g" ini is set, then both
connection and roaming should not happen to the
2.4 GHz BSS in 40 MHz.
Based on this ini, update the channel widthset
capability for the 40 MHz in the HT/HE/EHT cap
IEs after connection. Similarly, after disconnect
reset the capabilities back to default self cap.
Change-Id: I6f7e019f4a8f194a703b503741a57f22509a5d3d
CRs-Fixed: 3623042
Currently, SAP+STA and STA+SAP concurrencies are considered for
320 MHz SAP bandwidth downgrade to 160 MHz/upgrade to 320 MHz
from 160 MHz.
But during MLO link switch, a link gets disconnected and a new
link connection is started. The new link might be of 6 GHz, which
makes the sap_bw_update algo thinks that new connection/candidate
is 6 GHz and it can coexist with 320 MHz with SAP. This drives the
sap_bw_update algo to upgrade to 320 MHz, which starts policy mgr
opportunistic timer. This blocks the link switch(new link
connect operation). But this is not correct as a link is already
present and new link gets added.
Add a condition to check current bandwidth of the SAP and go for
downgrade only if the current bw is 320 MHz.
Also, cleanup the code which restarts policy mgr opportunistic
timer explicitly as timer is anyway started post
connect/disconnect completion. Introduce a new reason
POLICY_MGR_UPDATE_REASON_TIMER_START for this purpose.
Change-Id: Id49632b385cd3554b67be11e02e4e45ce094f0b4
CRs-Fixed: 3632270
Currently, if host fails to get memory for SAP 320 MHz bandwidth
update messgae eWNI_SME_SAP_CH_WIDTH_UPDATE_RSP, it doesn't post
the message to SME and the command which caused the bandwidth
update is not removed from CSR queue. No other command can be
processed in such cases and leads to command timeout errors.
Post the message and handle it in SME even if it fails to get
memory. There could be functionality failures but system would
be functional.
Change-Id: I9e4c412441c9a9db02c7883dd4f64d7d2893a43d
CRs-Fixed: 3631557
Add changes to init bmiss timeout values with
half of CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP
and CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP
if CONNECTION_ROAMING_CFG is set.
CRs-Fixed: 3633348
Change-Id: If2d4a3975c86e3aa50ee98117795ce7c77b0460c
Add changes to handle audio transport switch events in different
states of the bearer switch state machine.
Change-Id: I07568b3c3ccc5877d1e6f46ae5bf12afd3af3ec2
CRs-Fixed: 3626950
When connected 320 MHz AP, use SET_MAX_BANDWIDTH set to 160 MHz,
then GET_CU_SUB_CBW20, driver should report all 320 MHz channel
CU info, so we need record center freq2 for 320 MHz at the time
of initial connection.
Change-Id: I8b8ed049926caa31bfac3c702434b68e5f5a26ae
CRs-Fixed: 3629227
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
Trigger a cds_recovery as a error handling mechanism if
wlan suspend resume fails.
Change-Id: I36cfbc6c1e7820be1b60a73006f93e8a2926c98c
CRs-Fixed: 3632605
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
Currently in the driver, if mac_open fails we just print
the error message and return. To debug why mac_open failed,
crash dumps are required. So, to collect crash dumps use
QDF_DEBUG_PANIC when mac_open fails.
Change-Id: I61f49d002caa0aaf5927c1d0f60c6d805dfefbd9
CRs-Fixed: 3632314
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 in case of 3-link MLO connection, if the standby link
was never active, then driver is not sending any rate_stats to wifihal
as part of MLO Link Layer Peer stats. But wifihal is expecting
rate_stats for every connected peer and since driver is not sending
them for the standby link, LL_Stats response handler is failing.
To avoid this issue, send default rate_stats for the standby link
as part of MLO Link Layer Peer stats.
CRs-Fixed: 3630522
Change-Id: Iba09642b2e00f86c634364bc10cebf3fa7080f74
Add support to configure Power save enable/disable on
specific MLO links based on the link ids.
Change-Id: I63bc332d2afb7e63417b8191dd463f9caa659270
CRs-Fixed: 3616677
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
Join timeout can be configured to 10 times the beacon interval
of the candidate beacon if it is in bounds with the join failure
timeout ini. However, host always configures join failure timer
with the default join failure timeout.
Fix the join failure timeout calculation by considering the
beacon interval.
CRs-Fixed: 3628892
Change-Id: I6c238c7db8ad6925c11fa97b3a698643187fec95