Every now and then, approximately every 10000th time the function ReadBlock is called, the 4DSP Ethernet API error -120 occurs. We use an FMC110 in combination with the Xilinx ML605 development board. The firmware is built on the basis of the 4DSP board support package for the FMC110.
Do you have an idea what the reason for this error is and how to resolve this issue?
This topic is being closed because the issue is considered as resolved by 4DSP. Feel free to create a new topic for any further inquiries.
over 2 years ago
Is there anything else I can do around this issue before to close the topic?
Best Regards, Arnaud
over 2 years ago
The ETHAPI is not a reliable link so it could be as simple as that. It is not meant to stream or offload large amount of data. This is because the interface is a simple ethernetII layer packet manipulation engine which is very slow and has no such things as recovery algorithm.
The error -120 indicate you could not obtain enough data from the NDIS queue, in order words you have lost a packet (or more), most likely because you are pushing the boundaries too far. For your information, we have never been able to offload data reliably at more than 2-5MB/s and that would go down by simply compressing a large folder with Winzip.
We have recently dropped our proprietary NDIS driver and modified ETHAPI to wrap around WinPCAP instead. This new API is part of the latest BSP, maybe you can give that a try. When testing the interface I got transfer of several GB of data around 7MB/s transferring random data back and forth. Note that in order to use ETHAPI from the latest BSP you have to download and install WinPCAP from (http://www.winpcap.org/)
That being said, any serious application requires TCP/IP implemented in the firmware and communication using TCP/IP, ETHAPI might always lose samples like that. This API is only meant to offload snapshot during FMC product evaluation, we are talking about anything between 4kB to 64kB not even repetitive. Another solution would be to use one of our carrier as PC720 in a computer on the PCI Bus. We have recently transferred data in excess of 1.3GB/s over PCIe on our PC720!