[ovs-dev] [PATCH] ofp-actions: Consider pop MPLS to non-MPLS ethtype as consistent

Simon Horman horms at verge.net.au
Mon Feb 17 01:11:19 UTC 2014


On Mon, Feb 17, 2014 at 10:06:55AM +0900, Simon Horman wrote:
> Remove the restriction that pop MPLS to an ethtype is
> considered inconsistent.
> 
> As it happens this is allowed for OpenFlow 1.0, and thus
> the tests in the Open vSwtich test-suite, by virtue of
> inconsistent actions being allowed in the case of OpenFlow 1.0.
> 
> Its not clear to me why they should be considered inconsistent
> or disallowed for other OpenFlow versions.
> 
> This was found using Ryu tests via the new make check-ryu target.
> It allows all of the "POP_MPLS"[1] tests to pass where they previously
> failed.
> 
> [1] http://osrg.github.io/ryu-certification/switch/ovs
> 
> Signed-off-by: Simon Horman <horms at verge.net.au>
> ---
>  lib/ofp-actions.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
> index 781c3a1..623c726 100644
> --- a/lib/ofp-actions.c
> +++ b/lib/ofp-actions.c
> @@ -2068,9 +2068,6 @@ ofpact_check__(enum ofputil_protocol *usable_protocols, struct ofpact *a,
>  
>      case OFPACT_POP_MPLS:
>          flow->dl_type = ofpact_get_POP_MPLS(a)->ethertype;
> -        if (!eth_type_mpls(flow->dl_type)) {
> -            inconsistent_match(usable_protocols);
> -        }
>          return 0;
>  
>      case OFPACT_SAMPLE:

Looking over this another time, I wonder if the eth_type_mpls()
check should be moved to above the flow->dl_type = ofpact_get_POP_MPLS(a)->ethertype
line. pop MPLS on a non MPLS packet would indeed be inconsistent.



More information about the dev mailing list