db1a117450
It seems that netlink in older kernels, including RHEL6, does not support RTM_SETLINK with IFLA_MASTER. It just silently ignores it, reporting no error, causing netlink.NetworkSetMaster() to not do anything yet return no error. We fix this by introducing and using AddToBridge() in a very similar manner to CreateBridge(), which use the old ioctls directly. This fixes https://github.com/dotcloud/docker/issues/4668 Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
// +build !linux !amd64
|
|
|
|
package netlink
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
)
|
|
|
|
var (
|
|
ErrNotImplemented = errors.New("not implemented")
|
|
)
|
|
|
|
func NetworkGetRoutes() ([]Route, error) {
|
|
return nil, ErrNotImplemented
|
|
}
|
|
|
|
func NetworkLinkAdd(name string, linkType string) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkLinkUp(iface *net.Interface) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkLinkAddIp(iface *net.Interface, ip net.IP, ipNet *net.IPNet) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func AddDefaultGw(ip net.IP) error {
|
|
return ErrNotImplemented
|
|
|
|
}
|
|
|
|
func NetworkSetMTU(iface *net.Interface, mtu int) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkCreateVethPair(name1, name2 string) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkChangeName(iface *net.Interface, newName string) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkSetNsFd(iface *net.Interface, fd int) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkSetNsPid(iface *net.Interface, nspid int) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkSetMaster(iface, master *net.Interface) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func NetworkLinkDown(iface *net.Interface) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func CreateBridge(name string, setMacAddr bool) error {
|
|
return ErrNotImplemented
|
|
}
|
|
|
|
func AddToBridge(iface, master *net.Interface) error {
|
|
return ErrNotImplemented
|
|
}
|