Commit Graph

34 Commits

Author SHA1 Message Date
chunquan
51509a327f qcacld-3.0: Replace blacklist/whitelist for denylist/allowlist
Replace blacklist/whitelist with denylist/allowlist for
blacklist manager component. and replace blm with dlm.

Change-Id: I8dec146d8cb3b61dc891b72bea44704b8ab733fe
CRs-Fixed: 3087575
2022-01-14 03:50:03 -08:00
Srinivas Dasari
2640226147 qcacld-3.0: memset reject_ap_info properly before usage
Currently, reject_ap_info is used at many places and memset is
not done before filling it. memset the buffer to avoid reading
garbage values.
Also, modify the current initialization of ap_info in
cm_add_bssid_to_reject_list to memset.

Change-Id: Ic0fabc1733c4ea63dccb2e45b2a2dc37791e594d
CRs-Fixed: 3040299
2021-09-20 16:50:37 +05:30
Yu Wang
71abae6a8e qcacld-3.0: protect the reject ap list with mutex lock
Any operation on the reject ap list should be protected
by the mutex lock, otherwise, race condition may happen
and result in list corruption.

Change-Id: Iefe0594a62563d800e85f8f6ebd747ab46c19fcf
CRs-Fixed: 2901576
2021-03-30 04:41:31 -07:00
sheenam monga
7cfe403da5 qcacld-3.0: Print string format for reject ap type
Update reject ap type to string from int value while
dumping blacklisted bssid for debugging purpose.

Change-Id: I2a12949e9e46f6fad32cc54ac975dfbfbdba88ab
CRs-Fixed: 2857907
2021-01-20 10:06:16 -08:00
sheenam monga
f0fbe9a794 qcacld-3.0: Dump blacklist bssids
Add dump to print blacklisted bssids
with reason code and source.

Change-Id: I85734ad5aea0c8088e3f8ed2bdbb31971457942d
CRs-Fixed: 2849487
2021-01-13 10:17:17 -08:00
gaurank kathpalia
5028327b50 qcacld-3.0: Overide blacklist and connect to AP
Currently the connection manager queries the
blacklist manager about the action to be taken
and if all the candidates of a certain SSID are
blacklisted then the connection would be rejected.
there are various types of blacklisting, some
can be overided and some have to be strictly
followed.

Fix is to overide the blacklist candidate and
connect to it if no other candidates are suitable
for connection.

Change-Id: Id47fd214130411179d9a53005841786d6d14ce81
CRs-Fixed: 2831535
2020-12-09 21:56:00 -08:00
Srinivas Girigowda
d36054fbd2 qcacld-3.0: components: Remove logs for qdf_mem_malloc() checks
qdf_mem_malloc() function already takes care of logging the
caller function name and line number in case of any allocation error.
Hence there is no need to add the error log again.

Getting rid of these unnecessary logs reduces driver memory footprint.

Change-Id: If0b9425f82f9ed793c7639c0ed09eb1f868b6d5c
CRs-Fixed: 2781932
2020-09-25 12:59:42 -07:00
Abhishek Ambure
32e06f1124 qcacld-3.0: Add support to set/reset BLM suspend state
Once host sends WMI_WOW_ENABLE_CMDID then host components must not send
any WMI command to FW. In suspend state if host sends WMI command then FW
crashes.
Hence add support to set/reset suspend state of Blacklist manager.
Thus Blacklist manager checks the suspend state and then only sends WMI
command to FW.

Change-Id: I2581d38a485c4f930a6e2dfb951c0fdc2306fa3b
CRs-Fixed: 2765404
2020-09-02 06:52:36 -07:00
Srinivas Girigowda
f375188704 qcacld-3.0: components: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2752355
Change-Id: I2d776be789df3e83e0c13211844b66d595498829
2020-08-22 16:00:40 -07:00
wadesong
a9db8c7b0c qcacld-3.0: Fix compilation error for LFR2+BLM
With the newly introduced BLM enhancement, APs may get enlisted
and sent to FW for (re)assoc restraint. However, the FW side
AP restraint is only required when LFR3 is enabled.

With LFR2, no FW side AP (re)assoc restraint is required and all
actions will be done within driver code.

Use LFR3 specific conditional macro to enclose all the code
needed for sending reject AP list to FW.

Change-Id: I9a8bc0e25bc4b319bf1841324ef1b711f0659093
CRs-Fixed: 2751791
2020-08-10 22:30:40 -07:00
gaurank kathpalia
324fc0b0c3 qcacld-3.0: Enhance BLM infra
Enhance BLM infra to include source,
reason for blacklist, original timeout,
received time for better debug.

Change-Id: Ia705a967a08412824063275f5073c338dabde539
CRs-Fixed: 2744402
2020-07-31 16:26:25 -07:00
gaurank kathpalia
b6dc56c8cc qcacld-3.0: Limit the BTM timeout duration for next connection
- Limit the timeout value of the BLM entry if it has big comeback
 value and allow connection to that BSSID.
- Fix the BLM entry time stamp boundary checks.

