cancel
Showing results for 
Search instead for 
Did you mean: 

Enabling IGMP disables reception of broadcast messages / V1.5.0

ES1979
Visitor

We have run into an issue with the NetXduo driver in V1.5.0 for the STM32H5 series (and maybe others, we did not check).

What

When IGMP is enabled (to allow reception of multicast messages), the reception of broadcast messages gets disabled. This breaks basic network functionality like ARP, making the device unreachable for others on the network.

Why

In the NetX driver (Middlewares/ST/netxduo/common/drivers/ethernet/nx_stm32_eth_driver.c), there is a structure called FilterConfig. Line 1500 sets the member FilterConfig.BroadcastFilter to ENABLE - which will be interpreted by the HAL to configure the broadcast filter in the ETH preipheral (Bit 5/DBF in register ETH_MACPFR on the STM32H573 used here).

The structure is not used until a call to nx_igmp_enable() trickles down to _nx_driver_hardware_multicast_join() in the driver, at which point a different bit (to allow multicast reception) is flipped and the configuration is applied. Now multicast works, but pretty much nothing else.

Possible Solution

While there may be scenarios where disabling broadcast reception is desired, it usually isn't. Therefore, the initialization of FilterConfig.BroadcastFilter in line 1500 should be changed from ENABLE to DISABLE, reflecting the reset value of the respective bit.

0 REPLIES 0