| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package configs
- // Network defines configuration for a container's networking stack
- //
- // The network configuration can be omitted from a container causing the
- // container to be setup with the host's networking stack
- type Network struct {
- // Type sets the networks type, commonly veth and loopback
- Type string `json:"type"`
- // Name of the network interface
- Name string `json:"name"`
- // The bridge to use.
- Bridge string `json:"bridge"`
- // MacAddress contains the MAC address to set on the network interface
- MacAddress string `json:"mac_address"`
- // Address contains the IPv4 and mask to set on the network interface
- Address string `json:"address"`
- // Gateway sets the gateway address that is used as the default for the interface
- Gateway string `json:"gateway"`
- // IPv6Address contains the IPv6 and mask to set on the network interface
- IPv6Address string `json:"ipv6_address"`
- // IPv6Gateway sets the ipv6 gateway address that is used as the default for the interface
- IPv6Gateway string `json:"ipv6_gateway"`
- // 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"`
- // 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"`
- // HostInterfaceName is a unique name of a veth pair that resides on in the host interface of the
- // container.
- HostInterfaceName string `json:"host_interface_name"`
- // 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"`
- }
- // Route defines a routing table entry.
- //
- // Routes can be specified to create entries in the routing table as the container
- // is started.
- //
- // All of destination, source, and gateway should be either IPv4 or IPv6.
- // One of the three options must be present, and omitted entries will use their
- // IP family default for the route table. For IPv4 for example, setting the
- // gateway to 1.2.3.4 and the interface to eth0 will set up a standard
- // destination of 0.0.0.0(or *) when viewed in the route table.
- type Route struct {
- // Destination specifies the destination IP address and mask in the CIDR form.
- Destination string `json:"destination"`
- // Source specifies the source IP address and mask in the CIDR form.
- Source string `json:"source"`
- // Gateway specifies the gateway IP address.
- Gateway string `json:"gateway"`
- // InterfaceName specifies the device to set this route up for, for example eth0.
- InterfaceName string `json:"interface_name"`
- }
|