Change-Id: I07bf7b1fce1c1e8d349c4fc0a9b0fed07f237197
CRs-Fixed: 2741689
2020-07-27 22:00:27 -07:00
Abhishek Singh
c76b71a758 qcacld-3.0: Move Blacklist filter while scoring the BSS
While BSS are scored apply blacklist logic to remove
blacklist AP or move the avoid AP at the end.

Change-Id: Id5310ef53d31159104fd40af6670135bb1be4571
CRs-Fixed: 2725144
2020-07-16 23:46:12 -07:00
gaurank kathpalia
82f3c99fc5 qcacld-3.0: Flush the blacklist BSSIDs in FW
Currently the expectation from the BLM is to flush
all the BSSIDs which are present in the blacklist
when the user does an explicit on-off, which is
meeting the expectation, but the FW does not flush
this info which leads to async between the two.

Fix is to send 0 blacklist BSSID to FW during
Wifi-off so that it also flushes the list.

Change-Id: I7a0629fefb12deaeec0b5eeea06169272621bf82
CRs-Fixed: 2647018
2020-04-01 05:56:59 -07:00
Amruta Kulkarni
5da0deb270 qcacld-3.0: Add wrapper for blm_get_rssi_blacklist_threshold()
If FEATURE_BLACKLIST_MGR is enabled,
wlan_blm_get_rssi_blacklist_threshold()
would return CFG_BLACKLIST_RSSI_THRESHOLD value
else return value 0.

Change-Id: I0cf5a6561cc217412e3bc6e2a50b85985d1315d7
CRs-Fixed: 2648761
2020-03-25 07:08:45 -07:00
Amruta Kulkarni
d7c24f8a19 qcacld-3.0: Add support to handle assoc reject based on rssi
When AP rejects assoc request based on poor rssi
host will put the AP in blacklist mgr list, only when
rssi value improves by threshold value,should the
STA try to connect to AP.

Change-Id: I78009b89ea07afdd5f3381973a9eb7ec1f73d1b5
CRs-Fixed: 2632015
2020-03-19 12:41:56 -07:00
Amruta Kulkarni
e673511908 qcacld-3.0: Change info/err prints to debug in roaming path
In roaming path, while processing roam synch indication info/err
prints at the driver adds up latency to the total roaming
transition time and the KPI for maximum transition time exceeds
the expected 100ms. The printk buffer is protected by a global
raw spinlock for readers and writers. This restricts the contexts that
are allowed to access the buffer. So large latencies exists when
printing to kmsg done with QDF trace levels WARN, INFO, ERROR.

Change the redundant/less significant info, error, warn level
prints in roaming path to debug level.

Change-Id: I8e2a03ddef8f3cd680263939f6e0275b8703e681
CRs-Fixed: 2597624
2020-01-08 20:10:31 -08:00
gaurank kathpalia
628d3ef690 qcacld-3.0: Check for zero/broadcast BSSID in BLM
Currently the BLM does not check the BSSID of
the entry for 0 or broadcast BSSID, and thus
can lead to addition of many entries with such
property.
This would also result in removal of old valid BSSID
entry data, which is essentially required.

Fix is to check the BSSID of the entry for 0
or broadcast, and reject them if not valid.

Change-Id: I2939673a1c4efb1a22e03ffe82121513c071fa4b
CRs-Fixed: 2595331
2020-01-02 08:15:55 -08:00
gaurank kathpalia
e8ca6c6759 qcacld-3.0: Send BLM reject list to FW after connect update
Send the current reject ap list to FW so that the FW too
updates the same in there database to enable roaming if
any AP is removed from the list.

Change-Id: I9c0176a2c4ae970e454f03b577f6fc98af5b62de
CRs-Fixed: 2489448
2019-07-22 06:33:07 -07:00
gaurank kathpalia
b4fd0fea51 qcacld-3.0: Remove driver internal blacklist ap info
Currently the BLM removes the entry if the difference
between connect and disconnect is greater than the
blm bad bssid reset time.
This could lead to removal of those APs also which
are in rssi reject list too.

Fix is to remove the APs if not present in other list
other than avoid, black (driver).

Change-Id: Iae0edbd093546921e36ce4ed511450617e675adf
CRs-Fixed: 2485750
2019-07-09 13:40:44 -07:00
gaurank kathpalia
fc166a1d36 qcacld-3.0: Flush the BLM reject ap list on WIFI-OFF from UI
Flush the reject ap list from the BLM when the user does
a explicit wifi off from the UI to ensure the user is able
to connect next time the wifi is turned on.

Change-Id: Ia8cdd6aa7e3357fc0def100cb13c6e25c1e0a62e
CRs-Fixed: 2470087
2019-07-03 12:08:39 -07:00
gaurank kathpalia
a8376c9680 qcacld-3.0: Fix potential pointer dereference condition
In the API blm_update_ap_info, it may happen that the scan
entry is NULL, and the scan entry pointer maybe dereferenced
in the debug print where the rssi print is there.

Fix is to print the RSSI only when the scan entry is valid.

Change-Id: I3ad973d61a0c11b6a55c8b346d54eb41956882b6
CRs-Fixed: 2469815
2019-06-15 00:26:07 -07:00
gaurank kathpalia
8de8fcb2cf qcacld-3.0: Update the bad bssid reset time in MS
Update the bad bssid reset time in Ms, and compare with the
connection age to remove the BSSID with which the nud fail
has not happened till the mentioned bad bssid reset time.

