Blob Blame History Raw
From 8c66f562e88887d2bf1c1064117496c4cb862b11 Mon Sep 17 00:00:00 2001
Message-Id: <8c66f562e88887d2bf1c1064117496c4cb862b11.1611877215.git.aclaudi@redhat.com>
In-Reply-To: <cb7ce51cc1abd7b98370b903ec96205ebfe48661.1611877215.git.aclaudi@redhat.com>
References: <cb7ce51cc1abd7b98370b903ec96205ebfe48661.1611877215.git.aclaudi@redhat.com>
From: Andrea Claudi <aclaudi@redhat.com>
Date: Fri, 29 Jan 2021 00:35:03 +0100
Subject: [PATCH] m_mpls: test the 'mac_push' action after 'modify'

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1885770
Upstream Status: unknown commit f1298d76

commit f1298d76606a581cf3ab9ec45a92b41e72a6b4f0
Author: Guillaume Nault <gnault@redhat.com>
Date:   Thu Oct 22 11:11:44 2020 +0200

    m_mpls: test the 'mac_push' action after 'modify'

    Commit 02a261b5ba1c ("m_mpls: add mac_push action") added a matches()
    test for the "mac_push" string before the test for "modify".
    This changes the previous behaviour as 'action m' used to match
    "modify" while it now matches "mac_push".

    Revert to the original behaviour by moving the "mac_push" test after
    "modify".

    Fixes: 02a261b5ba1c ("m_mpls: add mac_push action")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David Ahern <dsahern@gmail.com>
---
 tc/m_mpls.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tc/m_mpls.c b/tc/m_mpls.c
index cb8019b1..2c3752ba 100644
--- a/tc/m_mpls.c
+++ b/tc/m_mpls.c
@@ -99,14 +99,14 @@ static int parse_mpls(struct action_util *a, int *argc_p, char ***argv_p,
 			if (check_double_action(action, *argv))
 				return -1;
 			action = TCA_MPLS_ACT_PUSH;
-		} else if (matches(*argv, "mac_push") == 0) {
-			if (check_double_action(action, *argv))
-				return -1;
-			action = TCA_MPLS_ACT_MAC_PUSH;
 		} else if (matches(*argv, "modify") == 0) {
 			if (check_double_action(action, *argv))
 				return -1;
 			action = TCA_MPLS_ACT_MODIFY;
+		} else if (matches(*argv, "mac_push") == 0) {
+			if (check_double_action(action, *argv))
+				return -1;
+			action = TCA_MPLS_ACT_MAC_PUSH;
 		} else if (matches(*argv, "dec_ttl") == 0) {
 			if (check_double_action(action, *argv))
 				return -1;
-- 
2.29.2