Commit grafiek

124 Commits

Auteur SHA1 Bericht Datum
Arun Kumar Khandavalli
c3fd408a86 qcacmn: Deinitialize t2lm context correctly
Deinitialize the t2lm context so that locks/timer will get
freed correctly.

Change-Id: I392f5c89f5c144413ed6144f499fadf054c547c5
CRs-Fixed: 3359134
2023-01-03 09:40:24 -08:00
Asutosh Mohapatra
1ade380fc3 qcacmn: Use mac_addr pointer as constant
Use mac_addr pointer as constant in wlan_hdd_ml_sap_get_peer,
hdd_set_mld_address and use the same for consecutive APIs.

Change-Id: I3ab7b0f3c03e9175c62179029efb53fb9fe75277
CRs-Fixed: 3342115
2023-01-02 15:01:22 -08:00
Deeksha Gupta
f1acd4d6d6 qcacmn: Add support to get Link info from reconfig ML IE
In the driver, add support to get the Link information from a given
reconfig variant Multi-link element.

Change-Id: Ia23b26ddb4195da21c071ee5f3c198e0492ef952
CRs-Fixed: 3348524
2022-12-27 11:09:13 -08:00
Himanshu Batra
b23b9551cc qcacmn: Changes to handle dynamic link add for non-AP MLD
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
2022-12-27 11:09:04 -08:00
Himanshu Batra
5ea3ebf775 qcacmn: Change to handle ML reconfig link delete
Change to handle ML reconfig link delete

Change-Id: Iaf743a1a61534f2f4bb12be7fccad48e67b81c12
CRs-Fixed: 3346537
2022-12-27 11:08:54 -08:00
Deeksha Gupta
3c3a62b04b qcacmn: Add support to get MLD mac address from reconfig ML IE
In the driver, add support to get the MLD mac address from a given
reconfig variant Multi-link element.

Change-Id: I8c54f58f05a89cd5624ea5dc34b6630c06777013
CRs-Fixed: 3348125
2022-12-27 11:08:44 -08:00
Surya Prakash Raajen
49ca504dbd qcacmn: Maintain dp_mlo_ctxt per each MLO group
As per current design, dp_mlo_ctxt is allocated during the
initialization of module while the MLO grouping information is
understood after WMI_READY_EVENT. The same is deinitialized while
unregistering the module.
To ensure dp_mlo_ctxt exists per MLO group, bring the dp_handle
a layer below in the hierarchy into the mlo_setup_info and allocate
dp_mlo_ctxt after the WMI_READY_EVENT is received from all the SOCs
for a given group. Deallocate it after the WMI_MLO_TEARDOWN_COMPLETE
event is received.

CRs-Fixed: 3355405
Change-Id: Ic3102a34a8d44877827e2ff1f7da2e414b2b463f
2022-12-21 06:33:27 -08:00
Nidhi Jain
800dddec55 qcacmn: Registration function for link disablement
This change is to allow other modules to register for
link disablement.
It includes below functions:
1- Notify link update
2- Register to handler to get link update notification
3- Unregister T2LM handlers

Added the below changes as well,
- Move T2LM related data structures to wlan_mlo_t2lm.h file
- Host receives the expected duration from FW for multiple vdevs.
  Hence, add support to extract the expected duration for multiple vdevs.

Change-Id: Ie8e77d5d3b4351a8551ecd7da50786b58dad3b2e
CRs-Fixed: 3346432
2022-12-19 22:17:49 -08:00
Neha Bisht
f27e31059b qcacmn: Add an API to get number of station mld device contexts
Add an API to get number of station mld device contexts

Change-Id: I91bdbfda36e596b7456482f5f0480a341d4e6ed5
CRs-Fixed: 3361088
2022-12-18 05:54:30 -08:00
Aakanksha Doda
ea0e2133b3 qcacmn: Add changes to support MLO+Mesh
Add changes to support MLO+Mesh.

Change-Id: I52df040ef44846e525a1c0a1acf131cb8cac0bf2
CRs-Fixed: 3350795
2022-12-17 23:22:38 -08:00
Shiva Krishna Pittala
11fa724d8a qcacmn: Add support to extract link removal TLVs from MGMT Rx event
To assist the Host in ML reconfiguration element construction for probe
responses, FW sends MLO link removal information as part of the MGMT Rx
event containing the corresponding probe request. This information is an
array of TLVs, one TLV for each link that is undergoing link removal from
the MLD for which this probe request is intended. The TLV carries the link
removal TBTT countdown value maintained by the FW for that link.
Add support to extract the same.

