From 9e47faeda0fb61b8b77d3570a67faa2d755c128d Mon Sep 17 00:00:00 2001 From: Abdelfatah EL ARFAOUI Date: Tue, 20 Jan 2026 13:01:08 +0000 Subject: [PATCH 1/4] BGP_SCALE_TEST: update metadata --- .../bgp_scale_test/bgp_scale_test.go | 22 +++++++++---------- .../bgp_scale_test/metadata.textproto | 2 -- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go b/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go index 2eac2774cc9..855da40c94f 100644 --- a/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go +++ b/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go @@ -556,7 +556,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.1.1 - Steady State - 7 v4/v6 IBGP sessions", dutSetup: dutSetup, - scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 7, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 6000, "v6IBGPRoutes": 6000, "v4Convergence": 6100, "v6Convergence": 6005}, + scale: map[string]uint32{"Port2": 150, "Port3": 150, "Port4": 7, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 2000, "v6IBGPRoutes": 2000, "v4Convergence": 2100, "v6Convergence": 2005}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities, validateLinkBWNotAdvertised}, verifyConvergence: measureConvergence, @@ -565,7 +565,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.2 - BGP Session Scale - 31 v4/v6 IBGP sessions", dutSetup: ateSetup, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 6000, "v6IBGPRoutes": 6000, "v4Convergence": 6100, "v6Convergence": 6005}, + scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 2000, "v6IBGPRoutes": 2000, "v4Convergence": 2100, "v6Convergence": 2005}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities}, verifyConvergence: measureConvergence, @@ -574,7 +574,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.3 - Session and BGP Route Scale without BGP events", dutSetup: ateSetup, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 4000, "v6IBGPRoutes": 4000, "v4Convergence": 4100, "v6Convergence": 4005}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities}, verifyConvergence: measureConvergence, @@ -583,7 +583,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.3.2 - Session and BGP Route Scale without BGP events with MSS configured", dutSetup: ateSetup, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 4000, "v6IBGPRoutes": 4000, "v4Convergence": 4100, "v6Convergence": 4005}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities}, verifyConvergence: measureConvergence, @@ -593,7 +593,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.4.1 - BGP Session and Route Scale with BGP events_Alter_BGP_attributes", dutSetup: nil, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 4000, "v6IBGPRoutes": 4000, "v4Convergence": 4100, "v6Convergence": 4005}, bgpEvents: bgpEvents, operation: "alterBGPAttributes", validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, @@ -604,7 +604,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.4.2 - BGP Session and Route Scale with BGP events_WithdrawRoutes", dutSetup: nil, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 4000, "v6IBGPRoutes": 4000, "v4Convergence": 4100, "v6Convergence": 4005}, bgpEvents: bgpEvents, operation: "withdrawRoutes", validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, @@ -615,7 +615,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.4.3 - BGP Session and Route Scale with BGP events_ResetBGPPeers", dutSetup: nil, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 4000, "v6IBGPRoutes": 4000, "v4Convergence": 4100, "v6Convergence": 4005}, bgpEvents: bgpEvents, operation: "resetBGPPeers", validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, @@ -633,8 +633,8 @@ func TestBGPScale(t *testing.T) { atePort2.numSubIntf = tc.scale["Port2"] atePort3.numSubIntf = tc.scale["Port3"] atePort4.numSubIntf = tc.scale["Port4"] - dutPort2.numSubIntf = 400 - dutPort3.numSubIntf = 400 + dutPort2.numSubIntf = 200 + dutPort3.numSubIntf = 200 dutPort4.numSubIntf = 31 atePort4.v4ISISRouteCount = tc.scale["v4ISISRoutes"] // ISIS v4 Scale atePort4.v6ISISRouteCount = tc.scale["v6ISISRoutes"] // ISIS v6 Scale @@ -768,7 +768,7 @@ func measureConvergence(t *testing.T, dut *ondatra.DUTDevice, afi []string, v4Ro peer = atePort1.IPv4 routeCount = v4RouteCount if isRouteWithdrawn { - routeCountWithdraw = 200 + routeCountWithdraw = 250 } case "ipv6": @@ -777,7 +777,7 @@ func measureConvergence(t *testing.T, dut *ondatra.DUTDevice, afi []string, v4Ro peer = atePort1.IPv6 routeCount = v6RouteCount if isRouteWithdrawn { - routeCountWithdraw = 100 + routeCountWithdraw = 150 } } gotSent := gnmi.Get(t, dut, prefixes.Sent().State()) diff --git a/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto b/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto index e7a94562530..023b12bad1a 100644 --- a/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto +++ b/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto @@ -42,10 +42,8 @@ platform_exceptions: { vendor: CISCO } deviations: { - ipv4_missing_enabled: true default_bgp_instance_name: "default" interface_ref_config_unsupported: true - interface_enabled: true interface_ref_interface_id_format: true missing_isis_interface_afi_safi_enable: true enable_multipath_under_afi_safi: true From 26f5fac2fae11aeefa6592cb774540f56fe0df39 Mon Sep 17 00:00:00 2001 From: Abdelfatah EL ARFAOUI Date: Tue, 20 Jan 2026 13:01:08 +0000 Subject: [PATCH 2/4] BGP_SCALE_TEST: update metadata --- .../bgp_scale_test/bgp_scale_test.go | 39 +++++++++++++------ .../bgp_scale_test/metadata.textproto | 2 - 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go b/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go index 2eac2774cc9..ab8b6c32b08 100644 --- a/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go +++ b/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go @@ -96,6 +96,21 @@ const ( defaultKeepaliveTimer = 80 defaultUpdateTimer = 30 defaultEnablePGGR = true + // BGP scale test related constants + v4ISISRoutes = 1000 + v6ISISRoutes = 1000 + defaultv4IBGPRoutes = 2000 + defaultv6IBGPRoutes = 2000 + defaultv4Convergence = 2100 + defaultv6Convergence = 2005 + defaultEBGPPeerCount = 150 + defaultIBGPPeerCount = 15 + scalev4IBGPRoutes = 8000 + scalev6IBGPRoutes = 8000 + scalev4Convergence = 8100 + scalev6Convergence = 8005 + scaleEBGPPeerCount = 200 + scaleIBGPPeerCount = 31 ) var ( @@ -556,7 +571,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.1.1 - Steady State - 7 v4/v6 IBGP sessions", dutSetup: dutSetup, - scale: map[string]uint32{"Port2": 200, "Port3": 200, "Port4": 7, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 6000, "v6IBGPRoutes": 6000, "v4Convergence": 6100, "v6Convergence": 6005}, + scale: map[string]uint32{"Port2": defaultEBGPPeerCount, "Port3": defaultEBGPPeerCount, "Port4": defaultIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": defaultv4IBGPRoutes, "v6IBGPRoutes": defaultv6IBGPRoutes, "v4Convergence": defaultv4Convergence, "v6Convergence": defaultv6Convergence}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities, validateLinkBWNotAdvertised}, verifyConvergence: measureConvergence, @@ -565,7 +580,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.2 - BGP Session Scale - 31 v4/v6 IBGP sessions", dutSetup: ateSetup, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 6000, "v6IBGPRoutes": 6000, "v4Convergence": 6100, "v6Convergence": 6005}, + scale: map[string]uint32{"Port2": scaleEBGPPeerCount, "Port3": scaleEBGPPeerCount, "Port4": scaleIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": defaultv4IBGPRoutes, "v6IBGPRoutes": defaultv6IBGPRoutes, "v4Convergence": defaultv4Convergence, "v6Convergence": defaultv6Convergence}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities}, verifyConvergence: measureConvergence, @@ -574,7 +589,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.3 - Session and BGP Route Scale without BGP events", dutSetup: ateSetup, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": scaleEBGPPeerCount, "Port3": scaleEBGPPeerCount, "Port4": scaleIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": scalev4IBGPRoutes, "v6IBGPRoutes": scalev6IBGPRoutes, "v4Convergence": scalev4Convergence, "v6Convergence": scalev6Convergence}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities}, verifyConvergence: measureConvergence, @@ -583,7 +598,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.3.2 - Session and BGP Route Scale without BGP events with MSS configured", dutSetup: ateSetup, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": scaleEBGPPeerCount, "Port3": scaleEBGPPeerCount, "Port4": scaleIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": scalev4IBGPRoutes, "v6IBGPRoutes": scalev6IBGPRoutes, "v4Convergence": scalev4Convergence, "v6Convergence": scalev6Convergence}, validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, verifyTelemetry: []func(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATEDevice, top gosnappi.Config, nbrList []*bgpNeighbor){verifyISISTelemetry, verifyBgpTelemetry, verifyBGPCapabilities}, verifyConvergence: measureConvergence, @@ -593,7 +608,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.4.1 - BGP Session and Route Scale with BGP events_Alter_BGP_attributes", dutSetup: nil, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": scaleEBGPPeerCount, "Port3": scaleEBGPPeerCount, "Port4": scaleIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": scalev4IBGPRoutes, "v6IBGPRoutes": scalev6IBGPRoutes, "v4Convergence": scalev4Convergence, "v6Convergence": scalev6Convergence}, bgpEvents: bgpEvents, operation: "alterBGPAttributes", validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, @@ -604,7 +619,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.4.2 - BGP Session and Route Scale with BGP events_WithdrawRoutes", dutSetup: nil, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": scaleEBGPPeerCount, "Port3": scaleEBGPPeerCount, "Port4": scaleIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": scalev4IBGPRoutes, "v6IBGPRoutes": scalev6IBGPRoutes, "v4Convergence": scalev4Convergence, "v6Convergence": scalev6Convergence}, bgpEvents: bgpEvents, operation: "withdrawRoutes", validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, @@ -615,7 +630,7 @@ func TestBGPScale(t *testing.T) { { name: "RT-1.65.4.3 - BGP Session and Route Scale with BGP events_ResetBGPPeers", dutSetup: nil, - scale: map[string]uint32{"Port2": 400, "Port3": 400, "Port4": 31, "v4ISISRoutes": 1000, "v6ISISRoutes": 1000, "v4IBGPRoutes": 250000, "v6IBGPRoutes": 150000, "v4Convergence": 250100, "v6Convergence": 150005}, + scale: map[string]uint32{"Port2": scaleEBGPPeerCount, "Port3": scaleEBGPPeerCount, "Port4": scaleIBGPPeerCount, "v4ISISRoutes": v4ISISRoutes, "v6ISISRoutes": v6ISISRoutes, "v4IBGPRoutes": scalev4IBGPRoutes, "v6IBGPRoutes": scalev6IBGPRoutes, "v4Convergence": scalev4Convergence, "v6Convergence": scalev6Convergence}, bgpEvents: bgpEvents, operation: "resetBGPPeers", validate: []func(t *testing.T, dev *ondatra.Device){verifyPortsUp}, @@ -633,9 +648,9 @@ func TestBGPScale(t *testing.T) { atePort2.numSubIntf = tc.scale["Port2"] atePort3.numSubIntf = tc.scale["Port3"] atePort4.numSubIntf = tc.scale["Port4"] - dutPort2.numSubIntf = 400 - dutPort3.numSubIntf = 400 - dutPort4.numSubIntf = 31 + dutPort2.numSubIntf = scaleEBGPPeerCount + dutPort3.numSubIntf = scaleEBGPPeerCount + dutPort4.numSubIntf = scaleIBGPPeerCount atePort4.v4ISISRouteCount = tc.scale["v4ISISRoutes"] // ISIS v4 Scale atePort4.v6ISISRouteCount = tc.scale["v6ISISRoutes"] // ISIS v6 Scale v4IBGPRouteCount = tc.scale["v4IBGPRoutes"] // iBGP v4Scale @@ -768,7 +783,7 @@ func measureConvergence(t *testing.T, dut *ondatra.DUTDevice, afi []string, v4Ro peer = atePort1.IPv4 routeCount = v4RouteCount if isRouteWithdrawn { - routeCountWithdraw = 200 + routeCountWithdraw = 250 } case "ipv6": @@ -777,7 +792,7 @@ func measureConvergence(t *testing.T, dut *ondatra.DUTDevice, afi []string, v4Ro peer = atePort1.IPv6 routeCount = v6RouteCount if isRouteWithdrawn { - routeCountWithdraw = 100 + routeCountWithdraw = 150 } } gotSent := gnmi.Get(t, dut, prefixes.Sent().State()) diff --git a/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto b/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto index e7a94562530..023b12bad1a 100644 --- a/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto +++ b/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto @@ -42,10 +42,8 @@ platform_exceptions: { vendor: CISCO } deviations: { - ipv4_missing_enabled: true default_bgp_instance_name: "default" interface_ref_config_unsupported: true - interface_enabled: true interface_ref_interface_id_format: true missing_isis_interface_afi_safi_enable: true enable_multipath_under_afi_safi: true From b9a4c4a25c73a0dc2bfe25a79c87b9026166426e Mon Sep 17 00:00:00 2001 From: Abdelfatah EL ARFAOUI Date: Tue, 20 Jan 2026 13:01:08 +0000 Subject: [PATCH 3/4] BGP_SCALE_TEST: update metadata From 8a76bf757a8f3b4b58068d69b5938e64045fa295 Mon Sep 17 00:00:00 2001 From: Abdelfatah EL ARFAOUI Date: Sat, 9 May 2026 23:30:11 +0000 Subject: [PATCH 4/4] Fix interface.go and update BGP Scale --- .../bgp_scale_test/bgp_scale_test.go | 20 +++++++++++-------- .../bgp_scale_test/metadata.textproto | 11 +++++----- internal/cfgplugins/bgp.go | 1 - internal/cfgplugins/interface.go | 10 +++++----- .../otg_config_helpers/otgbgphelpers.go | 2 +- 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go b/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go index ab8b6c32b08..1235ed7c8b7 100644 --- a/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go +++ b/feature/bgp/otg_tests/bgp_scale_test/bgp_scale_test.go @@ -1072,12 +1072,12 @@ func verifyPortsUp(t *testing.T, dev *ondatra.Device) { for _, p := range dev.Ports() { status := gnmi.Get(t, dev, gnmi.OC().Interface(p.Name()).OperStatus().State()) if want := oc.Interface_OperStatus_UP; status != want { - t.Errorf("%s Status: got %v, want %v", p, status, want) + t.Fatalf("%s Status: got %v, want %v", p, status, want) } } status := gnmi.Get(t, dev, gnmi.OC().Interface(aggIDs[len(aggIDs)-1]).OperStatus().State()) if want := oc.Interface_OperStatus_UP; status != want { - t.Errorf("%s Status: got %v, want %v", aggIDs[len(aggIDs)-1], status, want) + t.Fatalf("%s Status: got %v, want %v", aggIDs[len(aggIDs)-1], status, want) } } @@ -1217,7 +1217,7 @@ func verifyISISTelemetry(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.ATED t.Logf("Break from Loop:Iteration %d: Number of established IS-IS sessions: UP %v DOWN %v Configured %v", i, counter, counter2, atePort4.numSubIntf) break } - t.Logf("Iteration %d: Number of established IS-IS sessions: %v %v", i, counter, counter2) + t.Logf("Iteration %d: Number of established IS-IS sessions: UP %v DOWN %v Configured %d", i, counter, counter2, atePort4.numSubIntf) time.Sleep(30 * time.Second) } if counter != int(atePort4.numSubIntf) { @@ -1682,15 +1682,18 @@ func configureDUTBGP(t *testing.T, as uint32, nbrs []*bgpNeighbor, dut *ondatra. bgp := niProto.GetOrCreateBgp() // Global Configuration using cfgplugins - cfgplugins.ConfigureGlobal(bgp, dut, + globalOpts := []cfgplugins.GlobalOption{ cfgplugins.WithAS(as), cfgplugins.WithRouterID(dutLoopback.IPv4), cfgplugins.WithGlobalGracefulRestart(true, 120, 300), cfgplugins.WithGlobalAfiSafiEnabled(oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST, true), cfgplugins.WithGlobalAfiSafiEnabled(oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST, true), cfgplugins.WithExternalRouteDistance(9), - cfgplugins.WithGlobalEBGPMultipath(64), - ) + } + if dut.Vendor() != ondatra.JUNIPER { + globalOpts = append(globalOpts, cfgplugins.WithGlobalEBGPMultipath(64)) + } + cfgplugins.ConfigureGlobal(bgp, dut, globalOpts...) if deviations.BgpDistanceOcPathUnsupported(dut) { distanceConfigv4 = fmt.Sprintf("router bgp %d instance BGP\naddress-family %s unicast\ndistance bgp %d 200 200\n", dutAS, "ipv4", 9) distanceConfigv6 = fmt.Sprintf("router bgp %d instance BGP\naddress-family %s unicast\ndistance bgp %d 200 200\n", dutAS, "ipv6", 9) @@ -1716,7 +1719,7 @@ func configureDUTBGP(t *testing.T, as uint32, nbrs []*bgpNeighbor, dut *ondatra. } peerGroup := bgp.GetOrCreatePeerGroup(pg.pgName) - cfgplugins.ConfigurePeerGroup(peerGroup, dut, + pgOpts := []cfgplugins.PeerGroupOption{ cfgplugins.WithPeerAS(pg.pgAS), cfgplugins.WithPGTimers(pg.pgHoldTimer, pg.pgKeepaliveTimer, pg.pgUpdateTimer), cfgplugins.WithPGDescription(pg.pgName), @@ -1726,7 +1729,8 @@ func configureDUTBGP(t *testing.T, as uint32, nbrs []*bgpNeighbor, dut *ondatra. cfgplugins.WithPGSendCommunity([]oc.E_Bgp_CommunityType{oc.Bgp_CommunityType_STANDARD, oc.Bgp_CommunityType_EXTENDED}), cfgplugins.WithPGAfiSafiEnabled(pg.pgAFISAFI, true, true), cfgplugins.ApplyPGRoutingPolicy(pg.pgImportPolicy, pg.pgExportPolicy, dut.Vendor() == ondatra.CISCO || delLinkbwCLIConfig != ""), - ) + } + cfgplugins.ConfigurePeerGroup(peerGroup, dut, pgOpts...) } for _, nbr := range nbrs { diff --git a/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto b/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto index 023b12bad1a..a588dec0336 100644 --- a/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto +++ b/feature/bgp/otg_tests/bgp_scale_test/metadata.textproto @@ -13,15 +13,15 @@ platform_exceptions: { omit_l2_mtu: true skip_tcp_negotiated_mss_check: true interface_enabled: true + ipv4_missing_enabled: true default_network_instance: "default" isis_instance_enabled_required: true bgp_default_policy_unsupported: true - require_routed_subinterface_0: true - explicit_interface_in_default_vrf: false route_policy_under_afi_unsupported: true default_bgp_instance_name: "BGP" isis_mpls_unsupported: true explicit_port_speed: true + isis_lsp_tlvs_oc_unsupported: true } } platform_exceptions: { @@ -30,6 +30,7 @@ platform_exceptions: { } deviations: { isis_level_enabled: true + interface_ref_interface_id_format: true bgp_max_multipath_paths_unsupported: true multipath_unsupported_neighbor_or_afisafi: true route_policy_under_afi_unsupported: true @@ -51,8 +52,6 @@ platform_exceptions: { community_member_regex_unsupported: true default_route_policy_unsupported: true bgp_conditions_match_community_set_unsupported: true - skip_isis_set_level: true - skip_isis_set_metric_style_type: true bgp_graceful_restart_under_afi_safi_unsupported: true bgp_gr_helper_disable_unsupported: true skip_bgp_send_community_type: true @@ -68,8 +67,8 @@ platform_exceptions: { } deviations: { explicit_interface_in_default_vrf: true - interface_enabled: true - isis_interface_afi_unsupported: true + ipv4_missing_enabled: true + aggregate_atomic_update: true missing_isis_interface_afi_safi_enable: true missing_value_for_defaults: true require_routed_subinterface_0: true diff --git a/internal/cfgplugins/bgp.go b/internal/cfgplugins/bgp.go index 1c5639e87e4..0b5d12f21ad 100644 --- a/internal/cfgplugins/bgp.go +++ b/internal/cfgplugins/bgp.go @@ -1340,7 +1340,6 @@ func WithPGMultipath(pgName string, enableMultipath bool) PeerGroupOption { // BGP multipath enable/disable at the peer-group level not required b/376799583 fmt.Printf("PeerGroup %s: BGP Multipath enable/disable not required under Peer-group by %s hence skipping", pgName, dut.Vendor()) case ondatra.JUNIPER: - pgaf.GetOrCreateUseMultiplePaths().Enabled = ygot.Bool(true) pg.GetOrCreateUseMultiplePaths().Enabled = ygot.Bool(true) pg.GetOrCreateUseMultiplePaths().GetOrCreateEbgp().SetAllowMultipleAs(true) default: diff --git a/internal/cfgplugins/interface.go b/internal/cfgplugins/interface.go index 2e924dc7ae8..52504c0422b 100644 --- a/internal/cfgplugins/interface.go +++ b/internal/cfgplugins/interface.go @@ -901,7 +901,7 @@ func AddSubInterface(t *testing.T, dut *ondatra.DUTDevice, b *gnmi.SetBatch, i * if s.IPv4Address != nil { sub.GetOrCreateIpv4().GetOrCreateAddress(s.IPv4Address.String()).PrefixLength = ygot.Uint8(uint8(s.IPv4PrefixLen)) - if deviations.InterfaceEnabled(dut) && !deviations.IPv4MissingEnabled(dut) { + if deviations.IPv4MissingEnabled(dut) { sub.GetOrCreateIpv4().SetEnabled(true) } } @@ -924,7 +924,7 @@ func NewAggregateInterface(t *testing.T, dut *ondatra.DUTDevice, b *gnmi.SetBatc aggID := l.LagName agg := l.NewOCInterface(aggID, dut) agg.Type = oc.IETFInterfaces_InterfaceType_ieee8023adLag - if !deviations.IPv4MissingEnabled(dut) && len(l.SubInterfaces) == 0 { + if deviations.IPv4MissingEnabled(dut) { agg.GetSubinterface(0).GetOrCreateIpv4().SetEnabled(true) agg.GetSubinterface(0).GetOrCreateIpv6().SetEnabled(true) } @@ -935,7 +935,6 @@ func NewAggregateInterface(t *testing.T, dut *ondatra.DUTDevice, b *gnmi.SetBatc } agg.GetOrCreateAggregation().LagType = l.AggType - gnmi.BatchReplace(b, gnmi.OC().Interface(aggID).Config(), agg) // Set LACP mode to ACTIVE for the LAG interface if l.LacpParams != nil { @@ -948,6 +947,7 @@ func NewAggregateInterface(t *testing.T, dut *ondatra.DUTDevice, b *gnmi.SetBatc lacpPath := gnmi.OC().Lacp().Interface(aggID) gnmi.BatchReplace(b, lacpPath.Config(), lacp) } + gnmi.BatchReplace(b, gnmi.OC().Interface(aggID).Config(), agg) gnmi.BatchDelete(b, gnmi.OC().Interface(aggID).Aggregation().MinLinks().Config()) l.PopulateOndatraPorts(t, dut) @@ -1094,7 +1094,7 @@ func ConfigureSubinterfaceIPs(s *oc.Interface_Subinterface, dut *ondatra.DUTDevi // IPv4 Configuration if ipv4Addr != "" { s4 := s.GetOrCreateIpv4() - if deviations.InterfaceEnabled(dut) && !deviations.IPv4MissingEnabled(dut) { + if deviations.IPv4MissingEnabled(dut) { s4.Enabled = ygot.Bool(true) } s4a := s4.GetOrCreateAddress(ipv4Addr) @@ -1104,7 +1104,7 @@ func ConfigureSubinterfaceIPs(s *oc.Interface_Subinterface, dut *ondatra.DUTDevi // IPv6 Configuration if ipv6Addr != "" { s6 := s.GetOrCreateIpv6() - if deviations.InterfaceEnabled(dut) { + if deviations.IPv4MissingEnabled(dut) { s6.Enabled = ygot.Bool(true) } s6a := s6.GetOrCreateAddress(ipv6Addr) diff --git a/internal/otg_helpers/otg_config_helpers/otgbgphelpers.go b/internal/otg_helpers/otg_config_helpers/otgbgphelpers.go index e040e694352..a28a296f789 100644 --- a/internal/otg_helpers/otg_config_helpers/otgbgphelpers.go +++ b/internal/otg_helpers/otg_config_helpers/otgbgphelpers.go @@ -469,7 +469,7 @@ func CreateBGPASPath(asNumbers []uint32, segmentType gosnappi.BgpAsPathSegmentTy func ConfigureISIS(t *testing.T, dev gosnappi.Device, attrs *ISISAttrs) gosnappi.DeviceIsisRouter { t.Helper() isis := dev.Isis().SetName(attrs.Name).SetSystemId(attrs.SystemID) - isis.Basic().SetHostname(attrs.Hostname).SetLearnedLspFilter(true) + isis.Basic().SetHostname(attrs.Hostname).SetLearnedLspFilter(false) isis.Advanced().SetAreaAddresses(attrs.AreaAddresses) for _, intfAttrs := range attrs.Interfaces {