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
In the driver, add support to get the Link information from a given
reconfig variant Multi-link element.
Change-Id: Ia23b26ddb4195da21c071ee5f3c198e0492ef952
CRs-Fixed: 3348524
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
mlo_clear_connected_links_bmap api is also used for roaming,
so changing it as public api.
Change-Id: I31225cb04971dbf470338022ca4dc09a9967b5c4
CRs-Fixed: 3317236
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
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
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
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
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
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
Add mld config checks in osif_vap_create_check and fail
once the config is invalid.
Change-Id: I26c3b4719fa9b18be0a4590861c654504fb3e6bf
CRs-Fixed: 3200923
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
This change rejects association if MLD MAC address of Station
is same as AP MLD MAC address.
Change-Id: Ie8cafcf8bf0033dc63efbcd0047ddcabf996942b
CRs-Fixed: 3212459
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
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