Comments (7)
Sure. The "interface" module just exposes an AXI stream interface to the MAC, you can insert whatever logic you like on that path. However, I recommend disabling PTP timestamping when you do so.
from corundum.
Thanks a lot! I'm trying to implement this based on simulation at first.
BTW, do you need any help supporting DPDK?
from corundum.
No problem. I'm actually in the process of moving the whole simulation framework over to cocotb, just FYI.
Yeah, I want to start work on a DPDK PMD once I get variable-length descriptors working, as this will change the descriptor formats and a few other things about the driver-NIC communication. There is definitely a lot of interest in using corundum with DPDK, but unfortunately I don't personally have much experience working with DPDK. If you are interested in helping out with that, hop on the mailing list.
from corundum.
BTW, DPDK supports IFPGA Rawdev Driver on Intel OPAE(because DPDK is maintained by intel now). Is it possible to bridge corundum with opae-xilinx and connect with DPDK.
https://github.com/RSPwFPGAs/opae-xilinx
Are you planing to connect DPDK with corundum as a "normal" NIC like Intel 82599?
from corundum.
I'm not familiar with OPAE. Most likely it would be more work to learn the framework and port to that instead of porting to DPDK directly, unless there is some other reason to support the framework. And with more layers, there is more opportunity for things to break in strange ways. IME, acceleration frameworks are usually incompatible with networking applications as they are usually designed primarily for compute offload and not packet processing. It's mainly a question of who is in charge - the FPGA or the host machine. With things like the XDMA core, RIFFA, etc., the host machine is in charge and coordinates all of the operations. But this is terrible for receiving packets that vary in size and arrive at random times. And many of these frameworks seriously restrict what you can do with the card, for instance the Alveo framework doesn't provide direct access to PCIe, only a small selection of QDMA ports, which is not sufficient for high-performance networking. Additionally you can't change the PCIe IDs, so it's not really feasible to bind a custom device driver. So corundum must run "bare metal" on Alveo cards.
Anyway, the idea would be to make it look like a normal NIC, but perhaps have some form of extension and/or metadata capability. (although how else would something interface with DPDK?)
from corundum.
You may take a look at https://xilinx.github.io/dma_ip_drivers/2019.1/DPDK/html/build.html
from corundum.
Corundum does not use QDMA, so I'm not sure if that article is going to be very useful
from corundum.
Related Issues (20)
- Line rate tests on AU50 HOT 5
- How to debug host freeze HOT 14
- Tools for AXI Lite register reads/writes and AXI streaming read/writes HOT 21
- An erro during generating project at file "./config.tcl" line 240: ERROR: [Ipptcl 7-29] Invalid param '03f'. HOT 4
- kernel driver license stated ambigiously HOT 3
- Why is distributed RAM used to store packages on the chip, and why is it divided into segment?
- Missing prerequisite in makefile HOT 1
- Document needs to be updated
- Custom App Ports HOT 2
- Cocotb with icarus verilog gets frozen stuck at some point during simulation: How to debug? HOT 2
- port to zc706 HOT 1
- insmod mqnic.ko error HOT 2
- Does corundum support two devices in a server? HOT 3
- Accelerating PPPOE
- petalinux compile error for mqnic module HOT 8
- nic
- Error "Device needs to be reset" when insmod mqnic.ko HOT 1
- AU50 working with DAC but not Optical HOT 3
- issues in doc HOT 1
- Porting PCIe example to zu7cg HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from corundum.