Commit Graph

174 次程式碼提交

作者 SHA1 備註 提交日期
Paul Zhang
472d30e365 qcacld-3.0: Revert "Tune TDLS code for discovery response"
The issue has been addressed in the supplicant.
So revert change: I89b501fc4da8615ddb8973e5edce73294793558f

Change-Id: I02b74a512c97803c597942c1ea00e3a02fbf4599
CRs-Fixed: 3544617
2023-06-30 23:48:33 -07:00
Paul Zhang
ac2beaa8f5 qcacld-3.0: Remove TDLS 11be MLO CAP checking
TDLS off channel will be supported by FR 80104, so remove the
checking when setting flag ENA_TDLS_OFFCHAN.

Change-Id: Iae135e835bd74e32a3f712083263192ae7cb635f
CRs-Fixed: 3545087
2023-06-30 20:28:18 -07:00
Alan Chen
baf6433a8f qcacld-3.0: Add additional bazel-related changes
Add additional bazel-related changes to resolve build errors.

Change-Id: I891556a81d217fded38915293aeea83a389d6782
CRs-Fixed: 3517415
2023-06-21 16:53:13 -07:00
Paul Zhang
69dc57263c qcacld-3.0: Tune TDLS code for discovery response
Currently, TDLS code sends setup request and then forwards
TDLS discovery response frame. For MLO case, since supplicant
gets the link id from the link identifier element of discovery
response frame, there is issue when supplicant tries to add
new station because link id has not been properly set.

To resolve this issue, tune the TDLS code to forward the TDLS
discovery response frame first and then send setup request event.

Change-Id: I89b501fc4da8615ddb8973e5edce73294793558f
CRs-Fixed: 3528071
2023-06-15 16:30:58 -07:00
Paul Zhang
3050ccd014 qcacld-3.0: Create API for TDLS configure link id
Create API to set link id and used in
wlan_hdd_cfg80211_tdls_mgmt function for MLO TDLS.

Change-Id: I39814db1646362585cb9c3258d7e71c3cabe4204
CRs-Fixed: 3491950
2023-06-12 16:25:39 -07:00
Pragaspathi Thilagaraj
a598c36737 qcacld-3.0: Cleanup redundant error logs
Change few repeating error logs to debug level.

Change-Id: Ie64d4a99e70dae6dd9548bfa90914075c73feb77
CRs-Fixed: 3509900
2023-06-11 14:18:11 -07:00
Aditya Kodukula
744adf0e1c qcacld-3.0: Fix typos in cld
Fix typos spanned over multiple files in cld.

Change-Id: I88def5a2898c9e3e5cf32d123521faa53ef42e70
CRs-Fixed: 3521886
2023-06-07 13:58:12 -07:00
Pragaspathi Thilagaraj
116e201f3e qcacld-3.0: Fix null pointer dereference in tdls_set_ct_mode
Fix null pointer dereference of tlds_soc_obj if
tdls_get_vdev_objects() returns failure.

Change-Id: Ibd6e38b834d7182b240a9bfaf176dbf47b32b1b7
CRs-Fixed: 3491244
2023-06-01 21:12:20 -07:00
sandhu
d03f075f36 qcacld-3.0: Remove tdls set state cnt
Remove tdls set state cnt check before sending
fw tdls state update. Fw state updates could be for
multiple vdev's set state cnt check works for only
single vdev.

Change-Id: Id154e623a03e65a99f27360c33b261209ac2e754
CRs-Fixed: 3483291
2023-05-20 10:48:48 -07:00
Pragaspathi Thilagaraj
58b0a2bb4a qcacld-3.0: Fix invalid vdev validation in tdls teardown
Fix invalid vdev validation in wlan_tdls_teardown_links_sync()
api.

Change-Id: Ie47797a6fdc1ba9851c6d39f7cdc699afb22b208
CRs-Fixed: 3472182
2023-04-19 22:11:54 -07:00
Pragaspathi Thilagaraj
7a71e4211e qcacld-3.0: Cleanup few redundant tgt TDLS API
Cleanup redundant TDLS tgt wrapper API's

