Currently, only single pd_threshold is fetched and
treated as SRG and NON-SRG pd threshold instead of
handling both threshold separately.
Fix is to get SRG and NON-SRG pd threshold from
userspace instead of single pd threshold.
Change-Id: I414843dfd08068c81531d0e96d71fb68d8bfccd1
CRs-Fixed: 3328201
Add "validate_set_mlo_link_cb" callback to mlo link set serialization
request context. Mlo mgr component client can register such callback to
be invoked before set mlo link command to target.
Change-Id: I0e860186dd33fc45b3f662d6af91329f10e4c638
CRs-Fixed: 3324888
A new capability bit from FW is introduced that provides
ADFS 320 MHz support information. supports_adfs_320 signifies
chainmask capability service bit if FW supports ADFS on 320 MHz
channel width. Add this capability bit(supports_adfs_320) in host.
Change-Id: I09c689658ef495d8a8707425ecc9ba922fce4d41
CRs-Fixed: 3317795
Add reg txops to fetch min_psd for punctured SP channels.
min_psd is computed from afc response. Using the min_psd power value,
EIRP is computed for the non-punctured BW using the formula
EIRP = PSD + 10 * log10(non-punctured BW).
Add an entry in bw_to_10log10_map for all possible non-punctured
bandwidth.
CRs-Fixed: 3329625
Change-Id: I79707cb233640342c521e41e9c4d776e121c1d6d
320 MHz bw are overlapped, if you want special 320 MHz center freq,
pass center freq of 320 MHz to reg_set_channel_params_for_pwrmode
through ch_params->mhz_freq_seg1.
Change-Id: If5947ed1303c5c7d978161b6ffc6490ab07b8296
CRs-Fixed: 3326837
Currently sme_switch_channel set new_ch_width as phy_ch_width, while
wma_csa_offload_handler set new_ch_width as raw bit in wide bandwidth
channel switch IE.
Clean up the code. Define new_ch_width in csa_offload_params as
phy_ch_width.
Change-Id: Ie1999860421aa60c18cdc8059275954d910b4b66
CRs-Fixed: 3324746
In case of MLD, if one of the partner vdev is not brought up and
CSA is triggered on self pdev with multiple vdevs configured then
all the vdevs of this pdev will move to restart state.
But the ML AP vdev in MLO_SYNC_WAIT will not handle CSA restart
leading to multivdev restart request timeout.
Add change to handle CSA_RESTART when the ML AP vdev is in MLO_SYNC_WAIT
state. Thereby all vdevs of this pdev will move to restart state.
Change-Id: I9b729e2f81d3c72ab5e321f3a396f157424c1663
CRs-Fixed: 3328931
In case of MLO, when back to back connect is received, if the previous
connection is still in progress, hold the disconnect and the new
connect.
The same is the behavior for disconnect followed by connect.
Change-Id: I174f5fa40df2441d3dce693550542fd43d6dd991
CRs-Fixed: 3323721
User space issues scan, which does not include non-PSC channels.
If user space does not customize these channels, kernel fills
all the supported channels (2 GHz, 5 GHz and 6 GHz all channels).
Driver does not add channels to the scan channel list even if
it is present in RNR IE, as this increases the number of channels
given by user space and increases scan time.
User space should not send customized channel list, even if it
wants to scan the RNR channels.
If the flag NL80211_SCAN_FLAG_COLOCATED_6GHZ is set or at least
one 6 GHz channel is present, driver need to add all 6 GHz
channels which are not present in the scan request and sets
RNR flag for those channels so that FW can do co-located 6 GHz
channel scans on these channels.
Without the change, Driver adds 6 GHz channels to the scan request,
which are present in PSC list only.
Withdraw logic to add all 6 GHz channels to the channel list,
if Scan req carries at least one 6 GHz channel in
scm_add_all_valid_6g_channels, which indicates that the target
or regulatory supports 6 GHz channels, as they are added if
Scan req carries NL80211_SCAN_FLAG_COLOCATED_6GHZ flag.
Change-Id: I3c8f5cd7eadf39557f24f685a260fe76ea5d08be
CRs-Fixed: 3312385
In function wifi_pos_process_app_reg_req(), it uses function
wifi_pos_get_vdev_count to get vdev_count;
Then wifi_pos_process_app_reg_req->
wifi_pos_get_vdev_list-> wlan_objmgr_iterate_obj_list,
it uses wlan_psoc_get_max_vdev_count to get max_vdev_cnt,
if vdev is not NULL, it invokes function wifi_pos_vdev_iterator
to fill the vdev_info.
For the failure scenario:
In wifi_pos_process_app_reg_req, it gets 2 for vdev_count
from function wifi_pos_get_vdev_count; Then the process is
interrupted and vdev 2 is created in another process; Now
since there are vdev 0, 1, 2, wifi_pos_vdev_iterator is
called 3 times and memory corruption happens since it writes
two more bytes with op mode and vdev id in vdev_info.
Change-Id: I5222836a1448bfaa7df31c919419d448eaa20895
CRs-Fixed: 3320183
Log the time stamp corresponding to the start of processing
of multi vdev restart response event.
CRs-Fixed: 3308918
Change-Id: Ia00923b3a1033097429d3856047a4b639408aab8
Replace all occurrences of
wlan_reg_set_channel_params_for_freq API with new API
wlan_reg_set_channel_params_for_pwrmode.
Change-Id: Id751558b32f2b61bd356e1ebce3238598fbd16c1
CRs-Fixed: 3144794
Add an API to check if the given input 6 GHz frequency is Tx-able
in the given power mode.
Change-Id: I9e94c1c3ec7c4c31d18bde6e88905a9239636f00
CRs-Fixed: 3305006
Change the peer retrieval error message to debug in
wlan_twt_set_peer_capabilities().
The peer twt capability will be set later after peer
is created. Because of this error print, there is a
delay of around 10-20msec in the roaming path.
Change-Id: I5267a61df5726b67ff727101bd553fd4ce07fa5f
CRs-Fixed: 3314202
Partner link connect request is copied from primary link.
The upper layer may include BSS channel freq preference in
OS connect req. We have to clear it for partner link connecting,
otherwise the scm_filter_match will filter out the mlo partner
candidate and cause partner connect failed.
Change-Id: I9ca8f2baf5f7e660ed0b72c1dffa886f1c1e8f11
CRs-Fixed: 3320085
In special case, link peer is failed to attach, then mlo peer is deleted
without detaching from ml peer list. When access peer list, assert will
happen for use after free.
Change-Id: Ic7a58fa0708ae6b920a69100e798c0aa8db7fe0d
CRs-Fixed: 3319376
Currently, structure tbtt_information_header and
rnr_mld_info don't have attribute __packed. When
fetching the value of bss_param_change_cnt, it
tries to align with byte and causes wrong value.
And these are OTA structures which should be moved
to file wlan_cmn_ieee80211.h.
Change-Id: I326e62e6f513c2b43fe08c278aa4b5a245d2d35c
CRs-Fixed: 3313710
When SAE station is trying to associate to MLO AP.
If this station was connected to other link vap of same MLD,
then if same station is trying to connecting with link VAP,
ML peer entry is found with MLD MAC address.
For SAE stations, initial understanding to handle disconnect
from hostapd, but as hostapd initiates SA query for the connected
link peers only, in this case, hostapd can't initiate SA query
as it was connected to other link VAP.
The fix is to allow initiating deauth of the current ML peer entry.
Change-Id: Iddb53f0156b460a2ede2197a74acf254c83b7b37
CRs-Fixed: 3313785
Fix incompatible function pointer assignment.
Define a wrapper around mc timer callbacks to
make them compatible with standard scheduler
message callback function signatures.
Change-Id: I07829680d1758ccbd53e8b1fe10b0e30e100a2c6
CRs-Fixed: 3305719
AFC request or response does not consider punctured channels/BW as an
input. Hence the SP EIRP/PSD power for punctured channels cannot be
derived directly from AFC response data.
Add punc_pattern as an input to the APIs reg_get_best_pwr_mode() and
reg_get_eirp_pwr() (and its dispatchers).
Compute SP EIRP for the punctured channels in
reg_get_sp_eirp_for_punc_chans() using the following formula:
MIN_PSD + 10log10 (Non-punctured BW)
Fetch min_psd from the AFC server response data for the input freq
and BW combination.
Use the total BW and puncture pattern to fetch the
non-punctured BW.
CRs-Fixed: 3306932
Change-Id: Id5c4c404a3155474a01a0dacb3bcf289e92e65ac
Add input_punc_bitmap to struct ch_params.
Add input puncture bitmap to regualtory channel search APIs.
The non-SP channels will be punctured by ACS module so that AP
can come up in highest possible BW in Standard Power mode
with the given primary frequency. These punctured channels are not
validated (whether supported in the given power mode of operation) by
the regulatory.
CRs-Fixed: 3278013
Change-Id: I56b0495be902fd92fc6da26e1007d60f930ba687
Add a dispatcher API wlan_reg_get_bonded_chan_entry to fetch
the bonded channel entry given freq, bandwidth and center of 320 MHz
channel.
CRs-Fixed: 3278013
Change-Id: I9449b3b4d72266fd7f2b6a0ea78b661fbfa5c6a9
The assoc-resp buffer of the link-peer can be null, while sending the
assoc-resp frame. This can happen if the ML peers are already setup but
the next association fails. In this case we send the assoc-resp frame
before link-peer's assoc-resp buffer is initialized.
Change-Id: I28d48068b4554b7663b118cc6023df396e45cae9
CRs-Fixed: 3316851
Spoof DFS check happens when AP is brought up in a DFS channel in
FCC domain. These spoof pulses are sent by FW in several bursts
via wmi_phyerr_event_id. Once host receives the first set of pulses
and if radar is detected by the host, host sends the radar found params
to FW. However, host does not disable the radar detection. Hence, host
continues to receive the next burst of spoof pulses and detects radar
again. This second set of radar found params when sent to FW is treated
as "real radar" pulses and FW sends a DFS status code of 2. Hence
host does a channel change to a new channel.
Hence the spill-over spoof pulses are treated as "real radar" and causes
frequent channel change on the DUT.
Once the first set of spoof pulses are detected as radar and radar found
params are sent to FW, disable DFS radar detection until the DFS status
check is received from FW. Once FW responds with a DFS status check,
re-enable the radar detection.
Change-Id: I57018776a449203c6467bb384120d4319bc04805
CRs-Fixed: 3305592
Add regulatory support for giving preference to fill EIRP power
in the WMI_VDEV_SET_TPC_CMD_ID.
Change-Id: Iab28306b15d74109519629cb0b815cd110254d56
CRs-Fixed: 3307372
Add further clarification for util_find_mlie() that the buffer passed
should contain only 802.11 Information Elements, and should not
contain other information like 802.11 header, 802.11 fields that are
not elements, etc.
Change-Id: Id577cdc08189cd0f60053b1345ee15b3bb4f0eca
CRs-Fixed: 3316369
Currently, this MLO flag is being set/clear without regard for
concurrency. We need to lock the vdev when updating these values to
prevent race condition.
Change-Id: Ied90d62f10f6f12a35eeac3060dd0fae7d0c6cfd
CRs-Fixed: 3305558
When the beacon frame is received by the DUT, util_scan_get_phymode_5g
gets invoked. In a highly noisy environment, malformed/incorrect
beacon frames is received and the content of vhtop->vht_op_chwidth
becomes invalid. Hence bad channel print floods the console since
it is under scm_err debug level (the default debug level of SCAN module
is ERROR).
Reduce the debug level of the print to scm_debug since it hits for
every in-correct beacon.
Change-Id: I92d99f8d69ac7f892f155f2043c60a4c0c2efa12
CRs-Fixed: 3313827
mlo_clear_connected_links_bmap api is also used for roaming,
so changing it as public api.
Change-Id: I31225cb04971dbf470338022ca4dc09a9967b5c4
CRs-Fixed: 3317236
As part of upgrading legacy code with 6 GHz power APIs,
replace reg_get_channel_state_for_freq api with new api
reg_get_channel_state_for_pwrmode
Change-Id: I3e577148f0ee78f6ec8f96feef42be9ac920467d
CRs-Fixed: 3144822
The RX REO functionality has numerous misspellings of "forwarded",
including multiple identifiers. Fix these to use the correct spelling.
Change-Id: Idc4e66e7356b978742fea30ae7ef0c9498c4f938
CRs-Fixed: 3313839
In outdoor deployment, if there are VLP rules present, set the default
power mode as VLP, else set it as SP.
In indoor deployment, if there are LP rules present, set the default
power mode as LP, else if VLP rules are present, set it as VLP, else set
it as LP.
In reg_propagate_mas_chan_list_to_pdev, make the call to
reg_save_reg_rules_to_pdev before reg_init_pdev_mas_chan_list as
reg_set_ap_pwr_type which is called in its path requires reg rules.
Change-Id: I773c54b18aceb8db9666d16b08e841216124aaff
CRs-Fixed: 3311810
Place extract_ext_fcc_rules_from_wmi function near its
caller and modify function definiton of empty function
reg_set_pdev_fcc_rules.
Change-Id: I6918addbe81bb410355616023e0c6dac534700b6
CRs-Fixed: 3286479
Low latency SAP can come up on below two profile
a. Gaming
b. Lossless Audio
Scenario: LL SAP is present on 5 GHz channel and scan comes up
DBS: For both profile, allow scan only in 2.4 GHz channel
SBS: For both profile, allow scan on non low latency SAP
channel which are mutually exclusive.
Change-Id: I9d5832a457d08325b9e66099286ae3f18cdc66e1
CRs-Fixed: 3294607
In wlan_crypto_global_api.c there are several functions which use a
misspelled term for "nonce" so replace them with the correct spelling.
Change-Id: Iedc65bbad173c5fc398e25730853bc7b36e86b31
CRs-Fixed: 3313801
To protect user privacy, print SSID with QDF_SSID_FMT
and QDF_SSID_REF, then SSID will be hide in logs if
anonymization is enabled.
Change-Id: Ifad0ccd76bd1184a9b1d20f3d7fa4455df924843
CRs-Fixed: 3291826
1. Update "6 GHz max bw support" for KUWAIT country.
2. Do not map "FCC1_AP_SP_6G" to super ID 01(FCC1_6G_01) which is not
allowed.
Change-Id: I61cc359a34257aeb00b8e3449398e0b73bb49590
CRs-Fixed: 3303138
Add a new regulatory callback registration API and a
regulatory API to update tx power whenever the country code
changes without change in operating channel OR if fcc
constraint is set. This MCC-specific regulatory API is
called from HDD and invokes the TPC calculation logic via a
callback during the above-mentioned cases.
Change-Id: I7d3db83129d169b7e0421c20c061de356f32cfa2
CRs-Fixed: 3311432
Add ACTION_OUI_11BE_OUI_ALLOW enum to support new WMI action
oui type WMI_VENDOR_OUI_ACTION_ALLOW_11BE.
Add scan entry to candidate validation struct.
Change-Id: I502a246584cd5ee6b4759d8fbb67629628314560
CRs-Fixed: 3301859
The default PSD and EIRP tx-powers are filled only for LPI power mode.
Since VLP support is added, add default PSD and EIRP tx-powers for VLP
power mode.
Change-Id: Ida8eebaf37a6bf6c663a24f832b4e89baf2d8659
CRs-Fixed: 3311795
Logic of checking concurrent vdev while sending
pd threshold command is removed from mlme as it
is handled while concurrenct vdev up and down. So,
we don't need to include policy mgr headerfiles in
vdev_mlme file as no policy manager function is invoked
from mlme.
Change-Id: Iec307437d929df5dceb58bf931fd20fa29b55550
CRs-Fixed: 3313112