Skip to content

Add FNT test plan (README.md) for RT-1.111 BGP Autonomous System Conederations (RFC 5065) - #6087

Open
isnehashankar43 wants to merge 34 commits into
openconfig:mainfrom
isnehashankar43:rt-1.111-bgp-confederation-readme
Open

isnehashankar43 wants to merge 34 commits into
openconfig:mainfrom
isnehashankar43:rt-1.111-bgp-confederation-readme

Conversation

@isnehashankar43

Copy link
Copy Markdown
Contributor

No description provided.

@isnehashankar43
isnehashankar43 requested review from a team as code owners September 24, 2026 09:31
@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 a new feature profile test plan for BGP Autonomous System Confederations (RFC 5065). The changes include the documentation of the test procedure, configuration requirements, and validation criteria for verifying confederation-eBGP peering, AS_CONFED_SEQUENCE propagation, and boundary stripping behavior. The test is designed to run on a DUT-DUT-ATE topology to ensure standard compliance and data plane integrity.

Highlights

  • New Test Plan Added: Added a comprehensive test plan (README.md) for BGP Autonomous System Confederations (RFC 5065) to validate configuration, telemetry, and path attribute propagation.
  • Test Registry Update: Registered the new RT-1.111 test plan in the global test registry.
  • Metadata Configuration: Created the metadata.textproto file for the new BGP confederation test suite.
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. ↩

@OpenConfigBot

OpenConfigBot commented Sep 24, 2026 •

Copy link
Copy Markdown

Pull Request Functional Test Report for #6087 / 23b94ae

Virtual Devices

Device Test Status Test Documentation Job Raw Log
Arista cEOS status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Cisco 8000E status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Cisco XRd status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Juniper ncPTX status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Nokia SR Linux status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Openconfig Lemming status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)

Hardware Devices

Device Test Status Test Documentation Raw Log
Arista status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Cisco status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Juniper status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)
Nokia status
RT-1.111: pending authorization
RT-1.111: BGP Autonomous System Confederations (RFC 5065)

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 introduces a new test plan for BGP Autonomous System Confederations (RFC 5065) under the feature/bgp/confederation/otg_tests/bgp_confederation_test/ directory, including a detailed README, metadata, and registry entry. The review feedback correctly points out that the new README.md is missing a mandatory ### Cleanup section to specify how the DUT is restored to its baseline operational state, violating the repository style guide.

@isnehashankar43

Copy link
Copy Markdown
Contributor Author

/gemini summary

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

This pull request adds a new feature profile test plan for BGP Autonomous System Confederations (RFC 5065). The changes document the test procedure, configuration requirements, and validation criteria for verifying confederation-eBGP peering, AS_CONFED_SEQUENCE propagation, and boundary stripping behavior. The test is designed to run on a DUT-DUT-ATE topology to ensure standard compliance and data plane integrity.

Highlights

  • New Test Plan: Added a comprehensive test plan (README.md) for BGP Autonomous System Confederations (RFC 5065) to validate configuration, telemetry, and path attribute propagation.
  • Test Registry Update: Registered the new RT-1.111 test plan in the global test registry.
  • Metadata Configuration: Created the metadata.textproto file for the new BGP confederation test suite.
Activity
  • Gemini Code Assist provided an initial summary of the pull request.
  • OpenConfigBot generated a functional test report for the new test plan.
  • Author requested a summary of the pull request.
  • Gemini Code Assist identified a missing cleanup section in the test plan README and provided a suggestion for improvement.

@isnehashankar43

Copy link
Copy Markdown
Contributor Author

@Abdelfatah26

Comment thread feature/bgp/confederation/otg_tests/bgp_confederation_test/metadata.textproto Outdated
Sneha Shankar and others added 8 commits September 24, 2026 16:15
Generated by 'make sync-test-registry' to fix the 'Check Test Registry
Sync' CI check.
Address review feedback on PR openconfig#6087:
- Use one DUT (Member-AS 64501, confederation ID 64500, member-as
  [64502]) with ATE port1 as external eBGP (AS 64510), ATE port2 as
  iBGP (AS 64501) and ATE port3 as confederation-eBGP (AS 64502).
  ATE confed segments are crafted via OTG as_path segments.
