Fix txqueuelen being accidentally set to zero
TxQLen was unintentionally set to 0 due to a struct literal. Signed-off-by: Gudmundur Bjarni Olafsson <gudmundur.bjarni@gmail.com>
This commit is contained in:
parent
c11ed48733
commit
3a49cff1f6
@ -32,11 +32,12 @@ var ErrLinkNotFound = errors.New("link not found")
|
|||||||
|
|
||||||
// makeVethPair is called from within the container's network namespace
|
// makeVethPair is called from within the container's network namespace
|
||||||
func makeVethPair(name, peer string, mtu int, mac string, hostNS ns.NetNS) (netlink.Link, error) {
|
func makeVethPair(name, peer string, mtu int, mac string, hostNS ns.NetNS) (netlink.Link, error) {
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = name
|
||||||
|
linkAttrs.MTU = mtu
|
||||||
|
|
||||||
veth := &netlink.Veth{
|
veth := &netlink.Veth{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: name,
|
|
||||||
MTU: mtu,
|
|
||||||
},
|
|
||||||
PeerName: peer,
|
PeerName: peer,
|
||||||
PeerNamespace: netlink.NsFd(int(hostNS.Fd())),
|
PeerNamespace: netlink.NsFd(int(hostNS.Fd())),
|
||||||
}
|
}
|
||||||
|
@ -56,11 +56,12 @@ var _ = Describe("ConfigureIface", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = LINK_NAME
|
||||||
|
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: LINK_NAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(LINK_NAME)
|
_, err = netlink.LinkByName(LINK_NAME)
|
||||||
|
@ -13,10 +13,10 @@ The `ns.Do()` method provides **partial** control over network namespaces for yo
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
err = targetNs.Do(func(hostNs ns.NetNS) error {
|
err = targetNs.Do(func(hostNs ns.NetNS) error {
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = "dummy0"
|
||||||
dummy := &netlink.Dummy{
|
dummy := &netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: "dummy0",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
return netlink.LinkAdd(dummy)
|
return netlink.LinkAdd(dummy)
|
||||||
})
|
})
|
||||||
|
@ -48,11 +48,11 @@ var _ = Describe("Sysctl tests", func() {
|
|||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
testIfaceName = fmt.Sprintf("cnitest.%d", rand.Intn(100000))
|
testIfaceName = fmt.Sprintf("cnitest.%d", rand.Intn(100000))
|
||||||
|
testLinkAttrs := netlink.NewLinkAttrs()
|
||||||
|
testLinkAttrs.Name = testIfaceName
|
||||||
|
testLinkAttrs.Namespace = netlink.NsFd(int(testNs.Fd()))
|
||||||
testIface := &netlink.Dummy{
|
testIface := &netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: testLinkAttrs,
|
||||||
Name: testIfaceName,
|
|
||||||
Namespace: netlink.NsFd(int(testNs.Fd())),
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = netlink.LinkAdd(testIface)
|
err = netlink.LinkAdd(testIface)
|
||||||
|
@ -155,11 +155,11 @@ var _ = Describe("DHCP Operations", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = hostVethName
|
||||||
err = netlink.LinkAdd(&netlink.Veth{
|
err = netlink.LinkAdd(&netlink.Veth{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: hostVethName,
|
PeerName: contVethName,
|
||||||
},
|
|
||||||
PeerName: contVethName,
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
@ -394,11 +394,11 @@ func dhcpSetupOriginalNS() (chan bool, string, ns.NetNS, ns.NetNS, error) {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = hostBridgeName
|
||||||
// Create bridge in the "host" (original) NS
|
// Create bridge in the "host" (original) NS
|
||||||
br = &netlink.Bridge{
|
br = &netlink.Bridge{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: hostBridgeName,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = netlink.LinkAdd(br)
|
err = netlink.LinkAdd(br)
|
||||||
|
@ -335,16 +335,11 @@ func bridgeByName(name string) (*netlink.Bridge, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ensureBridge(brName string, mtu int, promiscMode, vlanFiltering bool) (*netlink.Bridge, error) {
|
func ensureBridge(brName string, mtu int, promiscMode, vlanFiltering bool) (*netlink.Bridge, error) {
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = brName
|
||||||
|
linkAttrs.MTU = mtu
|
||||||
br := &netlink.Bridge{
|
br := &netlink.Bridge{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: brName,
|
|
||||||
MTU: mtu,
|
|
||||||
// Let kernel use default txqueuelen; leaving it unset
|
|
||||||
// means 0, and a zero-length TX queue messes up FIFO
|
|
||||||
// traffic shapers which use TX queue length as the
|
|
||||||
// default packet limit
|
|
||||||
TxQLen: -1,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
if vlanFiltering {
|
if vlanFiltering {
|
||||||
br.VlanFiltering = &vlanFiltering
|
br.VlanFiltering = &vlanFiltering
|
||||||
|
@ -1890,10 +1890,10 @@ var _ = Describe("bridge Operations", func() {
|
|||||||
err := originalNS.Do(func(ns.NetNS) error {
|
err := originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = BRNAME
|
||||||
err := netlink.LinkAdd(&netlink.Bridge{
|
err := netlink.LinkAdd(&netlink.Bridge{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: BRNAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
link, err := netlink.LinkByName(BRNAME)
|
link, err := netlink.LinkByName(BRNAME)
|
||||||
|
@ -43,11 +43,12 @@ func parseNetConf(bytes []byte) (*types.NetConf, error) {
|
|||||||
func createDummy(ifName string, netns ns.NetNS) (*current.Interface, error) {
|
func createDummy(ifName string, netns ns.NetNS) (*current.Interface, error) {
|
||||||
dummy := ¤t.Interface{}
|
dummy := ¤t.Interface{}
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifName
|
||||||
|
linkAttrs.Namespace = netlink.NsFd(int(netns.Fd()))
|
||||||
|
|
||||||
dm := &netlink.Dummy{
|
dm := &netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifName,
|
|
||||||
Namespace: netlink.NsFd(int(netns.Fd())),
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := netlink.LinkAdd(dm); err != nil {
|
if err := netlink.LinkAdd(dm); err != nil {
|
||||||
|
@ -180,11 +180,11 @@ var _ = Describe("dummy Operations", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
m, err := netlink.LinkByName(MASTER_NAME)
|
m, err := netlink.LinkByName(MASTER_NAME)
|
||||||
|
@ -341,10 +341,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare ifname in original namespace
|
// prepare ifname in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -422,10 +422,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare host device in original namespace
|
// prepare host device in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -483,10 +483,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// create another conflict host device with same name "dummy0"
|
// create another conflict host device with same name "dummy0"
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
conflictLink, err = netlink.LinkByName(ifname)
|
conflictLink, err = netlink.LinkByName(ifname)
|
||||||
@ -608,10 +608,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare ifname in original namespace
|
// prepare ifname in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -720,10 +720,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare ifname in original namespace
|
// prepare ifname in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -912,10 +912,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare ifname in original namespace
|
// prepare ifname in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -969,10 +969,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare ifname in original namespace
|
// prepare ifname in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -1093,10 +1093,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare host device in original namespace
|
// prepare host device in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(ifname)
|
origLink, err = netlink.LinkByName(ifname)
|
||||||
@ -1154,10 +1154,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// create another conflict host device with same name "dummy0"
|
// create another conflict host device with same name "dummy0"
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = ifname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: ifname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
conflictLink, err = netlink.LinkByName(ifname)
|
conflictLink, err = netlink.LinkByName(ifname)
|
||||||
@ -1227,10 +1227,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare host device in original namespace
|
// prepare host device in original namespace
|
||||||
_ = originalNS.Do(func(ns.NetNS) error {
|
_ = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = hostIfname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: hostIfname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
origLink, err = netlink.LinkByName(hostIfname)
|
origLink, err = netlink.LinkByName(hostIfname)
|
||||||
@ -1243,10 +1243,10 @@ var _ = Describe("base functionality", func() {
|
|||||||
// prepare device in container namespace with same name as host device
|
// prepare device in container namespace with same name as host device
|
||||||
_ = targetNS.Do(func(ns.NetNS) error {
|
_ = targetNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = containerAdditionalIfname
|
||||||
err := netlink.LinkAdd(&netlink.Dummy{
|
err := netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: containerAdditionalIfname,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
containerLink, err = netlink.LinkByName(containerAdditionalIfname)
|
containerLink, err = netlink.LinkByName(containerAdditionalIfname)
|
||||||
|
@ -144,14 +144,15 @@ func createIpvlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Interf
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.MTU = conf.MTU
|
||||||
|
linkAttrs.Name = tmpName
|
||||||
|
linkAttrs.ParentIndex = m.Attrs().Index
|
||||||
|
linkAttrs.Namespace = netlink.NsFd(int(netns.Fd()))
|
||||||
|
|
||||||
mv := &netlink.IPVlan{
|
mv := &netlink.IPVlan{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
MTU: conf.MTU,
|
Mode: mode,
|
||||||
Name: tmpName,
|
|
||||||
ParentIndex: m.Attrs().Index,
|
|
||||||
Namespace: netlink.NsFd(int(netns.Fd())),
|
|
||||||
},
|
|
||||||
Mode: mode,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if conf.LinkContNs {
|
if conf.LinkContNs {
|
||||||
|
@ -281,11 +281,11 @@ var _ = Describe("ipvlan Operations", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(MASTER_NAME)
|
_, err = netlink.LinkByName(MASTER_NAME)
|
||||||
@ -297,11 +297,11 @@ var _ = Describe("ipvlan Operations", func() {
|
|||||||
err = targetNS.Do(func(ns.NetNS) error {
|
err = targetNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME_INCONTAINER
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME_INCONTAINER,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(MASTER_NAME_INCONTAINER)
|
_, err = netlink.LinkByName(MASTER_NAME_INCONTAINER)
|
||||||
|
@ -226,12 +226,11 @@ func createMacvlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Inter
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
linkAttrs := netlink.LinkAttrs{
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
MTU: conf.MTU,
|
linkAttrs.MTU = conf.MTU
|
||||||
Name: tmpName,
|
linkAttrs.Name = tmpName
|
||||||
ParentIndex: m.Attrs().Index,
|
linkAttrs.ParentIndex = m.Attrs().Index
|
||||||
Namespace: netlink.NsFd(int(netns.Fd())),
|
linkAttrs.Namespace = netlink.NsFd(int(netns.Fd()))
|
||||||
}
|
|
||||||
|
|
||||||
if conf.Mac != "" {
|
if conf.Mac != "" {
|
||||||
addr, err := net.ParseMAC(conf.Mac)
|
addr, err := net.ParseMAC(conf.Mac)
|
||||||
|
@ -208,11 +208,11 @@ var _ = Describe("macvlan Operations", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(MASTER_NAME)
|
_, err = netlink.LinkByName(MASTER_NAME)
|
||||||
@ -224,11 +224,11 @@ var _ = Describe("macvlan Operations", func() {
|
|||||||
err = targetNS.Do(func(ns.NetNS) error {
|
err = targetNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME_INCONTAINER
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME_INCONTAINER,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(MASTER_NAME_INCONTAINER)
|
_, err = netlink.LinkByName(MASTER_NAME_INCONTAINER)
|
||||||
|
@ -137,10 +137,9 @@ func createTapWithIptool(tmpName string, mtu int, multiqueue bool, mac string, o
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createLinkWithNetlink(tmpName string, mtu int, nsFd int, multiqueue bool, mac string, owner *uint32, group *uint32) error {
|
func createLinkWithNetlink(tmpName string, mtu int, nsFd int, multiqueue bool, mac string, owner *uint32, group *uint32) error {
|
||||||
linkAttrs := netlink.LinkAttrs{
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
Name: tmpName,
|
linkAttrs.Name = tmpName
|
||||||
Namespace: netlink.NsFd(nsFd),
|
linkAttrs.Namespace = netlink.NsFd(nsFd)
|
||||||
}
|
|
||||||
if mtu != 0 {
|
if mtu != 0 {
|
||||||
linkAttrs.MTU = mtu
|
linkAttrs.MTU = mtu
|
||||||
}
|
}
|
||||||
|
@ -346,10 +346,10 @@ var _ = Describe("Add, check, remove tap plugin", func() {
|
|||||||
|
|
||||||
Expect(
|
Expect(
|
||||||
targetNS.Do(func(ns.NetNS) error {
|
targetNS.Do(func(ns.NetNS) error {
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = bridgeName
|
||||||
if err := netlink.LinkAdd(&netlink.Bridge{
|
if err := netlink.LinkAdd(&netlink.Bridge{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: bridgeName,
|
|
||||||
},
|
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -119,14 +119,15 @@ func createVlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Interfac
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.MTU = conf.MTU
|
||||||
|
linkAttrs.Name = tmpName
|
||||||
|
linkAttrs.ParentIndex = m.Attrs().Index
|
||||||
|
linkAttrs.Namespace = netlink.NsFd(int(netns.Fd()))
|
||||||
|
|
||||||
v := &netlink.Vlan{
|
v := &netlink.Vlan{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
MTU: conf.MTU,
|
VlanId: conf.VlanID,
|
||||||
Name: tmpName,
|
|
||||||
ParentIndex: m.Attrs().Index,
|
|
||||||
Namespace: netlink.NsFd(int(netns.Fd())),
|
|
||||||
},
|
|
||||||
VlanId: conf.VlanID,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if conf.LinkContNs {
|
if conf.LinkContNs {
|
||||||
|
@ -187,11 +187,11 @@ var _ = Describe("vlan Operations", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
m, err := netlink.LinkByName(MASTER_NAME)
|
m, err := netlink.LinkByName(MASTER_NAME)
|
||||||
@ -205,11 +205,11 @@ var _ = Describe("vlan Operations", func() {
|
|||||||
err = targetNS.Do(func(ns.NetNS) error {
|
err = targetNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = MASTER_NAME_INCONTAINER
|
||||||
// Add master
|
// Add master
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: MASTER_NAME_INCONTAINER,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
m, err := netlink.LinkByName(MASTER_NAME_INCONTAINER)
|
m, err := netlink.LinkByName(MASTER_NAME_INCONTAINER)
|
||||||
|
@ -108,13 +108,13 @@ func makeTCPClientInNS(netns string, address string, port int, numBytes int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createVeth(hostNs ns.NetNS, hostVethIfName string, containerNs ns.NetNS, containerVethIfName string, hostIP []byte, containerIP []byte, hostIfaceMTU int) {
|
func createVeth(hostNs ns.NetNS, hostVethIfName string, containerNs ns.NetNS, containerVethIfName string, hostIP []byte, containerIP []byte, hostIfaceMTU int) {
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = hostVethIfName
|
||||||
|
linkAttrs.Flags = net.FlagUp
|
||||||
|
linkAttrs.MTU = hostIfaceMTU
|
||||||
vethDeviceRequest := &netlink.Veth{
|
vethDeviceRequest := &netlink.Veth{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: hostVethIfName,
|
PeerName: containerVethIfName,
|
||||||
Flags: net.FlagUp,
|
|
||||||
MTU: hostIfaceMTU,
|
|
||||||
},
|
|
||||||
PeerName: containerVethIfName,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err := hostNs.Do(func(_ ns.NetNS) error {
|
err := hostNs.Do(func(_ ns.NetNS) error {
|
||||||
@ -195,12 +195,12 @@ func createVeth(hostNs ns.NetNS, hostVethIfName string, containerNs ns.NetNS, co
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createVethInOneNs(netNS ns.NetNS, vethName, peerName string) {
|
func createVethInOneNs(netNS ns.NetNS, vethName, peerName string) {
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = vethName
|
||||||
|
linkAttrs.Flags = net.FlagUp
|
||||||
vethDeviceRequest := &netlink.Veth{
|
vethDeviceRequest := &netlink.Veth{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: vethName,
|
PeerName: peerName,
|
||||||
Flags: net.FlagUp,
|
|
||||||
},
|
|
||||||
PeerName: peerName,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err := netNS.Do(func(_ ns.NetNS) error {
|
err := netNS.Do(func(_ ns.NetNS) error {
|
||||||
@ -224,13 +224,13 @@ func createMacvlan(netNS ns.NetNS, master, macvlanName string) {
|
|||||||
return fmt.Errorf("failed to lookup master %q: %v", master, err)
|
return fmt.Errorf("failed to lookup master %q: %v", master, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.MTU = m.Attrs().MTU
|
||||||
|
linkAttrs.Name = macvlanName
|
||||||
|
linkAttrs.ParentIndex = m.Attrs().Index
|
||||||
macvlanDeviceRequest := &netlink.Macvlan{
|
macvlanDeviceRequest := &netlink.Macvlan{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
MTU: m.Attrs().MTU,
|
Mode: netlink.MACVLAN_MODE_BRIDGE,
|
||||||
Name: macvlanName,
|
|
||||||
ParentIndex: m.Attrs().Index,
|
|
||||||
},
|
|
||||||
Mode: netlink.MACVLAN_MODE_BRIDGE,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = netlink.LinkAdd(macvlanDeviceRequest); err != nil {
|
if err = netlink.LinkAdd(macvlanDeviceRequest); err != nil {
|
||||||
|
@ -205,10 +205,10 @@ var _ = Describe("firewall plugin iptables backend", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = IFNAME
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: IFNAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(IFNAME)
|
_, err = netlink.LinkByName(IFNAME)
|
||||||
|
@ -53,7 +53,9 @@ func setup(targetNs ns.NetNS, status netStatus) error {
|
|||||||
err := targetNs.Do(func(_ ns.NetNS) error {
|
err := targetNs.Do(func(_ ns.NetNS) error {
|
||||||
for _, dev := range status.Devices {
|
for _, dev := range status.Devices {
|
||||||
log.Printf("Adding dev %s\n", dev.Name)
|
log.Printf("Adding dev %s\n", dev.Name)
|
||||||
link := &netlink.Dummy{LinkAttrs: netlink.LinkAttrs{Name: dev.Name}}
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = dev.Name
|
||||||
|
link := &netlink.Dummy{LinkAttrs: linkAttrs}
|
||||||
err := netlink.LinkAdd(link)
|
err := netlink.LinkAdd(link)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -110,10 +110,10 @@ var _ = Describe("tuning plugin", func() {
|
|||||||
err = originalNS.Do(func(ns.NetNS) error {
|
err = originalNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = IFNAME
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: IFNAME,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
link, err := netlink.LinkByName(IFNAME)
|
link, err := netlink.LinkByName(IFNAME)
|
||||||
|
@ -48,11 +48,11 @@ func createVRF(name string, tableID uint32) (*netlink.Vrf, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = name
|
||||||
vrf := &netlink.Vrf{
|
vrf := &netlink.Vrf{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: name,
|
Table: tableID,
|
||||||
},
|
|
||||||
Table: tableID,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = netlink.LinkAdd(vrf)
|
err = netlink.LinkAdd(vrf)
|
||||||
|
@ -94,19 +94,19 @@ var _ = Describe("vrf plugin", func() {
|
|||||||
err = targetNS.Do(func(ns.NetNS) error {
|
err = targetNS.Do(func(ns.NetNS) error {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
|
|
||||||
|
la0 := netlink.NewLinkAttrs()
|
||||||
|
la0.Name = IF0Name
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: la0,
|
||||||
Name: IF0Name,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(IF0Name)
|
_, err = netlink.LinkByName(IF0Name)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
|
la1 := netlink.NewLinkAttrs()
|
||||||
|
la1.Name = IF1Name
|
||||||
err = netlink.LinkAdd(&netlink.Dummy{
|
err = netlink.LinkAdd(&netlink.Dummy{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: la1,
|
||||||
Name: IF1Name,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
_, err = netlink.LinkByName(IF1Name)
|
_, err = netlink.LinkByName(IF1Name)
|
||||||
@ -437,10 +437,10 @@ var _ = Describe("vrf plugin", func() {
|
|||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
l, err := netlink.LinkByName(IF0Name)
|
l, err := netlink.LinkByName(IF0Name)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
linkAttrs := netlink.NewLinkAttrs()
|
||||||
|
linkAttrs.Name = "testrbridge"
|
||||||
br := &netlink.Bridge{
|
br := &netlink.Bridge{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: linkAttrs,
|
||||||
Name: "testrbridge",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
err = netlink.LinkAdd(br)
|
err = netlink.LinkAdd(br)
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user