Skip to content

Commit 57a3e74

Browse files
authored
use arp for ipve network ready check (#5716)
Signed-off-by: Mengxin Liu <liumengxinfly@gmail.com>
1 parent 52e04ef commit 57a3e74

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

pkg/daemon/ovs_linux.go

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -536,8 +536,6 @@ func (csh cniServerHandler) configureContainerNic(podName, podNamespace, nicName
536536
}
537537

538538
if gwCheckMode != gatewayCheckModeDisabled {
539-
underlayGateway := gwCheckMode == gatewayCheckModeArping || gwCheckMode == gatewayCheckModeArpingNotConcerned
540-
541539
if util.CheckProtocol(ipAddr) == kubeovnv1.ProtocolIPv6 || util.CheckProtocol(ipAddr) == kubeovnv1.ProtocolDual {
542540
addrsFlags, err := waitIPv6AddressPreferred(interfaceName, 10, 500*time.Millisecond, ipv6DAD)
543541
if err != nil {
@@ -565,12 +563,12 @@ func (csh cniServerHandler) configureContainerNic(podName, podNamespace, nicName
565563
}
566564

567565
if u2oInterconnectionIP != "" {
568-
if err = csh.checkGatewayReady(podName, podNamespace, gwCheckMode, interfaceName, ipAddr, u2oInterconnectionIP, false, true); err != nil {
566+
if err = csh.checkGatewayReady(podName, podNamespace, gwCheckMode, interfaceName, ipAddr, u2oInterconnectionIP, true); err != nil {
569567
klog.Error(err)
570568
return err
571569
}
572570
}
573-
if err = csh.checkGatewayReady(podName, podNamespace, gwCheckMode, interfaceName, ipAddr, gateway, underlayGateway, true); err != nil {
571+
if err = csh.checkGatewayReady(podName, podNamespace, gwCheckMode, interfaceName, ipAddr, gateway, true); err != nil {
574572
klog.Error(err)
575573
return err
576574
}
@@ -582,10 +580,10 @@ func (csh cniServerHandler) configureContainerNic(podName, podNamespace, nicName
582580
return finalRoutes, err
583581
}
584582

585-
func (csh cniServerHandler) checkGatewayReady(podName, podNamespace string, gwCheckMode int, intr, ipAddr, gateway string, underlayGateway, verbose bool) error {
583+
func (csh cniServerHandler) checkGatewayReady(podName, podNamespace string, gwCheckMode int, intr, ipAddr, gateway string, verbose bool) error {
586584
if gwCheckMode == gatewayCheckModeArpingNotConcerned || gwCheckMode == gatewayCheckModePingNotConcerned {
587585
// ignore error if disableGatewayCheck=true
588-
_ = waitNetworkReady(intr, ipAddr, gateway, underlayGateway, verbose, 1, nil)
586+
_ = waitNetworkReady(intr, ipAddr, gateway, verbose, 1, nil)
589587
return nil
590588
}
591589

@@ -620,14 +618,14 @@ func (csh cniServerHandler) checkGatewayReady(podName, podNamespace string, gwCh
620618
}
621619
}()
622620

623-
return waitNetworkReady(intr, ipAddr, gateway, underlayGateway, verbose, gatewayCheckMaxRetry, done)
621+
return waitNetworkReady(intr, ipAddr, gateway, verbose, gatewayCheckMaxRetry, done)
624622
}
625623

626-
func waitNetworkReady(nic, ipAddr, gateway string, underlayGateway, verbose bool, maxRetry int, done chan struct{}) error {
624+
func waitNetworkReady(nic, ipAddr, gateway string, verbose bool, maxRetry int, done chan struct{}) error {
627625
ips := strings.Split(ipAddr, ",")
628626
for i, gw := range strings.Split(gateway, ",") {
629627
src := strings.Split(ips[i], "/")[0]
630-
if underlayGateway && util.CheckProtocol(gw) == kubeovnv1.ProtocolIPv4 {
628+
if util.CheckProtocol(gw) == kubeovnv1.ProtocolIPv4 {
631629
mac, count, err := util.ArpResolve(nic, gw, time.Second, maxRetry, done)
632630
cniConnectivityResult.WithLabelValues(nodeName).Add(float64(count))
633631
if err != nil {
@@ -732,7 +730,7 @@ func configureNodeNic(cs kubernetes.Interface, nodeName, portName, ip, gw, joinC
732730
status := corev1.ConditionFalse
733731
reason := "JoinSubnetGatewayReachable"
734732
message := fmt.Sprintf("ping check to gateway ip %s succeeded", gw)
735-
if err = waitNetworkReady(util.NodeNic, ip, gw, false, true, gatewayCheckMaxRetry, nil); err != nil {
733+
if err = waitNetworkReady(util.NodeNic, ip, gw, true, gatewayCheckMaxRetry, nil); err != nil {
736734
klog.Errorf("failed to init ovn0 check: %v", err)
737735
status = corev1.ConditionTrue
738736
reason = "JoinSubnetGatewayUnreachable"
@@ -767,7 +765,7 @@ func (c *Controller) loopOvn0Check() {
767765
status := corev1.ConditionFalse
768766
reason := "JoinSubnetGatewayReachable"
769767
message := fmt.Sprintf("ping check to gateway ip %s succeeded", gw)
770-
if err = waitNetworkReady(util.NodeNic, ip, gw, false, false, 5, nil); err != nil {
768+
if err = waitNetworkReady(util.NodeNic, ip, gw, false, 5, nil); err != nil {
771769
klog.Errorf("failed to init ovn0 check: %v", err)
772770
status = corev1.ConditionTrue
773771
reason = "JoinSubnetGatewayUnreachable"
@@ -842,7 +840,7 @@ func (c *Controller) checkNodeGwNicInNs(nodeExtIP, ip, gw string, gwNS ns.NetNS)
842840
}
843841
if exists {
844842
return ns.WithNetNSPath(gwNS.Path(), func(_ ns.NetNS) error {
845-
err = waitNetworkReady(util.NodeGwNic, ip, gw, true, true, 3, nil)
843+
err = waitNetworkReady(util.NodeGwNic, ip, gw, true, 3, nil)
846844
if err == nil {
847845
if output, err := exec.Command("bfdd-control", "status").CombinedOutput(); err != nil {
848846
err := fmt.Errorf("failed to get bfdd status, %w, %s", err, output)
@@ -967,7 +965,7 @@ func configureNodeGwNic(portName, ip, gw string, macAddr net.HardwareAddr, mtu i
967965
klog.Error(err)
968966
return err
969967
}
970-
return waitNetworkReady(util.NodeGwNic, ip, gw, true, true, 3, nil)
968+
return waitNetworkReady(util.NodeGwNic, ip, gw, true, 3, nil)
971969
})
972970
}
973971

0 commit comments

Comments
 (0)