From a5d066db6e32504010a6374d6f90d24a542eb515 Mon Sep 17 00:00:00 2001 From: Alessandro Boch Date: Mon, 27 Nov 2017 17:29:06 -0800 Subject: [PATCH] Fix LinkAdd for sit tunnel on 3.10 kernel Signed-off-by: Alessandro Boch --- link_linux.go | 6 +++++- link_test.go | 2 ++ neigh_test.go | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/link_linux.go b/link_linux.go index 56ace6b..28e9ec2 100644 --- a/link_linux.go +++ b/link_linux.go @@ -2035,7 +2035,11 @@ func addSittunAttrs(sittun *Sittun, linkInfo *nl.RtAttr) { nl.NewRtAttrChild(data, nl.IFLA_IPTUN_REMOTE, []byte(ip)) } - nl.NewRtAttrChild(data, nl.IFLA_IPTUN_TTL, nl.Uint8Attr(sittun.Ttl)) + if sittun.Ttl > 0 { + // Would otherwise fail on 3.10 kernel + nl.NewRtAttrChild(data, nl.IFLA_IPTUN_TTL, nl.Uint8Attr(sittun.Ttl)) + } + nl.NewRtAttrChild(data, nl.IFLA_IPTUN_TOS, nl.Uint8Attr(sittun.Tos)) nl.NewRtAttrChild(data, nl.IFLA_IPTUN_PMTUDISC, nl.Uint8Attr(sittun.PMtuDisc)) nl.NewRtAttrChild(data, nl.IFLA_IPTUN_ENCAP_TYPE, nl.Uint16Attr(sittun.EncapType)) diff --git a/link_test.go b/link_test.go index 07d61ff..3bf4b8e 100644 --- a/link_test.go +++ b/link_test.go @@ -444,6 +444,8 @@ func TestLinkAddDelVeth(t *testing.T) { } func TestLinkAddDelBond(t *testing.T) { + minKernelRequired(t, 3, 13) + tearDown := setUpNetlinkTest(t) defer tearDown() diff --git a/neigh_test.go b/neigh_test.go index dc1d4ab..ddbd99c 100644 --- a/neigh_test.go +++ b/neigh_test.go @@ -53,6 +53,8 @@ func dumpContainsProxy(dump []Neigh, p proxyEntry) bool { } func TestNeighAddDelLLIPAddr(t *testing.T) { + setUpNetlinkTestWithKModule(t, "ipip") + tearDown := setUpNetlinkTest(t) defer tearDown()