On Thu, Oct 17, 2019 at 02:16:56PM +0300, Noa Ezra wrote:

Hi Noa,

Thanks for the patch. I'm new to this and have a question below.

> dpdkvdpa netdev works with 3 components:
> vhost-user socket, vdpa device: real vdpa device or a VF and
> representor of "vdpa device".
> 
> In order to add a new vDPA port, add a new port to existing bridge
> with type dpdkvdpa and vDPA options:
> ovs-vsctl add-port br0 vdpa0 -- set Interface vdpa0 type=dpdkvdpa
>    options:vdpa-socket-path=<sock path>
>    options:vdpa-accelerator-devargs=<VF pci id>
>    options:dpdk-devargs=<vdpa pci id>,representor=[id]
> 
> On this command OVS will create a new netdev:
> 1. Register vhost-user-client device.
> 2. Open and configure VF dpdk port.
> 3. Open and configure representor dpdk port.
> 
> The new netdev will use netdev_rxq_recv() function in order to receive
> packets from VF and push to vhost-user and receive packets from
> vhost-user and push to VF.

So does OVS in this case is able to apply OpenFlow rules on packets?

When netdev_dpdk_vdpa_rxq_recv() is invoked, does the batch of packets
go into OVS's parse, lookup, action pipeline? Or all packets go directly
into VM if (VF -> VM) and vice versa?

Is
fwd_rx = netdev_dpdk_vdpa_rxq_recv_impl(dev->relay, rxq->queue_id);
forward packets from vhost-user to VF
and 
ret = netdev_dpdk_rxq_recv(rxq, batch, qfill);
forward packets from vhost-user to VM?

Thanks
William

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to