On 2018/11/16 上午10:32, jiangyiwen wrote:
Note, if we've negotiated the feature, virtio-net driver must not use register_netdev to register it to network core. This can avoid lots of confusion.
Hi Jason,
You mean we should not register netdev if use vsock, and in order to
avoid confusion, then I think whether we should keep vsock and export
some virtio-net's functions that can be shared. In this way, first, vsock
may keep existing architecture and will not affect virtio-net.
At least it needs new feature bits which will be a functional duplication of virtio-net (e.g mrg_rxbuf).
Hi Jason,
Actually I mean only use some shared function to make vsock support these
features, in that way, guest see the device is still vsock device instead of
virtio-net device, in addition, it can have less codes and easier to be
compatible with old vsock version.
Yes, I think we're talking about same thing. Both of us want to share codes. What you want is to export and share some common helpers between virtio-net and vsock. What I meant is to e.g probe vsock device and merge vsock specific codes into virtio-net driver. I agree it's not a small project. We can start from e.g patches that try to share the codes. This could also give us inspiration for how to unify them.
Then we have two ways to implement it.
1. For Guest, it is a virtio-net device(VIRTIO_ID_NET),
use a feature bit(e.g VIRTIO_NET_F_VSOCK) to distinguish
vsock special device and other virtio-net device. For old
vsock device, it still use old driver to drive it.
2. For Guest, it is a virtio-vsock device(VIRTIO_ID_VSOCK),
use virtio device id to distinguish them, it will integrate
old driver, but it may be more complicated, because it needs
to consider the compatibility with old vsock device.
This looks even better, btw what compatibility do you mean here? Looking
at vsock driver, it does not have vosck specific feature.
Thanks
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization