Repository navigation
Add FNT test plan (README.md) for RT-1.111 BGP Autonomous System Conederations (RFC 5065) - #6087
isnehashankar43 wants to merge 34 commits into
Conversation
…ederations (RFC 5065)
Summary of ChangesHello, 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
Using Gemini Code AssistThe 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
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 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
|
Pull Request Functional Test Report for #6087 / 23b94aeVirtual Devices
Hardware Devices
|
There was a problem hiding this comment.
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.
|
/gemini summary |
Summary of ChangesThis 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
Activity
|
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.
…tion checks, route-set checks)
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.
- 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.
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.
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.
No description provided.