The regulatory API reg_freq_to_chan_for_chlist() uses num_chans as the
bound to access the array chan_list. While an invalid index INVALID_CHANNEL
is prevented from accessing chan_list, values that are greater than
NUM_CHANNELS are not prevented from accessing the array.
Prevent access to the array when the index is greater than NUM_CHANNELS.
Since INVALID_CHANNEL is also greater than NUM_CHANNELS, the existing
condition that prevents access to the array when num_chans is
INVALID_CHANNEL can be removed.
Change-Id: I8b9793b84fc5b3a9406389fd3482673dd4667cfc
CRs-Fixed: 3196165
Bypass management Rx reorder if the number of MLO vdevs the
given pdev is zero.
CRs-Fixed: 3194267
Change-Id: Ia286999fdf99bb2b77008c31dfb3a52731cd5167
As part of MLO stats feature, add support to send ll_stats
and get_station stats request to firmware for all the MLO vdevs.
Change-Id: Ic50a6294f868f0604d4cfc0d4b657b6085da2fb4
CRs-Fixed: 3181020
Add the variable sta_sap_scc_on_indoor_channel in
psoc and pdev reg objmgr, to access the INI value of
sta_sap_scc_on_indoor_chan
Change-Id: Ie0c41d75d0f617274743f5196e65dab93414b7eb
CRs-Fixed: 3191788
Replace qdf timers with HR timer for pre CAC timeout and process
the preCAC completion work in workqueuecontext.
Since preCAC expiry is processed in H/W interrupt context
(while using HR timers), no other timer cancellation is allowed
('qdf_hrtimer_cancel' function will wait for the handler finish)
But if we process the preCAC timer completion work in H/W context,
other timer cancellation will take time. To fix this, process the
preCAC completion work in workqueue context to allow other timer
cancellation.
CRs-Fixed: 3185213
Change-Id: Iaa24055e0d485f613e16d6110d22002fecf10821
MLO peer attach fails if MLO peer with same MLD address gets
created. While freeing MLO peer, releasing of link peer ref
is missed
Fixed some of the corner cases handling with ml peer id, AID
Change-Id: Ia3ff13a3840083bfe389b39086a6c5aa1f709fca
CRs-Fixed: 3185069
Currently 6 GHz channel flags are not set for channels
present in the list from PNO scan request but are set for
all other 6 GHz channels which are added when either of the
two below conditions are satisfied
1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag
in PNO scan request.
2. At least one 6 GHz channel is present in the PNO scan req.
Add flags for channels in the PNO scan request based on the
scan_mode_6g ini configured similar to active scan request.
Add changes to remove the RNR flag for the channel if the
corresponding short SSID entry is present in the RNR db
Cache since if colocated SSID is different userspace doesn't
include corresponding 2.4/5 GHz channel information in PNO
request.
Change-Id: I22c4f7ecf65d4ab09dfbbe126aefe02f9145de42
CRs-Fixed: 3119113
Disable obss scan for all vdevs under each pdev
when try to suspend, not just only disable the first one.
Change-Id: I52e46f43727acf004165f39a262b018dc174cc7f
CRs-Fixed: 3190706
Count the MLO vdevs in a pdev. WLAN_VDEV_FEXT2_MLO feature
flag in vdev object is set for all MLO vdevs. Simple solution is
to increment/decrement the count on every set/clear of
WLAN_VDEV_FEXT2_MLO feature flag. Since this feature flag will be
set/clear at multiple places for a given vdev, this approach
will lead to wrong MLO vdev count. To fix this we need to
increment/decrement the count on first set/first clear of
WLAN_VDEV_FEXT2_MLO flag. Add a lock also to prevent the race
conditions.
CRs-Fixed: 3106235
Change-Id: Ice7edde04553088fbb7c9b769508d441ccd6e4bf
Add AFC regulatory target interface to support AFC device
deployment indoor or outdoor type in init sequence between
FW and host
Change-Id: I3caed77e943fdcaa947cb7e514c88b68604f55a3
CRs-Fixed: 3190262
Add AFC device deployment type support in regulatory pdev
private object and add API to return the deployment type
Change-Id: I45e44766b25b21ce3024d73f4ed7a4daf3ecb026
CRs-Fixed: 3190240
Create data structure to store the deployment type(location) of AP for
AFC. Append this structure to the end of AFC start request.
Change-Id: I19756fd3ca7a77f11b673d2bf3b0382f29732847
CRs-Fixed: 3177624
Declare the AFC deployment type enum and add deployment type member to
pdev_priv_obj.
Change-Id: Id11a0aac4fcc1b655436d9dbd876607178f27bd4
CRs-Fixed: 3186216
When AP moves from DFS to NON-DFS channel, dfs chan state is
not updated and have state DFS_CAC_STARTED. Similarly, if the VAP
operating in a DFS channel goes down, the dfs chan state needs
to change to DFS_CAC_REQUIRED but the dfs chan state remains in
DFS_CAC_STARTED.
During CAC STOP, send the DFS event CAC RESET to change the dfs
chan state.
Change-Id: I21831e2c79da67375f8e340964f899ebd169fd85
CRs-Fixed: 3160346
"-" is used to differentiate between state and substate.
User "_" in substate string convention to avoid confusion between
state and substate strings.
Change-Id: I9efb8fd7edd60f5d28c8f774fb17bda49e64ca24
CRs-Fixed: 3188646
Userspace sends the vendor command WIFI_TEST_CONFIGURATION by
setting the attribute WIFI_TEST_CONFIG_IGNORE_H2E_RSNXE when
driver needs to ignore the SAE H2E mismatch for 6 GHz connection.
This is needed for certification test support
Change-Id: I5c1838598478ab74d72d57a765452d7fd989b701
CRs-Fixed: 3072578
- Add NULL check of the pointer "afc_req" in the function
reg_get_partial_afc_req_info() before it is dereferencedi to avoid
NULL pointer derefernce.
- Add array size check in the reg_compute_chan_to_freq_for_chlist()
API to avoid the array out of bound access to "chan_list" array.
- Make use of the function reg_is_supp_pwr_mode_invalid() which
does the boundary check for the arrays chan_info->state_arr[] and
chan_info->chan_flags_arr[] to avoid out of bound array access.
- Add a check in the reg_freq_to_chan_for_chlist() API to avoid chan_list[]
array out of bound access.
Change-Id: Ifcade9e971a77f483d5c5138206eab47454f28ad
CRs-Fixed: 3184214
In mlo_ser_set_link_req, req is again allocated and thus
the req->ctx.cb_arg doesn't points to the new memory.
so avod reallocating the req memory again in
mlo_ser_set_link_req and use the passed memory directly
as umac_cmd.
Change-Id: I0bdc9cf746b2a36c69b5ca0f773f06900a9783dd
CRs-Fixed: 3188736
When hidden SSID is enabled, the offset at which the SSID IE exists
in a beacon buffer is first calculated, after which the extra length
is added to the beacon skb.
Since this increase in length may change the start of the data in
skb, reassign the start pointer remembered locally
to the data pointer of the skb before adding the SSID configured.
Change-Id: Ida32927de5986105efdc10c5115466fe071aa9f3
CRs-Fixed: 3169213
Since the idx is always initialized zero in function util_scan_parse_rnr_ie.
If there are two or more RNR IEs in the frame, then the RNR info is
overwritten by the last one.
Change-Id: If6d47871267ea43c3a5b3130cae73ebd0de45930
CRs-Fixed: 3183233
Add support to manage Wifi pos vdev private object. Add new peer
type in enum wlan_peer_type. Add rx_ops and register the rx_ops
for PASN peer create/peer delete request.
Register 11az PASN related WMI events in target if.
Change-Id: I2a5e4d8d7c9b9562d9ab02b287957e93ee6f4758
CRs-Fixed: 3154521
Due to moving to 11be D1.3 old eht ops is seen as invalid and
unnecessarily flooding console. Moding these prints to debug level.
Change-Id: Ibb21ffe9ed670c9ef9bc1e6d91f90ea5118a78f3
CRs-Fixed: 3185395
Frames which are received in parallel across links should not be
discarded as stale frames. Exclude frames received in parallel from
stale frames.
CRs-Fixed: 3183145
Change-Id: I218f24658307244b3d5fbad09c6ccf2e42221138
T2LM negotiation happens per MLD level. Hence, define the T2LM related
structure in wlan_mlo_peer_context.
Add API to get the protected EHT action frame subtype.
Change-Id: Ia3870fbb38b8d673f96954af18078c96d20365f3
CRs-Fixed: 3167178
Use the PPDU duration given by FW to find the end time
stamp of management frames.
CRs-Fixed: 3181500
Change-Id: Ibabe82c8e2d3cd7e494e764a9a2baeded89a7300
Add an API wlan_reg_get_best_pwr_mode, to get the best_power_mode
based on AP's primary channel center frequency and AP's operating
bandwidth. The best power mode that has the maximum EIRP power
allowed for operation among the 3 AP types, i.e, LPI, SP and VLP is
chosen as the best power mode.
For example:
If primary channel center frequency = 6115 MHz and AP's operating bandwidth
is 80 dbm. If,
LPI EIRP = 30 dbm
SP EIRP = 33 dbm,
VLP EIRP = 27 dbm,
then the best power mode returned is SP.
Also, remove the static declaration of reg_get_subchannels_for_opclass
so that it can be called by wlan_reg_get_best_pwr_mode.
Change-Id: I89b6bc35b5c15a49e2d49265c8685f9d291fb48e
CRs-Fixed: 3163714
Add API to get the MLD capabilities from a given Basic variant Multi-Link
element or element fragment sequence.
Change-Id: I9f0d8069a970523948fd604b4977efd3d41a4d2d
CRs-Fixed: 3177254
Add new files in Wifi-Pos module to support PASN authentication.
Introduce new API to handle 11az ranging peer create, to handle
PASN peer create response and manage the PASN peers to initiate
external authentication to userspace.
Change-Id: I0b638d3cfca2753074fdb56ad78373f842ca80ee
CRs-Fixed: 3150241
Add new public structure file for Wifi_Pos module to define
11az related structures & enums, vdev private object for
Wifi Pos module.
Change-Id: Ia8b8ebb3b36cc8f1d9598629e63d15a0f16301c7
CRs-Fixed: 3150228