Thread (11 messages) 11 messages, 3 authors, 2013-09-27

Re: [PATCH v2.40 5/7] lib: Push MPLS tags in the OpenFlow 1.3 ordering

From: Ben Pfaff <hidden>
Date: 2013-09-27 19:47:25

On Fri, Sep 27, 2013 at 09:18:34AM +0900, Simon Horman wrote:
From: Joe Stringer <redacted>

This patch modifies the push_mpls behaviour to follow the OpenFlow 1.3
specification in the presence of VLAN tagged packets. From the spec:

"Newly pushed tags should always be inserted as the outermost tag in the
outermost valid location for that tag. When a new VLAN tag is pushed, it
should be the outermost tag inserted, immediately after the Ethernet
header and before other tags. Likewise, when a new MPLS tag is pushed,
it should be the outermost tag inserted, immediately after the Ethernet
header and before other tags."

When the push_mpls action was inserted using OpenFlow 1.2, we implement
the previous behaviour by inserting VLAN actions around the MPLS action
in the odp translation; Pop VLAN tags before committing MPLS actions,
and push the expected VLAN tag afterwards. The trigger condition for
this is based on the ofpact->compat field.

Signed-off-by: Joe Stringer <redacted>
Signed-off-by: Simon Horman <horms@verge.net.au>
Referring to the OF1.2 behavior as "compat behavior" makes the
difference between the two possibilities less clear than otherwise.  I
would prefer to use terminology that makes the distinction obvious.
Perhaps "push mpls before vlan" or "push mpls after vlan" or something
along those lines?

Thanks,

Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help