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