Skip to content

Commit 3f06236

Browse files
authored
Merge pull request #5346 from cathy-zhou/sdn-3180.upstream
VF gateway trigger errors message in updateServiceFlowCache
2 parents 176d152 + 0054273 commit 3f06236

File tree

6 files changed

+15
-29
lines changed

6 files changed

+15
-29
lines changed

go-controller/pkg/node/default_node_network_controller.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,10 +1186,8 @@ func (nc *DefaultNodeNetworkController) Start(ctx context.Context) error {
11861186
// is not needed. Future upgrade flows will need to take DPUs into account.
11871187
if config.OvnKubeNode.Mode != types.NodeModeDPUHost {
11881188
if config.OvnKubeNode.Mode == types.NodeModeFull {
1189-
bridgeName := nc.Gateway.GetGatewayIface()
1190-
// Configure route for svc towards shared gw bridge
1191-
// Have to have the route to bridge for multi-NIC mode, where the default gateway may go to a non-OVS interface
1192-
if err := configureSvcRouteViaBridge(nc.routeManager, bridgeName); err != nil {
1189+
// Configure route for svc towards shared gateway interface
1190+
if err := configureSvcRouteViaInterface(nc.routeManager, nc.Gateway.GetGatewayIface(), DummyNextHopIPs()); err != nil {
11931191
return err
11941192
}
11951193
}
@@ -1655,10 +1653,6 @@ func getPMTUDKey(nodeName string) string {
16551653
return fmt.Sprintf("%s_pmtud", nodeName)
16561654
}
16571655

1658-
func configureSvcRouteViaBridge(routeManager *routemanager.Controller, bridge string) error {
1659-
return configureSvcRouteViaInterface(routeManager, bridge, DummyNextHopIPs())
1660-
}
1661-
16621656
// DummyNextHopIPs returns the fake next hops used for service traffic routing.
16631657
// It is used in:
16641658
// - br-ex, where we don't really care about the next hop GW in use as traffic is always routed to OVN

go-controller/pkg/node/gateway.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ func (g *gateway) GetGatewayBridgeIface() string {
465465
}
466466

467467
func (g *gateway) GetGatewayIface() string {
468-
return g.openflowManager.defaultBridge.getGatewayIface()
468+
return g.openflowManager.defaultBridge.gwIface
469469
}
470470

471471
// getMaxFrameLength returns the maximum frame size (ignoring VLAN header) that a gateway can handle
@@ -556,19 +556,11 @@ type bridgeConfiguration struct {
556556
nextHops []net.IP
557557
}
558558

559-
func (b *bridgeConfiguration) getGatewayIface() string {
560-
// If gwIface is set, then accelerated GW interface is present and we use it. If else use external bridge instead.
561-
if b.gwIface != "" {
562-
return b.gwIface
563-
}
564-
return b.bridgeName
565-
}
566-
567559
// updateInterfaceIPAddresses sets and returns the bridge's current ips
568560
func (b *bridgeConfiguration) updateInterfaceIPAddresses(node *corev1.Node) ([]*net.IPNet, error) {
569561
b.Lock()
570562
defer b.Unlock()
571-
ifAddrs, err := getNetworkInterfaceIPAddresses(b.getGatewayIface())
563+
ifAddrs, err := getNetworkInterfaceIPAddresses(b.gwIface)
572564
if err != nil {
573565
return nil, err
574566
}

go-controller/pkg/node/gateway_shared_intf.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2476,15 +2476,15 @@ func newGateway(
24762476
// Delete stale masquerade resources if there are any. This is to make sure that there
24772477
// are no Linux resources with IP from old masquerade subnet when masquerade subnet
24782478
// gets changed as part of day2 operation.
2479-
if err := deleteStaleMasqueradeResources(gwBridge.getGatewayIface(), nodeName, watchFactory); err != nil {
2479+
if err := deleteStaleMasqueradeResources(gwBridge.gwIface, nodeName, watchFactory); err != nil {
24802480
return fmt.Errorf("failed to remove stale masquerade resources: %w", err)
24812481
}
24822482

2483-
if err := setNodeMasqueradeIPOnExtBridge(gwBridge.getGatewayIface()); err != nil {
2484-
return fmt.Errorf("failed to set the node masquerade IP on the ext bridge %s: %v", gwBridge.getGatewayIface(), err)
2483+
if err := setNodeMasqueradeIPOnExtBridge(gwBridge.gwIface); err != nil {
2484+
return fmt.Errorf("failed to set the node masquerade IP on the ext bridge %s: %v", gwBridge.gwIface, err)
24852485
}
24862486

2487-
if err := addMasqueradeRoute(routeManager, gwBridge.getGatewayIface(), nodeName, gwIPs, watchFactory); err != nil {
2487+
if err := addMasqueradeRoute(routeManager, gwBridge.gwIface, nodeName, gwIPs, watchFactory); err != nil {
24882488
return fmt.Errorf("failed to set the node masquerade route to OVN: %v", err)
24892489
}
24902490

@@ -2531,7 +2531,7 @@ func newGateway(
25312531
gw.openflowManager.requestFlowSync()
25322532
}
25332533

2534-
if err := addHostMACBindings(gwBridge.getGatewayIface()); err != nil {
2534+
if err := addHostMACBindings(gwBridge.gwIface); err != nil {
25352535
return fmt.Errorf("failed to add MAC bindings for service routing: %w", err)
25362536
}
25372537

@@ -2593,11 +2593,11 @@ func newNodePortWatcher(
25932593
subnets = append(subnets, config.Kubernetes.ServiceCIDRs...)
25942594
if config.Gateway.DisableForwarding {
25952595
if err := initExternalBridgeServiceForwardingRules(subnets); err != nil {
2596-
return nil, fmt.Errorf("failed to add accept rules in forwarding table for bridge %s: err %v", gwBridge.getGatewayIface(), err)
2596+
return nil, fmt.Errorf("failed to add accept rules in forwarding table for bridge %s: err %v", gwBridge.gwIface, err)
25972597
}
25982598
} else {
25992599
if err := delExternalBridgeServiceForwardingRules(subnets); err != nil {
2600-
return nil, fmt.Errorf("failed to delete accept rules in forwarding table for bridge %s: err %v", gwBridge.getGatewayIface(), err)
2600+
return nil, fmt.Errorf("failed to delete accept rules in forwarding table for bridge %s: err %v", gwBridge.gwIface, err)
26012601
}
26022602
}
26032603

@@ -2615,7 +2615,7 @@ func newNodePortWatcher(
26152615
gatewayIPv4: gatewayIPv4,
26162616
gatewayIPv6: gatewayIPv6,
26172617
ofportPhys: ofportPhys,
2618-
gwBridge: gwBridge.getGatewayIface(),
2618+
gwBridge: gwBridge.bridgeName,
26192619
serviceInfo: make(map[ktypes.NamespacedName]*serviceConfig),
26202620
nodeIPManager: nodeIPManager,
26212621
ofm: ofm,

go-controller/pkg/node/gateway_udn.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ func NewUserDefinedNetworkGateway(netInfo util.NetInfo, node *corev1.Node, nodeL
268268
if gw.openflowManager == nil {
269269
return nil, fmt.Errorf("openflow manager has not been provided for network: %s", netInfo.GetNetworkName())
270270
}
271-
intfName := gw.openflowManager.defaultBridge.getGatewayIface()
271+
intfName := gw.openflowManager.defaultBridge.gwIface
272272
link, err := util.GetNetLinkOps().LinkByName(intfName)
273273
if err != nil {
274274
return nil, fmt.Errorf("unable to get link for %s, error: %v", intfName, err)

go-controller/pkg/node/gateway_udn_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ func checkUDNSvcIsolationOVSFlows(flows []string, netConfig *bridgeUDNConfigurat
343343

344344
func getDummyOpenflowManager() *openflowManager {
345345
gwBridge := &bridgeConfiguration{
346-
gwIface: "",
346+
gwIface: "breth0",
347347
bridgeName: "breth0",
348348
}
349349
ofm := &openflowManager{

go-controller/pkg/node/node_ip_handler_linux_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ func configureKubeOVNContext(nodeName string, useNetlink bool) *testCtx {
401401
mpmock := &nodemocks.ManagementPort{}
402402
mpmock.On("GetAddresses").Return([]*net.IPNet{tc.mgmtPortIP4, tc.mgmtPortIP6})
403403

404-
fakeBridgeConfiguration := &bridgeConfiguration{bridgeName: "breth0"}
404+
fakeBridgeConfiguration := &bridgeConfiguration{bridgeName: "breth0", gwIface: "breth0"}
405405

406406
k := &kube.Kube{KClient: tc.fakeClient}
407407
tc.ipManager = newAddressManagerInternal(nodeName, k, mpmock, tc.watchFactory, fakeBridgeConfiguration, useNetlink)

0 commit comments

Comments
 (0)