- Update metadata testbed to TESTBED_DUT_ATE_4LINKS and regenerate
  the uuid with uuidgen.
- Remove the DUT loopback (static router-id) and use advertised
  prefixes that do not overlap interface addresses.
- Use ATE-to-ATE traffic flows in both directions between every
  pair of ATE ports, for IPv4 and IPv6.
- Add subtests for each RFC 5065 AS_PATH rule, LOCAL_PREF/MED/
  NEXT_HOP across the Member-AS boundary, and AS loop detection on
  Member-AS and confederation identifier (negative).
- Update Canonical OC and OpenConfig path coverage.
- RT-1.111.3: accept NEXT_HOP unchanged or next-hop-self (RFC 5065
  5.2 only makes unchanged legal) and log which was observed.
- Add IBGP-CONFED (rule b.1) and CONFED-TRANSIT (rule c.2) routes;
  Summary now lists exactly the RFC 5065 4.1 rules covered, plus an
  out-of-scope note (rule c.3, origination, AS_CONFED_SET, 5.3 path
  selection).
- Disable the other address family per neighbor in the procedure and
  Canonical OC; require matching-AF-only OTG capabilities.
- Set OTG include_local_preference/include_multi_exit_discriminator
  explicitly for every route range; fix the attributes table.
- Negative tests: add routes_advertised positive control and a 30 s
  hold window before asserting absence.
- RT-1.111.4: check LOCAL_PREF is not sent to the external peer (RFC
  4271 5.1.5) and qualify the IPv6 global next hop.
- Add RT-1.111.7 malformed AS_PATH (RFC 5065 Section 5, RFC 7606
  Section 7.2 treat-as-withdraw).
- Align Subscribe mode with RPC coverage (ON_CHANGE); add coverage
  leaves set by the Canonical OC.
@isnehashankar43

Copy link
Copy Markdown
Contributor Author

@geokamel-eg

isnehashankar43 and others added 7 commits September 30, 2026 12:39
Rewrite the test plan in the concise step-by-step bullet style used by
other BGP test plans (for example RT-1.51), keeping the template
sections (Summary, Testbed type, Procedure, Cleanup, Canonical OC,
OpenConfig Path and RPC Coverage, Required DUT platform).

Content changes:
- OTG route range settings: use include_as_confed_seq on the
  confederation-eBGP peer and include_as_seq on the external peer, since
  OTG eBGP peers always prepend the local AS; extra segments are added
  with as_path.segments. The previous text recommended the opposite.
- Canonical OC lists the BGP and routing-policy configuration; interface
  addresses are given in the address table.
- Subtest intent, prefixes, AS numbers, pass/fail criteria and the
  common procedures (absence check, session stability, route set check)
  are unchanged.
- DUT-sent AS_PATHs are compared segment by segment; only the ATE
  encoding of the looped routes may use one or two adjacent segments
  (RFC 5065 Section 4.1 rules b.1 and c.2).
- Record notifications_received for all six ATE peers in RT-1.111.6/7.
- State that OTG does not check the remote AS; 64500 in the DUT OPEN is
  verified through the AS_PATH in RT-1.111.4.
- Positive control proves an UPDATE was sent, not its encoding.
- Spell out the RFC 5065 Section 5 -> RFC 4271 6.3 -> RFC 7606 7.2
  treat-as-withdraw chain.
- Forbidden-before-echo in the route set check, AS_PATH order deviation
  sentence, ARP/ND wait, ipv6 adj-rib-in-post path, delete in gNMI.Set
  RPC coverage, cite the OTG as_set_mode model text.
Each subtest now lists its steps with the expected result inline, in the
style of the other BGP test plans. The topology diagram, route table,
pass criteria, shared checks (positive control, hold window, session
stability, route set check) and the Cleanup section are kept. The
Canonical OC shows the three IPv4 neighbors; the IPv6 neighbors are
identical except for address and address family.
…sion