Change-Id: I8c9bbbdbbdcb26af096038998bc32499dfee7ebb
CRs-Fixed: 3469210
2023-04-19 10:36:20 -07:00
Pragaspathi Thilagaraj
9e24d820d4 qcacld-3.0: Handle STA + TDLS + P2P CLI concurrencies
When P2P CLI is connected first and then STA is connected,
disable TDLS on existing interface and enable TDLS on the STA
vdev.

When existing STA + TDLS exists, disable off channel when P2P
connection is started and re-enable off channel for TDLS once
connection is complete. Don't teardown TDLS peers once the
P2P client connection is successful.

Change-Id: I91d152a3a052706289c06cebc932c84a69fdbc00
CRs-Fixed: 3455639
2023-04-15 04:39:35 -07:00
Pragaspathi Thilagaraj
f8ac9322f3 qcacld-3.0: Add debugs for TDLS concurrencies
Add more debugs for TDLS concurrency scenarios.
Enable WLAN_FEATURE_TDLS_CONCURRENCIES.

Change-Id: Iad2d96d0bbf6a8f5e488ea5da2d666a55d9b5aba
CRs-Fixed: 3461776
2023-04-15 02:57:13 -07:00
Pragaspathi Thilagaraj
b96ea38606 qcacld-3.0: Cleanup tdls_disable_in_progress condition checks
tdls_disable_in_progress checks are always false since the
tdls_disable_in_progress is never set to true.
So cleanup the condition checks that use the
tdls_disable_in_progress variable.

Change-Id: I8a5f868c09919fc5835b9f8f7f30a32d59dab74a
CRs-Fixed: 3445123
2023-04-14 01:53:42 -07:00
Pragaspathi Thilagaraj
01e7881521 qcacld-3.0: Propagate proper TDLS AP capabilities during enable
TDLS AP capabilities are stored in MLME, but is not used while
sending WMI_TDLS_SET_STATE_CMDID to firmware, instead false is
passed without passing the actual AP capabilities. This could
cause TDLS getting enabling when AP doesn't allow TDLS.

Cleanup few API and remove ap_cap structure in TDLS vdev private
object

Change-Id: I43c140d58e8777da3acf748f08f5d9915fd91bf4
CRs-Fixed: 3449324
2023-04-12 16:37:33 -07:00
Pragaspathi Thilagaraj
282f018e47 qcacld-3.0: Handle TDLS concurrency during CSA
If CSA on SAP/P2P GO causes MCC with the current STA TDLS vdev,
then teardown the TDLS connections, disable off channel and send
disable TDLS to firmware.
If CSA causes MCC -> DBS or MCC -> SCC then allow TDLS and update
the peer off channel list to firmware
Disable TDLS off-channel before SAP/P2P GO vdev restart.
Once CSA is complete, TDLS off-channel will be re-enabled based
on the concurrency.

Add interface manager changes to notify STA channel switch.

Change-Id: I36b359a7e1cf570cfb2b2f0e6abedf148a8fd174
CRs-Fixed: 3445112
2023-04-12 12:53:47 -07:00
Paul Zhang
0752365a21 qcacld-3.0: Add logic to support tdls on MLO
Since for MLD device, it can only choice one link for tdls,
add logic like this:
1\ As initiator, it needs to send discovery request on each
link, before send the frame, it needs to force active the link;
2\ As responder, it sends the discovery response the link id,
before send the frame, it needs to force active the link;
3\ For other tdls management and tdls operation, it needs to
find out which link(vdev) is used as tdls link first.

Change-Id: I64e27219eb6c6b3fef62e541423aa8e5d84b1560
CRs-Fixed: 3439568
2023-04-12 01:32:45 -07:00
Paul Zhang
046e755835 qcacld-3.0: Handle TDLS discovery response logic
For MLD case, it may receive two discovery response frames if
peer is MLD device. In this case, it needs to check the response
frame and make a decision about which vdev is used for TDLS
vdev.

Change-Id: I3d7c3343aef2d6843b362fca191caef8b982d3f8
CRs-Fixed: 3439577
2023-04-10 17:08:19 -07:00
Paul Zhang
5f512ff2ec qcacld-3.0: Set eht_capable accordingly for TDLS
Set parameter add_sta_params->eht_capable accordingly whether
the peer STA support it or not.