Change-Id: I6ba58d5e8a110b4c83d5c83e3cec6c832a24094b
CRs-Fixed: 2469969
2019-06-12 16:14:55 -07:00
gaurank kathpalia
d11776adb8 qcacld-3.0: Remove BSSID from BLM reject ap list in disconnect
Remove the BSSID entry from the blacklist manager reject ap list
when the bad bssid counter gets over.

Change-Id: I833d161d97afd5c13a23ae48b1aded38d55b25e4
CRs-Fixed: 2468236
2019-06-11 09:50:51 -07:00
gaurank kathpalia
bf3314357d qcacld-3.0: Set BSSID state as disconnected when roaming is successful
Set BSSID state as disconnected when roaming is successful
so that blacklist manager can clear the AP info if the
nud failure did not come for blacklist reset time value.

Change-Id: Ie602c02d7a43b46daa7f1b1f85cd98628da91280
CRs-Fixed: 2467319
2019-06-09 02:57:00 -07:00
gaurank kathpalia
2bc10dec7a qcacld-3.0: Set remaining duration of BSSID according to type
Set remaining duration of BSSID according to type of
list it is in. For eg. the remaning duration of avoid
list type would be the avoid list timer value minus the
time for which it is in blacklist manager's reject
ap list.

Change-Id: I0f9ed9e04ab6a5fbdc79521b20f0afd8f8028855
CRs-Fixed: 2466191
2019-06-07 11:38:52 -07:00
gaurank kathpalia
bf933ff252 qcacld-3.0: Clear the userspace blacklist info
Clear the userspace blacklist info when a new
command for set blacklist BSSID comes to the driver
even if the userspace sends zero BSSIDs.

Change-Id: Ic2e310359d8e83c0821a0c4c8fedd90e81998627
CRs-Fixed: 2464948
2019-06-05 09:22:13 -07:00
gaurank kathpalia
867e789300 qcacld-3.0: Fill reject ap type in blm fill reject list
Fill the reject ap type as the one requested by the user
in the reject ap list.

Change-Id: Ie26180293e4b0c5c212ebcd31a15fd93f9150f8e
CRs-Fixed: 2464748
2019-06-05 09:22:03 -07:00
gaurank kathpalia
ac8504a703 qcacld-3.0: Cleanup the scan blacklist path
Currently with the support of Blacklist manager
component, all the blacklist, avoid list, RSSI-REJECT
list is maintained by the BLM, hence the filter logic
of the blacklist APs in the scan component is not
required.

Cleanup the blacklist BSSID APIs, and related functionality.

Change-Id: I4c8283d2c5e4ca66c24a25d31a74026510bb452c
CRs-Fixed: 2464188
2019-06-03 15:24:35 -07:00
gaurank kathpalia
7ef7218496 qcacld-3.0: Add support for roaming in case of NUD failure
Add support for roaming in case the driver
detects a nud failure. The STA then would roam
to another BSSID, else if the roaming gets failed
the STA would remain connected to the same BSSID
as connected before.

Change-Id: Idbc99b0ce2f9cacd97564dd8cf9892120958eda2
CRs-Fixed: 2461675
2019-06-02 01:51:38 -07:00
Abhishek Singh
cf8bedbc4f qcacld-3.0: Send reject ap list to FW
Reject AP list which is maintained by the blacklist manager
has to be sent to the FW for roaming case scenarios, as
the blacklist, and rssi reject APs should not be preferred
in the reassociation.

Change-Id: I58bf90e17653dde2a5042780ba7d57fa3115d63a
CRs-Fixed: 2461230
2019-05-31 21:55:53 -07:00
gaurank kathpalia
1db9525dbf qcacld-3.0: Add logic to add a BSSID in reject ap list
Add logic to add a bssid in the reject AP list maintained
by the blacklist manager. The logic includes addition of
userspace blacklist, avoid list, RSSI reject list,
and not deletion of lowest delta BSSID if the space in the
reject ap list is full.

Change-Id: I0c359f510510582099059fbb9cc098f5a3f91c1b
CRs-Fixed: 2460795
2019-05-31 21:55:48 -07:00
gaurank kathpalia
603aafdacf qcacld-3.0: Add logic to filter scan list with reject ap list
Add logic to filter the bad BSSIDs present in the scan list
with the BSSIDs present in the blacklist manager's reject ap
list.

Change-Id: I3a19be753b64387e251e3a9bc740865bf80251a8
CRs-Fixed: 2460788
2019-05-31 21:55:45 -07:00
gaurank kathpalia
8c943b7df5 qcacld-3.0: Add basic infra, INI, deinit path for BLM
BLM:- Blacklist Manager

Add the basic infrastructure such as target-if, tgt, init,
deinit, ini files, core and main files for the new component
Blacklist Manager.

Change-Id: I624a779ee0dd6be7cb26a911af0aefd426ca9bff
CRs-Fixed: 2460602
2019-05-31 21:55:41 -07:00