CRs-Fixed: 3335361
Change-Id: I16c6791a443ddb166da596d404a52ff2a38da291
2022-12-11 23:52:12 -08:00
Shiva Krishna Pittala
11dccd8fac qcacmn: Add support to extract wmi_mlo_link_removal_tbtt_update TLV
WMI_MLO_LINK_REMOVAL_EVENTID will be sent by FW to update the Host with the
progress of the link delete operation. Add support to extract the TBTT
update TLV sent in this event.

Change-Id: I01ce710d282f16e7a7cf4fb767279661558d129f
CRs-Fixed: 3322714
2022-12-11 23:51:54 -08:00
Shiva Krishna Pittala
b24b3a7e25 qcacmn: Add support to extract wmi_mlo_link_removal_evt_fixed_param TLV
WMI_MLO_LINK_REMOVAL_EVENTID will be sent by FW to update the Host with the
progress of the link delete operation. Add support to extract the fixed
params TLV sent in this event.

Change-Id: Ic42a822339363b1347ae174926a4dac19eef3f99
CRs-Fixed: 3318005
2022-12-11 23:51:45 -08:00
Shiva Krishna Pittala
c1231d0824 qcacmn: Add support to populate and send WMI_MLO_LINK_REMOVAL_CMDID
WMI_MLO_LINK_REMOVAL_CMDID is to be sent by the Host to initiate the
removal procedure for a given link from its MLD. This command will be sent
on the impacted link only. Add support to populate and send this command.

Change-Id: I8485d8c8897bb2bb891d50546d5fbfac2a69a4ce
CRs-Fixed: 3314430
2022-12-11 23:51:35 -08:00
Amruta Kulkarni
8759cf1c1e qcacmn: Add support for T2LM timer handling
Adds api's to handle t2lm timer functionality.
Api's added are timer initialize, start, stop, expiry handler.

Change-Id: If52453135921067d04f8349ece64c33cd524af00
CRs-Fixed: 3342822
2022-12-08 11:01:09 -08:00
Srinivas Pitla
3bae1f975c qcacmn: add MLME changes for ML reconfig
1) add op flags to indicate Link removal in progress
2) update API to include link removal check for ML peer create
3) add API to check whether all link peers to be deleted.

CRs-Fixed: 3341256
Change-Id: I8fabd19d3321315eb13d874a7e9b2e93392a7886
2022-12-07 16:19:21 -08:00
Vinod Kumar Pirla
a780b76595 qcacmn: Introduce API to find ML peer with same MAC
Introduce an API which iterates on each MLD dev context in the
global MLO device manager and the ML peers in each dev context,
the API returns true if any entity's MLD address matches with
the MAC address received or else returns false.

Change-Id: If98fb9667b797d7d2fcfe40f66afb2a44daf4874
CRs-Fixed: 3349575
2022-12-07 00:20:30 -08:00
Shashikala Prabhu
2f56148a95 qcacmn: Remove 11be compile flag
Remove 11be compile flag from T2LM data
structure definitions.

Change-Id: If444d6f8b48da5b091b0af6b91055677e34c86dd
CRs-Fixed: 3352003
2022-12-06 22:19:46 -08:00
Deeksha Gupta
730d9abd4d qcacmn: Add API to find Multi-Link element based on variant
Based on the ML IE variant, add new API to find the first
Multi-Link element or the start of the first Multi-Link
element fragment sequence in a given buffer containing
elements, if a Multi-Link element or element fragment
sequence exists in the given buffer.

Change-Id: I89535f67aeb012c872216c8971b29f5afa359d07
CRs-Fixed: 3326673
2022-12-06 11:26:18 -08:00
Shashikala Prabhu
952dd4de06 qcacmn: Add API to parse the T2LM event ID
Add API to parse the TID-to-link mapping event ID for the AP vaps.
As part of this event,
	 - Update the mapping switch time TSF value in host data structures.
	 - When mapping switch time or expected duration expires in the FW,
	   update the host data structure.

Change-Id: I93232429fe5c2aa12dc4bf9f6a2f014761b7df15
CRs-Fixed: 3350697
2022-12-05 13:03:47 -08:00
Santosh Anbu
2bdc874104 qcacmn: Dispatch mlo_sync_complete in async context
In scenario where the last ML-AP vdev of the MLD receives start response,
then in the same context mlo_sync_complete is dispatched to all the
partner ML AP vdevs.

But for the partner vdevs, VDEV SM event should be dispatched in
non-sync mode with lock held. If not it can lead to event being
dispatched when the VDEV is in intermediate transition state.

For partner vdevs dispatch event as part of callback and based on return
value, dispatch event in sync context for self vdev.
This is to avoid usage of mlme vdev sm sync event dispatch outside VDEV SM

