Skip to content

[README] Improve and enhance gRIBI GET RPC test - #5986

Closed
ghost wants to merge 2 commits into
mainfrom
unknown repository
Closed

ghost wants to merge 2 commits into
mainfrom
unknown repository

Conversation

@ghost

@ghost ghost commented Sep 4, 2026

Copy link
Copy Markdown

System Test Plan see for more info: b/540866941

  • Objective: Validate that gRIBI Get requests accurately, completely, and efficiently return the current state of the gRIBI AFT, testing different Get request parameters.

  • Interfaces Used: gRIBI, gNMI

  • Expected Outcome Summary:

    1. Get All: After programming a diverse set of entries, a Get request for all network instances returns exactly those entries and their full parameters, matching what was programmed.
    2. Get Specific Network Instance: A Get request for a specific network instance returns only the entries within that instance.
    3. Get Non-Existent: A Get request for a non-existent network instance returns an empty result or appropriate indication, without error.
    4. Consistency with Telemetry: The results of Get operations are consistently aligned with the state reported via gNMI AFT streaming telemetry.
    5. (If Applicable) Filtering within Get: If the gRIBI Get API supports any form of filtering (e.g., by key, type), test that these filters work correctly.
    6. Performance: While not the primary focus of this section, Get operations on a large AFT should complete within a reasonable time.

@ghost
ghost self-requested a review as a code owner September 4, 2026 16:10
@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 updates the gRIBI Get RPC test documentation to provide a more comprehensive validation suite. It introduces structured test cases for verifying gRIBI Get operations under various conditions, including scale, multi-client scenarios, and specific network instance configurations, ensuring robust behavior of the gRIBI implementation.

Highlights

  • Expanded Test Coverage: The gRIBI Get RPC test plan has been significantly enhanced to include scale testing, non-leader client validation, AFT filtering, and negative test cases.
  • Updated Test Procedure: The test procedure now includes detailed steps for configuring multiple network instances, verifying telemetry consistency, and validating data plane programming with traffic.
  • Documentation Updates: Updated the OpenConfig path coverage and platform requirements to reflect the new test scenarios.
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. ↩

@ghost ghost changed the title Improve and enhance gRIBI GET RPC test [README] Improve and enhance gRIBI GET RPC test Sep 4, 2026
@OpenConfigBot

OpenConfigBot commented Sep 4, 2026 •

Copy link
Copy Markdown

Pull Request Functional Test Report for #5986 / 86c1629

Virtual Devices

Device Test Test Documentation Job Raw Log
Arista cEOS status
TE-5.1: gRIBI Get RPC
2984c1cd Log
Cisco 8000E status
TE-5.1: gRIBI Get RPC
050dcce8 Log
Cisco XRd status
TE-5.1: gRIBI Get RPC
fa038785 Log
Juniper ncPTX status
TE-5.1: gRIBI Get RPC
0002299e Log
Nokia SR Linux status
TE-5.1: gRIBI Get RPC
724d4274 Log
Openconfig Lemming status
TE-5.1: gRIBI Get RPC
845781d4 Log

Hardware Devices

Device Test Test Documentation Raw Log
Arista status
TE-5.1: gRIBI Get RPC
Cisco status
TE-5.1: gRIBI Get RPC
Juniper status
TE-5.1: gRIBI Get RPC
Nokia status
TE-5.1: gRIBI Get RPC

Help

@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 updates the test plan for the gRIBI Get RPC test in README.md by expanding the procedure into detailed test cases (TestID-5.1.1 through TestID-5.1.6) covering scale, non-leader clients, filtering by AFT type, specific network instances, unresolved next-hops, and negative scenarios. It also updates the OpenConfig path coverage and specifies FFF as the required DUT platform. The reviewer suggested resolving an ambiguity in the unresolved next-hop test case (TestID-5.1.5) to ensure deterministic testing, recommending a single expected behavior and using a deviation if implementations differ.

Comment thread feature/gribi/otg_tests/get_rpc_test/README.md Outdated
@ghost ghost added the systemTest Systematic Iron gate test plan label Sep 7, 2026
@navaneethyv
navaneethyv requested a review from ecb75 September 29, 2026 03:40
* Send the generated AFT entries via the gRIBI `Modify` RPC for `VRF-A`.
* **Step 3 - Validation with gNMI and Traffic:**
* Validate entries are installed through gNMI AFT telemetry at `/network-instances/network-instance[name=VRF-A]/afts/ipv6-unicast/ipv6-entry/state/prefix` before proceeding.
* Send traffic validating the programmed routes in `VRF-A` (e.g., encapsulated/tagged if topology supports).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I don't think we can support this with the requested testbed topology (2 links). Also I believe that this test was designed to be a pure gRIBI/control plane test and not intended to validate data traffic behavior.

* Ensure only the 1,000 IPv4 entries are returned, with no IPv6, NH, or NHG entries.
* **Step 2 - Validate NextHopGroup Filter:**
* Issue a `Get` RPC from gRIBI-A specifying the `DEFAULT` network instance and filtering for `NEXTHOP_GROUP` AFT entries.
* Ensure only the configured NextHopGroup(s) are returned.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

can we also perform the same validation for IPv6 and NEXTHOP?

* Issue a `Get` RPC from gRIBI-A specifying the `DEFAULT` network instance and requesting all AFT entries (AFT parameter set to ALL).
* Ensure that exactly 1,000 IPv4 entries, 1,000 IPv6 entries, and their associated NextHops and NextHopGroups are returned.
* Ensure all entries are returned with `fib_status` = `PROGRAMMED`.
* Measure the latency of the `Get` RPC response. Ensure it completes in a reasonable time.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I don't have a specific number to apply to this, but we should include an expectation for time to complete and ensure we do not exceed that value.

* With the configuration from TestID-5.1.1 still active, issue a `Get` RPC from gRIBI-B (the non-leader client) for all AFT entries in the `DEFAULT` network instance.
* Ensure that exactly 1,000 IPv4 entries, 1,000 IPv6 entries, and their associated NH/NHGs are returned.
* Ensure all entries are returned with `fib_status` = `PROGRAMMED`.
* Measure the latency of the `Get` RPC response.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Same general comment as 5.1.1 - we should measure and also validate against a specific time to complete value.

* Wait for gNMI AFT telemetry to reflect the state of this entry (should not be present or not programmed in the FIB).
* **Step 3 - Validate Get RPC:**
* Issue a `Get` RPC from gRIBI-A for the `DEFAULT` network instance.
* Ensure that the `IPEntry` for `203.0.113.0/24` is returned with `fib_status` = `NOT_PROGRAMMED` and `rib_status` = `PROGRAMMED`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Just a general comment, this is a change in behavior (but I believe the proper expected responses) versus the existing code. The logic needs to be modified to make sure we check fib and rib status properly.

@ghost ghost closed this Sep 30, 2026
@ghost
ghost deleted the get_rpc_test branch September 30, 2026 09:38
@ecb75
ecb75 requested review from a team and nflath and removed request for a team and nflath September 30, 2026 09:39
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

systemTest Systematic Iron gate test plan

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants