Skip to content

Use 8 instead of 9 total ixia ports for LAG tests#5137

Merged
gggsmith merged 1 commit intoopenconfig:mainfrom
frasieroh:fnt-7lag
Mar 11, 2026
Merged

Use 8 instead of 9 total ixia ports for LAG tests#5137
gggsmith merged 1 commit intoopenconfig:mainfrom
frasieroh:fnt-7lag

Conversation

@frasieroh
Copy link
Copy Markdown
Contributor

Ixia ports are organized into resource groups (RGs). The AresONE 400g traffic generator assigns two 400g ports to each resource group. These can be broken out into 4 100g ports each for a total of 8 100g ports per RG.

Some operations to ixia ports apply to all ports in the same RG, so resource groups must be statically allocated to testbeds to avoid conflicts. If two testbeds were to use two ports within the same RG concurrently, configuring one port could cause conflicts with the other port.

The choice of these lag tests to use 9 ports means we must allocate 2 RGs to any testbed which intends to run them. The second resource group is only used for a single port for these 4 tests, nonetheless, it cannot be used for anything else. This is prohibitively expensive. By marginally reducing the port scale we can double the number of applicable testbeds in our environment.

The modified tests pass in our environment with the exception or RT-5.3 which has never passed.

@frasieroh frasieroh requested review from a team as code owners February 25, 2026 19:45
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @frasieroh, 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 optimizes the resource allocation for Link Aggregation Group (LAG) tests by decreasing the required Ixia ports from nine to eight. This change significantly improves testbed utilization and cost-effectiveness by preventing the unnecessary allocation of an entire Ixia resource group for a single port. The modifications span across test definitions, documentation, and protobuf configurations to ensure consistency with the new 8-link setup.

Highlights

  • Resource Optimization: Reduced the number of Ixia ports required for LAG tests from 9 to 8, enabling more efficient use of testbed resources and avoiding the need for an additional resource group for a single port.
  • Testbed Configuration Update: Introduced a new TESTBED_DUT_ATE_8LINKS_LAG testbed type and updated existing LAG tests to utilize this new 8-link configuration.
  • Code and Documentation Alignment: Synchronized documentation, test code, and metadata files to reflect the change in port count and associated traffic distribution percentages.
  • Protobuf Updates: Updated protobuf generated Go files (.pb.go) to reflect newer protoc-gen-go and protoc versions, and refactored message struct definitions.
Changelog
  • feature/gribi/otg_tests/weighted_balancing_test/README.md
    • Updated ATE port count from 9 to 8 in the procedure description.
    • Adjusted traffic distribution percentages for next-hop groups from 8 to 7 next hops.
  • feature/gribi/otg_tests/weighted_balancing_test/metadata.textproto
    • Changed the testbed field from TESTBED_DUT_ATE_9LINKS_LAG to TESTBED_DUT_ATE_8LINKS_LAG.
  • feature/gribi/otg_tests/weighted_balancing_test/weighted_balancing_test.go
    • Renamed the test case from EightNextHops to SevenNextHops.
    • Adjusted the description and traffic percentages for next-hops to reflect 7 ports instead of 8.
  • feature/interface/aggregate/otg_tests/aggregate_forwarding_viable_test/README.md
    • Updated all references to ATE ports from 2-9 to 2-8 in the test procedure.
  • feature/interface/aggregate/otg_tests/aggregate_forwarding_viable_test/aggregate_forwarding_viable_test.go
    • Corrected port number references from 9 to 8 in the testbed description comments.
  • feature/interface/aggregate/otg_tests/aggregate_forwarding_viable_test/metadata.textproto
    • Changed the testbed field from TESTBED_DUT_ATE_9LINKS_LAG to TESTBED_DUT_ATE_8LINKS_LAG.
  • feature/interface/aggregate/otg_tests/aggregate_test/README.md
    • Updated all references to ATE ports from 2-9 to 2-8 in the test procedure.
    • Removed a trailing newline character at the end of the file.
  • feature/interface/aggregate/otg_tests/aggregate_test/metadata.textproto
    • Changed the testbed field from TESTBED_DUT_ATE_9LINKS_LAG to TESTBED_DUT_ATE_8LINKS_LAG.
  • feature/interface/aggregate/otg_tests/balancing_test/README.md
    • Updated port references in the mermaid diagram from 2-9 to 2-8.
    • Adjusted port references in the procedure description from 2-9 to 2-8.
  • feature/interface/aggregate/otg_tests/balancing_test/balancing_test.go
    • Corrected port number references from 9 to 8 in the testbed description comments.
  • feature/interface/aggregate/otg_tests/balancing_test/metadata.textproto
    • Changed the testbed field from TESTBED_DUT_ATE_9LINKS_LAG to TESTBED_DUT_ATE_8LINKS_LAG.
  • proto/metadata.proto
    • Added a new enum value TESTBED_DUT_ATE_8LINKS_LAG with ID 17.
  • proto/nosimage_go_proto/nosimage.pb.go
    • Updated the protoc-gen-go version from v1.30.0 to v1.27.1.
    • Updated the protoc version from v5.29.3 to v6.33.1.
  • topologies/atedut_8_lag.testbed
    • Added a new testbed definition file for a DUT and ATE with 8 aggregate links.
  • topologies/proto/binding/binding.pb.go
    • Updated the protoc-gen-go version from v1.36.10 to v1.27.1.
    • Updated the protoc version from v4.25.1 to v6.33.1.
    • Refactored protobuf message structs (Binding, Configs, Device, Options, Port, Link) to explicitly include sizeCache and unknownFields and adjust Reset() and ProtoReflect() methods for protoimpl.UnsafeEnabled.
    • Removed the unsafe import as it is no longer needed.
