Skip to main content
Pavel A.
June 12, 2026
Question

ETH - Initial state of Broadcast filter

  • June 12, 2026
  • 0 replies
  • 47 views

Several discussions on this topic have been lost in the forums transition, or not moved yet,  I could not find them here. So I’ll post again to summarize.

In recent changes of the Cube ETH drivers for several STM32 packages (H7, F7, maybe others as well) handling of ETH_MACFilterConfigTypeDef.BroadcastFilter seems to be corrected.

The BroadcastFilter = ENABLE means that broadcast receive is blocked. This field should be left DISABLED.

The hardware defaults are good for typical (UDP, TCP) apps. Especially, receive of broadcasts is enabled. In ethernetif.c of the ST LwIP examples, HAL_ETH_SetMACFilterConfig() is not called, because the default state is OK.

The problem could occur with the old versions of HAL drivers, when the network software tampers with multicasts and other advanced filtering and calls HAL_ETH_GetMACFilterConfig - this one could return the BroadcastFilter bit inverted, so calling HAL_ETH_SetMACFilterConfig again with result of HAL_ETH_GetMACFilterConfig could block broadcasts. Now this seems to be fixed in all HAL packages, but wrong stuff may be left in stale and 3rd party drivers.