hpcn-uam / Limago

Limago: an FPGA-based Open-source 100 GbE TCP/IP Stack
BSD 3-Clause "New" or "Revised" License
122 stars 46 forks source link

Where is the interface exposed to user application? #9

Closed WuMinkang closed 3 years ago

WuMinkang commented 4 years ago

We hope to make two Alveo cards communicate with each other through Ethernet using Limago. Where is the interface exposed to the user application? Is it the file named user_abstraction in the submodule fpga-network-stack-core? What is the relationship between Limago and this submodule? I mean I wonder if I have to use the whole Limago to complete the task of communication or I can just use fpga-network-stack-core.

mariodruiz commented 4 years ago

The examples provided in this repository already include an application, which are either an echo or iperf. For the U280 the application is iperf. Limago does not provide an interface for the application with the host and the application must reside within the FPGA. Unless you modify the design to support this.

For more documentation about the interface from the application and TCP module see the ETH repo https://github.com/fpgasystems/fpga-network-stack

The user_abstraction module is an abstraction to simplify the communication between the application and the the TCP module , it abstract away the handshake but you need to open the connections from using the AXI4-Lite registers.

You could launch the iperf application as client. These steps are described in the README.md, and to see the results you need to observe the internal probes.

I highly recommend to open the IPI and familiarize with the design, in particular with the interface_handler hierarchy.