When the STA finds a candidate AP to connect to, it checks if the
primary 20 MHz channel is punctured or not. This validation is currently
done using scan channel parameters. The scan channel parameters are
intersected to the STA's capability and might not reflect the original EHT
OP IE parameters. For example, consider an 11ax STA in HE160 MHz mode
trying to connect to a 11be AP operating in EHT320 MHz mode. The scan
channel parameters are intersected to the STA's capability of 160 MHz.
The scan channel parameters like 320 MHz center frequency and puncturing
bitmap are inconsistent with the CCFS1 and punturing bitmap received in
the EHT OP IE.
So, instead of using the intersected scan channel parameters stored in the
STA to validate puncturing bitmap of the AP, use the EHT OP IE received
from the AP to validate puncturing bitmap.
Change-Id: I0cdc56eea96f04eb96327506bfd61c0f3a9109bb
CRs-Fixed: 3364639
Currently host drops an AP from scan list if host country is set to
US and AP country is non-US. This implementation violates our
standard regulatory scan policy.
To address this issue, introduce a new INI to differentiate
between our standard regulatory policy with others.
Change-Id: Id72f871653e31969c4d1b147cb3c557f90a6c8f6
CRs-Fixed: 3361720
Changes to handle dynamic link add for non-AP MLD.
Also add change to clear mlo cap for link removal of vdev.
Change-Id: I47e0bb77b7f32296e5745ffd53ce3a34ec35a63a
CRs-Fixed: 3346538
One bad AP Multi-Link IE length is 5, have no MLD addr, BSS peer MLD
addr is set as zero, connect fails, and bss peer leak happens.
DUT STA can't connect other AP any more if bss peer leak happen 2 times.
At last, if wifi is disabled, vdev delete fails for ref count leak, assert
happens.
To fix it, validate AP ML IE length before parse it, if it's actual length
is less than expected length, set ML IE as NULL, downgrade the AP to legacy
mode.
Change-Id: I7d6b27f0816f3169c8802f67b64e5561ffdde6ed
CRs-Fixed: 3351189
The FILS realm scan filter validates the fils realm
provided in connect request against the realm present in the
fils indication element. But according to the 802.11 standard
the AP can advertise the realm count as 0 and choose not
to advertise any realm ID. So the connection to that AP
fails as the BSSID gets filtered from scan results during
candidate selection due to realm mismatch.
Allow connection with FILS AP when the AP doesn't advertise
realm
Change-Id: I7fbaf27a9ba346e105af44d77318c485f55a74ab
CRs-Fixed: 3341993
Fetch beacon/probe response with given mac address from scan db.
The frame can be used to fill bss descriptor in case of MLO
roaming where scan entry is derived from ML probe response of
assoc link.
Change-Id: Ie20b36c6619dd0e44d04d3bd8767c7dd09b053d5
CRs-Fixed: 3342439
Currently, in driver, if DUT fw does not support 11be,
11be capable beacons will not be parsed in the scan result.
But driver can have 11be capable parsing even when target
is not capable of 11be. This may be helpful in understanding
OBSS and ACS kind of scenarios.
To fix, driver will parse 11be capable beacon in the scan result.
Change-Id: I1eb4d60c8a7513a01126575dd9c4fc4f1a4ee6e0
CRs-Fixed: 3296848
To check the allowed dot11 mode of the VDEV, add new member to
struct vdev_mlme_proto hold this value.
Change-Id: I5bfbff0ab3056013a997744b8e9ce0b4d0a3d43b
CRs-Fixed: 3314403
The kernel-doc script identified several documentation issues in
wlan_scan_manager.c and wlan_scan_manager.h, so fix them.
Change-Id: I372a336fdddc59256519b987aa2422ad077229e4
CRs-Fixed: 3335514
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
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 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
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
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
Update the handler to fetch the status of the supports_11be
capability flag properly.
CRs-Fixed: 3305253
Change-Id: I35a083b7b717b0cf4fbe40e2e00b8bfd0ada9082
If the requested power mode is not supported, the API
reg_get_chan_state_on_given_pwr_mode may return
CHANNEL_STATE_INVALID flag. Besides check
CHANNEL_STATE_DISABLE for disabled channel, add check
CHANNEL_STATE_INVALID also.
If partner link frequency is not supported by regdomain,
do not enable the partner entry.
Change-Id: Ic7adfdcc4e535d6303fa0f4253d1499d369bc222
CRs-Fixed: 3302241
While generating the scan entry for TX VAP, the decision to
strip MBSSID IE from the TX VAP beacon, will be taken if the
platform supports 11BE.
CRs-Fixed: 3300515
Change-Id: Ie45da7a02a2811172b2403d5fd1bc4b9271432d5
While processing an beacon with MBSSID IE/ IEs, the driver
creates scan entries for the TX VAP/ profile and every Non-TX
profile present in the MBSSID IE.
The scan entry generation for nontx profile happens as required,
whereas while generating the scan entry for the TX VAP, driver
copies the MBSSID IE/IEs as well. Because of this, multiple
ML IEs would be part of one frame and as a result sometimes
supplicant fails in adapting/ fetching the proper ML IE.
With this change, the host driver takes care of stripping out
the MBSSID IE/IEs from the full beacon frame and while
generating the scan entry for TX VAP/ profile, it uses the data
that only belongs to the TX VAP.
This helps in resolving the duplicate ML IE issue.
Change-Id: I13b3ce94da1970eea8c16b52b1987edc1a5418bc
CRs-Fixed: 3295496
On disconnecting, the bssid may not be filled in cm_req->discon_req.
Zero bssid will fail to update the scan entry to non association
state which may block the scan entry age out.
Move disconnect bssid fill before update the scan entry for
disconnecting.
Change-Id: Id8a36d8a37c212af727c7b61a24b51f2782c4a2c
CRs-Fixed: 3291599
Duplicated 6 GHz beacons with poor RSSI are received in frequency far away
from primary channel, they are not dropped because HE duplicate beacon
field is set, which makes poor RSSI saved in scan entry.
To fix it, if 6 GHz HE duplicate beacon field is set, compare band width
and center frequency from EHT ops and HE ops with current frequency beacon
received, if current frequency is outside of the BSS operating BW, drop the
leaked beacon.
Change-Id: I580df7efbbe5a7b56cfd14795474ad9a4d432fdc
CRs-Fixed: 3299236
Some p2p device include invalid RSN IE in wildcard probe respone
frames in p2p discovery. Do not drop it because the wildcard
SSID entry will not be used to do association.
Change-Id: I1e390509931094d9d9a55d2caef825c5772a086b
CRs-Fixed: 3282030
Currently, short SSID is not added to the hints in scan request
if BSSID hint is present. But there can be cases where both need
to be advertised and expected to be present in the probe request.
So, send short SSID hints also to firmware in scan request.
Change-Id: Ie66e6677185c106817f4d24c2f07730c53ae243a
CRs-Fixed: 3259555
Prensently for initial scan and roam passive scan dwell time,
the same ini CFG_PASSIVE_MAX_CHANNEL_TIME is used. This will
cause initial scan to have the roam passive scan value.
Decouple passive scan and roam passive scan ini parameter by
adding new ini param for roaming
Change-Id: I7bffb24a1e45548ed57492abc35e80958e9955ee
CRs-Fixed: 3272817
Currently the INVALID_CHANNEL assumes the value 0xBAD. When a channel list
array is indexed, there is an array out of bound error when the channel
list array is indexed using INVALID_CHANNEL or when the index is greater
than equal to NUM_CHANNELS. So a check for an invalid channel enum is
likely to be, (ch_enum == INVALID_CHANNEL) && (ch_enum >= NUM_CHANNEL).
Redefine INVALID_CHANNEL enum constant with NUM_CHANNELS constant so that,
the validity checks for channel enum is compressed as,
(ch_enum >= INVALID_CHANNEL).
Change-Id: I5be588fe6011ac85031325f56eff208f2aa7a1e5
CRs-Fixed: 3238386
Based on the new requirement, add support to get requested
feature set info from different feature components.
Change-Id: I75c5a3062312b1124d21d1ae429a7c5a18d9f2d0
CRs-Fixed: 3262867
Add 6 GHz function under CONFIG_BAND_6GHZ flag to avoid
multiple definitions and function defined but not used
issues.
Change-Id: I873300b3165df2f13b3c99d5e11e388dadde1fab
CRs-Fixed: 3265134
Add APIs to update and get the time at which scan
is completed in that channel.
Change-Id: I8c594b1881fc83daa88800eac9eac94c2e0df64a
CRs-Fixed: 3239359
Some operating class like 81, channel spacing is 25, need convert
channel width to 20 to get right score when select candidate.
Fix some code style issues too.
Change-Id: I15795d016cae74b7596a199ae2883aeababaf081
CRs-Fixed: 3250207
Select best candidate by mlo score algorithm.
Check bss mlo type first by mlo info, mlo config, partner frequency and
dbs/sbs cap, calculate candidate score for SLO/MLMR/EMLSR bss types.
For SLO case, same as before except:
Decrease percent of legacy band and nss to include 320M and 8x8.
Decrease max percent of congestion from 100 to 80 to include MLMR joint
congestion.
Increase weight of both band width and nss to 20.
For EMLSR case, same as SLO except adding EMLSR boost score.
For MLMR case, besides adding MLMR boost score,
calculate joint RSSI/band width/congestion score for combination of
scan entry + each partner link by new mlo algorithm, select partner with
highest total joint score as candidate combination, only activate that
partner link.
Change-Id: I640c6825d945caf5fab504a77717195c2eac0c93
CRs-Fixed: 3234912
Check RSN ie valid or not for beacon or probe response frames
in scanning. The invalid RSN ie will cause the AP filtered out
during candidate selection in connecting.
Change-Id: Id324ddfaa0f438482673e66b683dcf903d9fc0e3
CRs-Fixed: 3218707
If STA is connected to AP (non MBSS AP), the scm_age_out_entries
try to age out check for APs which are not non-tx AP of MBSS.
But the API doesn't check the current connect AP is MBSS or not
and do the mbssid_info.trans_bssid mac address comparing. So
the check is invalid if both trans_bssid is zero.
Fix by check mbssid_info.profile_num value first and then
trans_bssid field of two scan nodes.
Change-Id: I64ed1eddf0583211a305ba61e1d15a6c674be3fe
CRs-Fixed: 3236072
Supplicant compares AKM(s) in RSN IE of Beacon/Probe response and
AKM on third EAPOL frame received by AP. In the case of multi AKM,
previously Host converts all adaptive 11r AKM(s), if any, present
in RSN IE of Beacon/Probe response to corresponding FT AKM but the
AP(s) which support adaptive 11r (ADAPTIVE_11R_OUI: 0x964000) only
converts first AKM to corresponding FT AKM and sends third EAPOL
frame to DUT. This results in failure in a 4-way handshake in
supplicant due to RSN IE miss-match between RSNIE sent by host
and RSNIE present in third EAPOL frame. Now like AP, the host is
converting only the first AKM to corresponding FT AKM to avoid
RSNIE mismatch in supplicant.
Change-Id: I522c6e313df50c1ef2952ec2e464a107ae739dad
CRs-Fixed: 3230622
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.
Change-Id: Idc7c80891aed551db5b6b87eba7b44b6c75ecad3
CRs-Fixed: 3217348
As part of a transition of basic MLO functionality to IEEE802.11be
D1.5, add definitions and receive processing for the signaling of the
presence of BSS Parameters Change Count subfield in STA Info field in
Per-STA Profile subelement in Basic Multi-Link element Link Info
field. This presence is signaled by a new bit in the STA Control
field of the corresponding Per-STA Profile subelement. Rename the
definition for BSS Parameters Change Count (sub)field size to make it
generic since it may occur in various protocol signaling areas
related to MLO.
Change-Id: Ieb17f65547b7106442369b51cd6bc303046a224a
CRs-Fixed: 3197012
If puncture of primary 20M channel of beacon or probe rsp is not 0, the bss
is invalid and filtered out when DUT STA select candidate AP to connect.
Change-Id: Ic27c75ab07ec91a80164a12b0928c98bc8911f99
CRs-Fixed: 3208103