@@ -6,16 +6,13 @@ import (
66 "os"
77 "path/filepath"
88
9- "github.com/docker/docker/pkg/parsers/kernel"
109 "github.com/docker/libnetwork/netutils"
1110 "github.com/sirupsen/logrus"
1211 "github.com/vishvananda/netlink"
1312)
1413
1514// SetupDevice create a new bridge interface/
1615func setupDevice (config * networkConfiguration , i * bridgeInterface ) error {
17- var setMac bool
18-
1916 // We only attempt to create the bridge when the requested device name is
2017 // the default one.
2118 if config .BridgeName != DefaultBridgeName && config .DefaultBridge {
@@ -29,27 +26,17 @@ func setupDevice(config *networkConfiguration, i *bridgeInterface) error {
2926 },
3027 }
3128
32- // Only set the bridge's MAC address if the kernel version is > 3.3, as it
33- // was not supported before that.
34- kv , err := kernel .GetKernelVersion ()
35- if err != nil {
36- logrus .Errorf ("Failed to check kernel versions: %v. Will not assign a MAC address to the bridge interface" , err )
37- } else {
38- setMac = kv .Kernel > 3 || (kv .Kernel == 3 && kv .Major >= 3 )
39- }
29+ // Set the bridge's MAC address. Requires kernel version 3.3 or up.
30+ hwAddr := netutils .GenerateRandomMAC ()
31+ i .Link .Attrs ().HardwareAddr = hwAddr
32+ logrus .Debugf ("Setting bridge mac address to %s" , hwAddr )
4033
41- if setMac {
42- hwAddr := netutils .GenerateRandomMAC ()
43- i .Link .Attrs ().HardwareAddr = hwAddr
44- logrus .Debugf ("Setting bridge mac address to %s" , hwAddr )
45- }
46-
47- if err = i .nlh .LinkAdd (i .Link ); err != nil {
34+ if err := i .nlh .LinkAdd (i .Link ); err != nil {
4835 logrus .Debugf ("Failed to create bridge %s via netlink. Trying ioctl" , config .BridgeName )
49- return ioctlCreateBridge (config .BridgeName , setMac )
36+ return ioctlCreateBridge (config .BridgeName , hwAddr . String () )
5037 }
5138
52- return err
39+ return nil
5340}
5441
5542func setupDefaultSysctl (config * networkConfiguration , i * bridgeInterface ) error {
0 commit comments