Activity
  • No human activity has occurred on this pull request since its creation.
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.

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 aims to reduce the number of Ixia ports used in LAG tests from 9 to 8, which is a sensible optimization for testbed resource allocation. The changes are mostly consistent across documentation, testbed definitions, and test code. I've identified a couple of minor inconsistencies in the documentation that should be corrected to ensure accuracy and prevent confusion, and these comments have been retained as they do not conflict with any provided rules.

Comment thread feature/gribi/otg_tests/weighted_balancing_test/README.md
Comment thread feature/interface/aggregate/otg_tests/aggregate_forwarding_viable_test/README.md Outdated
@gggsmith gggsmith self-assigned this Mar 2, 2026
@gggsmith gggsmith requested review from ram-mac and rohit-rp March 4, 2026 10:37
Copy link
Copy Markdown
Contributor

@gggsmith gggsmith left a comment

Choose a reason for hiding this comment

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

Thank you @frasieroh - I don't have any concerns about reducing the port number for all of the cases updated here. Could you please address minor comments? Thank you!

@frasieroh frasieroh force-pushed the fnt-7lag branch 3 times, most recently from 43695ca to 890928f Compare March 9, 2026 22:00
Ixia ports are organized into resource groups (RGs). The AresONE 400g
traffic generator assigns two 400g ports to each resource group. These
can be broken out into 4 100g ports each for a total of 8 100g ports
per RG.

Some operations to ixia ports apply to all ports in the same RG, so
resource groups must be statically allocated to testbeds to avoid
conflicts. If two testbeds were to use two ports within the same RG
concurrently, configuring one port could cause conflicts with the other
port.

The choice of these lag tests to use 9 ports means we must allocate 2 RGs
to any testbed which intends to run them. The second resource group is
only used for a single port for these 4 tests, nonetheless, it cannot be
used for anything else. This is prohibitively expensive. By marginally
reducing the port scale we can double the number of applicable testbeds
in our environment.

The modified tests pass in our environment with the exception or RT-5.3
which has never passed.
@gggsmith gggsmith merged commit 0560d52 into openconfig:main Mar 11, 2026
15 checks passed
ampattan pushed a commit to nokia/featureprofiles that referenced this pull request Apr 1, 2026
Ixia ports are organized into resource groups (RGs). The AresONE 400g
traffic generator assigns two 400g ports to each resource group. These
can be broken out into 4 100g ports each for a total of 8 100g ports
per RG.

Some operations to ixia ports apply to all ports in the same RG, so
resource groups must be statically allocated to testbeds to avoid
conflicts. If two testbeds were to use two ports within the same RG
concurrently, configuring one port could cause conflicts with the other
port.

The choice of these lag tests to use 9 ports means we must allocate 2 RGs
to any testbed which intends to run them. The second resource group is
only used for a single port for these 4 tests, nonetheless, it cannot be
used for anything else. This is prohibitively expensive. By marginally
reducing the port scale we can double the number of applicable testbeds
in our environment.

The modified tests pass in our environment with the exception or RT-5.3
which has never passed.
nsadhasivam pushed a commit to nsadhasivam/featureprofiles that referenced this pull request Apr 6, 2026
Ixia ports are organized into resource groups (RGs). The AresONE 400g
traffic generator assigns two 400g ports to each resource group. These
can be broken out into 4 100g ports each for a total of 8 100g ports
per RG.

Some operations to ixia ports apply to all ports in the same RG, so
resource groups must be statically allocated to testbeds to avoid
conflicts. If two testbeds were to use two ports within the same RG
concurrently, configuring one port could cause conflicts with the other
port.

The choice of these lag tests to use 9 ports means we must allocate 2 RGs
to any testbed which intends to run them. The second resource group is
only used for a single port for these 4 tests, nonetheless, it cannot be
used for anything else. This is prohibitively expensive. By marginally
reducing the port scale we can double the number of applicable testbeds
in our environment.

The modified tests pass in our environment with the exception or RT-5.3
which has never passed.
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