mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-28 11:34:40 +01:00
Merge "network.json" into "persist.json" so that new store can manage network part. Signed-off-by: Wei Zhang <weizhang555.zw@gmail.com>
92 lines
2.1 KiB
Go
92 lines
2.1 KiB
Go
// Copyright (c) 2016 Intel Corporation
|
|
// Copyright (c) 2019 Huawei Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package persistapi
|
|
|
|
import (
|
|
"github.com/vishvananda/netlink"
|
|
)
|
|
|
|
// ============= sandbox level resources =============
|
|
|
|
type NetworkInterface struct {
|
|
Name string
|
|
HardAddr string
|
|
Addrs []netlink.Addr
|
|
}
|
|
|
|
// TapInterface defines a tap interface
|
|
type TapInterface struct {
|
|
ID string
|
|
Name string
|
|
TAPIface NetworkInterface
|
|
// remove VMFds and VhostFds
|
|
}
|
|
|
|
// NetworkInterfacePair defines a pair between VM and virtual network interfaces.
|
|
type NetworkInterfacePair struct {
|
|
TapInterface
|
|
VirtIface NetworkInterface
|
|
NetInterworkingModel int
|
|
}
|
|
|
|
type PhysicalEndpoint struct {
|
|
BDF string
|
|
Driver string
|
|
VendorDeviceID string
|
|
}
|
|
|
|
type MacvtapEndpoint struct {
|
|
// This is for showing information.
|
|
// Remove this field won't impact anything.
|
|
PCIAddr string
|
|
}
|
|
|
|
type TapEndpoint struct {
|
|
TapInterface TapInterface
|
|
}
|
|
|
|
type BridgedMacvlanEndpoint struct {
|
|
NetPair NetworkInterfacePair
|
|
}
|
|
|
|
type VethEndpoint struct {
|
|
NetPair NetworkInterfacePair
|
|
}
|
|
|
|
type IPVlanEndpoint struct {
|
|
NetPair NetworkInterfacePair
|
|
}
|
|
|
|
type VhostUserEndpoint struct {
|
|
// This is for showing information.
|
|
// Remove these fields won't impact anything.
|
|
IfaceName string
|
|
PCIAddr string
|
|
}
|
|
|
|
// NetworkEndpoint contains network interface information
|
|
type NetworkEndpoint struct {
|
|
Type string
|
|
|
|
// One and only one of these below are not nil according to Type.
|
|
Physical *PhysicalEndpoint `json:",omitempty"`
|
|
Veth *VethEndpoint `json:",omitempty"`
|
|
VhostUser *VhostUserEndpoint `json:",omitempty"`
|
|
BridgedMacvlan *BridgedMacvlanEndpoint `json:",omitempty"`
|
|
Macvtap *MacvtapEndpoint `json:",omitempty"`
|
|
Tap *TapEndpoint `json:",omitempty"`
|
|
IPVlan *IPVlanEndpoint `json:",omitempty"`
|
|
}
|
|
|
|
// NetworkInfo contains network information of sandbox
|
|
type NetworkInfo struct {
|
|
NetNsPath string
|
|
NetmonPID int
|
|
NetNsCreated bool
|
|
Endpoints []NetworkEndpoint
|
|
}
|