Skip to content

Commit

Permalink
fixing create IPv6 enabled bridge issues
Browse files Browse the repository at this point in the history
Signed-off-by: Malte Janduda <mail@janduda.net>
  • Loading branch information
MalteJ committed Nov 5, 2014
1 parent 60dcc31 commit 527085c
Showing 1 changed file with 22 additions and 14 deletions.
36 changes: 22 additions & 14 deletions daemon/networkdriver/bridge/driver.go
Expand Up @@ -143,22 +143,24 @@ func InitDriver(job *engine.Job) engine.Status {
return job.Errorf("bridge ip (%s) does not match existing bridge configuration %s", networkv4.IP, bip)
}
}
if bridgeIPv6 != "" && enableIPv6 {
bip6, _, err := net.ParseCIDR(bridgeIPv6)
if err != nil {
return job.Error(err)
}
found := false
for _, addrv6 := range addrsv6 {
networkv6 = addrv6.(*net.IPNet)
if networkv6.IP.Equal(bip6) {
found = true
}
}
if !found {
return job.Errorf("bridge IPv6 does not match existing bridge configuration %s", bip6)
}

if enableIPv6 {
bip6, _, err := net.ParseCIDR(bridgeIPv6)
if err != nil {
return job.Error(err)
}
found := false
for _, addrv6 := range addrsv6 {
networkv6 = addrv6.(*net.IPNet)
if networkv6.IP.Equal(bip6) {
found = true
break
}
}
if !found {
return job.Errorf("bridge IPv6 does not match existing bridge configuration %s", bip6)
}
}

networkv4 = addrv4.(*net.IPNet)
Expand Down Expand Up @@ -384,6 +386,12 @@ func configureBridge(bridgeIP string, bridgeIPv6 string, enableIPv6 bool) error
}

if enableIPv6 {
// Enable IPv6 on the bridge
procFile := "/proc/sys/net/ipv6/conf/" + iface.Name + "/disable_ipv6"
if err := ioutil.WriteFile(procFile, []byte{'0', '\n'}, 0644); err != nil {
return fmt.Errorf("Unable to enable IPv6 addresses on bridge: %s\n", err)
}

ipAddr6, ipNet6, err := net.ParseCIDR(bridgeIPv6)
if err != nil {
log.Errorf("BridgeIPv6 parsing failed")
Expand Down

0 comments on commit 527085c

Please sign in to comment.