From faac5d7e81292c5786c0e84dc2e9d49214c243ff Mon Sep 17 00:00:00 2001 From: romeyo Date: Thu, 19 Sep 2024 18:58:12 +0000 Subject: [PATCH 1/8] Add atomic-exempt and use it in counters AFT --- release/models/aft/openconfig-aft-common.yang | 10 +++++++- release/models/openconfig-extensions.yang | 24 +++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index c69587e0f..63609143d 100644 --- a/release/models/aft/openconfig-aft-common.yang +++ b/release/models/aft/openconfig-aft-common.yang @@ -23,7 +23,13 @@ submodule openconfig-aft-common { "Submodule containing definitions of groupings that are re-used across multiple contexts within the AFT model."; - oc-ext:openconfig-version "2.6.0"; + oc-ext:openconfig-version "2.7.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.7.0"; + } revision "2024-04-25" { description @@ -785,6 +791,7 @@ submodule openconfig-aft-common { } grouping aft-common-entry-counter-state { + oc-ext:telemetry-atomic-exempt; description "Counters relating to a forwarding entry"; @@ -804,6 +811,7 @@ submodule openconfig-aft-common { } grouping aft-common-backup-entry-counter-state { + oc-ext:telemetry-atomic-exempt; description "Counters relating to a backup forwarding entry"; diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index 2e0fd9f07..2ad20eb74 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -18,7 +18,13 @@ module openconfig-extensions { "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; - oc-ext:openconfig-version "0.5.1"; + oc-ext:openconfig-version "0.5.2"; + + revision "2024-09-19" { + description + "Add telemetry-atomic-exempt annotation."; + reference "0.5.2"; + } revision "2022-10-05" { description @@ -154,7 +160,7 @@ module openconfig-extensions { extension telemetry-atomic { description "The telemetry-atomic annotation is specified in the context of - a subtree (containre, or list), and indicates that all nodes + a subtree (container, or list), and indicates that all nodes within the subtree are always updated together within the data model. For example, all elements under the subtree may be updated as a result of a new alarm being raised, or the arrival of a new @@ -164,6 +170,20 @@ module openconfig-extensions { optimisations for sending or storing the corresponding data."; } + extension telemetry-atomic-exempt { + description + "The telemetry-atomic-exempt annotation is specified in the context + of a subtree (container, or list), and indicates that all nodes + within the subtree are not always updated together within the data + model of the parent tree. All elements under the + subtree may not be updated as a result of a new alarm being raised, + or the arrival of a new protocol message that updates the parent + tree. + This annotation allows parent tree containers with telemetry-atomic + annotation to not be updated when a more frequently updated subtree + (like a counters container) is present."; + } + extension operational { description "The operational annotation is specified in the context of a From 8f237ae80f24c90452898e95df1a1e4b1b0f051c Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:53:33 -0400 Subject: [PATCH 2/8] Update openconfig-extensions.yang formatting --- release/models/openconfig-extensions.yang | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index 2ad20eb74..757103f87 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -179,8 +179,9 @@ module openconfig-extensions { subtree may not be updated as a result of a new alarm being raised, or the arrival of a new protocol message that updates the parent tree. + This annotation allows parent tree containers with telemetry-atomic - annotation to not be updated when a more frequently updated subtree + annotation to not be updated when a more frequently updated subtree (like a counters container) is present."; } From 6cd6b9c2a1f5c4201bcc44ec670ffa138bc8dd2c Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:54:54 -0400 Subject: [PATCH 3/8] Update openconfig-extensions.yang description --- release/models/openconfig-extensions.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index 757103f87..d3a923ba1 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -182,7 +182,7 @@ module openconfig-extensions { This annotation allows parent tree containers with telemetry-atomic annotation to not be updated when a more frequently updated subtree - (like a counters container) is present."; + (for example, a counters container) is present."; } extension operational { From b409bbfbb1e24b8522f1e4740ba7d244d3f43549 Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:56:06 -0400 Subject: [PATCH 4/8] Update openconfig-extensions.yang --- release/models/openconfig-extensions.yang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index d3a923ba1..afa96655b 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -181,8 +181,8 @@ module openconfig-extensions { tree. This annotation allows parent tree containers with telemetry-atomic - annotation to not be updated when a more frequently updated subtree - (for example, a counters container) is present."; + annotation to not be updated when a more frequently updated subtree. + For example, a counters container is present."; } extension operational { From fd6f7f15bfdc5bdef51bfa4f9dbca14e4a58cb1a Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Fri, 20 Sep 2024 12:16:38 -0400 Subject: [PATCH 5/8] bump the version of release/models/openconfig-extensions.yang to 0.6.0 --- release/models/openconfig-extensions.yang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index afa96655b..b110bfb71 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -18,12 +18,12 @@ module openconfig-extensions { "This module provides extensions to the YANG language to allow OpenConfig specific functionality and meta-data to be defined."; - oc-ext:openconfig-version "0.5.2"; + oc-ext:openconfig-version "0.6.0"; revision "2024-09-19" { description "Add telemetry-atomic-exempt annotation."; - reference "0.5.2"; + reference "0.6.0"; } revision "2022-10-05" { From c52dee127d4cc9cc61f3f1b99755ccc8bf2d03bb Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Thu, 26 Sep 2024 13:32:58 -0400 Subject: [PATCH 6/8] Update openconfig-extensions.yang: addressed review feedback --- release/models/openconfig-extensions.yang | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index b110bfb71..a600b9ce5 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -175,14 +175,16 @@ module openconfig-extensions { "The telemetry-atomic-exempt annotation is specified in the context of a subtree (container, or list), and indicates that all nodes within the subtree are not always updated together within the data - model of the parent tree. All elements under the - subtree may not be updated as a result of a new alarm being raised, - or the arrival of a new protocol message that updates the parent - tree. + model of the parent tree. All elements under the subtree may not be + updated as a result of a new alarm being raised, or the arrival of + a new protocol message that updates the parent tree. This annotation allows parent tree containers with telemetry-atomic annotation to not be updated when a more frequently updated subtree. - For example, a counters container is present."; + For example, a counters container is present. + + This extension should only be used when there is a parent that + contains telemetry-atomic extension."; } extension operational { From e334ecc2b1d99635a659202ca30ed95b88255032 Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:03:37 -0400 Subject: [PATCH 7/8] Update openconfig-aft-common.yang: fix trailing whitespace --- release/models/aft/openconfig-aft-common.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index c9b4f42eb..ee27c1bb8 100644 --- a/release/models/aft/openconfig-aft-common.yang +++ b/release/models/aft/openconfig-aft-common.yang @@ -30,7 +30,7 @@ submodule openconfig-aft-common { "Add atomic-exempt attribute to AFT counters containers."; reference "2.8.0"; } - + revision "2024-09-05" { description "Add encap-headers to AFT model."; From 05160c61f715d63f8811405582bf12a9ab7b3e4b Mon Sep 17 00:00:00 2001 From: romeyo Date: Wed, 9 Oct 2024 15:54:33 +0000 Subject: [PATCH 8/8] Addressed review comments --- release/models/aft/openconfig-aft-ethernet.yang | 8 +++++++- release/models/aft/openconfig-aft-ipv4.yang | 8 +++++++- release/models/aft/openconfig-aft-ipv6.yang | 8 +++++++- release/models/aft/openconfig-aft-mpls.yang | 8 +++++++- release/models/aft/openconfig-aft-pf.yang | 8 +++++++- .../models/aft/openconfig-aft-state-synced.yang | 8 +++++++- release/models/aft/openconfig-aft.yang | 8 +++++++- release/models/openconfig-extensions.yang | 14 +++++++------- 8 files changed, 56 insertions(+), 14 deletions(-) diff --git a/release/models/aft/openconfig-aft-ethernet.yang b/release/models/aft/openconfig-aft-ethernet.yang index 3fbe6edab..52d038a62 100644 --- a/release/models/aft/openconfig-aft-ethernet.yang +++ b/release/models/aft/openconfig-aft-ethernet.yang @@ -20,7 +20,13 @@ submodule openconfig-aft-ethernet { "Submodule containing definitions of groupings for the abstract forwarding tables for Ethernet."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/release/models/aft/openconfig-aft-ipv4.yang b/release/models/aft/openconfig-aft-ipv4.yang index 87fb7e6fa..43c19f6a5 100644 --- a/release/models/aft/openconfig-aft-ipv4.yang +++ b/release/models/aft/openconfig-aft-ipv4.yang @@ -20,7 +20,13 @@ submodule openconfig-aft-ipv4 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv4."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description diff --git a/release/models/aft/openconfig-aft-ipv6.yang b/release/models/aft/openconfig-aft-ipv6.yang index 765830cd5..f68138234 100644 --- a/release/models/aft/openconfig-aft-ipv6.yang +++ b/release/models/aft/openconfig-aft-ipv6.yang @@ -20,7 +20,13 @@ submodule openconfig-aft-ipv6 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv6."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/release/models/aft/openconfig-aft-mpls.yang b/release/models/aft/openconfig-aft-mpls.yang index c99e1c58f..add842110 100644 --- a/release/models/aft/openconfig-aft-mpls.yang +++ b/release/models/aft/openconfig-aft-mpls.yang @@ -21,7 +21,13 @@ submodule openconfig-aft-mpls { "Submodule containing definitions of groupings for the abstract forwarding table for MPLS label forwarding."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description diff --git a/release/models/aft/openconfig-aft-pf.yang b/release/models/aft/openconfig-aft-pf.yang index 9980ad5f0..8534f84fa 100644 --- a/release/models/aft/openconfig-aft-pf.yang +++ b/release/models/aft/openconfig-aft-pf.yang @@ -28,7 +28,13 @@ submodule openconfig-aft-pf { fields other than the destination address that is used in other forwarding tables."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/release/models/aft/openconfig-aft-state-synced.yang b/release/models/aft/openconfig-aft-state-synced.yang index fbe6eb5ca..5901b2c1e 100644 --- a/release/models/aft/openconfig-aft-state-synced.yang +++ b/release/models/aft/openconfig-aft-state-synced.yang @@ -16,7 +16,13 @@ submodule openconfig-aft-state-synced { "Submodule containing definitions of groupings for the state synced signals corresponding to various abstract forwarding tables."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/release/models/aft/openconfig-aft.yang b/release/models/aft/openconfig-aft.yang index de3ce202e..d00303963 100644 --- a/release/models/aft/openconfig-aft.yang +++ b/release/models/aft/openconfig-aft.yang @@ -42,7 +42,13 @@ module openconfig-aft { is referred to as an Abstract Forwarding Table (AFT), rather than the FIB."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description diff --git a/release/models/openconfig-extensions.yang b/release/models/openconfig-extensions.yang index a600b9ce5..56cc22cbb 100644 --- a/release/models/openconfig-extensions.yang +++ b/release/models/openconfig-extensions.yang @@ -173,15 +173,15 @@ module openconfig-extensions { extension telemetry-atomic-exempt { description "The telemetry-atomic-exempt annotation is specified in the context - of a subtree (container, or list), and indicates that all nodes - within the subtree are not always updated together within the data - model of the parent tree. All elements under the subtree may not be - updated as a result of a new alarm being raised, or the arrival of - a new protocol message that updates the parent tree. + of a node or subtree (container, or list), and indicates that the node + or all nodes within the subtree are not always updated together within + the data model of the parent tree. All elements under the subtree may + not be updated as a result of a new alarm being raised, or the arrival + of a new protocol message that updates the parent tree. This annotation allows parent tree containers with telemetry-atomic - annotation to not be updated when a more frequently updated subtree. - For example, a counters container is present. + annotation to not be updated when a more frequently updated node or + subtree. For example, a counters container is present. This extension should only be used when there is a parent that contains telemetry-atomic extension.";