Skip to content

Creating a Readme documentation for testing aggregate subinterfaces#5109

Merged
toadeniy-g merged 4 commits intoopenconfig:mainfrom
toadeniy-g:main
Mar 3, 2026
Merged

Creating a Readme documentation for testing aggregate subinterfaces#5109
toadeniy-g merged 4 commits intoopenconfig:mainfrom
toadeniy-g:main

Conversation

@toadeniy-g
Copy link
Copy Markdown
Contributor

Creating a Readme documentation for testing aggregate subinterfaces

@toadeniy-g toadeniy-g requested a review from a team as a code owner February 19, 2026 11:31
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @toadeniy-g, 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 new documentation for testing aggregate subinterfaces, providing a detailed guide for validating their operation. It outlines the test environment setup, including network topology and configuration parameters for both the Device Under Test (DUT) and Automated Test Equipment (ATE). The documentation also specifies the testing steps, pass criteria, canonical OpenConfig JSON for configuration, and lists the covered OpenConfig paths and RPCs, ensuring thorough validation of aggregate subinterface functionality in various network instances.

Highlights

  • New Test Documentation: Added a comprehensive README.md file detailing the test plan for aggregate subinterfaces, covering setup, configuration, and validation procedures.
  • Test Metadata: Introduced a metadata.textproto file to define the unique identifier, plan ID, description, and required testbed for the new aggregate subinterface test.
Changelog
  • feature/interface/aggregate/otg_tests/aggregate_subinterface_test/README.md
    • Added new documentation for testing aggregate subinterfaces.
  • feature/interface/aggregate/otg_tests/aggregate_subinterface_test/metadata.textproto
    • Added metadata for the new aggregate subinterface test.
Activity
  • No specific activity has been recorded for this pull request yet.
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 introduces a new test plan (README.md) and metadata for RT-5.14, a test for aggregate subinterfaces in default and non-default network instances. My review focuses on improving the clarity and structure of the test plan to align with repository guidelines. The most significant feedback is to restructure the Procedure section to properly represent the two distinct test cases (default and non-default network instances) as separate subtests, as required by the test plan template. I've also noted that the provided Canonical OC is incomplete. Additionally, I've pointed out several minor typos and formatting issues in both the README.md and metadata.textproto files to enhance readability and consistency. None of the comments contradicted the provided rules, so all original comments have been retained.

@@ -0,0 +1,266 @@
# RT-5.14: Aggregate Subinterface in Default and Non default Network Instance
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

There is a typo in the title. Non default should be hyphenated as Non-default for consistency and clarity.

Suggested change
# RT-5.14: Aggregate Subinterface in Default and Non default Network Instance
# RT-5.14: Aggregate Subinterface in Default and Non-default Network Instance

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done


##### IPv4 Addresses
Device | Lag 1 vlan 10 | lag1 vlan 20 | lag2 vlan 10 | lag2 vlan20
:------| :----------| :-------- | :---------| :-------:
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 markdown table formatting is inconsistent. The last column's alignment specifier (:-------:) indicates right-alignment, while others are left-aligned. For consistency, all columns should have the same alignment.

Suggested change
:------| :----------| :-------- | :---------| :-------:
:------| :--------------| :-------------| :--------------| :---------------

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

not needed


##### IPv6 Addresses
Device | Lag 1 vlan 10 | lag1 vlan 20 | lag2 vlan 10 | lag2 vlan20
:------| :----------| :-------- | :---------| :-------:
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 markdown table formatting is inconsistent. The last column's alignment specifier (:-------:) indicates right-alignment, while others are left-aligned. For consistency, all columns should have the same alignment.

Suggested change
:------| :----------| :-------- | :---------| :-------:
:------| :--------------| :-------------| :--------------| :---------------

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

not needed

2. Add port 1 and port 2 to aggregate interface 1
3. Add port 3 and port 4 to aggregate interface 2
4. Create two emulated routers with ethernet interfaces on both routers
5. Connect the ethernet interfaces aggregate interfaces
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

This sentence is grammatically incorrect and unclear. Please rephrase for clarity.

Suggested change
5. Connect the ethernet interfaces aggregate interfaces
5. Connect the ethernet interfaces to the aggregate interfaces

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

updated

* Validate that the Aggregate Interfaces are UP on the OTG
* Start Traffic flows
* Wait for another 60 seconds
* stop Traffic Flow
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

Typo. 'stop' should be capitalized for consistency with 'Start Traffic flows'.

