Skip to content

Add telemetry coverage for negotiated-port-speed and subinterface state/counter leaves - #6150

Open
ashishpawar-google wants to merge 1 commit into
openconfig:mainfrom
ashishpawar-google:add-interface-subinterface-telemetry-paths
Open

ashishpawar-google wants to merge 1 commit into
openconfig:mainfrom
ashishpawar-google:add-interface-subinterface-telemetry-paths

Conversation

@ashishpawar-google

Copy link
Copy Markdown
Contributor

Summary

Adds OpenConfig README and test coverage for 5 interface/subinterface telemetry state paths across gNMI-1.5, gNMI-1.11, and gNMI-1.28:

  1. gNMI-1.5 (feature/gnmi/otg_tests/telemetry_port_speed_test):

    • Added coverage for /interfaces/interface/ethernet/state/negotiated-port-speed.
    • Verified negotiated-port-speed presence on physical Ethernet member ports and validated the speed against the configured port speed when auto-negotiate is enabled.
    • Added deviation negotiated_port_speed_unsupported for Nokia (b/572214470).
  2. gNMI-1.11 (feature/interface/otg_tests/telemetry_interface_packet_counters_test):

    • Added coverage for:
      • /interfaces/interface/subinterfaces/subinterface/state/counters/in-unicast-pkts
      • /interfaces/interface/subinterfaces/subinterface/state/counters/out-multicast-pkts
    • Guarded subinterface IPv4/IPv6 packet counter streaming checks with !deviations.SubinterfacePacketCountersMissing(dut) and enabled subinterface_packet_counters_missing for Juniper in metadata.textproto.
    • Increased packet counter rate tolerance from 70 to 100 to prevent false failures from sample interval polling jitter.
  3. gNMI-1.28 (feature/gnmi/tests/telemetry_interfaces_test):

    • Added coverage for:
      • /interfaces/interface/subinterfaces/subinterface/state/ifindex
      • /interfaces/interface/subinterfaces/subinterface/state/name
    • Added deviations:
      • subinterface_ifindex_unsupported for Juniper (b/572208368).
      • subinterface_name_unsupported for Cisco (b/572214473).
    • Added require_routed_subinterface_0 handling for Arista subinterface creation and preserved canonical interface casing on dut.Port(t, "port1").Name().

@OpenConfigBot

OpenConfigBot commented Oct 10, 2026 •

Copy link
Copy Markdown

Pull Request Functional Test Report for #6150 / 32604c1

Virtual Devices

Device Test Status Test Documentation Job Raw Log
Arista cEOS status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Cisco 8000E status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Cisco XRd status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Juniper ncPTX status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Nokia SR Linux status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Openconfig Lemming status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters

Hardware Devices

Device Test Status Test Documentation Raw Log
Arista status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Cisco status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Juniper status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters
Nokia status
status
status
gNMI-1.5: pending authorization
gNMI-1.28: pending authorization
gNMI-1.11: pending authorization
gNMI-1.5: Telemetry: Port Speed Test
gNMI-1.28: Telemetry: Interface openconfig validation.
gNMI-1.11: Telemetry: Interface Packet Counters

Help

@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 enhances the OpenConfig telemetry test coverage by adding validation for several interface and subinterface state paths. It also introduces new deviation mechanisms to accommodate platform-specific limitations across different vendors, ensuring test stability and reliability in heterogeneous environments.

Highlights

  • Telemetry Coverage Expansion: Added test coverage for negotiated-port-speed, subinterface ifindex, subinterface name, and specific packet counters (in-unicast-pkts, out-multicast-pkts) across multiple gNMI test suites.
  • Infrastructure & Deviations: Introduced new platform deviations for Nokia, Juniper, and Cisco to handle unsupported telemetry paths and added necessary metadata and protobuf updates to support these deviations.
  • Test Robustness: Increased packet counter rate tolerance to 100 to mitigate jitter-related failures and added logic to handle routed subinterface configuration for Arista devices.
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. ↩

@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 adds telemetry validation for negotiated port speed, subinterface name and ifindex, and subinterface packet counters, introducing several new platform deviations to handle vendor-specific limitations. The review feedback highlights two key improvement opportunities: first, replacing direct gnmi.Get and gnmi.Lookup calls with gnmi.Await and gnmi.Watch in telemetry_port_speed_test.go to prevent flaky test failures in accordance with the style guide; second, optimizing redundant gNMI operations in telemetry_interfaces_test.go by retrieving both presence and value in a single .Val() call.

@ashishpawar-google
ashishpawar-google force-pushed the add-interface-subinterface-telemetry-paths branch 2 times, most recently from ee2ad2d to cbd2e72 Compare October 10, 2026 14:09
@ashishpawar-google

Copy link
Copy Markdown
Contributor Author

/gemini-review

@ashishpawar-google
ashishpawar-google force-pushed the add-interface-subinterface-telemetry-paths branch from cbd2e72 to 6535ad7 Compare October 12, 2026 10:04
@ashishpawar-google

ashishpawar-google commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor Author

Update Test Pass logs in Mirror bug.

@ashishpawar-google
ashishpawar-google force-pushed the add-interface-subinterface-telemetry-paths branch 7 times, most recently from 0d23c92 to 58b2aa4 Compare November 2, 2026 02:49
Comment thread internal/deviations/deviations.go Resolved
Comment thread internal/deviations/deviations.go Resolved
@ashishpawar-google
ashishpawar-google force-pushed the add-interface-subinterface-telemetry-paths branch 6 times, most recently from fb8acff to 538705f Compare November 3, 2026 16:12
@ashishpawar-google
ashishpawar-google force-pushed the add-interface-subinterface-telemetry-paths branch 2 times, most recently from 1a06ba8 to b0447bb Compare November 9, 2026 09:52
…te/counter leaves

Adds OpenConfig README and test coverage for 5 interface/subinterface telemetry state paths across gNMI-1.5, gNMI-1.11, and gNMI-1.28:
- gNMI-1.5 (telemetry_port_speed_test): Add /interfaces/interface/ethernet/state/negotiated-port-speed coverage and Canonical OC JSON block; add negotiated_port_speed_unsupported deviation for Nokia.
- gNMI-1.11 (telemetry_interface_packet_counters_test): Add /interfaces/interface/subinterfaces/subinterface/state/counters/in-unicast-pkts and out-multicast-pkts coverage.
- gNMI-1.28 (telemetry_interfaces_test): Add /interfaces/interface/subinterfaces/subinterface/state/ifindex and name coverage; add subinterface_ifindex_unsupported deviation for Juniper.
@ashishpawar-google
ashishpawar-google force-pushed the add-interface-subinterface-telemetry-paths branch from b0447bb to 32604c1 Compare November 9, 2026 09:59

This branch has not been deployed

No deployments
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