Skip to content

Commit ed53f30

Browse files
committed
fix network break on kube-ovn-cni startup (#2272)
1 parent e70839b commit ed53f30

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

pkg/daemon/ovs_linux.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/containernetworking/plugins/pkg/ns"
1919
"github.com/containernetworking/plugins/pkg/utils/sysctl"
2020
"github.com/vishvananda/netlink"
21+
"golang.org/x/sys/unix"
2122
"k8s.io/apimachinery/pkg/types"
2223
"k8s.io/klog/v2"
2324

@@ -481,7 +482,7 @@ func configureNic(link, ip string, macAddr net.HardwareAddr, mtu int, detectIPCo
481482

482483
ipDelMap := make(map[string]netlink.Addr)
483484
ipAddMap := make(map[string]netlink.Addr)
484-
ipAddrs, err := netlink.AddrList(nodeLink, 0x0)
485+
ipAddrs, err := netlink.AddrList(nodeLink, unix.AF_UNSPEC)
485486
if err != nil {
486487
return fmt.Errorf("can not get addr %s: %v", nodeLink, err)
487488
}
@@ -490,7 +491,7 @@ func configureNic(link, ip string, macAddr net.HardwareAddr, mtu int, detectIPCo
490491
// skip 169.254.0.0/16 and fe80::/10
491492
continue
492493
}
493-
ipDelMap[ipAddr.IP.String()+"/"+ipAddr.Mask.String()] = ipAddr
494+
ipDelMap[ipAddr.IPNet.String()] = ipAddr
494495
}
495496

496497
for _, ipStr := range strings.Split(ip, ",") {
@@ -507,12 +508,13 @@ func configureNic(link, ip string, macAddr net.HardwareAddr, mtu int, detectIPCo
507508
ipAddMap[ipStr] = *ipAddr
508509
}
509510

510-
for _, addr := range ipDelMap {
511+
for ip, addr := range ipDelMap {
512+
klog.Infof("delete ip address %s on %s", ip, link)
511513
if err = netlink.AddrDel(nodeLink, &addr); err != nil {
512514
return fmt.Errorf("delete address %s: %v", addr, err)
513515
}
514516
}
515-
for _, addr := range ipAddMap {
517+
for ip, addr := range ipAddMap {
516518
if detectIPConflict && addr.IP.To4() != nil {
517519
ip := addr.IP.String()
518520
mac, err := util.ArpDetectIPConflict(link, ip, macAddr)
@@ -526,6 +528,7 @@ func configureNic(link, ip string, macAddr net.HardwareAddr, mtu int, detectIPCo
526528
}
527529
}
528530

531+
klog.Infof("add ip address %s to %s", ip, link)
529532
if err = netlink.AddrAdd(nodeLink, &addr); err != nil {
530533
return fmt.Errorf("can not add address %v to nic %s: %v", addr, link, err)
531534
}
@@ -926,7 +929,7 @@ func configureAdditionalNic(link, ip string) error {
926929
// skip 169.254.0.0/16 and fe80::/10
927930
continue
928931
}
929-
ipDelMap[ipAddr.IP.String()+"/"+ipAddr.Mask.String()] = ipAddr
932+
ipDelMap[ipAddr.IPNet.String()] = ipAddr
930933
}
931934

932935
for _, ipStr := range strings.Split(ip, ",") {

0 commit comments

Comments
 (0)