Files
libnetwork/bridge/utils.go
T
2015-02-22 17:58:52 -08:00

48 lines
1.2 KiB
Go

package bridge
/*
func electBridgeNetwork(config *Configuration) (*net.IPNet, error) {
// Is a bridge IP is provided as part of the configuration, we only check
// its validity.
if config.AddressIPv4 != "" {
ip, network, err := net.ParseCIDR(config.AddressIPv4)
if err != nil {
return nil, err
}
network.IP = ip
return network, nil
}
// No bridge IP was specified: we have to elect one ourselves from a set of
// predetermined networks.
for _, n := range bridgeNetworks {
// TODO CheckNameserverOverlaps
// TODO CheckRouteOverlaps
return n, nil
}
return nil, fmt.Errorf("Couldn't find an address range for interface %q", config.BridgeName)
}
func createBridgeInterface(name string) (netlink.Link, error) {
link := &netlink.Bridge{
LinkAttrs: netlink.LinkAttrs{
Name: name,
},
}
// Only set the bridge's MAC address if the kernel version is > 3.3, as it
// was not supported before that.
kv, err := kernel.GetKernelVersion()
if err == nil && (kv.Kernel >= 3 && kv.Major >= 3) {
link.Attrs().HardwareAddr = generateRandomMAC()
log.Debugf("Setting bridge mac address to %s", link.Attrs().HardwareAddr)
}
if err := netlink.LinkAdd(link); err != nil {
return nil, err
}
return netlink.LinkByName(name)
}
*/