Skip to content

Commit 7c04728

Browse files
authored
Merge pull request #5479 from hareeshpc/fix_fdb_bypassport
fix: GWAcceleratedInterface - use gwInterfaceRep port instead of LOCAL
2 parents 3b1466b + 0a2536b commit 7c04728

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)