[dpdk-dev] [RFC][PATCH V2 1/3] examples/vhost: Add vswitch (generic switch) framework
Tan, Jianfeng
jianfeng.tan at intel.com
Mon Sep 19 14:42:15 CEST 2016
Hi Pankaj,
>> Can we hide queues inside struct vswitch_port? I mean:
>> For VMDQ switch, treat (port_id, queue_id) as a vswitch_port, so far
>> you've already stored "struct vhost_dev *" into vswitch_port.priv when
>> it's a virtual port, how about store queue_id into vswitch_port.priv
>> when it's a physical port.
>> For arp_learning switch, make (port_id, all_enabled_queues) as a
>> vswitch_port.
>> Summarize above two: we treat (port_id, all_enabled_queues[]) as a
>> vswitch_port.
>>
>> How about it?
>
> Thanks for wonderful suggestion! Yes it should be possible, instead of
> having one vs_port for physical device we could create one vs_port for
> each phys device + queue_id combination.
>
> Then we can bind the vs_ports to the cores, and do away with binding
> vdevs to the cores.
>
> In order to add extra vs_ports (port + queue_id) there are two methods:
>
> 1. vhost/main.c (or vswitch_common.c) queries the underlying switch
> about how many rx queues to support thourgh a new accessor. VMDQ will
> return the number of vmdq queues, in this case. After getting the
> number of rx queues, vhost/main.c creates the extra ports i.e one
> vs_port for each physical port and queue id combination.
>
> 2. Second method is that the switch implementation for example vmdq.c
> create the extra ports (port + queue_id) as part of vs_port->add_port
> operation for the physical port.
>
> Which method do you think we should follow? I think #1 should be done
> so that same logic can be used for other switches also.
Although VMDQs are created at initialization, we will not connect all of
them to switch until a virtio device is added. So how about creating
extra vs_ports (port + queue_id) as part of vmdq_add_port_virtio()?
Another thing, why we need the accessor, port_start()? For physical
ports, it's initialized and started at port_init(); for virtual ports,
no need to get started, right?
Thanks,
Jianfeng
More information about the dev
mailing list