You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
6 years ago
|
From 449517f7769dde4905564ce17e126bfd4e1f7147 Mon Sep 17 00:00:00 2001
|
||
|
From: Phil Sutter <psutter@redhat.com>
|
||
|
Date: Fri, 6 Oct 2017 17:27:09 +0200
|
||
|
Subject: [PATCH] link_gre6: Fix for changing tclass/flowlabel
|
||
|
|
||
|
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1487486
|
||
|
Upstream Status: iproute2.git commit e7fefb3214b5a
|
||
|
|
||
|
commit e7fefb3214b5a1ed030cab9df513560c503a9851
|
||
|
Author: Phil Sutter <phil@nwl.cc>
|
||
|
Date: Fri Sep 1 16:08:08 2017 +0200
|
||
|
|
||
|
link_gre6: Fix for changing tclass/flowlabel
|
||
|
|
||
|
When trying to change tclass or flowlabel of a GREv6 tunnel which has
|
||
|
the respective value set already, the code accidentally bitwise OR'ed
|
||
|
the old and the new value, leading to unexpected results. Fix this by
|
||
|
clearing the relevant bits of flowinfo variable prior to assigning the
|
||
|
new value.
|
||
|
|
||
|
Fixes: af89576d7a8c4 ("iproute2: GRE over IPv6 tunnel support.")
|
||
|
Signed-off-by: Phil Sutter <phil@nwl.cc>
|
||
|
---
|
||
|
ip/link_gre6.c | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
diff --git a/ip/link_gre6.c b/ip/link_gre6.c
|
||
|
index 76416b2..fe3ab64 100644
|
||
|
--- a/ip/link_gre6.c
|
||
|
+++ b/ip/link_gre6.c
|
||
|
@@ -282,6 +282,7 @@ get_failed:
|
||
|
else {
|
||
|
if (get_u8(&uval, *argv, 16))
|
||
|
invarg("invalid TClass", *argv);
|
||
|
+ flowinfo &= ~IP6_FLOWINFO_TCLASS;
|
||
|
flowinfo |= htonl((__u32)uval << 20) & IP6_FLOWINFO_TCLASS;
|
||
|
flags &= ~IP6_TNL_F_USE_ORIG_TCLASS;
|
||
|
}
|
||
|
@@ -297,6 +298,7 @@ get_failed:
|
||
|
invarg("invalid Flowlabel", *argv);
|
||
|
if (uval > 0xFFFFF)
|
||
|
invarg("invalid Flowlabel", *argv);
|
||
|
+ flowinfo &= ~IP6_FLOWINFO_FLOWLABEL;
|
||
|
flowinfo |= htonl(uval) & IP6_FLOWINFO_FLOWLABEL;
|
||
|
flags &= ~IP6_TNL_F_USE_ORIG_FLOWLABEL;
|
||
|
}
|
||
|
--
|
||
|
1.8.3.1
|
||
|
|