From bf338b60d46235f314bd293121be4035c57c8bce Mon Sep 17 00:00:00 2001 From: Alexander Aring Date: Mon, 28 Aug 2017 15:07:35 -0400 Subject: [PATCH] tc: m_ife: allow ife type to zero This patch allows to set an ethertype for IFE which is zero. There is no kernel side validation which forbids a type to zero. Signed-off-by: Alexander Aring Acked-by: Jamal Hadi Salim --- tc/m_ife.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tc/m_ife.c b/tc/m_ife.c index e3521e62..e05e2276 100644 --- a/tc/m_ife.c +++ b/tc/m_ife.c @@ -63,6 +63,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, char dbuf[ETH_ALEN]; char sbuf[ETH_ALEN]; __u16 ife_type = 0; + int user_type = 0; __u32 ife_prio = 0; __u32 ife_prio_v = 0; __u32 ife_mark = 0; @@ -125,6 +126,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, if (get_u16(&ife_type, *argv, 0)) invarg("ife type is invalid", *argv); fprintf(stderr, "IFE type 0x%x\n", ife_type); + user_type = 1; } else if (matches(*argv, "dst") == 0) { NEXT_ARG(); daddr = *argv; @@ -185,7 +187,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, if (daddr) addattr_l(n, MAX_MSG, TCA_IFE_DMAC, dbuf, ETH_ALEN); - if (ife_type) + if (user_type) addattr_l(n, MAX_MSG, TCA_IFE_TYPE, &ife_type, 2); if (saddr) addattr_l(n, MAX_MSG, TCA_IFE_SMAC, sbuf, ETH_ALEN);