Skip to content

Enhance README with BGP and static route tests#5540

Open
chitadi wants to merge 3 commits into
mainfrom
chitadi-patch-4
Open

Enhance README with BGP and static route tests#5540
chitadi wants to merge 3 commits into
mainfrom
chitadi-patch-4

Conversation

@chitadi
Copy link
Copy Markdown
Contributor

@chitadi chitadi commented Jun 4, 2026

Added verification steps for BGP and static route redistribution persistence after process restart, including traffic validation and configuration parameters.

Added verification steps for BGP and static route redistribution persistence after process restart, including traffic validation and configuration parameters.
@chitadi chitadi requested a review from a team as a code owner June 4, 2026 14:19
@OpenConfigBot
Copy link
Copy Markdown

OpenConfigBot commented Jun 4, 2026

Pull Request Functional Test Report for #5540 / 6f72969

Virtual Devices

Device Test Test Documentation Job Raw Log
Arista cEOS status
RT-1.28: BGP to IS-IS redistribution
1f914c9a Log
Cisco 8000E status
RT-1.28: BGP to IS-IS redistribution
f0c21cbb Log
Cisco XRd status
RT-1.28: BGP to IS-IS redistribution
91374e4d Log
Juniper ncPTX status
RT-1.28: BGP to IS-IS redistribution
5d13807f Log
Nokia SR Linux status
RT-1.28: BGP to IS-IS redistribution
03aea758 Log
Openconfig Lemming status
RT-1.28: BGP to IS-IS redistribution
ae03471d Log

Hardware Devices

Device Test Test Documentation Raw Log
Arista 7808 status
RT-1.28: BGP to IS-IS redistribution
Cisco 8808 status
RT-1.28: BGP to IS-IS redistribution
Juniper PTX10008 status
RT-1.28: BGP to IS-IS redistribution
Nokia 7250 IXR-10e status
RT-1.28: BGP to IS-IS redistribution

Help

@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 enhances the existing documentation for BGP and IS-IS redistribution tests. It introduces a detailed procedure for verifying that redistributed routes remain persistent following a process restart on the device under test, ensuring traffic continuity and correct routing table state.

Highlights

  • Documentation Update: Added comprehensive verification steps for BGP and static route redistribution persistence after a routing process restart.
  • Test Coverage: Included new configuration parameters and OpenConfig path coverage for static routes and IS-IS link-state database metrics.
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.

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 adds a new test procedure to verify BGP and Static redistribution persistence after a process restart, including a Canonical OC JSON configuration and updated parameter coverage paths. The reviewer correctly identified that the proposed IPv4 prefixes (192.168.10.0/25 and 192.168.10.0/28) violate the repository style guide, which restricts the use of common local private ranges. These should be updated to use RFC 5737 compliant blocks as suggested.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +126 to +147
* Configure a static route on the DUT for IPv4 prefix ```192.168.10.0/25```
with the next-hop set to ATE port-2.
* /network-instances/network-instance/protocols/protocol/static-routes/static/config/prefix
* Advertise a more-specific IPv4 prefix ```192.168.10.0/28``` via BGP from
ATE port-1, ensuring the route resolves to the same next-hop as the
static route.
* Configure source protocol ```STATIC``` to be redistributed to ```ISIS```.
* /network-instances/network-instance/table-connections/table-connection/config/src-protocol
* Verify on the ATE that both prefixes (```192.168.10.0/25``` from Static
and ```192.168.10.0/28``` from BGP) are received and present in the
IS-IS link-state database.
* /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state/prefix
* /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state/metric
* Restart the routing process on the DUT (e.g., via gNOI or system reboot).
* Wait for the BGP and IS-IS sessions to fully reconverge.
* Validate that the IS-IS on ATE still receives both the redistributed
Static prefix (```192.168.10.0/25```) and the redistributed BGP prefix
(```192.168.10.0/28```) without any loss.
* /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state/prefix
* Initiate traffic from ATE port-1 to the DUT destined to both prefixes
(```192.168.10.0/25``` and ```192.168.10.0/28```).
* Validate that the traffic is successfully received on ATE port-2.
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 IPv4 prefixes 192.168.10.0/25 and 192.168.10.0/28 belong to the 192.168.0.0/16 range, which is a common local private range. According to the Repository Style Guide (lines 63-69), we must use RFC 5737 blocks (such as 192.0.2.0/24, 198.51.100.0/24, or 203.0.113.0/24) and avoid using common local private ranges like 192.168.0.0/16.

Please update these prefixes to use a compliant RFC 5737 block, such as 198.51.100.0/25 and 198.51.100.0/28.

*   Configure a static route on the DUT for IPv4 prefix 198.51.100.0/25
    with the next-hop set to ATE port-2.
    *   /network-instances/network-instance/protocols/protocol/static-routes/static/config/prefix
*   Advertise a more-specific IPv4 prefix 198.51.100.0/28 via BGP from
    ATE port-1, ensuring the route resolves to the same next-hop as the
    static route.
*   Configure source protocol STATIC to be redistributed to ISIS.
    *   /network-instances/network-instance/table-connections/table-connection/config/src-protocol
*   Verify on the ATE that both prefixes (198.51.100.0/25 from Static
    and 198.51.100.0/28 from BGP) are received and present in the
    IS-IS link-state database.
    *   /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state/prefix
    *   /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state/metric
*   Restart the routing process on the DUT (e.g., via gNOI or system reboot).
*   Wait for the BGP and IS-IS sessions to fully reconverge.
*   Validate that the IS-IS on ATE still receives both the redistributed
    Static prefix (198.51.100.0/25) and the redistributed BGP prefix
    (198.51.100.0/28) without any loss.
    *   /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/extended-ipv4-reachability/prefixes/prefix/state/prefix
*   Initiate traffic from ATE port-1 to the DUT destined to both prefixes
    (198.51.100.0/25 and 198.51.100.0/28).
*   Validate that the traffic is successfully received on ATE port-2.
References
  1. IPv4 network assignments must use RFC 5737 blocks (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24) or 100.64.0.0/10, 198.18.0.0/15, and must not use common local private ranges like 192.168.0.0/16. (link)

Comment on lines +172 to +184
"prefix": "192.168.10.0/25",
"config": {
"prefix": "192.168.10.0/25"
},
"next-hops": {
"next-hop": [
{
"index": "0",
"config": {
"index": "0",
"next-hop": "192.168.10.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

The Canonical OC JSON block also uses the non-compliant 192.168.10.0/25 prefix and 192.168.10.1 next-hop address. Please update these to match the compliant RFC 5737 block suggested above (e.g., 198.51.100.0/25 and 198.51.100.1).

Suggested change
"prefix": "192.168.10.0/25",
"config": {
"prefix": "192.168.10.0/25"
},
"next-hops": {
"next-hop": [
{
"index": "0",
"config": {
"index": "0",
"next-hop": "192.168.10.1"
}
}
"prefix": "198.51.100.0/25",
"config": {
"prefix": "198.51.100.0/25"
},
"next-hops": {
"next-hop": [
{
"index": "0",
"config": {
"index": "0",
"next-hop": "198.51.100.1"
}
}
]
}
References
  1. IPv4 network assignments must use RFC 5737 blocks (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24) or 100.64.0.0/10, 198.18.0.0/15, and must not use common local private ranges like 192.168.0.0/16. (link)

chitadi added 2 commits June 4, 2026 21:52
Updated references from 'extended-ipv6-reachability' to 'ipv6-reachability' in test documentation for IS-IS redistribution.
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