Change-Id: Ib3664be74ece59804321e187fea889610c0a2a86
CRs-Fixed: 3454661
2023-04-10 17:08:13 -07:00
Paul Zhang
44804ad746 qcacld-3.0: Update num tdls vdevs to 2 if fw 11be capab
Update tdls vdevs to 2 if fw 11be capable. Add
WMI_SERVICE_11BE_TDLS_SUPPORT update num tdls vdevs
to 2 for firmware while init_cmd_send_tlv.

Change-Id: I12cced5718cb189ce1f96d204ac64108ccef5ca3
CRs-Fixed: 3436013
2023-04-09 20:15:43 -07:00
Paul Zhang
a15b2c8b52 qcacld-3.0: Add api policy_mgr_get_connection_count_with_mlo()
Since for MLO there may be several link connections, for TDLS
using api policy_mgr_get_connection_count_with_mlo() to replace
with policy_mgr_get_connection_count() to follow the original
logic.

Change-Id: Ic13c89f2e834196c01ca6966329cbd0d1552f292
CRs-Fixed: 3436049
2023-04-05 20:40:52 -07:00
Paul Zhang
75bb0abb6a qcacld-3.0: Add new api in tdls module
Add new api for tdls mld feature:
ucfg_tdls_get_mlo_vdev
ucfg_tdls_release_mlo_vdev
ucfg_tdls_discovery_on_going

Change-Id: I874fd5ef1af94a9e576ba6738a12b7e2af891537
CRs-Fixed: 3439345
2023-04-04 14:40:37 -07:00
Pragaspathi Thilagaraj
c2976a7b2d qcacld-3.0: Handle SAP + TDLS concurrencies
Disable TDLS offchannel on SAP start if concurrent STA with
TDLS exist.
Enable TDLS off channel after SAP start if SAP and
STA are not in MCC.

If TDLS is enabled, and off channel is required, update
TDLS off channel to be the SAP channel.

Change-Id: Ica508889acbae5e2dc4269d4d7518cf01d62714f
CRs-Fixed: 3444747
2023-03-28 04:34:46 -07:00
Pragaspathi Thilagaraj
37a1c90ea3 qcacld-3.0: Add initial checks for TDLS concurrencies
Check if TDLS is allowed for the current existing concurrency
combination. In below combinations, TDLS is not allowed:
1. MCC on STA vdev
2. STA + STA
3. Total connection count > 3
4. No STA vdev exists

If existing TDLS connection exists when 4th port is coming up,
then teardown the TDLS connection and disable off channel.

Change-Id: Iabe174bedecfa6147bd9de3cb2a3716b63145456
CRs-Fixed: 3435864
2023-03-27 01:47:16 -07:00
Pragaspathi Thilagaraj
06be2cbc56 qcacld-3.0: Add support to disable TDLS offchannel completely
Add support for new TDLS off-channel mode type:
DISABLE_ACTIVE_CHANSWITCH. With this
off channel mode, the TDLS off-channel will be disabled
completely without passive disable mode.
DISABLE_CHANSWITCH -> Passive channel switch can be done i.e if
peer requests channel switch then firmware can do channel switch
DISABLE_ACTIVE_CHANSWITCH -> Disable all off-channel switches.

Add support to send peer channel lists based on concurrency
combination. Override the ini configured frequency to the
supported frequency based on the current concurrency.

Change-Id: Ie3210178eb8b57d6ab126a730ed91895b70edaa1
CRs-Fixed: 3416213
2023-03-21 11:50:51 -07:00
Pragaspathi Thilagaraj
fbf0ea73d5 qcacld-3.0: Don't allow TDLS on MLO vdev
TDLS is not supported on ML STA but it gets enabled
currently when connected with ML AP and TDLS discovery request
is sent to peer devices.

So don't allow TDLS on MLO vdev.

Change-Id: I5bb9e03a0be3f3249aa7af664666a53a67ee812d
CRs-Fixed: 3416206
2023-03-09 23:26:11 -08:00
Surabhi Vishnoi
b8adb54ef5 qcacld-3.0: Send TDLS notify sta disconnect on roam
Currently, TDLS STA disconnect notification is not sent during
roam, so WMI_TDLS_SET_STATE_CMDID with disable command is not sent
to firmware. This leads to unexpected behavior in firmware when STA
have migrated to different mac based on new band (2 GHz to 5/6 GHz or
vice-versa) due to roaming, but TDLS STA remain on previous mac.
Firmware expects host to send WMI_TDLS_SET_STATE_CMDID on roam also
so that it can destroy and create new TDLS STA instance and map TDLS
STA to new mac.

