Thomas: can you provide an example of the actions for your use case?

On Thu, Feb 25, 2016 at 01:51:22PM -0800, Jarno Rajahalme wrote:
> Maybe going back to the design where we have a separate function analyzing 
> the current action in case of “deferred recirculation” (== unmatchable struct 
> flow) would be the best compromise. I recall I did not like that earlier, but 
> it might be best option if recirculation between MPLS_POP and non-table 
> OUTPUT cannot be tolerated.
> 
>   Jarno
>  
> > On Feb 25, 2016, at 10:36 AM, Ben Pfaff <b...@ovn.org> wrote:
> > 
> > On Thu, Feb 25, 2016 at 06:05:06PM +0100, Thomas Morin wrote:
> >> Hi Ben,
> >> 
> >> 2016-02-25, Ben Pfaff:
> >>> On Thu, Feb 25, 2016 at 10:26:28AM +0100, thomas.mo...@orange.com wrote:
> >>>> Sorry to chime in a bit late, but this recirculation performance penalty 
> >>>> for
> >>>> the basic/key use-case where OVS receives an IP-in-MPLS frame and 
> >>>> forwards
> >>>> it to the destination (e.g. a local VM), does not look appealing at all.
> >>>> 
> >>>> To allow having the best of both worlds (avoid perf penalty in all cases,
> >>>> but avoid complex code to automatically determine whether recirculation 
> >>>> is
> >>>> needed or not), would it be possible to specify in a flow, after an mpls
> >>>> match, whether or not recirculation is wanted ?
> >>> 
> >>> No.  That would be a layering violation.
> >> 
> >> I don't get what kind of layering violation you see.
> >> Can you explain?
> > 
> > Whoever specifies the actions shouldn't have to know OVS implementation
> > details.  Having to know whether recirculation is necessary means that
> > the user must know all about the implementation.
> > 
> > Also, the "pop MPLS" action is specified by OpenFlow and doesn't include
> > this information.
> > 
> >>> If you can find a better way to do it, that is maintainable, we'd be
> >>> open to that.
> >> 
> >> What about:
> >> - adding a parameter to the pop_action (recirculate after pop, or don't
> >> recirculate after pop)
> > 
> > The "pop MPLS" action is specified by OpenFlow and doesn't include this
> > information.
> > 
> >> - or keep the current pop, and add a pop_and_do_not_recirculate
> > 
> > Possibly, if you can specify pop_and_do_not_recirculate in a way that
> > refers only to stuff that makes sense at the OpenFlow level, so it makes
> > sense without having to refer to OVS implementation details.  It's not a
> > perfect solution, but it might be acceptable if nothing better can be
> > found.
> > 
> >> - or add an explicit recirculate action, and by default do not recirculate
> > 
> > Layering violation.
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org <mailto:dev@openvswitch.org>
> > http://openvswitch.org/mailman/listinfo/dev 
> > <http://openvswitch.org/mailman/listinfo/dev>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to