To support 6Ghz channel, update channel number of struct
sap_StartBssCompleteEvent_s, hdd_ap_ctx and sap_ch_selected_s.
Change-Id: I19e6d7d03072135abed25e077e8573b5326ddba8
CRs-Fixed: 2519308
Currently the driver uses a global safe channel
list, and also keeps another safe channel list in
policy mgr which results in duplicate copies
of the same thing.
Also there are many possible issues which are seen
if the global list implementation is used.
Issue 1:-
The global unsafe ch list is maintained for each
channel and is updated as part of ACS scan cb.
So if a user does ACS again and again ( SAP on off)
then the result of unsafe channels of the previous
ACS request would be updated as part of the ACS cb
of the new ACS scan request.
In the function of sap_get_freq_list, the driver
filters out the channels which are unsafe, and the
same channels are not chosen as the best channel for
SAP operation.
Now the filtration of the channels would happen
according to the previous ACS request, and the driver
would remove the channels from the ACS scan list.
But those channels were unsafe when the previous ACS
happened, and may not be unsafe now, and can be used
to turn on the SAP (can be chosen as the best channel)
Issue 2:-
If the channels are truly unsafe, then the driver
filters out the channel in the function sap_get_freq_list,
and do not chose them for the SAP.
It may happen that the channel list that the driver
preferred as part of do acs becomes unsafe, and the
channels that were unsafe at the time of do acs becomes
safe while the driver was scanning the ACS channels to
find other APs.
Now since the channels that were unsafe at the time of
ACS req are safe now, they could have been chosen as the
best channel but they were not scanned, so the ACS channel
weight of these channels would remain maximum, and they
would be sorted at last of the sorted list.
Also the channels that were as part of the ACS channels list
became unsafe, hence the driver would also assign maximum
weight to them, and they would too become unusable channels.
This would result in all channels having the same weight that
is maximum weight, and so the sorting algorithm does not have
to sort any channel now since all of the weights are same.
The first channel in the sorted list would be channel number
1 of 2.4Ghz, and would get chosen, but this may not be
correct if the HW mode is 5ghz only.
Fix:-
Safe and unsafe channels can be checked by using
policy mgr safe channel list too, so it is better
to keep just one unsafe channel list.
The driver would not filter out the unsafe channels
for ACS scan, and would filter out the unsafe channels
as part of the ACS scan done callback.
Change-Id: Ief236db9e73864e5cb2d290a8106799f9e80f82d
CRs-Fixed: 2530241
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
1. Add configurable dfs_pri_multiplier, controlled by
DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
QCS405 target report RSSI range [18, 45] while radar power
is 3 dbm. By using default rssi_threshold 24 will reject
many radar pulses, which leads to low detection ratio.
3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
in dfs_count_the_other_delay_elements(), check deltapri
between [1, dfs_pri_multiplier] * refpri and searchpri, if
the primargin is desired, mark it as matched pulse.
4. Pick lowpri as refpri for the radar filter with
rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
enabled. Observed original findref logic has some problems
which selects refpri is bigger than lowpri, which leads to
the lowpri pulses pri_match are set to 0, and in this case,
radar was not detected. Example for the issue, assume
rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
leads to: index 0, 4, 6 pulses with pri_match 0 in
dfs_count_the_other_delay_elements(). The fix is to select
lowpri as refpri(1489 in this case).
Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2522506
Currently the SAP memory is not freed as part of stop
adapter as the sap ctx is mem zero in deinit ctx, hence
the addr to free in NULL
Fix is to extract the the sap config from adapter and
then free the sap ch list memory from it.
Change-Id: I8c0bf66765c34f0936d694d260ce1544791beecc
CRs-Fixed: 2530985
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
Currently the sap ctx's channel list is not freed
as part of undo acs, and hence can lead to mem leak
when the do acs and SSR is triggered in parallel.
Scenario:-
1. Turn on SAP
2. Do SSR in parallel
3. Unload WLAN
Fix is to clear the channel list as part of undo
acs.
Change-Id: Ie8dcace1d32aeec2621e785d793290d70c194f62
CRs-Fixed: 2511752
SAP1 chan6, SAP2 chan6, LTE channel avoidance event marks
chan6 unsafe, driver will do channel switch for SAP1 and SAP2 to
safe chan 1.
In the middle of channel switch of SAP1, policy_mgr_allow_concurrency
disallows the channel switch request because new SAP1 channel 1
will cause MCC with existing SAP2 (channel 6) and firmware
doesn't support MCC for dual-beacon entities on same band.
This change removes all the SAP entry on the old channel
before do concurrency check for SAP channel change request.
Change-Id: Ic2c828a3fec4cbe2f11d4bedf471211bee442e9e
CRs-Fixed: 2491265
Currently the driver modifies the channel list
which came from hostapd in trim channel list API
in case of concurrency present.
This would in turn prevent SAP to change channel
to a safe channel whenever a LTE-COEX event comes
as the acs channel list would contain only one channel
that would be the SAP channel itself.
Fix is to retain the info of channels which came from
the hostapd, and use this info to restart he SAP.
Change-Id: I9d43930d78f1eaedb01139a9ddc319b610d21862
CRs-Fixed: 2501400
Currently, there is no logging for channel switch reason.
Add csa_reason to know the reason for the channel switch.
Change-Id: Iec02d7fa2b1ec51acb97005da220db7de705d7e0
CRs-Fixed: 2483206
When ini acs_with_more_param is configured as 1, more params should be
added into ACS calculation process. Currently, even acs_with_more_param
is set as 1, mac->sap.acs_with_more_param is still 0 and no params are
added to ACS calculation process.
Make mac->sap.acs_with_more_param change as ini acs_with_more_param.
Change-Id: I4ced3b1d7d07c0f919183df42191e51ba66b90e8
CRs-Fixed: 2458086
eCsrAuthType is the enum of AKMs to be used during connection.
So the name eCsrAuthType is misleading as akm and auth algo are
different.
Also the Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the enum eCsrAuthType to
be compliant.
Change-Id: I35e18d1f84babd0ef2928ae9d7258028d4c9b3c5
CRs-Fixed: 2463813
The Linux Coding Style doesn't allow mixed-case names and
so-called camelcase notation, so rename the statusCode to be
compliant with the coding style.
Change-Id: I98e0af710401a9718bdc1402617253eb970c5861
CRs-Fixed: 2463825
If FW does not support WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_MCC_SUPPORT,
in AP+AP case start the second SAP on same band and
different channel will be failed.
For force mcc to scc switch enabled case, override the second AP's
chan to same chan of first AP instead of return failed in start AP.
Change-Id: I83ad3db3160cfc2dd66163bb1e1b2e19ae7c5fa3
CRs-Fixed: 2439440
Use updated cp stats component to get peer rssi and tx rate,
rx rate for big data logging as legacy infrastructure is
deprecated.
Additionally add support for RX multicast broadcast packets from FW.
Change-Id: Idcab4a022a4e7e34bd15878f95ad8248ca3aa9dd
CRs-fixed: 2428582
When SAP works in ACS mode, it needs to restart with a safe channel
if current channel is unsafe. Sometimes no channel is selected from
pcl channels. SAP can't just pick up one safe channel because the
channel may be DFS channel while SAP may disable DFS master capability.
SAP should select one valid channel for LTE COEX.
Change-Id: I303165f82b5c2a8d06447df4ba23fdcba5b1083c
CRs-Fixed: 2415007
Currently HDD is populating SAP configuration values and
sending it down to SAP module instead use the respective
MLME CFG public API's to get the configuration values.
Move following CFG values:
1. auto_channel_select_weight
2. reduced_beacon_interval
3. dfs_preferred_channel_location
Change-Id: Ic0936a9d96d0587d927ea4d906bd659969415847
CRs-Fixed: 2425524
Currently HDD is populating SAP configuration values and
sending it down to SAP module instead use the respective
MLME CFG public API's to get the configuration values.
Move following CFG values:
1. sap_chanswitch_beacon_cnt
2. sap_chanswitch_mode
3. protEnabled
4. chan_switch_hostapd_rate_enabled
5. tx_leakage_threshold
6. ht_capab
7. UapsdEnable
8. obssProtEnabled
Change-Id: Id62492d5374b9a3f8ab9cbf57e474cc9f78a791d
CRs-Fixed: 2411126
Most of the identifiers used in the wlansap_roam_callback() prototype do
not match the ones used in the implementation, and furthermore the one
that does match does not conform to the coding standard, so update both
the prototype and the implementation to have identical, conforming
identifiers.
Change-Id: I3cf3622121d15bb6c9fb2f9a63a0f9b99dd675f6
CRs-Fixed: 2423731
The Linux Coding Style frowns upon so-called Hungarian notation, so
rename SAP identifier pconfig to be compliant.
Change-Id: I2d0ef46cf8f9972ca16592e7d8799ab8592b04a0
CRs-Fixed: 2422213
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tsap_config_t typedef does not
meet any of those criteria, so replace it with the underlying struct.
Change-Id: I95d9ad30d9af35dc4572d70c555b24b0285f8b2d
CRs-Fixed: 2422212
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename SAP Event Callback identifiers
tpWLAN_SAPEventCB, pfnSapEventCallback, pSapEventCallback, and
pacs_event_callback to be compliant.
Change-Id: I6ce97af649c73dd779b23c7ec4f0192f28d0f00a
CRs-Fixed: 2422210
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename SAP identifier pUsrContext to be
compliant.
Change-Id: Ib9c4cac6eb6f813e4da66c1c65bab16cebf62946
CRs-Fixed: 2422209
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename SAP identifier pConfig to be compliant.
Change-Id: I7618b95b3d88c2306412eb8d1f55dcc6cfd1a476
CRs-Fixed: 2422208
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename SAP identifier pDelStaParams to be
compliant.
Change-Id: I034f0157fe4016bbcacf3ce652035a3a13184f90
CRs-Fixed: 2422207
The Linux Coding Style frowns upon mixed-case names so rename SAP
identifier sapContext to be compliant.
Change-Id: If3d09c63141077247635315186068cabab396612
CRs-Fixed: 2422206
Currently in case of SAP, supported mode of station received
in assoc request is not getting cached.
Add support to cache the supported mode of station received
in assoc request request in sta_info.
Change-Id: I9820ae2d65fc529a1ab16424f6732fd273da3ae0
CRs-fixed: 2419957
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSap_Event typedef does not
meet any of those criteria, so replace it (and the "tp" variant) with
a reference to the underlying struct.
Further note the Linux Coding Style frowns upon mixed-case names and
so-called Hungarian notation, so in conjunction rename the underlying
struct to be in compliance.
Change-Id: I523f8642ef81b3e35b2bb7a2801f3b734b2f5865
CRs-Fixed: 2412716
If P2P-GO is active and SSR happens the vdev ref coount taken
by sap_ctx is not released and this lead to ref count leak.
To fix this release vdev ref count for sap_ctx in
hdd_reset_all_adapters().
Change-Id: Id35247a917f3e0c3e163ea00a7a850cdf28ddd80
CRs-Fixed: 2410121
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename HDD local variable pStaCtx to be
compliant.
Change-Id: Ief8942a12c802720d5eb2819e85eb895c6d8df40
CRs-Fixed: 2405752
When receiving assoc request from OWE STA, always send update OWE
info event which contains the following information:
- MAC address of STA
- RSN IE in assoc request
- DH IE in assoc request
Change-Id: I7017c5d2730e493db2472ae53d5dfa69553cfe45
CRs-Fixed: 2396925
Save RSN auth type in related context for RSN assocoation.
Some OWE specific operation need to be done according to
this RSN auth type since we cannot tell if a STA / SAP is OWE,
WPA2 or OPEN by its auth type OPEN.
Change-Id: I17dd72c7adf1c663725ac58ce263f4408d9c967b
CRs-Fixed: 2396885
Host driver packs only the RSN IE, WAP IE and additional IE
from association request to upper layers. With any new IE
support added on the driver, the driver has to add new structure
to csr_roam_info and pack that IE into the
tSap_StationAssocReassocCompleteEvent and pass it to higher
layers. This increases the redundancy with new IE introduced.
To facilitate hostapd to get information on all IE, pass all the
IE present in the assoc request to hostapd.
Change-Id: I1665a83de52bd67529ea026dc0c5e92cfbd51590
CRs-Fixed: 2390425
Change Iea602a1da42d5eecafae1d00f2260f4930128f40 ("qcacld-3.0: Remove
eWNI_SME_GET_ASSOC_STAS_REQ handling") removed the logic that sent the
eSAP_ASSOC_STA_CALLBACK_EVENT event. Since this event is obsolete,
remove the handling code from SAP and HDD.
Change-Id: I49e169a1832845bac4e89cd832d72dec42d4ee09
CRs-Fixed: 2396058
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSirSmeChanInfo typedef does
not meet any of those criteria, so replace it (and the "tp" variant)
with a reference to the underlying struct.
Further note the Linux Coding Style frowns upon mixed-case names and
so-called Hungarian notation, so in conjunction rename the underlying
struct to be in compliance, as well as to be more specific on how the
struct is used.
Change-Id: Ic9a596d05a7c4c0727264c33e865edd4a9786dac
CRs-Fixed: 2394998
Currently, driver allows VDEV-RESTART on SAP interface in order to
channel switch or hidden ssid connection when roaming is in progress
on STA interface. This leads to two simultaneous vdev starts or
vdev-restart in FW which causes the FW to assert.
Add changes to reject the channel switch for SAP or in hidden ssid
connection if roaming is in progress on any STA interface.
Change-Id: I1cea389021049779b5aa00145e2470cd67158edd
CRs-Fixed: 2390235
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSirSupportedRates typedef does
not meet any of those criteria, so replace it (and the "tp" variant)
with a reference to the underlying struct.
Further note the Linux Coding Style frowns upon mixed-case names
and so-called Hungarian notation, so in conjunction rename the
underlying struct to be in compliance.
Change-Id: I5007379a50223b6de85830e7ae389e65cdb8e4d3
CRs-Fixed: 2392398
Currently connected peer capability information is not getting
cached for SAP.
Add support to cache the capability info from assoc request
Change-Id: I0088bd20a98e2491f6ffb452417bc73f21e69e63
CRs-Fixed: 2392939
Change I875c2f14ffd54272fc9ea0df1cecc6dd1171e310 introduced an elaborate
workaround to prevent the pre-cac work from flushing itself during stop
adapter. Introduce a less complicated work around by simply checking if
the current adapter is the pre-cac adapter before flushing the pre-cac
work.
Change-Id: Ib3e0716f8d088d124e960dcd724f579fb39a3d74
CRs-Fixed: 2387173
Change Ib83700825112cc52dade594909bfa8993909ac29 ("qcacld-3.0: Send
management frame indication directly to HDD from PE") removed the
usage of tSap_ManagementFrameInfo. Since this struct is obsolete,
remove it.
Change-Id: Ic10c150286fe9f998884cdfcb8da2edadee7e156
CRs-Fixed: 2380771
Change I9d05cd7b8e051c4e9e4912cf866206ae32ec293d ("qcacld-3.0: Define
data structures for new AP requirements") added the ampdu_size field
to struct sap_config. However logic to use this field was never added,
so remove the field since it is unused.
Change-Id: I183766da3af3a3e9c609ccde95a0cca561813226
CRs-Fixed: 2380767