To fix above issue, send WMI_TDLS_SET_STATE_CMDID with disable TDLS
state to firmware after driver receives roam sync indication which
leads to destruction of TDLS STA instance in firmware.
Host driver would later send WMI_TDLS_SET_STATE_CMDID with enable TDLS
state(not part of this commit) after successful STA roaming so that
firmware maps TDLS STA with new mac.

This change also removes unused ucfg_tdls_notify_sta_connect() and
ucfg_tdls_notify_sta_disconnect() APIs.

Change-Id: Id680d0f6193740b24e78115ac7dc7be26e28acff
CRs-Fixed: 3388507
2023-02-16 18:19:28 -08:00
Jeff Johnson
ac73d2ec1d qcacld-3.0: Fix TDLS Documentation
The kernel-doc script identified a multitude of documentation issues
in components/tdls, so fix them.

Change-Id: I365496d70e903bae1abad7b807687904f7f15af7
CRs-Fixed: 3360666
2022-12-29 18:33:36 -08:00
Roopavathi Lingampalli
fcb513f88f qcacld-3.0: Add Component APIs for required ucfg APIs in DP component
When component dependent functions calling from higher
modules or any other components, it uses ucfg APIs pattern.
Calling ucfg dependent APIs is acceptable for higher modules
like HDD, OSIF but for another components like DP to avoid
using ucfg APIs here, implementing component APIs for existing
ucfg APIs to other components like MLME, TDLS, Pkt capture in
DP component module.

Change-Id: Ib8857eeca6a88810d7875312ff6dc14ffb60bc70
CRs-Fixed: 3351486
2022-12-13 14:06:07 -08:00
Wu Gao
9a0f87ceeb qcacld-3.0: Check tdls peer list size before add new node
Page fault reproted when all tdls peer list size exceed their max
size. So, add the change to avoid this issue.

Change-Id: I66b5f85c8cdc98491b33b2100a55f424d5531ca0
CRs-Fixed: 3321105
2022-10-31 10:51:34 -07:00
Jia Ding
b55558710e qcacld-3.0: Fix TDLS componentization
With FEATURE_WLAN_TDLS=n, compiler is throwing implicit
declaration error of function wlan_tdls_get_features_info.

Hence add wlan_tdls_get_features_info stub declaration for
FEATURE_WLAN_TDLS=n.

Change-Id: Ia9820e630b756befbfda98330be193760a331c93
CRs-Fixed: 3309612
2022-10-12 03:28:52 -07:00
Divyajyothi Goparaju
3498515802 qcacld-3.0: Replace wlan_reg_get_channel_state_for_freq
Replace all occurrences of
wlan_reg_get_channel_state_for_freq with
wlan_reg_get_channel_state_for_pwrmode and use extra
parameter as REG_CURRENT_PWR_MODE.

Change-Id: I7f7e4e700091918eeebc87ccbbc85ececdd9bf52
CRs-Fixed: 3145011
2022-10-06 13:01:14 -07:00
Jeff Johnson
17fc1e0890 qcacld-3.0: components: tdls: Fix misspellings
Fix misspellings in components/tdls/...

Change-Id: I33aea84441f7eea0fca2d62df21cf8fa1846a18e
CRs-Fixed: 3303633
2022-10-03 00:19:28 -07:00
Utkarsh Bhatnagar
5852333960 qcacld-3.0: Populate 6 GHz offchannel params correctly
Populate 6 GHz offchannel params only when VLP power is
supported by APs country.

Change-Id: Ic8d5d3f4b0bc1126d25242633eb0aae98989ddc3
CRs-Fixed: 3288784
2022-09-27 01:04:01 -07:00
Utkarsh Bhatnagar
9c250be16d qcacld-3.0: Use uint8_t instead of bool for tdls maxpeercount
Use uint8_t instead of boolean for tdls maxpeercount in
wlan_tdls_features as this will result in restricting max
supported TDLS peer count as one when more than one TDLS
peers are set.

