Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Commit c2ba861

Browse files
committed
adapt runv network interface change
network.GetIfaceAddr() is gone. Signed-off-by: Peng Tao <[email protected]>
1 parent 490a4f2 commit c2ba861

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

daemon/daemon.go

+20-9
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ import (
99

1010
"github.com/hyperhq/hyperd/daemon/daemondb"
1111
"github.com/hyperhq/hyperd/daemon/pod"
12+
"github.com/hyperhq/hyperd/networking/portmapping"
1213
apitypes "github.com/hyperhq/hyperd/types"
14+
"github.com/hyperhq/hyperd/utils"
15+
"github.com/hyperhq/runv/driverloader"
16+
"github.com/hyperhq/runv/factory"
17+
"github.com/hyperhq/runv/hypervisor"
18+
"github.com/hyperhq/runv/hypervisor/network"
1319

1420
docker "github.com/docker/docker/daemon"
1521
"github.com/docker/docker/daemon/logger/jsonfilelog"
@@ -18,12 +24,7 @@ import (
1824
"github.com/docker/docker/registry"
1925
dockerutils "github.com/docker/docker/utils"
2026
"github.com/golang/glog"
21-
"github.com/hyperhq/hyperd/networking/portmapping"
22-
"github.com/hyperhq/hyperd/utils"
23-
"github.com/hyperhq/runv/driverloader"
24-
"github.com/hyperhq/runv/factory"
25-
"github.com/hyperhq/runv/hypervisor"
26-
"github.com/hyperhq/runv/hypervisor/network"
27+
"github.com/vishvananda/netlink"
2728
)
2829

2930
var (
@@ -230,12 +231,22 @@ func (daemon *Daemon) initNetworks(c *apitypes.HyperConfig) error {
230231
glog.Errorf("InitNetwork failed, %s", err.Error())
231232
return err
232233
}
233-
addr, err := network.GetIfaceAddr(network.BridgeIface)
234+
brlink, err := netlink.LinkByName(network.BridgeIface)
235+
if err != nil {
236+
glog.Errorf("failed to get link of the configured bridge (%s): %v", network.BridgeIface, err)
237+
return err
238+
}
239+
addrs, err := netlink.AddrList(brlink, netlink.FAMILY_V4)
234240
if err != nil {
235-
glog.Errorf("failed to get address of the configured bridge: %v", err)
241+
glog.Errorf("failed to get ip address of the configured bridge (%s): %v", network.BridgeIface, err)
242+
return err
243+
}
244+
if len(addrs) == 0 {
245+
err = fmt.Errorf("configured bridge (%s) has no IPv4 addresses")
246+
glog.Error(err)
236247
return err
237248
}
238-
if err := portmapping.Setup(network.BridgeIface, addr, c.DisableIptables); err != nil {
249+
if err := portmapping.Setup(network.BridgeIface, fmt.Sprintf("%s", addrs[0].IPNet), c.DisableIptables); err != nil {
239250
glog.Errorf("Setup portmapping failed: %v", err)
240251
}
241252
return nil

daemon/pod/networks.go

+2
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func (inf *Interface) prepare() error {
5252
}
5353
inf.descript = &runv.InterfaceDescription{
5454
Id: inf.spec.Ifname,
55+
Name: inf.spec.Ifname,
5556
Lo: false,
5657
Bridge: setting.Bridge,
5758
Ip: setting.IPAddress,
@@ -63,6 +64,7 @@ func (inf *Interface) prepare() error {
6364

6465
inf.descript = &runv.InterfaceDescription{
6566
Id: inf.spec.Ifname,
67+
Name: inf.spec.Ifname,
6668
Lo: false,
6769
Bridge: inf.spec.Bridge,
6870
Ip: inf.spec.Ip,

networking/portmapping/setup_linux.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package portmapping
22

33
import (
44
"fmt"
5-
"net"
65
"os"
76
"os/exec"
87

@@ -16,7 +15,7 @@ var (
1615
)
1716

1817
//setup environment for iptables and IP forwarding
19-
func Setup(bIface string, addr net.Addr, disable bool) error {
18+
func Setup(bIface, addr string, disable bool) error {
2019
var err error
2120

2221
disableIptables = disable
@@ -37,13 +36,13 @@ func Setup(bIface string, addr net.Addr, disable bool) error {
3736
return nil
3837
}
3938

40-
func setupIPTables(addr net.Addr) error {
39+
func setupIPTables(addr string) error {
4140
if disableIptables {
4241
return nil
4342
}
4443

4544
// Enable NAT
46-
natArgs := []string{"-s", addr.String(), "!", "-o", bridgeIface, "-j", "MASQUERADE"}
45+
natArgs := []string{"-s", addr, "!", "-o", bridgeIface, "-j", "MASQUERADE"}
4746

4847
if !iptables.Exists(iptables.Nat, "POSTROUTING", natArgs...) {
4948
if output, err := iptables.Raw(append([]string{

0 commit comments

Comments
 (0)