Skip to content

Commit 504608b

Browse files
authoredJun 24, 2024
Fixed the hardware macaddress isssue for thread interfaces (#34046)
1 parent 86df9dc commit 504608b

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed
 

‎src/platform/ESP32/DiagnosticDataProviderImpl.cpp

+14
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#else
3939
#include "esp_spi_flash.h"
4040
#endif
41+
#include "esp_mac.h"
4142
#include "esp_system.h"
4243
#include "esp_wifi.h"
4344

@@ -222,6 +223,7 @@ CHIP_ERROR DiagnosticDataProviderImpl::GetNetworkInterfaces(NetworkInterface **
222223
ifp->type = GetInterfaceType(esp_netif_get_desc(ifa));
223224
ifp->offPremiseServicesReachableIPv4.SetNull();
224225
ifp->offPremiseServicesReachableIPv6.SetNull();
226+
#if !CHIP_DEVICE_CONFIG_ENABLE_THREAD
225227
if (esp_netif_get_mac(ifa, ifp->MacAddress) != ESP_OK)
226228
{
227229
ChipLogError(DeviceLayer, "Failed to get network hardware address");
@@ -230,6 +232,18 @@ CHIP_ERROR DiagnosticDataProviderImpl::GetNetworkInterfaces(NetworkInterface **
230232
{
231233
ifp->hardwareAddress = ByteSpan(ifp->MacAddress, 6);
232234
}
235+
#else
236+
uint8_t macAddress[8] = { 0 };
237+
if (esp_read_mac(macAddress, ESP_MAC_IEEE802154) != ESP_OK)
238+
{
239+
ChipLogError(DeviceLayer, "Failed to get network hardware address");
240+
}
241+
else
242+
{
243+
ifp->hardwareAddress = ByteSpan(macAddress, 8);
244+
}
245+
#endif
246+
233247
#ifndef CONFIG_DISABLE_IPV4
234248
if (esp_netif_get_ip_info(ifa, &ipv4_info) == ESP_OK)
235249
{

0 commit comments

Comments
 (0)
Please sign in to comment.