Merge pull request #1755 from msabansal/msabansal/ics
Changes to support ICS network on windows
This commit is contained in:
commit
d01e1d38c3
|
@ -28,6 +28,9 @@ const (
|
||||||
// DNSServers of the network
|
// DNSServers of the network
|
||||||
DNSServers = "com.docker.network.windowsshim.dnsservers"
|
DNSServers = "com.docker.network.windowsshim.dnsservers"
|
||||||
|
|
||||||
|
// MacPool of the network
|
||||||
|
MacPool = "com.docker.network.windowsshim.macpool"
|
||||||
|
|
||||||
// SourceMac of the network
|
// SourceMac of the network
|
||||||
SourceMac = "com.docker.network.windowsshim.sourcemac"
|
SourceMac = "com.docker.network.windowsshim.sourcemac"
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ type networkConfiguration struct {
|
||||||
VLAN uint
|
VLAN uint
|
||||||
VSID uint
|
VSID uint
|
||||||
DNSServers string
|
DNSServers string
|
||||||
|
MacPools []hcsshim.MacPool
|
||||||
DNSSuffix string
|
DNSSuffix string
|
||||||
SourceMac string
|
SourceMac string
|
||||||
NetworkAdapterName string
|
NetworkAdapterName string
|
||||||
|
@ -168,6 +169,18 @@ func (d *driver) parseNetworkOptions(id string, genericOptions map[string]string
|
||||||
config.DNSSuffix = value
|
config.DNSSuffix = value
|
||||||
case DNSServers:
|
case DNSServers:
|
||||||
config.DNSServers = value
|
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:
|
case VLAN:
|
||||||
vlan, err := strconv.ParseUint(value, 10, 32)
|
vlan, err := strconv.ParseUint(value, 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -274,6 +287,7 @@ func (d *driver) CreateNetwork(id string, option map[string]interface{}, nInfo d
|
||||||
Subnets: subnets,
|
Subnets: subnets,
|
||||||
DNSServerList: config.DNSServers,
|
DNSServerList: config.DNSServers,
|
||||||
DNSSuffix: config.DNSSuffix,
|
DNSSuffix: config.DNSSuffix,
|
||||||
|
MacPools: config.MacPools,
|
||||||
SourceMac: config.SourceMac,
|
SourceMac: config.SourceMac,
|
||||||
NetworkAdapterName: config.NetworkAdapterName,
|
NetworkAdapterName: config.NetworkAdapterName,
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,5 +16,6 @@ func getInitializers(experimental bool) []initializer {
|
||||||
{windows.GetInit("l2bridge"), "l2bridge"},
|
{windows.GetInit("l2bridge"), "l2bridge"},
|
||||||
{windows.GetInit("l2tunnel"), "l2tunnel"},
|
{windows.GetInit("l2tunnel"), "l2tunnel"},
|
||||||
{windows.GetInit("nat"), "nat"},
|
{windows.GetInit("nat"), "nat"},
|
||||||
|
{windows.GetInit("ics"), "ics"},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue