port - openconfig/featureprofiles GitHub Wiki

gNMI-1.22: Controller card port attributes

Summary

Validate PORT components attached to a CONTROLLER_CARD are modeled with the expected OC paths. The operational use case is:

As an automated network repair tool, I want to ensure at least one interface between redundant CONTROLLER_CARD components is fully operational. Before performing a power off or reboot of a CONTROLLER_CARD or a network device wired to a CONTROLLER_CARD PORT, I want to use the OC component tree to trace the subject PORT to it's associated redundant PORT.

Testbed type

Testbed prerequisites

There are no DUT configuration pre-requisites for this test. The DUT must contain the following component types:

  • Two CONTROLLER_CARD components
  • Each CONTROLLER_CARD must contain at least one PORT

Procedure

gNMI-1.22.1: Validate component PORT attributes attached to a CONTROLLER_CARD

  • gNMI Subscribe to the /components and /interfaces tree using ONCE option.
  • Verify two CONTROLLER_CARD components are present.
  • Verify each PORT present on a CONTROLLER_CARD has the following paths set:
    • Find components of type PORT with parent = CONTROLLER_CARD. For example:
      • /components/component/state/parent = the appropriate component of type CONTROLLER_CARD
      • Save the /components/component/name for each of the identified PORTs.
    • Search the /interfaces/interface/state/hardware-port values to find the port names for the physical port on the CONTROLLER_CARD
      • For each of these interfaces, verify /interfaces/interface/state/management = TRUE

Canonical OC

{
  "components": {
    "component": [
      {
        "config": {
          "name": "ControllerCard0"
        },
        "name": "ControllerCard0",
        "state": {
          "type": "CONTROLLER_CARD"
        }
      },
      {
        "config": {
          "name": "Port0"
        },
        "name": "Port0",
        "state": {
          "parent": "ControllerCard0",
          "type": "PORT"
        }
      }
    ]
  },
  "interfaces": {
    "interface": [
      {
        "config": {
          "name": "mgmt0"
        },
        "name": "mgmt0",
        "state": {
          "hardware-port": "Port0",
          "management": true
        }
      }
    ]
  }
}

OpenConfig Path and RPC Coverage

paths:
  ## State Paths ##
    /components/component/state/name:
        platform_type: [
            "CONTROLLER_CARD",
            "PORT"
        ]
    /components/component/state/type:
        platform_type: [
            "CONTROLLER_CARD",
            "PORT"
        ]
    /interfaces/interface/state/name:
    /interfaces/interface/state/management:
    /interfaces/interface/state/hardware-port:

rpcs:
    gnmi:
        gNMI.Subscribe:
            ONCE: true

Minimum DUT platform requirement

MFF - Modular form factor is specified to ensure coverage for redundant CONTROLLER_CARD platform_types.

⚠️ **GitHub.com Fallback** ⚠️