2025-04-25 6:25 AM
Hi all,
during testing a custom project with NETXDUO on NUCLEO-H563ZI I've noticed that sometimes web server response is rather slow.
Wireshark shows rather frequent TCP retransmissions and other problems.
To be sure, I've tried an example from ST (Nx_Iperf) with the same result.
It seems that problem is in ETH_Prepare_Tx_Descriptors(), in check of Tx Descriptor:
/* Current Tx Descriptor Owned by DMA: cannot be used by the application */
if ((READ_BIT(dmatxdesc->DESC3, ETH_DMATXNDESCWBF_OWN) == ETH_DMATXNDESCWBF_OWN)
|| (dmatxdesclist->PacketAddress[descidx] != NULL))
{
return HAL_ETH_ERROR_BUSY;
}
I removed this check and TCP retransmissions became much less frequent.
Is there a better solution?