AnsweredAssumed Answered

May the MQX's "ARP Entries Issue" indirectly cause a BUS FAULT?

Question asked by Vittorio Francesco Digilio on Jan 27, 2020
Latest reply on Feb 5, 2020 by Vittorio Francesco Digilio

Hello,

 

in the process of attempting to understand why a BUS FAULT on an MQX hosting board is occurring I would like to know if the "ARP Entries Issue" in the Known Issues and Limitations and which says

 

"When the board is put into a busy Ethernet environment with many ARP requests, the ARP entries cause memory fragmentation, which leads to RTCSERR_TCPIP_NO_BUFFS when connect() is called."

 

may also be the indirect cause of such BUS FAULT according to this line of reasoning: "The error occurs while the allocated memory for the ARP requests is exceeded. Following, other memory space is overwritten leading to different unpredictable effects (i.e. the BUS FAULT).".

 

My understanding of  "ARP Entries Issue" leads to a different conclusion where no BUS FAULT is possible in the aforementioned scenario.

My understanding in fact is that many ARP requests lead to a memory fragmentation so that when one or more new ARP entries are needed to be added to the current ARP Table the new size of such augmented new ARP Table cannot fit in any available contiguous free memory range of addresses due to the aforementioned memory fragmentation.

The latter should be due to the multiple ARP Table reallocations, while it was growing over time, interspersed with other kind of memory allocations/deallocations not ARP Table-related.

When that happens, such condition is handled by MQX (no further new ARP entries are added to the existing ARP Table so no memory overwriting past the ARP Table itself can ever occur), and a connect() called after will fail with the RTCSERR_TCPIP_NO_BUFFS.

This means that no unpredictable behavior can occur past this condition is met and thus no BUS FAULT may ever happen as a consequence of too many ARP requests in a busy network environment.

 

Is that correct or my understanding is wrong?

 

Thanks for any help or hint you may give us.

Outcomes