Skip to content

Commit 0a2536b

Browse files
committed
fix: gw accelerated interface - use gwInterfaceRep instead of bridge(LOCAL)
If gwInterfaceRep is set use it instead of LOCAL. Fixes: #5478 Signed-off-by: Hareesh Puthalath <[email protected]>
1 parent 1d0757e commit 0a2536b

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

go-controller/pkg/node/bridgeconfig/bridgeconfig.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,10 @@ func (b *BridgeConfiguration) GetGatewayIface() string {
236236
return b.gwIface
237237
}
238238

239+
func (b *BridgeConfiguration) GetGatewayIfaceRep() string {
240+
return b.gwIfaceRep
241+
}
242+
239243
// UpdateInterfaceIPAddresses sets and returns the bridge's current ips
240244
func (b *BridgeConfiguration) UpdateInterfaceIPAddresses(node *corev1.Node) ([]*net.IPNet, error) {
241245
b.mutex.Lock()

go-controller/pkg/node/gateway.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,8 +428,14 @@ func gatewayInitInternal(nodeName, gwIntf, egressGatewayIntf string, gwNextHops
428428
}
429429
}
430430

431-
// Set static FDB entry for LOCAL port
432-
if err := util.SetStaticFDBEntry(gatewayBridge.GetBridgeName(), gatewayBridge.GetBridgeName(), gatewayBridge.GetMAC()); err != nil {
431+
// Set static FDB entry for sharedGW MAC.
432+
// If `GatewayIfaceRep` port is present, use it instead of LOCAL (bridge name).
433+
gwport := gatewayBridge.GetBridgeName() // Default is LOCAL port for the bridge.
434+
if repPort := gatewayBridge.GetGatewayIfaceRep(); repPort != "" { // We have an accelerated switchdev device for GW.
435+
gwport = repPort
436+
}
437+
438+
if err := util.SetStaticFDBEntry(gatewayBridge.GetBridgeName(), gwport, gatewayBridge.GetMAC()); err != nil {
433439
return nil, nil, err
434440
}
435441

0 commit comments

Comments
 (0)