[ovs-dev] [PATCH v2 2/2] ofproto-dpif: Do not count resubmit to later tables against limit.

Ben Pfaff blp at ovn.org
Fri Apr 22 16:09:43 UTC 2016


On Fri, Apr 22, 2016 at 09:38:09AM -0500, Ryan Moats wrote:
> "dev" <dev-bounces at openvswitch.org> wrote on 04/21/2016 12:50:17 PM:
> 
> > From: Ben Pfaff <blp at ovn.org>
> > To: dev at openvswitch.org
> > Cc: Ben Pfaff <blp at ovn.org>, Guru Shetty <guru at ovn.org>
> > Date: 04/21/2016 12:50 PM
> > Subject: [ovs-dev] [PATCH v2 2/2] ofproto-dpif: Do not count
> > resubmit to later tables against limit.
> > Sent by: "dev" <dev-bounces at openvswitch.org>
> >
> > Open vSwitch must ensure that flow translation takes a finite amount of
> > time.  Until now it has implemented this by limiting the depth of
> > recursion.  The initial limit, in version 1.0.1, was no recursion at all,
> > and then over the years it has increased to 8 levels, then 16, then 32,
> > and 64 for the last few years.  Now reports are coming in that 64 levels
> > are inadequate for some OVN setups.  The natural inclination would be to
> > double the limit again to 128 levels.
> >
> > This commit attempts another approach.  Instead of increasing the limit,
> > it reduces the class of resubmits that count against the limit.  Since
> the
> > goal for the depth limit is to prevent an infinite amount of work, it's
> > not necessary to count resubmits that can't lead to infinite work.  In
> > particular, a resubmit from a table numbered x to a table y > x cannot do
> > this, because any OpenFlow switch has a finite number of tables.  Because
> > in fact a resubmit (or goto_table) from one table to a later table is the
> > most common form of an OpenFlow pipeline, I suspect that this will
> greatly
> > alleviate the pressure to increase the depth limit.
> >
> > Reported-by: Guru Shetty <guru at ovn.org>
> > Signed-off-by: Ben Pfaff <blp at ovn.org>
> > ---
> >  lib/ofp-actions.c            | 19 +++++++++++--
> >  ofproto/ofproto-dpif-xlate.c | 66 +++++++++++++++++++++++++++++++++
> > +----------
> >  ofproto/ofproto-dpif-xlate.h | 23 +++++++++------
> >  ofproto/ofproto-dpif.c       |  5 ++--
> >  ofproto/ofproto-dpif.h       |  3 +-
> >  tests/ofproto-dpif.at        | 41 ++++++++++++++++++++++++++-
> >  utilities/ovs-ofctl.8.in     | 28 ++++++++++++++++---
> >  7 files changed, 152 insertions(+), 33 deletions(-)
> 
> I believe I'm seeing some issues with the recursion level as well, so I'd
> like
> to get this in and see if it helps...
> 
> Acked-by: Ryan Moats <rmoats at us.ibm.com>

Thanks for the ack.

Guru, I mostly wrote this up for you, does this solve the problem you
saw?

Thanks,

Ben.



More information about the dev mailing list