|
@@ -38,6 +38,7 @@ type networkConfiguration struct {
|
|
|
VLAN uint
|
|
|
VSID uint
|
|
|
DNSServers string
|
|
|
+ MacPools []hcsshim.MacPool
|
|
|
DNSSuffix string
|
|
|
SourceMac string
|
|
|
NetworkAdapterName string
|
|
@@ -168,6 +169,18 @@ func (d *driver) parseNetworkOptions(id string, genericOptions map[string]string
|
|
|
config.DNSSuffix = value
|
|
|
case DNSServers:
|
|
|
config.DNSServers = value
|
|
|
+ case MacPool:
|
|
|
+ config.MacPools = make([]hcsshim.MacPool, 0)
|
|
|
+ s := strings.Split(value, ",")
|
|
|
+ if len(s)%2 != 0 {
|
|
|
+ return nil, types.BadRequestErrorf("Invalid mac pool. You must specify both a start range and an end range")
|
|
|
+ }
|
|
|
+ for i := 0; i < len(s)-1; i += 2 {
|
|
|
+ config.MacPools = append(config.MacPools, hcsshim.MacPool{
|
|
|
+ StartMacAddress: s[i],
|
|
|
+ EndMacAddress: s[i+1],
|
|
|
+ })
|
|
|
+ }
|
|
|
case VLAN:
|
|
|
vlan, err := strconv.ParseUint(value, 10, 32)
|
|
|
if err != nil {
|
|
@@ -274,6 +287,7 @@ func (d *driver) CreateNetwork(id string, option map[string]interface{}, nInfo d
|
|
|
Subnets: subnets,
|
|
|
DNSServerList: config.DNSServers,
|
|
|
DNSSuffix: config.DNSSuffix,
|
|
|
+ MacPools: config.MacPools,
|
|
|
SourceMac: config.SourceMac,
|
|
|
NetworkAdapterName: config.NetworkAdapterName,
|
|
|
}
|