Documentation ¶
Index ¶
- Variables
- func ChangeInterfaceName(old, newName string) error
- func CreateVethPair(name1, name2 string, txQueueLen int) error
- func DeleteInterfaceIp(name string, rawIp string) error
- func InterfaceDown(name string) error
- func InterfaceUp(name string) error
- func SetDefaultGateway(ip, ifaceName string) error
- func SetHairpinMode(name string, enabled bool) error
- func SetInterfaceInNamespaceFd(name string, fd uintptr) error
- func SetInterfaceInNamespacePid(name string, nsPid int) error
- func SetInterfaceIp(name string, rawIp string) error
- func SetInterfaceMac(name string, macaddr string) error
- func SetInterfaceMaster(name, master string) error
- func SetMtu(name string, mtu int) error
- type Loopback
- type Network
- type NetworkState
- type NetworkStats
- type NetworkStrategy
- type Veth
Constants ¶
This section is empty.
Variables ¶
var (
ErrNotValidStrategyType = errors.New("not a valid network strategy type")
)
Functions ¶
func ChangeInterfaceName ¶
func CreateVethPair ¶
func DeleteInterfaceIp ¶
func InterfaceDown ¶
func InterfaceUp ¶
func SetDefaultGateway ¶
func SetHairpinMode ¶
func SetInterfaceIp ¶
func SetInterfaceMac ¶
func SetInterfaceMaster ¶
Types ¶
type Loopback ¶
type Loopback struct { }
Loopback is a network strategy that provides a basic loopback device
func (*Loopback) Create ¶
func (l *Loopback) Create(n *Network, nspid int, networkState *NetworkState) error
func (*Loopback) Initialize ¶
func (l *Loopback) Initialize(config *Network, networkState *NetworkState) error
type Network ¶
type Network struct { // Type sets the networks type, commonly veth and loopback Type string `json:"type,omitempty"` // The bridge to use. Bridge string `json:"bridge,omitempty"` // Prefix for the veth interfaces. VethPrefix string `json:"veth_prefix,omitempty"` // MacAddress contains the MAC address to set on the network interface MacAddress string `json:"mac_address,omitempty"` // Address contains the IPv4 and mask to set on the network interface Address string `json:"address,omitempty"` // IPv6Address contains the IPv6 and mask to set on the network interface IPv6Address string `json:"ipv6_address,omitempty"` // Gateway sets the gateway address that is used as the default for the interface Gateway string `json:"gateway,omitempty"` // IPv6Gateway sets the ipv6 gateway address that is used as the default for the interface IPv6Gateway string `json:"ipv6_gateway,omitempty"` // Mtu sets the mtu value for the interface and will be mirrored on both the host and // container's interfaces if a pair is created, specifically in the case of type veth // Note: This does not apply to loopback interfaces. Mtu int `json:"mtu,omitempty"` // TxQueueLen sets the tx_queuelen value for the interface and will be mirrored on both the host and // container's interfaces if a pair is created, specifically in the case of type veth // Note: This does not apply to loopback interfaces. TxQueueLen int `json:"txqueuelen,omitempty"` // HairpinMode specifies if hairpin NAT should be enabled on the virtual interface // bridge port in the case of type veth // Note: This is unsupported on some systems. // Note: This does not apply to loopback interfaces. HairpinMode bool `json:"hairpin_mode"` }
Network defines configuration for a container's networking stack
The network configuration can be omited from a container causing the container to be setup with the host's networking stack
type NetworkState ¶
type NetworkState struct { // The name of the veth interface on the Host. VethHost string `json:"veth_host,omitempty"` // The name of the veth interface created inside the container for the child. VethChild string `json:"veth_child,omitempty"` }
Struct describing the network specific runtime state that will be maintained by libcontainer for all running containers Do not depend on it outside of libcontainer.
type NetworkStats ¶
type NetworkStats struct { RxBytes uint64 `json:"rx_bytes"` RxPackets uint64 `json:"rx_packets"` RxErrors uint64 `json:"rx_errors"` RxDropped uint64 `json:"rx_dropped"` TxBytes uint64 `json:"tx_bytes"` TxPackets uint64 `json:"tx_packets"` TxErrors uint64 `json:"tx_errors"` TxDropped uint64 `json:"tx_dropped"` }
func GetStats ¶
func GetStats(networkState *NetworkState) (*NetworkStats, error)
Returns the network statistics for the network interfaces represented by the NetworkRuntimeInfo.
type NetworkStrategy ¶
type NetworkStrategy interface { Create(*Network, int, *NetworkState) error Initialize(*Network, *NetworkState) error }
NetworkStrategy represents a specific network configuration for a container's networking stack
func GetStrategy ¶
func GetStrategy(tpe string) (NetworkStrategy, error)
GetStrategy returns the specific network strategy for the provided type. If no strategy is registered for the type an ErrNotValidStrategyType is returned.
type Veth ¶
type Veth struct { }
Veth is a network strategy that uses a bridge and creates a veth pair, one that stays outside on the host and the other is placed inside the container's namespace
func (*Veth) Create ¶
func (v *Veth) Create(n *Network, nspid int, networkState *NetworkState) error
func (*Veth) Initialize ¶
func (v *Veth) Initialize(config *Network, networkState *NetworkState) error