Classify the ICMP request packet and mark it to be
sent to the firmware in the packet control block.
Add an INI which indicates the time interval for
marking the ICMP requests to be sent to FW.
For the INI value:
-1, indicates to mark all ICMP requests to be sent to FW.
0, indicates that none of the ICMP requests will be sent to FW.
> 0, indicates the time interval for marking ICMP requests
to be sent to FW.
Change-Id: Ia9c41765cef64a4f5fd19019df595c9e7fd657e9
CRs-Fixed: 2826444
Currently the driver checks whether hw is
already in DBS in the function
policy_mgr_check_and_set_hw_mode_for_channel_switch
and it does not set hw mode if it is already
in DBS mode. It can happen that SMM is already
requested and is present in serialization and it
would change the HW mode from DBS->SMM and if
driver starts any vdev on 2.4ghz in HST/HSP
which requires the DBS mode for 2.4ghz , the FW
would send a vdev start failure.
Fix is to remove the check of current hw mode and
let DBS be posted to serialization. If hw mode is
already in DBS it would return from serialization
with E_ALREADY but would ensure that HW mode is
always in DBS for a 2.4ghz connection.
Change-Id: Ica660058175cb1edc2931dd2d28ee6cdd9bab2f4
CRs-Fixed: 2823238
Currently the driver uses the API
policy_mgr_is_dbs_enable to check
whether the DBS is enable or not which
does not check the service capability of
DBS, and thus would return true if ini
and FW HW modes contain DBS. In this case
if STA is on 5ghz and SAP comes on 2.4ghz
then force SCC would not happen as the
driver would consider the HW to be DBS
capable which actually is not, and thus
the overall concurrency would be MCC which
is not favourable.
Fix is to use policy_mgr_is_hw_dbs_capable
API instead of DBS enable API which checks
for the service bit also, so that the driver
forces SAP to STA's channel.
Change-Id: I9319293ecfb54fe3e1ad0eaff15542c671514bf4
CRs-Fixed: 2820377
The issue happens in dual sap case, one sap receives peer's auth req and
creates preauth node for the peer, then adds to the list
mac->lim.pLimPreAuthList. Then Another sap (re)starts, it invokes
lim_init_pre_auth_list to set mac->lim.pLimPreAuthList none. In some cases,
the preauth node added by first sap will be "lost" and causes max pre-auth
nodes reached.
Change-Id: I9f5e99095900472a7c77c6b3273eda3c91dded00
CRs-fixed: 2820407
Presently host updates STA disconnection reason codes without checking
frame type in lim timeout handler, due to that host fails to update
assoc reason codes user space. Hence while processing timeout handlers
in lim check frame type and update proper STA disconnect reason codes
for auth and assoc.
Change-Id: I0d11f58e75fcfb79b61221fe192f5da1f5b5f4ee
CRs-Fixed: 2824686
Currently RX_DIAG_WQ_MAX_SIZE is set to 0. Which means, there is no
limit to the number of FW diag events that can be queued for processing.
This may result in SKB memory pool is being blocked by FW diag events.
To avoid this, set RX_DIAG_WQ_MAX_SIZE default value as 1000.
Change-Id: I44c69f910a512d8f9a1aed0809c55c6d93737cb2
CRs-Fixed: 2824443
In the scenario where IPA UC ready work is processed after
wlan_ipa_uc_ol_deinit, triggered as part of idle shutdown,
there is a possibility for NULL wbm srng pointer derefernce
when setting the tx doorbell address.
Fix is to avoid scheduling UC op work when deinit is in
progress.
Change-Id: Ifa0908912b77f45b7d93c5f9c2f5aaf9e17685c5
CRs-Fixed: 2807218
Add a check for passive channels when checking the restricted
bands on SAP. This change blocks SAP from restarting on a passive
channel.
Implement the function to filter out passive channels from the PCL.
Change-Id: I80a4b78c1af77f5bfa68be3163f9e9a78cc6425a
CRs-fixed: 2817589
firmware sends Hw-limit tx power in vdev response and roam sync.
Do not loop back the same value to firmware; since firmware already
knows the value.
Change-Id: Ie9ba329516d5d75329bb1baaed13c8bdb7d1eb83
CRs-Fixed: 2823108
In mission mode, add support for virtual add/del monitor
mode interface. In addition to STA vdev, create and maintain
a new vdev for monitor interface.
Change-Id: I91ea8e56976cce92f9b1ae308d4bd0fb30815366
CRs-Fixed: 2818499
Add new ini "monitor_mode_concurrency" to support this feature
and introduce policy manager api's for concurrency checks.
Change-Id: I35ee1fece0a6f9ae8fe340b0598c4a3e20b17e82
CRs-Fixed: 2814523
Currently, FW diag logs, management frames and stats responses are
processed in worker context. Because of this, there is a possible
out of memory scenario when there are huge number of diag events
waiting in work queue.
To address this, process diag events in a separate worker thread and
set the limit for the number of diag events that can be queued in
work queue.
Change-Id: Ib9f7b8042479e8b2f4d67c9a4250932b018f29a4
CRs-Fixed: 2821534
Currently when driver receives CSA, it uses channel number based
api to fill the channel params which does not work for the 6GHz
channels and may give incorrect results, which may result in
unexpected behavior.
To address above issue use frequency based api to set channel
params which gives correct results for all the bands.
Change-Id: I1e94a9fdac8dfae471ec83e9304d33cf154e49e1
CRs-Fixed: 2812548
When sending WMI_VDEV_SET_IE_CMDID, do an intersection between
gChannelBondingMode24GHz and target capabilities for 40 MHz
channel width support and 20 MHz in 40 MHz HE PPDU in HE PHY
capabilities IE.
Change-Id: I9c2b3200f35fa6ffb11e5165cec64a23645241c3
CRs-Fixed: 2738040
This reverts Change-Id: I94adadb0b3314a571f6a16a78285d444c007d9d5
until ABI is updated.
Change-Id: I12a736b1e8650e3e4764f1920431ce04bab09ac9
CRs-Fixed: 2802830
Currently in driver when value is set as QCA_SETBAND_AUTO for
QCA_WLAN_VENDOR_ATTR_SETBAND_MASK attr in QCA_NL80211_VENDOR_SUBCMD_SETBAND
command, it return invalid argument error instead of enabling all supported
bands.
To resolve the above issue add a check for the value QCA_SETBAND_AUTO and
if it is true enable all the supported bands.
Change-Id: I0f4f03b8e2e049cc253822582436fd1fabf65133
CRs-Fixed: 2819677
It uses policy of wlan host to check settings from user space in
msm-5.4, which causes user application failed to trigger cfr vendor
command. This change updates nla policy of cfr and let it compatible
with msm-5.4.
Change-Id: Ia7e9bb1e12b4e4f586abb650fe52a62292b0f11d
CRs-Fixed: 2819321
If IPA RX hit back pressure, FW will reroute RX frames to host
by REO2SW1 ring(reo_destination_indication 2), this might introduce
FISA RX ring mismatch issue.
Bypass FISA if IPA RX packet rerouted to host by
reo_destination_indication 2.
CRs-Fixed: 2820235
Change-Id: Ife8f2168e1942204cfc66a2a135cb93c9a1e9910
When firmware sends wma_csa_offload_handler() event, peer should
switch to new channel and update network type. But only frequency
is getting updated, network type is old.
Add check to update network type based on channel frequency
Change-Id: Icd70823f98cfd528863cfb9ec1c2bf5e78e9912b
CRs-Fixed: 2813847
Currently, In P2P Connection, After SSR P2P CLI is
disconnected but P2P GO is still showing connected
with the P2P CLI in kernel 5.4. Beacause cfg80211_ap_stopped
API does not work for kernel 5.4.
Add the cfg80211_stop_iface API to stop P2P GO after
SSR in kernel 5.4.
Change-Id: I94adadb0b3314a571f6a16a78285d444c007d9d5
CRs-Fixed: 2802830
Problem scenario:
1) Host gets Firmware down indication and stops all timers.
2) While processing association completion, host sends disassoc if
user changed reg domain during association and new channel falls
out of current reg domain.
3) Host fails to send disassoc to fw as WMI is in stop state due to SSR
4) Host doesn't check wmi status for disassoc tx and on failure depends
on disassoc ack timer to complete disassoc cnf.
5) As host stops timers on firmware down indication, disassoc ack timer
doesn't trigger and host fails to complete disassoc cnf action. Which
lead to stuck the vdev state machine at suspend down and peer refs
remains undeleted.
To fix this issue check the status of sending the disassoc, and if the
disassoc failed to send then perform the follow-up actions that are
normally performed upon receipt of the disassoc confirmation.
Change-Id: Ic2b88cfcbcb755a869ee281be4e1e8a9cec8299b
CRs-Fixed: 2816503
Currently, the logs in SAP data Tx path are not rate limited.
If there are any error scenarios in throughput tests, this may endup in
continuous logging of the error messages.
To avoid this rate limit the error logs in SAP data Tx path.
Change-Id: I062b52c90e1e7ed85e74cc774f7817159f98eee6
CRs-Fixed: 2811093
If data stall happens, both LFR3 roaming and NUD may happen,
if LFR3 happens first, updated connected bssid, NUD handler will
add new bssid to blacklist and trigger roaming again by mistake.
Fix: Once roaming succeed, reset NUD status to NUD_NONE to finish
current NUD cycle, but don't zero gw mac addr since roaming does't
update gateway.
Change-Id: I03685ca21348444d929e042f12dc3a837ca51940
CRs-Fixed: 2818785
Vdev is NULL before completion of hdd disconnect process
Use hdd_objmgr_get_vdev() to get vdev reference and then pass it
to ucfg_if_mgr_deliver_event(). After using, release the
reference.
Change-Id: I683851a2b7b4376440637edc70b7fdaf71acfbd0
CRs-Fixed: 2812480
As part of power optimization to club LL and get stats request add
a debug log to indicate when cached get station stats is getting
returned to user space.
Change-Id: Id1f80e1589c1913d0129b435cd2bdbd807800230
CRs-Fixed: 2814701