Skip to content

RT-2.18 Update - Adding gnmi Wait to check if traffic is stopped before checking the stats - #6055

Open
ANISH-GOTTAPU wants to merge 2 commits into
openconfig:mainfrom
open-traffic-generator:otg_rt_2.18_update
Open

ANISH-GOTTAPU wants to merge 2 commits into
openconfig:mainfrom
open-traffic-generator:otg_rt_2.18_update

Conversation

@ANISH-GOTTAPU

Copy link
Copy Markdown
Contributor

Users are observing the below issue:

isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeA_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeA_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeA_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeB_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeB_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeB_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeB_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeC_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeC_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R401_to_RoutersTypeC_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_Dynamic_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeA_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeB_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeB_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeB_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeB_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeC_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R501_to_RoutersTypeC_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_Dynamic_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeA_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeA_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeA_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeB_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeB_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeB_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeB_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeC_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeC_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R601_to_RoutersTypeC_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeA_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeA_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeA_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeA_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeB_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeB_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeB_4_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeC_1_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeC_2_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeC_3_Flow is 0, want > 0
isis_scale_multi_adjacency_test.go:257: outbytes for flow R701_to_RoutersTypeC_4_Flow is 0, want > 0
=== NAME TestISISScale/MultiAdjISISScale
isisscale.go:499: ===========Clearing Dut config===========
isisscale.go:493:
*** Stopping protocols on 10.39.11.234:40051...

--- FAIL: TestISISScale (619.63s)
--- FAIL: TestISISScale/MultiAdjISISScale (619.63s)
--- PASS: TestISISScale/MultiAdjISISScale/LSP_Count (5.71s)
--- PASS: TestISISScale/MultiAdjISISScale/Route_Count (3.97s)
--- FAIL: TestISISScale/MultiAdjISISScale/Traffic_Loss (77.26s)
FAIL

This fix will wait until the traffic is fully stopped and fetch the stats

@ANISH-GOTTAPU
ANISH-GOTTAPU requested a review from a team as a code owner September 17, 2026 06:04
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a race condition in the ISIS scale multi-adjacency test suite. By introducing a verification step that polls the transmission state of each flow, the test now ensures that traffic has successfully stopped before attempting to validate packet loss, preventing false negatives in the test results.

Highlights

  • Traffic Synchronization: Added a mandatory wait period using gnmi.Watch to ensure all traffic flows have completely stopped before proceeding to verify statistics.
  • Bug Fix: Resolved intermittent test failures in the ISIS scale multi-adjacency test where traffic statistics were being queried before the traffic had fully ceased.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@OpenConfigBot

OpenConfigBot commented Sep 17, 2026

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a check to wait for traffic to stop after calling StopTraffic in the ISIS scale multi-adjacency test. It iterates through the traffic flows and uses gnmi.Watch to verify that the transmit state becomes false. The reviewer recommends refactoring this sequential check into a concurrent helper function using goroutines to prevent test slowdowns, which aligns with the repository's performance guidelines against sequential telemetry validations.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants