Skip to content

TestID-16.4: Fixes for export policy, drain policy, and prefix validation#5468

Open
nakulnayak wants to merge 2 commits into
openconfig:mainfrom
nakulnayak:nnayak-testId-16.4-patch-1
Open

TestID-16.4: Fixes for export policy, drain policy, and prefix validation#5468
nakulnayak wants to merge 2 commits into
openconfig:mainfrom
nakulnayak:nnayak-testId-16.4-patch-1

Conversation

@nakulnayak
Copy link
Copy Markdown

This PR adds a few fixes for export policy, drain policy, and prefix validation in the gRIBI to BGP redistribution fpt.

  • Apply BGP export policy to TEST_VRF instead of DEFAULT network instance, so the policy is attached to the actual BGP neighbor
  • Use gnmi.Replace instead of gnmi.Update when prepending drain policy to the export chain, since Update merges with the existing leaf-list and preserves the original policy ordering
  • Match validated prefix against the actual gRIBI route (198.51.100.1/32) instead of the aggregate prefix-set (198.51.100.0/26). This is similar to what is done on lines 641-643 in the function "TestGRIBIBGPRedistribution".

…in gRIBI to BGP redistribution test

 - Apply BGP export policy to TEST_VRF instead of DEFAULT network instance,
   so the policy is attached to the actual BGP neighbor
 - Use gnmi.Replace instead of gnmi.Update when prepending drain policy to
   the export chain, since Update merges with the existing leaf-list and
   preserves the original policy ordering
 - Match validated prefix against the actual gRIBI route (198.51.100.1/32)
   instead of the aggregate prefix-set (198.51.100.0/26)
@nakulnayak nakulnayak requested a review from a team as a code owner May 14, 2026 20:01
@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 targeted fixes to the gRIBI to BGP redistribution test suite. The changes ensure that BGP export policies are correctly scoped to the intended VRF, improve the reliability of policy chain updates by using atomic replacements, and enhance the accuracy of prefix validation by checking against specific route definitions.

Highlights

  • BGP Export Policy Configuration: Updated the export policy attachment to target the specific TEST_VRF network instance instead of the default network instance.
  • Drain Policy Update: Switched from gnmi.Update to gnmi.Replace when applying the drain policy to ensure correct policy ordering and prevent merging issues.
  • Prefix Validation Logic: Refined the validation logic to match against the specific gRIBI route prefix rather than an aggregate prefix-set.
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.

@google-cla
Copy link
Copy Markdown

google-cla Bot commented May 14, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@OpenConfigBot
Copy link
Copy Markdown

OpenConfigBot commented May 14, 2026

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 updates the BGP redistribution test to use a specific VRF name instead of the default network instance and changes the export policy update method from gnmi.Update to gnmi.Replace. It also refactors the IPv4 prefix validation logic to parse a combined prefix string. Feedback was provided regarding the efficiency of parsing the prefix string inside a loop, suggesting it be moved outside for better performance.

Comment on lines +514 to +516
parts := strings.Split(routePrefix, "/")
prefixAddr := parts[0]
prefixLen, _ := strconv.Atoi(parts[1])
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

Parsing the routePrefix constant inside the loop is inefficient as it performs string splitting and integer conversion on every iteration. Since routePrefix is a constant, this parsing should be performed once outside the loop to improve performance and readability.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

agreed, done

…in gRIBI to BGP redistribution test

 - Apply BGP export policy to TEST_VRF instead of DEFAULT network instance,
   so the policy is attached to the actual BGP neighbor
 - Use gnmi.Replace instead of gnmi.Update when prepending drain policy to
   the export chain, since Update merges with the existing leaf-list and
   preserves the original policy ordering
 - Match validated prefix against the actual gRIBI route (198.51.100.1/32)
   instead of the aggregate prefix-set (198.51.100.0/26)
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