Change-Id: Ib9220c04377985b700138127695a02a5e29952c2
CRs-Fixed: 3317097
2022-11-30 08:23:30 -08:00
Shashikala Prabhu
b699679cb9 qcacmn: Add T2LM IE changes as per IEEE802.11be draft 2.1
Add support to include mapping switch time and expected duration in T2LM
IE.

Removed the below functions as MCC uses ieee_link_id instead of hw_link_id.
Do this conversion in the WIN only code.

wlan_mlo_get_hw_link_id_mask, wlan_get_ieee_link_id_mask
wlan_mlo_parse_t2lm_provisioned_links, wlan_mlo_add_t2lm_provisioned_links

Change-Id: Icc36ff318de4177bf0941235243298baef83d1e6
CRs-Fixed: 3341502
2022-11-30 02:52:18 -08:00
Nidhi Jain
be0e54e189 qcacmn: Update T2LM negotiation values for wlan_t2lm_enable
This change updates the T2LM negotiation values for wlan_t2lm_enable.

Change-Id: I17e2d0e99eb383f072f5595c524156265274a194
CRs-Fixed: 3306992
2022-11-23 21:52:12 -08:00
Shashikala Prabhu
5c88babc02 qcacmn: Define structures for T2LM changes
Add IEEE802.11be specific T2LM structure definition

Change-Id: Ia29ff6dfed1edca60e294c8455c8acef09b3fada
CRs-Fixed: 3333876
2022-11-22 00:41:28 -08:00
Shashikala Prabhu
97295e0441 qcacmn: APIs to add and parse TID-to-link mapping action frame
Add APIs to add and parse TID-to-link mapping request, response and
teardown action frames.

Change-Id: Ia1d2c9d28f0dfa11441d5a77d023a8dde2d68db5
CRs-Fixed: 3332736
2022-11-22 00:41:12 -08:00
Shashikala Prabhu
da59d95884 qcacmn: APIs to add and parse TID-to-link mapping IEs
Create wlan_mlo_t2lm.h and wlan_mlo_t2lm.c files for T2LM.
Add APIs to add and parse TID-to-link mapping IEs.

Change-Id: I6ae23a35662185040ad9f5a4d983a16782e3fc35
CRs-Fixed: 3329887
2022-11-22 00:41:03 -08:00
Uraj Sasan
363968251f qcacmn: ML probe resp for MBSSID
Implement ML probe response based on draft 2.1 for MBSSID MLO

Case1:  Requesnt for Non-Tx Vap in MBSSID case
If either the Address 1 field or the Address 3 field of the Multi-Link
probe request is set to the MAC address of the AP affiliated with an AP
MLD that corresponds to the nontransmitted BSSID, then the MLD ID
subfield shall not be present in the Probe Request Multi-Link element
of the Multi-Link probe request and the AP MLD is the targeted AP MLD.

The Non-AP MLD will send either a per-STA profile for link specific
request or it can send the ML probe request without link-info in which
case we will respond witll per-STA profile of all the links affilated
with the AP-MLD

Case 2: Request for Tx and Non-TX vap identified by MLDID
If either the Address 1 field or the Address 3 field of the Multi-Link
probe request is set to the MAC address of the responding AP that
operates on the same link where the Multi-Link probe request is sent,
then the AP MLD ID subfield shall be present in the Probe Request
Multi-Link element of the Multi-Link probe request and the targeted AP
MLD is identified by the AP MLD ID subfield.

In this case Non-AP MLD can request of a specific MLD which can be an
MLD of the Tx-vap or it could be MLD of the Non-Tx vap.

Case 3:An AP corresponding to the transmitted BSSID in a multiple BSSID
set shall transmit a Multi-Link probe response in response to a
Multi-Link probe request that is soliciting information of an MLD with
which an AP corresponding to the nontransmitted BSSID in the same
multiple BSSID set is affiliated. Such a Multi-Link probe response
shall carry a Basic Multi-Link element containing information of the
solicited AP MLD and one or more APs affiliated with it. The Basic
Multi-Link element shall be carried in the frame body of the Multi-Link
probe response, whose location is outside of the Multiple BSSID element
carried in the frame. The MLD ID Present subfield of the Presence
Bitmap subfield of the Basic Multi-Link element shall be set to 1.
The MLD ID subfield of the Common Info field of the Basic Multi-Link
element shall be present, and shall be set to the same value as the
BSSID Index subfield of the Multiple-BSSID Index element carried in
the Nontransmitted BSSID Profile subelement of the Multiple BSSID
element, which carries the information of the AP corresponding to the
nontransmitted BSSID