The ATE port-3 peer must be an OTG `ebgp` peer (an OTG `ibgp` peer rejects
an OPEN from a different AS). OTG guarantees `include_local_preference`
only on `ibgp` peers and an `ebgp` peer does not report a received
LOCAL_PREF (RFC 4271 Section 5.1.5), so:

* RT-1.111.2: the LOCAL_PREF 150 checks for `CONFED` run only when the
  attribute reached the DUT (`adj-rib-in-pre`, or `loc-rib` with
  `bgp_adj_rib_oc_unsupported`); otherwise they are logged and skipped.
* RT-1.111.3: LOCAL_PREF 200 of `IBGP` is verified in the DUT
  `adj-rib-out-post` of the port-3 neighbor; the ATE value is only logged.

Adds the adj-rib-in-pre, adj-rib-out-post and last-notification-error-code
paths to the coverage list.
Comment thread feature/bgp/confederation/otg_tests/bgp_confederation_test/README.md Outdated
Comment thread feature/bgp/confederation/otg_tests/bgp_confederation_test/README.md Outdated
Comment thread feature/bgp/confederation/otg_tests/bgp_confederation_test/README.md Outdated
- State that all BGP sessions are single-hop between the link addresses
  (no loopback, IGP or next-hop-self), that the DUT may therefore relay
  routes with the NEXT_HOP unchanged (RFC 4271 Section 5.1.3, RFC 5065
  Section 5.1), and why this is sufficient for the ATE route checks and
  the ATE-to-ATE flows.
- Define the AS_PATH notation used in the route table: segments are
  written with the OpenConfig as-path-segment-type names AS_SEQ
  (RFC 4271 AS_SEQUENCE) and AS_CONFED_SEQUENCE (RFC 5065).
Rewrite the test plan in the brief style of the other BGP READMEs
(short summary, per-subtest DUT / ATE / Verification bullets), keep the
topology, address and route tables, the Canonical OC and the OC path
coverage, and add the Cleanup section. Also align the traffic profile
(100 pps, at most 1% loss) and the AS_PATH comparison note with the
test code in openconfig#6137.
isnehashankar43 pushed a commit to isnehashankar43/featureprofiles that referenced this pull request Oct 13, 2026
Same README as openconfig#6087: brief per-subtest DUT / ATE / Verification
bullets, topology, address and route tables, Canonical OC, OC path
coverage and Cleanup. Comment-only changes in the test point at the
renamed README sections; no code change.
isnehashankar43 pushed a commit to isnehashankar43/featureprofiles that referenced this pull request Oct 15, 2026
Reimplement the RT-1.111 BGP confederation test from the README in
openconfig#6087, and update the README here to the same version:

* RT-1.111.1: verify the global AS, confederation identifier and
  member-as state, and that all IPv4 and IPv6 sessions are ESTABLISHED.
* RT-1.111.2 to RT-1.111.5: advertise the routes of the subtest from
  their ATE router (RT-1.111.4 reuses the routes of RT-1.111.2 and
  RT-1.111.3), verify the received AS_PATH on the ATE routers (and in
  the DUT loc-rib for RT-1.111.2), and run the IPv4 and IPv6 traffic
  flows of the subtest.
* Register each cleanup step before the configuration it reverts is
  pushed.
* Set the ATE AS_PATH with the OTG AS_PATH mode only, because the ATE
  adds its own AS on eBGP sessions even with DO_NOT_INCLUDE_LOCAL_AS.
* Read the ATE AS_PATH with a new request after the prefix is learned,
  because a streaming subscription appends the segments of every update
  to the unkeyed OTG AS_PATH list.
* Cisco: the bgp_rib_oc_path_unsupported deviation skips the DUT
  loc-rib AS_PATH check. IOS XR streams the BGP RIB AS_PATH as the
  keyless as-segment list from before openconfig-rib-bgp-attributes
  0.9.0, which OpenConfig clients cannot decode. The ATE AS_PATH checks
  and the traffic still verify the route propagation.
* metadata.textproto: update the Arista, Cisco and Nokia deviations for
  the new code.

Tested: passes in KNE on Arista cEOS, Cisco 8000e and Cisco XRd.

@Abdelfatah26 Abdelfatah26 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.

LGTM.
thank you

This branch has not been deployed

No deployments
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