Suggested change
* stop Traffic Flow
* Stop Traffic Flow

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

updated

@toadeniy-g toadeniy-g requested review from a team and AmrNJ and removed request for AmrNJ February 24, 2026 10:59
@dplore
Copy link
Copy Markdown
Member

dplore commented Feb 25, 2026

This test is nearly 100% duplicate to RT-5.2 (https://github.com/openconfig/featureprofiles/tree/main/feature/interface/aggregate/otg_tests/aggregate_test). Can you update RT-5.2 to simply add an additional (non-default) network instance? It is rather inefficient to create another _test.go just for this case.

dplore
dplore previously requested changes Feb 25, 2026
Copy link
Copy Markdown
Member

@dplore dplore left a comment

Choose a reason for hiding this comment

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

DUT | 2001:db8::1/126 | 2001:db8::5/126 | 2001:db8::9/126 | 2001:db8::13/126
ATE | 2001:db8::2/126 | 2001:db8::6/126 | 2001:db8::10/126 | 2001:db8::14/126


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.

@toadeniy-g - Request you to add a section here defining the traffic profile. Expecting the following

  1. Traffic source, Traffic destination
  2. Traffic flow details like frame size, duration of traffic, fixed packet count / line rate traffic (recommended)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

addressed


### Test Pass Criteria

* Packet drop from the flows must be less than 2 percent.
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.

@toadeniy-g - Based on the traffic profile. If the traffic flow is of size 64 frame size then 2% tolerance is fine. If the frame size is higher than 64 and >512 bytes. then the tolerance should be <1%.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

addressed

/interfaces/interface/config/name:
/interfaces/interface/aggregation/config/lag-type:

# Telemetry Parameter Coverage
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.

The current README only lists /interfaces/interface/state/admin-status and /interfaces/interface/state/oper-status for telemetry. To fully verify the health of the aggregate interface, you should include LACP member state telemetry such as:
/lacp/interfaces/interface/members/member/state/collecting
/lacp/interfaces/interface/members/member/state/distributing
/lacp/interfaces/interface/members/member/state/partner-id.
These paths are already utilized in other aggregate tests like RT-5.2

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

addressed

* Validate that all the 4 ports are Operationally UP on the OTG
* Validate that the Aggregate Interfaces are UP on the OTG
* Start Traffic flows
* Wait for another 60 seconds
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.

@toadeniy-g - Instead of a static "Wait 60 seconds" the test should use gNMI telemetry to wait specifically until the LAG and its subinterfaces are operationally UP. This is required to reduce the test duration and gives a predictible results

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

this is the wait time between when the traffic is started on the OTG and when it is stopped, have nothing to do with telemetry yet at this point in the test


### Test Pass Criteria

* Packet drop from the flows must be less than 2 percent.
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.

@toadeniy-g - The pass criteria should also have telemetry validation. All the counters should be validated without any failure.

* Stop Traffic Flow
* Collect the receive and the transmit packet information from the
flows and validate it against the test pass criteria

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.

I see there are some coverage that is missing in this README. Please below network events

  1. Flap the LAG at least 10 times and then wait for the interfaces to be back up using telemetry. Validate traffic and counters.
  2. A critical aspect of aggregate interfaces is their ability to handle member link failures. Configure LAG with minimum member link set to 1 if not already configured. Bring down one of the member link for one of the LAG and see if the interface still stays up and traffic flow is not impacted. Bring back the member link and see if the traffic is still flowing.
  3. MTU validation. Ensure the test validates traffic at a configured MTU as the VLAN traffic adds a overhead of 4 bytes. It is required for the DUT to handle the maximum sized packets on the subinterfaces.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

addressed

@toadeniy-g toadeniy-g assigned ram-mac and unassigned toadeniy-g Feb 27, 2026
Copy link
Copy Markdown
Contributor

@ram-mac ram-mac left a comment

Choose a reason for hiding this comment

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

LGTM

@dplore dplore removed their request for review March 3, 2026 14:29
@dplore dplore dismissed their stale review March 3, 2026 14:31

Deferring to @Ramchat review

@toadeniy-g toadeniy-g merged commit 9abcc21 into openconfig:main Mar 3, 2026
14 checks passed
ampattan pushed a commit to nokia/featureprofiles that referenced this pull request Apr 1, 2026
nsadhasivam pushed a commit to nsadhasivam/featureprofiles that referenced this pull request Apr 6, 2026
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.

6 participants