Add fix to update msdu start bit and other bits in network buffer.
Here is the list of bits set in network buffer
a. msdu start bit,
b. msdu end bit,
c. packet is MCBC and da bit is set
d. da valid bit is set
e. sa valid bit is set
Change-Id: I2abf346de36a7f5ac7f86b33615145bb02065dc2
CRs-Fixed: 3479230
Below code changes are made
1. Correct 5 GHz reg rules for APL 26/27 RDs.
i. APL26 changes
a. CHAN_5170_5330_3 is split into CHAN_5170_5250_8 and
CHAN_5250_5330_12 To mark missing radar frequency range.
b. CHAN_5490_5730_3 changed to CHAN_5490_5730_5 to mark the
frequency range as radar indication range.
ii. APL27 changes
a. CHAN_5250_5330_10 and CHAN_5490_5730_4 are changed to
CHAN_5250_5330_7 and CHAN_5490_5730_1 respectively to mark the
frequency range as radar indication range.
2. Remove duplicate entry CHAN_5735_5835_8 (duplicate of CHAN_5735_5835_1)
Change-Id: Ib9d0e7455d489451da8beb71175e9a9b4ff6d3ca
CRs-Fixed: 3447101
Clear the peer-level tid-to-link mapping and set
direction to invalid if-
1) Host receives updated T2LM info through
critical update.
2) There are two T2LM elements received in beacons
and mapping switch time expires for first mapping.
Apply the second mapping.
3) There is a single T2LM element and its mapping
switch time expires. Apply default mapping.
Also, initialize peer-level mapping structure
when a new peer is created.
Change-Id: I1d06ec5f2f5aa398724213a3be08b6588f78c9b0
CRs-Fixed: 3435329
Correct 5 GHz channels reg rule for CC PK.
a. Split CHAN_5170_5330_3 into CHAN_5170_5250_8 and CHAN_5250_5330_12
to mark missing radar frequency range mark.
b. Change CHAN_5735_5875_8 to CHAN_5735_5875_3 to change regulatory
power value to 30.
Change-Id: I48027de034a0cf39fe8135ffdb180b8b3fcf133e
CRs-Fixed: 3459453
handling multicast packets in the case of proxy arp
along with MLO MCAST.
1. stamp the host inspected bit for GSN based packets.
2. trigger dp_tx_proxy_arp from the reinject handler.
Change-Id: I8aea1e4fd4e61f4cc6a5dd6d8b5151c1a9bf2fac
CRs-Fixed: 3465975
Scenario: There is dual sta present in HBS mode in DUT where one
sta is on wlan0 interface and it has 11be capability, so it has
formed ML connection with ML AP. The another STA is present on
wlan1 interface and this STA also supports 11be capability. But
as per current design, host supports 11be with MLO. It doesn't
support 11be alone. Also 11be with MLO is supported only in wlan0
interface. So for another connection which are present in wlan1
interface, even if it supports 11be host will downgrade to 11ax
and form connection.
During the formation of second connection, host will sends peer
create command(WMI_PEER_CREATE_CMDID) to firmware. Before sending
this command, host checks only eht cap in cm_create_bss_peer()
and fills the mld_mac addr. Because of that, DP assumes that
there is an ML connection and it creates MLD peer on wlan1
interface. Due to this, it causes ping failure on wlan1 interface
as the ICMP response might be coming on incorrect peer and it's
getting dropped.
As part of fix, check eht cap as well as vdev is mlo supported or
not in cm_create_bss_peer()
Change-Id: I60dbb8ee91025266d0b9b48075dc2db9a407e015
CRs-Fixed: 3454128
Correct wrong frequency mapping for APL25 RD.
a. CHAN_5170_5330_3 is split into CHAN_5170_5250_8
and CHAN_5250_5330_12 to mark missing radar frequency
range.
b. CHAN_5490_5730_9 is split into CHAN_5490_5590_4 and
CHAN_5650_5730_4 to mark the frequency range as radar
indication range.
c. Remove unused reg rule CHAN_5490_5570_1
Change-Id: Iabeba570c1c0edde9221db9bc38beac59de6e179
CRs-Fixed: 3447198
It is observed that in some corner cases msdu count received
in montior destination ring descriptor is unreliable as a
result some of the link descriptor and associated monitor buf
descs are not returned. This change return such missing link/buf
descriptors and free associated buffers.
Change-Id: Iaad476b8e7a0372122981fd29c1f6e4685137817
CRs-Fixed: 3483157
Wireshark give RNR Neighbor AP bit swap which cause the RNR issue.
Create a index and bit size macro for Neighbor AP Information
field of Reduced Neighbor Report element to fix the issue
CRs-Fixed: 3462470
Change-Id: Id894bb094e3a36fe869c3897ee674d517e1e78d1
1. Read the new service capability:
WMI_SERVICE_CCA_BUSY_INFO_FOREACH_20 MHz: Via this host knows
whether FW supports reporting of CCA busy info for each 20 MHz
subband of wideband scan channel or not.
WMI_SERVICE_VDEV_PARAM_CHWIDTH_WITH_NOTIFY_SUPPORT: Via this
host knows whether FW supports VDEV param channel width switch
with OMN/OMI notification or not
2. Register osif callback to send scan done indication to upper
layer
3. Add 2 new scan flags pause_home_channel and
report_cca_busy_for_each_20 MHz
Change-Id: I63d561a3c5f8e49a3ca42d956e6b630c63edeaf4
CRs-Fixed: 3460901
wmi_handle is accessed after free to set wow_enable_ack_failed flag.
Move this to correct place to fix use-after-free access
Change-Id: I8cc956bd433776adda3ff6cca26e7c164877184d
CRs-Fixed: 3485102
Currently host is sending t2lm info to firmware multiple
times when mapping switch time expires.
Fix is to check if new beacon/prb response has updated
mapping before sending the t2lm information.
Change-Id: I10182652bf77ede2dd94bedbc1c3a76a6bc3a7ff
CRs-Fixed: 3438997
Currently the code to support Multipass on SAP is
present along with the code to support WDS. Hence with
the code in its current state, we will not be able to
enable Multipass support without enabling WDS.
Move the multipass support code out of the WDS support
code, to be able to enable Multipass for chipsets which
do not use WDS.
Change-Id: Id17035f1ada9bde56ca2c61fd4688fa3454b0b11
CRs-Fixed: 3479991
Currently in driver, we use memcpy() to copy data stored
in log buffers to multiple fields in the struct tAniHdr.
But from kernel 6.1, if FORTIFY_SOURCE feature is enabled,
then kernel warns of field-spanning.
To resolve this issue, assign a void pointer to the struct
and use it in memcpy().
Change-Id: If4d089f4118c573ef57b87b83f9a350da1674b2b
CRs-Fixed: 3465600
Free the tx descriptors borrowed by direct switch
back to regulartx desc pools.
Change-Id: I2898e57ce5eff54c1787dbebd166482d9fbfc585
CRs-Fixed: 3444334
In the AFC Enterprise mode, the AFC response-payload may need to be
reset from host. The payload reset is done by sending
WMI_SERVICE_AFC_RESET_SUPPORT subtype in the WMI_AFC_CMD to the target.
In response, the target sends the WMI_AFC_EVENT_TIMER_EXPIRY event with
WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LOW_POWER_MODE (in indoor deployment) or
WMI_EXPIRY_EVENT WMI_AFC_EXPIRY_EVENT_STOP_TX (in outdoor deployment)
event subtype to the host.
Earlier, the WMI_AFC_EVENT_TIMER_EXPIRY event was sent only in
non-enterprise mode. Now, since it can be sent for both enterprise and
non-enterprise mode, we need to take care of 'afc_reg no action",
which is mandatory in case of enterprise mode.
Therefore, implement the following changes:
1) Call trigger_acs_for_afc only if afc_reg_no_action is not set.
2) Send the AFC payload reset event during SWITCH_TO_LPI and STOP_TX
event, and free the AFC payload received from the target.
3) Add APIs to register a callback to send the AFC payload reset event.
Change-Id: Ib5b3a6f51bbdf2061460fd957ca3c0ba66f23fa9
CRs-Fixed: 3462953
Add new QDF APIs to handle gpio, irqf and timer related
handling in TSF feature.
Change-Id: Iff6f85c6debe351c5533906559400b4a51333d4d
CRs-Fixed: 3469020
update the local ring mask after setting the service running flag
to avoid the concurrent access issues.
Change-Id: I209d22858f8ac7509b5337fdb1ebfe38699790e1
CRs-Fixed: 3461866
TWT requestor must set enable/disable for rTWT when device connects
to AP. Set r_twt_enable param in TWT enable operation.
Change-Id: I24c60802b49cef6486bd7df97c1833fd6d89aac1
CRs-Fixed: 3463468
For cases DP_11B_CCK_RATE, DP_11A_OFDM_RATE and
DP_11G_CCK_OFDM_RATE, variable num_mcs is not set and is
assigned 0 which is used as a divisor to get the MCS value.
To fix this, return 0 for above mentioned cases.
Change-Id: Ic1d2dce93a3aa55c323e1f75d30c5f9371822280
CRs-Fixed: 3479813
Get the bit value from ini config and populate the resource_cfg,
flags2 bit related to rf_switch which will be later passed via
WMI INIT command to FW.
Change-Id: Ic642dda55850a49944bcf43838c7c5c79bed3587
CRs-Fixed: 3475088
In the monitor mode case if some entry status entries are
not received then after the next monitor interface up host tries
to process pending old destination ring entries. As host drops
1 destination entry after processing 16 status entries if the entry
is not present in the status ring. which in case there is a high
number of old entries in the destination ring will result in the
destination ring getting full.
To fix the issue force flush monitor destination ring
during vdev delete.
Change-Id: Ie23a57add7b5bd372ab66f801e29e55cfacb5d4d
CRs-Fixed: 3411943
When FEATURE_RX_LINKSPEED_ROAM_TRIGGER is not defined,
function dp_rx_rates_stats_update declared without link_id argument,
this will get building error. Add the link_id parameter to fix too
many arguments of function call building error.
Change-Id: I311d520e106f2e6f9e2c11c76cc841840821ccae
CRs-Fixed: 3477778
In independent repeater scenario when STA connects to root AP on different
channel as that of AP Vdevs, then txCSA is used to move the AP vdevs
to the new channel using FW_VDEV_RESTART.
If a ML-AP vdev is stuck in MLO_SYNC_WAIT state, then TxCSA is not
processed which would lead to MVR timeout.
Add change to handle FW_VDEV_RESTART event in SYNC_WAIT.
Change-Id: If7359a5a39ed9478c813b8eb0f97a6a0d07e1ba1
CRs-Fixed: 3477635
The airtime stats last_update_time is getting updated within the loop
causing higher AC values to go out of sync.
Update airtime stats last_update_time after the loop
Change-Id: Icdb33335284e0a92b90c72099c18b6bc7690275c
CRs-Fixed: 3476253
When IPA_WDI3_TX_TWO_PIPES is enable and DP_MEMORY_OPT is disable,
compilation issue is seen.
Fix is to correct the syntax.
Change-Id: Ibd23555f1a8a782a937883510b1e56eb20581604
CRs-Fixed: 3471564
Export the wlan_reg_freq_width_to_chan_op_class() API.
API will be used by Change Id I69106463a587bf0717dbce3067b69bb7272ca976.
Change-Id: I3c751ccd6499bc0de48bdbb6086cf3ec7c8e9b88
CRs-Fixed: 3443845
Currently g_instances_added is not decremented correctly
in scenarios where IPA callback fails. This prevents
freeing the g_ipa_config memory during deinit, causing a
memory leak. This change will ensure that the instance
count is decremented correctly as part of deinit
in both success and failure scenarios.
Change-Id: I40fd14f6f441d1314eebf8c5d33616c824398a6f
CRs-Fixed: 3472760
Fix the following 2 memory leaks in Rx monitor path:
1. When MPDU queue is empty and MON_BUF_ADDR_TLV is received,
then free page fragment memory.
2. In case of small size packets, 1 MPDU can have more than
2*QDF_NBUF_MAX_FRAGS fragments wherein each nbuf can have maximum of
QDF_NBUF_MAX_FRAGS frags. In this case, add the frags to nbuf in the
following way.
parent_nbuf (QDF_NBUF_MAX_FRAGS frags attached)
|
| (fraglist)
|
----> tmp_nbuf1 (QDF_NBUF_MAX_FRAGS frags attached) ----> tmp_nbuf2
(next)
Change-Id: I54e8162bf0b9da8629a3c80d123421fbeaf8df11
CRs-Fixed: 3453676
If host receive REO error code 0 - NULL REO queue descriptor from
REO exception ring, it will be raw data and likely spread across
multiple msdu buffers for amsdu packets. in this case, only the
last msdu will contain the valid rx msdu length, but currently host
use msdu length from head skb (msdu length is 0), then the sub-skbs
followed after head skb will be leaked as following,
(1) dp_rx_sg_create() fail to add sub-skbs into frag_list of head_skb,
then sub-skbs still exist in head_skb->next.
(2) As peer_id is not valid, dp_rx_null_q_desc_handle()->
dp_rx_chain_msdus_be() will configure head_skb->next = NULL during
DP_RX_LIST_APPEND, then all sub-skbs get leaked.
Get msdu length from last skb and overwrite it in head_skb, then
dp_rx_sg_create() will process all skbs correctly.
Change-Id: I1953afb4e3b44450ff5e8269ef0f4f0c38e1d446
CRs-Fixed: 3476534
If PMKID present in AP expires, AP rejects the PMKID based association.
Current design is to clear the cache using BSSID/MAC address of link
in such cases to let a fresh SAE authentication to happen.
But host driver stores PMKSA with MLD address for ML BSS.
Adapt to the same and update PMKSA cache clear APIs to use
MLD address instead of link address.
Introduce new API which return the legacy address for non-ML
association and MLD address for MLO association of the BSS peer.
Use this API to get the correct entry from PMKSA cache to delete.
Introduce new utility API to fetch the MLD address from scan entry.
Use this API to get the MLD address of the ML candidate.
Change-Id: Id35a3937ba6649e8ba7ae8f849ac1ed2a9cc83f8
CRs-Fixed: 3453839
Fix QCA5332 256M profile compilation by featurizing
WLAN_MGMT_RX_REO_DEBUG_SUPPORT. Make sure compilation passes when
WLAN_MGMT_RX_REO_DEBUG_SUPPORT is disabled by adding stub functions.
Change-Id: I10dcba7cdb08ba5b74ef32546640d0d713acd84a
CRs-Fixed: 3437018
Define a new attribute QCA_WLAN_VENDOR_ATTR_CONFIG_AP_ALLOWED_FREQ_LIST
to configure the full list of allowed frequencies for the AP operation.
The configuration is valid only from the next BSS start until the BSS is
stopped. The drivers shall filter out channels on top of this list of
channels based on regulatory or other constraints. This can be used to
specify user's choice of frequencies, allowed list of channels with
static puncturing feature, etc.
Change-Id: Ib74acf2df17d8eb0fb65febc3b3cf54c39de6fc4
CRs-Fixed: 3453682
Add a vendor feature flag for the driver to indicate support
for allowed frequency configuration in AP mode.
Change-Id: I5c4483b229fa68c89a80272ec1ae3f5a95452f6d
CRs-Fixed: 3454926
From the driver, call wlan_mlo_dev_t2lm_notify_link_update()
API whenever there is a link update happens using T2LM.
Change-Id: I51be6eafcb558bcf54919bead8c93227c33be194
CRs-Fixed: 3431540