Change-Id: I468f87e80178c0fb2e80b122f59d0dffcfa3928f
CRs-Fixed: 3284105
2022-09-08 10:48:14 -07:00
Jeff Johnson
b5a18bdbe6 qcacld-3.0: Fix misspelling "implict"
Fix misspelling: implict ==> implicit

Change-Id: I150ae8f5fd8a9ce9039d4344c1e1da9026bd10ce
CRs-Fixed: 3275696
2022-09-07 03:11:29 -07:00
Utkarsh Bhatnagar
ce8795375d qcacld-3.0: Disable TDLS offchannel if more than 1 peer connects
Disable TDLS offchannel if number of connected peers are more than
one.
Also, re-enable offchannel if all peers are disconnected expect one.
With this change, it is possible to increase the limit of max
connected peers which was previously set as one when TDLS
Offchannel is enabled.

Change-Id: Ic0826aa32c8ef805a2df6da6c7506895cdc08a09
CRs-Fixed: 3265868
2022-09-05 21:32:50 -07:00
Utkarsh Bhatnagar
0d8b108c4a qcacld-3.0: Update offchannel freq and bw based on peer caps
Update offchannel frequency based on peer caps such as
1. If 6 GHz is supported then select the ini preferred 6 GHz channel
   frequency if peer also supports the same channel.
2. If 6 GHz is supported and peer doesn't support the ini preffered
   channel frequency then select the very first 6 GHz channel which
   peer supports as preffered offchannel.
3. If peer doesn't support 6 GHz, then select ini preffered 5 GHz
   off channel frequency, given that peer should also support it.
4. If peer doesn support 6 GHz and also doesn't support ini preferred
   5 GHz offcahnnel, then select the very first 5 GHz channel it
   supports.

Update preffered offchannel Bandwidth such as take minimum of peer
supported max bandwith which is extracted from supported opclass and
max Bw device supports.

Change-Id: I93412774f35280105b22d5ec44895572f9d7aeef
CRs-Fixed: 3266066
2022-09-05 04:48:43 -07:00
Jeff Johnson
c5b6befd72 qcacld-3.0: Fix misspellings of "capability" and "capabilities"
Fix misspellings of "capability" and "capabilities":
capabiities ==> capabilities
capabilites ==> capabilities
capabilties ==> capabilities
capabilty ==> capability
capablities ==> capabilities
capablity ==> capability

Change-Id: Ie4f14088fb86b63e3ee985c004f82d73d2c73963
CRs-Fixed: 3274606
2022-08-29 19:09:04 -07:00
Utkarsh Bhatnagar
33f9595701 qcacld-3.0: Disable legacy netdev params for TDLS
Since TDLS and STA share a common netdev interface,
when STA connection is made in 11a, 11b, 11g mode,
netdev parameters such as TSO/checksum are disabled.
If TDLS connection is formed over this Station,
TSO remains disabled as STA netdev is used.

This might result in loss of throughput when TDLS
connection is made with 11n, 11ac, 11ax dot11mode and
with wider bandwidth TDLS, this loss is more prominent.

Hence, overwrite the netdev params to enable TSO when
TDLS connection is formed in 11ax, 11ac, 11n mode if
the station is in 11a, 11b, 11g mode.
Also, disable the TSO params when TDLS tearsdown when
STA is in 11a, 11b, 11g mode.

Change-Id: I80deaef40d70030211e75a63e1339b1407627b52
CRs-Fixed: 3245258
2022-08-24 15:54:53 -07:00
Utkarsh Bhatnagar
23582bfd81 qcacld-3.0: Reject TDLS Setup for concurrencies
Add concurrency conditions to reject TDLS setup if
along with BSS STA, any other iface is in connected state.

In case where supplicant directly sends TDLS setup without
adding peer or Discovery been rejected because of
concurrency, driver adds the peer and update fw with the
same using UPDATE_TDLS_PEER_STATE command. This results
in fw crash as TDLS state is not yet set.
This check is required because setp_peer shouldn't be
processed if any other interface such as SAP, P2P already
have started otherwise it will result in FW crash.

