From 16df0a6c331f6d22f101821ce943c90c14de819b Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 24 Sep 2024 10:26:50 -0700 Subject: [PATCH 1/4] Fix typo in AES_128_CMAC_96 Keychain identify (#1172) * Fix typo in AES_128_CMAC_96 Keychain identify --- .../keychain/openconfig-keychain-types.yang | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/release/models/keychain/openconfig-keychain-types.yang b/release/models/keychain/openconfig-keychain-types.yang index c923f9ea1..3a49c6857 100644 --- a/release/models/keychain/openconfig-keychain-types.yang +++ b/release/models/keychain/openconfig-keychain-types.yang @@ -21,7 +21,13 @@ module openconfig-keychain-types { "This module contains general data definitions for use in keychain-based authentication."; - oc-ext:openconfig-version "0.3.0"; + oc-ext:openconfig-version "0.3.1"; + + revision "2024-08-27" { + description + "fix typo on AES_128_CMAC"; + reference "0.3.1"; + } revision "2024-08-27" { description @@ -29,6 +35,12 @@ module openconfig-keychain-types { reference "0.3.0"; } + revision "2024-08-27" { + description + "Fix typo in identity AES_128_CMAC_96"; + reference "0.2.1"; + } + revision "2022-03-01" { description "Remove NONE identity from AUTH_TYPE"; @@ -135,7 +147,7 @@ module openconfig-keychain-types { HMAC and HKDF)"; } - identity AES_28_CMAC_96 { + identity AES_128_CMAC_96 { base CRYPTO_TYPE; description "AES-128-CMAC-96 keyed hash function based on a AES-128 block From 03f1c1fe582aeabbae67e80f74e099507a3e2343 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 24 Sep 2024 12:02:34 -0700 Subject: [PATCH 2/4] Add mount-point type (#1168) * add mount-point type --- release/models/system/openconfig-system.yang | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/release/models/system/openconfig-system.yang b/release/models/system/openconfig-system.yang index 8534a909f..a7eb1be7f 100644 --- a/release/models/system/openconfig-system.yang +++ b/release/models/system/openconfig-system.yang @@ -47,7 +47,13 @@ module openconfig-system { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "2.2.0"; + oc-ext:openconfig-version "2.3.0"; + + revision "2024-09-24" { + description + "Added mount-point type leaf to describe the type of file system."; + reference "2.3.0"; + } revision "2024-08-13" { description @@ -420,6 +426,14 @@ module openconfig-system { description "The amount of space currently in use on the filesystem."; } + + leaf type { + type string; + description + "A human readable string indicating the filesystem type used + for storage. Examples might include flash, hard disk, tmpfs/ramdisk + or remote/network based storage."; + } } grouping system-global-state { From 960cfd9366d78c8ab61facf2655dfc3e7f4169f1 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 24 Sep 2024 12:14:21 -0700 Subject: [PATCH 3/4] Add storage counters related to errors (#1091) Add /components/component/storage/state/counters/ as a container to represent storage device counters --- release/models/platform/.spec.yml | 2 + .../platform/openconfig-platform-common.yang | 8 +- .../platform/openconfig-platform-storage.yang | 164 ++++++++++++++++++ .../models/platform/openconfig-platform.yang | 14 +- 4 files changed, 182 insertions(+), 6 deletions(-) create mode 100644 release/models/platform/openconfig-platform-storage.yang diff --git a/release/models/platform/.spec.yml b/release/models/platform/.spec.yml index 59ffb1c76..8dfd9472c 100644 --- a/release/models/platform/.spec.yml +++ b/release/models/platform/.spec.yml @@ -11,6 +11,7 @@ - yang/platform/openconfig-platform-cpu.yang - yang/platform/openconfig-platform-ext.yang - yang/platform/openconfig-platform-software.yang + - yang/platform/openconfig-platform-storage.yang - yang/platform/openconfig-platform-fabric.yang - yang/platform/openconfig-platform-pipeline-counters.yang - yang/platform/openconfig-platform-integrated-circuit.yang @@ -31,6 +32,7 @@ - yang/platform/openconfig-platform-ext.yang - yang/platform/openconfig-platform-cpu.yang - yang/platform/openconfig-platform-software.yang + - yang/platform/openconfig-platform-storage.yang - yang/platform/openconfig-platform-fabric.yang - yang/platform/openconfig-platform-pipeline-counters.yang - yang/platform/openconfig-platform-integrated-circuit.yang diff --git a/release/models/platform/openconfig-platform-common.yang b/release/models/platform/openconfig-platform-common.yang index 79514ea73..b0fcb1757 100644 --- a/release/models/platform/openconfig-platform-common.yang +++ b/release/models/platform/openconfig-platform-common.yang @@ -20,7 +20,13 @@ submodule openconfig-platform-common { "This modules contains common groupings that are used in multiple components within the platform module."; - oc-ext:openconfig-version "0.29.0"; + oc-ext:openconfig-version "0.30.0"; + + revision "2024-10-13" { + description + "Add storage state io-errors."; + reference "0.30.0"; + } revision "2024-10-13" { description diff --git a/release/models/platform/openconfig-platform-storage.yang b/release/models/platform/openconfig-platform-storage.yang new file mode 100644 index 000000000..230d03e07 --- /dev/null +++ b/release/models/platform/openconfig-platform-storage.yang @@ -0,0 +1,164 @@ +module openconfig-platform-storage { + +yang-version "1"; + +// namespace +namespace "http://openconfig.net/yang/platform/storage"; + +prefix "oc-storage"; + +import openconfig-platform { + prefix oc-platform; +} +import openconfig-extensions { + prefix oc-ext; +} +import openconfig-yang-types { + prefix oc-yang; +} + +// meta +organization + "OpenConfig working group"; + +contact + "OpenConfig working group + www.openconfig.net"; + +description + "This module defines data related to STORAGE components in the + OpenConfig platform model. + + Portions of this code were derived from the following copyright holders. + References to each copyright holder are mentioned where related content + is used. + + NVM Express Base Specification Revision 2.0a + https://nvmexpress.org/wp-content/uploads/NVMe-NVM-Express-2.0a-2021.07.26-Ratified.pdf + (c) Copyright 2007 to 2021 NVM Express, Inc. ALL RIGHTS RESERVED. + This NVM Express Base Specification, revision 2.0a is proprietary to the + NVM Express, Inc. (also referred to as “Company”) and/or its successors + and assigns. + + S.M.A.R.T. Attribute: Reallocated Sectors Count | Knowledge Base + http://kb.acronis.com."; + +oc-ext:openconfig-version "0.1.0"; + +revision "2024-08-26" { + description + "Initial revision."; + reference + "0.1.0"; +} + +// OpenConfig specific extensions for module metadata. +oc-ext:regexp-posix; +oc-ext:catalog-organization "openconfig"; +oc-ext:origin "openconfig"; + +// identity statements +// typedef statements +// grouping statements + grouping storage-counters-state { + description + "Operational state for storage component statistics. These leaves + are derived from a list of commonly supported S.M.A.R.T. counters. + Note that while common, these attributes may not be supported by + all storage device vendors and media types."; + + leaf soft-read-error-rate { + type oc-yang:counter64; + description + "Uncorrected read errors reported to the operating system. SMART ID + 201."; + reference + "S.M.A.R.T. Attribute: Soft Read Error Rate / Off Track Errors (Maxtor) + | Knowledge Base. kb.acronis.com."; + } + + leaf reallocated-sectors { + type oc-yang:counter64; + description + "Count of reallocated sectors. The raw value represents a count of + the bad sectors that have been found and remapped. SMART ID 5."; + reference + "S.M.A.R.T. Attribute: Reallocated Sectors Count | Knowledge Base - + kb.acronis.com"; + } + + leaf end-to-end-error { + type oc-yang:counter64; + description + "Count of parity errors which occur in the data path to the media. + SMART ID 184."; + reference + "Acronis Drive Monitor: Disk Health Calculation Knowledge Base - + kb.acronis.com"; + } + + leaf offline-uncorrectable-sectors-count { + type oc-yang:counter64; + description + "The total count of uncorrectable errors when reading/writing a + sector. SMART ID 198."; + reference + "Acronis Drive Monitor: Disk Health Calculation Knowledge Base - + kb.acronis.com"; + } + + leaf life-left { + type uint8; + description + "Indicates the approximate SSD life left, in terms of program/erase + cycles or available reserved blocks. A normalized value of 100 + represents a new drive, with a threshold value at 10 indicating a need + for replacement. A value of 0 may mean that the drive is operating in + read-only mode to allow data recovery. SMART ID 231."; + reference + "SMART attribute details, + https://media.kingston.com/support/downloads/MKP_306_SMART_attribute.pdf"; + } + + leaf percentage-used { + type uint8; + description + "Contains a vendor specific estimate of the percentage of NVM + subsystem life used based on the actual usage and the manufacturer’s + prediction of NVM life. A value of 100 indicates that the estimated + endurance of the NVM in the NVM subsystem has been consumed, but may + not indicate an NVM subsystem failure. The value is allowed to exceed + 100. Percentages greater than 254 shall be represented as 255."; + reference + "NVM Express Base Specification Revision 2.0a + https://nvmexpress.org/wp-content/uploads/NVMe-NVM-Express-2.0a-2021.07.26-Ratified.pdf"; + } + } + grouping storage-state { + description + "Storage component state. These counters are derived from the + linux kernel block layer statistics in /sys/block//stat. + Implementations which do not use the linux kernel to access + storage should provide equivalent counters."; + reference + "https://www.kernel.org/doc/Documentation/block/stat.txt"; + + container counters { + description + "A collection of storage specific statistics entitites."; + + uses storage-counters-state; + } + } + + // data definition statements + // augment statements + augment "/oc-platform:components/oc-platform:component/" + + "oc-platform:storage/oc-platform:state" { + description + "Adding storage data to component model"; + + uses storage-state; + } +} + diff --git a/release/models/platform/openconfig-platform.yang b/release/models/platform/openconfig-platform.yang index 3850f2e78..742c3e8af 100644 --- a/release/models/platform/openconfig-platform.yang +++ b/release/models/platform/openconfig-platform.yang @@ -65,7 +65,13 @@ module openconfig-platform { (presence or absence of a component) and state (physical attributes or status)."; - oc-ext:openconfig-version "0.29.0"; + oc-ext:openconfig-version "0.30.0"; + + revision "2024-10-13" { + description + "Add storage state io-errors."; + reference "0.30.0"; + } revision "2024-10-13" { description @@ -94,13 +100,11 @@ module openconfig-platform { revision "2024-01-30" { description - "Add rules for controller-card power-off - Also introduces last-poweroff-reason container - and last-poweroff-time leaf"; + "Updated description for component-power-type"; reference "0.25.0"; } - revision "2023-11-28" { + revision "2023-11-28" { description "Add model-name"; reference "0.24.0"; From 4513c1485047292dd04339ffc6f5bbf42b1c84b9 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 24 Sep 2024 12:27:54 -0700 Subject: [PATCH 4/4] Restore NONE as an enum value for typedef community-type (#1177) * restore NONE as an enum value for typedef community-type --- .../bgp/openconfig-bgp-common-multiprotocol.yang | 8 +++++++- .../bgp/openconfig-bgp-common-structure.yang | 8 +++++++- release/models/bgp/openconfig-bgp-common.yang | 15 +++++++++++---- release/models/bgp/openconfig-bgp-errors.yang | 8 +++++++- release/models/bgp/openconfig-bgp-global.yang | 8 +++++++- release/models/bgp/openconfig-bgp-neighbor.yang | 8 +++++++- release/models/bgp/openconfig-bgp-peer-group.yang | 8 +++++++- release/models/bgp/openconfig-bgp-types.yang | 14 +++++++++----- release/models/bgp/openconfig-bgp.yang | 8 +++++++- 9 files changed, 69 insertions(+), 16 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang index 705019c01..884bbe8be 100644 --- a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang +++ b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang @@ -24,7 +24,13 @@ submodule openconfig-bgp-common-multiprotocol { for multiple protocols in BGP. The groupings are common across multiple contexts."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description diff --git a/release/models/bgp/openconfig-bgp-common-structure.yang b/release/models/bgp/openconfig-bgp-common-structure.yang index e737d9d13..8aee8797b 100644 --- a/release/models/bgp/openconfig-bgp-common-structure.yang +++ b/release/models/bgp/openconfig-bgp-common-structure.yang @@ -21,7 +21,13 @@ submodule openconfig-bgp-common-structure { "This sub-module contains groupings that are common across multiple BGP contexts and provide structure around other primitive groupings."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description diff --git a/release/models/bgp/openconfig-bgp-common.yang b/release/models/bgp/openconfig-bgp-common.yang index fe3f82477..ac1a3983f 100644 --- a/release/models/bgp/openconfig-bgp-common.yang +++ b/release/models/bgp/openconfig-bgp-common.yang @@ -24,7 +24,13 @@ submodule openconfig-bgp-common { may be application to a subset of global, peer-group or neighbor contexts."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description @@ -326,9 +332,10 @@ submodule openconfig-bgp-common { leaf-list send-community-type { type oc-bgp-types:community-type; description - "Specify which types of community should be sent to the - neighbor or group. The default is to not send the - community attribute"; + "Specify which types of community should be sent to the neighbor or + group. The default is to not send the community attribute. Note, if + the NONE community-type is specified, no other types must be + specified."; } leaf description { diff --git a/release/models/bgp/openconfig-bgp-errors.yang b/release/models/bgp/openconfig-bgp-errors.yang index 662395606..53372afc7 100644 --- a/release/models/bgp/openconfig-bgp-errors.yang +++ b/release/models/bgp/openconfig-bgp-errors.yang @@ -18,7 +18,13 @@ submodule openconfig-bgp-errors { "This module defines BGP NOTIFICATION message error codes and subcodes"; - oc-ext:openconfig-version "6.0.0"; + oc-ext:openconfig-version "6.1.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "6.1.0"; + } revision "2024-01-31" { description diff --git a/release/models/bgp/openconfig-bgp-global.yang b/release/models/bgp/openconfig-bgp-global.yang index 28e73bac5..9a1480182 100644 --- a/release/models/bgp/openconfig-bgp-global.yang +++ b/release/models/bgp/openconfig-bgp-global.yang @@ -27,7 +27,13 @@ submodule openconfig-bgp-global { "This sub-module contains groupings that are specific to the global context of the OpenConfig BGP module"; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description diff --git a/release/models/bgp/openconfig-bgp-neighbor.yang b/release/models/bgp/openconfig-bgp-neighbor.yang index 3087ae03c..ddcef2e8b 100644 --- a/release/models/bgp/openconfig-bgp-neighbor.yang +++ b/release/models/bgp/openconfig-bgp-neighbor.yang @@ -30,7 +30,13 @@ submodule openconfig-bgp-neighbor { "This sub-module contains groupings that are specific to the neighbor context of the OpenConfig BGP module."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description diff --git a/release/models/bgp/openconfig-bgp-peer-group.yang b/release/models/bgp/openconfig-bgp-peer-group.yang index 9091e68e1..aba5163ac 100644 --- a/release/models/bgp/openconfig-bgp-peer-group.yang +++ b/release/models/bgp/openconfig-bgp-peer-group.yang @@ -25,7 +25,13 @@ submodule openconfig-bgp-peer-group { "This sub-module contains groupings that are specific to the peer-group context of the OpenConfig BGP module."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description diff --git a/release/models/bgp/openconfig-bgp-types.yang b/release/models/bgp/openconfig-bgp-types.yang index 2a9298a6a..57b8e9b65 100644 --- a/release/models/bgp/openconfig-bgp-types.yang +++ b/release/models/bgp/openconfig-bgp-types.yang @@ -24,7 +24,13 @@ module openconfig-bgp-types { policy. It can be imported by modules that make use of BGP attributes"; - oc-ext:openconfig-version "6.0.0"; + oc-ext:openconfig-version "6.1.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "6.1.0"; + } revision "2024-02-01" { description @@ -795,10 +801,8 @@ module openconfig-bgp-types { } enum NONE { description - "Do not send any community attribute. - This value has been deprecated because the node is now - a leaf-list."; - status deprecated; + "Do not send any community attribute. If this value is present + then the other community-types must not be present."; } } description diff --git a/release/models/bgp/openconfig-bgp.yang b/release/models/bgp/openconfig-bgp.yang index de65238c9..054f3cdd9 100644 --- a/release/models/bgp/openconfig-bgp.yang +++ b/release/models/bgp/openconfig-bgp.yang @@ -68,7 +68,13 @@ module openconfig-bgp { whereas leaf not present inherits its value from the leaf present at the next higher level in the hierarchy."; - oc-ext:openconfig-version "9.7.1"; + oc-ext:openconfig-version "9.8.0"; + + revision "2024-09-06" { + description + "Restore NONE enum value for community-type."; + reference "9.8.0"; + } revision "2023-12-28" { description