qcacld-3.0: Provide MLD MAC of connected clients to IPA
For MLO connection, mld addr of connected peer is used for data packets over the air. Hence same mld addr needs to be notified to IPA so that offload path can be taken for connected peer with MLO connection. Currently for connected ref-clients, link address is provided to IPA driver and hence only link MAC address are installed to IPA HW. With MLD MAC address being used in ethernet header, MAC address mismatch occurs and IPA offload function is not working. Fix is to provide MLD MAC address of connected clients to IPA if SAP vdev is MLO and MLD address are not 0. Change-Id: Ie739b0c0c569bda03497eae3485d16917e9bdd84 CRs-Fixed: 3497200
This commit is contained in:

committed by
Rahul Choudhary

parent
074e314d85
commit
ccb39e0470
@@ -2560,12 +2560,21 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
|
||||
sta_id = event->staId;
|
||||
|
||||
if (ucfg_ipa_is_enabled()) {
|
||||
vdev = adapter->deflink->vdev;
|
||||
|
||||
if (wlan_vdev_mlme_is_mlo_vdev(vdev) &&
|
||||
!qdf_is_macaddr_zero(&event->sta_mld))
|
||||
qdf_copy_macaddr(&sta_addr, &event->sta_mld);
|
||||
else
|
||||
qdf_copy_macaddr(&sta_addr, &event->staMac);
|
||||
|
||||
status = ucfg_ipa_wlan_evt(hdd_ctx->pdev,
|
||||
adapter->dev,
|
||||
adapter->device_mode,
|
||||
adapter->deflink->vdev_id,
|
||||
WLAN_IPA_CLIENT_CONNECT_EX,
|
||||
event->staMac.bytes,
|
||||
(const uint8_t *)
|
||||
&sta_addr.bytes[0],
|
||||
false);
|
||||
if (status)
|
||||
hdd_err("WLAN_CLIENT_CONNECT_EX event failed");
|
||||
|
@@ -480,10 +480,15 @@ QDF_STATUS hdd_softap_deregister_sta(struct hdd_adapter *adapter,
|
||||
* If the address is a broadcast address then the CDP layers expects
|
||||
* the self mac address of the adapter.
|
||||
*/
|
||||
if (QDF_IS_ADDR_BROADCAST(sta->sta_mac.bytes))
|
||||
if (QDF_IS_ADDR_BROADCAST(sta->sta_mac.bytes)) {
|
||||
mac_addr = &adapter->mac_addr;
|
||||
else
|
||||
mac_addr = &sta->sta_mac;
|
||||
} else {
|
||||
if (wlan_vdev_mlme_is_mlo_vdev(adapter->deflink->vdev) &&
|
||||
!qdf_is_macaddr_zero(&sta->mld_addr))
|
||||
mac_addr = &sta->mld_addr;
|
||||
else
|
||||
mac_addr = &sta->sta_mac;
|
||||
}
|
||||
|
||||
if (ucfg_ipa_is_enabled()) {
|
||||
if (ucfg_ipa_wlan_evt(hdd_ctx->pdev, adapter->dev,
|
||||
|
Reference in New Issue
Block a user