diff --git a/release/models/platform/openconfig-platform-common.yang b/release/models/platform/openconfig-platform-common.yang index 35d93c4b5..7159a2ba9 100644 --- a/release/models/platform/openconfig-platform-common.yang +++ b/release/models/platform/openconfig-platform-common.yang @@ -20,7 +20,14 @@ submodule openconfig-platform-common { "This modules contains common groupings that are used in multiple components within the platform module."; - oc-ext:openconfig-version "0.32.0"; + oc-ext:openconfig-version "0.33.0"; + + revision "2026-07-08" { + description + "Add component-power-management-state grouping with the + read-only power-oper-state leaf."; + reference "0.33.0"; + } revision "2025-07-15" { description @@ -289,6 +296,30 @@ revision "2024-10-13" { } } + grouping component-power-management-state { + description + "Common grouping for reporting the operational power state of a + component"; + + leaf power-oper-state { + type oc-platform-types:component-power-oper-type; + description + "The operational power state of the component. Whereas + power-admin-state reflects the configured (intended) power + state, power-oper-state reflects the actual, applied power + state as observed by the system. + + While a power change is in progress, for example when a + component is being powered down but has not yet fully powered + off, this leaf reports POWER_TRANSITIONING and does not report + POWER_DISABLED until the component has fully powered off. This + provides a consistent operational view across telemetry and + other management interfaces and allows management systems to + avoid initiating a subsequent power operation before the + current transition has completed."; + } + } + // data definition statements // augment statements diff --git a/release/models/platform/openconfig-platform-controller-card.yang b/release/models/platform/openconfig-platform-controller-card.yang index 4ed5156c7..2c640b3e4 100644 --- a/release/models/platform/openconfig-platform-controller-card.yang +++ b/release/models/platform/openconfig-platform-controller-card.yang @@ -22,7 +22,13 @@ module openconfig-platform-controller-card { "This module defines data related to CONTROLLER_CARD components in the openconfig-platform model"; - oc-ext:openconfig-version "0.2.0"; + oc-ext:openconfig-version "0.3.0"; + + revision "2026-07-08" { + description + "Add read-only power-oper-state leaf to controller-card state."; + reference "0.3.0"; + } revision "2024-04-10" { description @@ -83,6 +89,7 @@ module openconfig-platform-controller-card { is only valid when the type of the component is CONTROLLER_CARD."; uses controller-card-config; + uses oc-platform:component-power-management-state; } // rpc statements diff --git a/release/models/platform/openconfig-platform-fabric.yang b/release/models/platform/openconfig-platform-fabric.yang index 95d106cf6..f916e0c93 100644 --- a/release/models/platform/openconfig-platform-fabric.yang +++ b/release/models/platform/openconfig-platform-fabric.yang @@ -22,7 +22,13 @@ module openconfig-platform-fabric { "This module defines data related to FABRIC components in the openconfig-platform model"; - oc-ext:openconfig-version "0.1.0"; + oc-ext:openconfig-version "0.2.0"; + + revision "2026-07-08" { + description + "Add read-only power-oper-state leaf to fabric state."; + reference "0.2.0"; + } revision "2022-07-28" { description @@ -71,6 +77,7 @@ module openconfig-platform-fabric { is only valid when the type of the component is FABRIC."; uses fabric-config; + uses oc-platform:component-power-management-state; } // rpc statements diff --git a/release/models/platform/openconfig-platform-linecard.yang b/release/models/platform/openconfig-platform-linecard.yang index d0429b640..a5136ff35 100644 --- a/release/models/platform/openconfig-platform-linecard.yang +++ b/release/models/platform/openconfig-platform-linecard.yang @@ -22,7 +22,13 @@ module openconfig-platform-linecard { "This module defines data related to LINECARD components in the openconfig-platform model"; -oc-ext:openconfig-version "1.2.0"; +oc-ext:openconfig-version "1.3.0"; + + revision "2026-07-08" { + description + "Add read-only power-oper-state leaf to linecard state."; + reference "1.3.0"; + } revision "2024-04-12" { description @@ -132,6 +138,7 @@ oc-ext:openconfig-version "1.2.0"; uses linecard-config; uses linecard-state; + uses oc-platform:component-power-management-state; } uses oc-platform:platform-resource-utilization-top; } diff --git a/release/models/platform/openconfig-platform-types.yang b/release/models/platform/openconfig-platform-types.yang index e21e32e30..a77a7f170 100644 --- a/release/models/platform/openconfig-platform-types.yang +++ b/release/models/platform/openconfig-platform-types.yang @@ -22,7 +22,15 @@ module openconfig-platform-types { "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; - oc-ext:openconfig-version "1.12.0"; + oc-ext:openconfig-version "1.13.0"; + +revision "2026-07-08" { + description + "Add component-power-oper-type typedef with POWER_TRANSITIONING + to reflect the operational power state of a component, + including transient transitions."; + reference "1.13.0"; + } revision "2026-05-19" { description @@ -581,6 +589,32 @@ revision "2025-07-09" { is powered on or off"; } + typedef component-power-oper-type { + type enumeration { + enum POWER_ENABLED { + description + "The component is powered on."; + } + enum POWER_DISABLED { + description + "The component is powered off."; + } + enum POWER_TRANSITIONING { + description + "The component is transitioning between the POWER_ENABLED and + POWER_DISABLED states, for example while it is being powered + down but has not yet fully powered off, or while it is being + powered up but is not yet fully powered on."; + } + } + description + "A generic type reflecting the operational power state of a + hardware component. This is the operational counterpart to + component-power-type (the configured, intended power state) and + may include operational-only values that are not valid as + configuration."; + } + identity COMPONENT_REBOOT_REASON { description "Base entity for component reboot reasons."; diff --git a/release/models/platform/openconfig-platform.yang b/release/models/platform/openconfig-platform.yang index 675984999..bd4aaa76c 100644 --- a/release/models/platform/openconfig-platform.yang +++ b/release/models/platform/openconfig-platform.yang @@ -65,7 +65,14 @@ module openconfig-platform { (presence or absence of a component) and state (physical attributes or status)."; - oc-ext:openconfig-version "0.32.0"; + oc-ext:openconfig-version "0.33.0"; + + revision "2026-07-08" { + description + "Add component-power-management-state grouping with the + read-only power-oper-state leaf."; + reference "0.33.0"; + } revision "2025-07-15" { description