Skip to content
This repository has been archived by the owner on Mar 2, 2022. It is now read-only.

Replacing IB with Eth #21

Open
sarsanaee opened this issue Oct 22, 2020 · 2 comments
Open

Replacing IB with Eth #21

sarsanaee opened this issue Oct 22, 2020 · 2 comments

Comments

@sarsanaee
Copy link

Hello @lastweek

I'm interested to replace IB with Eth.

What I'm having in mind is to just support running Lego OS components on virtual machines separately and each of them talks to others using an Eth driver like e1000e and then throughout the virt-io in the host. For example in a 1P-1M-1S config we work like pcomponent -> eth -> virt-io -> host -> virt-io -> eth -> mem-component or storage-component

Do you think this is something we can achieve with some minimal implementation effort?

Thanks,
Alireza

@lastweek
Copy link
Contributor

Hi @sarsanaee ,

Thank you for your interest in LegoOS. The short answer to your question is Yes, we are able to replace IB with Eth and run that on top of qemu e1000.

The current repo has an e1000 driver, tested on QEMU.

To achieve the replacement, i have the following items in mind (it might not be complete):

  1. Add e1000 driver init function to the boot sequence, so that it could be loaded
  2. Test the socket interface on top of the e1000 driver (this is optional)
  3. Build a set of RPC interfaces (esp send_and_receive) on top of e1000 driver interfaces (or socket interface).
  4. Disable the IB polling threads.

The heavy-lifting part would be item 3. You can either build the RPC APIs on top of e1000 driver interface, or add a middle socket interface.

Please let me know how it goes.

@yiying-zhang
Copy link
Contributor

Hi @sarsanaee

After enabling e1000 driver, I think you could use socket directly via lwip (/net/lwip/api/sockets.c). I've tested this long time ago. So I can't guarantee that with the current master version it still works. But you can first try this instead of building your own network stack.

Yiying

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants