diff --git a/cli/network.go b/cli/network.go index 86745ed99..57e367c2f 100644 --- a/cli/network.go +++ b/cli/network.go @@ -17,8 +17,8 @@ import ( "golang.org/x/sys/unix" "github.com/containernetworking/plugins/pkg/ns" - "github.com/kata-containers/agent/pkg/types" vc "github.com/kata-containers/runtime/virtcontainers" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/sirupsen/logrus" "github.com/urfave/cli" ) diff --git a/cli/network_test.go b/cli/network_test.go index 389b9df7c..5a7ede4f6 100644 --- a/cli/network_test.go +++ b/cli/network_test.go @@ -18,8 +18,8 @@ import ( "golang.org/x/sys/unix" "github.com/containernetworking/plugins/pkg/ns" - "github.com/kata-containers/agent/pkg/types" vc "github.com/kata-containers/runtime/virtcontainers" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/stretchr/testify/assert" ) diff --git a/netmon/netmon.go b/netmon/netmon.go index c29713034..ab932abc8 100644 --- a/netmon/netmon.go +++ b/netmon/netmon.go @@ -21,8 +21,8 @@ import ( "syscall" "time" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/runtime/pkg/signals" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/sirupsen/logrus" lSyslog "github.com/sirupsen/logrus/hooks/syslog" "github.com/vishvananda/netlink" @@ -259,7 +259,7 @@ func (n *netmon) listenNetlinkEvents() error { // convertInterface converts a link and its IP addresses as defined by netlink // package, into the Interface structure format expected by kata-runtime to // describe an interface and its associated IP addresses. -func convertInterface(linkAttrs *netlink.LinkAttrs, addrs []netlink.Addr) types.Interface { +func convertInterface(linkAttrs *netlink.LinkAttrs, linkType string, addrs []netlink.Addr) types.Interface { if linkAttrs == nil { netmonLog.Warn("Link attributes are nil") return types.Interface{} @@ -275,7 +275,7 @@ func convertInterface(linkAttrs *netlink.LinkAttrs, addrs []netlink.Addr) types. netMask, _ := addr.Mask.Size() ipAddr := &types.IPAddress{ - Family: types.IPFamily(netlinkFamily), + Family: netlinkFamily, Address: addr.IP.String(), Mask: fmt.Sprintf("%d", netMask), } @@ -289,6 +289,7 @@ func convertInterface(linkAttrs *netlink.LinkAttrs, addrs []netlink.Addr) types. IPAddresses: ipAddrs, Mtu: uint64(linkAttrs.MTU), HwAddr: linkAttrs.HardwareAddr.String(), + LinkType: linkType, } netmonLog.WithField("interface", iface).Debug("Interface converted") @@ -369,7 +370,7 @@ func (n *netmon) scanNetwork() error { continue } - iface := convertInterface(linkAttrs, addrs) + iface := convertInterface(linkAttrs, link.Type(), addrs) n.netIfaces[linkAttrs.Index] = iface } @@ -497,7 +498,7 @@ func (n *netmon) handleRTMNewLink(ev netlink.LinkUpdate) error { } // Convert the interfaces in the appropriate structure format. - iface := convertInterface(linkAttrs, addrs) + iface := convertInterface(linkAttrs, ev.Link.Type(), addrs) // Add the interface through the Kata CLI. if err := n.addInterfaceCLI(iface); err != nil { diff --git a/netmon/netmon_test.go b/netmon/netmon_test.go index 463ea62b6..cc5793e12 100644 --- a/netmon/netmon_test.go +++ b/netmon/netmon_test.go @@ -16,7 +16,7 @@ import ( "runtime" "testing" - "github.com/kata-containers/agent/pkg/types" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/vishvananda/netlink" @@ -174,6 +174,8 @@ func TestConvertInterface(t *testing.T) { HardwareAddr: hwAddr, } + linkType := "link_type_test" + expected := types.Interface{ Device: testIfaceName, Name: testIfaceName, @@ -181,14 +183,15 @@ func TestConvertInterface(t *testing.T) { HwAddr: testHwAddr, IPAddresses: []*types.IPAddress{ { - Family: types.IPFamily(netlinkFamily), + Family: netlinkFamily, Address: testIPAddress, Mask: "0", }, }, + LinkType: linkType, } - got := convertInterface(linkAttrs, addrs) + got := convertInterface(linkAttrs, linkType, addrs) assert.True(t, reflect.DeepEqual(expected, got), "Got %+v\nExpected %+v", got, expected) } @@ -264,10 +267,11 @@ func testCreateDummyNetwork(t *testing.T, handler *netlink.Handle) (int, types.I assert.NotNil(t, attrs) iface := types.Interface{ - Device: testIfaceName, - Name: testIfaceName, - Mtu: uint64(testMTU), - HwAddr: testHwAddr, + Device: testIfaceName, + Name: testIfaceName, + Mtu: uint64(testMTU), + HwAddr: testHwAddr, + LinkType: link.Type(), } return attrs.Index, iface diff --git a/virtcontainers/agent.go b/virtcontainers/agent.go index f2e5e0ca2..d95cdbf63 100644 --- a/virtcontainers/agent.go +++ b/virtcontainers/agent.go @@ -9,8 +9,8 @@ import ( "fmt" "syscall" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/agent/protocols/grpc" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/mitchellh/mapstructure" specs "github.com/opencontainers/runtime-spec/specs-go" "golang.org/x/net/context" diff --git a/virtcontainers/api.go b/virtcontainers/api.go index dce9e1f0c..a89847b67 100644 --- a/virtcontainers/api.go +++ b/virtcontainers/api.go @@ -11,9 +11,9 @@ import ( "runtime" "syscall" - "github.com/kata-containers/agent/pkg/types" deviceApi "github.com/kata-containers/runtime/virtcontainers/device/api" deviceConfig "github.com/kata-containers/runtime/virtcontainers/device/config" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" opentracing "github.com/opentracing/opentracing-go" "github.com/sirupsen/logrus" diff --git a/virtcontainers/api_test.go b/virtcontainers/api_test.go index a7e172fce..e6b1252bf 100644 --- a/virtcontainers/api_test.go +++ b/virtcontainers/api_test.go @@ -18,8 +18,8 @@ import ( "testing" "github.com/containernetworking/plugins/pkg/ns" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/runtime/virtcontainers/pkg/mock" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/stretchr/testify/assert" ) diff --git a/virtcontainers/hyperstart_agent.go b/virtcontainers/hyperstart_agent.go index 4cfb4e369..34b381b13 100644 --- a/virtcontainers/hyperstart_agent.go +++ b/virtcontainers/hyperstart_agent.go @@ -18,11 +18,11 @@ import ( "github.com/vishvananda/netlink" proxyClient "github.com/clearcontainers/proxy/client" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/agent/protocols/grpc" "github.com/kata-containers/runtime/virtcontainers/device/config" "github.com/kata-containers/runtime/virtcontainers/pkg/hyperstart" ns "github.com/kata-containers/runtime/virtcontainers/pkg/nsenter" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/kata-containers/runtime/virtcontainers/utils" specs "github.com/opencontainers/runtime-spec/specs-go" "golang.org/x/net/context" diff --git a/virtcontainers/implementation.go b/virtcontainers/implementation.go index 152f33045..22e910b4f 100644 --- a/virtcontainers/implementation.go +++ b/virtcontainers/implementation.go @@ -13,9 +13,9 @@ import ( "context" "syscall" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/sirupsen/logrus" ) diff --git a/virtcontainers/interfaces.go b/virtcontainers/interfaces.go index 22d93ea28..1731fb4a8 100644 --- a/virtcontainers/interfaces.go +++ b/virtcontainers/interfaces.go @@ -10,9 +10,9 @@ import ( "io" "syscall" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/sirupsen/logrus" ) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 0eef94c19..2cfa36573 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -18,12 +18,13 @@ import ( "syscall" "time" - "github.com/kata-containers/agent/pkg/types" + aTypes "github.com/kata-containers/agent/pkg/types" kataclient "github.com/kata-containers/agent/protocols/client" "github.com/kata-containers/agent/protocols/grpc" "github.com/kata-containers/runtime/virtcontainers/device/config" vcAnnotations "github.com/kata-containers/runtime/virtcontainers/pkg/annotations" ns "github.com/kata-containers/runtime/virtcontainers/pkg/nsenter" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/kata-containers/runtime/virtcontainers/pkg/uuid" "github.com/kata-containers/runtime/virtcontainers/utils" opentracing "github.com/opentracing/opentracing-go" @@ -31,6 +32,7 @@ import ( "github.com/gogo/protobuf/proto" "github.com/opencontainers/runtime-spec/specs-go" "github.com/sirupsen/logrus" + "github.com/vishvananda/netlink" "golang.org/x/net/context" golangGrpc "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -387,7 +389,7 @@ func (k *kataAgent) exec(sandbox *Sandbox, c Container, cmd Cmd) (*Process, erro func (k *kataAgent) updateInterface(ifc *types.Interface) (*types.Interface, error) { // send update interface request ifcReq := &grpc.UpdateInterfaceRequest{ - Interface: ifc, + Interface: k.convertToKataAgentInterface(ifc), } resultingInterface, err := k.sendReq(ifcReq) if err != nil { @@ -415,7 +417,7 @@ func (k *kataAgent) updateRoutes(routes []*types.Route) ([]*types.Route, error) if routes != nil { routesReq := &grpc.UpdateRoutesRequest{ Routes: &grpc.Routes{ - Routes: routes, + Routes: k.convertToKataAgentRoutes(routes), }, } resultingRoutes, err := k.sendReq(routesReq) @@ -427,7 +429,7 @@ func (k *kataAgent) updateRoutes(routes []*types.Route) ([]*types.Route, error) } resultRoutes, ok := resultingRoutes.(*grpc.Routes) if ok && resultRoutes != nil { - return resultRoutes.Routes, err + return k.convertToRoutes(resultRoutes.Routes), err } return nil, err } @@ -442,7 +444,7 @@ func (k *kataAgent) listInterfaces() ([]*types.Interface, error) { } resultInterfaces, ok := resultingInterfaces.(*grpc.Interfaces) if ok { - return resultInterfaces.Interfaces, err + return k.convertToInterfaces(resultInterfaces.Interfaces), err } return nil, err } @@ -455,7 +457,7 @@ func (k *kataAgent) listRoutes() ([]*types.Route, error) { } resultRoutes, ok := resultingRoutes.(*grpc.Routes) if ok { - return resultRoutes.Routes, err + return k.convertToRoutes(resultRoutes.Routes), err } return nil, err } @@ -1549,3 +1551,137 @@ func (k *kataAgent) getGuestDetails(req *grpc.GuestDetailsRequest) (*grpc.GuestD return resp.(*grpc.GuestDetailsResponse), nil } + +func (k *kataAgent) convertToKataAgentIPFamily(ipFamily int) aTypes.IPFamily { + switch ipFamily { + case netlink.FAMILY_V4: + return aTypes.IPFamily_v4 + case netlink.FAMILY_V6: + return aTypes.IPFamily_v6 + } + + return aTypes.IPFamily_v4 +} + +func (k *kataAgent) convertToIPFamily(ipFamily aTypes.IPFamily) int { + switch ipFamily { + case aTypes.IPFamily_v4: + return netlink.FAMILY_V4 + case aTypes.IPFamily_v6: + return netlink.FAMILY_V6 + } + + return netlink.FAMILY_V4 +} + +func (k *kataAgent) convertToKataAgentIPAddresses(ipAddrs []*types.IPAddress) (aIPAddrs []*aTypes.IPAddress) { + for _, ipAddr := range ipAddrs { + if ipAddr == nil { + continue + } + + aIPAddr := &aTypes.IPAddress{ + Family: k.convertToKataAgentIPFamily(ipAddr.Family), + Address: ipAddr.Address, + Mask: ipAddr.Mask, + } + + aIPAddrs = append(aIPAddrs, aIPAddr) + } + + return aIPAddrs +} + +func (k *kataAgent) convertToIPAddresses(aIPAddrs []*aTypes.IPAddress) (ipAddrs []*types.IPAddress) { + for _, aIPAddr := range aIPAddrs { + if aIPAddr == nil { + continue + } + + ipAddr := &types.IPAddress{ + Family: k.convertToIPFamily(aIPAddr.Family), + Address: aIPAddr.Address, + Mask: aIPAddr.Mask, + } + + ipAddrs = append(ipAddrs, ipAddr) + } + + return ipAddrs +} + +func (k *kataAgent) convertToKataAgentInterface(iface *types.Interface) *aTypes.Interface { + if iface == nil { + return nil + } + + return &aTypes.Interface{ + Device: iface.Device, + Name: iface.Name, + IPAddresses: k.convertToKataAgentIPAddresses(iface.IPAddresses), + Mtu: iface.Mtu, + HwAddr: iface.HwAddr, + PciAddr: iface.PciAddr, + } +} + +func (k *kataAgent) convertToInterfaces(aIfaces []*aTypes.Interface) (ifaces []*types.Interface) { + for _, aIface := range aIfaces { + if aIface == nil { + continue + } + + iface := &types.Interface{ + Device: aIface.Device, + Name: aIface.Name, + IPAddresses: k.convertToIPAddresses(aIface.IPAddresses), + Mtu: aIface.Mtu, + HwAddr: aIface.HwAddr, + PciAddr: aIface.PciAddr, + } + + ifaces = append(ifaces, iface) + } + + return ifaces +} + +func (k *kataAgent) convertToKataAgentRoutes(routes []*types.Route) (aRoutes []*aTypes.Route) { + for _, route := range routes { + if route == nil { + continue + } + + aRoute := &aTypes.Route{ + Dest: route.Dest, + Gateway: route.Gateway, + Device: route.Device, + Source: route.Source, + Scope: route.Scope, + } + + aRoutes = append(aRoutes, aRoute) + } + + return aRoutes +} + +func (k *kataAgent) convertToRoutes(aRoutes []*aTypes.Route) (routes []*types.Route) { + for _, aRoute := range aRoutes { + if aRoute == nil { + continue + } + + route := &types.Route{ + Dest: aRoute.Dest, + Gateway: aRoute.Gateway, + Device: aRoute.Device, + Source: aRoute.Source, + Scope: aRoute.Scope, + } + + routes = append(routes, route) + } + + return routes +} diff --git a/virtcontainers/kata_agent_test.go b/virtcontainers/kata_agent_test.go index 3fc9f2ade..b57b13f61 100644 --- a/virtcontainers/kata_agent_test.go +++ b/virtcontainers/kata_agent_test.go @@ -23,7 +23,7 @@ import ( "golang.org/x/net/context" "google.golang.org/grpc" - "github.com/kata-containers/agent/pkg/types" + aTypes "github.com/kata-containers/agent/pkg/types" pb "github.com/kata-containers/agent/protocols/grpc" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" @@ -31,6 +31,7 @@ import ( "github.com/kata-containers/runtime/virtcontainers/device/manager" vcAnnotations "github.com/kata-containers/runtime/virtcontainers/pkg/annotations" "github.com/kata-containers/runtime/virtcontainers/pkg/mock" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" ) var ( @@ -185,16 +186,16 @@ func (p *gRPCProxy) DestroySandbox(ctx context.Context, req *pb.DestroySandboxRe return emptyResp, nil } -func (p *gRPCProxy) AddInterface(ctx context.Context, req *pb.AddInterfaceRequest) (*types.Interface, error) { +func (p *gRPCProxy) AddInterface(ctx context.Context, req *pb.AddInterfaceRequest) (*aTypes.Interface, error) { return nil, nil } -func (p *gRPCProxy) RemoveInterface(ctx context.Context, req *pb.RemoveInterfaceRequest) (*types.Interface, error) { +func (p *gRPCProxy) RemoveInterface(ctx context.Context, req *pb.RemoveInterfaceRequest) (*aTypes.Interface, error) { return nil, nil } -func (p *gRPCProxy) UpdateInterface(ctx context.Context, req *pb.UpdateInterfaceRequest) (*types.Interface, error) { - return &types.Interface{}, nil +func (p *gRPCProxy) UpdateInterface(ctx context.Context, req *pb.UpdateInterfaceRequest) (*aTypes.Interface, error) { + return &aTypes.Interface{}, nil } func (p *gRPCProxy) UpdateRoutes(ctx context.Context, req *pb.UpdateRoutesRequest) (*pb.Routes, error) { diff --git a/virtcontainers/network.go b/virtcontainers/network.go index ae276e007..ada08e876 100644 --- a/virtcontainers/network.go +++ b/virtcontainers/network.go @@ -22,7 +22,7 @@ import ( "github.com/vishvananda/netns" "golang.org/x/sys/unix" - "github.com/kata-containers/agent/pkg/types" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/kata-containers/runtime/virtcontainers/pkg/uuid" "github.com/kata-containers/runtime/virtcontainers/utils" ) @@ -1182,7 +1182,7 @@ func generateInterfacesAndRoutes(networkNS NetworkNamespace) ([]*types.Interface } netMask, _ := addr.Mask.Size() ipAddress := types.IPAddress{ - Family: types.IPFamily_v4, + Family: netlink.FAMILY_V4, Address: addr.IP.String(), Mask: fmt.Sprintf("%d", netMask), } diff --git a/virtcontainers/network_test.go b/virtcontainers/network_test.go index 7aa900c59..7e2bac192 100644 --- a/virtcontainers/network_test.go +++ b/virtcontainers/network_test.go @@ -11,7 +11,7 @@ import ( "reflect" "testing" - "github.com/kata-containers/agent/pkg/types" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/stretchr/testify/assert" "github.com/vishvananda/netlink" ) @@ -162,8 +162,8 @@ func TestGenerateInterfacesAndRoutes(t *testing.T) { // Build expected results: // expectedAddresses := []*types.IPAddress{ - {Family: 0, Address: "172.17.0.2", Mask: "16"}, - {Family: 0, Address: "182.17.0.2", Mask: "16"}, + {Family: netlink.FAMILY_V4, Address: "172.17.0.2", Mask: "16"}, + {Family: netlink.FAMILY_V4, Address: "182.17.0.2", Mask: "16"}, } expectedInterfaces := []*types.Interface{ diff --git a/virtcontainers/noop_agent.go b/virtcontainers/noop_agent.go index 94cb1b8b9..f9e447f2d 100644 --- a/virtcontainers/noop_agent.go +++ b/virtcontainers/noop_agent.go @@ -8,8 +8,8 @@ package virtcontainers import ( "syscall" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/agent/protocols/grpc" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" "golang.org/x/net/context" ) diff --git a/virtcontainers/pkg/types/types.go b/virtcontainers/pkg/types/types.go new file mode 100644 index 000000000..9fd0b201a --- /dev/null +++ b/virtcontainers/pkg/types/types.go @@ -0,0 +1,40 @@ +// Copyright 2018 Intel Corporation. +// +// SPDX-License-Identifier: Apache-2.0 +// + +package types + +// IPAddress describes an IP address. +type IPAddress struct { + Family int + Address string + Mask string +} + +// Interface describes a network interface. +type Interface struct { + Device string + Name string + IPAddresses []*IPAddress + Mtu uint64 + HwAddr string + // pciAddr is the PCI address in the format "bridgeAddr/deviceAddr". + // Here, bridgeAddr is the address at which the bridge is attached on the root bus, + // while deviceAddr is the address at which the network device is attached on the bridge. + PciAddr string + // LinkType defines the type of interface described by this structure. + // The expected values are the one that are defined by the netlink + // library, regarding each type of link. Here is a non exhaustive + // list: "veth", "macvtap", "vlan", "macvlan", "tap", ... + LinkType string +} + +// Route describes a network route. +type Route struct { + Dest string + Gateway string + Device string + Source string + Scope uint32 +} diff --git a/virtcontainers/pkg/vcmock/mock.go b/virtcontainers/pkg/vcmock/mock.go index 04e6715fc..5c3dc317f 100644 --- a/virtcontainers/pkg/vcmock/mock.go +++ b/virtcontainers/pkg/vcmock/mock.go @@ -20,10 +20,10 @@ import ( "fmt" "syscall" - "github.com/kata-containers/agent/pkg/types" vc "github.com/kata-containers/runtime/virtcontainers" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/sirupsen/logrus" ) diff --git a/virtcontainers/pkg/vcmock/mock_test.go b/virtcontainers/pkg/vcmock/mock_test.go index ebc43e66b..eb8ef1914 100644 --- a/virtcontainers/pkg/vcmock/mock_test.go +++ b/virtcontainers/pkg/vcmock/mock_test.go @@ -11,9 +11,9 @@ import ( "syscall" "testing" - "github.com/kata-containers/agent/pkg/types" vc "github.com/kata-containers/runtime/virtcontainers" "github.com/kata-containers/runtime/virtcontainers/factory" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" ) diff --git a/virtcontainers/pkg/vcmock/sandbox.go b/virtcontainers/pkg/vcmock/sandbox.go index 38b6aa4e2..9fac78a07 100644 --- a/virtcontainers/pkg/vcmock/sandbox.go +++ b/virtcontainers/pkg/vcmock/sandbox.go @@ -9,10 +9,10 @@ import ( "io" "syscall" - "github.com/kata-containers/agent/pkg/types" vc "github.com/kata-containers/runtime/virtcontainers" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" ) diff --git a/virtcontainers/pkg/vcmock/types.go b/virtcontainers/pkg/vcmock/types.go index 88c2f81c6..cd935feff 100644 --- a/virtcontainers/pkg/vcmock/types.go +++ b/virtcontainers/pkg/vcmock/types.go @@ -9,10 +9,10 @@ import ( "context" "syscall" - "github.com/kata-containers/agent/pkg/types" vc "github.com/kata-containers/runtime/virtcontainers" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/sirupsen/logrus" ) diff --git a/virtcontainers/sandbox.go b/virtcontainers/sandbox.go index a35f03315..3d723e004 100644 --- a/virtcontainers/sandbox.go +++ b/virtcontainers/sandbox.go @@ -21,12 +21,12 @@ import ( opentracing "github.com/opentracing/opentracing-go" "github.com/sirupsen/logrus" - "github.com/kata-containers/agent/pkg/types" "github.com/kata-containers/agent/protocols/grpc" "github.com/kata-containers/runtime/virtcontainers/device/api" "github.com/kata-containers/runtime/virtcontainers/device/config" "github.com/kata-containers/runtime/virtcontainers/device/drivers" deviceManager "github.com/kata-containers/runtime/virtcontainers/device/manager" + "github.com/kata-containers/runtime/virtcontainers/pkg/types" "github.com/vishvananda/netlink" ) @@ -1098,13 +1098,6 @@ func (s *Sandbox) generateNetInfo(inf *types.Interface) (NetworkInfo, error) { addrs = append(addrs, *netlinkAddr) } - var ifaceType string - if s.config.NetworkConfig.InterworkingModel == NetXConnectNoneModel { - ifaceType = "tap" - } else { - ifaceType = "veth" - } - return NetworkInfo{ Iface: NetlinkIface{ LinkAttrs: netlink.LinkAttrs{ @@ -1112,7 +1105,7 @@ func (s *Sandbox) generateNetInfo(inf *types.Interface) (NetworkInfo, error) { HardwareAddr: hw, MTU: int(inf.Mtu), }, - Type: ifaceType, + Type: inf.LinkType, }, Addrs: addrs, }, nil