easynic
easynic copied to clipboard
Hard to keep up with the concepts!
Hi,
I have been investigating the discussions; they are pretty cool! And facts in the README.MD and discussions look sensible. However, conceptually, I cannot digest why?!
For instance, it is stated that the success of RISC-V inspires this project, How? Is there more info we could follow?
I'm not experienced in device drivers. But I have played with IXGBE driver and netdevice.h in Linux kernel for a project, and I have reviewed the codebase around that area.
I found this project interesting! As data centers Ethernet is moving toward 100G and 400G, it becomes intriguing to how system software and hardware should behave and manage such rates at the data centers. I have read a paper that looks have some synergy with this project(same problem, different perspective and different solution). However, I know that this paper is out of the scope of this repo through.
I believe if there are some illustrative documentations or links or papers that I could follow and study then not only me but more people can get involved in such interesting projects.
Thanks Alireza
Thanks for commenting. Have to clarify this.
RISC-V is an inspiration in that it defines a simple and stable hardware-software interface. This means that people can implement new hardware with the minimum of fuss for software people who don't need to rewrite their compiler backend for a new instruction sets all the time. So hardware and software implementations can evolve independently over each other.
The NIC world needs to be more like this. Currently it feels more like the old Unix server days where you have lots of vendors - Sun, SGI, IBM, HP, etc - and buying hardware from one of them also means buying into their proprietary instruction set, operating system, C compiler, etc.
So we see the NIC vendors putting a different proprietary hardware-software interface on each model, expecting users to buy into their software ecosystems to use their hardware, and increasingly forming consortia to build Frankenstein-esque mergers of their code. This causes a lot of collateral complications for software people, even though all we want to do is send and receive packets.
We gave a talk on this topic at FOSDEM 2018 (sorry about the audio): https://www.youtube.com/watch?v=sgwt7SmvVWA
I talked more about this topic at FOSDEM on the weekend. Just a 10-minute talk in the context of ConnectX. https://youtu.be/ZigsHkxMHPo