CRs-Fixed: 3306961
Change-Id: I24b2b6a50f57fcc07b060d3e3561246aa44b1b29
2022-11-15 17:49:54 -08:00
Liangwei Dong
52590a8a70 qcacmn: Add set mlo link validation callback
Add "validate_set_mlo_link_cb" callback to mlo link set serialization
request context. Mlo mgr component client can register such callback to
be invoked before set mlo link command to target.

Change-Id: I0e860186dd33fc45b3f662d6af91329f10e4c638
CRs-Fixed: 3324888
2022-11-09 04:03:36 -08:00
Krishna Rao
68a8c47232 qcacmn: Add clarification for util_find_mlie()
Add further clarification for util_find_mlie() that the buffer passed
should contain only 802.11 Information Elements, and should not
contain other information like 802.11 header, 802.11 fields that are
not elements, etc.

Change-Id: Id577cdc08189cd0f60053b1345ee15b3bb4f0eca
CRs-Fixed: 3316369
2022-10-22 11:27:23 -07:00
Amruta Kulkarni
d3119b83c7 qcacmn: Make mlo_clear_connected_links_bmap() api public
mlo_clear_connected_links_bmap api is also used for roaming,
so changing it as public api.

Change-Id: I31225cb04971dbf470338022ca4dc09a9967b5c4
CRs-Fixed: 3317236
2022-10-21 03:22:39 -07:00
Amruta Kulkarni
319456fee7 qcacmn: Add callback api to send stored keys
For STA MLO connection, the AP can send M1 right after assoc
response on assoc link, which will trigger sending keys to FW
for mlo links, but it can happen that wmi_peer_assoc is not
sent for mlo link until this time.
Current code does not have handling for this case.

To solve this, store the link vdev keys and send them once
link vdev is connected.

Change-Id: I882da96280711ca9cfa4d6ba852fda4a8b6d7a77
CRs-Fixed: 3293692
2022-10-12 23:22:44 -07:00
Abishek Ganapathy
ba230e214e qcacmn: Bringup/Bringdown standalone AP vaps in Dependent WDS Repeater
If repeater is configured as dependent WDS repeater, call the
handler to bringup/bringdown all the standalone AP vaps in the
repeater once all the other AP vaps present in the AP ML context
are up/down.

Change-Id: Icad3d0434180cb25bdcdedec3334ccbbe642cf4c
CRs-Fixed: 3299010
2022-10-10 07:34:14 -07:00
Jeff Johnson
93723c6fe1 qcacmn: umac: mlo_mgr: Fix misspellings
Fix misspellings in umac/mlo_mgr/...

Change-Id: I740ec04feca2ed8fe38d0a6fe0cea31683bce439
CRs-Fixed: 3304699
2022-10-06 00:22:12 -07:00
Krunalsinh Padhar
aaa7ef6872 qcacmn: Add API wlan_mlo_peer_get_links_info
This change adds API that searches for the primary peer in the peer list.

It returns vdev link id of the primary peer.

Change-Id: I43bef7ec56c5785669f217d63a15f95717f8d349
CRs-Fixed: 3280575
2022-09-21 16:49:18 -07:00
Gururaj Pandurangi
9fa8fc8b46 qcacmn: Add API to extract MSD caps from cmn info field
Add API to extract MLD AP MSD capabilities from MLO IE
common info field if present. This will be shared with FW
via peer assoc cmd.

Change-Id: I0ebcd5408a40f3314932d4a2a7e586c208af2ee5
CRs-Fixed: 3271118
2022-09-02 21:00:31 -07:00
Rohan Dutta
1f9ff41325 qcacmn: set partner link op-class
Update partner link op-class in station mode

Change-Id: I8d6908253e78adebabab724e7fd89737906367d2
CRs-Fixed: 3206442
2022-08-04 03:55:35 -07:00
Edayilliam Jayadev
d6e188af07 qcacmn: Add lock for TSF calculation
Add lock at MLD level for TSF calculation of partner vdevs.

CRs-Fixed: 3240367
Change-Id: Ia9305e271aa69a5de2c21d66457deb921bd79c61
2022-08-01 08:54:28 -07:00
Veerendranath Jakkam
2e5ddc9546 qcacmn: Get all the vdev's of mld
Get all the vdev of a ml device

Change-Id: Ie25304c00eed69b479bac552c8923144bf4cd41f
CRs-Fixed: 3250832
2022-07-29 09:20:44 -07:00
Shreedhar Parande
e6b1ed7180 qcacmn: Read EML and MLD Cap from target
Extract EML and MLD Capabilities from Target via
wmi_service_ready_ext2_event. These values can be
used while advertising EML and MLD Capabilities.

