[ovs-dev] DPDK: How to send packets from one OVS bridge to another OVS bridge while running in the same user space ?

Kapil A kapil20084 at gmail.com
Mon Feb 19 14:44:17 UTC 2018


Hi Jan,

Even for the simplest case, say OVS bridge to OVS bridge connection, i
couldn't find a way how to connect them using DPDK ring. If i create a DPDK
ring on both sides, there are two dpdkr ports, but how do I link them.
Similarly, if i create a vhostuser port in one OVS bridge, how do i connect
the other OVS bridge to this vhostuser port ? shouldn't i be requiring a
port pair like we get from veth pair and patch ports to link both bridges.
For simplification I am considering two OVS bridges, once i am be get a
clarity with this, i can look at options to connect to a different type of
dpdk bridge.

Appreciate the help!


On Mon, Feb 19, 2018 at 6:47 PM, Jan Scheurich <jan.scheurich at ericsson.com>
wrote:

> Hi Kapil,
>
>
>
> I have no practical experience with using DPDK ring ports. Whether it is
> possible to connect a second non-OVS DPDK bridge to the DPDK ring pair and
> how to do that will totally depend on your choice of second bridge.
>
>
>
> If I’m not mistaken, there is now also the possibility to run a second
> DPDK application (i.e. your second DPDK bridge) on the host and connect to
> an OVS vhostuser port through the so-called virtio-user driver. For details
> see
>
> http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html
>
>
>
> Perhaps that would be an alternative if your second bridge cannot connect
> to DPDK rings as ports.
>
>
>
> BR, Jan
>
>
>
> *From:* Kapil A [mailto:kapil20084 at gmail.com]
> *Sent:* Monday, 19 February, 2018 13:41
>
> *To:* Jan Scheurich <jan.scheurich at ericsson.com>
> *Cc:* discuss at openvswitch.org; dev at openvswitch.org
> *Subject:* Re: [ovs-dev] DPDK: How to send packets from one OVS bridge to
> another OVS bridge while running in the same user space ?
>
>
>
> Hi Jan,
>
>
>
> Thanks sharing the information. For my use case, i cant run a secondary
> VM, so need to look for DPDK ring port option.
>
>
>
> I didn't find much information on how to use a DPDK ring port to connect
> two Bridges. i have added a dpdkr0  to a dpdk bridge, but not sure how to
> connect it to another bridge. Can you please share light on how to connect
> two bridges using DPDK ring ports.
>
>
>
> On Wed, Feb 14, 2018 at 1:41 PM, Jan Scheurich <jan.scheurich at ericsson.com>
> wrote:
>
> Hi Kapil,
>
>
>
> I am afraid there is no really efficient way today to connect a user-space
> (netdev-dpdk) datapath in OVS to kernel interfaces (such as internal/tap
> ports or veth pairs) today. Communication works but packet I/O is very
> slow compared to DPDK interfaces (both ethernet and vhostuser). The PMD
> threads polling the DPDK interfaces are heavily slowed down when sending
> packets to kernel ports and in the other direction all kernel interfaces
> are polled by the main ovs-vswitchd thread.
>
>
>
> If your other bridge also uses DPDK in user space, you can try with DPDK
> ring ports as interface between the two bridges. DPDK ring ports should be
> supported in OVS.
>
>
>
> Another almost as efficient solution for sending packets from the OVS DPDK
> datapath to another DPDK vSwitch would be to run the other vSwitch in a VM
> and connect it to OVS-DPDK on the host through a vhostuser port. The DPDK
> vSwitch in the VM would then use the virtio PMD, I expect this to be
> supported by all DPDK vSwitches.
>
>
>
> BR, Jan
>
>
>
> *From:* Kapil A [mailto:kapil20084 at gmail.com]
> *Sent:* Wednesday, 14 February, 2018 03:47
> *To:* Jan Scheurich <jan.scheurich at ericsson.com>
> *Cc:* discuss at openvswitch.org; dev at openvswitch.org
> *Subject:* Re: [ovs-dev] DPDK: How to send packets from one OVS bridge to
> another OVS bridge while running in the same user space ?
>
>
>
> Hi Jan,
>
> Thanks for the clarification. I also came across patch port as the best
> option between ovs Bridges. But, is it possible to use patch ports to an
> external OpenFlow bridge? Like one bridge is OVS, other is Lagopus bridge
> or LINC bridge? For my use case, I want to send packets from OVS Bridge to
> another OpenFlow bridge(like a loopback port) as OVS doesn't support the
> functionality I am looking for.
>
>
>
> On Tue, Feb 13, 2018, 21:22 Jan Scheurich <jan.scheurich at ericsson.com>
> wrote:
>
> Hi Kapil,
>
> This is what patch ports are for. They are only traversed for the first
> packet of a flow in the slow path. The resulting datapath flow entry
> collapses the processing in both bridges into a single megaflow. So there
> is no performance overhead compared to having a single bridge.
>
> Regards, Jan
>
> > -----Original Message-----
> > From: ovs-dev-bounces at openvswitch.org [mailto:ovs-dev-bounces@
> openvswitch.org] On Behalf Of Kapil A
> > Sent: Tuesday, 13 February, 2018 16:44
> > To: discuss at openvswitch.org; dev at openvswitch.org
> > Subject: [ovs-dev] DPDK: How to send packets from one OVS bridge to
> another OVS bridge while running in the same user space ?
> >
> > Hello,
> >
> > In my setup, i have two DPDK ports, where dpdk0 is part of br0 and and
> > dpdk1 is part of br1. How can i send packets from br0 to br1 in an
> > efficient way within userspace with good performance?
> > I came across, veth pair as one option, but i couldn't find if it will
> > provide good performance in userspace while running in dpdk mode ?
> >
> > My query might sound odd, but i have a use case where i need to send the
> > packets across bridges within the same userspace, so appreciate some help
> > on this.
> >
> > Regards
> > Kapil
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
>
> --
>
> Regards
> Kapil
>
>
>


More information about the dev mailing list