From 5ef541dd3d468239f07d69fb05a4dbc9e3f7476b Mon Sep 17 00:00:00 2001 From: Roland Phung <414053+rolandphung@users.noreply.github.com> Date: Tue, 22 Aug 2023 09:23:21 -0700 Subject: [PATCH 01/29] Update string type keys to use interface-id type (#938) For the sake of consistency, certain keys were supposed to be oc-if:interface-id type --- release/models/bfd/openconfig-bfd.yang | 10 ++++++++-- .../openconfig-network-instance-l2.yang | 8 +++++++- .../network-instance/openconfig-network-instance.yang | 10 ++++++++-- .../models/ospf/openconfig-ospfv2-area-interface.yang | 10 ++++++++-- release/models/ospf/openconfig-ospfv2-area.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-common.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-global.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-lsdb.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2.yang | 8 +++++++- .../segment-routing/openconfig-segment-routing.yang | 10 ++++++++-- 10 files changed, 74 insertions(+), 14 deletions(-) diff --git a/release/models/bfd/openconfig-bfd.yang b/release/models/bfd/openconfig-bfd.yang index 400d7ab00..481021d33 100644 --- a/release/models/bfd/openconfig-bfd.yang +++ b/release/models/bfd/openconfig-bfd.yang @@ -26,7 +26,13 @@ module openconfig-bfd { "An OpenConfig model of Bi-Directional Forwarding Detection (BFD) configuration and operational state."; - oc-ext:openconfig-version "0.2.5"; + oc-ext:openconfig-version "0.2.6"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.2.6"; + } revision "2023-02-06" { description @@ -194,7 +200,7 @@ module openconfig-bfd { "Top-level per-interface configuration parameters for BFD."; leaf id { - type string; + type oc-if:interface-id; description "A unique identifier for the interface."; } diff --git a/release/models/network-instance/openconfig-network-instance-l2.yang b/release/models/network-instance/openconfig-network-instance-l2.yang index 8e805e92a..b9f4ede2f 100644 --- a/release/models/network-instance/openconfig-network-instance-l2.yang +++ b/release/models/network-instance/openconfig-network-instance-l2.yang @@ -24,7 +24,13 @@ submodule openconfig-network-instance-l2 { Layer 2 network instance configuration and operational state parameters."; - oc-ext:openconfig-version "4.1.0"; + oc-ext:openconfig-version "4.1.1"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "4.1.1"; + } revision "2023-07-12" { description diff --git a/release/models/network-instance/openconfig-network-instance.yang b/release/models/network-instance/openconfig-network-instance.yang index 418582fe1..8f104d175 100644 --- a/release/models/network-instance/openconfig-network-instance.yang +++ b/release/models/network-instance/openconfig-network-instance.yang @@ -48,7 +48,13 @@ module openconfig-network-instance { virtual switch instance (VSI). Mixed Layer 2 and Layer 3 instances are also supported."; - oc-ext:openconfig-version "4.1.0"; + oc-ext:openconfig-version "4.1.1"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "4.1.1"; + } revision "2023-07-12" { description @@ -1097,7 +1103,7 @@ module openconfig-network-instance { with the network instance"; leaf id { - type string; + type oc-if:interface-id; description "A unique identifier for this interface - this is expressed as a free-text string"; diff --git a/release/models/ospf/openconfig-ospfv2-area-interface.yang b/release/models/ospf/openconfig-ospfv2-area-interface.yang index 52d560bad..60a1293d1 100644 --- a/release/models/ospf/openconfig-ospfv2-area-interface.yang +++ b/release/models/ospf/openconfig-ospfv2-area-interface.yang @@ -25,7 +25,13 @@ submodule openconfig-ospfv2-area-interface { "This submodule provides OSPFv2 configuration and operational state parameters that are specific to the area context"; - oc-ext:openconfig-version "0.4.2"; + oc-ext:openconfig-version "0.4.3"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.3"; + } revision "2023-07-05" { description @@ -110,7 +116,7 @@ submodule openconfig-ospfv2-area-interface { "Configuration parameters for an OSPF interface"; leaf id { - type string; + type oc-if:interface-id; description "An operator-specified string utilised to uniquely reference this interface"; diff --git a/release/models/ospf/openconfig-ospfv2-area.yang b/release/models/ospf/openconfig-ospfv2-area.yang index 1cc2a9520..fa7fa0660 100644 --- a/release/models/ospf/openconfig-ospfv2-area.yang +++ b/release/models/ospf/openconfig-ospfv2-area.yang @@ -23,7 +23,13 @@ submodule openconfig-ospfv2-area { "This submodule provides OSPFv2 configuration and operational state parameters that are specific to the area context"; - oc-ext:openconfig-version "0.4.2"; + oc-ext:openconfig-version "0.4.3"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.3"; + } revision "2023-07-05" { description diff --git a/release/models/ospf/openconfig-ospfv2-common.yang b/release/models/ospf/openconfig-ospfv2-common.yang index d5c2fd945..460729a87 100644 --- a/release/models/ospf/openconfig-ospfv2-common.yang +++ b/release/models/ospf/openconfig-ospfv2-common.yang @@ -17,7 +17,13 @@ submodule openconfig-ospfv2-common { "This submodule provides OSPFv2 configuration and operational state parameters that are shared across multiple contexts"; - oc-ext:openconfig-version "0.4.2"; + oc-ext:openconfig-version "0.4.3"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.3"; + } revision "2023-07-05" { description diff --git a/release/models/ospf/openconfig-ospfv2-global.yang b/release/models/ospf/openconfig-ospfv2-global.yang index 832bf1103..2b7cc47b9 100644 --- a/release/models/ospf/openconfig-ospfv2-global.yang +++ b/release/models/ospf/openconfig-ospfv2-global.yang @@ -23,7 +23,13 @@ submodule openconfig-ospfv2-global { "This submodule provides OSPFv2 configuration and operational state parameters that are global to a particular OSPF instance"; - oc-ext:openconfig-version "0.4.2"; + oc-ext:openconfig-version "0.4.3"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.3"; + } revision "2023-07-05" { description diff --git a/release/models/ospf/openconfig-ospfv2-lsdb.yang b/release/models/ospf/openconfig-ospfv2-lsdb.yang index 5a39769fb..a3c493abd 100644 --- a/release/models/ospf/openconfig-ospfv2-lsdb.yang +++ b/release/models/ospf/openconfig-ospfv2-lsdb.yang @@ -22,7 +22,13 @@ submodule openconfig-ospfv2-lsdb { "An OpenConfig model for the Open Shortest Path First (OSPF) version 2 link-state database (LSDB)"; - oc-ext:openconfig-version "0.4.2"; + oc-ext:openconfig-version "0.4.3"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.3"; + } revision "2023-07-05" { description diff --git a/release/models/ospf/openconfig-ospfv2.yang b/release/models/ospf/openconfig-ospfv2.yang index f75a207bd..d43a4fd01 100644 --- a/release/models/ospf/openconfig-ospfv2.yang +++ b/release/models/ospf/openconfig-ospfv2.yang @@ -34,7 +34,13 @@ module openconfig-ospfv2 { "An OpenConfig model for Open Shortest Path First (OSPF) version 2"; - oc-ext:openconfig-version "0.4.2"; + oc-ext:openconfig-version "0.4.3"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.3"; + } revision "2023-07-05" { description diff --git a/release/models/segment-routing/openconfig-segment-routing.yang b/release/models/segment-routing/openconfig-segment-routing.yang index b88ffb3b7..a687f0bfb 100644 --- a/release/models/segment-routing/openconfig-segment-routing.yang +++ b/release/models/segment-routing/openconfig-segment-routing.yang @@ -36,7 +36,13 @@ module openconfig-segment-routing { - SR SID advertisements - instantiated within the relevant IGP. - SR-specific counters - instantied within the relevant dataplane."; - oc-ext:openconfig-version "0.4.0"; + oc-ext:openconfig-version "0.4.1"; + + revision "2023-08-09" { + description + "Update interface key to use interface-id type"; + reference "0.4.1"; + } revision "2023-05-24" { description @@ -449,7 +455,7 @@ module openconfig-segment-routing { "MPLS-specific Segment Routing configuration for an interface"; leaf interface-id { - type string; + type oc-if:interface-id; description "A unique identifier for the interface."; } From 0cf5581646df1f26c5e8f9eabb22648ec7cbdb72 Mon Sep 17 00:00:00 2001 From: rszarecki <46606165+rszarecki@users.noreply.github.com> Date: Wed, 23 Aug 2023 16:47:38 -0700 Subject: [PATCH 02/29] Temporal qos buffer size definition (#928) Adding buffer management leafs for minimum buffer allocation and maximum static shared buffer alocatione expressed in microseconds Co-authored-by: Darren Loher --- .../models/qos/openconfig-qos-elements.yang | 9 +++- .../models/qos/openconfig-qos-interfaces.yang | 17 ++++++-- .../models/qos/openconfig-qos-mem-mgmt.yang | 41 +++++++++++++++++-- release/models/qos/openconfig-qos.yang | 9 +++- 4 files changed, 68 insertions(+), 8 deletions(-) diff --git a/release/models/qos/openconfig-qos-elements.yang b/release/models/qos/openconfig-qos-elements.yang index e679f6fe6..5c87eb5b4 100644 --- a/release/models/qos/openconfig-qos-elements.yang +++ b/release/models/qos/openconfig-qos-elements.yang @@ -35,7 +35,14 @@ submodule openconfig-qos-elements { packets for transmission, including policer and shaper functions"; - oc-ext:openconfig-version "0.9.1"; + oc-ext:openconfig-version "0.10.0"; + + revision "2023-07-26" { + description + "Add buffer management parameters in time unts (microseconds). + Make profiles reusable across LAGs and PHY of different speed"; + reference "0.10.0"; + } revision "2023-04-25" { description diff --git a/release/models/qos/openconfig-qos-interfaces.yang b/release/models/qos/openconfig-qos-interfaces.yang index eca7a5e21..1f11cfda6 100644 --- a/release/models/qos/openconfig-qos-interfaces.yang +++ b/release/models/qos/openconfig-qos-interfaces.yang @@ -25,7 +25,14 @@ submodule openconfig-qos-interfaces { configuration and operational state associated with interfaces."; - oc-ext:openconfig-version "0.9.1"; + oc-ext:openconfig-version "0.10.0"; + + revision "2023-07-26" { + description + "Add buffer management parameters in time unts (microseconds). + Make profiles reusable across LAGs and PHY of different speed"; + reference "0.10.0"; + } revision "2023-04-25" { description @@ -362,13 +369,17 @@ submodule openconfig-qos-interfaces { leaf dropped-pkts { type oc-yang:counter64; description - "Number of packets dropped by the queue due to overrun"; + "Number of packets dropped by the queue due to overrun, that is tail-drop + or AMQ (RED, WRED, etc) induced drops as indicated by the attached + queue-management-profile"; } leaf dropped-octets { type oc-yang:counter64; description - "Number of octets dropped by the queue due to overrun"; + "Number of octets dropped by the queue due to overrun, that is tail-drop + or AMQ (RED, WRED, etc) induced drops as indicated by the attached + queue-management-profile"; } } diff --git a/release/models/qos/openconfig-qos-mem-mgmt.yang b/release/models/qos/openconfig-qos-mem-mgmt.yang index ef7b324f6..13479ee88 100644 --- a/release/models/qos/openconfig-qos-mem-mgmt.yang +++ b/release/models/qos/openconfig-qos-mem-mgmt.yang @@ -29,7 +29,14 @@ submodule openconfig-qos-mem-mgmt { per-queue basis, and determine how packets are marked/dropped within the queue instantiation."; - oc-ext:openconfig-version "0.9.1"; + oc-ext:openconfig-version "0.10.0"; + + revision "2023-07-26" { + description + "Add buffer management parameters in time unts (microseconds). + Make profiles reusable across LAGs and PHY of different speed"; + reference "0.10.0"; + } revision "2023-04-25" { description @@ -221,7 +228,20 @@ submodule openconfig-qos-mem-mgmt { units bytes; description "This is the dedicated buffer that is carved for the queue, this is the minimum - number of bytes reserved for this queue."; + number of bytes reserved for this queue. + This leaf is mutualy exclusive with dedicated-buffer-temporal leaf"; + } + + leaf dedicated-buffer-temporal { + type uint64; + units microseconds; + description + "This is the dedicated buffer that is carved for the queue. The the minimum + number of bytes reserved for this queue is calculated by multiplying by interface speed + queue is attached to and queues minimum, guarantaed transmit share (derived + form WRR schedulers weights). + This leaf shouldbot be used for strict priority scheduled queues. + This leaf is mutualy exclusive with dedicated-buffer leaf"; } leaf use-shared-buffer { @@ -246,7 +266,22 @@ submodule openconfig-qos-mem-mgmt { description "If the shared-buffer-limit-type is STATIC, then static-shared-buffer-limit is the maximum number of bytes that the queue is allowed to use from the shared - pool."; + pool. + This leaf is mutualy exclusive with static-shared-buffer-limit-temporal leaf."; + } + + leaf static-shared-buffer-limit-temporal { + type uint32; + units microseconds; + description + "If the shared-buffer-limit-type is STATIC, then static-shared-buffer-limit-temporal is + the maximum number of bytes that the queue is allowed to use from the shared + pool. + The the number of bytes is calculated by multiplying static-shared-buffer-limit-temporal + by interface speed the queue is attached to and queues minimum, guarantaed transmit share + (derived form WRR schedulers weights). + This leaf shouldbot be used for strict priority scheduled queues. + This leaf is mutualy exclusive with static-shared-buffer-limit leaf."; } leaf dynamic-limit-scaling-factor { diff --git a/release/models/qos/openconfig-qos.yang b/release/models/qos/openconfig-qos.yang index a01610cfe..62302d706 100644 --- a/release/models/qos/openconfig-qos.yang +++ b/release/models/qos/openconfig-qos.yang @@ -27,7 +27,14 @@ module openconfig-qos { "This module defines configuration and operational state data related to network quality-of-service."; - oc-ext:openconfig-version "0.9.1"; + oc-ext:openconfig-version "0.10.0"; + + revision "2023-07-26" { + description + "Add buffer management parameters in time unts (microseconds). + Make profiles reusable across LAGs and PHY of different speed"; + reference "0.10.0"; + } revision "2023-04-25" { description From b75925aff7416a8bca1b02d0b5e9a4a64fbc09da Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Fri, 25 Aug 2023 18:08:32 -0700 Subject: [PATCH 03/29] Add OSPF summary-lsa metric (#916) * add summary-lsa/state/metric --- .../ospf/openconfig-ospfv2-area-interface.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-area.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-common.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-global.yang | 8 +++++++- release/models/ospf/openconfig-ospfv2-lsdb.yang | 14 +++++++++++++- release/models/ospf/openconfig-ospfv2.yang | 8 +++++++- t.txt | 0 7 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 t.txt diff --git a/release/models/ospf/openconfig-ospfv2-area-interface.yang b/release/models/ospf/openconfig-ospfv2-area-interface.yang index 60a1293d1..92cfdd7f9 100644 --- a/release/models/ospf/openconfig-ospfv2-area-interface.yang +++ b/release/models/ospf/openconfig-ospfv2-area-interface.yang @@ -25,7 +25,13 @@ submodule openconfig-ospfv2-area-interface { "This submodule provides OSPFv2 configuration and operational state parameters that are specific to the area context"; - oc-ext:openconfig-version "0.4.3"; + oc-ext:openconfig-version "0.5.0"; + + revision "2023-08-25" { + description + "Add leaf metric to lsdb-summary-lsa-state."; + reference "0.5.0"; + } revision "2023-08-09" { description diff --git a/release/models/ospf/openconfig-ospfv2-area.yang b/release/models/ospf/openconfig-ospfv2-area.yang index fa7fa0660..1ff82db2b 100644 --- a/release/models/ospf/openconfig-ospfv2-area.yang +++ b/release/models/ospf/openconfig-ospfv2-area.yang @@ -23,7 +23,13 @@ submodule openconfig-ospfv2-area { "This submodule provides OSPFv2 configuration and operational state parameters that are specific to the area context"; - oc-ext:openconfig-version "0.4.3"; + oc-ext:openconfig-version "0.5.0"; + + revision "2023-08-25" { + description + "Add leaf metric to lsdb-summary-lsa-state."; + reference "0.5.0"; +} revision "2023-08-09" { description diff --git a/release/models/ospf/openconfig-ospfv2-common.yang b/release/models/ospf/openconfig-ospfv2-common.yang index 460729a87..8a90fcc58 100644 --- a/release/models/ospf/openconfig-ospfv2-common.yang +++ b/release/models/ospf/openconfig-ospfv2-common.yang @@ -17,7 +17,13 @@ submodule openconfig-ospfv2-common { "This submodule provides OSPFv2 configuration and operational state parameters that are shared across multiple contexts"; - oc-ext:openconfig-version "0.4.3"; + oc-ext:openconfig-version "0.5.0"; + + revision "2023-08-25" { + description + "Add leaf metric to lsdb-summary-lsa-state."; + reference "0.5.0"; +} revision "2023-08-09" { description diff --git a/release/models/ospf/openconfig-ospfv2-global.yang b/release/models/ospf/openconfig-ospfv2-global.yang index 2b7cc47b9..73007d05e 100644 --- a/release/models/ospf/openconfig-ospfv2-global.yang +++ b/release/models/ospf/openconfig-ospfv2-global.yang @@ -23,7 +23,13 @@ submodule openconfig-ospfv2-global { "This submodule provides OSPFv2 configuration and operational state parameters that are global to a particular OSPF instance"; - oc-ext:openconfig-version "0.4.3"; + oc-ext:openconfig-version "0.5.0"; + + revision "2023-08-25" { + description + "Add leaf metric to lsdb-summary-lsa-state."; + reference "0.5.0"; +} revision "2023-08-09" { description diff --git a/release/models/ospf/openconfig-ospfv2-lsdb.yang b/release/models/ospf/openconfig-ospfv2-lsdb.yang index a3c493abd..35599a961 100644 --- a/release/models/ospf/openconfig-ospfv2-lsdb.yang +++ b/release/models/ospf/openconfig-ospfv2-lsdb.yang @@ -22,8 +22,13 @@ submodule openconfig-ospfv2-lsdb { "An OpenConfig model for the Open Shortest Path First (OSPF) version 2 link-state database (LSDB)"; - oc-ext:openconfig-version "0.4.3"; + oc-ext:openconfig-version "0.5.0"; + revision "2023-08-25" { + description + "Add leaf metric to lsdb-summary-lsa-state."; + reference "0.5.0"; +} revision "2023-08-09" { description "Update interface key to use interface-id type"; @@ -1218,6 +1223,13 @@ submodule openconfig-ospfv2-lsdb { "The mask of the network described by the Summary LSA represented as a CIDR mask."; } + + leaf metric { + type oc-ospf-types:ospf-metric; + description + "The cost of utilising the summary link specified independent of TOS."; + } + } grouping ospfv2-lsdb-asexternal-lsa-common-parameters { diff --git a/release/models/ospf/openconfig-ospfv2.yang b/release/models/ospf/openconfig-ospfv2.yang index d43a4fd01..bce9391ac 100644 --- a/release/models/ospf/openconfig-ospfv2.yang +++ b/release/models/ospf/openconfig-ospfv2.yang @@ -34,7 +34,13 @@ module openconfig-ospfv2 { "An OpenConfig model for Open Shortest Path First (OSPF) version 2"; - oc-ext:openconfig-version "0.4.3"; + oc-ext:openconfig-version "0.5.0"; + + revision "2023-08-25" { + description + "Add leaf metric to lsdb-summary-lsa-state."; + reference "0.5.0"; +} revision "2023-08-09" { description diff --git a/t.txt b/t.txt new file mode 100644 index 000000000..e69de29bb From f48bae357903afc41e49123746f2c0536f6d0254 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Fri, 25 Aug 2023 18:10:42 -0700 Subject: [PATCH 04/29] Delete t.txt Delete unintential file --- t.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 t.txt diff --git a/t.txt b/t.txt deleted file mode 100644 index e69de29bb..000000000 From b6bff9d192c7a1cf396c157c0b4918d17530a15f Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Wed, 30 Aug 2023 11:49:04 -0700 Subject: [PATCH 05/29] add mcast counters ipv4,6 (#941) --- .../models/interfaces/openconfig-if-ip.yang | 61 ++++++++++++++++++- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/release/models/interfaces/openconfig-if-ip.yang b/release/models/interfaces/openconfig-if-ip.yang index 498a90bec..6ab1ddc24 100644 --- a/release/models/interfaces/openconfig-if-ip.yang +++ b/release/models/interfaces/openconfig-if-ip.yang @@ -44,9 +44,15 @@ module openconfig-if-ip { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "3.4.0"; + oc-ext:openconfig-version "3.5.0"; - revision "2023-06-30" { + revision "2023-08-14" { + description + "Add multicast counters for IPv4, IPv6."; + reference "3.5.0"; + } + +revision "2023-06-30" { description "Deprecate IPv6 router advertisment config suppress leaf and add config mode leaf."; @@ -252,6 +258,31 @@ module openconfig-if-ip { Internet Protocol (IP)"; } + leaf in-multicast-pkts { + type oc-yang:counter64; + description + "The number of IP packets received for the specified + address family that are multicast packets. + Discontinuities in the value of this counter can occur + at re-initialization of the management system, and at + other times as indicated by the value of + 'last-clear'."; + reference + "RFC 4293: Management Information Base for the Internet + Protocol (IP) - ipSystemStatsHCInMcastPkts"; + } + + leaf in-multicast-octets { + type oc-yang:counter64; + description + "The total number of octets received in input IP + multicast packets for the specified address + family, including those received in error."; + reference + "RFC 4293: Management Information Base for the Internet + Protocol (IP) - ipSystemStatsHCInMcastOctets"; + } + leaf in-error-pkts { // TODO: this counter combines several error conditions -- // could consider breaking them out to separate leaf nodes @@ -329,6 +360,32 @@ module openconfig-if-ip { Internet Protocol (IP)"; } + leaf out-multicast-pkts { + type oc-yang:counter64; + description + "The total number of IP multicast packets transmitted. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system, and at + other times as indicated by the value of + 'last-clear'."; + reference + "RFC 4293 - Management Information Base for the + Internet Protocol (IP) + - ipSystemStatsHCOutMcastPkts"; + } + + leaf out-multicast-octets { + type oc-yang:counter64; + description + "The total number of IP multicast octets transmitted. This + includes packets generated locally and those forwarded by + the device."; + reference + "RFC 4293 - Management Information Base for the + Internet Protocol (IP)"; + } + leaf out-error-pkts { // TODO: this counter combines several error conditions -- // could consider breaking them out to separate leaf nodes From a6fd34d743f3419a795c0e347e9d03eaf36d2276 Mon Sep 17 00:00:00 2001 From: Yue Zhang <19193057+mryuezhang@users.noreply.github.com> Date: Wed, 6 Sep 2023 17:53:51 -0400 Subject: [PATCH 06/29] Update openconfig-mpls-te.yang (#926) * Update openconfig-mpls-te.yang Added leaf record-record-enabled under grouping tunnel-p2p-attributes-config. --- release/models/mpls/openconfig-mpls-igp.yang | 8 +++++++- release/models/mpls/openconfig-mpls-static.yang | 8 +++++++- release/models/mpls/openconfig-mpls-te.yang | 13 ++++++++++++- release/models/mpls/openconfig-mpls.yang | 7 ++++++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/release/models/mpls/openconfig-mpls-igp.yang b/release/models/mpls/openconfig-mpls-igp.yang index 157d443b8..e71c26657 100644 --- a/release/models/mpls/openconfig-mpls-igp.yang +++ b/release/models/mpls/openconfig-mpls-igp.yang @@ -21,7 +21,13 @@ submodule openconfig-mpls-igp { "Configuration generic configuration parameters for IGP-congruent LSPs"; - oc-ext:openconfig-version "3.3.2"; + oc-ext:openconfig-version "3.4.0"; + + revision "2023-07-25" { + description + "Added record-route-enabled to MPLS p2p tunnel config"; + reference "3.4.0"; + } revision "2023-04-28" { description diff --git a/release/models/mpls/openconfig-mpls-static.yang b/release/models/mpls/openconfig-mpls-static.yang index 268d643a5..0a60e9628 100644 --- a/release/models/mpls/openconfig-mpls-static.yang +++ b/release/models/mpls/openconfig-mpls-static.yang @@ -23,7 +23,13 @@ submodule openconfig-mpls-static { "Defines static LSP configuration"; - oc-ext:openconfig-version "3.3.2"; + oc-ext:openconfig-version "3.4.0"; + + revision "2023-07-25" { + description + "Added record-route-enabled to MPLS p2p tunnel config"; + reference "3.4.0"; + } revision "2023-04-28" { description diff --git a/release/models/mpls/openconfig-mpls-te.yang b/release/models/mpls/openconfig-mpls-te.yang index 9553b7d86..2fe988e1a 100644 --- a/release/models/mpls/openconfig-mpls-te.yang +++ b/release/models/mpls/openconfig-mpls-te.yang @@ -30,7 +30,13 @@ submodule openconfig-mpls-te { signaling protocol or mechanism (see related submodules for signaling protocol-specific configuration)."; - oc-ext:openconfig-version "3.3.2"; + oc-ext:openconfig-version "3.4.0"; + + revision "2023-07-25" { + description + "Added record-route-enabled to MPLS p2p tunnel config"; + reference "3.4.0"; + } revision "2023-04-28" { description @@ -804,6 +810,11 @@ submodule openconfig-mpls-te { description "P2P tunnel destination address"; } + leaf record-route-enabled { + type boolean; + description + "Enables recording a path on an LSP using the record route object (RRO)"; + } } grouping p2p-path-state { diff --git a/release/models/mpls/openconfig-mpls.yang b/release/models/mpls/openconfig-mpls.yang index 85ca939dd..dde71fba3 100644 --- a/release/models/mpls/openconfig-mpls.yang +++ b/release/models/mpls/openconfig-mpls.yang @@ -70,8 +70,13 @@ module openconfig-mpls { +------+ |ROUTING| +-----+ +-------+ "; + oc-ext:openconfig-version "3.4.0"; - oc-ext:openconfig-version "3.3.2"; + revision "2023-07-25" { + description + "Added record-route-enabled to MPLS p2p tunnel config"; + reference "3.4.0"; + } revision "2023-04-28" { description From 98d48c3aae850cde0b504ded0f35c372612dc6a7 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Thu, 7 Sep 2023 16:46:17 -0700 Subject: [PATCH 07/29] Add graceful shutdown as BGP_WELL_KNOWN_STD_COMMUNITY (#954) * add graceful shutdown as BGP_WELL_KNOWN_STD_COMMUNITY --- release/models/bgp/openconfig-bgp-errors.yang | 8 +++++++- release/models/bgp/openconfig-bgp-types.yang | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-errors.yang b/release/models/bgp/openconfig-bgp-errors.yang index d76233820..d4b9ba5a8 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 "5.4.0"; + oc-ext:openconfig-version "5.5.0"; + + revision "2023-09-06" { + description + "Add GRACEFUL_SHUTDOWN as a BGP_WELL_KNOWN_STD_COMMUNITY"; + reference "5.5.0"; + } revision "2023-03-31" { description diff --git a/release/models/bgp/openconfig-bgp-types.yang b/release/models/bgp/openconfig-bgp-types.yang index c9a7d01ad..447537c5d 100644 --- a/release/models/bgp/openconfig-bgp-types.yang +++ b/release/models/bgp/openconfig-bgp-types.yang @@ -25,7 +25,13 @@ module openconfig-bgp-types { policy. It can be imported by modules that make use of BGP attributes"; - oc-ext:openconfig-version "5.4.0"; + oc-ext:openconfig-version "5.5.0"; + + revision "2023-09-06" { + description + "Add GRACEFUL_SHUTDOWN as a BGP_WELL_KNOWN_STD_COMMUNITY"; + reference "5.5.0"; + } revision "2023-03-31" { description @@ -361,6 +367,16 @@ module openconfig-bgp-types { reference "RFC3765"; } + identity GRACEFUL_SHUTDOWN { + base BGP_WELL_KNOWN_STD_COMMUNITY; + description + "An autonomous system which supports the graceful shutdown + receiver procedure receiving NLRI tagged with this community + will set LOCAL_PREF to a low value for those NLRI. This + community has a value of 0xFFFF0000."; + reference "RFC8326"; + } + typedef bgp-session-direction { type enumeration { enum INBOUND { From 1196fbf60a5e58616687ddf22e0b5735b776124f Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Wed, 13 Sep 2023 11:05:12 -0700 Subject: [PATCH 08/29] add transceiver module temp thresholds (#948) --- .../openconfig-platform-transceiver.yang | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/release/models/platform/openconfig-platform-transceiver.yang b/release/models/platform/openconfig-platform-transceiver.yang index e0af67e6e..195f56454 100644 --- a/release/models/platform/openconfig-platform-transceiver.yang +++ b/release/models/platform/openconfig-platform-transceiver.yang @@ -66,7 +66,13 @@ module openconfig-platform-transceiver { specify a physical-channel within a TRANSCEIVER component (i.e. gray optic) that it is associated with."; - oc-ext:openconfig-version "0.12.0"; + oc-ext:openconfig-version "0.13.0"; + +revision "2023-08-30" { + description + "Add transceiver module temperature thresholds"; + reference "0.13.0"; + } revision "2023-06-27" { description @@ -843,6 +849,22 @@ module openconfig-platform-transceiver { } units volts; } + leaf module-temperature-lower { + type decimal64 { + fraction-digits 1; + } + units celsius; + description + "The lower temperature threshold for the transceiver module."; + } + leaf module-temperature-upper { + type decimal64 { + fraction-digits 1; + } + units celsius; + description + "The upper temperature threshold for the transceiver module."; + } } grouping port-transceiver-top { From 5d38d8531ef9c5b998262207eb6dbdae8968f9fe Mon Sep 17 00:00:00 2001 From: rszarecki <46606165+rszarecki@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:44:21 -0700 Subject: [PATCH 09/29] ECN counters (#960) * Add ECN marked and selected counters --- .../models/qos/openconfig-qos-elements.yang | 8 +++- .../models/qos/openconfig-qos-interfaces.yang | 44 ++++++++++++++++++- .../models/qos/openconfig-qos-mem-mgmt.yang | 10 ++++- release/models/qos/openconfig-qos.yang | 10 ++++- 4 files changed, 66 insertions(+), 6 deletions(-) diff --git a/release/models/qos/openconfig-qos-elements.yang b/release/models/qos/openconfig-qos-elements.yang index 5c87eb5b4..d2de615d4 100644 --- a/release/models/qos/openconfig-qos-elements.yang +++ b/release/models/qos/openconfig-qos-elements.yang @@ -35,7 +35,13 @@ submodule openconfig-qos-elements { packets for transmission, including policer and shaper functions"; - oc-ext:openconfig-version "0.10.0"; + oc-ext:openconfig-version "0.11.0"; + + revision "2023-09-15" { + description + "Add support for ECN counters"; + reference "0.11.0"; + } revision "2023-07-26" { description diff --git a/release/models/qos/openconfig-qos-interfaces.yang b/release/models/qos/openconfig-qos-interfaces.yang index 1f11cfda6..571414b81 100644 --- a/release/models/qos/openconfig-qos-interfaces.yang +++ b/release/models/qos/openconfig-qos-interfaces.yang @@ -25,7 +25,13 @@ submodule openconfig-qos-interfaces { configuration and operational state associated with interfaces."; - oc-ext:openconfig-version "0.10.0"; + oc-ext:openconfig-version "0.11.0"; + + revision "2023-09-15" { + description + "Add support for ECN counters"; + reference "0.11.0"; + } revision "2023-07-26" { description @@ -381,6 +387,42 @@ submodule openconfig-qos-interfaces { or AMQ (RED, WRED, etc) induced drops as indicated by the attached queue-management-profile"; } + + leaf ecn-marked-pkts { + type oc-yang:counter64; + description + "number of packets for which ECN codepoint has been changed from ECT to CE"; + } + + leaf ecn-marked-octets { + type oc-yang:counter64; + description + "Number of octets for which ECN codepoint has been changed from ECT to CE"; + } + + leaf ecn-selected-pkts { + type oc-yang:counter64; + description + "Number of packets selected by AQM + + For RED/WRED AQM this counter counts: + - all packets enqueued while queue utilization was greater then max-threshold + - packs enqueued while queue utilization was between min-threshold and max-threshold, with probability derived from RED/WRED slope + + Packets are counted regardless of its ECN codepoint"; + } + + leaf ecn-selected-octets { + type oc-yang:counter64; + description + "Number of octets of packets selected by AQM + + For RED/WRED AQM this counter counts: + - all octets enqueued while queue utilization was greater then max-threshold + - octets enqueued while queue utilization was between min-threshold and max-threshold, with probability derived from RED/WRED slope + + Octets are counted regardless of its ECN codepoint"; + } } grouping qos-interface-queue-top { diff --git a/release/models/qos/openconfig-qos-mem-mgmt.yang b/release/models/qos/openconfig-qos-mem-mgmt.yang index 13479ee88..70272520b 100644 --- a/release/models/qos/openconfig-qos-mem-mgmt.yang +++ b/release/models/qos/openconfig-qos-mem-mgmt.yang @@ -29,9 +29,15 @@ submodule openconfig-qos-mem-mgmt { per-queue basis, and determine how packets are marked/dropped within the queue instantiation."; - oc-ext:openconfig-version "0.10.0"; + oc-ext:openconfig-version "0.11.0"; - revision "2023-07-26" { + revision "2023-09-15" { + description + "Add support for ECN counters"; + reference "0.11.0"; + } + +revision "2023-07-26" { description "Add buffer management parameters in time unts (microseconds). Make profiles reusable across LAGs and PHY of different speed"; diff --git a/release/models/qos/openconfig-qos.yang b/release/models/qos/openconfig-qos.yang index 62302d706..2d57bf267 100644 --- a/release/models/qos/openconfig-qos.yang +++ b/release/models/qos/openconfig-qos.yang @@ -27,9 +27,15 @@ module openconfig-qos { "This module defines configuration and operational state data related to network quality-of-service."; - oc-ext:openconfig-version "0.10.0"; + oc-ext:openconfig-version "0.11.0"; - revision "2023-07-26" { + revision "2023-09-15" { + description + "Add support for ECN counters"; + reference "0.11.0"; + } + +revision "2023-07-26" { description "Add buffer management parameters in time unts (microseconds). Make profiles reusable across LAGs and PHY of different speed"; From 323a3e2e43c60aafa2bf78ec7c955c00f6cfac4d Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 3 Oct 2023 11:42:29 -0700 Subject: [PATCH 10/29] Add pipeline no-route counter (#967) --- .../openconfig-platform-pipeline-counters.yang | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/release/models/platform/openconfig-platform-pipeline-counters.yang b/release/models/platform/openconfig-platform-pipeline-counters.yang index e4bad82a6..b7d81c962 100644 --- a/release/models/platform/openconfig-platform-pipeline-counters.yang +++ b/release/models/platform/openconfig-platform-pipeline-counters.yang @@ -65,10 +65,16 @@ module openconfig-platform-pipeline-counters { 5 blocks, is to have the abililty to receive all drop counters from all 5 blocks, for example, with one request."; - oc-ext:openconfig-version "0.4.0"; + oc-ext:openconfig-version "0.5.0"; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; + revision "2023-09-26" { + description + "Add no-route aggregate drop counter."; + reference "0.5.0"; + } + revision "2023-02-03" { description "Add vendor-specific control-plane traffic queue counters"; @@ -1116,6 +1122,16 @@ module openconfig-platform-pipeline-counters { for each uRPF packet drop."; } + leaf no-route { + type oc-yang:counter64; + description + "This aggregation of counters represents the conditions in which + packets are dropped due to no FIB entry for this ipv4 or ipv6 lookup. + + This counter and the packet-processing-aggregate counter should be + incremented for each no-route packet drop."; + } + } grouping pipeline-vendor-drop-packets { From 9b3eed1f1ede0824e9a3af42d7f7ccb52d75c127 Mon Sep 17 00:00:00 2001 From: rszarecki <46606165+rszarecki@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:54:14 -0700 Subject: [PATCH 11/29] Update openconfig-qos-mem-mgmt.yang (#953) * Update openconfig-qos-mem-mgmt.yang Clarification of expected behaviour if WRED weight leaf is not present. --- release/models/qos/openconfig-qos-elements.yang | 8 +++++++- release/models/qos/openconfig-qos-interfaces.yang | 8 +++++++- release/models/qos/openconfig-qos-mem-mgmt.yang | 13 +++++++++++-- release/models/qos/openconfig-qos.yang | 8 +++++++- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/release/models/qos/openconfig-qos-elements.yang b/release/models/qos/openconfig-qos-elements.yang index d2de615d4..613b50768 100644 --- a/release/models/qos/openconfig-qos-elements.yang +++ b/release/models/qos/openconfig-qos-elements.yang @@ -35,7 +35,13 @@ submodule openconfig-qos-elements { packets for transmission, including policer and shaper functions"; - oc-ext:openconfig-version "0.11.0"; + oc-ext:openconfig-version "0.11.1"; + + revision "2023-09-06" { + description + "Clarification on WRED weight in case it is not present"; + reference "0.11.1"; + } revision "2023-09-15" { description diff --git a/release/models/qos/openconfig-qos-interfaces.yang b/release/models/qos/openconfig-qos-interfaces.yang index 571414b81..28959856b 100644 --- a/release/models/qos/openconfig-qos-interfaces.yang +++ b/release/models/qos/openconfig-qos-interfaces.yang @@ -25,7 +25,13 @@ submodule openconfig-qos-interfaces { configuration and operational state associated with interfaces."; - oc-ext:openconfig-version "0.11.0"; + oc-ext:openconfig-version "0.11.1"; + + revision "2023-09-06" { + description + "Clarification on WRED weight in case it is not present"; + reference "0.11.1"; + } revision "2023-09-15" { description diff --git a/release/models/qos/openconfig-qos-mem-mgmt.yang b/release/models/qos/openconfig-qos-mem-mgmt.yang index 70272520b..75086eadb 100644 --- a/release/models/qos/openconfig-qos-mem-mgmt.yang +++ b/release/models/qos/openconfig-qos-mem-mgmt.yang @@ -29,7 +29,13 @@ submodule openconfig-qos-mem-mgmt { per-queue basis, and determine how packets are marked/dropped within the queue instantiation."; - oc-ext:openconfig-version "0.11.0"; + oc-ext:openconfig-version "0.11.1"; + + revision "2023-09-06" { + description + "Clarification on WRED weight in case it is not present"; + reference "0.11.1"; + } revision "2023-09-15" { description @@ -403,7 +409,10 @@ revision "2023-07-26" { The previous average is more important for high values of n. Peaks and lows in queue size are smoothed by a high value. For low values - of n, the average queue size is close to the current queue size."; + of n, the average queue size is close to the current queue size. + + When this leaf is not present, implementation default value is + applied."; } leaf max-drop-probability-percent { diff --git a/release/models/qos/openconfig-qos.yang b/release/models/qos/openconfig-qos.yang index 2d57bf267..5a63029ad 100644 --- a/release/models/qos/openconfig-qos.yang +++ b/release/models/qos/openconfig-qos.yang @@ -27,7 +27,13 @@ module openconfig-qos { "This module defines configuration and operational state data related to network quality-of-service."; - oc-ext:openconfig-version "0.11.0"; + oc-ext:openconfig-version "0.11.1"; + + revision "2023-09-06" { + description + "Clarification on WRED weight in case it is not present"; + reference "0.11.1"; + } revision "2023-09-15" { description From 11e580e2665b5384ade412c507d41d6e616ed192 Mon Sep 17 00:00:00 2001 From: rszarecki <46606165+rszarecki@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:25:21 -0700 Subject: [PATCH 12/29] Vty files logging (#921) * Add vty and file destinations for syslog --------- Co-authored-by: Darren Loher --- .../system/openconfig-system-logging.yang | 166 +++++++++++++++++- 1 file changed, 162 insertions(+), 4 deletions(-) diff --git a/release/models/system/openconfig-system-logging.yang b/release/models/system/openconfig-system-logging.yang index 3fcc7c5cd..f845547cb 100644 --- a/release/models/system/openconfig-system-logging.yang +++ b/release/models/system/openconfig-system-logging.yang @@ -23,7 +23,13 @@ module openconfig-system-logging { "This module defines configuration and operational state data for common logging facilities on network systems."; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.6.0"; + +revision "2023-07-20" { + description + "adding VTY and local files as logging destinations"; + reference "0.6.0"; + } revision "2023-05-04" { description @@ -354,12 +360,12 @@ module openconfig-system-logging { grouping logging-console-config { description - "Configuration data for console logging"; + "Configuration data for console and vty logging"; } grouping logging-console-state { description - "Operational state data for console logging"; + "Operational state data for console and vty logging"; } grouping logging-console-top { @@ -436,7 +442,8 @@ module openconfig-system-logging { container remote-servers { description - "Enclosing container for the list of remote log servers"; + "Enclosing container for the list of remote log + servers"; list remote-server { key "host"; @@ -473,6 +480,154 @@ module openconfig-system-logging { } } + grouping logging-file-config { + description + "Configuration data for logfile"; + + leaf filename-prefix { + type string { + length 0..255; + } + description + "A name used for the file. It is expected that an + implementation may append timestamp, serial-number or + other identifier to the filename."; + } + + leaf path { + type string { + length 0..255; + } + description + "The fully specified path of the folder where the + logfile is stored. The path is implementation specific + and may include attributes such as a drive identifier."; + } + + leaf rotate { + type uint32; + default 0; + description + "Used for logfile rotation. + Log files are rotated the number of times defined by + this leaf. + The default value of 1 indicates that there will be one + rotation file and one active file. A 0 value indicates + old versions are removed rather than rotated."; + } + + leaf max-size { + type uint32; + default 1000; + description + "Used for logfile rotation. + Maximum size in Bytes, logfile may grow to. When logfile + reach this size it triggers log rotation. The log file need to + be save, closed, and new file open or future log storage. + If needed oldest logfile of same prefix shall be deleted to"; + } + + leaf max-open-time { + type uint32; + default 1440; + description + "Used for logfile rotation. + Maximum time, in minutes, the logfile can be open. When expires, + it triggers log rotation. + Actions are same ans when log file reaches its max-size. + it need to be closed, save, and new file open or future log + storage. If needed oldest logfile of same prefix shall be + deleted to "; + } + } + + grouping logging-file-state { + description + "Operational state data for logfile"; + leaf open-logfile { + type string{ + length 0..511; + } + description + "the currently active/open filename prepended by folder path + and including suffix appended to filename-prefix by system"; + } + } + + grouping logging-files-top { + description + "Top-level grouping for local log files"; + + container files { + description + "Enclosing container for the list of log files"; + + list file { + key "path filename-prefix"; + description + "List of logfiles"; + + leaf filename-prefix { + type leafref { + path "../config/filename-prefix"; + } + description + "Reference to the logfiles list key"; + } + + leaf path { + type leafref { + path "../config/path"; + } + description + "Reference to the logfiles list key"; + } + + container config { + description + "Configuration data for logfile"; + uses logging-file-config; + } + + container state { + config false; + description + "Operational state data for logfile servers"; + uses logging-file-config; + uses logging-file-state; + } + uses logging-selectors-top; + } + } + } + + grouping logging-vty-top { + description + "Top-level grouping for vty logging data"; + + container vty { + description + "Top-level container for data related to vty-based + logging (active sessions of ssh, telnet, etc )"; + + container config { + description + "Configuration data for vty logging"; + + uses logging-console-config; + } + + container state { + config false; + description + "Operational state data for console logging"; + uses logging-console-config; + uses logging-console-state; + } + uses logging-selectors-top; + } + } + grouping logging-top { description "Top-level grouping for logging data"; @@ -483,6 +638,9 @@ module openconfig-system-logging { uses logging-console-top; uses logging-remote-top; + uses logging-files-top; + uses logging-vty-top; + } } // data definition statements From 13260a464a0dde9a47cf8f3f10ef256922c566ae Mon Sep 17 00:00:00 2001 From: wenovus Date: Fri, 13 Oct 2023 12:49:24 -0700 Subject: [PATCH 13/29] Fix revision statements and enable pyangbind as regular checker --- cloudbuild.yaml | 1 - release/models/qos/openconfig-qos-elements.yang | 10 ++++++++-- release/models/qos/openconfig-qos-interfaces.yang | 10 ++++++++-- release/models/qos/openconfig-qos-mem-mgmt.yang | 10 ++++++++-- release/models/qos/openconfig-qos.yang | 10 ++++++++-- 5 files changed, 32 insertions(+), 9 deletions(-) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index f746bf7c0..602afe21d 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -90,7 +90,6 @@ steps: -skipped-validators=confd,yanglint -extra-pyang-versions=2.2.1 -branch=$BRANCH_NAME - -compat-report=pyangbind secretEnv: ['GITHUB_ACCESS_TOKEN'] env: - 'GOPATH=/go' diff --git a/release/models/qos/openconfig-qos-elements.yang b/release/models/qos/openconfig-qos-elements.yang index 613b50768..6aee18d72 100644 --- a/release/models/qos/openconfig-qos-elements.yang +++ b/release/models/qos/openconfig-qos-elements.yang @@ -35,9 +35,15 @@ submodule openconfig-qos-elements { packets for transmission, including policer and shaper functions"; - oc-ext:openconfig-version "0.11.1"; + oc-ext:openconfig-version "0.11.2"; - revision "2023-09-06" { + revision "2023-10-13" { + description + "Fix revision statement date"; + reference "0.11.2"; + } + + revision "2023-10-08" { description "Clarification on WRED weight in case it is not present"; reference "0.11.1"; diff --git a/release/models/qos/openconfig-qos-interfaces.yang b/release/models/qos/openconfig-qos-interfaces.yang index 28959856b..c45c0974b 100644 --- a/release/models/qos/openconfig-qos-interfaces.yang +++ b/release/models/qos/openconfig-qos-interfaces.yang @@ -25,9 +25,15 @@ submodule openconfig-qos-interfaces { configuration and operational state associated with interfaces."; - oc-ext:openconfig-version "0.11.1"; + oc-ext:openconfig-version "0.11.2"; - revision "2023-09-06" { + revision "2023-10-13" { + description + "Fix revision statement date"; + reference "0.11.2"; + } + + revision "2023-10-08" { description "Clarification on WRED weight in case it is not present"; reference "0.11.1"; diff --git a/release/models/qos/openconfig-qos-mem-mgmt.yang b/release/models/qos/openconfig-qos-mem-mgmt.yang index 75086eadb..34c373d58 100644 --- a/release/models/qos/openconfig-qos-mem-mgmt.yang +++ b/release/models/qos/openconfig-qos-mem-mgmt.yang @@ -29,9 +29,15 @@ submodule openconfig-qos-mem-mgmt { per-queue basis, and determine how packets are marked/dropped within the queue instantiation."; - oc-ext:openconfig-version "0.11.1"; + oc-ext:openconfig-version "0.11.2"; - revision "2023-09-06" { + revision "2023-10-13" { + description + "Fix revision statement date"; + reference "0.11.2"; + } + + revision "2023-10-08" { description "Clarification on WRED weight in case it is not present"; reference "0.11.1"; diff --git a/release/models/qos/openconfig-qos.yang b/release/models/qos/openconfig-qos.yang index 5a63029ad..9feb9b3ba 100644 --- a/release/models/qos/openconfig-qos.yang +++ b/release/models/qos/openconfig-qos.yang @@ -27,9 +27,15 @@ module openconfig-qos { "This module defines configuration and operational state data related to network quality-of-service."; - oc-ext:openconfig-version "0.11.1"; + oc-ext:openconfig-version "0.11.2"; - revision "2023-09-06" { + revision "2023-10-13" { + description + "Fix revision statement date"; + reference "0.11.2"; + } + + revision "2023-10-08" { description "Clarification on WRED weight in case it is not present"; reference "0.11.1"; From 65254444ff74a8844e984691e553899807117f80 Mon Sep 17 00:00:00 2001 From: wenovus Date: Fri, 13 Oct 2023 14:17:29 -0700 Subject: [PATCH 14/29] Bump models-ci version --- cloudbuild.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 602afe21d..ff235983e 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -52,7 +52,7 @@ steps: git clone git@github.com:openconfig/models-ci.git /go/src/github.com/openconfig/models-ci cd /go/src/github.com/openconfig/models-ci # Modify the major version to update models-ci version. - branch=$(git tag -l 'v11.*' | sort -V | tail -1) + branch=$(git tag -l 'v12.*' | sort -V | tail -1) git checkout $branch volumes: - name: 'ssh' From 57adeafc825d885b953eec1cd02663c095ccdf71 Mon Sep 17 00:00:00 2001 From: Jake Snyder Date: Tue, 17 Oct 2023 11:09:03 -0600 Subject: [PATCH 15/29] Adding FREQ_2_6_GHZ to wifi-types #923 (#950) --- release/models/wifi/openconfig-wifi-types.yang | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/release/models/wifi/openconfig-wifi-types.yang b/release/models/wifi/openconfig-wifi-types.yang index d2d62f038..30e358ae3 100644 --- a/release/models/wifi/openconfig-wifi-types.yang +++ b/release/models/wifi/openconfig-wifi-types.yang @@ -22,7 +22,13 @@ module openconfig-wifi-types { that are used in the openconfig-wifi modules. It can be imported by any module to make use of these types."; - oc-ext:openconfig-version "1.1.1"; + oc-ext:openconfig-version "1.1.2"; + + revision "2023-09-01" { + description + "Adding FREQ_2_6_GHZ."; + reference "1.1.2"; + } revision "2022-05-26" { description @@ -273,6 +279,12 @@ module openconfig-wifi-types { 6GHz frequencies."; } + identity FREQ_2_6_GHZ { + base OPERATING_FREQUENCY; + description "The Radio or SSID will be dual band; operating in 2.4 and + 6GHz frequencies."; + } + identity CLIENT_CAPABILITIES { description "Client capabilities, as reported by Association Request or From 771cd192d99e43ab8b1f55bdc0f33c443d63dfe1 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 17 Oct 2023 14:13:58 -0700 Subject: [PATCH 16/29] add NEXT-STATEMENT to policy-result-type (#949) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update release/models/policy/openconfig-routing-policy.yang * add continue to policy-result-type --------- Co-authored-by: Óscar González de Dios --- .../policy/openconfig-routing-policy.yang | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/release/models/policy/openconfig-routing-policy.yang b/release/models/policy/openconfig-routing-policy.yang index bf419b779..921e127e5 100644 --- a/release/models/policy/openconfig-routing-policy.yang +++ b/release/models/policy/openconfig-routing-policy.yang @@ -52,9 +52,14 @@ module openconfig-routing-policy { corresponding individual policy statements in order. When a condition statement in a policy statement is satisfied, the corresponding action statement is executed. If the action - statement has either accept-route or reject-route actions, policy - evaluation of the current policy definition stops, and no further - policy definitions in the chain are evaluated. + statement has a final disposition configured as policy result, either + accept-route or reject-route, evaluation of the current policy definition + stops, and no further policy statements are evaluated. In case there is a + policy chain, no further policy definitions in the chain are evaluated. + + If the action statement has the NEXT_STATEMENT policy result, all the + defined actions are executed and policy evaluation proceeds to the next + statement. The NEXT_STATEMENT is the default policy result action. If the condition is not satisfied, then evaluation proceeds to the next policy statement. If none of the policy statement @@ -77,7 +82,13 @@ module openconfig-routing-policy { the remaining conditions (using a modified route if the subroutine performed any changes to the route)."; - oc-ext:openconfig-version "3.3.0"; + oc-ext:openconfig-version "3.4.0"; + + revision "2023-10-11" { + description + "Add NEXT_STATEMENT policy-result-type enum value."; + reference "3.4.0"; + } revision "2022-05-24" { description @@ -162,12 +173,19 @@ module openconfig-routing-policy { typedef policy-result-type { type enumeration { enum ACCEPT_ROUTE { - description "Policy accepts the route"; + description "Policy accepts the route and evaluation of the + current policy definition stops."; } enum REJECT_ROUTE { - description "Policy rejects the route"; + description "Policy rejects the route and evaluation of the + current policy definition stops."; + } + enum NEXT_STATEMENT { + description "Any modifications of the route are preserved and the evaluation of the policy will continue to the + next statement."; } } + default NEXT_STATEMENT; description "Type used to specify route disposition in a policy chain"; From 0bd68159424078c8fbc3724a4bc1ef4e947eb3cf Mon Sep 17 00:00:00 2001 From: Mike Wiebe Date: Thu, 19 Oct 2023 14:15:50 -0400 Subject: [PATCH 17/29] Update to support multiple next-hops per L2RIB producer (#857) * Add L2RIB Per Producer Next-Hop Capability * Make next-hop-groups a leaf-list * mark l2rib next-hop property as deprecated --- .../openconfig-network-instance-l2.yang | 127 +++++++++++++++++- .../openconfig-network-instance.yang | 8 +- 2 files changed, 132 insertions(+), 3 deletions(-) diff --git a/release/models/network-instance/openconfig-network-instance-l2.yang b/release/models/network-instance/openconfig-network-instance-l2.yang index b9f4ede2f..46d433fd3 100644 --- a/release/models/network-instance/openconfig-network-instance-l2.yang +++ b/release/models/network-instance/openconfig-network-instance-l2.yang @@ -24,7 +24,13 @@ submodule openconfig-network-instance-l2 { Layer 2 network instance configuration and operational state parameters."; - oc-ext:openconfig-version "4.1.1"; + oc-ext:openconfig-version "4.2.0"; + + revision "2023-09-07" { + description + "Add L2RIB Per Producer Next-Hop Capability"; + reference "4.2.0"; + } revision "2023-08-09" { description @@ -545,6 +551,7 @@ submodule openconfig-network-instance-l2 { } } } + uses l2ni-l2rib-common-next-hop-group-state; uses l2ni-l2rib-common-next-hop-state; } @@ -606,6 +613,7 @@ submodule openconfig-network-instance-l2 { } } } + uses l2ni-l2rib-common-next-hop-group-state; uses l2ni-l2rib-common-next-hop-state; } } @@ -708,7 +716,10 @@ submodule openconfig-network-instance-l2 { leaf esi { type oc-evpn-types:esi; - description "Ethernet Segment Identifier for local and remote routes"; + description + "Ethernet Segment Identifier (ESI) for local and remote routes. + ESI is used to resolve the next-hop-group. All mac-addresses + learned with the same ESI should point to the same next-hop-group"; } leaf sticky { @@ -721,8 +732,16 @@ submodule openconfig-network-instance-l2 { type leafref { path "../../../../../../next-hops/next-hop/index"; } + status deprecated; description "Leafref next-hop for the MAC-IP table entry"; } + + leaf-list next-hop-group { + type leafref { + path "../../../../../../next-hop-groups/next-hop-group/id"; + } + description "Leafref next-hop-group for the MAC-IP table entry"; + } } grouping l2ni-l2rib-common-next-hop-state { @@ -757,11 +776,115 @@ submodule openconfig-network-instance-l2 { type oc-evpn-types:evi-id; description "Next hop label representing the l2vni for the route"; } + leaf esi { + type oc-evpn-types:esi; + description "Ethernet Segment Identifier (ESI)"; + reference "RFC7432: BGP MPLS-Based Ethernet VPN"; + } + leaf resolved { + type boolean; + description + "Indicates if the path is eligible for forwarding as per evpn mass + withdraw procedures as defined in RFC 7432"; + } uses oc-if:interface-ref-common; } } } } + + grouping l2ni-l2rib-common-next-hop-group-state { + description "L2RIB Common Next Hop Group Attributes Operational State Data Grouping"; + + container next-hop-groups { + description "Surrounding container for groups of L2RIB next-hops."; + list next-hop-group { + key "id"; + description + "An individual set of next-hops grouped into a common group. + Each entry within an L2RIB can optionally point to a + next-hop-group."; + + leaf id { + type leafref { + path "../state/id"; + } + description + "A reference to a unique identifier for the next-hop-group."; + } + container state { + description "State container for common next-hop-group attributes"; + config false; + leaf id { + type uint64; + description + "A unique identifier for the next-hop-group. This index is not + expected to be consistent across reboots, or reprogramming of + the next-hop-group. When updating a next-hop-group, if the group + is removed by the system or assigned an alternate identifier, the + system should send telemetry notifications deleting the previous + identifier. If the identifier of the next-hop-group is changed, + all L2RIB entries that reference it must also be updated."; + } + leaf esi { + type oc-evpn-types:esi; + description "Ethernet Segment Identifier (ESI)"; + reference "RFC7432: BGP MPLS-Based Ethernet VPN"; + } + leaf type { + type enumeration { + enum ESI { + description + "Per ESI pathlist next-hop-group used for evpn mass withdraw procedures as defined in RFC 7432"; + } + enum ESI_EVI { + description + "Per ESI,EVI pathlist next-hop-group used for evpn aliasing procedures as defined in RFC 7432"; + } + enum BASE_ECMP { + description + "Base ECMP next-hop-group used in absence of evpn aliasing"; + } + } + description "Type of next-hop-group"; + } + } + container next-hops { + description + "Surrounding container for the list of next-hops within the next-hop-group."; + list next-hop { + key "index"; + description + "An individual next-hop within the next-hop-group. Each next-hop is a + reference to an entry within the next-hop list."; + + leaf index { + type leafref { + path "../state/index"; + } + description + "A reference to the index for the next-hop within the the next-hop-group."; + } + container state { + description + "Operational state parameters related to a next-hop within the next-hop-group."; + config false; + leaf index { + type leafref { + path "../../../../../../next-hops/next-hop/index"; + } + description + "A reference to the identifier for the next-hop to which the entry in the + next-hop group corresponds."; + } + } + } + } + + } + } + } + grouping l2ni-l2rib-mac-table-producer-state { description "L2RIB MAC Table Operational State Data Grouping"; diff --git a/release/models/network-instance/openconfig-network-instance.yang b/release/models/network-instance/openconfig-network-instance.yang index 8f104d175..984425388 100644 --- a/release/models/network-instance/openconfig-network-instance.yang +++ b/release/models/network-instance/openconfig-network-instance.yang @@ -48,7 +48,13 @@ module openconfig-network-instance { virtual switch instance (VSI). Mixed Layer 2 and Layer 3 instances are also supported."; - oc-ext:openconfig-version "4.1.1"; + oc-ext:openconfig-version "4.2.0"; + + revision "2023-09-07" { + description + "Add L2RIB Per Producer Next-Hop Capability"; + reference "4.2.0"; + } revision "2023-08-09" { description From 0426774f2d7af0dc0a2b913893c8d45644176d65 Mon Sep 17 00:00:00 2001 From: romeyod <78448014+romeyod@users.noreply.github.com> Date: Fri, 27 Oct 2023 01:29:39 -0400 Subject: [PATCH 18/29] Add `next-hop-group-name` in NHG AFT entry state (#966) * * (M) aft/openconfig-aft-common.yang * (M) aft/openconfig-aft-common.yang * (M) aft/openconfig-aft-ethernet.yang * (M) aft/openconfig-aft-ipv4.yang * (M) aft/openconfig-aft-ipv6.yang * (M) aft/openconfig-aft-mpls.yang * (M) aft/openconfig-aft-pf.yang * (M) aft/openconfig-aft-state-synced.yang * (M) aft/openconfig-aft.yang - Add next-hop-group-name in NHG AFT entry state --- release/models/aft/openconfig-aft-common.yang | 16 +++++++++++++++- 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 +++++++- 8 files changed, 64 insertions(+), 8 deletions(-) diff --git a/release/models/aft/openconfig-aft-common.yang b/release/models/aft/openconfig-aft-common.yang index b2c44dad6..51e527edd 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description @@ -579,6 +585,14 @@ submodule openconfig-aft-common { also be updated."; } + leaf next-hop-group-name { + type string; + description + "Where applicable, this leaf is a unique identifier string for the + next-hop-group. It is an arbitrary name for the group, that is + supported by vendors and is exposed for telemetry."; + } + leaf programmed-id { type uint64; description diff --git a/release/models/aft/openconfig-aft-ethernet.yang b/release/models/aft/openconfig-aft-ethernet.yang index d0b85dfc7..196447d97 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description diff --git a/release/models/aft/openconfig-aft-ipv4.yang b/release/models/aft/openconfig-aft-ipv4.yang index 04d4054c2..c887857cc 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description diff --git a/release/models/aft/openconfig-aft-ipv6.yang b/release/models/aft/openconfig-aft-ipv6.yang index 6b6cd1937..85ac46a97 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description diff --git a/release/models/aft/openconfig-aft-mpls.yang b/release/models/aft/openconfig-aft-mpls.yang index 4b4fd828c..6f07233e2 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description diff --git a/release/models/aft/openconfig-aft-pf.yang b/release/models/aft/openconfig-aft-pf.yang index 85ee9d78f..125b3d9a2 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description diff --git a/release/models/aft/openconfig-aft-state-synced.yang b/release/models/aft/openconfig-aft-state-synced.yang index a20dd9257..76f35975d 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description diff --git a/release/models/aft/openconfig-aft.yang b/release/models/aft/openconfig-aft.yang index c204271de..4af67e426 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.3.0"; + oc-ext:openconfig-version "2.4.0"; + + revision "2023-09-26" { + description + "Add next-hop-group-name in NHG AFT entry state."; + reference "2.4.0"; + } revision "2023-04-19" { description From 34a30abbe10033b9f674939347dfde1ba03c7d9d Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 31 Oct 2023 09:59:20 -0700 Subject: [PATCH 19/29] Clarify default policy (#983) --- .../models/policy/openconfig-routing-policy.yang | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/release/models/policy/openconfig-routing-policy.yang b/release/models/policy/openconfig-routing-policy.yang index 921e127e5..2444f305d 100644 --- a/release/models/policy/openconfig-routing-policy.yang +++ b/release/models/policy/openconfig-routing-policy.yang @@ -80,9 +80,21 @@ module openconfig-routing-policy { policy. Similarly, a reject-route action returns false. If the subroutine returns true, the calling policy continues to evaluate the remaining conditions (using a modified route if the - subroutine performed any changes to the route)."; + subroutine performed any changes to the route). - oc-ext:openconfig-version "3.4.0"; + If a routing protocol is defined and the related + apply-policy/default-(import|export)-policy leaf is not set, the + default value for the default-(import|export)-policy leaf must be + applied. See RFC6020 7.6.1 which applies to this model."; + + oc-ext:openconfig-version "3.4.1"; + + revision "2023-10-24" { + description + "Clarify the use of default-(import|export)-policy when no policy + is applied to a protocol."; + reference "3.4.1"; + } revision "2023-10-11" { description From 5d8bc6a7006a29cfd91b2340ee57dc8d860ef178 Mon Sep 17 00:00:00 2001 From: Wen Bo Li <50884368+wenovus@users.noreply.github.com> Date: Tue, 31 Oct 2023 18:16:03 -0400 Subject: [PATCH 20/29] Candidate Model for Repeated BGP set-communities/set-ext-communities (#968) * Change communiity-set-ref to leaf-list --- release/models/bgp/openconfig-bgp-policy.yang | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/release/models/bgp/openconfig-bgp-policy.yang b/release/models/bgp/openconfig-bgp-policy.yang index 05ae1bacb..c999d2941 100644 --- a/release/models/bgp/openconfig-bgp-policy.yang +++ b/release/models/bgp/openconfig-bgp-policy.yang @@ -28,7 +28,16 @@ module openconfig-bgp-policy { It augments the base routing-policy module with BGP-specific options for conditions and actions."; - oc-ext:openconfig-version "6.1.1"; + oc-ext:openconfig-version "6.2.0"; + + revision "2023-10-03" { + description + "Deprecate community-set-ref and ext-community-set-ref, + add the following leaf-list nodes: + * community-set-refs + * ext-community-set-refs"; + reference "6.2.0"; + } revision "2023-03-27" { description @@ -831,7 +840,19 @@ module openconfig-bgp-policy { "Configuration data for referening a community-set in the set-community action"; + leaf-list community-set-refs { + type leafref { + path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" + + "oc-bgp-pol:bgp-defined-sets/" + + "oc-bgp-pol:community-sets/oc-bgp-pol:community-set/" + + "oc-bgp-pol:community-set-name"; + } + description + "References a list of defined community sets by name"; + } + leaf community-set-ref { + status deprecated; type leafref { path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" + "oc-bgp-pol:bgp-defined-sets/" + @@ -994,7 +1015,21 @@ module openconfig-bgp-policy { "Configuration data for referening a extended community-set in the set-ext-community action"; + leaf-list ext-community-set-refs { + type leafref { + path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" + + "oc-bgp-pol:bgp-defined-sets/" + + "oc-bgp-pol:ext-community-sets/" + + "oc-bgp-pol:ext-community-set/" + + "oc-bgp-pol:ext-community-set-name"; + } + description + "References a list of defined extended community sets by + name"; + } + leaf ext-community-set-ref { + status deprecated; type leafref { path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" + "oc-bgp-pol:bgp-defined-sets/" + From 1370303d273184569cad4e9c867933e66ff97406 Mon Sep 17 00:00:00 2001 From: Roland Phung Date: Wed, 1 Nov 2023 23:04:56 -0700 Subject: [PATCH 21/29] Add BGP default import/export policy into global config (#970) * Add the following paths into bgp/global and bgp/global/afi-safis/afi-safi/ * apply-policy/default-import-policy * Refactored apply-policy grouping to separate default from regular policy --- .../openconfig-bgp-common-multiprotocol.yang | 8 ++- .../bgp/openconfig-bgp-common-structure.yang | 8 ++- release/models/bgp/openconfig-bgp-common.yang | 8 ++- release/models/bgp/openconfig-bgp-global.yang | 11 ++- .../models/bgp/openconfig-bgp-neighbor.yang | 8 ++- .../models/bgp/openconfig-bgp-peer-group.yang | 8 ++- release/models/bgp/openconfig-bgp.yang | 8 ++- release/models/isis/openconfig-isis-lsp.yang | 9 ++- .../models/isis/openconfig-isis-routing.yang | 9 ++- release/models/isis/openconfig-isis.yang | 10 ++- .../openconfig-network-instance-l2.yang | 9 ++- .../openconfig-network-instance.yang | 10 ++- .../openconfig-ospfv2-area-interface.yang | 9 ++- .../models/ospf/openconfig-ospfv2-area.yang | 9 ++- .../models/ospf/openconfig-ospfv2-common.yang | 9 ++- .../models/ospf/openconfig-ospfv2-global.yang | 12 +++- .../models/ospf/openconfig-ospfv2-lsdb.yang | 9 ++- release/models/ospf/openconfig-ospfv2.yang | 11 ++- .../policy/openconfig-routing-policy.yang | 68 +++++++++++++++++-- 19 files changed, 209 insertions(+), 24 deletions(-) diff --git a/release/models/bgp/openconfig-bgp-common-multiprotocol.yang b/release/models/bgp/openconfig-bgp-common-multiprotocol.yang index 60f4d67d6..e85eca584 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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description diff --git a/release/models/bgp/openconfig-bgp-common-structure.yang b/release/models/bgp/openconfig-bgp-common-structure.yang index a73bc9d46..92ea39425 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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description diff --git a/release/models/bgp/openconfig-bgp-common.yang b/release/models/bgp/openconfig-bgp-common.yang index 7cad2ac6f..07d38a027 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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description diff --git a/release/models/bgp/openconfig-bgp-global.yang b/release/models/bgp/openconfig-bgp-global.yang index f3ceff357..761becbf1 100644 --- a/release/models/bgp/openconfig-bgp-global.yang +++ b/release/models/bgp/openconfig-bgp-global.yang @@ -7,6 +7,7 @@ submodule openconfig-bgp-global { import openconfig-extensions { prefix oc-ext; } import openconfig-yang-types { prefix oc-yang; } import openconfig-inet-types { prefix oc-inet; } + import openconfig-routing-policy { prefix oc-rpol; } // Include common submodules include openconfig-bgp-common; @@ -26,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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description @@ -397,6 +404,7 @@ submodule openconfig-bgp-global { uses bgp-common-global-group-use-multiple-paths; uses bgp-common-structure-neighbor-group-add-paths; uses bgp-global-mp-all-afi-safi-list-contents; + uses oc-rpol:default-policy-group; } } @@ -482,6 +490,7 @@ submodule openconfig-bgp-global { } uses bgp-global-dynamic-neighbors; + uses oc-rpol:default-policy-group; } } diff --git a/release/models/bgp/openconfig-bgp-neighbor.yang b/release/models/bgp/openconfig-bgp-neighbor.yang index 1b76c81a6..830c76d91 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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description diff --git a/release/models/bgp/openconfig-bgp-peer-group.yang b/release/models/bgp/openconfig-bgp-peer-group.yang index 438ee5005..84c12d090 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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description diff --git a/release/models/bgp/openconfig-bgp.yang b/release/models/bgp/openconfig-bgp.yang index b9e9b2f07..6d28c872e 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.4.1"; + oc-ext:openconfig-version "9.5.0"; + + revision "2023-11-01" { + description + "Add default apply policy to global and per afi-safi config."; + reference "9.5.0"; + } revision "2023-06-27" { description diff --git a/release/models/isis/openconfig-isis-lsp.yang b/release/models/isis/openconfig-isis-lsp.yang index a8415a632..95d31837e 100644 --- a/release/models/isis/openconfig-isis-lsp.yang +++ b/release/models/isis/openconfig-isis-lsp.yang @@ -34,7 +34,14 @@ submodule openconfig-isis-lsp { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "1.6.0"; + oc-ext:openconfig-version "1.6.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "1.6.1"; + } revision "2023-05-01" { description diff --git a/release/models/isis/openconfig-isis-routing.yang b/release/models/isis/openconfig-isis-routing.yang index df8af637b..56f0faed4 100644 --- a/release/models/isis/openconfig-isis-routing.yang +++ b/release/models/isis/openconfig-isis-routing.yang @@ -20,7 +20,14 @@ submodule openconfig-isis-routing { description "This module describes YANG model for ISIS Routing"; - oc-ext:openconfig-version "1.6.0"; + oc-ext:openconfig-version "1.6.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "1.6.1"; + } revision "2023-05-01" { description diff --git a/release/models/isis/openconfig-isis.yang b/release/models/isis/openconfig-isis.yang index a27a82f76..fe99d4024 100644 --- a/release/models/isis/openconfig-isis.yang +++ b/release/models/isis/openconfig-isis.yang @@ -54,7 +54,14 @@ module openconfig-isis { +-> { levels config } +-> { level adjacencies }"; - oc-ext:openconfig-version "1.6.0"; + oc-ext:openconfig-version "1.6.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "1.6.1"; + } revision "2023-05-01" { description @@ -978,6 +985,7 @@ module openconfig-isis { "Policy governing the propagation of prefixes between levels."; uses oc-rpol:apply-policy-import-config; + uses oc-rpol:default-policy-import-config; } grouping isis-mpls-config { diff --git a/release/models/network-instance/openconfig-network-instance-l2.yang b/release/models/network-instance/openconfig-network-instance-l2.yang index 46d433fd3..2f93312ca 100644 --- a/release/models/network-instance/openconfig-network-instance-l2.yang +++ b/release/models/network-instance/openconfig-network-instance-l2.yang @@ -24,7 +24,14 @@ submodule openconfig-network-instance-l2 { Layer 2 network instance configuration and operational state parameters."; - oc-ext:openconfig-version "4.2.0"; + oc-ext:openconfig-version "4.2.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "4.2.1"; + } revision "2023-09-07" { description diff --git a/release/models/network-instance/openconfig-network-instance.yang b/release/models/network-instance/openconfig-network-instance.yang index 984425388..d680f4a9a 100644 --- a/release/models/network-instance/openconfig-network-instance.yang +++ b/release/models/network-instance/openconfig-network-instance.yang @@ -48,7 +48,14 @@ module openconfig-network-instance { virtual switch instance (VSI). Mixed Layer 2 and Layer 3 instances are also supported."; - oc-ext:openconfig-version "4.2.0"; + oc-ext:openconfig-version "4.2.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "4.2.1"; + } revision "2023-09-07" { description @@ -1223,6 +1230,7 @@ module openconfig-network-instance { } uses oc-rpol:apply-policy-import-config; + uses oc-rpol:default-policy-import-config; } grouping network-instance-config { diff --git a/release/models/ospf/openconfig-ospfv2-area-interface.yang b/release/models/ospf/openconfig-ospfv2-area-interface.yang index 92cfdd7f9..3045ad03c 100644 --- a/release/models/ospf/openconfig-ospfv2-area-interface.yang +++ b/release/models/ospf/openconfig-ospfv2-area-interface.yang @@ -25,7 +25,14 @@ submodule openconfig-ospfv2-area-interface { "This submodule provides OSPFv2 configuration and operational state parameters that are specific to the area context"; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.5.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "0.5.1"; + } revision "2023-08-25" { description diff --git a/release/models/ospf/openconfig-ospfv2-area.yang b/release/models/ospf/openconfig-ospfv2-area.yang index 1ff82db2b..e0f0020f8 100644 --- a/release/models/ospf/openconfig-ospfv2-area.yang +++ b/release/models/ospf/openconfig-ospfv2-area.yang @@ -23,7 +23,14 @@ submodule openconfig-ospfv2-area { "This submodule provides OSPFv2 configuration and operational state parameters that are specific to the area context"; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.5.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "0.5.1"; + } revision "2023-08-25" { description diff --git a/release/models/ospf/openconfig-ospfv2-common.yang b/release/models/ospf/openconfig-ospfv2-common.yang index 8a90fcc58..8bfd890b4 100644 --- a/release/models/ospf/openconfig-ospfv2-common.yang +++ b/release/models/ospf/openconfig-ospfv2-common.yang @@ -17,7 +17,14 @@ submodule openconfig-ospfv2-common { "This submodule provides OSPFv2 configuration and operational state parameters that are shared across multiple contexts"; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.5.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "0.5.1"; + } revision "2023-08-25" { description diff --git a/release/models/ospf/openconfig-ospfv2-global.yang b/release/models/ospf/openconfig-ospfv2-global.yang index 73007d05e..e6c0256ec 100644 --- a/release/models/ospf/openconfig-ospfv2-global.yang +++ b/release/models/ospf/openconfig-ospfv2-global.yang @@ -23,13 +23,20 @@ submodule openconfig-ospfv2-global { "This submodule provides OSPFv2 configuration and operational state parameters that are global to a particular OSPF instance"; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.5.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "0.5.1"; + } revision "2023-08-25" { description "Add leaf metric to lsdb-summary-lsa-state."; reference "0.5.0"; -} + } revision "2023-08-09" { description @@ -317,6 +324,7 @@ submodule openconfig-ospfv2-global { } uses oc-rpol:apply-policy-import-config; + uses oc-rpol:default-policy-import-config; } grouping ospfv2-global-max-metric-config { diff --git a/release/models/ospf/openconfig-ospfv2-lsdb.yang b/release/models/ospf/openconfig-ospfv2-lsdb.yang index 35599a961..e1eda9fdd 100644 --- a/release/models/ospf/openconfig-ospfv2-lsdb.yang +++ b/release/models/ospf/openconfig-ospfv2-lsdb.yang @@ -22,7 +22,14 @@ submodule openconfig-ospfv2-lsdb { "An OpenConfig model for the Open Shortest Path First (OSPF) version 2 link-state database (LSDB)"; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.5.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "0.5.1"; + } revision "2023-08-25" { description diff --git a/release/models/ospf/openconfig-ospfv2.yang b/release/models/ospf/openconfig-ospfv2.yang index bce9391ac..fb5a7e031 100644 --- a/release/models/ospf/openconfig-ospfv2.yang +++ b/release/models/ospf/openconfig-ospfv2.yang @@ -34,13 +34,20 @@ module openconfig-ospfv2 { "An OpenConfig model for Open Shortest Path First (OSPF) version 2"; - oc-ext:openconfig-version "0.5.0"; + oc-ext:openconfig-version "0.5.1"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "0.5.1"; + } revision "2023-08-25" { description "Add leaf metric to lsdb-summary-lsa-state."; reference "0.5.0"; -} + } revision "2023-08-09" { description diff --git a/release/models/policy/openconfig-routing-policy.yang b/release/models/policy/openconfig-routing-policy.yang index 2444f305d..8a61d8be0 100644 --- a/release/models/policy/openconfig-routing-policy.yang +++ b/release/models/policy/openconfig-routing-policy.yang @@ -87,7 +87,14 @@ module openconfig-routing-policy { default value for the default-(import|export)-policy leaf must be applied. See RFC6020 7.6.1 which applies to this model."; - oc-ext:openconfig-version "3.4.1"; + oc-ext:openconfig-version "3.4.2"; + + revision "2023-11-01" { + description + "Refactor apply policy to separate default policy in it's own common + set of groupings"; + reference "3.4.2"; + } revision "2023-10-24" { description @@ -1211,6 +1218,11 @@ module openconfig-routing-policy { for the current peer group, neighbor, address family, etc."; } + } + + grouping default-policy-import-config { + description + "Configuration data for default import policy"; leaf default-import-policy { type default-policy-type; @@ -1219,7 +1231,6 @@ module openconfig-routing-policy { "explicitly set a default policy if no policy definition in the import policy chain is satisfied."; } - } grouping apply-policy-export-config { @@ -1241,6 +1252,11 @@ module openconfig-routing-policy { for the current peer group, neighbor, address family, etc."; } + } + + grouping default-policy-export-config { + description + "Configuration data for default export policy"; leaf default-export-policy { type default-policy-type; @@ -1251,22 +1267,37 @@ module openconfig-routing-policy { } } - grouping apply-policy-config { description "Configuration data for routing policies"; uses apply-policy-import-config; uses apply-policy-export-config; - + uses default-policy-config; } + grouping default-policy-config { + description + "Configuration data for default routing policies"; + uses default-policy-import-config; + uses default-policy-export-config; + } grouping apply-policy-state { description "Operational state associated with routing policy"; + uses default-policy-state; + + //TODO: identify additional state data beyond the intended + //policy configuration. + } + + grouping default-policy-state { + description + "Operational state associated with routing policy"; + //TODO: identify additional state data beyond the intended //policy configuration. } @@ -1303,6 +1334,35 @@ module openconfig-routing-policy { } } + grouping default-policy-group { + description + "Top level container for default routing policy applications."; + + container apply-policy { + description + "Anchor point for routing policies in the model. + Import and export policies are with respect to the local + routing table, i.e., export (send) and import (receive), + depending on the context."; + + container config { + description + "Policy configuration data."; + + uses default-policy-config; + } + + container state { + config false; + description + "Operational state for routing policy"; + + uses default-policy-config; + uses default-policy-state; + } + } + } + uses routing-policy-top; } From dccd493ee4802f8edbe465915d43fb1b7175b34c Mon Sep 17 00:00:00 2001 From: atmanmehta <62303086+atmanmehta@users.noreply.github.com> Date: Thu, 2 Nov 2023 10:24:00 -0700 Subject: [PATCH 22/29] Link damping (#947) * Add support for penalty-based-aied. This is a link damping algorithm that is mutually exclusive from hold time --------- Co-authored-by: wenovus --- .../interfaces/openconfig-interfaces.yang | 90 ++++++++++++++++++- 1 file changed, 87 insertions(+), 3 deletions(-) diff --git a/release/models/interfaces/openconfig-interfaces.yang b/release/models/interfaces/openconfig-interfaces.yang index 9589c2cb2..248b5f71d 100644 --- a/release/models/interfaces/openconfig-interfaces.yang +++ b/release/models/interfaces/openconfig-interfaces.yang @@ -51,7 +51,13 @@ module openconfig-interfaces { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "3.5.0"; + oc-ext:openconfig-version "3.6.0"; + revision "2023-08-29" { + description + "Add augment for penalty-based additive-increase, exponential-decrease link damping algorithm."; + reference + "3.6.0"; + } revision "2023-07-14" { description @@ -497,6 +503,75 @@ module openconfig-interfaces { } } + grouping interface-link-damping-config { + description + "Configuration data for interface link damping settings."; + + leaf max-suppress-time { + type uint32; + units milliseconds; + default 0; + description + "Maximum time an interface can remain damped since the last link down event no matter how unstable it has been prior to this period of stability. In a damped state, the interface’s state change will not be advertised."; + } + + leaf decay-half-life { + type uint32; + units milliseconds; + default 0; + description + "The amount of time after which an interface’s penalty is decreased by half. Decay-half-time should not be more than max-suppress-time."; + } + + leaf suppress-threshold { + type uint32; + default 0; + description + "The accumulated penalty that triggers the damping of an interface. A value of 0 indicates config is disabled."; + } + + leaf reuse-threshold { + type uint32; + default 0; + description + "When the accumulated penalty decreases to this reuse threshold, the interface is not damped anymore. Interface state changes are advertised to applications. A value of 0 indicates config is disabled."; + } + + leaf flap-penalty { + type uint32; + default 0; + description + "A penalty that each down event costs. A value of 0 indicates the config is disabled."; + } + } + grouping interface-link-damping-state { + description + "Operational state data for interface link damping settings."; + } + grouping link-damping-top { + description + "Top level grouping for link damping parameters."; + + container penalty-based-aied { + description + "Top level container to suppress UP->DOWN link events using a penalty based additive-increase, exponential-decrease algorithm."; + + container config { + description + "Configuration data for link damping settings."; + uses interface-link-damping-config; + } + + container state { + config false; + description + "Operational state data for link damping settings."; + uses interface-link-damping-config; + uses interface-link-damping-state; + } + } + } + grouping interface-common-state { description "Operational state data (in addition to intended configuration) @@ -1221,7 +1296,16 @@ module openconfig-interfaces { } } - uses interface-phys-holdtime-top; + uses interface-phys-holdtime-top { + when "./penalty-based-aied/config/suppress-threshold = 0 + or ./penalty-based-aied/config/reuse-threshold = 0 + or ./penalty-based-aied/config/flap-penalty = 0" { + description + "Hold time and penalty-based-aied are two algorithms to suppress + link transitions and must be mutually exclusive."; + } + } + uses link-damping-top; uses subinterfaces-top; } } @@ -1229,4 +1313,4 @@ module openconfig-interfaces { uses interfaces-top; -} +} \ No newline at end of file From 025b0ee222358562b993e5216209600de9416dd0 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Fri, 3 Nov 2023 16:40:04 -0700 Subject: [PATCH 23/29] Revert "Added new model for route summary (#783)" (#992) This reverts commit 19be716b607a9ac0f9145af994c8d11d63027e77. --- release/models/network-instance/.spec.yml | 2 - .../openconfig-route-summary.yang | 112 ------------------ 2 files changed, 114 deletions(-) delete mode 100644 release/models/network-instance/openconfig-route-summary.yang diff --git a/release/models/network-instance/.spec.yml b/release/models/network-instance/.spec.yml index 9874ec073..615cf82ef 100644 --- a/release/models/network-instance/.spec.yml +++ b/release/models/network-instance/.spec.yml @@ -5,7 +5,6 @@ - yang/network-instance/openconfig-evpn-types.yang - yang/network-instance/openconfig-evpn.yang - yang/network-instance/openconfig-programming-errors.yang - - yang/network-instance/openconfig-route-summary.yang - yang/aft/openconfig-aft-network-instance.yang - yang/segment-routing/openconfig-rsvp-sr-ext.yang - yang/segment-routing/openconfig-segment-routing.yang @@ -13,7 +12,6 @@ build: - yang/network-instance/openconfig-network-instance.yang - yang/network-instance/openconfig-programming-errors.yang - - yang/network-instance/openconfig-route-summary.yang - yang/aft/openconfig-aft-network-instance.yang - yang/segment-routing/openconfig-rsvp-sr-ext.yang run-ci: true diff --git a/release/models/network-instance/openconfig-route-summary.yang b/release/models/network-instance/openconfig-route-summary.yang deleted file mode 100644 index 169894b32..000000000 --- a/release/models/network-instance/openconfig-route-summary.yang +++ /dev/null @@ -1,112 +0,0 @@ -module openconfig-route-summary { - yang-version "1"; - - namespace "http://openconfig.net/yang/route-summary"; - - prefix "oc-rtsummary"; - - import openconfig-extensions { prefix "oc-ext"; } - import openconfig-yang-types { prefix "oc-yang-types"; } - import openconfig-policy-types { prefix "oc-pol-types"; } - import openconfig-network-instance { prefix "oc-ni"; } - - organization - "OpenConfig working group"; - - contact - "OpenConfig working group - www.openconfig.net"; - - description - "This module provides summary of route counts per route type for each network - instance."; - - oc-ext:openconfig-version "1.0.0"; - - revision "2022-12-21" { - description - "Initial version."; - reference "1.0.0"; - } - - grouping route-counter { - description - "Route type counter item."; - - leaf origin-protocol { - description - "Route type that keys the route count list."; - - type identityref { - base "oc-pol-types:INSTALL_PROTOCOL_TYPE"; - } - } - - container total-count { - description - "A collection of route counts."; - uses total-count; - } - } - - grouping total-count { - description - "A collection of route counts."; - - leaf fib-count { - description - "Total number of routes in the FIB."; - type oc-yang-types:counter64; - } - } - - grouping route-summary { - description - "A summary of route count by route type."; - - list route-count { - key "origin-protocol"; - - description - "Route types that keys the route count list."; - - leaf origin-protocol { - type leafref { - path "../state/origin-protocol"; - } - description - "Reference to the source of the route."; - } - - container state { - description - "State parameters for the route summary list entry."; - uses route-counter; - } - } - } - - augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:afts/oc-ni:ipv6-unicast" { - description - "Augment the network-instance model with the route summary container for - IPv4."; - - container summary { - uses route-summary; - description - "IPv4 route summary for the network instance."; - } - } - - augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:afts/oc-ni:ipv4-unicast" { - description - "Augment the network-instance model with the route summary container for - IPv6."; - - container summary { - uses route-summary; - description - "IPv6 route summary for the network instance."; - } - } -} From c4ff974dc48bf4385ddbe1041a575cf405e8913f Mon Sep 17 00:00:00 2001 From: Wen Bo Li <50884368+wenovus@users.noreply.github.com> Date: Mon, 13 Nov 2023 19:26:09 -0500 Subject: [PATCH 24/29] add ygnmi to CI (#998) --- cloudbuild.yaml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index ff235983e..4a3d82970 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -52,7 +52,7 @@ steps: git clone git@github.com:openconfig/models-ci.git /go/src/github.com/openconfig/models-ci cd /go/src/github.com/openconfig/models-ci # Modify the major version to update models-ci version. - branch=$(git tag -l 'v12.*' | sort -V | tail -1) + branch=$(git tag -l 'v13.*' | sort -V | tail -1) git checkout $branch volumes: - name: 'ssh' @@ -229,6 +229,24 @@ steps: waitFor: ['validator prep', 'go path creation', 'oc-pyang'] id: 'goyang-ygot' +############### YGNMI ############### +- name: 'us-west1-docker.pkg.dev/$PROJECT_ID/models-ci/models-ci-image' + entrypoint: 'bash' + args: ['-c', "/go/src/github.com/openconfig/models-ci/validators/ygnmi/test.sh"] + secretEnv: ['GITHUB_ACCESS_TOKEN'] + volumes: + - name: 'gopath' + path: /go + env: + - 'GOPATH=/go' + - '_PR_NUMBER=$_PR_NUMBER' + - '_MODEL_ROOT=$_MODEL_ROOT' + - 'COMMIT_SHA=$COMMIT_SHA' + - '_REPO_SLUG=$_REPO_SLUG' + - 'BRANCH_NAME=$BRANCH_NAME' + waitFor: ['validator prep', 'go path creation', 'oc-pyang'] + id: 'ygnmi' + ############### PYANG ############### - name: 'us-west1-docker.pkg.dev/$PROJECT_ID/models-ci/models-ci-image' entrypoint: 'bash' From 28a7b6b726c134140bebdd64f08f34f7dca1c459 Mon Sep 17 00:00:00 2001 From: Wen Bo Li <50884368+wenovus@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:07:06 -0500 Subject: [PATCH 25/29] Update README.md with ygnmi badge (#999) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 236c7d979..83ae80d5c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![OpenConfig Linter](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:oc-pyang.svg)](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:oc-pyang.html) [![pyangbind](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:pyangbind.svg)](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:pyangbind.html) [![goyang/ygot](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:goyang-ygot.svg)](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:goyang-ygot.html) +[![ygnmi](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:ygnmi.svg)](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:ygnmi.html) [![yanglint](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:yanglint.svg)](https://storage.googleapis.com/openconfig/compatibility-badges/openconfig-public:yanglint.html) # OpenConfig From adf582e54f778d41092967b6b4bea85107f9935d Mon Sep 17 00:00:00 2001 From: sachendras <44847441+sachendras@users.noreply.github.com> Date: Thu, 16 Nov 2023 11:23:57 -0800 Subject: [PATCH 26/29] Update openconfig-network-instance.yang (#987) * Clarify network_instance_redistribution and default route policy --------- Co-authored-by: Darren Loher Co-authored-by: Wen Bo Li <50884368+wenovus@users.noreply.github.com> --- doc/network_instance_redistribution.md | 5 ++++- .../openconfig-network-instance-l2.yang | 8 +++++++- .../openconfig-network-instance.yang | 12 +++++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/doc/network_instance_redistribution.md b/doc/network_instance_redistribution.md index e531a66b4..d35b67fdd 100644 --- a/doc/network_instance_redistribution.md +++ b/doc/network_instance_redistribution.md @@ -22,7 +22,8 @@ In numerous use cases an operator wishes to take routes that exist in one protoc In those implementations that maintain a (virtual-) RIB per protocol, the operator must configure explicit connections between these tables, usually alongside a policy to allow such inter-protocol advertisement to occur. While no such configuration is required in those implementations that utilise a single RIB, it is notable that even in these implementations a protocol will not advertise another protocol's routes from the RIB by default (since such a setup would mean that for instance, the BGP DFZ would be re-advertised into the IGP at peering edge devices, which is clearly not desirable). Instead, an operator must create explicit configuration that matches routes installed into the RIB by a particular protocol, and then "import" these routes into the protocol that is expected to advertise them. -In this latter case, the use of an import policy within a particular protocol instance is equivalent to the former - with the only difference being the context in which the policy is defined. With a table per protocol, an explicit configuration of redistributing routes from protocol A to protocol B is specified. In the latter case, the target protocol (protocol B) is specified, and a policy is used to select the source protocols from which routes may be imported for advertisement. +In this latter case, the use of an import policy within a particular protocol instance is equivalent to the former - with the only difference being the context in which the policy is defined. With a table per protocol, an explicit configuration of redistributing routes from protocol A to protocol B is specified. In the latter case, the target protocol (protocol B) is specified, and a policy is used to select the source protocols from which routes may be imported for advertisement. +In both cases, the destination protocol (protocol B) only installs the redistributed routes from the source protocol (protocol A) in its "advertisement RIB view". The redistributed routes are not installed in the FIB (forwarding information base) and therefore are not used for forwarding. ## OpenConfig Approach to Protocol RIB Interconnection @@ -35,6 +36,8 @@ An OpenConfig `routing-policy` is specified along with the connection - allowing It is expected that protocol-specific attributes (e.g., BGP communities) are set by such an import policy, allowing routes that are redistributed to carry information relating to their source (e.g., an IGP route may be tagged with a specific community using policy to indicate its provenance). +In the absense of an import-policy for table-connections, default-import-policy should take effect. In the absence of both, no routes should be allowed to be redistributed. + ## Examples of OpenConfig Network instance ### Example: Aggregate Routes Redistributed to IS-IS Level 2 diff --git a/release/models/network-instance/openconfig-network-instance-l2.yang b/release/models/network-instance/openconfig-network-instance-l2.yang index 2f93312ca..16a41451d 100644 --- a/release/models/network-instance/openconfig-network-instance-l2.yang +++ b/release/models/network-instance/openconfig-network-instance-l2.yang @@ -24,7 +24,13 @@ submodule openconfig-network-instance-l2 { Layer 2 network instance configuration and operational state parameters."; - oc-ext:openconfig-version "4.2.1"; + oc-ext:openconfig-version "4.2.2"; + + revision "2023-11-03" { + description + "Add reference URL for Route Redistribution rules"; + reference "4.2.2"; + } revision "2023-11-01" { description diff --git a/release/models/network-instance/openconfig-network-instance.yang b/release/models/network-instance/openconfig-network-instance.yang index d680f4a9a..ee5b5a740 100644 --- a/release/models/network-instance/openconfig-network-instance.yang +++ b/release/models/network-instance/openconfig-network-instance.yang @@ -48,7 +48,13 @@ module openconfig-network-instance { virtual switch instance (VSI). Mixed Layer 2 and Layer 3 instances are also supported."; - oc-ext:openconfig-version "4.2.1"; + oc-ext:openconfig-version "4.2.2"; + + revision "2023-11-03" { + description + "Add reference URL for Route Redistribution rules"; + reference "4.2.2"; + } revision "2023-11-01" { description @@ -487,6 +493,10 @@ module openconfig-network-instance { for the connection are available for the destination protocol to advertise, or match within its policies."; + reference + "Route Redistribution in OpenConfig Network Instance: + https://github.com/openconfig/public/blob/master/doc/network_instance_redistribution.md#interconnection-of-protocol-ribs"; + leaf src-protocol { type leafref { path "../config/src-protocol"; From 48d0a7dce71389dc399cf5b47cd9d2472ce1b68c Mon Sep 17 00:00:00 2001 From: Wen Bo Li <50884368+wenovus@users.noreply.github.com> Date: Mon, 20 Nov 2023 13:01:58 -0800 Subject: [PATCH 27/29] Use updated breaking change CI script (#1003) --- .github/workflows/diff.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/diff.yaml b/.github/workflows/diff.yaml index 0a39c6487..1775e77ff 100644 --- a/.github/workflows/diff.yaml +++ b/.github/workflows/diff.yaml @@ -22,7 +22,7 @@ jobs: - name: Install openconfig-ci CLI run: | - go install github.com/openconfig/models-ci/openconfig-ci@c880ed2 + go install github.com/openconfig/models-ci/openconfig-ci@05dd074 - name: Make sure all backward-incompatible changes are covered by version changes. id: check From 4d313589ea2afe6cbe89e2eb4ad14d113f86c00e Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Tue, 21 Nov 2023 09:29:39 -0800 Subject: [PATCH 28/29] Introduce refactored aft summary model (#997) * add refactored aft summary model --- release/models/aft/.spec.yml | 2 + .../models/aft/openconfig-aft-summary.yang | 120 ++++++++++++++++++ release/models/network-instance/.spec.yml | 11 +- 3 files changed, 129 insertions(+), 4 deletions(-) create mode 100644 release/models/aft/openconfig-aft-summary.yang diff --git a/release/models/aft/.spec.yml b/release/models/aft/.spec.yml index 6320b2469..fd1079c0b 100644 --- a/release/models/aft/.spec.yml +++ b/release/models/aft/.spec.yml @@ -2,7 +2,9 @@ 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 - yang/aft/openconfig-aft-network-instance.yang + - yang/aft/openconfig-aft-summary.yang run-ci: true diff --git a/release/models/aft/openconfig-aft-summary.yang b/release/models/aft/openconfig-aft-summary.yang new file mode 100644 index 000000000..a3fae3a26 --- /dev/null +++ b/release/models/aft/openconfig-aft-summary.yang @@ -0,0 +1,120 @@ +module openconfig-aft-summary { + yang-version "1"; + + namespace "http://openconfig.net/yang/aft-summary"; + + prefix "oc-aftsummary"; + + import openconfig-extensions { prefix "oc-ext"; } + import openconfig-yang-types { prefix "oc-yang-types"; } + import openconfig-policy-types { prefix "oc-pol-types"; } + import openconfig-network-instance { prefix "oc-ni"; } + + organization + "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module provides summary of aft entry counts per protocol type for each network + instance."; + + oc-ext:openconfig-version "0.1.0"; + + revision "2023-11-09" { + description + "Initial version."; + reference "0.1.0"; + } + + grouping protocols-state { + description + "Grouping for protocol type state."; + + leaf origin-protocol { + description + "Protocol type that keys the protocol list."; + + type identityref { + base "oc-pol-types:INSTALL_PROTOCOL_TYPE"; + } + } + + container counters { + description + "Enclosing container for aft entry counters"; + + leaf aft-entries { + description + "Total number of entries in the aft."; + type oc-yang-types:counter64; + } + } + } + + grouping aft-summary { + description + "A summary of aft entries by protocol type."; + + container protocols { + description + "Enclosing container for a list of protocols"; + list protocol { + key "origin-protocol"; + + description + "Protocol type that keys the aft entry count list."; + + leaf origin-protocol { + type leafref { + path "../state/origin-protocol"; + } + description + "Reference to the protocol type which added the aft entry."; + } + + container state { + description + "State parameters for the aft entry list."; + uses protocols-state; + } + } + } + } + + grouping aft-summary-ipv4 { + description + "Grouping of all aft summaries for ipv4."; + container ipv4-unicast { + description + "Container for ipv4 unicast aft summary by protocol type."; + uses aft-summary; + } + } + + grouping aft-summary-ipv6 { + description + "Grouping of all aft summaries for ipv6."; + container ipv6-unicast { + description + "Container for ipv6 aft counts by protocol type."; + uses aft-summary; + } + } + + augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:afts" { + description + "Augment the afts model with the aft summary container."; + + container aft-summaries { + uses aft-summary-ipv4; + uses aft-summary-ipv6; + + description + "Aft summary for the network instance."; + } + } + +} diff --git a/release/models/network-instance/.spec.yml b/release/models/network-instance/.spec.yml index 615cf82ef..992b4a491 100644 --- a/release/models/network-instance/.spec.yml +++ b/release/models/network-instance/.spec.yml @@ -1,18 +1,21 @@ - name: openconfig-network-instance docs: - - yang/network-instance/openconfig-network-instance-types.yang - - yang/network-instance/openconfig-network-instance.yang + - yang/aft/openconfig-aft-network-instance.yang + - yang/aft/openconfig-aft-summary.yang - yang/network-instance/openconfig-evpn-types.yang - yang/network-instance/openconfig-evpn.yang + - yang/network-instance/openconfig-network-instance-types.yang + - yang/network-instance/openconfig-network-instance.yang - yang/network-instance/openconfig-programming-errors.yang - - yang/aft/openconfig-aft-network-instance.yang - yang/segment-routing/openconfig-rsvp-sr-ext.yang - yang/segment-routing/openconfig-segment-routing.yang - yang/rib/openconfig-rib-bgp-ext.yang + build: + - yang/aft/openconfig-aft-network-instance.yang + - yang/aft/openconfig-aft-summary.yang - yang/network-instance/openconfig-network-instance.yang - yang/network-instance/openconfig-programming-errors.yang - - yang/aft/openconfig-aft-network-instance.yang - yang/segment-routing/openconfig-rsvp-sr-ext.yang run-ci: true - name: openconfig-network-instance-bgp-rib-augment From 4e6c1bf524708b8dcd71ac5ffcb1e01dd3b01c4c Mon Sep 17 00:00:00 2001 From: sallylsy <108024270+sallylsy@users.noreply.github.com> Date: Tue, 21 Nov 2023 16:15:37 -0800 Subject: [PATCH 29/29] Add hashing model (#959) * Add traffic load balancing hashing model in OC --------- Co-authored-by: Darren Loher --- release/models/system/.spec.yml | 7 + release/models/system/openconfig-hashing.yang | 366 ++++++++++++++++++ 2 files changed, 373 insertions(+) create mode 100644 release/models/system/openconfig-hashing.yang diff --git a/release/models/system/.spec.yml b/release/models/system/.spec.yml index 9cd6c6222..de5ecc001 100644 --- a/release/models/system/.spec.yml +++ b/release/models/system/.spec.yml @@ -7,6 +7,7 @@ - yang/system/openconfig-aaa-types.yang - yang/system/openconfig-alarms.yang - yang/system/openconfig-alarm-types.yang + - yang/system/openconfig-hashing.yang - yang/system/openconfig-license.yang - yang/system/openconfig-procmon.yang - yang/system/openconfig-system.yang @@ -32,3 +33,9 @@ - yang/system/openconfig-messages.yang build: - yang/system/openconfig-messages.yang +- name: openconfig-hashing + docs: + - yang/system/openconfig-hashing.yang + build: + - yang/system/openconfig-hashing.yang + run-ci: true diff --git a/release/models/system/openconfig-hashing.yang b/release/models/system/openconfig-hashing.yang new file mode 100644 index 000000000..e4480b22a --- /dev/null +++ b/release/models/system/openconfig-hashing.yang @@ -0,0 +1,366 @@ +module openconfig-hashing { + yang-version "1"; + + // namespace + namespace "http://openconfig.net/yang/hashing"; + + prefix "oc-hashing"; + + // import some basic types + import openconfig-extensions { prefix oc-ext; } + import openconfig-system {prefix oc-sys;} + import openconfig-interfaces {prefix oc-intf;} + + // meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + netopenconfig@googlegroups.com"; + + description + "Model for managing hashing policies that would be referenced by the + interfaces model."; + + + oc-ext:openconfig-version "0.1.0"; + + revision "2023-08-08" { + description "Initial hashing model."; + reference "0.1.0"; + } + + oc-ext:catalog-organization "openconfig"; + oc-ext:origin "openconfig"; + + grouping hashing-inputs { + description + "Top level container for inputs to be used for hashing policies."; + + leaf ingress-interface { + type boolean; + description + "Include the ingress subinterface identified in the + calculation of the hash."; + } + leaf ip-protocol-type { + type boolean; + description + "Include the IP protocol type in the calculation of the hash."; + } + } + + grouping ipv4-ipv6-inputs-top { + description + "The top level container for ipv4 and ipv6 header + fields used for the hash computation."; + + leaf src-addr { + type boolean; + description + "Use the source address in the calculation of the hash."; + } + + leaf dst-addr { + type boolean; + description + "Use the destination address in the calculation of the hash."; + } + + leaf src-port { + type boolean; + description + "Use the source port from the transport header in the calculation + of the hash."; + } + + leaf dst-port { + type boolean; + description + "Use the destination port from the transport header in the + calculation of the hash."; + } + } + + grouping ipv6-inputs-top { + description + "The top level container specifially for ipv6 header + fields used for the hash computation."; + + leaf flow-label { + type boolean; + description + "Use the flow label in the IPv6 header + to calculate the hash."; + } + } + + grouping hashing-policy-config { + description + "Configuration data for hashing policies."; + + leaf name { + type string; + description + "The name of the hashing policy. + When a configured user-controlled policy is created by the + system, it is instantiated with the same name in the + /system/hashing-policies/hashing-policy/name list."; + } + + leaf seed { + type uint64; + description + "The seed used to initialize the hash algorithm"; + } + + leaf algorithm { + type string; + description + "The name of hash algorithm. This algorithm MUST + be a supported algorithm"; + } + } + + grouping hashing-policy-top { + description + "Top level grouping for hashing configuration and operational state + data."; + + container hashing-policies { + description + "Top level container for hashing, including configuration and + state data."; + + list hashing-policy { + key "name"; + + description + "The list of named policies to be used on the device."; + + leaf name { + type leafref { + path "../config/name"; + } + description + "References the name of the hashing policy."; + } + container config { + description + "Configurable items at the global hash policy level."; + + uses hashing-policy-config; + } + container state { + config false; + description + "Operational state data at the global hash policy + level."; + + uses hashing-policy-config; + } + + container hash-field-modes { + description + "Container for specifying inputs to be used when + calculating the hash."; + + container config { + description + "Configurable items at the hashing inputs level."; + uses hashing-inputs; + } + container state { + config false; + description + "Operational state data at the hashing + inputs level."; + uses hashing-inputs; + } + + container ipv4 { + description + "The IPv4 fields that should be used to + compute the hash."; + container config { + description + "Configurable data at the hashing + inputs level for IPv4."; + uses ipv4-ipv6-inputs-top; + } + + container state { + config false; + description + "Operational state data at the hashing + inputs level for IPv4."; + uses ipv4-ipv6-inputs-top; + } + } + + container ipv6 { + description + "The IPv6 fields that should be used to + compute the hash."; + + container config { + description + "Configurable data at the hashing + inputs level for IPv6."; + + uses ipv4-ipv6-inputs-top; + uses ipv6-inputs-top; + } + + container state { + config false; + description + "Operational state data at the hashing + inputs level for IPv6."; + + uses ipv4-ipv6-inputs-top; + uses ipv6-inputs-top; + } + } + } + } + } + } + + grouping supported-algorithms-state { + description + "Top-level container for the supported algorithms."; + leaf name { + type string; + description + "Name of the supported algorithm."; + } + leaf description { + type string; + description + "Description of the supported algorithm."; + } + } + grouping supported-algorithms-top { + description + "Top-level container of the supported algorithms for supported + algorithms. The list of algorithms are expected to be defined by + the target device."; + container algorithms { + description + "Container for vendor supported hashing algorithms."; + uses vendor-hashing-algorithms; + } + } + + grouping hashing-algo-top { + description + "Top level container of the supported algorithms for supported + algorithms."; + container hashing-algorithms { + config false; + description + "Container of the supported algorithms for supported + algorithms."; + list hashing-algorithm { + key "name"; + + description + "List of the supported algorithms for supported + algorithms."; + + leaf name { + type leafref { + path ../state/name; + } + description + "Reference to the supported algorithm list key."; + } + + container state { + description + "Operational data for the supported algorithm."; + config false; + + leaf name { + type string; + description + "Name of the supported algorithm."; + } + + leaf description { + type string; + description + "Description of the supported algorithm."; + } + } + } + } + } + + grouping vendor-hashing-algorithms { + description + "Supported hashing algorithms per vender."; + container vendor { + description + "Specify the vendor. Each vendor should have its own set of + supported algorithms. For each supported algorithm, a name + and a description should be defined. An implementation must + augment this model using the schema described in the + vendor_counter_guide reference. + + e.g. + augment /system/hashing/vendor { + container { + container { + uses hashing-algo-top; + } + } + }"; + reference + "https://github.com/openconfig/public/tree/master/doc/vendor_counter_guide.md"; + } + } + + grouping hashing-top { + description + "Top-level container for Hashing algorithms and hashing policies"; + container hashing { + description + "Container for Hashing algorithms and hashing policies"; + uses supported-algorithms-top; + uses hashing-policy-top; + } + } + + augment "/oc-sys:system" { + description + "Augment for Hashing algorithms and hashing policies"; + + uses hashing-top; + } + + augment "/oc-intf:interfaces/oc-intf:interface/oc-intf:config" { + description + "Augment for configuration data hashing policy on the interface."; + leaf hashing-policy { + type leafref { + path "/oc-sys:system/hashing/hashing-policies/hashing-policy/name"; + } + description "The configuration data hashing policy to be used when + hashing packets coming in on the interface."; + } + } + + augment "/oc-intf:interfaces/oc-intf:interface/oc-intf:state" { + description + "Augment for operational data hashing policy on the iinterface."; + leaf hashing-policy { + type leafref { + path "/oc-sys:system/hashing/hashing-policies/hashing-policy/name"; + } + description "The operational data hashing policy to be used when + hashing packets coming in on the interface."; + } + } +} \ No newline at end of file