Skip to content

Conversation

@sachendras
Copy link
Contributor

Replaces v4 transport with v6 transport.

Replaces v4 transport with v6 transport.
@sachendras sachendras requested a review from a team as a code owner December 24, 2025 07:43
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @sachendras, 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 updates the documentation and configuration examples for static GUEv1 decapsulation tests to transition from using IPv4 transport to IPv6 transport. The changes ensure that the test descriptions, network configurations, and policy forwarding rules accurately reflect an IPv6-based GUE tunnel setup, providing clear guidance for testing GUE decapsulation with IPv6 outer headers.

Highlights

  • Documentation Update for IPv6 Transport: The README.md file has been updated to reflect that the GUE decapsulation tests now utilize IPv6 as the outer transport for GUE tunnels, replacing previous references to IPv4.
  • Configuration Examples Migration: All example configurations, including ATE port prefixes, flow table source/destination IPs, and DUT loopback/subnet ranges, have been converted from IPv4 to IPv6 addresses and prefixes.
  • Policy Forwarding Rule Adjustment: The embedded JSON configuration for the policy forwarding rule has been entirely revamped to define an IPv6-based prefix set and apply the GUE decapsulation action based on IPv6 criteria, rather than IPv4.
  • Updated Configuration Paths: The list of configuration paths has been modified to align with the new IPv6 policy forwarding rule structure, specifically changing ipv4 references to ipv6.

🧠 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

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 updates the README.md for the static GUE decapsulation test to use IPv6 for the outer transport layer, replacing the previous IPv4 transport. While the changes in the documentation are mostly consistent with this goal, there is a major discrepancy I've identified. The associated test file, ip_guev1_static_decap_subnet_range_test.go, appears to be hardcoded to use IPv4 for the outer transport header in all test cases. This means the updated documentation will not match the actual test implementation. This is a critical issue that should be addressed, either by updating the test code in this PR or clarifying the intent. I have also pointed out a minor inconsistency within the README itself.

## Summary

This is to test the functionality of decapsulation of static GUEv1 to IPv4 or IPv6 payload ([GUE Variant 1](https://datatracker.ietf.org/doc/html/draft-ietf-intarea-gue-09#section-4)). These tests verify the use case of IPv4 and IPv6 encapsulated traffic in IPv4 GUE tunnel.
This is to test the functionality of decapsulation of static GUEv1 to IPv4 or IPv6 payload ([GUE Variant 1](https://datatracker.ietf.org/doc/html/draft-ietf-intarea-gue-09#section-4)). These tests verify the use case of IPv4 and IPv6 encapsulated traffic in an IPv6 GUE tunnel.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

This README is being updated to describe a test with an IPv6 outer transport for GUE. However, the corresponding test implementation in ip_guev1_static_decap_subnet_range_test.go seems to be hardcoded to use an IPv4 outer header for all traffic flows (see configureIPv4Traffic and configureIPv6Traffic functions). This creates a significant divergence between the documentation (which serves as the test plan) and the implementation. Please either update the test code to match this new documentation or revert the documentation changes.

- The outer header destination IP of the traffic falls within the DECAP-DST-SUBNET-V6/64 range
- The outer header destination UDP port (6085) of the traffic is not configured for decapsulation, therefore it does not match the decapsulation criteria.
- The DUT should not decapsulate these packets. Packets with `DECAP-DST_3/32` will be sent to the device controller/CPU while the packets with DECAP-DST_1/32, DECAP-DST_2/32 and DECAP-DST_4/32 will be dropped due to specific no-route to the destination present in local FIB
- The DUT should not decapsulate these packets. Packets with `DECAP-DST_3-V6/128` will be sent to the device controller/CPU while the packets with DECAP-DST_1/32, DECAP-DST_2/32 and DECAP-DST_4/32 will be dropped due to specific no-route to the destination present in local FIB
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There's an inconsistency in this line. While DECAP-DST_3/32 was correctly updated to its IPv6 equivalent DECAP-DST_3-V6/128, the other prefixes (DECAP-DST_1/32, DECAP-DST_2/32, and DECAP-DST_4/32) were not. For consistency with the rest of the document's update to IPv6, they should also be changed to their IPv6 versions.

Suggested change
- The DUT should not decapsulate these packets. Packets with `DECAP-DST_3-V6/128` will be sent to the device controller/CPU while the packets with DECAP-DST_1/32, DECAP-DST_2/32 and DECAP-DST_4/32 will be dropped due to specific no-route to the destination present in local FIB
- The DUT should not decapsulate these packets. Packets with `DECAP-DST_3-V6/128` will be sent to the device controller/CPU while the packets with `DECAP-DST_1-V6/128`, `DECAP-DST_2-V6/128` and `DECAP-DST_4-V6/128` will be dropped due to specific no-route to the destination present in local FIB

@coveralls
Copy link

Pull Request Test Coverage Report for Build 20481237671

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 10.03%

Totals Coverage Status
Change from base Build 20479668220: 0.0%
Covered Lines: 2227
Relevant Lines: 22203

💛 - Coveralls

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