Skip to content

DP-1.8: wait for QoS queue counter convergence - #6013

Open
aks03dev wants to merge 1 commit into
openconfig:mainfrom
b4firex:dp-1.8-qos-counter-convergence-public
Open

DP-1.8: wait for QoS queue counter convergence#6013
aks03dev wants to merge 1 commit into
openconfig:mainfrom
b4firex:dp-1.8-qos-counter-convergence-public

Conversation

@aks03dev

@aks03dev aks03dev commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Update the DP-1.8 two strict-priority queue traffic test to wait for DUT QoS queue counters to converge with the final OTG packet counters.

Motivation

After traffic stops, OTG flow counters can settle before the DUT publishes its final QoS queue telemetry. Reading the queue counters immediately may therefore return a stale sample and report a packet deficit, even when the traffic-loss validation succeeds.

The test previously read absolute DUT queue counters once per flow. This could also result in repeated reads for multiple flows mapped to the same queue.

Changes

  • Collect and sort the unique queues used by each test case.
  • Aggregate final OTG transmitted and received packet counters by queue before reading DUT telemetry.
  • Wait up to one minute for each queue's transmit counter to account for the received packets.
  • Wait up to one minute for each queue's drop counter to account for the transmitted-minus-received packets.
  • Read each absolute DUT queue counter once per unique queue.
  • Detect and report queue-counter resets.
  • Include the baseline, final value, deficit, and gNMI sample and receive timestamps when convergence fails.
  • Validate both transmit and dropped-packet queue counters.

Validation

  • gofmt -s: pass
  • Package compile, including vet: pass
  • Package: ./feature/qos/otg_tests/two_sp_queue_traffic_test

@aks03dev
aks03dev requested a review from a team as a code owner September 9, 2026 14:06
@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 improves the reliability of the DP-1.8 two strict-priority queue traffic test by introducing a convergence wait period for QoS telemetry. By ensuring that DUT queue counters have caught up with OTG flow counters before validation, the test avoids false negatives caused by reading stale telemetry samples.

Highlights

  • Queue Convergence Logic: Implemented a waiting mechanism for DUT QoS queue counters to ensure they align with OTG packet counters, preventing stale data reads.
  • Unique Queue Handling: Updated the test to collect and sort unique queues, ensuring each queue is processed and validated exactly once per test case.
  • Enhanced Error Reporting: Added detailed failure diagnostics, including baseline values, final values, deficits, and gNMI timestamps when convergence fails.
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

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 refactors the QoS traffic test to use a deduplicated and sorted list of unique queues instead of iterating over raw traffic flows. It introduces a robust helper function awaitQueueCounter that utilizes gnmi.Watch to wait for queue counters (TransmitPkts and DroppedPkts) to converge to their expected values after traffic, replacing immediate telemetry reads. Additionally, it updates error handling to fail fast using t.Fatalf and adds a validation check for dropped packet telemetry. There are no review comments to address, and the changes align well with the repository's style guidelines regarding eliminating static sleeps and using gnmi.Watch.

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