From: Nicolas Dichtel Date: Wed, 14 Nov 2012 15:29:26 +0000 (+0100) Subject: ip/ip6tunnel: fix update of tclass and flowlabel X-Git-Tag: v3.7.0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df5574d0667813710ca8e790de84e071df55e54f;p=thirdparty%2Fiproute2.git 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 --- diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c index 7aaac61b3..fcc9f33c6 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 {