On Tue, Mar 12, 2013 at 08:24:15AM -0700, Jesse Gross wrote:
> On Tue, Mar 12, 2013 at 12:26 AM, Simon Horman <ho...@verge.net.au> wrote:
> > On Mon, Mar 11, 2013 at 10:00:54AM -0700, Jesse Gross wrote:
> >> On Mon, Mar 11, 2013 at 6:02 AM, Rajahalme, Jarno (NSN - FI/Espoo)
> >> <jarno.rajaha...@nsn.com> wrote:
> >> >
> >> > On Mar 9, 2013, at 16:54 , ext Simon Horman wrote:
> >> >
> >> >> It is not obvious to me how the behaviour relating to get_priority() as
> >> >> described above can sensibly be reconciled with a desire to preserve the
> >> >> order of actions. Or even reconciled with a looser constraint that 
> >> >> actions
> >> >> that need l3+ data occur before push_mpls actions.
> >> >
> >> > Maybe do_xlate_actions() should take care of translating the 
> >> > skb_priority to nw_tos, and make sure that it happens before any L2.5 
> >> > actions are translated. This would make any later set actions on 
> >> > skb_priority ineffective, though. Also, it seems that on the patch port 
> >> > output the nw_tos is not set, so that might require some further 
> >> > thought. Maybe it is of no functional use for the network transport, but 
> >> > still the peer might actually depend (via a match) on the nw_tos being 
> >> > set the same way as any other port might have it?
> >>
> >> I agree that simply moving the setting of nw_tos earlier in the
> >> process is the best way to handle this.  A similar problem occurs if
> >> an MPLS (or any other non-IP) packet is received on the wire -
> >> changing the priority will have no effect on the marking.  Since
> >> pushing MPLS labels and setting the priority are both done by the
> >> controller, this behavior should at least be fairly transparent and
> >> not surprising.
> >
> > Although it seems like an invasive change I can see how it may be possible
> > for ovs-vwitchd to clone the packet and emit multiple execute operations, 
> > one
> > per output port.
> >
> > However, I'm not sure I see how an appropriate put operation can be emitted
> > to the datapath using this scheme as, recirculation aside, there can only
> > be one facet per match.
> >
> > I'm also a little dubious about the complexity of this change vs the
> > objective of not adding an element to the skb callback.
> 
> No, I don't think that we should add a clone action.  I think the
> overriding principle should be that any actions after an MPLS header
> has been pushed should be the same as if a packet came in with an MPLS
> header directly.

I think that I finally see a simple way forwards on this one
which is simply to commit MPLS actions last. I believe that this
should be sufficient for the current feature set and seems
to be working in my (very light) testing. I'll post some patches
shortly.

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to