Change-Id: Ia0f1f099a5fb5be0c4875a38842d97070964aaa0
CRs-Fixed: 3263513
2022-08-19 05:05:25 -07:00
Ashish Kumar Dhanotiya
2490a83a25 qcacld-3.0: Add support to get feature set info
Based on the new requirement, add support to get requested
feature set info from different feature components.

Change-Id: I1bfc097c8ae8c4ab678d4dc07b7932cf3272d851
CRs-Fixed: 3262868
2022-08-12 18:55:15 -07:00
Utkarsh Bhatnagar
24644fa171 qcacld-3.0: Fix stack frame size warnings for tdls 6 GHz functions
Fix stack frame size warnings during compilation for
tdls_get_6g_pwr_for_power_type and
tdls_is_6g_freq_allowed.

Change-Id: Ic9ca3c3db33acd769720bfcb8a754f8d6e6492ab
CRs-Fixed: 3249672
2022-08-03 05:29:35 -07:00
Utkarsh Bhatnagar
57f0e9e475 qcacld-3.0: Use freq to process Tdls peer supported chans
With introduction of TDLS on 6 GHz, some of the channels
that peer can support will be same for 6 GHz band other
bands. So, extract frequency by using peer supported
operating class and supported channel list which can
be used for further processing.
If channel numbers are used then the duplicate channel
numbers are removed which may lead to skipping 6 GHz
supported channels.

Change-Id: Ic6838d05c3dab5a0cc17483890b83805e076684c
CRs-Fixed: 3233999
2022-07-07 17:46:21 -07:00
Utkarsh Bhatnagar
fa29fba7e4 qcacld-3.0: Use freq instead of chan num for TDLS pref offchannel
Use frequency instead of chan num for processing TDLS offchannel
req for preferred offchannel.
Since, after introduction of TDLS on 6 GHz band it is better to
process offchannel in frequency instead of channel numbers as
some of the channel numbers are repeated for 6 GHz.

Change-Id: Icd7084b9f3c407ad0ad104b7f0d2230e31e0b10d
CRs-Fixed: 3234920
2022-07-05 03:18:45 -07:00
Utkarsh Bhatnagar
4d9e51e8a7 qcacld-3.0: Allow TDLS connection in wideband only if fw supports
Irrespective of 6 GHz, wideband can be supported.
So, Allow TDLS connection in wideband only if FW supports TDLS
on 6Ghz.
If Fw doesn't support wideband then restrict the TDLS connection
BW to APs Bw.

Change-Id: If726233f381921a8eda25ac7a2705942db79d410
CRs-Fixed: 3223760
2022-06-30 10:53:58 -07:00
Utkarsh Bhatnagar
50885ab717 qcacld-3.0: Add support for TDLS offchannel
Add support for TDLS offchannel changes required
for supporting TDLS offchannel on 6 GHz band.

Change-Id: Ie150ff7e5a8237dab445ccb0ab6a4959a7c7fbf0
CRs-Fixed: 3223640
2022-06-29 04:31:05 -07:00
Utkarsh Bhatnagar
5b8626946b qcacld-3.0: Allow TDLS connection on 6GHz only if fw supports
Allow TDLS connection on 6GHz only if FW supports TDLS on 6GHz.

Change-Id: I663bd6d73235664c21029d8956f465da5a5b39c6
CRs-Fixed: 3223677
2022-06-25 03:03:20 -07:00
Utkarsh Bhatnagar
31fa2f653e qcacld-3.0: Set VLP mode for STA if TDLS enabled
For STA+TDLS on 6 GHz band, set power mode as VLP
if the country supports it. Once there is no
connected peer then restore the mode which
was there before the TDLS connection.

Change-Id: I551ec77545e33cc70d1ce51a0a92cd7d8a56a8db
CRs-Fixed: 3223647
2022-06-25 01:08:34 -07:00
Utkarsh Bhatnagar
77afc58054 qcacld-3.0: Add check for allowing TDLS 6GHz
Add check for allowing TDLS 6 GHz such as TDLS
is only allowed for channels which supports
VLP Power level.

Change-Id: I32ea3fb61deed2ff236849ef22894d5cb791dd84
CRs-Fixed: 3223617
2022-06-25 01:08:28 -07:00