From 3bb407a21ffadeee0607d67f8109c891957c3d4a Mon Sep 17 00:00:00 2001 From: Alessandro Boch Date: Fri, 1 May 2015 13:51:17 -0700 Subject: [PATCH] Re-arrange MAC election code for sandbox iface - in bridge.go Signed-off-by: Alessandro Boch --- drivers/bridge/bridge.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/bridge/bridge.go b/drivers/bridge/bridge.go index 955ac68..48dc48b 100644 --- a/drivers/bridge/bridge.go +++ b/drivers/bridge/bridge.go @@ -404,12 +404,8 @@ func (d *driver) CreateEndpoint(nid, eid types.UUID, epOptions map[string]interf } }() - mac := netutils.GenerateRandomMAC() - // Add user specified attributes - if epConfig != nil && epConfig.MacAddress != nil { - mac = epConfig.MacAddress - } - + // Set the sbox's MAC. If specified, use the one configured by user, otherwise use a random one + mac := electMacAddress(epConfig) err = netlink.LinkSetHardwareAddr(sbox, mac) if err != nil { return nil, err @@ -613,6 +609,13 @@ func parseContainerOptions(cOptions interface{}) (*ContainerConfiguration, error } } +func electMacAddress(epConfig *EndpointConfiguration) net.HardwareAddr { + if epConfig != nil && epConfig.MacAddress != nil { + return epConfig.MacAddress + } + return netutils.GenerateRandomMAC() +} + // Generates a name to be used for a virtual ethernet // interface. The name is constructed by 'veth' appended // by a randomly generated hex value. (example: veth0f60e2c)