Add helper function to get EML related delays in
Micro Secs from values got from EML and MLD advertisments.

Send EML Capabilities received from node to Target
via WMI_PEER_ASSOC.

CRs-Fixed: 3225495
Change-Id: Ibfa2ff8dbf11d4293125331376a7986e611d5f63
2022-07-23 19:14:48 -07:00
Srinivas Pitla
b39112e991 qcacmn: add mld address to auth params
This change adds MLD address to deferred auth params
as Auth req carries MLD address

Change-Id: I4a97299967bc052166f351ce041ccc8d13656e9e
CRs-Fixed: 3246869
2022-07-21 07:46:24 -07:00
Gururaj Pandurangi
a57b8d20e4 qcacmn: Add host fixes for 11be eMLSR mode
Add following fixes for STA to support and operate in
eMLSR mode
1) Update and send eMLSR cap flag to FW even in vdev start
request on both links.
2) Copy EML caps to wmi peer assoc mlo params to send it
to FW.

Change-Id: Ic17b9b82809659d7a4392c09eceecae7c53b2049
CRs-Fixed: 3237737
2022-07-18 23:36:38 -07:00
Surya Prakash Raajen
d8c841f63b qcacmn: Add mld config checks in vap create
Add mld config checks in osif_vap_create_check and fail
once the config is invalid.

Change-Id: I26c3b4719fa9b18be0a4590861c654504fb3e6bf
CRs-Fixed: 3200923
2022-07-18 04:53:18 -07:00
Shashikala Prabhu
79b3391de9 qcacmn: Replace WLAN_FEATURE_T2LM flag with WLAN_FEATURE_11BE
Replace WLAN_FEATURE_T2LM compile-time flag with WLAN_FEATURE_11BE.

Change-Id: If3253bf3aae04f434252bfc92d00b8649f831bfe
CRs-Fixed: 3238444
2022-07-12 08:57:02 -07:00
Vinay Adella
0e54add2cb qcacmn: Utility functions to parse Probe Request Variant of Multi-Link IE
These utility functions help to parse the Probe Request Variant of
Multi-Link IE.
It implements 11BE draft 2.0 spec

Change-Id: I09dcf47ef481278f5c74082002f83d9c8e2155a4
CRs-Fixed: 3213367
2022-06-27 02:10:23 -07:00
Pooventhiran G
ea990338cf qcacmn: Add API to copy MLO vdev list
Add a new API to copy all partner vdev's from MLD vdev_list

Change-Id: I34ab253f4939e2f1f607e971e38c245cad091037
CRs-Fixed: 3224259
2022-06-24 14:14:24 -07:00
Amruta Kulkarni
83e349e4ae qcacmn: Generate link specific probe response
Changes made to link generation api to handle probe response.

Change-Id: I5b86599a9704e3c41bbb0d0127078d586e4d1d8c
CRs-Fixed: 3158769
2022-06-15 11:09:00 -07:00
Srinivas Pitla
18e9ba976b qcacmn: Reject MLO association on same STA MLD MAC address
This change rejects association if MLD MAC address of Station
is same as AP MLD MAC address.

Change-Id: Ie8cafcf8bf0033dc63efbcd0047ddcabf996942b
CRs-Fixed: 3212459
2022-06-11 06:56:41 -07:00
Kiran Venkatappa
1c9f11fa8a qcacmn: AID changes for T2LM clients
Aid pool is divided into three pools. pool0 and pool2 is for legacy and
MLO clients. pool1 is for T2LM enabled clients. This is done to ensure
that T2LM enabled clients are starting from particular index so that
multi-link traffic element can be updated optimally.

Change-Id: I2d5fe50a6ba339e89f4b65febc7b1b1bbb200477
CRs-Fixed: 3205993
2022-06-08 11:47:47 -07:00
Paul Zhang
96b039f9f8 qcacmn: Correct the kernel-doc format
Correct kernel-doc format for the functions in file utils_mlo.h.

Change-Id: I5a91675867885d8fdf262c7ea7f98a09f9e2e539
CRs-Fixed: 3203893
2022-06-07 08:18:52 -07:00
Srinivas Pitla
e89b339b23 qcacmn: Select assoc peer's psoc as primary UMAC
select assoc peer as primary umac,
1) if all links are from single PSOC
2) single link MLO connection

Change-Id: Ia38e6809ef7d0201a2267051b8b4bcec7b36547f
CRs-Fixed: 3203804
2022-06-05 23:54:06 -07:00