Skip to content

P4RT-5.3: Cisco fix#5650

Merged
AmrNJ merged 7 commits into
openconfig:mainfrom
b4firex:p4rt-5.3-cisco-fix
Jul 9, 2026
Merged

P4RT-5.3: Cisco fix#5650
AmrNJ merged 7 commits into
openconfig:mainfrom
b4firex:p4rt-5.3-cisco-fix

Conversation

@karthikeya-remilla

Copy link
Copy Markdown
Contributor

Changes done to fix this test:

  1. keep per-run OutPkts baselines, program both IPv4 and IPv6 trap entries, validate TTL/HopLimit by received EtherType.
  2. Program both IPv4 and IPv6 P4RT redirect rules on the DUT. This ensures that both IPv4-in-IPv4 (matched by IPv4
    rule) and IPv6-in-IPv4 (matched by IPv6 rule) are correctly redirected to the controller.
  3. Dynamically decode TTL/HopLimit based on the received packet's actual etherType (IPv4 vs IPv6) instead of
    relying on the hardcoded isIPv4 test parameter.

# Conflicts:
#	feature/p4rt/otg_tests/traceroute_packetin_with_vrf_selection_test/metadata.textproto
#	feature/p4rt/otg_tests/traceroute_packetin_with_vrf_selection_test/traceroute_packetin_with_vrf_selection_test.go
@karthikeya-remilla karthikeya-remilla requested a review from a team as a code owner July 1, 2026 17:10
@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 critical fixes and platform-specific adjustments to the P4RT traceroute packet-in test suite. The changes focus on improving test reliability through better packet counting, expanding protocol coverage by supporting both IPv4 and IPv6 P4RT rules, and ensuring compatibility with Cisco hardware through necessary configuration deviations.

Highlights

  • Test Robustness: Updated packet counting logic to maintain per-run baselines, ensuring accurate traffic validation.
  • P4RT Configuration: Modified test to program both IPv4 and IPv6 P4RT redirect rules, improving coverage for IPv4-in-IPv4 and IPv6-in-IPv4 scenarios.
  • Dynamic Decoding: Implemented dynamic TTL/HopLimit decoding based on the actual EtherType of received packets instead of relying on hardcoded parameters.
  • Cisco Platform Support: Added platform-specific deviations for Cisco devices to handle policy forwarding, ISIS topology, and BGP transport address requirements.
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 Jul 1, 2026

Copy link
Copy Markdown

@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 several platform-specific deviations and exceptions for CISCO, including single topology requirements for ISIS, interface name usage for IBGP transport, and static ARP overrides. It also refactors packet tracking in packetin_test.go to measure packet differences per flow and loops over IPv4/IPv6 table programming. Feedback on the changes suggests avoiding the use of defer inside the loop in packetin_test.go to prevent resource accumulation and potential linter warnings, recommending sequential programming instead.

…3-cisco-fix

# Conflicts:
#	feature/p4rt/otg_tests/traceroute_packetin_with_vrf_selection_test/traceroute_packetin_with_vrf_selection_test.go
@karthikeya-remilla

Copy link
Copy Markdown
Contributor Author

/gemini review

@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 updates the traceroute packet-in with VRF selection test to support Cisco-specific platform deviations. It adds deviations for ISIS single topology, BGP neighbor transport local address, and GRIBI MAC override with static ARP. Additionally, packetin_test.go is refactored to measure traffic per flow, program both IPv4 and IPv6 ACL entries, and validate TTL/HopLimit based on the Ethernet type. I have no feedback to provide as there are no review comments.

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

@AmrNJ AmrNJ merged commit 4d14cdc into openconfig:main Jul 9, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants