Skip to content

Commit 367fc4d

Browse files
authored
Nokia re-encap into a single tunnel (#5664)
1 parent f934912 commit 367fc4d

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

internal/cfgplugins/gribifullscale.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,12 @@ func BuildTransitVRFs(t *testing.T, dut *ondatra.DUTDevice, ctx context.Context,
864864
gSession.Close(t)
865865
}
866866

867+
// Currently not all vendors support repair reencap into multiple tunnels.
868+
// This condition should be removed once all vendors support it.
869+
func repairReencapIntoMultipleBackupTunnels(dut *ondatra.DUTDevice) bool {
870+
return dut.Vendor() != ondatra.NOKIA
871+
}
872+
867873
// BuildRepairVRF generates NH/NHG/IPv4 entries for REPAIR_VRF.
868874
func BuildRepairVRF(t *testing.T, dut *ondatra.DUTDevice, ctx context.Context, defaultVRF string, s2NHG uint64, params ScaleParams) {
869875
t.Helper()
@@ -872,15 +878,17 @@ func BuildRepairVRF(t *testing.T, dut *ondatra.DUTDevice, ctx context.Context, d
872878
t.Fatalf("BuildRepairVRF: generate tunnel dsts: %v", err)
873879
}
874880

875-
nhNhgEntries := []fluent.GRIBIEntry{}
881+
var nhNhgEntries []fluent.GRIBIEntry
876882
nhIdx := uint64(0)
877883
for i := 0; i < params.NumRepairNHG; i++ {
878-
if i < params.NumRepairNHG/2 {
884+
if i < params.NumRepairNHG/2 || !repairReencapIntoMultipleBackupTunnels(dut) {
885+
// Repair NHG points to a single NH.
879886
nhEntry, _ := gribi.NHEntry(NHBaseRepair+nhIdx, "DecapEncap", defaultVRF, fluent.InstalledInFIB, &gribi.NHOptions{Src: IPv4OuterSrc222, Dest: tunnelDsts[nhIdx], VrfName: TransitVRF222Str})
880887
nhgEntry, _ := gribi.NHGEntry(NHGBaseRepair+uint64(i), map[uint64]uint64{NHBaseRepair + nhIdx: 1}, defaultVRF, fluent.InstalledInFIB, &gribi.NHGOptions{BackupNHG: s2NHG})
881888
nhNhgEntries = append(nhNhgEntries, nhEntry, nhgEntry)
882889
nhIdx++
883890
} else {
891+
// Repair NHG points to two NHs.
884892
nh0, _ := gribi.NHEntry(NHBaseRepair+nhIdx, "DecapEncap", defaultVRF, fluent.InstalledInFIB, &gribi.NHOptions{Src: IPv4OuterSrc222, Dest: tunnelDsts[nhIdx], VrfName: TransitVRF222Str})
885893
nh1, _ := gribi.NHEntry(NHBaseRepair+nhIdx+1, "DecapEncap", defaultVRF, fluent.InstalledInFIB, &gribi.NHOptions{Src: IPv4OuterSrc222, Dest: tunnelDsts[nhIdx+1], VrfName: TransitVRF222Str})
886894
nhgEntry, _ := gribi.NHGEntry(NHGBaseRepair+uint64(i), map[uint64]uint64{NHBaseRepair + nhIdx: 1, NHBaseRepair + nhIdx + 1: 1}, defaultVRF, fluent.InstalledInFIB, &gribi.NHGOptions{BackupNHG: s2NHG})

0 commit comments

Comments
 (0)