Skip to content

Conversation

@akalluru1
Copy link

@akalluru1 akalluru1 commented Dec 23, 2025

Multiple BGP tests verify the BGP RIB state streamed through following YANG path: /network-instances/network-instance/protocols/protocol/bgp/rib

Arista devices need explicit BGP RIB streaming config to send data for the above YANG path.

Following BGP tests verify the BGP RIB state streamed through following YANG path: /network-instances/network-instance/protocols/protocol/bgp/rib

Arista devices need explicit BGP RIB streaming config to send data for the above YANG path.
@akalluru1 akalluru1 requested review from a team as code owners December 23, 2025 02:37
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @akalluru1, 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 enhances the testing framework by introducing a mechanism to handle device-specific requirements for BGP RIB streaming. It adds a new deviation to explicitly configure BGP RIB streaming on platforms like Arista, which otherwise would not stream the necessary data for BGP tests. This ensures that BGP feature tests can run successfully across a wider range of network devices by accommodating their unique configuration needs.

Highlights

  • New Deviation for BGP RIB Streaming: Introduced a new deviation, bgp_rib_streaming_config_required, to address the need for explicit BGP RIB streaming configuration on certain devices, specifically Arista.
  • Conditional Configuration Application: Implemented a new function, DeviationBgpRibStreamingConfigRequired, within internal/cfgplugins/bgp.go that applies specific CLI commands to enable BGP RIB streaming for Arista devices when this deviation is active.
  • Integration into BGP Feature Tests: Updated multiple BGP feature tests across various directories to conditionally apply the BGP RIB streaming configuration if the device under test requires it, ensuring test compatibility with Arista platforms.
  • Metadata Schema Update: Modified the metadata.proto schema to include the new bgp_rib_streaming_config_required boolean field, and updated corresponding generated Go code.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

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

OpenConfigBot commented Dec 23, 2025

Pull Request Functional Test Report for #4955 / d730627

Virtual Devices

Device Test Test Documentation Job Raw Log
Arista cEOS status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Cisco 8000E status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Cisco XRd status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Juniper ncPTX status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Nokia SR Linux status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Openconfig Lemming status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment

Hardware Devices

Device Test Test Documentation Raw Log
Arista 7808 status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Cisco 8808 status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Juniper PTX10008 status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment
Nokia 7250 IXR-10e status
status
status
status
status
status
status
RT-7.8: BGP Policy Match Standard Community and Add Community Import/Export Policy
RT-7.5: BGP Policy - Match and Set Link Bandwidth Community
RT-1.30: BGP nested import/export policy attachment
RT-1.27: Static route to BGP redistribution
RT-1.11: BGP remove private AS
RT-1.31: BGP 3 levels of nested import/export policy with match-set-options
RT-1.29: BGP chained import/export policy attachment

Help

@akalluru1
Copy link
Author

@ram-mac Addressed your concerns in #4818 & created this review. Please review it. Thanks!

Copy link
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 deviation for Arista devices to enable BGP RIB streaming, which is necessary for certain BGP tests. The changes are applied consistently across several test files.

My review has identified a couple of areas for improvement:

  • In internal/cfgplugins/bgp.go, the new deviation helper function returns an error that is not handled by its callers. I've suggested modifying the function to fatal on error, which is a safer pattern.
  • The new deviation accessor in internal/deviations/deviations.go is missing a required issue tracker URL in its documentation, which violates the repository's style guide.

Overall, the changes are logical and well-structured. Addressing these points will enhance the code's robustness and adherence to project standards.

akalluru1 and others added 3 commits December 22, 2025 18:57
The function DeviationBgpRibStreamingConfigRequired is defined to return an error, but none of the call sites in this pull request check for it. This can lead to silent failures if the deviation is ever enabled for an unsupported vendor.

To make the code safer and more aligned with other test helpers, please consider changing the function to call t.Fatalf for unhandled vendors instead of returning an error. This will also simplify the call sites.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@ram-mac ram-mac self-assigned this Jan 5, 2026
@ram-mac
Copy link
Contributor

ram-mac commented Jan 6, 2026

/fptest virtual

@coveralls
Copy link

coveralls commented Jan 6, 2026

Pull Request Test Coverage Report for Build 20768297631

Details

  • 0 of 22 (0.0%) changed or added relevant lines in 3 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.01%) to 10.009%

Changes Missing Coverage Covered Lines Changed/Added Lines %
internal/deviations/deviations.go 0 3 0.0%
proto/metadata_go_proto/metadata.pb.go 0 5 0.0%
internal/cfgplugins/bgp.go 0 14 0.0%
Totals Coverage Status
Change from base Build 20766868488: -0.01%
Covered Lines: 2227
Relevant Lines: 22249

💛 - Coveralls

"unnecessary use of fmt.Sprintf" in internal/cfgplugins/bgp.go:685
remove `fmt.Sprintf`
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.

4 participants