Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update RT-2.13: Weighted-ECMP for IS-IS to not also use BGP #3316

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

ANISH-GOTTAPU
Copy link
Contributor

@ANISH-GOTTAPU ANISH-GOTTAPU commented Jul 22, 2024

Currently, OTG does not support IBGP with the same NextHOP across multiple devices. As a result, the DUT will only consider one neighborship. To address this, the test has been modified to use only ISIS, advertising the same route from three ISIS neighbors. The expected behavior is that traffic will load balance based on weights.

I've updated the test to use only the interface on the transmit end, ensuring compatibility with both HW and KNE (SW), as we lack a proto file that supports KNE with LAG on transmit. This change will not affect the weighted-ECMP since the receiving end is LAG only.

@ANISH-GOTTAPU ANISH-GOTTAPU requested review from a team as code owners July 22, 2024 11:23
@ANISH-GOTTAPU ANISH-GOTTAPU marked this pull request as draft July 22, 2024 11:23
@OpenConfigBot
Copy link

OpenConfigBot commented Jul 22, 2024

Pull Request Functional Test Report for #3316 / de67f2d

Virtual Devices

Device Test Test Documentation Job Raw Log
Arista cEOS status
RT-2.13: Weighted-ECMP for IS-IS
Cisco 8000E status
RT-2.13: Weighted-ECMP for IS-IS
Cisco XRd status
RT-2.13: Weighted-ECMP for IS-IS
Juniper ncPTX status
RT-2.13: Weighted-ECMP for IS-IS
Nokia SR Linux status
RT-2.13: Weighted-ECMP for IS-IS
Openconfig Lemming status
RT-2.13: Weighted-ECMP for IS-IS

Hardware Devices

Device Test Test Documentation Raw Log
Arista 7808 status
RT-2.13: Weighted-ECMP for IS-IS
Cisco 8808 status
RT-2.13: Weighted-ECMP for IS-IS
Juniper PTX10008 status
RT-2.13: Weighted-ECMP for IS-IS
Nokia 7250 IXR-10e status
RT-2.13: Weighted-ECMP for IS-IS

Help

@coveralls
Copy link

coveralls commented Jul 22, 2024

Pull Request Test Coverage Report for Build 12984770667

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 17.784%

Totals Coverage Status
Change from base Build 12983735582: 0.0%
Covered Lines: 2481
Relevant Lines: 13951

💛 - Coveralls

@self-maurya self-maurya requested a review from rohit-rp October 9, 2024 03:40
@rohit-rp rohit-rp self-assigned this Oct 25, 2024
@ANISH-GOTTAPU ANISH-GOTTAPU marked this pull request as ready for review November 21, 2024 07:22
@dplore dplore changed the title Otg rt2.13 update Update RT-2.13: Weighted-ECMP for IS-IS to not also use BGP Dec 20, 2024
@Swetha-haridasula Swetha-haridasula self-assigned this Jan 2, 2025
@ANISH-GOTTAPU ANISH-GOTTAPU requested a review from a team as a code owner January 2, 2025 08:52
@ram-mac ram-mac assigned ram-mac and unassigned rohit-rp and Swetha-haridasula Jan 17, 2025
@@ -249,17 +220,13 @@ func TestWeightedECMPForISIS(t *testing.T) {
}

top.Flows().Clear()
if deviations.ISISLoopbackRequired(dut) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ANISH-GOTTAPU , i see this deviation is removed from the code. Can you give reason for this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have updated the test not to use BGP anymore, so the deviation "ISISLoopbackRequired" is not needed.

Copy link
Contributor

@ram-mac ram-mac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did this test pass at least in the KNE environment?

d := &oc.Root{}
p1 := dut.Port(t, "port1")

i := d.GetOrCreateInterface(p1.Name())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here interface leaf is mandatory to be added. Use NewOCInterface for creating the new interface which would configure the right way. Similarly for other aggregate interfaces too.

// NewOCInterface returns a new *oc.Interface configured with these attributes.
func (a *Attributes) NewOCInterface(name string, dut *ondatra.DUTDevice) *oc.Interface {
return a.ConfigOCInterface(&oc.Interface{Name: ygot.String(name)}, dut)
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the code to use NewOCInterface

@@ -503,8 +461,8 @@ func configureDUT(t *testing.T, dut *ondatra.DUTDevice) []string {
gnmi.BatchDelete(b, gnmi.OC().Interface(aggID).Aggregation().MinLinks().Config())
gnmi.BatchReplace(b, gnmi.OC().Interface(aggID).Config(), agg)

p1 := dut.Port(t, fmt.Sprintf("port%d", (aggIdx*2)+1))
p2 := dut.Port(t, fmt.Sprintf("port%d", (aggIdx*2)+2))
p1 := dut.Port(t, fmt.Sprintf("port%d", (aggIdx*2)+2))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p1 is already used in this function above. Please use a different variable name here instead of reusing the same variable under the same function.
Instead of p1, p2 you could use something meaningful here above too

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the code accordingly.

Copy link
Contributor

@ram-mac ram-mac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/fptest virtual

@ram-mac ram-mac assigned ANISH-GOTTAPU and unassigned ram-mac Jan 21, 2025
@ANISH-GOTTAPU
Copy link
Contributor Author

Did this test pass at least in the KNE environment?

The test is passing with KNE environment but had to reduce the traffic rate and adjust tolerance accordingly. Attaching the log for your reference.

RT_2.13_kne_ceos.log

@ANISH-GOTTAPU ANISH-GOTTAPU requested a review from ram-mac January 27, 2025 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants