From 8b2f2d777ca0cfe028fba2ab922506e2ca9e07a3 Mon Sep 17 00:00:00 2001 From: Nicolas Dichtel Date: Wed, 14 Nov 2012 16:29:26 +0100 Subject: [PATCH] ip/ip6tunnel: fix update of tclass and flowlabel When tclass or flowlabel field were updated, we only performed an OR with the new value. For example, it was not possible to reset tclass: ip -6 tunnel change ip6tnl2 tclass 0 Signed-off-by: Nicolas Dichtel --- ip/ip6tunnel.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c index 7aaac61b..fcc9f33c 100644 --- a/ip/ip6tunnel.c +++ b/ip/ip6tunnel.c @@ -173,6 +173,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm *p) matches(*argv, "dsfield") == 0) { __u8 uval; NEXT_ARG(); + p->flowinfo &= ~IP6_FLOWINFO_TCLASS; if (strcmp(*argv, "inherit") == 0) p->flags |= IP6_TNL_F_USE_ORIG_TCLASS; else { @@ -185,6 +186,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm *p) strcmp(*argv, "fl") == 0) { __u32 uval; NEXT_ARG(); + p->flowinfo &= ~IP6_FLOWINFO_FLOWLABEL; if (strcmp(*argv, "inherit") == 0) p->flags |= IP6_TNL_F_USE_ORIG_FLOWLABEL; else {