Re: [RFC PATCH] virtio_net: Extend virtio to use VF datapath when available
From: Siwei Liu <hidden>
Date: 2017-12-22 08:42:06
On Wed, Dec 20, 2017 at 8:52 PM, Jakub Kicinski [off-list ref] wrote:
On Wed, 20 Dec 2017 18:16:30 -0800, Siwei Liu wrote:quoted
quoted
The plan is to remove the delay and do the naming in the kernel. This was suggested by Lennart since udev is only doing naming policy because kernel names were not repeatable. This makes the VF show up as "ethN_vf" on Hyper-V which is user friendly. Patch is pending.While it's good to show VF with specific naming to indicate enslavement, I wonder wouldn't it be better to hide this netdev at all from the user space? IMHO this extra device is useless when being enslaved and we may delegate controls (e.g. ethtool) over to the para-virtual device instead? That way it's possible to eliminate the possibility of additional udev setup or modification? I'm not sure if this is consistent with Windows guest or not, but I don't find it _Linux_ user friendly that ethtool doesn't work on the composite interface any more, and I have to end up with finding out the correct enslaved VF I must operate on.Hiding "low level" netdevs comes up from time to time, and is more widely applicable than just to VF bonds. We should find a generic solution to that problem.
Wholeheartedly agreed. Be it a generic virtual bond or virtio-net specific one, there should be some common code between netvsc and virtio for this type of work. For avoiding duplicated bugs, consistent (Linux) user experience, future code refactoring/management, and whatever... One thing worth to note is that, unlike the Hyper-V netvsc backend there's currently no equivalent (fine-grained) Linux ndo_* driver interface that is able to move around MAC address/VLAN filters at run-time specifically. The OID_RECEIVE_FILTER_MOVE_FILTER request I mean. That translates to one substantial difference in VF plumbing/unplumbing sequence: you cannot move the MAC address around to paravirt device until VF is fully unplugged out of the guest OS. I don't know what backend changes to be proposed for virtio-net as helper, but the common code needs to work with both flavors of data path switching backends and do its job correctly. Regards, -Siwei