From: Alexander Aring Date: Mon, 28 Aug 2017 19:07:35 +0000 (-0400) Subject: tc: m_ife: allow ife type to zero X-Git-Tag: v4.14.0~39^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf338b60d46235f314bd293121be4035c57c8bce;p=thirdparty%2Fiproute2.git 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 --- diff --git a/tc/m_ife.c b/tc/m_ife.c index e3521e62c..e05e2276b 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);