As a part of 802.11ax amendment, 6GHz band operation is added.
Since the 6 GHz channel numbers are overlapping with existing 2.4GHz
and 5GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.
As a part of above requirement frequency attribute is added to the
struct sSirMacChanInfo, in driver some APIs directly copies this
structure info considering as every member of the structure as uint8_t,
as frequency is uint32_t this breaks above asumption and results into
corrupt info and gives undefined behaviour.
To address above issue, use the structure members individually and
give the information by member-by-member copy.
Change-Id: Ied6ad30d8a0800211f99371969ddd192ff40545c
CRs-Fixed: 2537975
Do not send assoc indication to hostapd until tx is completed over the
air. This ensures on receiving assoc resp tx status, M1 is triggered
from hostapd.
Otherwise, race condition happens between assoc response and M1 packet.
Change-Id: I1da7d5b2abcc35dc39fd8e3d8b834e1481d369f3
CRs-Fixed: 2507446
Use channel number will get invalid band.
Change csr_roam_get_phy_mode_band_for_bss API
and CSR_GET_BAND to use channel frequency as parameter.
Change-Id: I0c4d39f6b5689bc330e4e09302d84deaf209b9cb
CRs-Fixed: 2518428
Set chainmask for 2x2 dbs capable device if enable2x2,
AS, and diversity are disabled.
Change-Id: I3ec8da95b868e79af1f44fdba63b2ee57e4365fa
CRs-Fixed: 2528035
Currently, sme_config_fast_roaming is called to set the
supplicant disabled roaming flag in the driver, which is
received over the vendor command
QCA_NL80211_VENDOR_SUBCMD_ROAMING. This supplicant disabled
roaming flag is used to toggle between RSO start and RSO stop.
When the driver is in disconnected state, the roaming module
would be in de-init state already. So the driver should return
success whenever a state change is received in disconnected
state. But currently the driver sends failure when its in
disconnected state. This results in sending failure status to
userspace.
Return QDF_SUCCESS status if any roam state change is requested
in disconnected state.
Change-Id: I520ab92b014eb1239e0164a39e0135e1bb4c2d70
CRs-Fixed: 2533019
Currently in STA+STA scenario roaming is enabled on the
first connected STA1 and is enabled on the other STA2 on
STA1 disconnection. This change adds support to dynamically
enable or disable roaming on any STA.
Change-Id: I34dc2730fb38193ea3dd0ec35c79df233f270913
CRs-Fixed: 2520827
Replace channel ID with frequency in struct hdd_channel_info
& oem_channel_info.
Change-Id: I1a14ab40da4824d2861a7ec862cc322a158f0cd1
CRs-Fixed: 2532299
Roam control enable sends default values for roam scan period and
full roam scan period to make sure undesirable values are not
used. But user might want to update values dynamically through
vendor cmd/DRIVER cmd before issuing roam control enable and
doesn't want to overwrite these values with default values.
So, consider default values sent only if user hasn't configured
already. This can be done by comparing configured value with
ini values.
Change-Id: I68ac6a9afbe4a45c1a1ade3286c57f36303c49e9
CRs-Fixed: 2530344
When roam control is enabled, below inactivity params are expected
to be set 0,
1. roam_scan_inactivity_time
2. roam_inactive_data_packet_count
3. roam_scan_period_after_inactivity
Restore the same when roam scan control is disabled/CLEAR_ALL is
received.
Change-Id: Id9365895cdbccb3465b96ba6eec579da5014caa0
CRs-Fixed: 2529116
User might modify the roam control config params through
multiple commands as part of roam control config enable.
Currently, only the params which are modified as part of
SUBCMD_CONTROL_SET command are restored. Restore all of the roam
control config params from the default ini values when the
control config is disabled i.e when the CLEAR_ALL is received.
Change-Id: I59ebc2e3018b01889ffb2bcd19b72d6d20fd0517
CRs-Fixed: 2517854
Currently, scan_n_probes is updated to global mac ctx when
it's changed through DRIVER command. But the update
should happen only to the neighbor roam info of the
corresponding vdev. Retrieval also should happen based on vdev.
Change-Id: I442eda44c6c0f6a66d86648bbe82bc0dc71422bd
CRs-Fixed: 2530341
Currently, home scan away time is updated to global mac ctx
when it's updated through DRIVER command. But the update
should happen only to the neighbor roam info of the corresponding
vdev. Retrieval also should happen based on vdev.
Change-Id: I3e746f264c23454c1721a132d267b70157392894
CRs-Fixed: 2530338
Currently, neighbor scan max chan time and neighbor scan timer
period are updated to global mac ctx when it's updated through
DRIVER command. But the update should happen only to the neighbor
roam info of the corresponding vdev.
Change-Id: I264cf9ac7a1c7bf8c4fde25ad134993419db6052
CRs-Fixed: 2530337
Currently, roam empty scan refresh period is updated to global
mac ctx when it's updated through DRIVER command. But the update
should happen only to the neighbor roam info of the corresponding
vdev. Retrieval also should happen based on vdev.
Change-Id: Ic0496c326bca459c6ef6da1d84f1fd4645373cb9
CRs-Fixed: 2530335
Currently, roam delta is updated to global mac ctx when it's
updated through DRIVER command. But the update should
happen only to the neighbor roam info of the corresponding vdev.
Retrieval also should happen based on vdev.
Change-Id: I355b9db2e142d4205088627672c3fb27c32d7fbd
CRs-Fixed: 2530333
Currently, neighbor lookup threshold is updated to global mac ctx
when it's updated through DRIVER command. But the update should
happen only to the neighbor roam info of the corresponding vdev.
Retrieval also should happen based on vdev.
Change-Id: If0ad4855726bdc42d82852f413f7915892d3dfd6
CRs-Fixed: 2530332
Replace pe_find_session_by_sme_session_id with
pe_find_session_by_vdev_id as sme_session_id is vdev id.
Change-Id: I5fa537ff8e391fc18e568fd6f750334268faafa9
CRs-Fixed: 2531681
Refactor the start bss request to use channel frequency instead
of channel number.
Change-Id: Ic936fe060a5b2bc8d058709950417f3939a3c3d4
CRs-Fixed: 2518026
Currently get valid channel vandor command is defined
under EXTSCAN feature and also depends on gExtScanEnable
ini. when Extscan feature is disabled by ini or by feature
flag this command doesn't work.
As this command is to get the valid channel list, this
should not depend on extscan feature.
To address above issue, decouple get valid channel command
from extscan feature.
Change-Id: I6496cb94e6330f071f8027607e7d55a8f5d3db8a
CRs-Fixed: 2518313
A check has been introduced while implementing SAE roaming to send
the SAE status to SME only when the STA is not in joined state.
But this doesn't handle the SAP case where the status is expected
to be updated always.
Update the status to SME in below cases
1. SAP mode: Always
2. STA mode: When the device is not in joined state
If the device is in joined state, send the status to WMA which
is meant for roaming.
Change-Id: I20c134a3eea7c65db1fe1950c02b8b9e1ee3a34d
CRs-Fixed: 2524973
Update SAP data structures to use channel frequency values instead
of using the channel id values to support 6GHz channels in SAP.
Change-Id: I9ef5857e8dcf3f7d879495d3f3c3ead083fe0bf0
CRs-Fixed: 2513083
When channel switch, don't use tpSwitchChannelParams, fill
wma_vdev_start_req directly in LIM lim_send_switch_chnl_params.
Update wma_set_channel(struct wma_vdev_start_req *req)
PE/LIM call wma API directly for channel switch, don't post msg.
Clean up useless tpSwitchChannelParams.
Change-Id: I876207909ff0bc50f9ec1fbff639c0e9b7d03907
CRs-Fixed: 2529018
Use the correct configuration parameter to enable the
vendor VHT IE support in SAP mode.
Change-Id: I15330d372fe2b83bb229aa967bea5d43813ada95
CRs-Fixed: 2526798
Currently the driver does not verify the channel of the
AP and adds that to the connect list.
If a connect comes to the driver for this BSSID, then the
driver sends the same channel to the FW to start the vdev
which results in an assert due to channel not valid.
Fix is to check the validity of the channel and send a
vdev start only with a valid channel frequency.
Change-Id: Ic5c8c446f8731b32123051126503b071428f122c
CRs-Fixed: 2515158
The qcn and ese arrays are dynamically recreated on every call of the
functions sme_add_qcn_ie and csr_append_assoc_ies.
Change the initializers to static const to avoid dynamic recreation.
Change-Id: Ib3ae9a1b753c4dcfb6d8fd440050977253f3e720
CRs-Fixed: 2522716
While filling the QCN IE the IE length filled is 11 while actual
length is 8 and thus this lead to improper IE length in scan
additional ie while copying the default_scan_ies.
So fix the QCN IE length and add check for improper IE length check
while copying IE in scan additional ie.
Change-Id: I372af8c206d8f7ce0e93bc9c0fb14e222c6eb87e
CRs-Fixed: 2522208
Add support to advertise the VHT MCS 10&11 support using vendor
specific IE to enable the MCS 10 and 11 support in VHT mode.
Change-Id: I2d197dcce20ab4aec617ca8a7f4a54b438fae635
CRs-Fixed: 2465662
Reduce the log level from err or info to debug so that logs
are not printed on console.
Change-Id: I0d33c2a8f5b4bb4974656ac0d1eb6713a74cb5f4
CRs-Fixed: 2516281
Currently Host issue a disconnect and cleanup for current AP,
even if the offloaded roaming feature has started, but has not
completed for some reason. This results in connection loss with
the current AP.
Fix is to call abort event SIR_ROAMING_ABORT in case of roaming
offload timeout in order to maintain the connection with the
current AP.
Change-Id: I4168f8aeb7a759896a5d93e1918ce6542e61b37e
CRs-Fixed: 2508449
Currently, HOST sets discon_in_progress flag after posting
ROAM_SCAN_OFFLOAD_STOP command to WMA for a session. In case of
disconnection in HOST while roaming in FW if ROAM SYNC IND from fw comes
to host after posting ROAM_SCAN_OFFLOAD_STOP command to WMA, host start
processing SYNC IND and FW start processing ROAM_SCAN_OFFLOAD_STOP
which will cause to cleanup/disconnect with new AP to which it has just
roamed. After this cleanup fw will send HO_FAIL.
Now host as part of roam sync indication sends PEER_REORDER_QUEUE_SETUP
for the deleted peer which results in firmware assert.
Fix is to set discon_in_progress flag to true before posting
ROAM_SCAN_OFFLOAD_STOP command to WMA in order to ignore ROAM SYNC IND
and return status as failure to fw.
Change-Id: Id5c787d5489a6c0722b090951db388484f94f2e9
CRs-Fixed: 2505851
As part of vdev target if convergence the new vdev command
resp time are defined in target if layer.
So use the vdev timer values from target if.
Change-Id: Ib74f91331e4cb470233e678ded9159e17045467e
CRs-fixed: 2513794
If radar event is indicated in station vdev, it may be dropped by
station vdev since station does not support DFS master.
Select first sap vdev started in dfs channel to handle radar event.
Change-Id: I74229eb02c6ae6d81042df6b736d231db26253b5
CRs-Fixed: 2512836
Userspace may query for current configured full roam scan period
through the vendor cmd QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_GET
and the attribute QCA_ATTR_ROAM_CONTROL_FULL_SCAN_PERIOD.
Fill the full scan period in the same attribute and send as reply
Change-Id: I0ab8b3d7b469515244ce27accc852c6d93514b2d
CRs-Fixed: 2508804
Userspace may configure and enable roam control and query for
the status. Add provision to send the same as vendor cmd reply
Change-Id: I7b82f85fa560c974eedc5115276bd87a84f9d3a0
CRs-Fixed: 2508802
Userspace disables the roam control config once it's done with
the controlled roaming. Driver should restore the params changed
by roam control config enable and proceed with roaming as per
its default behavior.
Restore the below params which are getting modified as per
the current implementation,
1. Roam trigger bitmap
2. Scoring
3. Scan period
4. Full scan period
Change-Id: I1be699825bdd798f20a3432ebccb922ade67f89b
CRs-Fixed: 2508780
Userspace can disable/enable scoring for roam candidate
selection through roam subcmd and the attribute
QCA_ATTR_ROAM_CAND_SEL_CRITERIA_SCORE_ENABLE.
Firmware supports the below configurations currently,
1. Default selection criteria where all selection criteria
are enabled and different weightages/scores are given to
different criteria.
This will be enabled when userspace doesn't specify any
candidate selection criteria.
2. Legacy candidate selection criteria where scoring
algorithm is disabled and only RSSI is considered for
roam candidate selection.
this will be enabled when userspace specify 100% weightage
for RSSI.
Rest of the combinations are not supported for now.
Update the RSO config whenever scoring is enabled/disabled
Change-Id: Ibb787ef5433eebbdd3633748135ba6e314c931b6
CRs-Fixed: 2508778
Userspace enables the roam control config and may query for it
later. In order to indicate the current status to userspace,
cache the same in struct sCsrNeighborRoamControlInfo
Change-Id: Ib535d6940df48305bda74a624604217d1f968861
CRs-Fixed: 2508777
Userspace can configure different roam triggers as defined
in qca_vendor_roam_triggers through the roam subcmd
QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET and the
attribute QCA_ATTR_ROAM_CONTROL_TRIGGERS. Send the roam trigger
bitmap to firmware
Change-Id: I692110a2ae1ee5a35bb248b9138080a7dfb02cf6
CRs-Fixed: 2508776
Userspace can update the full scan period through the roam subcmd
QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET and the attribute
QCA_ATTR_ROAM_CONTROL_FULL_SCAN_PERIOD. Send the same to firmware
as part of roam scan offload command
Change-Id: I7c1046763d693faa3340b655848d3306ef92e06c
CRs-Fixed: 2508775