diff --git a/experimental/ietf-extracted-YANG-modules/ietf-incident-types@2023-05-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-incident-types@2023-05-16.yang
index e84ab44b2..a068288e1 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-incident-types@2023-05-16.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-incident-types@2023-05-16.yang
@@ -68,8 +68,8 @@ module ietf-incident-types {
description "optical transport network domain.";
}
identity ip {
- base single-domain;
- description "ip domain.";
+ base transport;
+ description "ip transport network domain.";
}
identity ptn {
base ip;
@@ -87,7 +87,7 @@ module ietf-incident-types {
base incident-category;
description "device category.";
}
- identity power-enviorment {
+ identity power-environment {
base device;
description "power system category.";
}
@@ -99,7 +99,7 @@ module ietf-incident-types {
base device;
description "software of device category";
}
- identity line {
+ identity line-card {
base device-hardware;
description "line card category.";
}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang
index 073279d47..6a7d04494 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang
@@ -92,8 +92,8 @@ module ietf-incident {
}
leaf occur-time {
type yang:date-and-time;
- description "the time when an incident instance is occured.
- It's the occur time of the first event during
+ description "the time when an incident instance occurs.
+ It's the occurrence time of the first event during
incident detection.";
}
leaf clear-time {
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-10-20.yang
similarity index 77%
rename from experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-07-07.yang
rename to experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-10-20.yang
index 7240dce32..f5c0c6a74 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-07-07.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-10-20.yang
@@ -26,25 +26,18 @@ module ietf-network-slice-service {
"RFC 8345: A YANG Data Model for Network
Topologies, Section 6.2";
}
-
- /* Import TE Types */
-
- import ietf-te-types {
- prefix te-types;
- reference
- "RFC 8776: Common YANG Data Types for Traffic Engineering";
- }
import ietf-te-packet-types {
prefix te-packet-types;
reference
- "RFC 8776: Common YANG Data Types for Traffic Engineering";
+ "RFC 8776: Common YANG Data Types for Traffic Engineering,
+ Section 5";
}
organization
"IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group";
contact
- "WG Web:
+ "WG Web:
WG List:
Editor: Bo Wu
@@ -52,7 +45,7 @@ module ietf-network-slice-service {
Editor: Dhruv Dhody
Editor: Reza Rokui
-
+
Editor: Tarek Saad
Author: Liuyan Han
@@ -60,22 +53,26 @@ module ietf-network-slice-service {
Editor: John Mullooly
";
description
- "This module defines a model for the IETF Network Slice Service.
+ "This YANG module defines a model for the IETF Network Slice
+ Service.
- Copyright (c) 2023 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
+ The model fully conforms to the Network Management
+ Datastore Architecture (NMDA).
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Revised BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
+ Copyright (c) 2023 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Revised BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.";
- revision 2023-07-07 {
+ revision 2023-10-20 {
description
"Initial revision.";
reference
@@ -99,8 +96,8 @@ module ietf-network-slice-service {
identity service-tag-service {
base service-tag-type;
description
- "The IETF Network Slice Service tag type,e.g. L2 or L3
- service.";
+ "The IETF Network Slice service tag type, e.g. Layer 2 or
+ Layer 3 service.";
}
identity service-tag-opaque {
@@ -113,18 +110,16 @@ module ietf-network-slice-service {
description
"Base identity for the attachment circuit tag type.";
}
-
- identity attachment-circuit-tag-vlan-id {
+ identity vlan-id {
base attachment-circuit-tag-type;
description
- "The attachment circuit VLAN ID tag type. e.g. dot1Q or QinQ
- VLAN IDs.";
+ "Identity for VLAN ID tag type, e.g. dot1Q or QinQ VLAN IDs.";
}
- identity attachment-circuit-tag-ip-mask {
+ identity ip-mask {
base attachment-circuit-tag-type;
description
- "The attachment circuit tag IP mask.";
+ "Identity for IP mask tag type.";
}
identity service-isolation-type {
@@ -146,24 +141,23 @@ module ietf-network-slice-service {
"Base identity for IETF Network Slice Service security type.";
}
- identity service-security-authenticate {
+ identity authentication {
base service-security-type;
description
- "Indicates the slice service requires authentication.";
+ "Indicates that the Slice Service requires authentication.";
}
- identity service-security-integrity {
+ identity integrity {
base service-security-type;
description
- "Indicates the slice service requires data integrity.";
+ "Indicates that the Slice Service requires data integrity.";
}
- identity service-security-encryption {
+ identity encryption {
base service-security-type;
description
- "Indicates the slice service requires data encryption.";
+ "Indicates that the Slice Service requires data encryption.";
}
-
identity point-to-point {
base vpn-common:vpn-topology;
description
@@ -184,6 +178,7 @@ module ietf-network-slice-service {
"Identity for multipoint-to-multipoint IETF Network Slice
Service connectivity.";
}
+
identity multipoint-to-point {
base vpn-common:vpn-topology;
description
@@ -194,13 +189,13 @@ module ietf-network-slice-service {
identity sender-role {
base vpn-common:role;
description
- "An SDP is acting as a sender.";
+ "Indicates that an SDP is acting as a sender.";
}
identity receiver-role {
base vpn-common:role;
description
- "An SDP is acting as a receiver.";
+ "Indicates that an SDP is acting as a receiver.";
}
identity service-slo-metric-type {
@@ -208,115 +203,128 @@ module ietf-network-slice-service {
"Base identity for IETF Network Slice Service SLO metric type.";
}
- identity service-slo-one-way-bandwidth {
+ identity one-way-bandwidth {
base service-slo-metric-type;
description
"SLO bandwidth metric. Minimum guaranteed bandwidth between
two SDPs at any time and is measured unidirectionally.";
}
- identity service-slo-two-way-bandwidth {
+ identity two-way-bandwidth {
base service-slo-metric-type;
description
"SLO bandwidth metric. Minimum guaranteed bandwidth between
two SDPs at any time.";
}
- identity service-slo-shared-bandwidth {
+ identity shared-bandwidth {
base service-slo-metric-type;
description
"The shared SLO bandwidth bound. It is the limit on the
bandwidth that can be shared amongst a group of
- connectivity constructs of a slice service.";
+ connectivity constructs of a Slice Service.";
}
- identity service-slo-one-way-delay-maximum {
+ identity one-way-delay-maximum {
base service-slo-metric-type;
description
"The SLO objective of this metric is the upper bound of network
- delay when transmitting between two SDPs.
- The metric is defined in RFC7679.";
+ delay when transmitting between two SDPs.";
+ reference
+ "RFC7679: A One-Way Delay Metric for IP Performance
+ Metrics (IPPM)";
}
- identity service-slo-one-way-delay-percentile {
+ identity one-way-delay-percentile {
base service-slo-metric-type;
description
"The SLO objective of this metric is percentile objective of
network delay when transmitting between two SDPs.
The metric is defined in RFC7679.";
+ reference
+ "RFC7679: A One-Way Delay Metric for IP Performance
+ Metrics (IPPM)";
}
- identity service-slo-two-way-delay-maximum {
+ identity two-way-delay-maximum {
base service-slo-metric-type;
description
"SLO two-way delay is the upper bound of network delay when
- transmitting between two SDPs.
- The metric is defined in RFC2681.";
+ transmitting between two SDPs";
+ reference
+ "RFC2681: A Round-trip Delay Metric for IPPM";
}
-
- identity service-slo-two-way-delay-percentile {
+ identity two-way-delay-percentile {
base service-slo-metric-type;
description
"The SLO objective of this metric is the percentile
objective of network delay when the traffic transmitting
- between two SDPs.
- The metric is defined in RFC2681.";
+ between two SDPs.";
+ reference
+ "RFC2681: A Round-trip Delay Metric for IPPM";
}
- identity service-slo-one-way-delay-variation-maximum {
+ identity one-way-delay-variation-maximum {
base service-slo-metric-type;
description
"The SLO objective of this metric is maximum bound of the
difference in the one-way delay between sequential packets
- between two SDPs.
- The metric of one-way delay variation is defined in RFC3393.";
+ between two SDPs.";
+ reference
+ "RFC3393: IP Packet Delay Variation Metric for IP Performance
+ Metrics (IPPM)";
}
- identity service-slo-one-way-delay-variation-percentile {
+ identity one-way-delay-variation-percentile {
base service-slo-metric-type;
description
"The SLO objective of this metric is the percentile objective
in the one-way delay between sequential packets between two
- SDPs.
- One-way delay variation percentile is defined by RFC3393.";
+ SDPs.";
+ reference
+ "RFC3393: IP Packet Delay Variation Metric for IP Performance
+ Metrics (IPPM)";
}
- identity service-slo-two-way-delay-variation-maximum {
+
+ identity two-way-delay-variation-maximum {
base service-slo-metric-type;
description
- "SLO two-way delay variation defined by RFC5481, is the
- difference in the round-trip delay between sequential packets
- between two SDPs.";
+ "SLO two-way delay variation is the difference in the
+ round-trip delay between sequential packets between two SDPs.";
+ reference
+ "RFC5481: Packet Delay Variation Applicability Statement";
}
- identity service-slo-two-way-delay-variation-percentile {
+ identity two-way-delay-variation-percentile {
base service-slo-metric-type;
description
- "The delay variation percentile is defined by RFC5481.
- The SLO objective of this metric is the percentile objective
+ "The SLO objective of this metric is the percentile objective
in the round-trip delay between sequential packets between
two SDPs.";
+ reference
+ "RFC5481: Packet Delay Variation Applicability Statement";
}
- identity service-slo-one-way-packet-loss {
+ identity one-way-packet-loss {
base service-slo-metric-type;
description
- "SLO loss metric. The ratio of packets dropped to packets
- transmitted between two SDPs in one-way
- over a period of time as specified in RFC7680.";
+ "This metric type refers to the ratio of packets dropped
+ to packets transmitted between two SDPs in one-way
+ over a period of time.";
+ reference
+ "RFC7680: A One-Way Loss Metric for IP Performance
+ Metrics (IPPM)";
}
- identity service-slo-two-way-packet-loss {
+ identity two-way-packet-loss {
base service-slo-metric-type;
description
- "SLO loss metric. The ratio of packets dropped to packets
- transmitted between two SDPs in two-way
- over a period of time as specified in RFC7680.";
- }
-
- identity service-match-type {
- description
- "Base identity for IETF Network Slice Service traffic
- match type.";
+ "This metric type refers to the ratio of packets dropped
+ to packets transmitted between two SDPs in two-way
+ over a period of time.";
+ reference
+ "RFC7680: A One-Way Loss Metric for IP Performance
+ Metrics (IPPM)";
}
/*
@@ -328,85 +336,92 @@ module ietf-network-slice-service {
"Base identity from which specific availability types are
derived.";
}
+
identity level-1 {
base availability-type;
description
- "level 1: 99.9999%";
+ "Specifies the availability level 1: 99.9999%";
}
identity level-2 {
base availability-type;
description
- "level 2: 99.999%";
+ "Specifies the availability level 2: 99.999%";
}
identity level-3 {
base availability-type;
description
- "level 3: 99.99%";
+ "Specifies the availability level 3: 99.99%";
}
identity level-4 {
base availability-type;
description
- "level 4: 99.9%";
+ "Specifies the availability level 4: 99.9%";
}
identity level-5 {
base availability-type;
description
- "level 5: 99%";
+ "Specifies the availability level 5: 99%";
+ }
+
+ identity service-match-type {
+ description
+ "Base identity for IETF Network Slice Service traffic
+ match type.";
}
identity service-phy-interface-match {
base service-match-type;
description
- "Use the physical interface as match criteria for
- slice service traffic.";
+ "Uses the physical interface as match criteria for
+ Slice Service traffic.";
}
identity service-vlan-match {
base service-match-type;
description
- "Use the VLAN ID as match criteria for the slice service
+ "Uses the VLAN ID as match criteria for the Slice Service
traffic.";
}
identity service-label-match {
base service-match-type;
description
- "Use the MPLS label as match criteria for the slice service
+ "Uses the MPLS label as match criteria for the Slice Service
traffic.";
}
identity service-source-ip-prefix-match {
base service-match-type;
description
- "Use source ip prefix as match criteria for the slice service
- traffic. Examples of 'value' of this match type is
+ "Uses source ip prefix as match criteria for the Slice Service
+ traffic. Examples of 'value' of this match type are
'192.0.2.0/24' and '2001:db8::1/64'.";
}
identity service-destination-ip-prefix-match {
base service-match-type;
description
- "Use destination ip prefix as match criteria for the slice
- service traffic. Examples of 'value' of this match type is
+ "Uses destination ip prefix as match criteria for the Slice
+ Service traffic. Examples of 'value' of this match type are
'203.0.113.1/32', '2001:db8::2/128'.";
}
identity service-dscp-match {
base service-match-type;
description
- "Use DSCP in the IP packet header as match criteria
- for the slice service traffic.";
+ "Uses DSCP field in the IP packet header as match criteria
+ for the Slice Service traffic.";
}
identity service-acl-match {
base service-match-type;
description
- "Use Access Control List (ACL) as match criteria
- for the slice service traffic.";
+ "Uses Access Control List (ACL) as match criteria
+ for the Slice Service traffic.";
reference
"RFC 8519: YANG Data Model for
Network Access Control Lists (ACLs)";
@@ -415,7 +430,7 @@ module ietf-network-slice-service {
identity service-any-match {
base service-match-type;
description
- "Match all slice service traffic.";
+ "Matches any Slice Service traffic.";
}
identity slo-sle-policy-override {
@@ -431,7 +446,6 @@ module ietf-network-slice-service {
which means that no SLO/SLE(s) are inherited from parent
if a child SLO/SLE policy exists.";
}
-
identity slo-sle-policy-partial-override {
base slo-sle-policy-override;
description
@@ -443,7 +457,7 @@ module ietf-network-slice-service {
SLOs in the parent SLO-SLE policy still apply.";
}
- /* typedef */
+ /* Typedef */
typedef percentile {
type decimal64 {
@@ -459,25 +473,25 @@ module ietf-network-slice-service {
the sample value is less than or equal to 2 milliseconds.";
}
- /* grouping */
+ /* Groupings */
grouping service-slos {
description
- "Directly Measurable Objectives of a slice service.";
+ "Directly measurable objectives of a Slice Service.";
container slo-policy {
description
"Contains the SLO policy.";
list metric-bound {
key "metric-type";
description
- "List of slice service metric bounds.";
+ "List of Slice Service metric bounds.";
leaf metric-type {
type identityref {
base service-slo-metric-type;
}
description
"Identifies an entry in the list of metric type
- bounds for the slice service.";
+ bounds for the Slice Service.";
}
leaf metric-unit {
type string;
@@ -489,7 +503,7 @@ module ietf-network-slice-service {
leaf value-description {
type string;
description
- "The description of previous value.";
+ "The description of the provided value.";
}
leaf percentile-value {
type percentile;
@@ -500,9 +514,9 @@ module ietf-network-slice-service {
type uint64;
default "0";
description
- "The Bound on the slice service connection metric.
- A zero indicate an unbounded upper limit for the
- specific metric-type.";
+ "The bound on the Slice Service connection metric.
+ When set to zero, this indicates an unbounded
+ upper limit for the specific metric-type.";
}
}
leaf availability {
@@ -516,8 +530,8 @@ module ietf-network-slice-service {
type uint16;
units "bytes";
description
- "The MTU specifies the maximum length in octets of data
- packets of the slice service.
+ "The MTU specifies the maximum length of data
+ packets of the Slice Service.
The value needs to be less than or equal to the
minimum MTU value of all 'attachment-circuits'
in the SDPs.";
@@ -527,7 +541,7 @@ module ietf-network-slice-service {
grouping service-sles {
description
- "Indirectly Measurable Objectives of a slice service.";
+ "Indirectly measurable objectives of a Slice Service.";
container sle-policy {
description
"Contains the SLE policy.";
@@ -544,7 +558,7 @@ module ietf-network-slice-service {
base service-isolation-type;
}
description
- "The slice service isolation requirement.";
+ "The Slice Service isolation requirement.";
}
leaf max-occupancy-level {
type uint8 {
@@ -557,16 +571,16 @@ module ietf-network-slice-service {
container steering-constraints {
description
"Container for the policy of steering constraints
- applicable to the slice service.";
+ applicable to the Slice Service.";
container path-constraints {
description
"Container for the policy of path constraints
- applicable to the slice service.";
+ applicable to the Slice Service.";
}
container service-function {
description
"Container for the policy of service function
- applicable to the slice service.";
+ applicable to the Slice Service.";
}
}
}
@@ -574,7 +588,7 @@ module ietf-network-slice-service {
grouping sdp-peering {
description
- "A grouping for the slice service SDP peering.";
+ "A grouping for the Slice Service SDP peering.";
container sdp-peering {
description
"Describes SDP peering attributes.";
@@ -586,6 +600,9 @@ module ietf-network-slice-service {
correlation purposes, such as identifying a service
attachment point (SAP) of a provider equipment when
requesting a service with CE based SDP attributes.";
+ reference
+ "RFC9408: A YANG Network Data Model for
+ Service Attachment Points (SAPs)";
}
container protocols {
description
@@ -601,30 +618,30 @@ module ietf-network-slice-service {
"Grouping for the SDP attachment circuit definition.";
container attachment-circuits {
description
- "List of attachment circuit.";
+ "List of attachment circuits.";
list attachment-circuit {
key "id";
description
- "The IETF Network Slice service SDP attachment circuit
+ "The IETF Network Slice Service SDP attachment circuit
related parameters.";
leaf id {
type string;
description
- "Uniquely identifier a attachment circuit.";
+ "Uniquely identifies an attachment circuit.";
+ }
+ leaf description {
+ type string;
+ description
+ "The attachment circuit's description.";
}
leaf ac-svc-name {
type string;
description
- "Indicates an attachment circuit service name,
+ "Indicates an attachment circuit (AC) service name,
for association purposes, to refer to an AC that has been
created before the slice creation.
This node can override 'ac-svc-name' of the parent SDP.";
}
- leaf description {
- type string;
- description
- "The attachment circuit description.";
- }
leaf ac-node-id {
type string;
description
@@ -660,7 +677,7 @@ module ietf-network-slice-service {
type uint16;
units "bytes";
description
- "Maximum size in octets of the slice service data packet
+ "Maximum size of the Slice Service data packet
that can traverse an SDP.";
}
container ac-tags {
@@ -685,7 +702,6 @@ module ietf-network-slice-service {
}
}
}
- /* Per ac rate limits */
uses service-qos;
uses sdp-peering;
uses vpn-common:service-status;
@@ -701,10 +717,12 @@ module ietf-network-slice-service {
description
"Container for SDP monitoring metrics.";
leaf incoming-bw-value {
- type te-types:te-bandwidth;
+ type uint64;
+ units "bps";
description
- "Indicates, in octets per second, incoming bandwidth at
- an SDP.";
+ "Indicates the absolute value of the incoming bandwidth
+ at an SDP from the customer network or
+ from another provider's network.";
}
leaf incoming-bw-percent {
type decimal64 {
@@ -714,14 +732,17 @@ module ietf-network-slice-service {
units "percent";
mandatory true;
description
- "Indicates a percentage of the incoming bandwidth at
- an SDP.";
+ "Indicates a percentage of the incoming bandwidth
+ at an SDP from the customer network or
+ from another provider's network.";
}
leaf outgoing-bw-value {
- type te-types:te-bandwidth;
+ type uint64;
+ units "bps";
description
- "Indicates, in octets per second, outgoing bandwidth at
- an SDP.";
+ "Indicates the absolute value of the outgoing bandwidth
+ at an SDP towards the customer network or towards
+ another provider's network.";
}
leaf outgoing-bw-percent {
type decimal64 {
@@ -731,8 +752,9 @@ module ietf-network-slice-service {
units "percent";
mandatory true;
description
- "Indicates a percentage of the outgoing bandwidth at
- an SDP.";
+ "Indicates a percentage of the outgoing bandwidth
+ at an SDP towards the customer network or towards
+ another provider's network.";
}
}
}
@@ -744,7 +766,7 @@ module ietf-network-slice-service {
uses te-packet-types:two-way-performance-metrics-packet;
}
- grouping geolocation-container {
+ grouping geolocation {
description
"A grouping containing a GPS location.";
container location {
@@ -773,11 +795,8 @@ module ietf-network-slice-service {
"Angular distance east or west on the Earth's surface.";
}
}
- // gps-location
}
- // geolocation-container
-
grouping bw-rate-limits {
description
"Bandwidth rate limits grouping.";
@@ -837,7 +856,8 @@ module ietf-network-slice-service {
"The rate limits grouping.";
container incoming-qos-policy {
description
- "Container for the asymmetric traffic control.";
+ "The QoS policy imposed on ingress direction of the traffic ,
+ from the customer network or from another provider's network.";
leaf qos-policy-name {
type string;
description
@@ -853,7 +873,9 @@ module ietf-network-slice-service {
}
container outgoing-qos-policy {
description
- "The QoS policy imposed on outgoing traffic.";
+ "The QoS policy imposed on egress direction of the traffic ,
+ towards the customer network or towards another
+ provider's network.";
leaf qos-policy-name {
type string;
description
@@ -871,18 +893,18 @@ module ietf-network-slice-service {
grouping sdp {
description
- "Slice service SDP related information";
+ "Slice Service SDP related information";
leaf id {
type string;
description
- "Unique identifier for the referred slice service SDP.";
+ "Unique identifier for the referred Slice Service SDP.";
}
leaf description {
type string;
description
- "Give more description of the SDP.";
+ "Provides a description of the SDP.";
}
- uses geolocation-container;
+ uses geolocation;
leaf node-id {
type string;
description
@@ -897,7 +919,7 @@ module ietf-network-slice-service {
type leafref {
path
"/nw:networks/nw:network[nw:network-id =current()/../../"
- + "../custom-topology-ref/network-ref]/"
+ + "../custom-topology/network-ref]/"
+ "nw:node/nt:termination-point/nt:tp-id";
}
description
@@ -908,15 +930,15 @@ module ietf-network-slice-service {
}
container service-match-criteria {
description
- "Describes the slice service match criteria.";
+ "Describes the Slice Service match criteria.";
list match-criterion {
key "index";
description
- "List of the slice service traffic match criteria.";
+ "List of the Slice Service traffic match criteria.";
leaf index {
type uint32;
description
- "The entry index.";
+ "The identifier that uniquely identifies a match criteria.";
}
leaf match-type {
type identityref {
@@ -924,14 +946,14 @@ module ietf-network-slice-service {
}
mandatory true;
description
- "Identifies an entry in the list of the slice service
- match criteria.";
+ "Indicates the match type of the entry in the list of
+ the Slice Service match criteria.";
}
leaf-list value {
type string;
description
- "Describes the slice service match criteria, e.g.
- IP prefix, VLAN, etc.";
+ "Provides a value for the Slice Service match criteria,
+ e.g. IP prefix and VLAN ID.";
}
leaf target-connection-group-id {
type leafref {
@@ -941,7 +963,7 @@ module ietf-network-slice-service {
}
mandatory true;
description
- "Reference to the slice service connection group.";
+ "Reference to the Slice Service connection group.";
}
leaf connection-group-sdp-role {
type identityref {
@@ -1000,11 +1022,9 @@ module ietf-network-slice-service {
uses vpn-common:service-status;
uses sdp-monitoring-metrics;
}
- //service-sdp
-
grouping connectivity-construct {
description
- "Grouping for slice service connectivity construct.";
+ "Grouping for Slice Service connectivity construct.";
list connectivity-construct {
key "id";
description
@@ -1087,11 +1107,9 @@ module ietf-network-slice-service {
}
}
- //connectivity-construct
-
grouping connection-group {
description
- "Grouping for slice service connection group.";
+ "Grouping for Slice Service connection group.";
leaf id {
type string;
description
@@ -1119,14 +1137,12 @@ module ietf-network-slice-service {
}
}
- //connection-group
-
grouping slice-service-template {
description
- "Grouping for slice service templates.";
+ "Grouping for Slice Service templates.";
container slo-sle-templates {
description
- "Contains a set of slice service templates.";
+ "Contains a set of Slice Service templates.";
list slo-sle-template {
key "id";
description
@@ -1141,7 +1157,7 @@ module ietf-network-slice-service {
leaf description {
type string;
description
- "Description of the SLO and SLE policy template.";
+ "Describes the SLO and SLE policy template.";
}
leaf template-ref {
type leafref {
@@ -1161,8 +1177,6 @@ module ietf-network-slice-service {
}
}
- /* Configuration data nodes */
-
grouping service-slo-sle-policy {
description
"Slice service policy grouping.";
@@ -1193,7 +1207,7 @@ module ietf-network-slice-service {
leaf description {
type string;
description
- "Description of the SLO and SLE policy.";
+ "Describes the SLO and SLE policy.";
}
uses service-slos;
uses service-sles;
@@ -1204,7 +1218,7 @@ module ietf-network-slice-service {
grouping service-slo-sle-policy-override {
description
- "Slice service policy override grouping.";
+ "Slice Service policy override grouping.";
leaf service-slo-sle-policy-override {
type identityref {
base slo-sle-policy-override;
@@ -1215,23 +1229,25 @@ module ietf-network-slice-service {
}
}
+ /* Main IETF Network Slice Services Container */
+
container network-slice-services {
description
- "Contains a list of IETF network slice services";
+ "Contains a list of IETF Network Slice Services";
uses slice-service-template;
list slice-service {
key "id";
description
- "A slice service is identified by a service id.";
+ "A Slice Service is identified by a service id.";
leaf id {
type string;
description
- "A unique slice service identifier.";
+ "A unique Slice Service identifier.";
}
leaf description {
type string;
description
- "Textual description of the slice service.";
+ "Textual description of the Slice Service.";
}
container service-tags {
description
@@ -1251,7 +1267,7 @@ module ietf-network-slice-service {
type string;
description
"The tag values, e.g. customer names when multiple
- customers sharing same slice service in 5G scenario.";
+ customers sharing same Slice Service in 5G scenario.";
}
}
}
@@ -1265,18 +1281,18 @@ module ietf-network-slice-service {
uses vpn-common:service-status;
container sdps {
description
- "Slice service SDPs.";
+ "Slice Service SDPs.";
list sdp {
key "id";
min-elements 2;
uses sdp;
description
- "List of SDPs in this slice service.";
+ "List of SDPs in this Slice Service.";
}
}
container connection-groups {
description
- "Contains connections group.";
+ "Contains connection groups.";
list connection-group {
key "id";
description
@@ -1284,12 +1300,14 @@ module ietf-network-slice-service {
uses connection-group;
}
}
- container custom-topology-ref {
+ container custom-topology {
description
- "Container for the custom topology reference.";
+ "Serves as an augmentation target.
+ Container for custom topology, which is indicated by the
+ referenced topology predefined, e.g., an abstract RFC8345
+ topology.";
uses nw:network-ref;
}
}
- //ietf-network-slice-service list
}
}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-node-tags-state@2022-02-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-node-tags-state@2022-02-04.yang
index df3e234d1..befd6ea1f 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-node-tags-state@2022-02-04.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-node-tags-state@2022-02-04.yang
@@ -51,7 +51,7 @@ module ietf-node-tags-state {
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
+ to the license terms contained in, the Revised BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
@@ -87,6 +87,7 @@ module ietf-node-tags-state {
describing tags.";
leaf id {
type uint64;
+ status deprecated;
description
"Identification of each data node within YANG module. It is
unique 64-bit unsigned integers.";
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-asset-ext@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-asset-ext@2023-10-12.yang
new file mode 100644
index 000000000..2fde6d4ca
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-asset-ext@2023-10-12.yang
@@ -0,0 +1,98 @@
+module ietf-poweff-asset-ext {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-asset-ext";
+ prefix ietf-poweff-asset-ext;
+ import ietf-lmo {
+ prefix ietf-lmo;
+ }
+ import ietf-lmo-assets {
+ prefix ietf-lmo-asset;
+ }
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module includes extra attributes which
+ complement sustainability for assets.
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision to complement Asset Inventory Module as
+ part of the DMALMO YANG Model, with sustainability attributes";
+ reference
+ "RFC XXXX: DMALMO YANG Model";
+ }
+
+ augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst {
+ when "derived-from-or-self(../ietf-lmo:lmo-class, "+
+ " 'ietf-lmo-asset:asset')";
+ description
+ "Assets attributes related to sustainability";
+ leaf age {
+ type string;
+ description
+ "Age of the asset";
+ }
+ leaf site {
+ when "not(../ietf-lmo:parent/ietf-lmo:id)";
+ type string;
+ description
+ "location site name";
+ // FIXME: Make this a reference to a list of sites?
+ // FIXME: force this to be set for all assets that
+ // do not have a parent?
+ }
+ leaf modular {
+ type boolean;
+ description
+ "The asset is or is not modular";
+ }
+ leaf status {
+ type string;
+ description
+ "NEED to include: off, enabled, disabled, not present,
+ failed, reserved-on, standby";
+ //FIXME status is simply the most inconsistent field
+ //with wide variety of values reported. It is better
+ //to make this a Enum with fixed set list of states.
+ }
+ leaf slot {
+ type string;
+ mandatory "true";
+ description
+ "Defines the slot where the asset is placed in the chasssis.
+ Used to map the sensor to particular UID.";
+ }
+ leaf device-family {
+ type string;
+ description
+ "Device Family - may be derived from the product name or
+ product id. It is to be used for immplementation
+ purpose - filtering capability and future optimization
+ purposes";
+ }
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-derived@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-derived@2023-10-12.yang
new file mode 100644
index 000000000..347e79262
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-derived@2023-10-12.yang
@@ -0,0 +1,65 @@
+module ietf-poweff-derived {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-derived";
+ prefix ietf-poweff-derived;
+
+ import ietf-poweff-sensors {
+ prefix ietf-poweff-sensors;
+ }
+ import ietf-lmo {
+ prefix ietf-lmo;
+ }
+ import ietf-lmo-assets-inventory {
+ prefix ietf-lmo-asset;
+ }
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module includes power derived values per asset.
+ Typically, power derived values will be calculated on the
+ receiver, even those values may be provided by the devices as
+ well.
+ Typically we expect chassis to report total psu-input-power and
+ psu-output-power but ptr-bps-ratio may be derived on the receiver
+ side.
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision to document power derived data";
+ reference
+ "RFC XXXX: ...";
+ }
+
+ augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst {
+ when "derived-from-or-self(../ietf-lmo:lmo-class, "+
+ " 'ietf-lmo-asset:asset')";
+ description
+ "Power derived attributes related to assets";
+
+ uses ietf-poweff-sensors:power-derived-g;
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-environment@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-environment@2023-10-12.yang
new file mode 100644
index 000000000..225b6fc5c
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-environment@2023-10-12.yang
@@ -0,0 +1,62 @@
+module ietf-poweff-environment {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-environment";
+ prefix ietf-poweff-environment;
+
+ import ietf-poweff-sensors {
+ prefix ietf-poweff-sensors;
+ }
+ import ietf-lmo {
+ prefix ietf-lmo;
+ }
+ import ietf-lmo-assets-inventory {
+ prefix ietf-lmo-asset;
+ }
+
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module includes the live reading from the network
+ devices related to the power environment. Dynamic/real-time
+ data read from the network device, basically reading Voltage,
+ Current, Power (Watts), and Temperature.
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision to document power environmental related data";
+ reference
+ "RFC XXXX: ...";
+ }
+ augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst {
+ when "derived-from-or-self(../ietf-lmo:lmo-class, "+
+ " 'ietf-lmo-asset:asset')";
+ description
+ "Assets attributes related to power environment";
+
+ uses ietf-poweff-sensors:sensors-g;
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-sensors@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-sensors@2023-10-12.yang
new file mode 100644
index 000000000..968e4d760
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-sensors@2023-10-12.yang
@@ -0,0 +1,344 @@
+module ietf-poweff-sensors {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-sensors";
+ prefix ietf-poweff-sensors;
+
+ import ietf-poweff-types {
+ prefix ietf-poweff-types;
+ }
+
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module defines basic groupings for POWEFF sensor
+ management.
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision of POWEFF sensors";
+ reference
+ "RFC XXXX: ...";
+ }
+
+ grouping sensors-g {
+ description "sensors grouping";
+ container sensors {
+ description "list of sensors";
+
+ list sensor {
+ key "sensor-type";
+ description "list of sensors attached to this asset";
+ leaf sensor-type {
+ type identityref {
+ base ietf-poweff-types:sensor-type;
+ }
+ // FIXME: Are we fine with a single sensor of each type
+ // for each asset? I.e. is there ever a need for more than
+ // one Vin-sensor on a particular asset? Ever more than one
+ // Temp-sensor? If so, we need to add a second key here.
+ description
+ "Type of sensor sending data per asset:
+ Vin, Iin, Vout, Iout, Pin, Pout, Palloc, Temp, etc.
+ Sensor type specifies which unit of measurement is used.";
+ }
+ leaf sensor-location {
+ type string;
+ mandatory "true";
+ description
+ "Indicates the current location where the sensor is located
+ in the chassis,typically refers to slot";
+ }
+ leaf sensor-state {
+ type string;
+ description
+ "Current state of the sensor";
+ // FIXME: What does this mean?
+ }
+ leaf sensor-current-reading {
+ type string;
+ config false;
+ description
+ "Current reading of the sensor";
+ }
+ leaf sensor-accuracy-eligible {
+ type boolean;
+ default false;
+ description
+ "Used to identify which sensor/assets reading shall be
+ included in real metrics";
+ }
+ leaf sensor-accuracy {
+ type string;
+ must "../sensor-accuracy-eligible = 'true'";
+ description
+ "Maximum deviation to be considered. This attribute mainly
+ will apply to drawn power, which corresponds to PSU PowerIn
+ measured power or calculated power; assuming discrepancy
+ between Real Power, power collected from a power meter, and
+ power measured or calculated from the metrics provided by
+ the sensors";
+ }
+
+ container sensor-thresholds {
+ description
+ "Threshold values for the particular sensor.
+ Default values shall beprovided as part of static data
+ but when configurable need to be pulledfrom the device.
+ Ideally, the sensor should allow configuing
+ thesethreshold values";
+
+ leaf minor-low {
+ type string;
+ description
+ "minor-low";
+ }
+ leaf minor-high {
+ type string;
+ description
+ "minor-high";
+ }
+ leaf major-low {
+ type string;
+ description
+ "major-low";
+ }
+ leaf major-high {
+ type string;
+ description
+ "major-high";
+ }
+ leaf critical-low {
+ type string;
+ description
+ "critical-low";
+ }
+ leaf critical-high {
+ type string;
+ description
+ "critical-high";
+ }
+ leaf shutdown {
+ type string;
+ description
+ "shutdown";
+ }
+ }
+ }
+ }
+ }
+
+ grouping power-derived-g {
+ description
+ "define derived metrics";
+ container power-derived {
+ config false;
+ description "power derived attributes";
+
+ leaf heat-dissipation {
+ type string;
+ description
+ "It refers to Heat Transfer, i.e. heat transferred from
+ hotter object to coolerobject (1W = 3.412BTU/h)";
+ }
+ leaf rated-input-pwr-value {
+ type string;
+ mandatory "true";
+ description
+ "Total Input Power for the chassis and specific inventory
+ inside. The sum for all assets for specific hardware
+ configuration. Can be calculated for Typical, Operating, or
+ Maximum anticipated Capacity Load. Mainly used for
+ dimensioning based on benchmark data";
+ }
+ leaf asset-input-pwr {
+ type string;
+ mandatory "true";
+ description
+ "For a given asset, assumed input power means the rate of
+ electricity consumption in Watts provided by the network
+ device or sensor. Conditionally derived - if
+ the device/sensor can give actualpower draw then this
+ calculation is not required, and will be taken directly
+ from the sensor.";
+ }
+ leaf asset-output-pwr {
+ type string;
+ description
+ "Watts provided to the internal components for a given
+ asset. Only applicable to assets that provide output power,
+ such as PSUs. This is present here to accommodate chassis
+ that donât provide Watt value currently. Ideal
+ implementation should provide Pout sensor reading";
+ //FIXME: add condition this is mandatory for when asset is
+ //chassis or PSU and not LC or Port;
+ }
+ leaf psu-input-power {
+ type string;
+ mandatory "true";
+ description
+ "Total input power per chassis, rate of the electricity
+ consumption in Watts. Sum of asset-input-pwr when uid=PSU.
+ It considers all operational PSU'Ìs to the chassis";
+ }
+ leaf psu-output-power {
+ type string;
+ mandatory "true";
+ description
+ "Total input power for chassis, rate of the electricity
+ consumption inWatts. Sum of asset-output-pwr when uid=PSU.
+ It considers alloperational PSU's to the chassis";
+ }
+ leaf psu-pwr-ratio {
+ type string;
+ mandatory "true";
+ description
+ "Define dynamic (current) power ratio taking into
+ consideration total system real power input vs used. Not
+ expected to be the same as PSU efficiency. Formula:
+ (psu-output-power / psu-input-power) * 100.0.
+ It considers all operational PSU Ìs to the chassis.";
+ }
+ leaf energy-traffic-ratio {
+ type string;
+ mandatory "true";
+ description
+ "How much Watts is spent to move 100Gigaytes per
+ chassis within thetime period; Formula:
+ psu-output-power [Watt] /SUM of all interfaces
+ (input-data-rate-bits + output-data-rate-bits).
+ Measured over a period of 1hr. energy-traffic-ratio is
+ the value considered for the complete chassis and all
+ operational LC Ìs/interfaces.";
+ }
+ }
+ }
+
+ grouping power-static-g {
+ description
+ "define static attributes";
+ container power-static {
+ description "power static attributes";
+
+ leaf max-amp {
+ type string;
+ mandatory "true";
+ description
+ "For a given asset, it is the current in Amperes that the
+ asset could withdraw at Maximum capacity";
+ }
+ leaf output-amp {
+ type string;
+ mandatory "true";
+ description
+ "For a given asset, it is the current in Amperes that the
+ asset couldwithdraw at Operating capacity.";
+ }
+ leaf input-amp {
+ type string;
+ mandatory "true";
+ description
+ "Current of an asset at a typical power consumption of
+ switch in Amperes. Somethimes refered to as input-current";
+ }
+ leaf max-output-pwr {
+ type string;
+ mandatory "true";
+ description
+ "For a given asset, it is the maximum power in Watts that
+ the asset could draw at Maximum capacity";
+ }
+ leaf output-pwr {
+ type string;
+ mandatory "true";
+ description
+ "For a given asset, it is the power in Watts that the
+ asset could withdraw at Operating capacity";
+ }
+ leaf typical-output-pwr {
+ type string;
+ mandatory "true";
+ description
+ "This value is an estimation of the average power usage
+ in Watts that the same configuration will use at Typical
+ capacity";
+ }
+ leaf accuracy-pwr {
+ type string;
+ description
+ "If known, the maximum deviation of power to be considered.
+ BU shouldprovide an estimation";
+ }
+ leaf inline-pwr {
+ type string;
+ mandatory "true";
+ description
+ "Available PoE Power i.e the power which can be passed over
+ ethernet cables to power devices.";
+ }
+ leaf psu-efficiency {
+ type string;
+ mandatory "true";
+ description
+ "Rating the PSU has been certified for against 80plus
+ certification specification. The amount of the actual power
+ delivered to the assetdivided by the electrical power drawn
+ from the main supply socket.i.e. Output Power of System/
+ Input Power of PSU. The objective for psu-efficiency values
+ is to reach 80+ certification.
+ Please refer to https://www.clearesult.com/80plus";
+ }
+ leaf voltage-type {
+ type string;
+ mandatory "true";
+ description
+ "AC/DC/HVDC. Note: DC typically gives an accurate measure,
+ but AC, due to the nature of the metric is not accurate";
+ }
+ leaf idle-pwr {
+ type string;
+ mandatory "true";
+ description
+ "Initial power allocated to the asset with no traffic load";
+ }
+ leaf max-temperature {
+ type string;
+ mandatory "true";
+ description
+ "Operating temperature - i.e max temperature tolerance
+ (temperaturerange expands to approximately -40°C to 85°C).
+ If the asset exceeds themax temperature limit, it either
+ slows down or stops completely";
+ }
+ leaf pwr-saving-mode {
+ type string;
+ mandatory "true";
+ description
+ "Does the asset support any power-saving software feature Y/N.
+ Will beexpanded in future releases";
+ }
+ }
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-static@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-static@2023-10-12.yang
new file mode 100644
index 000000000..36af2386d
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-static@2023-10-12.yang
@@ -0,0 +1,64 @@
+module ietf-poweff-static {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-static";
+ prefix ietf-poweff-static;
+
+ import ietf-poweff-sensors {
+ prefix ietf-poweff-sensors;
+ }
+ import ietf-lmo {
+ prefix ietf-lmo;
+ }
+ import ietf-lmo-assets-inventory {
+ prefix ietf-lmo-asset;
+ }
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module includes power and energy efficiency
+ Product Data. Data for a specific asset that aligns to values
+ provided by the manufacturer can be classified as âstaticâ
+ since they are unlikely to change during the lifetime of the
+ product/asset.
+ They are typically available in a form of data sheets or any kind
+ of simulation tools.
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision to document power static data";
+ reference
+ "RFC XXXX: ...";
+ }
+ augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst {
+ when "derived-from-or-self(../ietf-lmo:lmo-class, "+
+ " 'ietf-lmo-asset:asset')";
+ description
+ "Assets attributes related to power static attributes";
+
+ uses ietf-poweff-sensors:power-static-g;
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-traffic@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-traffic@2023-10-12.yang
new file mode 100644
index 000000000..6302f0b9b
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-traffic@2023-10-12.yang
@@ -0,0 +1,189 @@
+module ietf-poweff-traffic {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-traffic";
+ prefix ietf-poweff-traffic;
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import ietf-interfaces {
+ prefix if;
+ }
+ import ietf-lmo-assets-inventory {
+ prefix ietf-lmo-asset;
+ }
+ import ietf-lmo {
+ prefix ietf-lmo;
+ }
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module describes the live interface and traffic related
+ metrics. It should be based on rfc7223,
+ https://datatracker.ietf.org/doc/rfc7223/
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.
+
+ The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
+ NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
+ 'MAY', and 'OPTIONAL' in this document are to be interpreted as
+ described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
+ they appear in all capitals, as shown here.
+ ";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision to document power traffic data";
+ reference
+ "RFC XXXX: ...";
+ }
+ augment /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:inst {
+ when "derived-from-or-self(../ietf-lmo:lmo-class, "+
+ " 'ietf-lmo-asset:asset')";
+ description
+ "Traffic attributes related to sustainability";
+ container interfaces {
+ description "Interface parameters";
+ list interface {
+ key "name";
+ leaf name {
+ type leafref {
+ path "/if:interfaces/if:interface/if:name";
+ require-instance false;
+ }
+ description
+ "The name of the interface.";
+ }
+ leaf description {
+ type string;
+ description
+ "A textual description of the interface.
+
+ A server implementation MAY map this leaf to the ifAlias
+ MIB object. Such an implementation needs to use some
+ mechanism to handle the differences in size and characters
+ allowed between this leaf and ifAlias. The definition of
+ such a mechanism is outside the scope of this document.
+
+ Since ifAlias is defined to be stored in non-volatile
+ storage, the MIB implementation MUST map ifAlias to the
+ value of 'description' in the persistently stored
+ configuration.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifAlias";
+ }
+ leaf if-index {
+ type int32;
+ description
+ "The ifIndex value for the ifEntry represented by this
+ interface";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifIndex";
+ }
+ leaf interface-type {
+ type string;
+ //TO_DO adjust type to identy interface-type or similar
+ description
+ "The type of the interface.
+
+ When an interface entry is created, a server MAY
+ initialize the type leaf with a valid value, e.g., if it
+ is possible to derive the type from the name of the
+ interface.
+
+ If a client tries to set the type of an interface to a
+ value that can never be used by the system, e.g., if the
+ type is not supported or if the type does not match the
+ name of the interface, the server MUST reject the request.
+ A NETCONF server MUST reply with an rpc-error with the
+ error-tag 'invalid-value' in this case.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifType";
+ }
+ leaf bandwidth {
+ type yang:gauge64;
+ units "kbits/s";
+ description
+ "It is considered to be the Max bandwidth of the interface,
+ in kbps, it could also be called capacity";
+ }
+ leaf speed {
+ type yang:gauge64;
+ units "kbits/s";
+ description
+ "It is considered to be current bandwidth of the interface,
+ in kbps, it could also be called capacity";
+ }
+ leaf data-rate-frequency {
+ type string;
+ //TO_DO normalized to do not be string, as different devices
+ //will provide different implementation
+ description
+ "The length of time for which data is used to compute load
+ statistics, load-interval command in interface
+ configuration. Default value is 5min";
+ }
+ container statistics {
+ description "A collection of interface-related statistics
+ objects.";
+ leaf input-data-rate {
+ type uint64;
+ units "kbits/s";
+ mandatory "true";
+ description
+ "Input data rate in 1000's of bps. Average number of bits
+ received per second in the last load period
+ (300 sec by default)";
+ }
+ leaf input-packet-rate {
+ type uint64;
+ units "packet/s";
+ description
+ "Input packets per second. Average number of packets
+ received per second in the last load period
+ (300 sec by default)";
+ }
+ leaf output-data-rate {
+ type uint64;
+ units "kbits/s";
+ mandatory "true";
+ description
+ "Output data rate in 1000's of bps. Average number of bits
+ sent per second in the last load period
+ (300 sec by default)";
+ }
+ leaf output-packet-rate {
+ type uint64;
+ units "packet/s";
+ description
+ "Output packets per second. Average number of packets
+ sent per second in the last load period
+ (300 sec by default)";
+ }
+ }
+ description "Interface parameters for a specific interface";
+ }
+ }
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-poweff-types@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-poweff-types@2023-10-12.yang
new file mode 100644
index 000000000..07f104079
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-poweff-types@2023-10-12.yang
@@ -0,0 +1,282 @@
+module ietf-poweff-types {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-types";
+ prefix ietf-poweff-types;
+
+ organization
+ "IETF OPSA (Operations and Management Area) Working Group";
+ contact
+ "WG Web:
+ WG List:
+ Editor: Jan Lindblad
+
+ Editor: Snezana Mitrovic
+
+ Editor: Marisol Palmero
+ ";
+ description
+ "This YANG module defines basic quantities, measurement units
+ and sensor types for the POWEFF framework.
+
+ Copyright (c) 2021 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Simplified BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX
+ (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
+ for full legal notices.";
+
+ revision 2023-10-12 {
+ description
+ "Initial revision of POWEFF types";
+ reference
+ "RFC XXXX: ...";
+ }
+
+ identity sensor-class {
+ description "Sensor's relation to the asset it sits on.";
+ }
+ identity sc-input {
+ base sensor-class;
+ description "Sensor reports input quantity of the asset it sits
+ on.";
+ }
+ identity sc-output {
+ base sensor-class;
+ description "Sensor reports output quantity of the asset it sits
+ on.";
+ }
+ identity sc-allocated {
+ base sensor-class;
+ description "Sensor reports (maximum) allocated quantity of the
+ asset it sits on.";
+ }
+ identity sensor-quantity {
+ description "Sensor's quantity being measured.";
+ }
+ identity sq-voltage {
+ base sensor-quantity;
+ description "Sensor reports electric tension, voltage.";
+ }
+ identity sq-current {
+ base sensor-quantity;
+ description "Sensor reports electric current.";
+ }
+ identity sq-power {
+ base sensor-quantity;
+ description "Sensor reports power draw (energy per unit of time).";
+ }
+ identity sq-power-apparent {
+ base sq-power;
+ description "Sensor reports apparent power, i.e. average electrical
+ current times voltage (in VA).";
+ }
+ identity sq-power-true {
+ base sq-power;
+ description "Sensor reports true power, i.e. integral over current
+ and voltage at each instant in time.";
+ }
+ identity sq-energy {
+ base sensor-quantity;
+ description "Sensor reports actual energy drawn by asset.";
+ }
+ identity sq-co2-emission {
+ base sensor-quantity;
+ description "Sensor reports CO2 (carbon dioxide) emission by
+ asset.";
+ }
+ identity sq-co2eq-emission {
+ base sensor-quantity;
+ description "Sensor reports CO2 (carbon dioxide) equivalent
+ emission by asset.";
+ }
+ identity sq-temperature {
+ base sensor-quantity;
+ description "Sensor reports temperature of asset.";
+ }
+ identity sensor-unit {
+ description "Sensor's unit of reporting.";
+ }
+ identity su-volt {
+ base sensor-unit;
+ base sq-voltage;
+ description "Sensor unit volt, V.";
+ }
+ identity su-ampere {
+ base sensor-unit;
+ base sq-current;
+ description "Sensor unit ampere, A.";
+ }
+ identity su-watt {
+ base sensor-unit;
+ base sq-power;
+ description "Sensor unit watt, W.";
+ }
+ identity su-voltampere {
+ base sensor-unit;
+ base sq-power;
+ description "Sensor unit Volt*Ampere, VA.";
+ }
+ identity su-kw {
+ base sensor-unit;
+ base sq-power;
+ description "Sensor unit kilowatt, kW.";
+ }
+ identity su-joule {
+ base sensor-unit;
+ base sq-energy;
+ description "Sensor unit joule, J.";
+ }
+ identity su-wh {
+ base sensor-unit;
+ base sq-energy;
+ description "Sensor unit watthour, Wh.";
+ }
+ identity su-kwh {
+ base sensor-unit;
+ base sq-energy;
+ description "Sensor unit kliowatthour, kWh.";
+ }
+ identity su-kelvin {
+ base sensor-unit;
+ base sq-temperature;
+ description "Sensor unit kelvin, K.";
+ }
+ identity su-celsius {
+ base sensor-unit;
+ base sq-temperature;
+ description "Sensor unit celsius, C.";
+ }
+ identity su-farenheit {
+ base sensor-unit;
+ base sq-temperature;
+ description "Sensor unit farenheit, F.";
+ }
+ identity su-gram {
+ base sensor-unit;
+ base sq-co2-emission;
+ description "Sensor unit gram, g.";
+ }
+ identity su-kg {
+ base sensor-unit;
+ base sq-co2-emission;
+ description "Sensor unit kliogram, kg.";
+ }
+ identity su-ton {
+ base sensor-unit;
+ base sq-co2-emission;
+ description "Sensor unit ton, t.";
+ }
+ identity sensor-type {
+ description "Sensor's type, i.e. combination of class, quantity and
+ unit.";
+ }
+ identity st-v-in {
+ base sensor-type;
+ base sc-input;
+ base sq-voltage;
+ base su-volt;
+ description "Sensor reporting Voltage In to asset.";
+ }
+ identity st-v-out {
+ base sensor-type;
+ base sc-output;
+ base sq-voltage;
+ base su-volt;
+ description "Sensor reporting Voltage Out of asset.";
+ }
+ identity st-i-in {
+ base sensor-type;
+ base sc-input;
+ base sq-current;
+ base su-ampere;
+ description "Sensor reporting Current In to asset.";
+ }
+ identity st-i-out {
+ base sensor-type;
+ base sc-output;
+ base sq-current;
+ base su-ampere;
+ description "Sensor reporting Current Out of asset.";
+ }
+ identity st-p-in-apparent-watt {
+ base sensor-type;
+ base sc-input;
+ base sq-power-apparent;
+ base su-voltampere;
+ description "Sensor reporting Power In to asset as apparent (I*U)
+ power.";
+ }
+ identity st-p-out-apparent-watt {
+ base sensor-type;
+ base sc-output;
+ base sq-power-apparent;
+ base su-voltampere;
+ description "Sensor reporting Power Out of asset as apparent (I*U)
+ power.";
+ }
+ identity st-p-in-true-watt {
+ base sensor-type;
+ base sc-input;
+ base sq-power-true;
+ base su-watt;
+ description "Sensor reporting Power In to asset as true power.";
+ }
+ identity st-p-out-true-watt {
+ base sensor-type;
+ base sc-output;
+ base sq-power-true;
+ base su-watt;
+ description "Sensor reporting Power Out of asset as true power.";
+ }
+ identity st-p-allocated-watt {
+ base sensor-type;
+ base sc-allocated;
+ base sq-power;
+ base su-watt;
+ description "Sensor reporting Allocated Power for asset.";
+ }
+ identity st-w-j {
+ base sensor-type;
+ base sq-energy;
+ base su-joule;
+ description "Sensor reporting energy draw of asset in J.";
+ }
+ identity st-w-wh {
+ base sensor-type;
+ base sq-energy;
+ base su-wh;
+ description "Sensor reporting energy draw of asset in Wh.";
+ }
+ identity st-w-kwh {
+ base sensor-type;
+ base sq-energy;
+ base su-kwh;
+ description "Sensor reporting energy draw of asset in kWh.";
+ }
+ identity st-t-k {
+ base sensor-type;
+ base sq-temperature;
+ base su-kelvin;
+ description "Sensor reporting Temperature of asset in K.";
+ }
+ identity st-t-c {
+ base sensor-type;
+ base sq-temperature;
+ base su-celsius;
+ description "Sensor reporting Temperature of asset in °C.";
+ }
+ identity st-t-f {
+ base sensor-type;
+ base sq-temperature;
+ base su-farenheit;
+ description "Sensor reporting Temperature of asset in °F.";
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-topology@2023-10-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-topology@2023-10-16.yang
new file mode 100644
index 000000000..347b4670d
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-topology@2023-10-16.yang
@@ -0,0 +1,259 @@
+module ietf-srv6-topology {
+ yang-version "1.1";
+ namespace "urn:ietf:params:xml:ns:yang:ietf-srv6-topology";
+ prefix "srv6-topo";
+
+ import ietf-inet-types {
+ prefix "inet";
+ reference
+ "RFC 6991: Common YANG Data Types";
+ }
+ import ietf-network {
+ prefix "nw";
+ reference "RFC 8345: A YANG Data Model for Network Topologies";
+ }
+ import ietf-network-topology {
+ prefix "nt";
+ reference "RFC 8345: A YANG Data Model for Network Topologies";
+ }
+ import ietf-l3-unicast-topology {
+ prefix "l3t";
+ reference "RFC 8346: A YANG Data Model for Layer 3 Topologies";
+ }
+ import ietf-srv6-types {
+ prefix "srv6-types";
+ reference "RFC XXXX: YANG Data Model for SRv6 Base and Static";
+ }
+ import ietf-srv6-base {
+ prefix "srv6-base";
+ reference "RFC XXXX: YANG Data Model for SRv6 Base and Static";
+ }
+ import ietf-sr-mpls-topology {
+ prefix "sr-mpls-topo";
+ reference
+ "RFC XXXX: YANG Data Model for SR and SR TE Topologies on
+ MPLS Data Plane";
+ }
+
+ organization
+ "IETF TEAS Working Group";
+ contact
+ "TBD";
+
+ description
+ "This module describes a YANG model for representing and
+ manipulating Segment Routing Topologies on IPv6 Data Plane.";
+
+ revision 2023-10-16 {
+ description
+ "Initial Version";
+ reference
+ "RFC XXXX, YANG Data Model for SR and SR TE Topologies on
+ IPv6 Data Plane";
+ }
+
+ grouping srv6-topology-type {
+ description
+ "Identifies the SRv6 topology type. This type of network
+ topologies use Segment Routing (SR) technology over the IPv6
+ data plane";
+ container srv6 {
+ presence "Indicates SRv6 topology";
+ description
+ "Its presence identifies the SRv6 topology type.";
+ }
+ }
+
+ grouping srv6-node-attributes {
+ description "SRv6 node scope attributes.";
+ container srv6 {
+ presence "Presence indicates SRv6 is enabled.";
+ description
+ "Containing SRv6 attributes.";
+ container node-capabilities {
+ config false;
+ description
+ "SRv6 capabilities of the node.";
+ uses srv6-base:srv6-msd-signaled;
+ }
+ list supported-algorithms {
+ key "algorithm";
+ description
+ "Supported algorithms of the node.";
+ leaf algorithm {
+ type uint8 {
+ range "128..255";
+ }
+ mandatory true;
+ description
+ "Algorithm Id (for Flex-Algo).";
+ }
+ }
+ container locators {
+ description "SRv6 locators of the node.";
+ list locator {
+ key "prefix-addr prefix-len";
+ description
+ "An SRv6 locator";
+ leaf prefix-addr {
+ type inet:ipv6-address;
+ mandatory true;
+ description
+ "IPv6 address";
+ }
+ leaf prefix-len {
+ type srv6-types:srv6-locator-len;
+ mandatory true;
+ description
+ "Locator (prefix) length";
+ }
+ leaf algorithm {
+ type uint8 {
+ range "128..255";
+ }
+ description
+ "Algorithm Id (for Flex-Algo).";
+ }
+ leaf anycast {
+ type boolean;
+ default false;
+ description
+ "Set to true if the locator is anycast.";
+ }
+ leaf is-readvertisment {
+ type boolean;
+ config false;
+ description
+ "Set to true if the locator has been
+ readvertising from another topology.";
+ }
+ container sids {
+ description
+ "SRv6 SIDs covered by the locator";
+ list sid {
+ key "sid-value";
+ description
+ "An SRv6 SID";
+ leaf sid-value {
+ type srv6-types:srv6-sid;
+ description
+ "The SID value";
+ }
+ leaf end-behavior-type {
+ type identityref {
+ base srv6-types:srv6-endpoint-type;
+ }
+ description "Type of SRv6 end behavior.";
+ }
+ }
+ }
+ }
+ }
+ uses sr-mpls-topo:information-source-attributes;
+ }
+ }
+
+ grouping srv6-link-attributes {
+ description "SRv6 link scope attributes";
+ container srv6 {
+ presence "Presence indicates SRv6 is enabled.";
+ description
+ "Containing SRv6 attributes.";
+ container link-capabilities {
+ config false;
+ description
+ "SRv6 capabilities of the link.";
+ uses srv6-base:srv6-msd-signaled;
+ }
+ container sids {
+ description
+ "SRv6 SIDs covered by the locator";
+ list sid {
+ key "sid-value";
+ description
+ "An SRv6 SID";
+ leaf sid-value {
+ type srv6-types:srv6-sid;
+ description
+ "The SID value";
+ }
+ leaf end-behavior-type {
+ type identityref {
+ base srv6-types:srv6-endpoint-type;
+ }
+ description "Type of SRv6 end behavior.";
+ }
+ leaf algorithm {
+ type uint8 {
+ range "128..255";
+ }
+ config false;
+ description
+ "Algorithm Id (for Flex-Algo).";
+ }
+ leaf is-eligible-for-protection {
+ type boolean;
+ default false;
+ description
+ "Set to true if the SID is eligible for protection.";
+ reference
+ "RFC 8402: Segment Routing Architecture. Sec. 3.4.";
+ }
+ leaf is-part-of-set {
+ type boolean;
+ default false;
+ description
+ "Set to true if the SID is part of a set.";
+ }
+ leaf is-persistent {
+ type boolean;
+ default true;
+ description
+ "Set to true if the SID is persistently allocated.";
+ }
+ leaf is-on-lan {
+ type boolean;
+ default false;
+ description
+ "Set to true if on a LAN.";
+ }
+ leaf weight {
+ type uint8;
+ description
+ "The value represents the weight of the SID for the
+ purpose of load balancing. The use of the weight
+ is defined in RFC 8402.";
+ reference
+ "RFC 8402: Segment Routing Architecture. Sec. 3.4.";
+ }
+ }
+ }
+ uses sr-mpls-topo:information-source-attributes;
+ }
+ }
+
+ augment "/nw:networks/nw:network/nw:network-types/"
+ + "l3t:l3-unicast-topology" {
+ description
+ "Defines the SRv6 topology type.";
+ uses srv6-topology-type;
+ }
+
+ augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" {
+ when "../../nw:network-types/l3t:l3-unicast-topology/"
+ + "srv6-topo:srv6" {
+ description "Augment only for SRv6 topology.";
+ }
+ description "Augment node configuration.";
+ uses srv6-node-attributes;
+ }
+
+ augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" {
+ when "../../nw:network-types/l3t:l3-unicast-topology/"
+ + "srv6-topo:srv6" {
+ description "Augment only for SRv6 topology.";
+ }
+ description "Augment link configuration";
+ uses srv6-link-attributes;
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-09-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-10-17.yang
similarity index 91%
rename from experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-09-17.yang
rename to experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-10-17.yang
index f961aab47..3f0212f81 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-09-17.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-10-17.yang
@@ -62,7 +62,7 @@ module ietf-yang-push-revision {
This version of this YANG module is part of RFC XXXX; see the RFC
itself for full legal notices.";
- revision 2023-09-17 {
+ revision 2023-10-17 {
description
"First revision";
reference
@@ -94,10 +94,21 @@ module ietf-yang-push-revision {
to a specific revision-label not supported by the publisher.";
}
+ identity incompatible-revision-and-revision-label {
+ base sn:establish-subscription-error;
+ base sn:modify-subscription-error;
+ description
+ "The combination of revision and the revision-label are incompatible.
+ This failure happens when the revision and the revision-label are both specified
+ in the RPC and the YANG module supported by the publisher does not support one of
+ the revision or the revision-label.";
+ }
+
grouping yang-push-module-version-config {
description
"This grouping combines the module name, the revision and
- revision-label leaves, with the revision being configurable.";
+ revision-label leaves. This grouping is to be used for configuration and the
+ leaves are not mandatory.";
leaf module-name {
type yang:yang-identifier;
description
@@ -120,8 +131,9 @@ module ietf-yang-push-revision {
grouping yang-push-module-version {
description
"This grouping combines the module name, the revision and
- revision-label leaves, with the revision being non
- configurable.";
+ revision-label leaves. This grouping is to be used for read-only cases such
+ as the content of YANG push Notifications. The module-name and revision are
+ mandatory and MUST be present in the data.";
leaf module-name {
type yang:yang-identifier;
config false;
@@ -253,7 +265,6 @@ module ietf-yang-push-revision {
yang-push-module-version-list grouping.";
uses ypr:yang-push-module-version-list;
}
-
// Subscription container
augment "/sn:subscriptions/sn:subscription/sn:target/sn:stream"
+ "/sn:stream-filter/sn:within-subscription" {