diff --git a/pkg/daemon/handler.go b/pkg/daemon/handler.go index 91e9d0a9e9ad..e191b6256791 100644 --- a/pkg/daemon/handler.go +++ b/pkg/daemon/handler.go @@ -26,8 +26,7 @@ const ( gatewayModeDisabled = iota gatewayCheckModePing gatewayCheckModeArping - gatewayCheckModePingNotConcerned - gatewayCheckModeArpingNotConcerned + gatewayCheckModeNoPing ) type cniServerHandler struct { @@ -227,13 +226,13 @@ func (csh cniServerHandler) handleAdd(req *restful.Request, resp *restful.Respon if pod.Annotations[fmt.Sprintf(util.LiveMigrationAnnotationTemplate, podRequest.Provider)] != "true" { if subnetHasVlan && !podSubnet.Spec.LogicalGateway { if podSubnet.Spec.DisableGatewayCheck { - gatewayCheckMode = gatewayCheckModeArpingNotConcerned + gatewayCheckMode = gatewayCheckModeNoPing } else { gatewayCheckMode = gatewayCheckModeArping } } else { if podSubnet.Spec.DisableGatewayCheck { - gatewayCheckMode = gatewayCheckModePingNotConcerned + gatewayCheckMode = gatewayCheckModeNoPing } else { gatewayCheckMode = gatewayCheckModePing } @@ -333,7 +332,7 @@ func (csh cniServerHandler) handleAdd(req *restful.Request, resp *restful.Respon err = csh.configureNic(podRequest.PodName, podRequest.PodNamespace, podRequest.Provider, podRequest.NetNs, podRequest.ContainerID, podRequest.VfDriver, ifName, macAddr, mtu, ipAddr, gw, isDefaultRoute, detectIPConflict, allRoutes, podRequest.DNS.Nameservers, podRequest.DNS.Search, ingress, egress, podRequest.DeviceID, nicType, latency, limit, loss, gatewayCheckMode, u2oInterconnectionIP) } if err != nil { - errMsg := fmt.Errorf("configure nic failed %v", err) + errMsg := fmt.Errorf("configure nic failed, %v", err) klog.Error(errMsg) if err := resp.WriteHeaderAndEntity(http.StatusInternalServerError, request.CniResponse{Err: errMsg.Error()}); err != nil { klog.Errorf("failed to write response, %v", err) diff --git a/pkg/daemon/ovs_linux.go b/pkg/daemon/ovs_linux.go index c833b8670fd0..7c56282f03e8 100644 --- a/pkg/daemon/ovs_linux.go +++ b/pkg/daemon/ovs_linux.go @@ -83,22 +83,28 @@ func (csh cniServerHandler) configureNic(podName, podNamespace, provider, netns, fmt.Sprintf("external_ids:ip=%s", ipStr), fmt.Sprintf("external_ids:pod_netns=%s", netns)) if err != nil { - return fmt.Errorf("add nic to ovs failed %v: %q", err, output) + err = fmt.Errorf("add nic to ovs failed %v: %q", err, output) + klog.Error(err) + return err } // lsp and container nic must use same mac address, otherwise ovn will reject these packets by default macAddr, err := net.ParseMAC(mac) if err != nil { + klog.Error(err) return fmt.Errorf("failed to parse mac %s %v", macAddr, err) } if err = configureHostNic(hostNicName); err != nil { + klog.Error(err) return err } if err = ovs.SetInterfaceBandwidth(podName, podNamespace, ifaceID, egress, ingress); err != nil { + klog.Error(err) return err } if err = ovs.SetNetemQos(podName, podNamespace, ifaceID, latency, limit, loss); err != nil { + klog.Error(err) return err } @@ -107,20 +113,25 @@ func (csh cniServerHandler) configureNic(podName, podNamespace, provider, netns, } isUserspaceDP, err := ovs.IsUserspaceDataPath() if err != nil { + klog.Error(err) return err } if isUserspaceDP { // turn off tx checksum if err = turnOffNicTxChecksum(containerNicName); err != nil { + klog.Error(err) return err } } podNS, err := ns.GetNS(netns) if err != nil { - return fmt.Errorf("failed to open netns %q: %v", netns, err) + err := fmt.Errorf("failed to open netns %q: %v", netns, err) + klog.Error(err) + return err } if err = configureContainerNic(containerNicName, ifName, ip, gateway, isDefaultRoute, detectIPConflict, routes, macAddr, podNS, mtu, nicType, gwCheckMode, u2oInterconnectionIP); err != nil { + klog.Error(err) return err } return nil @@ -214,7 +225,9 @@ func configureHostNic(nicName string) error { func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDefaultRoute, detectIPConflict bool, routes []request.Route, macAddr net.HardwareAddr, netns ns.NetNS, mtu int, nicType string, gwCheckMode int, u2oInterconnectionIP string) error { containerLink, err := netlink.LinkByName(nicName) if err != nil { - return fmt.Errorf("can not find container nic %s: %v", nicName, err) + err = fmt.Errorf("can not find container nic %s: %v", nicName, err) + klog.Error(err) + return err } // Set link alias to its origin link name for fastpath to recognize and bypass netfilter @@ -224,13 +237,16 @@ func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDef } if err = netlink.LinkSetNsFd(containerLink, int(netns.Fd())); err != nil { - return fmt.Errorf("failed to move link to netns: %v", err) + err = fmt.Errorf("failed to move link to netns: %v", err) + klog.Error(err) + return err } return ns.WithNetNSPath(netns.Path(), func(_ ns.NetNS) error { if nicType != util.InternalType { if err = netlink.LinkSetName(containerLink, ifName); err != nil { + klog.Error(err) return err } } @@ -252,16 +268,20 @@ func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDef if nicType == util.InternalType { if err = addAdditionalNic(ifName); err != nil { + klog.Error(err) return err } if err = configureAdditionalNic(ifName, ipAddr); err != nil { + klog.Error(err) return err } if err = configureNic(nicName, ipAddr, macAddr, mtu, detectIPConflict); err != nil { + klog.Error(err) return err } } else { if err = configureNic(ifName, ipAddr, macAddr, mtu, detectIPConflict); err != nil { + klog.Error(err) return err } } @@ -313,7 +333,9 @@ func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDef } if err != nil { - return fmt.Errorf("failed to configure gateway: %v", err) + err = fmt.Errorf("failed to configure gateway: %v", err) + klog.Error(err) + return err } } @@ -344,7 +366,7 @@ func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDef if gwCheckMode != gatewayModeDisabled { var ( - underlayGateway = gwCheckMode == gatewayCheckModeArping || gwCheckMode == gatewayCheckModeArpingNotConcerned + underlayGateway = gwCheckMode == gatewayCheckModeArping interfaceName = nicName ) @@ -354,6 +376,7 @@ func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDef if u2oInterconnectionIP != "" { if err := checkGatewayReady(gwCheckMode, interfaceName, ipAddr, u2oInterconnectionIP, false, true); err != nil { + klog.Error(err) return err } } @@ -367,8 +390,8 @@ func configureContainerNic(nicName, ifName string, ipAddr, gateway string, isDef func checkGatewayReady(gwCheckMode int, intr, ipAddr, gateway string, underlayGateway, verbose bool) error { var err error - if gwCheckMode == gatewayCheckModeArpingNotConcerned || gwCheckMode == gatewayCheckModePingNotConcerned { - // ignore error while ‘disableGatewayCheck=true’ + if gwCheckMode == gatewayCheckModeNoPing { + // ignore error while disableGatewayCheck is true if err = waitNetworkReady(intr, ipAddr, gateway, underlayGateway, verbose, 1); err != nil { err = nil }