Skip to content

Adding gnmi resiliency test#5389

Draft
rohit-rp wants to merge 1 commit intoopenconfig:mainfrom
rohit-rp:gnmi_stress
Draft

Adding gnmi resiliency test#5389
rohit-rp wants to merge 1 commit intoopenconfig:mainfrom
rohit-rp:gnmi_stress

Conversation

@rohit-rp
Copy link
Copy Markdown
Contributor

  • Generate High gNMI Load (get)
  • Perform 1 LC OIR
  • While LC is rebooting perform gNMI replace
  • Operations should succeed once LC OIR completes

@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 introduces documentation for a new gNMI resiliency test case. The test is designed to verify system stability by performing gNMI operations while a line card undergoes an OIR (Online Insertion and Removal) event.

Highlights

  • New Test Documentation: Added a new README.md file outlining the procedure and requirements for the gNMI resiliency test.
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 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 counter productive. 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

Pull Request Functional Test Report for #5389 / 9cd3400

No tests identified for validation.

Help

Copy link
Copy Markdown
Contributor

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

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 new test plan for gNMI resiliency, detailing procedures for high load testing and line card resets. The review feedback identifies several necessary improvements to the README.md to comply with project standards: the summary needs to be a paragraph rather than a list, the procedure steps should use ordered numbering for easier mapping to test logs, and the 'Canonical OC' and 'paths' sections must be populated with relevant data. Additionally, the DUT platform requirement should be changed from FFF to MFF to reflect the hardware capabilities needed for line card OIR tests.

Comment on lines +3 to +8
## Summary

- Generate High gNMI Load (get)
- Perform 1 LC OIR
- While LC is rebooting perform gNMI replace
- Operations should succeed once LC OIR completes
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.

medium

The summary should be written as a few sentences or paragraphs describing the purpose and scope of the test, rather than a bulleted list of steps. This follows the structure defined in the test plan template.

References
  1. The test README.md should be structured following the test plan template, which specifies a paragraph-style summary. (link)

Comment on lines +21 to +24
### gNMI-1.7.1: Generate High gNMI Load

* Perform a `gNMI Get` at the root level every 60 seconds or less
* Set up gNMI subscribe with `SAMPLE` mode and sample interval of 10 second for interface counters
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.

medium

To ensure that each step in the test plan procedure corresponds clearly to a comment or t.Log in the code, please use an ordered list instead of bullet points. Note that in Markdown, it is acceptable to use '1.' for all items as the renderer will automatically create a sequential list, making manual sequencing unnecessary.

References
  1. Each step in the test plan procedure should correspond to a comment or t.Log in the code. Numbered steps facilitate this mapping. (link)
  2. In Markdown, it is acceptable to use '1.' for all items in an ordered list. The renderer will automatically create a sequential list, so manually sequencing the numbers in the source is not necessary.

Comment on lines +42 to +43
{
}
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.

medium

The 'Canonical OC' section must contain the JSON formatted OpenConfig configuration that is expected to be generated or used by the test. An empty JSON object is insufficient.

References
  1. At least one 'Canonical OC' heading must be present with JSON content in the README representing the expected configuration. (link)


## Required DUT platform

* FFF
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.

medium

The test procedure involves Line Card (LC) OIR and resets. This functionality typically requires a Modular Form Factor (MFF) device rather than a Fixed Form Factor (FFF) device.

Suggested change
* FFF
* MFF
References
  1. MFF is defined as a modular form factor device containing LINECARDs, which aligns with the test's intent to perform LC OIR. (link)

paths used for test setup are not listed here.

```yaml
paths:
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.

medium

The 'paths' section in the YAML coverage stanza is empty. Please list the OpenConfig paths intended to be covered by this test, such as interface counters mentioned in the procedure. Defining them here ensures they are tracked in a structured format.

References
  1. The yaml stanza defines the OC paths intended to be covered by this test and is used for deriving test coverage. (link)
  2. In README files, avoid duplicating lists of paths if they are already clearly defined in a structured format, such as a YAML section, within the same document.


### gNMI-1.7.2: Trigger Line Card Reset

* While the gNMI load is active, trigger a reset of one of the line cards
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

need to specify how to do this. Probably gnoi.System.Reboot and specifying subcomponet name of the selected LINECARD

ref: https://github.com/openconfig/gnoi/blob/37f53d3adb3f95346b8d3cf8828ce29a60acce96/system/system.proto#L114

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.

3 participants