[dpdk-dev] vhost [query] : support for multiple ports and non VMDQ devices in vhost switch

Maxime Coquelin maxime.coquelin at redhat.com
Thu Aug 18 09:43:06 CEST 2016


Hi,

On 08/18/2016 04:35 AM, Tan, Jianfeng wrote:
> Hi Maxime,
>
> On 8/17/2016 7:18 PM, Maxime Coquelin wrote:
>> Hi Jianfeng,
>>
>> On 08/17/2016 04:33 AM, Tan, Jianfeng wrote:
>>> Hi,
>>>
>>> Please review below proposal of Pankaj and myself after an offline
>>> discussion. (Pankaj, please correct me if I'm going somewhere wrong).
>>>
>>> a. Remove HW dependent option, --strip-vlan, because different kinds of
>>> NICs behave differently. It's a bug fix.
>>> b. Abstract switching logic into a framework, so that we can develop
>>> different kinds of switching logics. In this phase, we will have two
>>> switching logics: (1) a simple software-based mac learning switching;
>>> (2) VMDQ based switching. Any other advanced switching logics can be
>>> proposed based on this framework.
>>> c. Merge tep_termination example vxlan as a switching logic of the
>>> framework.
>>
>> I was also thinking of making physical port optional and add MAC
>> learning,
>> so this is all good for me.
>
> To make it clear, we are not proposing to eliminate physical port,
> instead, we just eliminate the binding of VMDQ and virtio ports,
> superseding it with a MAC learning switching.

So you confirm we could have setup with only VMs, and no physical
NIC? That's what I meant when saying "making physical port optional".

>
>>
>> Let me know if I can help in implementation, I'll be happy to
>> contribute.
>
> Thank you for participating. Currently, I'm working on item a (will be a
> quick and simple fix). Pankaj is working on item b (which would be a
> huge change). Item c is depending on item b. So let's wait RFC patch
> from Pankaj and see what we can help.

Good, let's wait for Pankaj's RFC.

>
>>
>>> To be decided:
>>> d. Support multiple physical ports.
>>> e. Keep the current way to use vhost lib directly or use vhost pmd
>>> instead.
>> Do you see advantages of using vhost lib directly vs. pmd?
>> Wouldn't using vhost pmd make achieving zero-copy harder?
>> (I'm not sure, I didn't investigate the topic much for now).
>
> Yes, by using vhost lib, we can add back the removed feature zero-copy.
> But my understanding is zero-copy (nic-to-vm or vm-to-nic) or delayed
> copy (vm-to-vm) would be great and common features, which should be
> integrated into vhost lib and enabled in vhost pmd, so that all
> applications can benefit from it. And in fact, Yuanhan is working on the
> delayed copy now. An exception is rx-side-zero-copy, I don't know if
> it's common enough to be integrated in a vhost lib, because it'll
> require hardware queue binding.

Ok, I'm interrested in knowing how vm-to-vm delayed copy will be
implemented.

> Besides, vhost pmd would be easier to use than vhost lib (personal
> opinion). Secondly, vhost pmd would be more clear in logic, 1:1:1
> mapping among vhost port, unix socket path, and virtio port. Thirdly, by
> using vhost pmd, we can treat vhost ports the way of physical ports,
> otherwise, we use different API to receive/transmit packets.

I'm 100% aligned with you on this, the vhost pmd makes things more
standard, so more flexible.

>>
>> Also, if we use pmd directly, then it would no more be a vhost switch
>> only, as it could potentially be used with physical NICs also.
>
> You mean we are building a switch instead of vhost switch? Yes, a switch
> can switch packets between virtio-virtio and virtio-physical nic.

And physical-physical also, as we will be standard API with the
vhost-pmd, nothing will prevent using it with only physical switches,
no?

Thanks,
Maxime

>
> Thanks,
> Jianfeng
>
>>
>> Any thoughts?
>>
>> Thanks,
>> Maxime
>


More information about the dev mailing list