[ovs-dev] [PATCH ovs v3 2/2] netdev-dpdk: Add dpdkvdpa port

William Tu u9012063 at gmail.com
Thu Oct 17 21:33:50 UTC 2019

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?

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


More information about the dev mailing list