[ovs-dev] MPLS performance question

Guru Shetty guru at ovn.org
Tue Jul 31 19:07:32 UTC 2018


MTU? Big drops in performance numbers are usually because of packet
fragmentation. Keep the MTU of your packet origin to, say 1450 and retry?

On 31 July 2018 at 12:01, Carl Baldwin <carl at ecbaldwin.net> wrote:

> My apologies. I failed to include the ovs version number that I'm using. It
> is 2.7.3. Is there anything else I could check that maybe I'm not thinking
> of?
>
> Carl
>
> On Tue, Jul 31, 2018 at 11:01 AM Ben Pfaff <blp at ovn.org> wrote:
>
> > On Mon, Jul 30, 2018 at 02:02:16PM -0600, Carl Baldwin wrote:
> > > I recently tried pushing MPLS labels using OVS in a lab.
> > >
> > > Before adding MPLS push to the mix, I had four hosts: two pairs, each
> > > connected to a different set of TOR switches running VRRP. OVS (using
> > > kernel datapath) had a flow to write the VRRP mac address and output
> to a
> > > bond port. The bond is a Linux LACP bond, not an OVS bond. In this
> > > scenario, the TORs would route the packets through a default route our
> > > gateway routers to egress from the DC. This did fine and I was able to
> > push
> > > something around 42 Gbps using16 iperf2 TCP streams.
> > >
> > >     ovs-ofctl add-flow -OOpenFlow13 br0 "table=25, ip,
> > > actions=output=${bond_port}"
> > >
> > > My next step was to push an MPLS label onto the packet. The above flow
> > > became this:
> > >
> > >     ovs-ofctl add-flow -OOpenFlow13 br0 "table=25, ip,
> > >
> > actions=push_mpls:0x8847,set_field:1048001->mpls_label,
> output=${bond_port}"
> > >
> > > 1048001 is a static label that I configure on the TORs which sends the
> > > packet up to the same gateway using MPLS instead of IP routing. So, the
> > > packets would take the same path out of the network but using an MPLS
> > path.
> > > With this change, things worked well from a functional perspective but
> > the
> > > performance fell drastically to around 30-40 Mbps.
> > >
> > > I'm pretty confident in the network fabric because I tried the same
> > > scenario using LInux MPLS and it performed well. From the network
> > fabric's
> > > point of view, it was exactly the same (static label through LACP bond
> to
> > > VRRP mac).
> > >
> > > I found in the faq [1] under "Does Open vSwitch support MPLS?" that
> "Open
> > > vSwitch version 2.4 can match, push, or pop up to 3 MPLS labels and
> look
> > > past the MPLS label into the encapsulated packet. It will have kernel
> > > support for MPLS, yielding improved performance." I looked through the
> > git
> > > history and I don't see much evidence of this actually getting done for
> > the
> > > 2.4 release. Is this faq accurate?
> >
> > It looks like MPLS datapath support was fairly solid by OVS 2.6, at any
> > rate.  If your kernel module is older than that, I'd recommend
> > upgrading.
> >
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


More information about the dev mailing list