123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- //go:build linux
- package bridge
- import (
- "fmt"
- "net"
- )
- // ErrConfigExists error is returned when driver already has a config applied.
- type ErrConfigExists struct{}
- func (ece *ErrConfigExists) Error() string {
- return "configuration already exists, bridge configuration can be applied only once"
- }
- // Forbidden denotes the type of this error
- func (ece *ErrConfigExists) Forbidden() {}
- // ErrInvalidDriverConfig error is returned when Bridge Driver is passed an invalid config
- type ErrInvalidDriverConfig struct{}
- func (eidc *ErrInvalidDriverConfig) Error() string {
- return "Invalid configuration passed to Bridge Driver"
- }
- // ErrInvalidNetworkConfig error is returned when a network is created on a driver without valid config.
- type ErrInvalidNetworkConfig struct{}
- func (einc *ErrInvalidNetworkConfig) Error() string {
- return "trying to create a network on a driver without valid config"
- }
- // Forbidden denotes the type of this error
- func (einc *ErrInvalidNetworkConfig) Forbidden() {}
- // ErrInvalidEndpointConfig error is returned when an endpoint create is attempted with an invalid endpoint configuration.
- type ErrInvalidEndpointConfig struct{}
- func (eiec *ErrInvalidEndpointConfig) Error() string {
- return "trying to create an endpoint with an invalid endpoint configuration"
- }
- // InvalidParameter denotes the type of this error
- func (eiec *ErrInvalidEndpointConfig) InvalidParameter() {}
- // ErrNetworkExists error is returned when a network already exists and another network is created.
- type ErrNetworkExists struct{}
- func (ene *ErrNetworkExists) Error() string {
- return "network already exists, bridge can only have one network"
- }
- // Forbidden denotes the type of this error
- func (ene *ErrNetworkExists) Forbidden() {}
- // ErrIfaceName error is returned when a new name could not be generated.
- type ErrIfaceName struct{}
- func (ein *ErrIfaceName) Error() string {
- return "failed to find name for new interface"
- }
- // InternalError denotes the type of this error
- func (ein *ErrIfaceName) InternalError() {}
- // ErrNoIPAddr error is returned when bridge has no IPv4 address configured.
- type ErrNoIPAddr struct{}
- func (enip *ErrNoIPAddr) Error() string {
- return "bridge has no IPv4 address configured"
- }
- // InternalError denotes the type of this error
- func (enip *ErrNoIPAddr) InternalError() {}
- // ErrInvalidGateway is returned when the user provided default gateway (v4/v6) is not not valid.
- type ErrInvalidGateway struct{}
- func (eig *ErrInvalidGateway) Error() string {
- return "default gateway ip must be part of the network"
- }
- // InvalidParameter denotes the type of this error
- func (eig *ErrInvalidGateway) InvalidParameter() {}
- // ErrInvalidContainerSubnet is returned when the container subnet (FixedCIDR) is not valid.
- type ErrInvalidContainerSubnet struct{}
- func (eis *ErrInvalidContainerSubnet) Error() string {
- return "container subnet must be a subset of bridge network"
- }
- // InvalidParameter denotes the type of this error
- func (eis *ErrInvalidContainerSubnet) InvalidParameter() {}
- // ErrInvalidMtu is returned when the user provided MTU is not valid.
- type ErrInvalidMtu int
- func (eim ErrInvalidMtu) Error() string {
- return fmt.Sprintf("invalid MTU number: %d", int(eim))
- }
- // InvalidParameter denotes the type of this error
- func (eim ErrInvalidMtu) InvalidParameter() {}
- // ErrUnsupportedAddressType is returned when the specified address type is not supported.
- type ErrUnsupportedAddressType string
- func (uat ErrUnsupportedAddressType) Error() string {
- return fmt.Sprintf("unsupported address type: %s", string(uat))
- }
- // InvalidParameter denotes the type of this error
- func (uat ErrUnsupportedAddressType) InvalidParameter() {}
- // ActiveEndpointsError is returned when there are
- // still active endpoints in the network being deleted.
- type ActiveEndpointsError string
- func (aee ActiveEndpointsError) Error() string {
- return fmt.Sprintf("network %s has active endpoint", string(aee))
- }
- // Forbidden denotes the type of this error
- func (aee ActiveEndpointsError) Forbidden() {}
- // InvalidNetworkIDError is returned when the passed
- // network id for an existing network is not a known id.
- type InvalidNetworkIDError string
- func (inie InvalidNetworkIDError) Error() string {
- return fmt.Sprintf("invalid network id %s", string(inie))
- }
- // NotFound denotes the type of this error
- func (inie InvalidNetworkIDError) NotFound() {}
- // InvalidEndpointIDError is returned when the passed
- // endpoint id is not valid.
- type InvalidEndpointIDError string
- func (ieie InvalidEndpointIDError) Error() string {
- return fmt.Sprintf("invalid endpoint id: %s", string(ieie))
- }
- // InvalidParameter denotes the type of this error
- func (ieie InvalidEndpointIDError) InvalidParameter() {}
- // EndpointNotFoundError is returned when the no endpoint
- // with the passed endpoint id is found.
- type EndpointNotFoundError string
- func (enfe EndpointNotFoundError) Error() string {
- return fmt.Sprintf("endpoint not found: %s", string(enfe))
- }
- // NotFound denotes the type of this error
- func (enfe EndpointNotFoundError) NotFound() {}
- // NonDefaultBridgeExistError is returned when a non-default
- // bridge config is passed but it does not already exist.
- type NonDefaultBridgeExistError string
- func (ndbee NonDefaultBridgeExistError) Error() string {
- return fmt.Sprintf("bridge device with non default name %s must be created manually", string(ndbee))
- }
- // Forbidden denotes the type of this error
- func (ndbee NonDefaultBridgeExistError) Forbidden() {}
- // NonDefaultBridgeNeedsIPError is returned when a non-default
- // bridge config is passed but it has no ip configured
- type NonDefaultBridgeNeedsIPError string
- func (ndbee NonDefaultBridgeNeedsIPError) Error() string {
- return fmt.Sprintf("bridge device with non default name %s must have a valid IP address", string(ndbee))
- }
- // Forbidden denotes the type of this error
- func (ndbee NonDefaultBridgeNeedsIPError) Forbidden() {}
- // FixedCIDRv4Error is returned when fixed-cidrv4 configuration
- // failed.
- type FixedCIDRv4Error struct {
- Net *net.IPNet
- Subnet *net.IPNet
- Err error
- }
- func (fcv4 *FixedCIDRv4Error) Error() string {
- return fmt.Sprintf("setup FixedCIDRv4 failed for subnet %s in %s: %v", fcv4.Subnet, fcv4.Net, fcv4.Err)
- }
- // InternalError denotes the type of this error
- func (fcv4 *FixedCIDRv4Error) InternalError() {}
- // FixedCIDRv6Error is returned when fixed-cidrv6 configuration
- // failed.
- type FixedCIDRv6Error struct {
- Net *net.IPNet
- Err error
- }
- func (fcv6 *FixedCIDRv6Error) Error() string {
- return fmt.Sprintf("setup FixedCIDRv6 failed for subnet %s in %s: %v", fcv6.Net, fcv6.Net, fcv6.Err)
- }
- // InternalError denotes the type of this error
- func (fcv6 *FixedCIDRv6Error) InternalError() {}
- // IPv4AddrAddError is returned when IPv4 address could not be added to the bridge.
- type IPv4AddrAddError struct {
- IP *net.IPNet
- Err error
- }
- func (ipv4 *IPv4AddrAddError) Error() string {
- return fmt.Sprintf("failed to add IPv4 address %s to bridge: %v", ipv4.IP, ipv4.Err)
- }
- // InternalError denotes the type of this error
- func (ipv4 *IPv4AddrAddError) InternalError() {}
- // IPv4AddrNoMatchError is returned when the bridge's IPv4 address does not match configured.
- type IPv4AddrNoMatchError struct {
- IP net.IP
- CfgIP net.IP
- }
- func (ipv4 *IPv4AddrNoMatchError) Error() string {
- return fmt.Sprintf("bridge IPv4 (%s) does not match requested configuration %s", ipv4.IP, ipv4.CfgIP)
- }
- // IPv6AddrNoMatchError is returned when the bridge's IPv6 address does not match configured.
- type IPv6AddrNoMatchError net.IPNet
- func (ipv6 *IPv6AddrNoMatchError) Error() string {
- return fmt.Sprintf("bridge IPv6 addresses do not match the expected bridge configuration %s", (*net.IPNet)(ipv6).String())
- }
|