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, 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 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:kapil20...@gmail.com] > *Sent:* Monday, 19 February, 2018 13:41 > > *To:* Jan Scheurich > *Cc:* disc...@openvswitch.org; d...@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 > 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:kapil20...@gmail.com] > *Sent:* Wednesday, 14 February, 2018 03:47 > *To:* Jan Scheurich > *Cc:* disc...@openvswitch.org; d...@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 > 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-boun...@openvswitch.org [mailto:ovs-dev-bounces@ > openvswitch.org] On Behalf Of Kapil A > > Sent: Tuesday, 13 February, 2018 16:44 > > To: disc...@openvswitch.org; d...@openvswitch.org > > Subj
Re: [ovs-dev] DPDK: How to send packets from one OVS bridge to another OVS bridge while running in the same user space ?
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:kapil20...@gmail.com] Sent: Monday, 19 February, 2018 13:41 To: Jan Scheurich Cc: disc...@openvswitch.org; d...@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 mailto:jan.scheur...@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:kapil20...@gmail.com<mailto:kapil20...@gmail.com>] Sent: Wednesday, 14 February, 2018 03:47 To: Jan Scheurich mailto:jan.scheur...@ericsson.com>> Cc: disc...@openvswitch.org<mailto:disc...@openvswitch.org>; d...@openvswitch.org<mailto:d...@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 mailto:jan.scheur...@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-boun...@openvswitch.org<mailto:ovs-dev-boun...@openvswitch.org> > [mailto:ovs-dev-boun...@openvswitch.org<mailto:ovs-dev-boun...@openvswitch.org>] > On Behalf Of Kapil A > Sent: Tuesday, 13 February, 2018 16:44 > To: disc...@openvswitch.org<mailto:disc...@openvswitch.org>; > d...@openvswitch.org<mailto:d...@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 > d...@openvswitch.org<mailto:d...@openvswitch.org> > https://mail.openvswitch
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 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:kapil20...@gmail.com] > *Sent:* Wednesday, 14 February, 2018 03:47 > *To:* Jan Scheurich > *Cc:* disc...@openvswitch.org; d...@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 > 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-boun...@openvswitch.org [mailto:ovs-dev-bounces@ > openvswitch.org] On Behalf Of Kapil A > > Sent: Tuesday, 13 February, 2018 16:44 > > To: disc...@openvswitch.org; d...@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 > > d...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > > -- > > Regards > Kapil > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] DPDK: How to send packets from one OVS bridge to another OVS bridge while running in the same user space ?
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:kapil20...@gmail.com] Sent: Wednesday, 14 February, 2018 03:47 To: Jan Scheurich Cc: disc...@openvswitch.org; d...@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 mailto:jan.scheur...@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-boun...@openvswitch.org<mailto:ovs-dev-boun...@openvswitch.org> > [mailto:ovs-dev-boun...@openvswitch.org<mailto:ovs-dev-boun...@openvswitch.org>] > On Behalf Of Kapil A > Sent: Tuesday, 13 February, 2018 16:44 > To: disc...@openvswitch.org<mailto:disc...@openvswitch.org>; > d...@openvswitch.org<mailto:d...@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 > d...@openvswitch.org<mailto:d...@openvswitch.org> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev -- Regards Kapil ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
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 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-boun...@openvswitch.org [mailto: > ovs-dev-boun...@openvswitch.org] On Behalf Of Kapil A > > Sent: Tuesday, 13 February, 2018 16:44 > > To: disc...@openvswitch.org; d...@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 > > d...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > -- Regards Kapil ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] DPDK: How to send packets from one OVS bridge to another OVS bridge while running in the same user space ?
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-boun...@openvswitch.org > [mailto:ovs-dev-boun...@openvswitch.org] On Behalf Of Kapil A > Sent: Tuesday, 13 February, 2018 16:44 > To: disc...@openvswitch.org; d...@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 > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev