I am using the STM32H733 controller along with the NetXDuo networking stack. The issue started after updating the HAL drivers in my project from version v1.11.0 to v1.16.0 (released on February 24, 2026).
After this update, I observed that when the device boots up and no network activity occurs for a certain period (for example, no ping requests are sent to the device or device sending any UDP packet), the Ethernet connection is eventually lost permanently. Once this happens, the device becomes unreachable over Ethernet, and neither a soft reset nor a hard reset restores the connection.
However, if the device receives a ping immediately after booting, or if it sends a UDP packet shortly after startup from the device, the Ethernet connection remains stable. In this case, normal operation continues without any issues until the device is reset again and no network activity is observed for a certain period as well.
This problem only appeared after updating the HAL drivers to version v1.16.0 and does not occur when using version v1.11.0.
After debugging, the problem appears to be related to the MAC filter configuration, specifically the Broadcast Filter setting.
When the BroadcastFilter is enabled in:
_nx_driver_hardware_initialize() in nx_stm32_eth_driver.c file
FilterConfig.BroadcastFilter = ENABLE;
the device is unable to establish proper network communication.
Observed behavior:
- arp -n shows incomplete entries (no MAC resolution)
- Ping/connectivity is unreliable or fails
When the BroadcastFilter is disabled:
FilterConfig.BroadcastFilter = DISABLE;
the issue is resolved:
- ARP resolution works as expected
- Stable communication is established
A similar issue has also been reported here as i have mDNS and DHCP client enabled as well:
https://community.st.com/t5/stm32-mcus-embedded-software/netxduo-mdns-and-dhcp-conflict-because-of-st-ethernet-driver/td-p/826677
It appears that enabling the BroadcastFilter blocks essential broadcast traffic (e.g., ARP), which prevents normal network operation.
Kindly verify this issue and let me know how to proceed. Is my current changes to Disable the broadcast fine ??
Note:
The condition of the broadcast filter has been changed in the HAL_ETH_SetMACFilterConfig() in stm32h7xx_hal_eth.c file in the latest version that can be reason for us to DISABLE the broadcast in the _nx_driver_hardware_initialize() in nx_stm32_eth_driver.c file
I am using the STM32H733 controller along with the NetXDuo networking stack. The issue started after updating the HAL drivers in my project from version v1.11.0 to v1.16.0 (released on February 24, 2026).
After this update, I observed that when the device boots up and no network activity occurs for a certain period (for example, no ping requests are sent to the device or device sending any UDP packet), the Ethernet connection is eventually lost permanently. Once this happens, the device becomes unreachable over Ethernet, and neither a soft reset nor a hard reset restores the connection.
However, if the device receives a ping immediately after booting, or if it sends a UDP packet shortly after startup from the device, the Ethernet connection remains stable. In this case, normal operation continues without any issues until the device is reset again and no network activity is observed for a certain period as well.
This problem only appeared after updating the HAL drivers to version v1.16.0 and does not occur when using version v1.11.0.
After debugging, the problem appears to be related to the MAC filter configuration, specifically the Broadcast Filter setting.
When the BroadcastFilter is enabled in:
_nx_driver_hardware_initialize() in
nx_stm32_eth_driver.cfilethe device is unable to establish proper network communication.
Observed behavior:
When the BroadcastFilter is disabled:
the issue is resolved:
A similar issue has also been reported here as i have mDNS and DHCP client enabled as well:
https://community.st.com/t5/stm32-mcus-embedded-software/netxduo-mdns-and-dhcp-conflict-because-of-st-ethernet-driver/td-p/826677
It appears that enabling the BroadcastFilter blocks essential broadcast traffic (e.g., ARP), which prevents normal network operation.
Kindly verify this issue and let me know how to proceed. Is my current changes to Disable the broadcast fine ??
Note:
The condition of the broadcast filter has been changed in the HAL_ETH_SetMACFilterConfig() in
stm32h7xx_hal_eth.cfile in the latest version that can be reason for us to DISABLE the broadcast in the _nx_driver_hardware_initialize() innx_stm32_eth_driver.cfile