From 50ef1df338100f6e5f1775a6b8a691574559d0ae Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Mon, 21 Oct 2024 22:17:05 +0000 Subject: [PATCH 01/13] Add support for policy forwarding match on next hop and GUE encapsulation action. --- release/models/aft/.spec.yml | 1 - release/models/aft/openconfig-aft-common.yang | 24 +- release/models/aft/openconfig-aft-types.yang | 107 --------- .../openconfig-pf-forwarding-policies.yang | 208 +++++++++++++++++- release/models/types/openconfig-types.yang | 34 +++ 5 files changed, 253 insertions(+), 121 deletions(-) delete mode 100644 release/models/aft/openconfig-aft-types.yang diff --git a/release/models/aft/.spec.yml b/release/models/aft/.spec.yml index fd1079c0b..8a739de04 100644 --- a/release/models/aft/.spec.yml +++ b/release/models/aft/.spec.yml @@ -1,7 +1,6 @@ - name: openconfig-aft docs: - yang/aft/openconfig-aft.yang - - yang/aft/openconfig-aft-types.yang - yang/aft/openconfig-aft-summary.yang build: - yang/network-instance/openconfig-network-instance.yang diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index 50eac8d8f..08b4ebe47 100644 --- a/release/models/aft/openconfig-aft-common.yang +++ b/release/models/aft/openconfig-aft-common.yang @@ -9,7 +9,7 @@ submodule openconfig-aft-common { import openconfig-inet-types { prefix "oc-inet"; } import openconfig-mpls-types { prefix "oc-mplst"; } import openconfig-policy-types { prefix "oc-pol-types"; } - import openconfig-aft-types { prefix "oc-aftt"; } + import openconfig-types { prefix oc-types; } import openconfig-evpn-types { prefix "oc-evpn-types"; } organization @@ -303,7 +303,7 @@ submodule openconfig-aft-common { } container gre { - when "../state/type = 'oc-aftt:GRE'"; + when "../state/type = 'oc-types:GRE'"; description "Container of nodes for GRE encapsulation."; @@ -316,7 +316,7 @@ submodule openconfig-aft-common { } container ipv4 { - when "../state/type = 'oc-aftt:IPV4'"; + when "../state/type = 'oc-types:IPV4'"; description "Container of nodes for UDP in IPv4 encapsulation. When this container is used, an IPv4 packet with no transport header @@ -331,7 +331,7 @@ submodule openconfig-aft-common { } container ipv6 { - when "../state/type = 'oc-aftt:IPV6'"; + when "../state/type = 'oc-types:IPV6'"; description "Container of nodes for UDP in IPv6 encapsulation. When this container is used, an IPv6 packet with no transport header @@ -346,7 +346,7 @@ submodule openconfig-aft-common { } container mpls { - when "../state/type = 'oc-aftt:MPLS'"; + when "../state/type = 'oc-types:MPLS'"; description "Container of nodes for MPLS encapsulation."; @@ -359,7 +359,7 @@ submodule openconfig-aft-common { } container udp-v4 { - when "../state/type = 'oc-aftt:UDPV4'"; + when "../state/type = 'oc-types:UDPV4'"; description "Container of nodes for UDP in IPv4 encapsulation. When this container is used, an IPv4 header with a UDP header is added @@ -375,7 +375,7 @@ submodule openconfig-aft-common { } container udp-v6 { - when "../state/type = 'oc-aftt:UDPV6'"; + when "../state/type = 'oc-types:UDPV6'"; description "Container of nodes for UDP in IPv6 encapsulation. When this container is used, an IPv6 header with a UDP header is added @@ -391,7 +391,7 @@ submodule openconfig-aft-common { } container vxlan { - when "../state/type = 'oc-aftt:VXLAN'"; + when "../state/type = 'oc-types:VXLAN'"; description "Container of nodes for VXLAN encapsulation."; @@ -422,7 +422,7 @@ submodule openconfig-aft-common { } leaf type { - type oc-aftt:encapsulation-header-type; + type oc-types:encapsulation-header-type; description "Defines which type of packet header should be used."; } @@ -571,7 +571,7 @@ submodule openconfig-aft-common { } leaf encapsulate-header { - type oc-aftt:encapsulation-header-type; + type oc-types:encapsulation-header-type; description "When forwarding a packet to the specified next-hop the local system performs an encapsulation of the packet - adding the @@ -584,7 +584,7 @@ submodule openconfig-aft-common { } leaf decapsulate-header { - type oc-aftt:encapsulation-header-type; + type oc-types:encapsulation-header-type; description "When forwarding a packet to the specified next-hop, the local system performs a decapsulation of the packet - removing the @@ -774,7 +774,7 @@ submodule openconfig-aft-common { uses aft-common-install-protocol; leaf decapsulate-header { - type oc-aftt:encapsulation-header-type; + type oc-types:encapsulation-header-type; description "When forwarding a packet to the specified next-hop, the local system performs a decapsulation of the packet - removing the diff --git a/release/models/aft/openconfig-aft-types.yang b/release/models/aft/openconfig-aft-types.yang deleted file mode 100644 index 56d920b5f..000000000 --- a/release/models/aft/openconfig-aft-types.yang +++ /dev/null @@ -1,107 +0,0 @@ -module openconfig-aft-types { - - namespace "http://openconfig.net/yang/fib-types"; - prefix "oc-aftt"; - - import openconfig-extensions { prefix "oc-ext"; } - - organization - "OpenConfig Working Group"; - - contact - "OpenConfig Working Group - www.openconfig.net"; - - description - "Types related to the OpenConfig Abstract Forwarding - Table (AFT) model"; - - oc-ext:openconfig-version "1.2.0"; - - revision "2024-07-18" { - description - "Add MPLS in UDP enums for encapsulate-header."; - reference "1.2.0"; - } - - revision "2022-05-05" { - description - "Add network-instance and decapsulate-header in NH AFT entry state"; - reference "1.1.0"; - } - - revision "2021-08-24" { - description - "Add vxlan to next-hops encapsulation-header-type."; - reference "0.3.5"; - } - - revision "2019-11-07" { - description - "Move lsp-name leaf out of aft-common-entry-nexthop-state group."; - reference "0.3.4"; - } - - revision "2019-08-01" { - description - "Add lsp-name leaf to AFT next-hop."; - reference "0.3.3"; - } - - revision "2018-11-21" { - description - "Add OpenConfig module metadata extensions."; - reference "0.3.2"; - } - - revision 2017-08-24 { - description - "Formatting fixes"; - reference "0.3.1"; - } - - revision 2017-05-10 { - description - "Refactor to provide concretised per-AF schemas per AFT."; - reference "0.3.0"; - } - - // OpenConfig specific extensions for module metadata. - oc-ext:regexp-posix; - oc-ext:catalog-organization "openconfig"; - oc-ext:origin "openconfig"; - - typedef encapsulation-header-type { - type enumeration { - enum GRE { - description - "The encapsulation header is a Generic Routing Encapsulation - header."; - } - enum IPV4 { - description - "The encapsulation header is an IPv4 packet header"; - } - enum IPV6 { - description - "The encapsulation header is an IPv6 packet header"; - } - enum MPLS { - description - "The encapsulation header is one or more MPLS labels indicated - by the pushed and popped label stack lists."; - } - enum VXLAN { - description - "The encapsulation header is a VXLAN packet header"; - } - enum UDP { - description - "The encapsulation header is UDP packet header."; - } - } - description - "Types of tunnel encapsulation that are supported by systems as either - head- or tail-end."; - } -} diff --git a/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang b/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang index 9485ab3c4..53eb2a4c0 100644 --- a/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang +++ b/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang @@ -21,7 +21,13 @@ submodule openconfig-pf-forwarding-policies { "This submodule contains configuration and operational state relating to the definition of policy-forwarding policies."; - oc-ext:openconfig-version "0.6.1"; + oc-ext:openconfig-version "0.7.0"; + + revision "2024-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "0.7.0"; + } revision "2023-04-25" { description @@ -162,6 +168,7 @@ submodule openconfig-pf-forwarding-policies { uses oc-pmatch:ipv4-protocol-fields-top; uses oc-pmatch:ipv6-protocol-fields-top; uses oc-pmatch:transport-fields-top; + uses pf-match-next-hop-groups-config; container action { description @@ -184,6 +191,7 @@ submodule openconfig-pf-forwarding-policies { } uses pf-forwarding-policy-action-encapsulate-gre; + uses pf-forwarding-policy-action-encapsulate; } } } @@ -518,4 +526,202 @@ submodule openconfig-pf-forwarding-policies { encapsulating the packet matching the rule."; } } + + grouping pf-forwarding-policy-action-encapsulate { + description + "Configuration parameters for the encapsulate forwarding + policy action."; + + container encap-headers { + description + "Container for packet encapsulation headers. When leaves in this + container are populated, packets matching the policy rule indicates + encapsulation of the packet is performed using a stack of one or more + headers defined in the list encap-header. + + Each entry in the list must indicate an encapsulation type and + populate a container with the parameters for that encapsulation + header."; + + list encap-header { + description + "A list of headers added on top of a packet ordered by the + index value. The inner-most header is the 0th value and is + adjacent to the original packet. Additional headers may be + added in index order. + + For example, in an encapsulation stack for MPLS in UDPv4, the + first index in the list is the MPLS header and the second + index is a UDPv4 header."; + + key "index"; + + leaf index { + type leafref { + path "../config/index"; + } + description + "A unique index identifying an encapsulation header in a stack + of encapsulation headers."; + } + + container config { + description + "Config parameters relating to encapsulation headers."; + + uses pf-encap-headers-config; + } + + container state { + config false; + description + "State parameters relating to encapsulation headers."; + + uses pf-encap-headers-config; + } + + container udp { + when "../config/type = 'oc-types:UDP'"; + description + "Container of nodes for UDP in IPv4 encapsulation. When this + container is used, an IPv4 header with a UDP header is added + to the encapsulation list."; + + container config { + description + "Config parameters relating to UDP in IPv4 encapsulation + headers."; + + uses pf-encap-udp-config; + } + + container state { + config false; + description + "State parameters relating to UDP in IPv4 encapsulation + headers."; + + uses pf-encap-udp-config; + } + } + } + } + } + + grouping pf-encap-headers-config { + description + "Configuration parameters parameters relating to encapsulation headers."; + + leaf index { + type uint8; + description + "A pointer to an entry in an ordered list of encapsulation headers."; + } + + leaf type { + type oc-types:encapsulation-header-type; + description + "Defines which type of packet header should be used."; + } + } + + grouping pf-encap-udp-config { + description + "Configuration parameters relating to UDP in IPv4 encapsulation headers."; + + leaf src-ip { + type oc-inet:ipv4-prefix; + description + "The source IPv4 address to use for the UDP header."; + } + + leaf dst-ip { + type oc-inet:ipv4-prefix; + description + "The destination IPv4 address to use for the UDP header."; + } + + leaf dscp { + type oc-inet:dscp; + description + "Value of diffserv codepoint to use for the UDP header."; + } + + leaf ip-ttl { + type uint8; + description + "The TTL value to use for the UDP header."; + } + + leaf src-udp-port { + type uint16; + description + "The source port to use for the UDP header."; + } + + leaf dst-udp-port { + type uint16; + description + "The destination port to use for the UDP header."; + } + } + + grouping pf-match-next-hop-groups-config { + description + "Configuration parameters relating matching next-hop of a packet."; + + container next-hop-groups { + description + "Container for groups of next-hops."; + + list next-hop-group { + description + "A next-hop that a packet can be sent to. This is used when + a match needs to be made of the next hop of a prefix instead of a + field in a packet header."; + + key "index"; + + leaf index { + type leafref { + path "../config/index"; + } + description + "A unique index identifying a next-hop-group entry."; + } + + container config { + description + "Config parameters relating to a next-hop-group."; + + uses pf-next-hop-groups-config; + } + + container state { + config false; + description + "State parameters relating to a next-hop-group."; + + uses pf-next-hop-groups-config; + } + } + } + } + + grouping pf-next-hop-groups-config { + description + "Configuration parameters relating to next-hop groups."; + + leaf index { + type uint8; + description + "A pointer to an entry in an ordered list of next-hop-groups."; + } + + leaf ip-address { + type oc-inet:ip-address; + description + "The next-hop IP address to send the packet to."; + } + } } diff --git a/release/models/types/openconfig-types.yang b/release/models/types/openconfig-types.yang index a146b9b76..cdd0830d3 100644 --- a/release/models/types/openconfig-types.yang +++ b/release/models/types/openconfig-types.yang @@ -164,6 +164,40 @@ module openconfig-types { avg/min/max stats are computed and reported."; } + typedef encapsulation-header-type { + type enumeration { + enum GRE { + description + "The encapsulation header is a Generic Routing Encapsulation + header."; + } + enum IPV4 { + description + "The encapsulation header is an IPv4 packet header"; + } + enum IPV6 { + description + "The encapsulation header is an IPv6 packet header"; + } + enum MPLS { + description + "The encapsulation header is one or more MPLS labels indicated + by the pushed and popped label stack lists."; + } + enum VXLAN { + description + "The encapsulation header is a VXLAN packet header"; + } + enum UDP { + description + "The encapsulation header is UDP packet header."; + } + } + description + "Types of tunnel encapsulation that are supported by systems as either + head- or tail-end."; + } + grouping stat-interval-state { description "Reusable leaf definition for stats computation interval"; From 131212f1304f6e720d941163054354fc2f04a1ff Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Mon, 21 Oct 2024 15:27:02 -0700 Subject: [PATCH 02/13] Update openconfig-pf-forwarding-policies.yang Add support for policy forwarding match on next hop and GUE encapsulation action. * Update container name to be address specific --- .../openconfig-pf-forwarding-policies.yang | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang b/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang index 53eb2a4c0..7fd7a63c9 100644 --- a/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang +++ b/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang @@ -580,7 +580,7 @@ submodule openconfig-pf-forwarding-policies { uses pf-encap-headers-config; } - container udp { + container udp-v4 { when "../config/type = 'oc-types:UDP'"; description "Container of nodes for UDP in IPv4 encapsulation. When this @@ -592,7 +592,7 @@ submodule openconfig-pf-forwarding-policies { "Config parameters relating to UDP in IPv4 encapsulation headers."; - uses pf-encap-udp-config; + uses pf-encap-udp-v4-config; } container state { @@ -601,7 +601,7 @@ submodule openconfig-pf-forwarding-policies { "State parameters relating to UDP in IPv4 encapsulation headers."; - uses pf-encap-udp-config; + uses pf-encap-udp-v4-config; } } } @@ -625,7 +625,7 @@ submodule openconfig-pf-forwarding-policies { } } - grouping pf-encap-udp-config { + grouping pf-encap-udp-v4-config { description "Configuration parameters relating to UDP in IPv4 encapsulation headers."; From 17ab4c8f1fb438f66acd87db0e0a538ab4732aa4 Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Mon, 21 Oct 2024 15:53:10 -0700 Subject: [PATCH 03/13] Add policy forwarding for next hop match and GUE encapsulation action * Import oc-types module before using it. --- .../policy-forwarding/openconfig-pf-forwarding-policies.yang | 1 + 1 file changed, 1 insertion(+) diff --git a/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang b/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang index 7fd7a63c9..04622f798 100644 --- a/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang +++ b/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang @@ -7,6 +7,7 @@ submodule openconfig-pf-forwarding-policies { import openconfig-packet-match { prefix "oc-pmatch"; } import openconfig-yang-types { prefix "oc-yang"; } import openconfig-inet-types { prefix "oc-inet"; } + import openconfig-types { prefix oc-types; } include openconfig-pf-path-groups; From 881b9e606c4b8a4d631e7c85dc84d303a8230dc9 Mon Sep 17 00:00:00 2001 From: Aaron Bamberger Date: Tue, 22 Oct 2024 11:59:28 -0500 Subject: [PATCH 04/13] Updates to the ES model to allow the configuration of an ES-import route target (#1109) * Add a new leaf "es-import-route-target" to the Ethernet Segment config model to allow the explicit configuration of an ES-import route target as per RFC7432 Section 7.6 --- .../openconfig-ethernet-segments.yang | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/release/models/ethernet-segments/openconfig-ethernet-segments.yang b/release/models/ethernet-segments/openconfig-ethernet-segments.yang index b09357564..0d490661f 100644 --- a/release/models/ethernet-segments/openconfig-ethernet-segments.yang +++ b/release/models/ethernet-segments/openconfig-ethernet-segments.yang @@ -8,6 +8,7 @@ module openconfig-ethernet-segments { import openconfig-extensions { prefix oc-ext; } import openconfig-interfaces { prefix oc-if; } + import openconfig-yang-types { prefix oc-yang-types; } import openconfig-evpn-types { prefix oc-evpn-types; } // meta @@ -23,7 +24,13 @@ module openconfig-ethernet-segments { The ethernet segments are used in EVPN services are defined for the whole device"; - oc-ext:openconfig-version "0.1.0"; + oc-ext:openconfig-version "0.2.0"; + + revision "2024-09-06" { + description + "Added ability to configure an explicit es-import-route-target for an ES"; + reference "0.2.0"; + } revision "2021-06-28" { description @@ -199,6 +206,17 @@ grouping evpn-ethernet-segment-df-config { "RFC 7432: BGP MPLS-Based Ethernet VPN"; } + leaf es-import-route-target { + type oc-yang-types:mac-address; + description + "Received ES routes with an ES-Import extended community set to this value + are imported into this ethernet segment. When configured by a user, the + es-import-route-target will be used, otherwise the system automatically + derives the value used by following the procedures in RFC 7432 Section 7.6."; + reference + "RFC 7432: BGP MPLS-Based Ethernet VPN Section 7.6"; + } + uses oc-if:interface-ref-common; } @@ -247,4 +265,4 @@ grouping evpn-ethernet-segment-df-config { uses evpn-ethernet-segment-top; -} \ No newline at end of file +} From 35b7954619d4c76dbb37903c6f494891b62618d6 Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:00:13 -0400 Subject: [PATCH 05/13] Define `telemetry-atomic-exempt` annotation. Add `telemetry-atomic-exempt` annotation to AFT counters containers (#1186) * Add atomic-exempt and use it in counters AFT --- release/models/aft/openconfig-aft-common.yang | 10 ++++++- .../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 +++++- .../aft/openconfig-aft-state-synced.yang | 8 +++++- release/models/aft/openconfig-aft.yang | 8 +++++- release/models/openconfig-extensions.yang | 27 +++++++++++++++++-- 9 files changed, 83 insertions(+), 10 deletions(-) diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index 50eac8d8f..ee27c1bb8 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.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 @@ -1093,6 +1099,7 @@ submodule openconfig-aft-common { } grouping aft-common-entry-counter-state { + oc-ext:telemetry-atomic-exempt; description "Counters relating to a forwarding entry"; @@ -1112,6 +1119,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/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 2e0fd9f07..56cc22cbb 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.6.0"; + + revision "2024-09-19" { + description + "Add telemetry-atomic-exempt annotation."; + reference "0.6.0"; + } 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,23 @@ 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 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 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."; + } + extension operational { description "The operational annotation is specified in the context of a From 6afb050ed65e2409432ddf45caa586dc5ba59ce8 Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Tue, 22 Oct 2024 18:39:40 +0000 Subject: [PATCH 06/13] Add policy forwarding for next hop match and GUE encapsulation action (updated versions also) --- release/models/aft/openconfig-aft-common.yang | 8 +++++++- .../policy-forwarding/openconfig-pf-interfaces.yang | 8 +++++++- .../policy-forwarding/openconfig-pf-path-groups.yang | 8 +++++++- .../policy-forwarding/openconfig-policy-forwarding.yang | 8 +++++++- release/models/types/openconfig-types.yang | 8 +++++++- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index 08b4ebe47..421d5b20d 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.7.0"; + oc-ext:openconfig-version "2.8.0"; + + revision "2024-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "2.8.0"; + } revision "2024-09-05" { description diff --git a/release/models/policy-forwarding/openconfig-pf-interfaces.yang b/release/models/policy-forwarding/openconfig-pf-interfaces.yang index 705e7f795..602eaee82 100644 --- a/release/models/policy-forwarding/openconfig-pf-interfaces.yang +++ b/release/models/policy-forwarding/openconfig-pf-interfaces.yang @@ -19,7 +19,13 @@ submodule openconfig-pf-interfaces { "This submodule contains groupings related to the association between interfaces and policy forwarding rules."; - oc-ext:openconfig-version "0.6.1"; + oc-ext:openconfig-version "0.7.0"; + + revision "2024-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "0.7.0"; + } revision "2023-04-25" { description diff --git a/release/models/policy-forwarding/openconfig-pf-path-groups.yang b/release/models/policy-forwarding/openconfig-pf-path-groups.yang index c1c9283cb..84cff914c 100644 --- a/release/models/policy-forwarding/openconfig-pf-path-groups.yang +++ b/release/models/policy-forwarding/openconfig-pf-path-groups.yang @@ -18,7 +18,13 @@ submodule openconfig-pf-path-groups { forwarding entities together to be used as policy forwarding targets."; - oc-ext:openconfig-version "0.6.1"; + oc-ext:openconfig-version "0.7.0"; + + revision "2024-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "0.7.0"; + } revision "2023-04-25" { description diff --git a/release/models/policy-forwarding/openconfig-policy-forwarding.yang b/release/models/policy-forwarding/openconfig-policy-forwarding.yang index c6d37209a..f46f364b9 100644 --- a/release/models/policy-forwarding/openconfig-policy-forwarding.yang +++ b/release/models/policy-forwarding/openconfig-policy-forwarding.yang @@ -81,7 +81,13 @@ module openconfig-policy-forwarding { The forwarding action of the corresponding policy is set to PATH_GROUP and references the configured group of LSPs."; - oc-ext:openconfig-version "0.6.1"; + oc-ext:openconfig-version "0.7.0"; + + revision "2024-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "0.7.0"; + } revision "2023-04-25" { description diff --git a/release/models/types/openconfig-types.yang b/release/models/types/openconfig-types.yang index cdd0830d3..bae575380 100644 --- a/release/models/types/openconfig-types.yang +++ b/release/models/types/openconfig-types.yang @@ -21,7 +21,13 @@ module openconfig-types { are used across OpenConfig models. It can be imported by modules that make use of these types."; - oc-ext:openconfig-version "1.0.0"; + oc-ext:openconfig-version "1.1.0"; + + revision "2024-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "1.1.0"; + } revision "2024-01-31" { description From e92e889aee36edc4f1289dbf30cf6f80a392109e Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Tue, 22 Oct 2024 11:51:28 -0700 Subject: [PATCH 07/13] Add policy forwarding for next hop match and GUE encapsulation action Resolved version conflict in openconfig-aft-common.yang --- release/models/aft/openconfig-aft-common.yang | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index 421d5b20d..b3acf05be 100644 --- a/release/models/aft/openconfig-aft-common.yang +++ b/release/models/aft/openconfig-aft-common.yang @@ -23,11 +23,17 @@ 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.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "2.9.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; reference "2.8.0"; } From 9ab7c1fcce09bfca53acb7b9c78f1aa17c86da3d Mon Sep 17 00:00:00 2001 From: Emmanuel Ferdman Date: Wed, 23 Oct 2024 01:12:48 +0300 Subject: [PATCH 08/13] Update contributions guide reference (#1205) Signed-off-by: Emmanuel Ferdman --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index acbb7b9ca..39a35b9df 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,7 +3,7 @@ tagged with "Note" can be removed from the template.] [Note: Before this PR can be reviewed please agree to the CLA covering this repo. Please also review the contribution guide - -https://github.com/openconfig/public/blob/master/doc/external-contributions-guide.md] +https://github.com/openconfig/public/blob/master/doc/contributions-guide.md] ### Change Scope From 92b2c56bacd6677511e32947b0a7fd9b4dbdef03 Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Wed, 23 Oct 2024 17:27:32 +0000 Subject: [PATCH 09/13] Add policy forwarding for next hop match and GUE encapsulation action (with version updates) --- 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 +++++++- release/models/aft/openconfig-aft-state-synced.yang | 8 +++++++- release/models/aft/openconfig-aft.yang | 8 +++++++- 7 files changed, 49 insertions(+), 7 deletions(-) diff --git a/release/models/aft/openconfig-aft-ethernet.yang b/release/models/aft/openconfig-aft-ethernet.yang index 3fbe6edab..e3daca701 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + 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..769ef6701 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + 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..75a30c001 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + 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..984620970 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + 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..8e06cee2b 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + 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..b46ac1788 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + 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..08b15282a 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-10-20" { + description + "Add support for policy forwarding match on next hop and GUE encapsulation action."; + reference "2.8.0"; + } revision "2024-09-05" { description From c8cb2b369d9f84d9a39706aea72b90efac7eb4b4 Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Wed, 23 Oct 2024 18:15:51 +0000 Subject: [PATCH 10/13] Add policy forwarding for next hop match and GUE encapsulation action (use correct versions) --- release/models/aft/openconfig-aft-ethernet.yang | 4 ++-- release/models/aft/openconfig-aft-ipv4.yang | 4 ++-- release/models/aft/openconfig-aft-ipv6.yang | 4 ++-- release/models/aft/openconfig-aft-mpls.yang | 4 ++-- release/models/aft/openconfig-aft-pf.yang | 4 ++-- release/models/aft/openconfig-aft-state-synced.yang | 4 ++-- release/models/aft/openconfig-aft.yang | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/release/models/aft/openconfig-aft-ethernet.yang b/release/models/aft/openconfig-aft-ethernet.yang index e3daca701..58baf1b88 100644 --- a/release/models/aft/openconfig-aft-ethernet.yang +++ b/release/models/aft/openconfig-aft-ethernet.yang @@ -20,12 +20,12 @@ submodule openconfig-aft-ethernet { "Submodule containing definitions of groupings for the abstract forwarding tables for Ethernet."; - oc-ext:openconfig-version "2.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-07-18" { diff --git a/release/models/aft/openconfig-aft-ipv4.yang b/release/models/aft/openconfig-aft-ipv4.yang index 769ef6701..346e5da0f 100644 --- a/release/models/aft/openconfig-aft-ipv4.yang +++ b/release/models/aft/openconfig-aft-ipv4.yang @@ -20,12 +20,12 @@ submodule openconfig-aft-ipv4 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv4."; - oc-ext:openconfig-version "2.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-09-05" { diff --git a/release/models/aft/openconfig-aft-ipv6.yang b/release/models/aft/openconfig-aft-ipv6.yang index 75a30c001..c3f2f787a 100644 --- a/release/models/aft/openconfig-aft-ipv6.yang +++ b/release/models/aft/openconfig-aft-ipv6.yang @@ -20,12 +20,12 @@ submodule openconfig-aft-ipv6 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv6."; - oc-ext:openconfig-version "2.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-07-18" { diff --git a/release/models/aft/openconfig-aft-mpls.yang b/release/models/aft/openconfig-aft-mpls.yang index 984620970..b2aab9a96 100644 --- a/release/models/aft/openconfig-aft-mpls.yang +++ b/release/models/aft/openconfig-aft-mpls.yang @@ -21,12 +21,12 @@ submodule openconfig-aft-mpls { "Submodule containing definitions of groupings for the abstract forwarding table for MPLS label forwarding."; - oc-ext:openconfig-version "2.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-09-05" { diff --git a/release/models/aft/openconfig-aft-pf.yang b/release/models/aft/openconfig-aft-pf.yang index 8e06cee2b..0efc36255 100644 --- a/release/models/aft/openconfig-aft-pf.yang +++ b/release/models/aft/openconfig-aft-pf.yang @@ -28,12 +28,12 @@ submodule openconfig-aft-pf { fields other than the destination address that is used in other forwarding tables."; - oc-ext:openconfig-version "2.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-07-18" { diff --git a/release/models/aft/openconfig-aft-state-synced.yang b/release/models/aft/openconfig-aft-state-synced.yang index b46ac1788..8e78cb8bb 100644 --- a/release/models/aft/openconfig-aft-state-synced.yang +++ b/release/models/aft/openconfig-aft-state-synced.yang @@ -16,12 +16,12 @@ 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.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-07-18" { diff --git a/release/models/aft/openconfig-aft.yang b/release/models/aft/openconfig-aft.yang index 08b15282a..6e8c18f0c 100644 --- a/release/models/aft/openconfig-aft.yang +++ b/release/models/aft/openconfig-aft.yang @@ -42,12 +42,12 @@ module openconfig-aft { is referred to as an Abstract Forwarding Table (AFT), rather than the FIB."; - oc-ext:openconfig-version "2.8.0"; + oc-ext:openconfig-version "2.9.0"; revision "2024-10-20" { description "Add support for policy forwarding match on next hop and GUE encapsulation action."; - reference "2.8.0"; + reference "2.9.0"; } revision "2024-09-05" { From aca87f3e59c1e74744e9e01e4e6381b1094aea79 Mon Sep 17 00:00:00 2001 From: Ebben Aries Date: Wed, 23 Oct 2024 14:43:57 -0600 Subject: [PATCH 11/13] Refactor non-compliant/overlapping YANG definition for BGP MED (#1165) * Refactor non-compliant/overlapping YANG definition for BGP MED * (M) release/models/bgp/openconfig-bgp-policy.yang - Remove string type from bgp-set-med-type union - Add new bgp-set-med-action typedef to separate out action on MED values - Add new set-med-action leaf to be optionally utilized with set-med * Add constraints between med/action + add an explicit SET action --------- Co-authored-by: Darren Loher --- release/models/bgp/openconfig-bgp-policy.yang | 68 +++++++++++++++---- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-policy.yang b/release/models/bgp/openconfig-bgp-policy.yang index f4c0c18c4..ee5c34e01 100644 --- a/release/models/bgp/openconfig-bgp-policy.yang +++ b/release/models/bgp/openconfig-bgp-policy.yang @@ -28,7 +28,14 @@ module openconfig-bgp-policy { It augments the base routing-policy module with BGP-specific options for conditions and actions."; - oc-ext:openconfig-version "7.1.0"; + oc-ext:openconfig-version "8.0.0"; + + revision "2024-08-23" { + description + "Separate the ability to set the BGP MED along with an appropriate + action."; + reference "8.0.0"; + } revision "2024-07-02" { description @@ -210,23 +217,40 @@ module openconfig-bgp-policy { typedef bgp-set-med-type { type union { type uint32; - type string { - pattern '[+-][0-9]+'; - oc-ext:posix-pattern '^[+-][0-9]+$'; - } type enumeration { enum IGP { - description "set the MED value to the IGP cost toward the - next hop for the route"; + description + "Set the MED value to the IGP cost toward the next hop for + the route"; } } } description - "Type definition for specifying how the BGP MED can - be set in BGP policy actions. The three choices are to set - the MED directly using the uint32 type or increment/decrement - using +/- notation in the string type or setting it to - the IGP cost using the enum (predefined value)."; + "Type definition for specifying how the BGP MED can be set in BGP + policy actions. The MED can be specified as a direct integer + value or setting it to the IGP cost. To be used in conjunction + with `bgp-set-med-action` in order to specify the appropriate + action to take on this value."; + } + + typedef bgp-set-med-action { + type enumeration { + enum SET { + description + "Action to set the MED to a specific value."; + } + enum ADD { + description + "Action to increment the previous MED value."; + } + enum SUBTRACT { + description + "Action to decrement the previous MED value."; + } + } + description + "Specifies which action to take on the value specified by the + bgp-set-med-type."; } // grouping statements @@ -1345,8 +1369,24 @@ module openconfig-bgp-policy { leaf set-med { type bgp-set-med-type; - description "set the med metric attribute in the route - update"; + must "../set-med-action" { + error-message + "set-med cannot be specified without a valid set-med-action"; + } + description + "Set the MED metric attribute in the route update. When set, a + valid `set-med-action` must be specified."; + } + + leaf set-med-action { + type bgp-set-med-action; + must "../set-med" { + error-message + "set-med-action cannot be specified without a set-med value"; + } + description + "When set-med is specified, this leaf is mandatory to set the + appropriate action on the MED metric value."; } } From de50cb3a525e104ba6866d607591160f3d8e4e11 Mon Sep 17 00:00:00 2001 From: Dan Ameme Date: Thu, 24 Oct 2024 00:24:20 +0000 Subject: [PATCH 12/13] Add policy forwarding for next hop match and GUE encapsulation action (resolve file conflicts) --- release/models/aft/openconfig-aft-ethernet.yang | 6 ++++++ release/models/aft/openconfig-aft-ipv4.yang | 6 ++++++ release/models/aft/openconfig-aft-ipv6.yang | 6 ++++++ release/models/aft/openconfig-aft-mpls.yang | 6 ++++++ release/models/aft/openconfig-aft-pf.yang | 6 ++++++ release/models/aft/openconfig-aft-state-synced.yang | 6 ++++++ release/models/aft/openconfig-aft.yang | 6 ++++++ 7 files changed, 42 insertions(+) diff --git a/release/models/aft/openconfig-aft-ethernet.yang b/release/models/aft/openconfig-aft-ethernet.yang index 58baf1b88..79ba11af8 100644 --- a/release/models/aft/openconfig-aft-ethernet.yang +++ b/release/models/aft/openconfig-aft-ethernet.yang @@ -28,6 +28,12 @@ submodule openconfig-aft-ethernet { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-07-18" { description "Add container for mpls-in-udp under next-hops aft entry state."; diff --git a/release/models/aft/openconfig-aft-ipv4.yang b/release/models/aft/openconfig-aft-ipv4.yang index 346e5da0f..8a1554baa 100644 --- a/release/models/aft/openconfig-aft-ipv4.yang +++ b/release/models/aft/openconfig-aft-ipv4.yang @@ -28,6 +28,12 @@ submodule openconfig-aft-ipv4 { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-09-05" { description "Add encapsulate-stack under aft next-hops."; diff --git a/release/models/aft/openconfig-aft-ipv6.yang b/release/models/aft/openconfig-aft-ipv6.yang index c3f2f787a..fb76a2054 100644 --- a/release/models/aft/openconfig-aft-ipv6.yang +++ b/release/models/aft/openconfig-aft-ipv6.yang @@ -28,6 +28,12 @@ submodule openconfig-aft-ipv6 { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-07-18" { description "Add container for mpls-in-udp under next-hops aft entry state."; diff --git a/release/models/aft/openconfig-aft-mpls.yang b/release/models/aft/openconfig-aft-mpls.yang index b2aab9a96..0f72cd2b5 100644 --- a/release/models/aft/openconfig-aft-mpls.yang +++ b/release/models/aft/openconfig-aft-mpls.yang @@ -29,6 +29,12 @@ submodule openconfig-aft-mpls { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-09-05" { description "Add encapsulate-stack under aft next-hops."; diff --git a/release/models/aft/openconfig-aft-pf.yang b/release/models/aft/openconfig-aft-pf.yang index 0efc36255..bba441a5a 100644 --- a/release/models/aft/openconfig-aft-pf.yang +++ b/release/models/aft/openconfig-aft-pf.yang @@ -36,6 +36,12 @@ submodule openconfig-aft-pf { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-07-18" { description "Add container for mpls-in-udp under next-hops aft entry state."; diff --git a/release/models/aft/openconfig-aft-state-synced.yang b/release/models/aft/openconfig-aft-state-synced.yang index 8e78cb8bb..881849ec3 100644 --- a/release/models/aft/openconfig-aft-state-synced.yang +++ b/release/models/aft/openconfig-aft-state-synced.yang @@ -24,6 +24,12 @@ submodule openconfig-aft-state-synced { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-07-18" { description "Add container for mpls-in-udp under next-hops aft entry state."; diff --git a/release/models/aft/openconfig-aft.yang b/release/models/aft/openconfig-aft.yang index 6e8c18f0c..d72bcceef 100644 --- a/release/models/aft/openconfig-aft.yang +++ b/release/models/aft/openconfig-aft.yang @@ -50,6 +50,12 @@ module openconfig-aft { reference "2.9.0"; } + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } + revision "2024-09-05" { description "Add encapsulate-stack under aft next-hops."; From db78d44e93a97cef4db27f82bba3fba454e907a5 Mon Sep 17 00:00:00 2001 From: adityasingh-anet Date: Wed, 23 Oct 2024 20:36:14 -0500 Subject: [PATCH 13/13] Update openconfig-gnsi-acctz.yang (#1195) * Delete idle-timeouts and counters-last-cleared leaves * Split source-counters and client counters to be under separate augments Co-authored-by: Darren Loher --- .../models/gnsi/openconfig-gnsi-acctz.yang | 128 ++++++++++-------- 1 file changed, 69 insertions(+), 59 deletions(-) diff --git a/release/models/gnsi/openconfig-gnsi-acctz.yang b/release/models/gnsi/openconfig-gnsi-acctz.yang index d95ccccfb..258b40c77 100644 --- a/release/models/gnsi/openconfig-gnsi-acctz.yang +++ b/release/models/gnsi/openconfig-gnsi-acctz.yang @@ -10,9 +10,6 @@ module openconfig-gnsi-acctz { import openconfig-system-grpc { prefix oc-sys-grpc; } - import openconfig-types { - prefix oc-types; - } import openconfig-yang-types { prefix oc-yang; } @@ -30,7 +27,14 @@ module openconfig-gnsi-acctz { "This module provides counters of gNSI accountZ requests and responses and the quantity of data transferred."; - oc-ext:openconfig-version "0.2.0"; + oc-ext:openconfig-version "0.3.0"; + + revision 2024-10-07 { + description + "Remove `idle-timeouts` and `counters-last-cleared` leaves. + Relocate source-counters and client-counters to separate paths"; + reference "0.3.0"; + } revision 2024-02-13 { description @@ -116,54 +120,52 @@ module openconfig-gnsi-acctz { description "A collection of counters that were collected by the gNSI.acctz module while servicing acctz clients."; - - container client-counters { - description - "A collection of counters that were collected by the gNSI.acctz - module while servicing acctz clients."; - leaf history-istruncated { - type oc-yang:counter64; - description - "The total number of times that a RecordRequest resulted in - a RecordResponse being marked history-istruncated. ie: a - request was made for a timestamp that did not exist in the - history."; - } - leaf idle-timeouts { - type oc-yang:counter64; - description - "The total number of times that a client was disconnected - due to missing keepalives (ie: RecordRequests)."; - } - leaf record-requests { - type oc-yang:counter64; + container state { description - "The total number of RecordRequest RPCs that have been received."; - } - leaf record-responses { - type oc-yang:counter64; + "Operational state relating to acctz-counters."; + + container counters { description - "The total number of RecordResponse RPCs that have been sent."; + "A collection of counters that were collected by the gNSI.acctz + module while servicing acctz clients."; + + leaf history-istruncated { + type oc-yang:counter64; + description + "The total number of times that a RecordRequest resulted in + a RecordResponse being marked history-istruncated. ie: a + request was made for a timestamp that did not exist in the + history."; + } + leaf record-requests { + type oc-yang:counter64; + description + "The total number of RecordRequest messages that have been received."; + } + leaf record-responses { + type oc-yang:counter64; + description + "The total number of RecordResponse messages that have been sent."; + } } } } // gnsi.acctz producer statistics - grouping source-counters { + grouping source-records { description "A collection of counters for gNSI.acctz record production per service request type."; - container source-counters { + container source-records { description "A collection of counters for gNSI.acctz record production per service request type."; - list source-records { + list source-record { key "service type"; // unique "service type"; description - "The total number of times the gNSI.authz module denied access - to a RPC."; + "A collection of counters for each service request type."; leaf service { type leafref { @@ -194,11 +196,16 @@ module openconfig-gnsi-acctz { description "service request application enum for the gNSI.acctz record."; } - leaf records { - type oc-yang:counter64; + + container counters { description - "The total number of records produced for the service-request - type."; + "A collection of counters for gNSI.acctz record production per + service-type."; + leaf records { + type oc-yang:counter64; + description + "The total number of records produced for the service-type."; + } } } } @@ -207,30 +214,26 @@ module openconfig-gnsi-acctz { grouping grpc-server-acctz-counters { description - "A collection of counters from the gNSI.acctz module."; + "A collection of counters from the gNSI.acctz module that exist per grpc server."; - container acctz-counters { + container acctz { config false; description - "A collection of counters from the gNSI.acctz module - for acctz clients and sources."; - - container state { - description - "Operational state relating to acctz-counters."; - - leaf counters-last-cleared { - type oc-types:timeticks64; - description - "The last time that the counters were cleared (reset to - zero). This value is reported as nanoseconds since epoch - (January 1st, 1970 00:00:00 GMT)."; - } + "A collection of counters from the gNSI.acctz module that exist + per grpc server."; + uses client-counters; + } + } - uses client-counters; - } + grouping system-acctz-counters { + description + "A collection of counters from the gNSI.acctz module."; - uses source-counters; + container acctz { + config false; + description + "A collection of counters regarding the creation of gNSI.acctz records."; + uses source-records; } } @@ -238,8 +241,15 @@ module openconfig-gnsi-acctz { augment "/oc-sys:system/oc-sys-grpc:grpc-servers/oc-sys-grpc:grpc-server" { when "config[contains(services, 'oc-gnsi:GNSI')]/enable = 'true'"; description - "Counters collected by the gNSI.acctz module."; + "Counters collected by the gNSI.acctz module regarding grpc servers."; uses grpc-server-acctz-counters; } + + augment "/oc-sys:system/oc-sys:aaa/oc-sys:accounting" { + description + "Counters collected by the gNSI.acctz module regarding the system."; + + uses system-acctz-counters; + } }