Skip to content

feat: Double GUE Decapsulation (PF-1.26)#5266

Open
mellowdrifter wants to merge 4 commits intomainfrom
fix-gue-decap-v2
Open

feat: Double GUE Decapsulation (PF-1.26)#5266
mellowdrifter wants to merge 4 commits intomainfrom
fix-gue-decap-v2

Conversation

@mellowdrifter
Copy link
Copy Markdown

Replacing PR 5081 with a clean, rebased version.

Signed-off-by: Darren O’Connor <mellowd@google.com>
@mellowdrifter mellowdrifter requested a review from a team as a code owner March 26, 2026 12:59
@OpenConfigBot
Copy link
Copy Markdown

OpenConfigBot commented Mar 26, 2026

@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 significantly enhances the feature profiles by adding a comprehensive test for double GUEv1 decapsulation, a critical capability for advanced overlay probing in network devices. Concurrently, it refines the test registry by removing obsolete entries and updating details for existing ones, ensuring the test suite remains current and accurate. This effort improves both the functional coverage and the maintainability of the testing infrastructure.

Highlights

  • New Feature Test: Double GUE Decapsulation (PF-1.26): Introduced a comprehensive test (PF-1.26) to validate a router's capability to perform two-stage GUEv1 decapsulation using a soft-loopback mechanism, crucial for overlay probing scenarios.
  • Test Registry Cleanup: Removed several outdated or deprecated test entries from testregistry.textproto, streamlining the test suite.
  • Test Registry Updates: Updated descriptions and README paths for existing tests within testregistry.textproto to ensure accuracy and relevance.
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.

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 introduces a new test case, PF-1.26, for double GUEv1 decapsulation, complete with its README documentation and metadata. The test registry has been updated by removing several outdated test entries, modifying descriptions and README links for existing ones, and repurposing an entry for the new PF-1.26 test. Additionally, a new test entry, RT-9, has been added to the registry. The review comments highlight several issues: the PF-1.26 test's metadata specifies an insufficient testbed for its described topology, the RT-9 test entry has an incorrect README link, the PF-1.26 README contains inconsistencies in its ATE configuration table and logical flaws in its negative test case verification steps, and the Canonical OC example in the README does not align with the described IPv6 test flows.

Comment on lines +38 to +52
| **Flow Type #1 (IPv6/IPv6/IPv4)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV4-DST-HOST | N/A | 20 | 50 |
| **Flow Type #2 (IPv6/IPv6/IPv6)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV6-DST-HOST | N/A | 20 | 50 |
| **Flow Type #3 (IPv6/IPv6/IPv4)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6085 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV4-DST-HOST | N/A | 20 | 50 |
| **Flow Type #4 (IPv6/IPv6/IPv4)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV6-DST-HOST | N/A | 20 | 50 |
| **Flow Type #5 (IPv6/IPv6/IPv6)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV6-DST-HOST | N/A | 20 | 50 |
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 ATE configuration table has several inconsistencies between the "Flow Type" column and the header details, which could cause confusion when implementing the test.

Please correct the table to align with the test case descriptions.

- Updated testbed in metadata to TESTBED_DUT_ATE_4LINKS
- Fixed ATE configuration table inconsistencies for IPv4 inner headers
- Corrected verification steps for negative test cases (LPM lookup failure)
- Updated Canonical OC JSON and paths to match on ipv6 destination address
@sachendras sachendras assigned sachendras and unassigned sachendras Mar 26, 2026
@sachendras sachendras self-requested a review March 26, 2026 15:15
@mellowdrifter
Copy link
Copy Markdown
Author

/gemini review

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 introduces a new test plan (PF-1.26) for Double GUEv1 Decapsulation, including a README, metadata, and a registry entry. The feedback identifies significant inconsistencies in the ATE configuration table, where the flow definitions do not align with the stated objectives for IPv4 and IPv6 middle headers, and contains redundant flow definitions that should be consolidated.

Comment on lines +36 to +52
| Flow Type | Header Layer | Source IP | Destination IP | UDP Port | DSCP | TTL |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **Flow Type #1 (IPv6/IPv6/IPv4)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV4-SRC-HOST | IPV4-DST-HOST | N/A | 20 | 50 |
| **Flow Type #2 (IPv6/IPv6/IPv6)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV6-DST-HOST | N/A | 20 | 50 |
| **Flow Type #3 (IPv6/IPv6/IPv4)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6085 | 32 | 60 |
| | Inner IP | IPV4-SRC-HOST | IPV4-DST-HOST | N/A | 20 | 50 |
| **Flow Type #4 (IPv6/IPv6/IPv4)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV4-SRC-HOST | IPV4-DST-HOST | N/A | 20 | 50 |
| **Flow Type #5 (IPv6/IPv6/IPv6)** | Outer IP | ATE-P1-IP | DECAP-DST-OUTER | 6080 | 35 | 70 |
| | Middle IP | IPV6-MID-SRC | DECAP-DST-INNER | 6080 | 32 | 60 |
| | Inner IP | IPV6-SRC-HOST | IPV6-DST-HOST | N/A | 20 | 50 |
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 ATE Configuration table and related sections contain several inconsistencies that make the test plan difficult to follow.

  • Contradictory Information:

    • The Objective (line 10) and Traffic Generation section (lines 56-61) state that the test covers both IPv4 and IPv6 middle headers (H2).
    • However, this table only defines flows with an IPv6 middle header. For example, Flow Type #1 is labeled (IPv6/IPv6/IPv4), and its Middle IP layer is IPV6-MID-SRC.
    • The Traffic Generation section further confuses this by describing Flow #1 as having an IPv4 H2.
  • Redundant Flow Definitions:

    • Flow Type #4 is identical to Flow Type #1.
    • Flow Type #5 is identical to Flow Type #2.

To improve clarity and correctness, please revise the ATE Configuration table and surrounding text to be consistent. I recommend:

  1. Correcting the flow definitions in the table to match the stated objective of testing both IPv4 and IPv6 middle headers.
  2. Removing the redundant Flow Type #4 and Flow Type #5. The negative test cases (PF-1.26.4 and PF-1.26.5) can refer to the primary flow types with a note about using an unreachable destination IP.

For example, you could simplify the table to define base flows and then describe the variations in the test case descriptions. This would make the overall test plan much easier to understand.

References
  1. Test plans should be structured with separate subtests for distinct logical test cases, avoiding redundant definitions and simplifying by defining base flows and describing variations.

@ksgireesha ksgireesha requested a review from ram-mac March 26, 2026 15:51
- Update testbed to TESTBED_DUT_ATE_4LINKS
- Fix readme link for RT-9 in test registry
- Correct ATE Configuration table to accurately reflect IPv4/IPv6 headers
- Fix verification steps for negative tests to specify LPM failure on inner header
- Update Canonical OC example to match IPv6 outer header
- Add IPv6 destination-address to OpenConfig Path coverage
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.

3 participants