virt-do / lambdo

Serverless runtime in Rust
Apache License 2.0
2 stars 0 forks source link

virtio-net: add virtio-net to lambdo #4

Open lucido-simon opened 1 year ago

lucido-simon commented 1 year ago

This is the main tracking issue for all the sub-issues linked to adding a virtio-net support to lambdo.

As of right now, we have identified the following tasks :

This is still an early proposal of the tasks to do. We need further exploring before truly having a grasp on what needs to be done. Please comment and discuss with us anything we missed or misunderstood, or if this does not look like a logical division of tasks.

lucido-simon commented 1 year ago

Hey @sameo,

We had some trouble understanding what you meant by

One virtio-mmio based networking interface (rust-vmm virtio-net)

in your issue here.

Is there supposed to be a virtio-net crate or repository somewhere in the rust-vmm organization ? We can only find C bindings for virtio-net. However, we found an implementation (based on the foundations that rust-vmm provides) in the cloud-hypervisor project. Should we base our implementation on theirs, as a first step ?

What is your take on this ? Thanks

sameo commented 1 year ago

@lucido-simon @nponsard See https://github.com/rust-vmm/vm-virtio

lucido-simon commented 1 year ago

@lucido-simon @nponsard See https://github.com/rust-vmm/vm-virtio

There is no net device implementation, only definition for devices. You want us to code the device ourselves?

sameo commented 1 year ago

@lucido-simon @nponsard See https://github.com/rust-vmm/vm-virtio

There is no net device implementation, only definition for devices. You want us to code the device ourselves?

There is a bindings crate, a virtio queue implementation and a virtio device crate for the common virtio functionalities, including full virtio-mmio support. So you have to implement virtio-net on top of this, unless you want to re-implement stuff from scratch. Ideally, you could contribute the virtio-net implementation upstream.