From 1920249e26eb3ec7235a0d9d71482c020fd5d9cd Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Wed, 12 Jul 2023 18:06:16 +0000 Subject: [PATCH] Cronjob - daily check of IETF modules. --- .../ietf-ac-svc@2022-11-30.yang | 8 +- .../ietf-amm@2023-06-08.yang | 543 ++++++++++++++++++ .../ietf-bearer-svc@2022-11-30.yang | 86 ++- ...-13.yang => ietf-coreconf@2023-07-10.yang} | 4 +- ...10-04.yang => ietf-detnet@2023-07-10.yang} | 53 +- .../ietf-dtnma-agent@2023-06-08.yang | 376 ++++++++++++ ...tf-external-transaction-id@2022-10-20.yang | 106 +++- ... ietf-flexi-grid-topology@2023-07-06.yang} | 57 +- .../ietf-immutable@2023-05-25.yang | 1 - .../ietf-ipv4-sav-rule@2023-05-20.yang | 14 +- .../ietf-ipv6-sav-rule@2023-05-20.yang | 14 +- .../ietf-l3-isis-topology@2022-09-21.yang | 152 +---- .../ietf-layer1-types@2022-10-14.yang | 5 +- .../ietf-link-availability@2023-06-15.yang | 201 +++++++ ...network-hardware-inventory@2023-03-09.yang | 2 +- ...f-network-inventory-types@2023-07-10.yang} | 387 +++---------- .../ietf-network-inventory@2023-07-10.yang | 342 +++++++++++ .../ietf-oam-test-sequence@2023-07-10.yang | 111 ++++ .../ietf-oam-unitary-test@2023-07-10.yang | 109 ++++ ...tical-impairment-topology@2023-07-07.yang} | 523 ++++++++--------- ...optical-resource-pm-types@2023-07-04.yang} | 24 +- ... ietf-optical-resource-pm@2023-07-04.yang} | 151 ++++- ...yang => ietf-otn-topology@2023-07-06.yang} | 229 ++++---- .../ietf-sav@2023-05-20.yang | 19 +- ...g => ietf-te-packet-types@2023-07-10.yang} | 52 +- .../ietf-te-types@2023-06-27.yang | 18 +- .../ietf-yang-push-modif@2023-03-08.yang | 1 + 27 files changed, 2588 insertions(+), 1000 deletions(-) create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang rename experimental/ietf-extracted-YANG-modules/{ietf-coreconf@2023-03-13.yang => ietf-coreconf@2023-07-10.yang} (98%) rename experimental/ietf-extracted-YANG-modules/{ietf-detnet@2022-10-04.yang => ietf-detnet@2023-07-10.yang} (97%) create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang rename experimental/ietf-extracted-YANG-modules/{ietf-flexi-grid-topology@2022-07-04.yang => ietf-flexi-grid-topology@2023-07-06.yang} (97%) create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-link-availability@2023-06-15.yang rename experimental/ietf-extracted-YANG-modules/{ietf-network-inventory@2023-02-10.yang => ietf-network-inventory-types@2023-07-10.yang} (64%) create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-07-10.yang create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang rename experimental/ietf-extracted-YANG-modules/{ietf-optical-impairment-topology@2023-03-07.yang => ietf-optical-impairment-topology@2023-07-07.yang} (80%) rename experimental/ietf-extracted-YANG-modules/{ietf-optical-resource-pm-types@2023-03-01.yang => ietf-optical-resource-pm-types@2023-07-04.yang} (84%) rename experimental/ietf-extracted-YANG-modules/{ietf-optical-resource-pm@2023-03-01.yang => ietf-optical-resource-pm@2023-07-04.yang} (77%) rename experimental/ietf-extracted-YANG-modules/{ietf-otn-topology@2022-10-12.yang => ietf-otn-topology@2023-07-06.yang} (93%) rename experimental/ietf-extracted-YANG-modules/{ietf-te-packet-types@2023-06-23.yang => ietf-te-packet-types@2023-07-10.yang} (95%) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2022-11-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2022-11-30.yang index 8754cd66e..2e9dbce06 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2022-11-30.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2022-11-30.yang @@ -48,7 +48,7 @@ module ietf-ac-svc { "; description "This YANG module defines a YANG model for exposing - attachment circuits (ACs) as a service. + attachment circuits as a service (ACaaS). Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -372,6 +372,7 @@ module ietf-ac-svc { type inet:ip-address; description "The remote IP address of this entry's BGP peer. + If this leaf is not present, this means that the primary customer IP address is used as remote IP address."; } @@ -873,7 +874,8 @@ module ietf-ac-svc { list ac-group-profile { key "name"; description - "Maintains a list of per-node AC profiles."; + "Maintains a list of profiles that are shared among + a set of ACs."; uses ac; } container placement-constraints { @@ -904,7 +906,7 @@ module ietf-ac-svc { leaf-list ac-group-profile { type ac-group-reference; description - "A reference to a per-node AC profile."; + "A reference to an AC profile."; } list group { key "group-id"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang new file mode 100644 index 000000000..57dfc3491 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang @@ -0,0 +1,543 @@ +module ietf-amm { + namespace "ari:/ietf-amm"; + prefix "amm"; + amm:enum "0"; + + organization + "IETF Delay Tolerant Networking Working Group"; + contact + "WG Web: + WG List: + + WG Chairs: Brian Haberman + + Marc Blanchet + + + Editor: Brian Sipos + "; + + description + "This module implements the DTN Management Architecture (DTNMA) + Application Data Model (ADM) base module within YANG"; + reference + "draft-birrane-dtn-adm"; + + revision "2023-06-08" { + description "Updated for latest AMM contents."; + reference "draft-birrane-dtn-adm"; + } + revision "2016-04-01" { + description "Updated to fix typos."; + reference "draft-bsipos-dtn-amp-yang"; + } + revision "2016-03-14" { + description "Initial draft release."; + reference "draft-bsipos-dtn-amp-yang"; + } + + /**** + * This section contains extension for AMM object definitions + ****/ + + // This group of extensions are for common behavior for AMM objects + extension enum { + argument "value"; + description + "An enumeration identifies an object within a namespace. + The argument to this statement is the integer value."; + } + extension parameters { + description + "A container for the formal parameters for an object. + Each substatement is a parameter as either a leaf (ARI) + or container (AC). + Order of parameters is signifigant within this statement."; + } + + // This group are AMM object keywords and their parameters + extension const { + argument "name"; + description + "Definition of a CONST within an ADM. + The argument to this statement is the object name. + A 'value' substatement must be present."; + } + extension value { + argument "ari"; + description + "The literal value of a CONST object. + The argument is the text form of the ARI"; + } + + extension ctrl { + argument "name"; + description + "Definition of a CTRL within an ADM. + The argument to this statement is the object name."; + } + extension result { + description + "An result value reported as a response to a control. + The substatement is the result value as either a leaf (ARI) + or container (AC). + Each CTRL can have a single optional result."; + } + + extension edd { + argument "name"; + description + "Definition of an EDD within an ADM. + The argument to this statement is the object name."; + } + + extension oper { + argument "name"; + description + "Definition of an OPER within an ADM. + The argument to this statement is the object name."; + } + extension operands { + description + "An individual operand taken from the expression stack + during evaluation of the OPER. + Each substatement is an operand as a leaf (ARI). + Order of operands is signifigant within an object definition."; + } + + extension var { + argument "name"; + description + "Definition of a VAR within an ADM. + The argument to this statement is the object name."; + } + extension init { + argument "expr"; + description "An EXPR value used to initialize a VAR."; + } + + /**** + * This section contains ARI (literal and object-reference) value types. + ****/ + + extension int-labels { + description + "Type narrowing for an INTEGER to label enum values or bit positions."; + } + extension cddl { + argument "text"; + description + "Type narrowing for a CBOR item in the form of CDDL syntax. + The argument to this statement is the actual CDDL text."; + } + + // Simple literal types as YANG typedefs + typedef NULL { + type enumeration { + enum null { + description "The only allowed value."; + } + } + description + "A single-valued type to represent a null value."; + } + typedef BOOL { + type boolean; + description + "The same semantics as the YANG 'boolean' type."; + } + typedef BYTE { + type uint8; + description + "The same semantics as the YANG 8-bit unsigned type."; + } + typedef UINT { + type uint32; + description + "The same semantics as the YANG 32-bit unsigned type. + Can contain an 'int-labels' substatement for documentation."; + } + typedef INT { + type int32; + description + "The same semantics as the YANG 32-bit signed type. + Can contain an 'int-labels' substatement for documentation."; + } + typedef UVAST { + type uint64; + description + "The same semantics as the YANG 64-bit unsigned type. + Can contain an 'int-labels' substatement for documentation."; + } + typedef VAST { + type int64; + description + "The same semantics as the YANG 64-bit signed type. + Can contain an 'int-labels' substatement for documentation."; + } + typedef REAL32 { + type decimal64 { + fraction-digits 10; + } + description + "An IEEE-754 float32 value with a text representation in YANG. + The ARI representation is different than the YANG type used here. + Allows range restriction."; + } + typedef REAL64 { + type decimal64 { + fraction-digits 10; + } + description + "An IEEE-754 float64 value with a text representation in YANG. + The ARI representation is different than the YANG type used here. + Allows range restriction."; + } + typedef TEXTSTR { + type string; + description + "The same semantics as the YANG 'string' type. + Allows length and pattern restriction."; + } + typedef BYTESTR { + type binary; + description + "The same semantics as the YANG 'binary' type. + Allows length restriction."; + } + typedef TP { + type string; + description + "An absolute instant in time. + The ARI representation is different than the YANG type used here. + This is represented as either (narrowed RFC 3339) text or + (fractional) seconds from the DTN epoch."; + } + typedef TD { + type string; + description + "A relative time as a difference between two time instants. + The ARI representation is different than the YANG type used here. + This is represented as either (narrowed RFC 3339) text or + (fractional) seconds."; + } + typedef LITTYPE { + type string; + description + "An enumeration from IANA table of literal types."; + } + typedef LABEL { + type string { + pattern "[a-zA-Z_][a-zA-Z0-9_\\-\\.]*"; + } + description + "An identifier label which fits the YANG 'identifier' pattern."; + } + typedef CBOR { + type BYTESTR; + description + "A bytestr which contains a single well-formed CBOR item. + Can contain a 'cddl' substatement for documentation."; + } + + // Complex literals + typedef AC { + type string; + description + "When present within an ADM this uses the text encoding of an ARI Collection (AC)."; + } + typedef AM { + type string; + description + "When present within an ADM this uses the text encoding of an ARI Map (AM)."; + } + + // Object references + typedef OBJ-REF { + type string; + description + "A text representation of an ARI containing an object reference."; + } + typedef TYPEDEF-REF { + type OBJ-REF; + description "A reference to a TYPEDEF object."; + } + typedef CONST-REF { + type OBJ-REF; + description "A reference to a CONST object."; + } + typedef CTRL-REF { + type OBJ-REF; + description "A reference to a CTRL object."; + } + typedef EDD-REF { + type OBJ-REF; + description "A reference to an EDD object."; + } + typedef OPER-REF { + type OBJ-REF; + description "A reference to a OPER object."; + } + typedef SBR-REF { + type OBJ-REF; + description "A reference to an SBR object."; + } + typedef TBR-REF { + type OBJ-REF; + description "A reference to a TBR object."; + } + typedef VAR-REF { + type OBJ-REF; + description "A reference to a VAR object."; + } + + // Named type unions for literals + typedef TYPE-REF { + type union { + type LITTYPE; + type TYPEDEF-REF; + } + description + "Reference to either a literal type or a typedef."; + } + typedef INTEGER { + type union { + type BYTE; + type UINT; + type INT; + type UVAST; + type VAST; + } + description + "Any type which represents a discrete integer."; + } + typedef FLOAT { + type union { + type REAL32; + type REAL64; + } + description + "Any type which represents a floating point number."; + } + typedef NUMERIC { + type union { + type INTEGER; + type FLOAT; + } + description + "Any type which can be used with numeric expressions."; + } + typedef TIME { + type union { + type TP; + type TD; + } + description + "Any type which can be used with time expressions."; + } + typedef SIMPLE { + type union { + type NULL; + type BOOL; + type NUMERIC; + type TEXTSTR; + type BYTESTR; + type TIME; + type LABEL; + type CBOR; + } + description + "Any type which contains a single value usable within an expression."; + } + typedef COMPLEX { + type union { + type AC; + type AM; + } + description + "A literal type which is not SIMPLE."; + } + typedef LITERAL { + type union { + type TYPE-REF; //FIXME: is typeref a literal or something else? + type SIMPLE; + type COMPLEX; + } + description + "Any type which is represented as a literal ARI."; + } + + typedef ANY { + type union { + type LITERAL; + type OBJ-REF; + } + description + "Any type representable by an ARI."; + } + typedef VALUE-REF { + type union { + type CONST-REF; + type EDD-REF; + type VAR-REF; + } + description + "A reference to an object which can produce a value."; + } + + // operational semantic types + typedef counter32 { + type UINT; + description + "A 32-bit counter with an arbitrary initial value that only increments. + When the value reaches the upper range it wraps around to zero. + At least two samples of this value need to be compared over time."; + } + typedef counter64 { + type UVAST; + description + "A 64-bit counter with an arbitrary initial value that only increments. + When the value reaches the upper range it wraps around to zero. + At least two samples of this value need to be compared over time."; + } + typedef gauge32 { + type INT; + description + "A 32-bit value sampling some quantized measurement. + The value can increase or decrease arbitrarily over time."; + } + typedef gauge64 { + type VAST; + description + "A 64-bit value sampling some quantized measurement. + The value can increase or decrease arbitrarily over time."; + } + typedef timestamp { + type TP; + description + "A time point representing the system clock at which a specific + occurrence happened. + The specific occurrence must be defined in the description + of any node defined using this type."; + } + + // Restrictions on AC item types for specific purposes + typedef EXPR-item { + type union { + type SIMPLE; + type VALUE-REF; + type TYPEDEF-REF; + type OPER-REF; + } + description + "Each item of an EXPR list. + The value-object must be typed to contain a SIMPLE."; + } + grouping EXPR { + leaf-list _ { + type EXPR-item; + description "All items are the same type."; + } + description "The contents of an EXPR container."; + } + typedef EXEC-REF { + type union { + type VALUE-REF; + type CTRL-REF; + } + description + "A reference to an object which can be executed. + The value-object must be typed to contain a MAC."; + } + grouping MAC { + leaf-list _ { + type EXEC-REF; + description "All items are the same type."; + } + description "The contents of a MAC container."; + } + + grouping RPTT-item { + choice item { + case value-ref { + leaf ref { + type VALUE-REF; + description "An object to produce a report value."; + } + } + case expr { + container expr { + uses EXPR; + description "An expression to evaluate into a report value."; + } + } + description + "Each item references a value-producing object or contains an + expression to be evaluated."; + } + description + "Each item of a RPTT."; + } + grouping RPTT { + container _ { + uses RPTT-item; + description "The sequence of items in the template."; + } + description + "The contents of a report template, encoded as the sequence of items."; + } + grouping RPT-items { + leaf-list item { + type ANY; + description "The sequence of items in the report."; + } + description + "The contents of a report, encoded as the sequence of values reported. + The semantics of each item are contained in the associated RPTT."; + } + grouping TBL { + leaf col-count { + type UVAST; + description "The number of columns in the table."; + } + leaf-list tbl-item { + type ANY; + description + "All table values listed in row-major order."; + } + description + "The flattened contents of a table. + The semantics of each column are contained in the associated TBLT."; + } + grouping RPT { + leaf source { + type OBJ-REF; + description "Reference to the reported object."; + } + leaf generated-at { + type timestamp; + description "The generation timestamp."; + } + choice entries { + case value-ref { + leaf value { + type ANY; + } + } + case rptt { + uses RPT-items; + } + case tblt { + uses TBL; + } + case ctrl-ref { + leaf result { + type ANY; + } + } + description + "Each report content depends on the reported object."; + } + description "The contents of an RPT container."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2022-11-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2022-11-30.yang index 5ef2b0cf7..f99c07002 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2022-11-30.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2022-11-30.yang @@ -107,12 +107,25 @@ module ietf-bearer-svc { "Wireless."; } + identity network-termination-hint { + base vpn-common:placement-diversity; + description + "A hint about the termination at the network side + is provided (e.g., geoproximity)."; + } + grouping location-information { description "Basic location information"; container location { description "Location of the node."; + leaf location-name { + type string; + description + "Provides a location name. This data node can be mapped, e.g., to the 3GPP + NRM IOC ManagedElement."; + } leaf address { type string; description @@ -146,9 +159,79 @@ module ietf-bearer-svc { } } + grouping placement-constraints { + description + "Constraints related to placement of a bearer."; + list constraint { + if-feature vpn-common:placement-diversity; + key "constraint-type"; + description + "List of constraints."; + leaf constraint-type { + type identityref { + base vpn-common:placement-diversity; + } + must "not(derived-from-or-self(current(), " + + "'vpn-common:bearer-diverse') or " + + "derived-from-or-self(current(), " + + "'vpn-common:same-bearer'))" { + error-message "Only bearer-specific diversity" + + "constraints must be provided."; + } + description + "Diversity constraint type for bearers."; + } + container target { + description + "The constraint will apply against this list of + groups."; + choice target-flavor { + description + "Choice for the group definition."; + case id { + list group { + key "group-id"; + description + "List of groups."; + leaf group-id { + type string; + description + "The constraint will apply against this + particular group ID."; + } + } + } + case all-bearers { + leaf all-other-bearers { + type empty; + description + "The constraint will apply against all other + bearers of a site."; + } + } + case all-groups { + leaf all-other-groups { + type empty; + description + "The constraint will apply against all other + groups managed by the customer."; + } + } + } + } + } + } + container bearers { description "Main container for the bearers."; + + container placement-constraints { + description + "Diversity constraint type."; + uses placement-constraints; + } + list bearer { key "id"; description @@ -163,6 +246,7 @@ module ietf-bearer-svc { description "A description of this bearer."; } + uses vpn-common:vpn-components-group; leaf op-comment { type string; description @@ -231,7 +315,7 @@ module ietf-bearer-svc { base bearer-type; } description - "Type of the requested bearer (e.g., Ethernet, or wireless)"; + "Type of the requested bearer (e.g., Ethernet or wireless)"; } leaf bearer-reference { if-feature "vpn-common:bearer-reference"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-03-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-07-10.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-03-13.yang rename to experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-07-10.yang index f284e85af..27b6abf47 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-03-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-07-10.yang @@ -49,7 +49,7 @@ module ietf-coreconf { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-03-13 { + revision 2023-07-10 { description "Initial revision."; reference @@ -182,7 +182,7 @@ module ietf-coreconf { description "Returned by the CORECONF server when CBOR encoding is incorect or when the value encoded is incompatible with - the YANG Built-In type. (e.g. value greater than 127 + the YANG Built-In type. (e.g., value greater than 127 for an int8, undefined enumeration)."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-detnet@2022-10-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-detnet@2023-07-10.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-detnet@2022-10-04.yang rename to experimental/ietf-extracted-YANG-modules/ietf-detnet@2023-07-10.yang index 5f9621ebd..d76ab0920 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-detnet@2022-10-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-detnet@2023-07-10.yang @@ -88,7 +88,7 @@ module ietf-detnet { // replace '2022-10-04' with the module publication date // the format is (year-month-day) - revision 2022-10-04 { + revision 2023-07-10 { description "Initial revision"; reference @@ -123,7 +123,7 @@ module ietf-detnet { identity failed { base app-status; description - "Application ingres/egresss failed."; + "Application ingres/egress failed."; reference "RFC 9016 Section 5.8"; } @@ -229,7 +229,7 @@ module ietf-detnet { type enumeration { enum impose-and-forward { description - "This operation impose outgoing label(s) and forward to + "This operation imposes outgoing label(s) and forwards to next-hop."; reference " A YANG Data Model for MPLS Base RFC 8960."; @@ -250,18 +250,18 @@ module ietf-detnet { } enum swap-and-forward { description - "This operation swaps incoming label, with an outgoing + "This operation swaps an incoming label, with an outgoing label and forwards to the next-hop."; reference " A YANG Data Model for MPLS Base RFC 8960."; } enum forward { description - "This operation forward to next-hop."; + "This operation forwards to next-hop."; } enum pop-and-lookup { description - "This operation pops incoming label and performs a + "This operation pops an incoming label and performs a lookup."; } } @@ -282,7 +282,7 @@ module ietf-detnet { "A Packet Replication Function (PRF) replicates DetNet flow packets and forwards them to one or more next hops in the DetNet domain. The number of packet copies sent to - each next hop is a DetNet flow specific parameter at the + each next hop is a DetNet flow-specific parameter at the node doing the replication. PRF can be implemented by an edge node, a relay node, or an end system."; } @@ -326,19 +326,26 @@ module ietf-detnet { type enumeration { enum copy-from-app-flow { description - "This enum value means copy the app-flow sequence number - to the DetNet-flow."; - } + "Copy-from-app-flow is used to extend and use the + sequence number used in App-flow. This function is + required when encapsulating App-flows that have been + replicated and received through multiple ingress nodes + into a member flow, and then eliminate it at the relay + node."; + } enum generate-by-detnet-flow { description - "This enum value means generate the sequence number by the - DetNet flow."; + "Generate-by-detnet-flow is used to create a new + sequence number for a DetNet flow at the ingress node. + Care must be taken when using this option to ensure + there is only one source for generating sequence + numbers."; } } description - "An enumeration for the sequence number behaviors supported."; + "This typedef defines how to generate sequence numbers to + be used in DetNet encapsulation."; } - typedef sequence-number-field { type enumeration { enum zero-sn { @@ -456,7 +463,7 @@ module ietf-detnet { grouping destination-ip-port-id { description - "The TCP/UDP port(source/destination) identification + "The TCP/UDP port destination identification information."; container destination-port { uses packet-fields:port-range-or-operator; @@ -467,7 +474,7 @@ module ietf-detnet { grouping source-ip-port-id { description - "The TCP/UDP port(source/destination) identification + "The TCP/UDP port source identification information."; container source-port { uses packet-fields:port-range-or-operator; @@ -646,7 +653,6 @@ module ietf-detnet { "Generic parameters of DetNet next hops. This follows the principles for next hops in RFC 8349"; choice next-hop-options { - mandatory true; description "Options for next hops. It is expected that further cases will be added through @@ -724,7 +730,6 @@ module ietf-detnet { "Generic parameters of DetNet next hops. This follows the principles for next hops in RFC 8349"; choice next-hop-options { - mandatory true; description "Options for next hops. It is expected that further cases will be added through @@ -848,8 +853,8 @@ module ietf-detnet { "This is the maximum latency from Ingress to Egress(es) for a single packet of the DetNet flow. MaxLatency is specified as an integer number of - nanoseconds. Any value above the MAX 4,294,967,295 - is displayed as MAX"; + nanoseconds. The MAX value is 4,294,967,295 + nanoseconds."; reference "RFC 9016 Section 4.2"; } @@ -1057,7 +1062,6 @@ module ietf-detnet { } leaf interface { type if:interface-ref; - mandatory true; description "Interface is used for any service type when matching all flows to the interface."; @@ -1067,6 +1071,7 @@ module ietf-detnet { container egress { description "Route's next-hop attribute."; + uses data-flow-spec; choice application-type { description "This is the application type choices."; @@ -1148,7 +1153,6 @@ module ietf-detnet { description "The DetNet service sub-layer incoming configuration."; choice incoming { - mandatory true; description "A service sub-layer may have App flows or other service sub-layers."; @@ -1189,7 +1193,6 @@ module ietf-detnet { description "The DetNet service sub-layer outgoing configuration."; choice outgoing { - mandatory true; description "The outgoing type may be a forwarding Sub-layer or a service sub-layer or aggregation type."; @@ -1245,7 +1248,7 @@ module ietf-detnet { description "This is the MPLS service sub-layer label. This is optional and only used when the service - sublayer uses MPLS. It is an MPLS stack since + sub-layer uses MPLS. It is an MPLS stack since more than a single label may be used."; uses rt-types:mpls-label-stack; } @@ -1321,7 +1324,6 @@ module ietf-detnet { "The DetNet forwarding sub-layer incoming configuration."; choice incoming { - mandatory true; description "Cases of incoming types."; container service-sub-layer { @@ -1361,7 +1363,6 @@ module ietf-detnet { "The DetNet forwarding sub-layer outbound configuration."; choice outgoing { - mandatory true; description "This is when a service connected directly to an interface with no forwarding sub-layer."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang new file mode 100644 index 000000000..83c979d89 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang @@ -0,0 +1,376 @@ +module ietf-dtnma-agent { + namespace "ari:/ietf-dtnma-agent"; + prefix "da"; + + import "ietf-amm" { + prefix amm; + } + + organization + "IETF Delay Tolerant Networking Working Group"; + contact + "WG Web: + WG List: + WG Chairs: Brian Haberman + + Marc Blanchet + + + Editor: Brian Sipos + "; + + description + "This module implements the DTN Management Architecture (DTNMA) + Agent core functionality."; + reference + "draft-birrane-dtn-adm"; + + revision "2023-06-08" { + description "Updated for latest AMM contents."; + reference "draft-birrane-dtn-adm"; + } + amm:enum "0"; + + feature rules { + description + "Conforming to this feature enables time-based and + state-based autonomy rules."; + } + + amm:edd amp_version { + leaf _ { + type amm:TEXTSTR; + } + description "The version of AMP which this agent supports."; + } + amm:edd capability { + list columns { + key adm_name; + + leaf adm_name { + type amm:LABEL; + description "The module name of the ADM"; + } + leaf revision { + type amm:TEXTSTR; + description "The specific revision the agent supports."; + } + container features { + leaf-list _ { + type amm:LABEL; + } + description + "The features of the ADM which the agent supports."; + } + } + description + "A table to indicate the ADM capability of the sending agent."; + } + amm:const hello { + uses amm:RPTT; + amm:value "(../EDD/amp_version,../EDD/capability)"; + description + "A report template to indicate the presence of an agent + on a network."; + } + + // MAC helper controls + amm:ctrl if_then_else { + amm:parameters { + container condition { + uses amm:EXPR; + description "The condition to evaluate."; + } + leaf on_truthy { + type amm:EXEC-REF; + description "The object to execute when the condition is truthy."; + } + leaf on_falsy { + type union { + type amm:NULL; + type amm:EXEC-REF; + } + default "null"; + description "An optional execution when the condition is falsey."; + } + } + description + "Evaluate an expression and follow one of two branches of + further evaluation."; + } + amm:ctrl catch { + amm:parameters { + leaf try { + type amm:EXEC-REF; + description "The object to execute."; + } + leaf on_failure { + type union { + type amm:NULL; + type amm:EXEC-REF; + } + default "null"; + description "An optional execution after failure."; + } + } + description + "Attempt to execute an object, and if there is some failure catch it + and execute an alternative object."; + } + + amm:ctrl inspect { + amm:parameters { + leaf ref { + type amm:VALUE-REF; + description "An object to produce a value from."; + } + } + amm:result { + leaf val { + type amm:ANY; + description "The produced value."; + } + } + description + "Produce a result value to inspect the agent state. + This does not perform any EXPR evaluation or RPTT handling."; + } + + amm:ctrl report_on { + amm:parameters { + uses amm:RPTT-item; + } + description + "Generate a report on an object without needing to define a RPTT. + The parameter is a single item that would be in a RPTT. + If used for more than one-shot diagnostics, defining a RPTT + (e.g. in a VAR) is more efficient because the RPTT item would not + be present in the report."; + } + + grouping obj-list-params { + leaf include_adm { + type amm:BOOL; + default "false"; + description "If true, listings will include objects from ADMs"; + } + description "Common parameters for object listing"; + } + + amm:edd typedef_list { + amm:parameters { + uses obj-list-params; + } + list _ { + key obj; + leaf obj { + type amm:TYPEDEF-REF; + } + } + description + "A table of TYPEDEF within the agent."; + } + + // Objects related to VAR handling + amm:edd var_list { + amm:parameters { + uses obj-list-params; + } + list _ { + key obj; + leaf obj { + type amm:VAR-REF; + } + leaf type { + type amm:TYPE-REF; + } + } + description + "A table of VAR within the agent."; + } + amm:ctrl var_present { + amm:parameters { + leaf obj { + type amm:VAR-REF; + description + "A reference to a VAR within an ODM only."; + } + leaf type { + type amm:TYPE-REF; + description + "The type for the VAR object."; + } + choice init { + case without { + leaf _ { + type amm:NULL; + } + } + case with { + container expr { + uses amm:EXPR; + } + } + default "null"; + description "An optional initializer expression."; + } + } + description + "Ensure a specific VAR is present."; + } + amm:ctrl var_absent { + amm:parameters { + leaf obj { + type amm:VAR-REF; + description + "A reference to a VAR within an ODM only."; + } + } + description + "Ensure a specific VAR is not present."; + } + + // Objects related to SBR handling + grouping sbr-fields { + container action { + uses amm:MAC; + description + "The execution when this rule triggers."; + } + leaf start_time { + type amm:TIME; + } + container condition { + uses amm:EXPR; + } + leaf min_interval { + type amm:TD; + } + leaf max_count { + type amm:UVAST; + } + } + amm:edd sbr_list { + if-feature rules; + list _ { + key obj; + + leaf obj { + type amm:SBR-REF; + } + uses sbr-fields; + } + } + + amm:edd tbr_list { + if-feature rules; + list _ { + key obj; + + leaf obj { + type amm:OBJ-REF; + } + container action { + uses amm:MAC; + description + "The execution when this rule triggers."; + } + leaf start_time { + type amm:TIME; + } + leaf period { + type amm:TD; + } + leaf max_count { + type amm:UVAST; + } + } + } + + grouping numeric-unary { + leaf val { + type amm:NUMERIC; + description "The single value."; + } + } + grouping numeric-binary { + leaf left { + type amm:NUMERIC; + description "The left-side operand."; + } + leaf right { + type amm:NUMERIC; + description "The left-side operand."; + } + } + amm:oper negate { + amm:operands { + uses numeric-unary; + } + amm:result { + uses numeric-unary; + } + description + "Negate a value. + This is equivalent to multiplying by -1 but a shorter + expression."; + } + amm:oper add { + amm:operands { + uses numeric-binary; + } + amm:result { + uses numeric-unary; + } + description + "Add two numeric values. + The operands are cast to the least compatible numeric type + before the arithmetic."; + } + // amm:oper sub + // amm:oper multiply + // amm:oper divide + // amm:oper add + + // amm:oper bit_not + // amm:oper bit_and + // amm:oper bit_or + // amm:oper bit_xor + + // amm:oper bool_not + // amm:oper bool_and + // amm:oper bool_or + // amm:oper bool_xor + + // amm:oper compare_eq + // amm:oper compare_ne + // amm:oper compare_gt + // amm:oper compare_ge + amm:oper compare_lt { + amm:operands { + uses numeric-binary; + } + amm:result { + uses numeric-unary; + } + description + "Compare two operands by value. + The result is true if the left value is less than the right. + The operands are cast to the least compatible numeric type + before the comparison."; + } + amm:oper compare_le { + amm:operands { + uses numeric-binary; + } + amm:result { + uses numeric-unary; + } + description + "Compare two operands by value. + The result is true if the left value is less than or + equal to the right. + The operands are cast to the least compatible numeric type + before the comparison."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang index 0aacfcb1e..11f7c4e2e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang @@ -3,18 +3,11 @@ module ietf-external-transaction-id { namespace "urn:ietf:params:xml:ns:yang:ietf-external-transaction-id"; prefix ext-txid; - import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types, Section 3"; } - import ietf-netconf-txid { - prefix ietf-netconf-txid; - reference - "draft-lindblad-netconf-transaction-id: - Transaction ID Mechanism for NETCONF"; - } organization "IETF OPSAWG Working Group"; @@ -29,10 +22,11 @@ module ietf-external-transaction-id { configuration changes and the external request that triggered that change. - The module stores the identifier of the parent transaction - that triggered the change in a device, and the child - transaction ID when the local device originates in its turn a - transaction. + The module stores the identifier of the trace, if any, that + triggered the change in a device. If that trace-id was provided + by a client, (i.e. not created locally by the server), the id + of that client is stored as well to indicated which client + triggered the configuration change. Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -45,6 +39,7 @@ module ietf-external-transaction-id { (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 2022-10-20 { description "Initial revision"; @@ -52,6 +47,60 @@ module ietf-external-transaction-id { "RFC xxxx: Title to be completed"; } + typedef hex-digits { + type string { + pattern '[0-9a-f]*'; + } + description + "A string composed of hexadecimal digits. Digits represented by + letters are restricted to lowercase so that a single + representation of a given value is allowed. This enables using + the string equality to check equality of the represented + values."; + } + + grouping trace-parent-g { + description + "Trace parent frow the W3C trace-context recommandation. + Follows the format version 00."; + leaf version { + type hex-digits { + length "2"; + } + must "../version = '00'"; + description + "Version of the trace context. Must be 00 to match the + format described in this module."; + } + leaf trace-id { + type hex-digits { + length "32"; + } + must "../trace-id != '00000000000000000000000000000000'"; + description + "Trace ID that is common for every transaction that is + part of the configuration chain. This value can be used + to match a local commit id to a commit local to another + system."; + } + leaf parent-id { + type hex-digits { + length "16"; + } + description + "ID of the request (client-side) that lead to configuring + the server hosting this module."; + } + leaf trace-flags { + type hex-digits { + length "2"; + } + description + "Flags enabled for this trace. See W3C reference for the + details about flags."; + } + } + container external-transactions-id { config false; description @@ -75,34 +124,29 @@ module ietf-external-transaction-id { "A timestamp that can be used to further filter change events."; } - leaf parent-transaction-id { - type ietf-netconf-txid:etag-t; + container trace-parent { description - "External transaction ID, sent by the client, corresponding - to a change initiated by an external entity (e.g., - controller, orchestrator). There should be a corresponding - entry on that external entity as a child-transaction-id - that maps to the actual configuration commit that - triggered the configuration of this server. + "Trace parent associated to the local-commit-id. If a + client ID is present as well, the trace context was + transmitted by that client. If not, the trace context was + created locally. - This data node is present only when the configuration was - pushed by a compatible system."; + This trace-parent must come from the trace context of the + request actually modifying the running configuration + datastore. This request might be an edit-config or a + commit depending on whether the candidate datastore is + used."; + uses trace-parent-g; } leaf client-id { - when '../parent-transaction-id'; type string; - mandatory true; description "ID of the client that originated the modification, to further query information about the corresponding - change."; - } - leaf-list child-transaction-id { - type ietf-netconf-txid:etag-t; - description - "Transaction ID transmitted to other devices - configured following the configuration change - corresponding to local-commit-id."; + change. + + This data node is present only when the configuration was + pushed by a compatible system."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2022-07-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-07-06.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2022-07-04.yang rename to experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-07-06.yang index 9c63da14d..3cde2a582 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2022-07-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-07-06.yang @@ -32,6 +32,7 @@ module ietf-flexi-grid-topology { "IETF CCAMP Working Group"; contact "WG Web: + WG List: Editor: Jorge E. Lopez de Vergara @@ -68,9 +69,15 @@ module ietf-flexi-grid-topology { (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."; + 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 2022-07-04 { + revision 2023-07-06 { description "Initial Version"; reference @@ -79,6 +86,28 @@ module ietf-flexi-grid-topology { // information and remove this note } + /* + * Groupings + */ + + grouping label-range-info { + description + "Flexi-grid-specific label range related information with a + presence container indicating whether the label range is a + flexi-grid label range."; + container flexi-grid-label-range { + presence + "Indicates the label range is a flexi-grid label range. + + This container must not be present if there are other + presence containers or attributes indicating another type + of label range."; + description + "Flexi-grid-specific label range related information."; + uses l0-types:flexi-grid-label-range-info; + } + } + /* * Data nodes */ @@ -127,7 +156,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the TE node connectivity matrices."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -143,7 +172,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the source Link Termination Point (LTP) of the connectivity matrix entry."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -159,7 +188,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the destination LTP of the connectivity matrix entry."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/" @@ -174,7 +203,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the TE node connectivity matrices information source."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -190,7 +219,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the source LTP of the connectivity matrix entry information source."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -206,9 +235,8 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the destination LTP of the connectivity matrix entry information source."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } - augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:tunnel-termination-point/" + "tet:local-link-connectivities/" @@ -222,7 +250,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the Tunnel Termination Point (TTP) Local Link Connectivities."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -239,7 +267,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the TTP Local Link Connectivity entry."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nt:link/tet:te/" @@ -253,7 +281,7 @@ module ietf-flexi-grid-topology { } description "Augment TE label range information for the TE link."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nt:link/tet:te/" @@ -268,7 +296,7 @@ module ietf-flexi-grid-topology { description "Augment TE label range information for the TE link information source."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } augment "/nw:networks/tet:te/tet:templates/" @@ -276,7 +304,7 @@ module ietf-flexi-grid-topology { + "tet:label-restrictions/tet:label-restriction" { description "Augment TE label range information for the TE link template."; - uses l0-types:flexi-grid-label-range-info; + uses label-range-info; } /* @@ -780,6 +808,7 @@ module ietf-flexi-grid-topology { uses l0-types:flexi-grid-label-hop; } } + augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:optimizations/tet:algorithm/tet:metric/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-05-25.yang b/experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-05-25.yang index c0d720cf7..e4e4b21c6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-05-25.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-05-25.yang @@ -30,7 +30,6 @@ module ietf-immutable { Author: Qin Wu - Author: Balazs Lengyel diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ipv4-sav-rule@2023-05-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-ipv4-sav-rule@2023-05-20.yang index 0c5aa5537..a91c9fcde 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ipv4-sav-rule@2023-05-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ipv4-sav-rule@2023-05-20.yang @@ -2,7 +2,6 @@ module ietf-ipv4-sav-rule { yang-version "1.1"; namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-sav-rule"; prefix "v4sav"; - import ietf-sav { prefix "sav"; } @@ -23,15 +22,15 @@ module ietf-ipv4-sav-rule { description "This YANG module defines the essential elements for the - management of IPv4 SAV rule). + management of IPv4 SAV rule. - Copyright (c) 2023 IETF Trust and the persons - identified as authors of the code. All rights reserved. + 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 Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions + 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). @@ -104,6 +103,7 @@ module ietf-ipv4-sav-rule { "IPv4 source address."; } } + augment "/sav:sav/sav:sav-tables/sav:sav-table/" + "sav:active-sav-rule/sav:output/sav:sav-rule" { when "derived-from-or-self(../../sav:address-family, " diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ipv6-sav-rule@2023-05-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-ipv6-sav-rule@2023-05-20.yang index eb3b725bb..cc403fe6d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ipv6-sav-rule@2023-05-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ipv6-sav-rule@2023-05-20.yang @@ -20,18 +20,17 @@ module ietf-ipv6-sav-rule { contact "TBD"; - description "This YANG module defines the essential elements for the - management of IPv6 SAV rule). + management of IPv6 SAV rule. - Copyright (c) 2023 IETF Trust and the persons - identified as authors of the code. All rights reserved. + 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 Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions + 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). @@ -121,6 +120,7 @@ module ietf-ipv6-sav-rule { "IPv6 source prefix."; } } + augment "/sav:sav/sav:static-savs" { description "This augment defines the 'static' pseudo-protocol diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang index a0c73c100..b80592885 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang @@ -15,6 +15,7 @@ module ietf-l3-isis-topology { reference "RFC 8345: A YANG Data Model for Network Topologies"; } + import ietf-l3-unicast-topology { prefix "l3t"; reference @@ -24,7 +25,7 @@ module ietf-l3-isis-topology { import ietf-isis { prefix "ietf-isis"; reference - "RFC 6991: Common YANG Data Types"; + "RFC 9130: YANG Data Model for the IS-IS Protocol"; } import ietf-inet-types { @@ -45,8 +46,10 @@ module ietf-l3-isis-topology { Editor: Victor Lopez "; + Editor: Benoit Claise + "; description - "This module defines a model for Layer 3 ISIS + "This module defines a model for Layer 3 IS-IS topologies. Copyright (c) 2022 IETF Trust and the persons identified as @@ -68,148 +71,5 @@ module ietf-l3-isis-topology { "Initial version"; reference "RFC XXXX: A YANG Data Model for Intermediate System to - Intermediate System (ISIS) Topology"; - } - - grouping isis-topology-type { - description "Identifies the topology type to be ISIS."; - container isis-topology { - presence "indicates ISIS topology"; - description - "The presence of the container node indicates ISIS - topology"; - } - } - - grouping isis-node-attributes { - description "isis node scope attributes"; - container isis-timer-attributes { - description - "Contains node timer attributes"; - leaf lsp-lifetime { - type uint16 { - range "1..65535"; - } - units "seconds"; - description - "Lifetime of the router's LSPs in seconds."; - } - leaf lsp-refresh-interval { - type uint16 { - range "1..65535"; - } - units "seconds"; - description - "Refresh interval of the router's LSPs in seconds."; - } - } - container isis-status { - description - "Contains the ISIS status attributes"; - leaf level { - type ietf-isis:level; - description - "Level of an IS-IS node - can be level-1, - level-2 or level-all."; - } - - leaf-list area-address { - type ietf-isis:area-address; - description - "List of areas supported by the protocol instance."; - } - - leaf system-id { - type ietf-isis:system-id; - description - "System-id of the node."; - } - - leaf-list neighbors { - type inet:ip-address; - config false; - description - "Topology flags"; - } - } - } - - grouping isis-termination-point-attributes { - description "ISIS termination point scope attributes"; - container isis-termination-point-attributes { - description - "Indicates the termination point from the - which the ISIS is configured. A termination - point can be a physical port, an interface, etc."; - - leaf interface-type { - type ietf-isis:interface-type; - description - "Type of adjacency to be established for the interface. This - dictates the type of hello messages that are used."; - } - - leaf level { - type ietf-isis:level; - description - "Level of an IS-IS node - can be level-1, - level-2 or level-all."; - } - - leaf metric { - type uint32 { - range "0 .. 16777215"; - } - description - "This type defines wide style format of IS-IS metric."; - } - - leaf is-passive{ - type boolean; - description - "Indicates whether the interface is in passive mode (IS-IS - not running but network is advertised)."; - } - } - } - - augment "/nw:networks/nw:network/nw:network-types" { - description - "Introduces new network type for L3 Unicast topology"; - uses isis-topology-type; - } - - augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" { - when "/nw:networks/nw:network/nw:network-types/isisnt:isis-topology" { - description - "Augmentation parameters apply only for networks with - isis topology"; - } - description - "isis node-level attributes "; - uses isis-node-attributes; - } - - augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" { - when "/nw:networks/nw:network/nw:network-types/isisnt:isis-topology" { - description - "Augmentation parameters apply only for networks with - ISIS topology"; - } - description - "Augments topology link configuration"; - uses isis-termination-point-attributes; - } - - augment "/nw:networks/nw:network/nw:node/nt:termination-point"+ - "/l3t:l3-termination-point-attributes" { - when "/nw:networks/nw:network/nw:network-types/isisnt:isis-topology" { - description - "Augmentation parameters apply only for networks with - ISIS topology"; - } - description - "Augments topology termination point configuration"; - uses isis-termination-point-attributes; + Intermediate System (IS-IS) Topology"; } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang index ffa15f880..b54b82680 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang @@ -52,6 +52,7 @@ module ietf-layer1-types { // RFC Editor: replace XXXX with actual RFC number, update date // information and remove this note } + /* * Identities */ @@ -89,7 +90,6 @@ module ietf-layer1-types { reference "RFC7139: GMPLS Signaling Extensions for Control of Evolving G.709 Optical Transport Networks - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical Transport Network (OTN)"; } @@ -186,7 +186,6 @@ module ietf-layer1-types { base odu-type; description "ODUflex protocol (flexible bit rate, resizable). - It could be used only for ODUflex(GFP,n,k)."; reference "RFC7139: GMPLS Signaling Extensions for Control of Evolving @@ -475,7 +474,6 @@ module ietf-layer1-types { ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical Transport Network (OTN) - MEF63: Subscriber Layer 1 Service Attributes"; } @@ -764,7 +762,6 @@ module ietf-layer1-types { reference "MEF63: Subscriber Layer 1 Service Attributes"; } - /* * Typedefs */ diff --git a/experimental/ietf-extracted-YANG-modules/ietf-link-availability@2023-06-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-link-availability@2023-06-15.yang new file mode 100644 index 000000000..678ed2bfd --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-link-availability@2023-06-15.yang @@ -0,0 +1,201 @@ +module ietf-link-availability { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-link-availability"; + prefix ln-avail; + + import ietf-yang-types { + prefix yang; + } + + import ietf-te-types { + prefix te-types; + } + + organization + "IETF Time-Variant Routing Working Group"; + + contact + "WG Web: + WG List: + + Editors: Eric Kinzie + + Don Fedyk + "; + + description + "This YANG module contains YANG definitions for describing + network links with an time-variant availability schedule. + + 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 + (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-06-15 { + description + "Initial revision"; + reference + "RFC XXXX A YANG Data Model for Time Variant Link + Availability"; + } + + container link-availability { + config false; + + leaf next-update { + type yang:date-and-time; + description + "This data is current until the specified time."; + } + + list link { + key "avail-from source-node source-link-id"; + leaf avail-from { + type yang:date-and-time; + description + "The time at which this link becomes available."; + } + leaf source-node { + type string; + description + "A name that refers to the source (transmitting) + node of the link."; + } + leaf source-link-id { + type string; + description + "A name, as known to the source node, that refers to + this link."; + } + leaf destination-node { + type string; + description + "A name that refers to the destination (receiving) node + of the link."; + } + leaf avail-until { + type yang:date-and-time; + description + "The time at which this link is no longer available."; + } + leaf bandwidth { + type te-types:te-bandwidth; + description + "The predicted link capacity specified in a generic + format. If the value measured by the system is less than + this value, the system value is used. If the value + measured by the system is greater than this value the + predicted value SHOULD be used."; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + leaf delay { + type uint32 { + range "0..16777215"; + } + description + "The one-way delay or latency in microseconds. If the + value measured by the system is less than this value + the predicted value SHOULD be used."; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + leaf igp-link-metric { + type uint32; + description + "OSPF or IS-IS link metric. If this metric is supplied + it is the predicted metric that is used by the system. + The system may adjust operational metric as needed."; + reference + "RFC 9129: YANG Data Model for the OSPF Protocol + RFC 9130: YANG Data Model for the IS-IS Protocol"; + } + leaf te-default-metric { + type uint32; + description + "The Traffic Engineering metric. The system may adjust this + value on the operational link."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2 + RFC 5305: IS-IS Extensions for Traffic Engineering"; + } + container link-affinity-names { + description + "Link affinities represented as names."; + list link-affinity-name { + key "usage"; + description + "An optional list of named affinity constraints."; + leaf usage { + type identityref { + base te-types:resource-affinities-type; + } + description + "Identifies an entry in the list of named affinity + constraints."; + } + list affinity-name { + key "name"; + leaf name { + type string; + description + "Identifies a named affinity entry."; + } + description + "List of named affinities."; + reference + "RFC 8776: Common YANG Data Types for Traffic + Engineering"; + } + } + } + container link-srlgs-names { + description + "Container for the list of named SRLGs."; + list link-srlgs-name { + key "usage"; + description + "List of named SRLGs to be included or excluded."; + leaf usage { + type identityref { + base te-types:route-usage-type; + } + description + "Identifies an entry in a list of named SRLGs to either + include or exclude."; + } + leaf-list names { + type string; + description + "List of named SRLGs."; + reference + "RFC 8776: Common YANG Data Types for Traffic + Engineering"; + } + } + } + description + "This list represents a set of links each which has + time variant link attributes."; + } + description + "A container with a list links with time variant link + availabilities."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-hardware-inventory@2023-03-09.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-hardware-inventory@2023-03-09.yang index cb508e3ba..e074e3005 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-hardware-inventory@2023-03-09.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-hardware-inventory@2023-03-09.yang @@ -9,6 +9,7 @@ module ietf-network-hardware-inventory { reference "RFC6991: Common YANG Data Types."; } + import iana-hardware { prefix ianahw; reference @@ -51,7 +52,6 @@ module ietf-network-hardware-inventory { The model fully conforms to the Network Management Datastore Architecture (NMDA). - Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-02-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-types@2023-07-10.yang similarity index 64% rename from experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-02-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-network-inventory-types@2023-07-10.yang index 3d835dce9..96765f943 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-02-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-types@2023-07-10.yang @@ -1,18 +1,9 @@ -module ietf-network-inventory { +module ietf-network-inventory-types { yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory"; - prefix nw-inv; + namespace + "urn:ietf:params:xml:ns:yang:ietf-network-inventory-types"; + prefix nw-inv-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-inet-types { prefix inet; reference @@ -33,14 +24,6 @@ module ietf-network-inventory { reference "RFC 8348: A YANG Data Model for Hardware Management"; } - import ietf-geo-location { - prefix geo; - reference - "RFC 9179: A YANG Grouping for Geographic Locations"; - } - import iana-if-type { - prefix ianaift; - } organization "IETF OPSAWG (Operations and Management Area Working Group)"; @@ -57,7 +40,8 @@ module ietf-network-inventory { Editor: Mohamed Boucadair "; description - "This YANG module defines XXX. + "This YANG module contains a collection of network inventory + specific YANG data type defintions. Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -73,7 +57,7 @@ module ietf-network-inventory { (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - revision 2023-02-10 { + revision 2023-07-10 { description "Initial revision."; reference @@ -127,106 +111,13 @@ module ietf-network-inventory { module"; } - identity node-type { - description - "Base identity for node device type."; - } - - identity switch { - base node-type; - description - "Identity for switch device."; - } - - identity router { - base node-type; - description - "Identity for router device."; - } - - identity firewall { - base node-type; - description - "Identity for Firewall device."; - } - - identity access-controller { - base node-type; - description - "Identity for WIFI access controller device."; - } - - identity access-point { - base node-type; - description - "Identity for WIFI access point device."; - } - - identity sdn-controller { - base node-type; - description - "Identity for controller."; - } - - identity server { - base node-type; - description - "Identity for computing server device."; - } - - identity vm { - base node-type; - description - "Identity for VM node."; - } - - identity camera { - base node-type; - description - "Identity for camera device."; - } - - identity printer { - base node-type; - description - "Identity for camera device."; - } - - identity cell-phone { - base node-type; - description - "Identity for mobile phone."; - } - - typedef oper-state { - type enumeration { - enum unknown { - value 1; - description - "The resource is unable to report its operational - state."; - } - enum disabled { - value 2; - description - "The resource is totally inoperable."; - } - enum enabled { - value 3; - description - "The resource is partially or fully operable."; - } - enum testing { - value 4; - description - "The resource is currently being tested and cannot - therefore report whether or not it is operational."; - } - } + identity operating-software-patch { + base software-component; description - "Represents the possible values of operational states."; - reference - "RFC 4268: Entity State MIB - EntityOperState"; + "An software update - which should be a subcomponent + of the `software-module` running on a component. A patch is + defined to be a set of software changes that are atomically + installed (and uninstalled) together. "; } /* Groupings */ @@ -284,6 +175,7 @@ module ietf-network-inventory { "The name of the manufacturer of this physical component. The preferred value is the manufacturer name string actually printed on the component itself (if present). + Note that comparisons between instances of the 'model-name', 'firmware-rev', 'software-rev', and 'serial-num' nodes are only meaningful amongst @@ -372,7 +264,7 @@ module ietf-network-inventory { "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID"; } leaf oper-state { - type oper-state; + type hw:oper-state; config false; description "The operational state for this component. @@ -428,6 +320,7 @@ module ietf-network-inventory { If this leaf is not instantiated, it indicates that this component is not contained in any other component. + In the event that a physical component is contained by more than one physical component (e.g., double-wide modules), this node contains the name of one of these @@ -513,199 +406,69 @@ module ietf-network-inventory { } } - grouping inventory-network-type { - description - "Indicates the topology type to be inventory."; - container network-inventory { - presence "Indicates Network Inventory."; - description - "The presence of the container node indicates - Network Inventory."; - } - } - - grouping inventory-node-attributes { - description - "Augment used to define attach the node configuration"; - leaf name { - type string; - description - "The name of the node."; - } - leaf node-type { - type identityref { - base node-type; - } - config false; - description - "Node type."; - } - leaf is-virtual { - type boolean; - default "false"; - config false; - description - "Set to true if the node is virtual. - Set to false if the node is physical."; - } - leaf is-gateway { - type boolean; - default "false"; - config false; - description - "Set to true if the node is a gateway. - Set to false if the node is not a gateway."; - } - leaf gateway-ref { - type leafref { - path "../name"; - } - config false; - description - "gateway for endpoint device."; - } - leaf management-ipv4-address { - type inet:host; - description - "The IP address or DNS domain name of the device."; - } - leaf management-ipv6-address { - type inet:host; - description - "The IP address or DNS domain name of the device."; - } - leaf mac-address { - type yang:mac-address; - config false; - description - "The MAC address of the device."; - } - leaf mud-url { - type inet:uri; - config false; - description - "This is the MUD URL associated with the MUD device found - in a MUD file."; - } - leaf transparency-info { - type inet:uri; - config false; - description - "Link to software bill of material, - see draft-ietf-opsawg-sbom-access"; - } - leaf site { - type string; - description - "The site of the node."; - } - uses component-info; - uses components; - uses geo:geo-location; - } - - grouping inventory-termination-point-attributes { + grouping licenses { description - "Augment used to define attach the termination point - attributes."; - leaf tp-name { - type string; - config false; - description - "The name of the interface."; - } - leaf tp-description { - type string; + "Grouping for licenses."; + container licenses { config false; description - "A textual description of the interface."; - } - leaf tp-type { - type string; - config false; - description - "The type of the interface."; - } - leaf oper-state { - type oper-state; - config false; - description - "The operational state for this interface."; - } - } - - grouping inventory-link-attributes { - description - "Augment used to define attach the termination point - attributes."; - leaf link-name { - type string; - config false; - description - "The name of the link."; - } - leaf link-description { - type string; - config false; - description - "A textual description of the interface."; - } - leaf link-type { - type string; - config false; - description - "The type of the interface."; - } - leaf oper-state { - type oper-state; - config false; - description - "The operational state for this link."; - } - } - - /* Main blocks */ - - augment "/nw:networks/nw:network/nw:network-types" { - description - "Introduces new network type for network inventory."; - uses inventory-network-type; - } - - augment "/nw:networks/nw:network/nw:node" { - when '/nw:networks/nw:network/nw:network-types/ - nw-inv:network-inventory' { - description - "Augmentation parameters apply only for network inventory."; - } - description - "Configuration parameters for inventory at the node - level."; - uses inventory-node-attributes; - } - - augment "/nw:networks/nw:network/nt:link" { - when '/nw:networks/nw:network/nw:network-types/ - nw-inv:network-inventory' { - description - "Augmentation parameters apply only for network - inventory."; - } - description - "Augments inventory topology link information."; - uses inventory-link-attributes; - } - - augment - "/nw:networks/nw:network/nw:node/nt:termination-point" { - when '/nw:networks/nw:network/nw:network-types/ - nw-inv:network-inventory' { + "Container for list of licenses"; + list license { + key "license-id"; description - "Augmentation parameters apply only for network - inventory."; + "List of licenses."; + leaf license-id { + type string; + description + "License ID. A string that uniquelly identifies the + license. "; + } + leaf description { + type string; + description + "The license description."; + } + leaf license-data { + type union { + type binary; + type string; + } + description + "The contents of the licence (if required) ."; + } + leaf active { + type boolean; + default "false"; + description + "The activation state of the license."; + } + leaf issue-date { + type uint64; + description + "The date and time at which the license was issued."; + } + leaf expiration-date { + type uint64; + description + "The date and time at which the license will expire."; + } + leaf in-use { + type boolean; + description + "The license is in use."; + } + leaf expired { + type boolean; + description + "The license has expired."; + } + leaf valid { + type boolean; + description + "The license is valid. Can be activated in the system + or platform."; + } } - description - "Augments inventory termination point information."; - uses inventory-termination-point-attributes; + } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-07-10.yang new file mode 100644 index 000000000..dead5ce7d --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-07-10.yang @@ -0,0 +1,342 @@ +module ietf-network-inventory { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory"; + prefix nw-inv; + + 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-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-geo-location { + prefix geo; + reference + "RFC 9179: A YANG Grouping for Geographic Locations"; + } + import ietf-network-inventory-types { + prefix nw-inv-types; + } + + organization + "IETF OPSAWG (Operations and Management Area Working Group)"; + contact + "WG Web: + WG List: + + Editor: Bo Wu + + Editor: Cheng Zhou + + Editor: Qin Wu + + Editor: Mohamed Boucadair + "; + description + "This YANG module defines XXX. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices."; + + revision 2023-07-10 { + description + "Initial revision."; + reference + "RFC XXXX: A Network Inventory Management Model for + Enterprise Networks "; + } + + identity node-type { + description + "Base identity for node device type."; + } + + identity switch { + base node-type; + description + "Identity for switch device."; + } + + identity router { + base node-type; + description + "Identity for router device."; + } + + identity firewall { + base node-type; + description + "Identity for Firewall device."; + } + + identity access-controller { + base node-type; + description + "Identity for WIFI access controller device."; + } + + identity access-point { + base node-type; + description + "Identity for WIFI access point device."; + } + + identity sdn-controller { + base node-type; + description + "Identity for controller."; + } + + identity server { + base node-type; + description + "Identity for computing server device."; + } + + identity vm { + base node-type; + description + "Identity for VM node."; + } + + identity camera { + base node-type; + description + "Identity for camera device."; + } + + identity printer { + base node-type; + description + "Identity for camera device."; + } + + identity cell-phone { + base node-type; + description + "Identity for mobile phone."; + } + + typedef oper-state { + type enumeration { + enum unknown { + value 1; + description + "The resource is unable to report its operational + state."; + } + enum disabled { + value 2; + description + "The resource is totally inoperable."; + } + enum enabled { + value 3; + description + "The resource is partially or fully operable."; + } + enum testing { + value 4; + description + "The resource is currently being tested and cannot + therefore report whether or not it is operational."; + } + } + description + "Represents the possible values of operational states."; + reference + "RFC 4268: Entity State MIB - EntityOperState"; + } + + grouping inventory-network-type { + description + "Indicates the topology type to be inventory."; + container network-inventory { + presence "Indicates Network Inventory."; + description + "The presence of the container node indicates + Network Inventory."; + } + } + + grouping inventory-node-attributes { + description + "Augment used to define attach the node configuration"; + leaf name { + type string; + description + "The name of the node."; + } + leaf node-type { + type identityref { + base node-type; + } + config false; + description + "Node type."; + } + leaf is-virtual { + type boolean; + default "false"; + config false; + description + "Set to true if the node is virtual. + Set to false if the node is physical."; + } + leaf is-gateway { + type boolean; + default "false"; + config false; + description + "Set to true if the node is a gateway. + Set to false if the node is not a gateway."; + } + leaf gateway-ref { + type leafref { + path "../name"; + } + config false; + description + "gateway for endpoint device."; + } + leaf management-ipv4-address { + type inet:host; + description + "The IP address or DNS domain name of the device."; + } + leaf management-ipv6-address { + type inet:host; + description + "The IP address or DNS domain name of the device."; + } + leaf mac-address { + type yang:mac-address; + config false; + description + "The MAC address of the device."; + } + leaf mud-url { + type inet:uri; + config false; + description + "This is the MUD URL associated with the MUD device found + in a MUD file."; + } + leaf transparency-info { + type inet:uri; + config false; + description + "Link to software bill of material, + see draft-ietf-opsawg-sbom-access"; + } + leaf site { + type string; + description + "The site of the node."; + } + uses nw-inv-types:component-info; + uses nw-inv-types:components; + uses nw-inv-types:licenses; + uses geo:geo-location; + } + + grouping inventory-link-attributes { + description + "Augment used to define the inventory link attributes."; + list link { + key "link-id"; + description + "An inventory link connects a set of nodes via a set of + the respective node's termination points. "; + leaf link-id { + type yang:uuid; + description + "The identifier of a link in the topology. + A link is specific to a topology to which it belongs."; + } + leaf link-description { + type string; + config false; + description + "A textual description of the interface."; + } + leaf link-type { + type string; + config false; + description + "The type of the link."; + } + leaf-list ltp-ref { + type leafref { + path "../../nw:node/nt:termination-point/nt:tp-id"; + } + config false; + description + "The interfaces for this link."; + } + leaf oper-state { + type oper-state; + config false; + description + "The operational state for this link."; + } + } + } + + /* Main blocks */ + + augment "/nw:networks/nw:network/nw:network-types" { + description + "Introduces new network type for network inventory."; + uses inventory-network-type; + } + + augment "/nw:networks/nw:network/nw:node" { + when '/nw:networks/nw:network/nw:network-types/ + nw-inv:network-inventory' { + description + "Augmentation parameters apply only for network inventory."; + } + description + "Configuration parameters for inventory at the node + level."; + uses inventory-node-attributes; + } + + augment "/nw:networks/nw:network" { + when '/nw:networks/nw:network/nw:network-types/ + nw-inv:network-inventory' { + description + "Augmentation parameters apply only for network + inventory."; + } + description + "Augments inventory link information."; + uses inventory-link-attributes; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang new file mode 100644 index 000000000..dad3bc6c5 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang @@ -0,0 +1,111 @@ +module ietf-oam-test-sequence { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-oam-test-sequence"; + prefix "oamts"; + + import ietf-oam-unitary-test { + prefix "oamut"; + // Update the reference with the correct RFC number or other reference when assigned + //reference "RFCXXXX"; + } + + import ietf-schedule { prefix "schedule"; } // reference draft-ma-opsawg-ucl-acl + + organization + "IETF OPSAWG (Operations and Management Area Working Group)"; + + contact + "WG Web: + WG List: + Author: Luis Miguel Contreras Murillo + + Author: Victor Lopez + "; + description + "This module defines the 'oam-unitary-test' YANG model for activation of network diagnosis procedures. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + // RFC Ed.: update the date below with the date of RFC + // publication and remove this note. + // RFC Ed.: replace XXXX with actual RFC number and remove + // this note. + + revision "2023-07-10" { + description "Initial version"; + reference "RFCXXXX"; // Update with the correct RFC number when assigned + } + + // Data model definition + + container oam-test-sequence { + description "Container for executing a sequence of ietf-oam-unitary-tests N times."; + + list test-sequence { + key "name"; + description "List of test sequences."; + + leaf name { + type string; + description "Unique name for the test sequence."; + } + + list test-ref { + key "name"; + description "References to the ietf-oam-unitary-tests."; + + uses "oamut:oam-unitary-test"; + + leaf numexecutions { + type uint32; + default 1; + description "Number of times the test sequence should be executed."; + } + } + + uses schedule:period; + + uses schedule:recurrence; + + leaf test-squence-status { + type enumeration { + enum "planned" { + description "The test sequence is planned."; + } + enum "success" { + description "All tests in the sequence were successful."; + } + enum "failure" { + description "One or more tests in the sequence failed."; + } + enum "ongoing" { + description "The test sequence status is ongoing."; + } + enum "unknown" { + description "The test sequence status is unknown."; + } + enum "stop" { + description "The test sequenceis stopped."; + } + enum "finish" { + description "The test sequence is finished."; + } + } + config false; + description "Status of the test sequence execution."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang new file mode 100644 index 000000000..ac5352112 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang @@ -0,0 +1,109 @@ +module ietf-oam-unitary-test { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-oam-unitary-test"; + prefix "oamut"; + + // Import OAM models from RFCs RFC8531, RFC8532 and RFC8533 + import ietf-schedule { prefix "schedule"; } // reference draft-ma-opsawg-ucl-acl + + organization + "IETF OPSAWG (Operations and Management Area Working Group)"; + + contact + "WG Web: + WG List: + Author: Luis Miguel Contreras Murillo + + Author: Victor Lopez + "; + description + "This module defines the 'ietf-oam-unitary-test' YANG model for activation of network diagnosis procedures. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + // RFC Ed.: update the date below with the date of RFC + // publication and remove this note. + // RFC Ed.: replace XXXX with actual RFC number and remove + // this note. + + revision "2023-07-10" { + description + "Initial version"; + reference + "RFCXXXX: A YANG Data Model for Network Diagnosis by scheduling sequences of OAM tests"; // Update with the correct RFC number when assigned + } + + grouping oam-unitary-test { + description + "This grouping is defined for OAM unitary test for network diagnosis procedures."; + + leaf name { + type string; + description + "Name for the test."; + } + + choice test-type { + mandatory true; + description + "Choose the type of test."; + // Import OAM models from RFCs RFC8531, RFC8532 and RFC8533 + } + } + + container oam-unitary-tests { + description + "Container for OAM unitary tests activation for network diagnosis procedures."; + + list oam-unitary-test { + key name; + description + "List of OAM unitary tests activation for network diagnosis procedures."; + + uses oam-unitary-test; + + uses schedule:period; + + uses schedule:recurrence; + + leaf unitary-test-status { + type enumeration { + enum "planned" { + description "The test is planned."; + } + enum "configure" { + description "The test is configured."; + } + enum "ready" { + description "The test status is ready."; + } + enum "ongoing" { + description "The test is ongoing."; + } + enum "stop" { + description "The test is stopped."; + } + enum "finish" { + description "The test is finished."; + } + enum "error" { + description "The test has an error."; + } + } + description "Status of the test."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-03-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-07-07.yang similarity index 80% rename from experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-03-07.yang rename to experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-07-07.yang index a0e9691d7..e8e98965b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-03-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-07-07.yang @@ -8,24 +8,42 @@ module ietf-optical-impairment-topology { 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-te-topology { prefix "tet"; + reference + "RFC 8795: YANG Data Model for Traffic Engineering (TE) + Topologies"; } import ietf-te-types { prefix "te-types"; + reference + "RFC YYYY: Updated Common YANG Data Types for Traffic + Engineering"; } + /* Note: The RFC Editor will replace YYYY with the number assigned + to the RFC once draft-ietf-teas-rfc8776-update becomes an RFC.*/ + import ietf-layer0-types { prefix "l0-types"; + reference + "RFC ZZZZ: A YANG Data Model for Layer 0 Types"; } + /* Note: The RFC Editor will replace ZZZZ with the number assigned + to the RFC once draft-ietf-ccamp-rfc9093-bis becomes an RFC.*/ + organization "IETF CCAMP Working Group"; @@ -52,19 +70,6 @@ module ietf-optical-impairment-topology { "This module contains a collection of YANG definitions for impairment-aware optical networks. - Within this module, if the value of a mandatory attribute is - unknown, it MUST be reported using the empty type. - If an optional attribute is applicable but its value is unknown, - it MUST be reported using the empty type. - If an optional attribute is not applicable to an entity, it MUST - be omitted (not be present in the datastore). - - 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. - Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -82,7 +87,7 @@ module ietf-optical-impairment-topology { // this note // replace the revision date with the module publication date // the format is (year-month-day) - revision 2023-03-07 { + revision 2023-07-07 { description "Initial Version"; reference @@ -114,7 +119,6 @@ module ietf-optical-impairment-topology { description "List of carriers"; leaf carrier-id { type uint32; - config false; description "Identifier of the carrier"; } } @@ -156,34 +160,43 @@ module ietf-optical-impairment-topology { uses l0-types:frequency-range; } leaf actual-gain { - type l0-types:power-in-db-or-null; + type l0-types:gain-in-db-or-null; mandatory true ; - description ".."; + description + "The value of the gain provided by the amplification + stage of the optical amplifier."; } leaf tilt-target { type l0-types:decimal-2-digits-or-null; + units "dB"; mandatory true ; description "The tilt target defined between lower and upper frequency of the amplifier frequency range."; } leaf out-voa { - type l0-types:power-in-db-or-null; - units dB; + type l0-types:loss-in-db-or-null; mandatory true; - description ".."; + description + "Loss introduced by the Variable Optical Attenuator + (VOA) at the output of the amplification stage of + the amplifier, if present."; } leaf in-voa { - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; mandatory true; - description ".."; + description + "Loss introduced by the Variable Optical Attenuator + (VOA) at the input of the amplification stage of the + amplifier, if present"; } leaf total-output-power { - type l0-types:power-in-db-or-null; + type l0-types:power-in-dbm-or-null; mandatory true; description "It represent total output power measured in the range specified by the frequency-range. + Optical power is especially needed to re-compute/check consistency of span (fiber+ concentrated loss) loss value, with respect to loss/gain information on @@ -253,31 +266,32 @@ module ietf-optical-impairment-topology { description "loss coefficient of the fiber"; } leaf total-loss { - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; mandatory true ; description "includes all losses: fiber loss and conn-in and conn-out losses"; } - leaf pmd{ + leaf pmd { type l0-types:decimal-2-digits-or-null; - units sqrt(ps); + units "ps"; description "pmd of the fiber"; } leaf conn-in{ - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; description "connector-in"; } leaf conn-out{ - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; description "connector-out"; } } } - grouping roadm-express-path { + grouping roadm-common-path { description - "The optical impairments of a ROADM express path."; + "The optical impairments of a ROADM which are common to all + its paths (express path, add path or drop path)."; leaf roadm-pmd { type union { type decimal64 { @@ -286,85 +300,62 @@ module ietf-optical-impairment-topology { } type empty; } - units "ps/(km)^0.5"; + units "ps"; description - "Polarization Mode Dispersion"; + "Polarization Mode Dispersion (PMD), when known, or an + empty value when unknown."; } leaf roadm-cd { - type union { - type decimal64 { - fraction-digits 5; - } - type empty; - } + type l0-types:decimal-5-digits-or-null; units "ps/nm"; - description "Chromatic Dispersion"; + description "Chromatic Dispersion (CD)"; } leaf roadm-pdl { - type l0-types:power-in-db-or-null; - description "Polarization dependent loss"; + type l0-types:loss-in-db-or-null; + description "Polarization Dependent Loss (PDL)"; } leaf roadm-inband-crosstalk { - type l0-types:power-in-db-or-null; + type l0-types:decimal-2-digits-or-null; + units "dB"; description "In-band crosstalk, or coherent crosstalk, can occur in - components that can have multiple same wavelength inputs - with the inputs either routed to different output ports, - or all but 1 blocked"; + components that can have multiple same wavelength inputs + with the inputs either routed to different output ports, + or all but one blocked"; } leaf roadm-maxloss { - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; description - "This is the maximum expected add path loss from the - ROADM ingress to the ROADM egress - assuming no additional add path loss is added"; + "This is the maximum expected path loss from the + ROADM ingress to the ROADM egress + assuming no additional path loss is added"; } - } + } // grouping roadm-common-path + + grouping roadm-express-path { + description + "The optical impairments of a ROADM express path."; + uses roadm-common-path; + } // grouping roadm-express-path grouping roadm-add-path { - description "The optical impairments of a ROADM add path."; - leaf roadm-pmd { - type union { - type decimal64 { - fraction-digits 8; - range "0..max"; - } - type empty; - } - units "ps"; - description - "Polarization Mode Dispersion"; - } - leaf roadm-cd { - type union { - type decimal64 { - fraction-digits 5; - } - type empty; - } - units "ps/nm"; - description "Cromatic Dispersion"; - } - leaf roadm-pdl { - type l0-types:power-in-db-or-null; - description "Polarization dependent loss"; - } - leaf roadm-inband-crosstalk { - type l0-types:power-in-db-or-null; - description - "In-band crosstalk, or coherent crosstalk, + description + "The optical impairments of a ROADM add path."; + uses roadm-common-path { + refine roadm-inband-crosstalk { + description + "In-band crosstalk, or coherent crosstalk, can occur in components that can have multiple same wavelength inputs,with the inputs either routed to different output ports, - or all but 1 blocked. + or all but one blocked. + In the case of add path it is the total - of the add block - + egress WSS crosstalk contributions."; - } - leaf roadm-maxloss { - type l0-types:power-in-db-or-null; - description - "This is the maximum expected add path loss from + of the add block + egress WSS crosstalk contributions."; + } + refine roadm-maxloss { + description + "This is the maximum expected add path loss from the add/drop port input to the ROADM egress, assuming no additional add path loss is added. This is used to establish the minimum required @@ -376,95 +367,66 @@ module ietf-optical-impairment-topology { this loss value should be based on worst case expected amplifier gain due to ripple or gain uncertainty"; + } } leaf roadm-pmax { type l0-types:power-in-dbm-or-null; description "This is the maximum (per carrier) power level - permitted at the add block input ports, - that can be handled by the ROADM node. - This may reflect either add amplifier power - contraints or WSS adjustment limits. - Higher power transponders would need to have - their launch power reduced - to this value or lower"; + permitted at the add block input ports, + that can be handled by the ROADM node. + This may reflect either add amplifier power + contraints or WSS adjustment limits. + Higher power transponders would need to have + their launch power reduced + to this value or lower"; } leaf roadm-osnr { type l0-types:snr-or-null; description "Optical Signal-to-Noise Ratio (OSNR). - If the add path contains the ability to adjust the - carrier power levels into an add path amplifier - (if present) to a target value, - this reflects the OSNR contribution of the - add amplifier assuming this target value is obtained. - The worst case OSNR based on the input power and - NF calculation method, and this value, should be used - (if both are defined)."; + If the add path contains the ability to adjust the + carrier power levels into an add path amplifier + (if present) to a target value, + this reflects the OSNR contribution of the + add amplifier assuming this target value is obtained. + The worst case OSNR based on the input power and + NF calculation method, and this value, should be used + (if both are defined)."; } leaf roadm-noise-figure { - type union { - type decimal64 { - fraction-digits 5; - } - type empty; - } + type l0-types:decimal-5-digits-or-null; units "dB"; description "Noise Figure. If the add path contains an amplifier, - this is the noise figure of that amplifier inferred - to the add port. - This permits add path OSNR calculation based - on the input power levels to the add block - without knowing the ROADM path losses to - the add amplifier."; + this is the noise figure of that amplifier inferred + to the add port. + This permits add path OSNR calculation based + on the input power levels to the add block + without knowing the ROADM path losses to + the add amplifier."; } - } + } // grouping roadm-add-path grouping roadm-drop-path { - description "roadm drop block path optical impairments"; - leaf roadm-pmd { - type union { - type decimal64 { - fraction-digits 8; - range "0..max"; - } - type empty; - } - units "ps/(km)^0.5"; - description - "Polarization Mode Dispersion"; - } - leaf roadm-cd { - type union { - type decimal64 { - fraction-digits 5; - } - type empty; - } - units "ps/nm"; - description "Chromatic Dispersion"; - } - leaf roadm-pdl { - type l0-types:power-in-db-or-null; - description "Polarization dependent loss"; - } - leaf roadm-inband-crosstalk { - type l0-types:power-in-db-or-null; - description - "In-band crosstalk, or coherent crosstalk, can occur in + description + "The optical impairments of a ROADM drop path"; + uses roadm-common-path { + refine roadm-inband-crosstalk { + description + "In-band crosstalk, or coherent crosstalk, can occur in components that can have multiple same wavelength inputs,with the inputs either routed to different - output ports,or all but 1 blocked. + output ports,or all but one blocked. + In the case of drop path it is the total of the ingress to drop e.g. WSS and drop block crosstalk contributions."; - } - leaf roadm-maxloss { - type l0-types:power-in-db-or-null; - description - "The net loss from the ROADM input,to the output + } + refine roadm-maxloss { + description + "The net loss from the ROADM input,to the output of the drop block. If ROADM ingress to drop path includes an amplifier, the amplifier gain reduces the net loss. @@ -475,132 +437,129 @@ module ietf-optical-impairment-topology { including amplifier gain ripple or uncertainty. It is the maximum output power of the drop amplifier."; + } } leaf roadm-minloss { - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; description "The net loss from the ROADM input, to the - output of the drop block. - If this ROADM ingress to drop path includes - an amplifier,the amplifier gain reduces the net loss. - This is before any additional drop path attenuation - that may be required due to drop amplifier power - contraints. - The min value correspond to best case expected loss, - including amplifier gain ripple or uncertainty."; + output of the drop block. + If this ROADM ingress to drop path includes + an amplifier,the amplifier gain reduces the net loss. + This is before any additional drop path attenuation + that may be required due to drop amplifier power + contraints. + The min value correspond to best case expected loss, + including amplifier gain ripple or uncertainty."; } leaf roadm-typloss { - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; description "The net loss from the ROADM input, - to the output of the drop block. - If this ROADM ingress to drop path - includes an amplifier, - the amplifier gain reduces the net loss. - This is before any additional drop path - attenuation - that may be required due to drop amplifier - power contraints. - The typ value correspond to typical case - expected loss."; + to the output of the drop block. + If this ROADM ingress to drop path + includes an amplifier, + the amplifier gain reduces the net loss. + This is before any additional drop path + attenuation + that may be required due to drop amplifier + power contraints. + The typ value correspond to typical case + expected loss."; } leaf roadm-pmin { type l0-types:power-in-dbm-or-null; description "If the drop path has additional loss - that is added, for example, - to hit target power levels into a - drop path amplifier, or simply, to reduce the - power of a strong carrier - (due to ripple,for example), - then the use of the ROADM input power levels and - the above drop losses is not appropriate. - This parameter corresponds to the min per - carrier power levels - expected at the output of the drop block. - A detail example of the comparison using - these parameters is - detailed in section xxx of the document yyy."; + that is added, for example, + to hit target power levels into a + drop path amplifier, or simply, to reduce the + power of a strong carrier + (due to ripple,for example), + then the use of the ROADM input power levels and + the above drop losses is not appropriate. + This parameter corresponds to the min per + carrier power levels + expected at the output of the drop block. + A detail example of the comparison using + these parameters is + detailed in section xxx of the document yyy."; } leaf roadm-pmax { type l0-types:power-in-dbm-or-null; description "If the drop path has additional loss that is added, - for example, to hit target power levels into a - drop path amplifier,or simply,to reduce the power - of a strong carrier(due to ripple,for example), - then the use of the ROADM input power levels and the - above drop losses is not appropriate. - This parameter corresponds to the best case per - carrier power levels expected at the output of the - drop block. - A detail example of the comparison using - these parameters - is detailed in section xxx of the document yyy"; + for example, to hit target power levels into a + drop path amplifier,or simply,to reduce the power + of a strong carrier(due to ripple,for example), + then the use of the ROADM input power levels and the + above drop losses is not appropriate. + This parameter corresponds to the best case per + carrier power levels expected at the output of the + drop block. + A detail example of the comparison using + these parameters + is detailed in section xxx of the document yyy"; } leaf roadm-ptyp { type l0-types:power-in-dbm-or-null; description "If the drop path has additional loss that is added, - for example, to hit target power levels into a - drop path amplifier,or simply,to reduce the - power of a strong carrier(due to ripple,for example), - then the use of the ROADM input power levels and - the above drop losses is not appropriate. - This parameter corresponds to the typical case - per carrier power levels expected - at the output of the drop block."; + for example, to hit target power levels into a + drop path amplifier,or simply,to reduce the + power of a strong carrier(due to ripple,for example), + then the use of the ROADM input power levels and + the above drop losses is not appropriate. + This parameter corresponds to the typical case + per carrier power levels expected + at the output of the drop block."; } leaf roadm-osnr { type l0-types:snr-or-null; description "Optical Signal-to-Noise Ratio (OSNR). - Expected OSNR contribution of the drop path - amplifier(if present) - for the case of additional drop path loss - (before this amplifier) - in order to hit a target power level (per carrier). - If both, the OSNR based on the ROADM - input power level - (Pcarrier = - Pref+10Log(carrier-baudrate/ref-baud) + delta-power) - and the input inferred NF(NF.drop), - and this OSNR value, are defined, - the minimum value between these two should be used"; + Expected OSNR contribution of the drop path + amplifier(if present) + for the case of additional drop path loss + (before this amplifier) + in order to hit a target power level (per carrier). + If both, the OSNR based on the ROADM + input power level + (Pcarrier = + Pref+10Log(carrier-baudrate/ref-baud) + delta-power) + and the input inferred NF(NF.drop), + and this OSNR value, are defined, + the minimum value between these two should be used"; } leaf roadm-noise-figure { - type union { - type decimal64 { - fraction-digits 5; - } - type empty; - } + type l0-types:decimal-5-digits-or-null; units "dB"; description "Drop path Noise Figure. - If the drop path contains an amplifier, - this is the noise figure - of that amplifier, inferred to the - ROADM ingress port. - This permits to determine - amplifier OSNR contribution - without having to specify the - ROADM node's losses to that amplifier. - This applies for the case of no - additional drop path loss, - before the amplifier, in order to reduce the power - of the carriers to a target value"; - } - } - - grouping concentratedloss-params{ + If the drop path contains an amplifier, + this is the noise figure + of that amplifier, inferred to the + ROADM ingress port. + This permits to determine + amplifier OSNR contribution + without having to specify the + ROADM node's losses to that amplifier. + This applies for the case of no + additional drop path loss, + before the amplifier, in order to reduce the power + of the carriers to a target value"; + } + } // grouping roadm-drop-path + + grouping concentratedloss-params { description "concentrated loss"; container concentratedloss{ description "concentrated loss"; leaf loss { - type l0-types:power-in-db-or-null; + type l0-types:loss-in-db-or-null; mandatory true; - description ".."; + description + "Loss introduced by the concentrated loss element."; } } } @@ -628,12 +587,7 @@ module ietf-optical-impairment-topology { /tet:te-link-attributes/OMS-attributes /equalization-mode='power-spectral-density'"; leaf nominal-power-spectral-density{ - type union { - type decimal64 { - fraction-digits 16; - } - type empty; - } + type l0-types:decimal-16-digits-or-null; units W/Hz ; description " Reference power spectral density after @@ -668,14 +622,14 @@ module ietf-optical-impairment-topology { grouping otsi-group { description "OTSiG definition , representing client - digital information stream supported by 1 or more OTSi"; + digital information stream supported by one or more OTSi"; list otsi { key "otsi-carrier-id"; config false; description - "list of OTSi contained in 1 OTSiG. - The list could also be of only 1 element"; + "list of OTSi contained in one OTSiG. + The list could also be of only one element"; leaf otsi-carrier-id { type uint16; description "OTSi carrier-id"; @@ -687,7 +641,8 @@ module ietf-optical-impairment-topology { } description "OTSi carrier frequency, equivalent to the - actual configured transmitter frequency"; + actual configured transmitter frequency, when known, or + an empty value when unknown."; } leaf-list e2e-mc-path-id { type uint16; @@ -697,11 +652,11 @@ module ietf-optical-impairment-topology { different optical impairments. This list is meaningful in case the OTSi can be associated - with multiple NMC paths + with multiple end-to-end Media Channel (e2e-MC) paths (e.g., when OPS protection is configured). The list can be empty when the OTSi has only one - NMC path."; + e2e-MC path."; } } // OTSi list } // OTSiG grouping @@ -717,13 +672,8 @@ module ietf-optical-impairment-topology { "The top level container for the list of media channel groups."; list media-channel-group { - key "i"; description "The list of media channel groups"; - leaf i { - type int16; - description "index of media channel group member"; - } list media-channels { // key "flexi-n"; description @@ -734,7 +684,7 @@ module ietf-optical-impairment-topology { leaf otsi-group-ref { type leafref { - path "/nw:networks/nw:network/otsi-information/" + + path "/nw:networks/nw:network/otsis/" + "otsi-group/otsi-group-id"; } description @@ -743,11 +693,12 @@ module ietf-optical-impairment-topology { } list otsi-ref { description - "The list of references to the OTSis and their NMC - paths within the OTSiG carried by this media channel."; + "The list of references to the OTSis and their + end-to-end Media Channel (e2e-MC) paths within the + OTSiG carried by this media channel."; leaf otsi-carrier-ref { type leafref { - path "/nw:networks/nw:network/otsi-information/" + + path "/nw:networks/nw:network/otsis/" + "otsi-group[otsi-group-id=current()" + "/../../otsi-group-ref]/" + "otsi/otsi-carrier-id" ; @@ -758,7 +709,7 @@ module ietf-optical-impairment-topology { } leaf-list e2e-mc-path-ref { type leafref { - path "/nw:networks/nw:network/otsi-information/" + + path "/nw:networks/nw:network/otsis/" + "otsi-group[otsi-group-id=current()" + "/../../otsi-group-ref]/" + "otsi[otsi-carrier-id=current()" + @@ -807,7 +758,11 @@ module ietf-optical-impairment-topology { type empty; } description - "unique id of the element if it exists"; + "Unique id of the element, if it exists and it is known. + + When unknown, an empty value is reported. + + When it does not exist, the attribute is not present."; } container reverse-element-ref { description @@ -854,11 +809,12 @@ module ietf-optical-impairment-topology { grouping otsi-ref { description "References to an OTSi. + This grouping is intended to be reused within the transceiver's list only."; leaf otsi-group-ref { type leafref { - path "../../../../../../otsi-information/otsi-group/" + + path "../../../../../../otsis/otsi-group/" + "otsi-group-id"; } description @@ -866,7 +822,7 @@ module ietf-optical-impairment-topology { } leaf otsi-ref { type leafref { - path "../../../../../../otsi-information/otsi-group" + + path "../../../../../../otsis/otsi-group" + "[otsi-group-id=current()/../otsi-group-ref]/otsi/" + "otsi-carrier-id"; } @@ -874,7 +830,10 @@ module ietf-optical-impairment-topology { "The OTSi generated by the transceiver's transmitter."; } } -/* Data nodes */ + +/* + * Data nodes + */ augment "/nw:networks/nw:network/nw:network-types" + "/tet:te-topology" { @@ -884,6 +843,8 @@ module ietf-optical-impairment-topology { "Indicates an impairment-aware topology of optical networks"; description "Container to identify impairment-aware topology type"; + reference + "RFC8345: A YANG Data Model for Network Topologies."; } } @@ -896,7 +857,7 @@ module ietf-optical-impairment-topology { } description "Network augmentation for optical impairments data."; - container otsi-information { + container otsis { presence "When present, it indicates that OTSi information is reported."; @@ -1016,7 +977,7 @@ module ietf-optical-impairment-topology { } uses l0-types:common-transceiver-configured-param; container outgoing-otsi { - when "../../../../../otsi-information" { + when "../../../../../otsis" { description "It applies only when the OTSi information is reported."; @@ -1026,7 +987,7 @@ module ietf-optical-impairment-topology { uses otsi-ref; } container incoming-otsi { - when "../../../../../otsi-information" { + when "../../../../../otsis" { description "It applies only when the OTSi information is reported."; @@ -1293,10 +1254,11 @@ module ietf-optical-impairment-topology { leaf roadm-path-impairments { type leafref { path "../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id"; + + "roadm-path-impairments/roadm-path-impairments-id"; } - description "pointer to the list set of ROADM optical - impairments"; + config false; + description + "Pointer to the list set of ROADM optical impairments"; } } // augmentation connectivity-matrices information-source @@ -1315,10 +1277,11 @@ module ietf-optical-impairment-topology { leaf roadm-path-impairments { type leafref { path "../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id"; + + "roadm-path-impairments/roadm-path-impairments-id"; } - description "pointer to the list set of ROADM optical - impairments"; + config false; + description + "Pointer to the list set of ROADM optical impairments"; } } // augmentation connectivity-matrix information-source @@ -1414,7 +1377,6 @@ module ietf-optical-impairment-topology { path "../../../../../../../tet:te/tet:te-node-attributes/" + "roadm-path-impairments/roadm-path-impairments-id"; } - config false; description "Pointer to ROADM optical impairments of the ROADM path between this secondary 'from' LTP and the 'to' LTP of @@ -1470,7 +1432,6 @@ module ietf-optical-impairment-topology { path "../../../../../../../tet:te/tet:te-node-attributes/" + "roadm-path-impairments/roadm-path-impairments-id"; } - config false; description "Pointer to ROADM optical impairments of the ROADM path between the 'from' LTP of this connectivity matrix entry @@ -1572,7 +1533,6 @@ module ietf-optical-impairment-topology { path "../../../../../tet:te-node-attributes/" + "roadm-path-impairments/roadm-path-impairments-id" ; } - config false; description "pointer to the list set of ROADM optical impairments"; } @@ -1581,7 +1541,6 @@ module ietf-optical-impairment-topology { path "../../../../../tet:te-node-attributes/" + "roadm-path-impairments/roadm-path-impairments-id" ; } - config false; description "pointer to the list set of ROADM optical impairments"; } @@ -1616,7 +1575,6 @@ module ietf-optical-impairment-topology { path "../../../../../tet:te-node-attributes/" + "roadm-path-impairments/roadm-path-impairments-id" ; } - config false; description "pointer to the list set of ROADM optical impairments"; } @@ -1625,7 +1583,6 @@ module ietf-optical-impairment-topology { path "../../../../../tet:te-node-attributes/" + "roadm-path-impairments/roadm-path-impairments-id" ; } - config false; description "pointer to the list set of ROADM optical impairments"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm-types@2023-03-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm-types@2023-07-04.yang similarity index 84% rename from experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm-types@2023-03-01.yang rename to experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm-types@2023-07-04.yang index 8268974c4..847b3b132 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm-types@2023-03-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm-types@2023-07-04.yang @@ -12,7 +12,22 @@ module ietf-optical-resource-pm-types { WG List: Editor: Chaode Yu - "; + + + Editor: Fabio Peruzzini + + + Editor: Yanlei Zheng + + + Editor: Victor Lopez + + + Editor: Italo Busi + + + Editor: Aihua Guo + "; description "This module defines types model for optical performance @@ -41,7 +56,7 @@ module ietf-optical-resource-pm-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-03-01 { + revision 2023-07-04 { description "Initial revision."; } @@ -120,4 +135,9 @@ module ietf-optical-resource-pm-types { base severity; } + identity layer-rate-type { + description + "It is used to indicate the layer rate of network element when + retrieving the pm parameters supported"; + } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm@2023-03-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm@2023-07-04.yang similarity index 77% rename from experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm@2023-03-01.yang rename to experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm@2023-07-04.yang index 258f7c181..608e70980 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm@2023-03-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-optical-resource-pm@2023-07-04.yang @@ -19,7 +19,22 @@ module ietf-optical-resource-pm { WG List: Editor: Chaode Yu - "; + + + Editor: Fabio Peruzzini + + + Editor: Yanlei Zheng + + + Editor: Victor Lopez + + + Editor: Italo Busi + + + Editor: Aihua Guo + "; description "This module defines a model for optical performance @@ -47,7 +62,7 @@ module ietf-optical-resource-pm { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-03-01 { + revision 2023-07-04 { description "Initial revision."; } @@ -68,12 +83,12 @@ module ietf-optical-resource-pm { description "resources' PM capabilities related information"; - list resource { + list resource-list { description "list of resource instances"; - key resource-id; + key resource; - leaf resource-id { + leaf resource { type union { type instance-identifier { require-instance false; @@ -94,7 +109,47 @@ module ietf-optical-resource-pm { } } - //TO BE ADDED: holding-time, capabilities etc. + leaf holding-time { + description + "Contains the time period in hours within which 24h PM + data records and 15min PM data records may be retrieved. + If the domain controller does not store PM data it is the + time supported in the NE"; + + type uint8; + units "hour"; + } + + list pm-parameter-list { + must "../optrpm:resource-type=optrpm-types:network-element"; + key "layer-rate"; + + leaf layer-rate { + description + "Layer rate of ME"; + + type identityref { + base optrpm-types:layer-rate-type; + } + } + + leaf-list indicator-name { + type string; + } + } + + leaf-list sub-resources { + description + "the identifier of the performace monitoring point of this + resource. If the resource is a NE, the sub-resource should + be termination point. If the resource is a termination + point contained in this NE, the sub-resource should be the + logic channel on this TP"; + + type leafref { + path "../optrpm:resource"; + } + } } } } @@ -129,14 +184,14 @@ module ietf-optical-resource-pm { type yang:uuid; } - leaf resource-id { + leaf resource { description "the identifier of network resource on which the performance monitoring task is running"; type leafref { path "/optrpm:performance-monitoring/optrpm:resources" + - "/optrpm:resource/optrpm:resource-id"; + "/optrpm:resource-list/optrpm:resource"; } } @@ -269,20 +324,21 @@ module ietf-optical-resource-pm { container tcas { description "TCA configuration on the network resources."; + list tca { description "List of TCA configuration instances"; - key "resource-id"; + key "resource"; - leaf resource-id { + leaf resource { description "the identifier of network resource on which threshold is configured for TCA purpose"; type leafref { path "/optrpm:performance-monitoring/optrpm:resources" + - "/optrpm:resource/optrpm:resource-id"; + "/optrpm:resource-list/optrpm:resource"; } } @@ -477,7 +533,7 @@ module ietf-optical-resource-pm { type leafref { path "/optrpm:performance-monitoring/optrpm:resources" + - "/optrpm:resource/optrpm:resource-id"; + "/optrpm:resource-list/optrpm:resource"; } } } @@ -509,7 +565,7 @@ module ietf-optical-resource-pm { type leafref { path "/optrpm:performance-monitoring/optrpm:resources" + - "/optrpm:resource/optrpm:resource-id"; + "/optrpm:resource-list/optrpm:resource"; } } @@ -543,6 +599,72 @@ module ietf-optical-resource-pm { } } + rpc clear-performance-monitoring-data { + input { + description + "This operation clears (reset) the PM registers for a list of + Measurement Points. Within the request for each Measurement + Point, it is possible to specify the granularity (15min, 24hr, + NA) and location (nearEnd and/or farEnd and/or bidirectional) + for the PM registers that are to be reset."; + + leaf-list resources { + description + "the identifier of measurement points to clear PM data"; + + type leafref { + path "/optrpm:performance-monitoring/optrpm:resources" + + "/optrpm:resource-list/optrpm:resource"; + } + } + } + output { + leaf-list failed-resources { + description + "the identifier of measurement points which are failed to + clear PM data. An empty list indicates that the total + request was successful."; + + type leafref { + path "/optrpm:performance-monitoring/optrpm:resources" + + "/optrpm:resource-list/optrpm:resource"; + } + } + } + } + + rpc get-profile-associated-termination-points { + input { + description + "This operation gets the set of TPs that are associated with + a TCA parameter profile."; + + leaf profile-id { + description + "the identifier of profile which the client want to + retrieve"; + + type leafref { + path "/optrpm:performance-monitoring/optrpm:tca-management" + + "/optrpm:profiles/optrpm:profile/optrpm:profile-id"; + } + } + + } + output { + leaf-list resource-list { + description + "Provides the set of Resources associated with the profile + provided."; + + type leafref { + path "/optrpm:performance-monitoring/optrpm:resources" + + "/optrpm:resource-list/optrpm:resource"; + } + } + } + } + grouping pm-data-instance-grouping { description "grouping for common attributes of performance data"; @@ -553,9 +675,10 @@ module ietf-optical-resource-pm { type leafref { path "/optrpm:performance-monitoring/optrpm:resources" + - "/optrpm:resource/optrpm:resource-id"; + "/optrpm:resource-list/optrpm:resource"; } } + leaf collect-time { description "the time of this data is collected"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2022-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2023-07-06.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2022-10-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2023-07-06.yang index 616fade5d..315cfc9c4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2022-10-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2023-07-06.yang @@ -38,6 +38,7 @@ module ietf-otn-topology { Editor: Italo Busi + Editor: Xufeng Liu @@ -52,8 +53,8 @@ module ietf-otn-topology { data model. The model fully conforms to the Network Management Datastore Architecture (NMDA). - Copyright (c) 2022 IETF Trust and the persons - identified as authors of the code. All rights reserved. + 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 @@ -63,9 +64,15 @@ module ietf-otn-topology { (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."; + 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 2022-10-12 { + revision 2023-07-06 { description "Initial Revision"; reference @@ -75,6 +82,33 @@ module ietf-otn-topology { // information and remove this note } + /* + * Groupings + */ + + grouping label-range-info { + description + "OTN technology-specific label range related information with + a presence container indicating that the label range is an + OTN technology-specific label range. + + This grouping SHOULD be used together with the + otn-label-start-end and otn-label-step groupings to provide + OTN technology-specific label information to the models which + use the label-restriction-info grouping defined in the module + ietf-te-types."; + uses l1-types:otn-label-range-info { + refine otn-label-range { + presence + "Indicates the label range is an OTN label range. + + This container MUST NOT be present if there are other + presence containers or attributes indicating another type + of label range."; + } + } + } + /* * Data nodes */ @@ -84,22 +118,34 @@ module ietf-otn-topology { container otn-topology { presence "indicates a topology type of Optical Transport Network (OTN)-electrical layer."; - description "otn topology type"; + description "OTN topology type"; + } + description "augment network types to include OTN newtork"; + } + + augment "/nw:networks/nw:network/nw:node/tet:te" + + "/tet:te-node-attributes" { + when "../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description "Augment only for OTN network."; + } + description "Augment TE node attributes."; + container otn-node { + presence "The TE node is an OTN node."; + description + "Introduce new TE node type for OTN node."; } - description "augment network types to include otn newtork"; } augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes" { when "../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { - description "Augment only for otn network."; + description "Augment only for OTN network."; } description "Augment link configuration"; container otn-link { - presence - "When present, indicates that the Link is an OTN Link."; description "Attributes of the OTN Link."; leaf odtu-flex-type { @@ -145,14 +191,11 @@ module ietf-otn-topology { + "tet:te" { when "../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { - description "Augment only for otn network"; + description "Augment only for OTN network"; } description "OTN TP attributes config in ODU topology."; container otn-ltp { - presence - "When present, indicates that the Link Termination Point - (LTP) is an OTN-capable LTP."; description "Attributes of the OTN Link Termination Point (LTP)."; leaf odtu-flex-type { @@ -456,7 +499,7 @@ module ietf-otn-topology { augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "tet:max-link-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { when "../../../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { description @@ -465,20 +508,18 @@ module ietf-otn-topology { } description "Augment maximum TE bandwidth for the TE link"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; } } augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "tet:max-resv-link-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { when "../../../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { description @@ -487,20 +528,18 @@ module ietf-otn-topology { } description "Augment maximum reservable TE bandwidth for the TE link"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; } } augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "tet:unreserved-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { when "../../../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { description @@ -509,15 +548,14 @@ module ietf-otn-topology { } description "Augment unreserved TE bandwidth for the TE Link"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; } } + augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:interface-switching-capability/" @@ -545,7 +583,7 @@ module ietf-otn-topology { augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:max-link-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { when "../../../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { description @@ -555,20 +593,18 @@ module ietf-otn-topology { description "Augment maximum TE bandwidth for the TE link information source"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; } } augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:max-resv-link-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { when "../../../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { description @@ -578,20 +614,17 @@ module ietf-otn-topology { description "Augment maximum reservable TE bandwidth for the TE link information-source"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; } } - augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:unreserved-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { when "../../../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { description @@ -601,13 +634,11 @@ module ietf-otn-topology { description "Augment unreserved TE bandwidth of the TE link information source"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; } } @@ -633,52 +664,46 @@ module ietf-otn-topology { augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:max-link-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { description "Augment maximum TE bandwidth the TE link template"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; } } augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:max-resv-link-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { description "Augment maximum reservable TE bandwidth for the TE link template."; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; } } augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:unreserved-bandwidth/" - + "tet:te-bandwidth/tet:technology" { + + "tet:te-bandwidth" { description "Augment unreserved TE bandwidth the TE link template"; - case otn { - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; } } @@ -698,7 +723,7 @@ module ietf-otn-topology { description "Augment TE label range information for the TE node connectivity matrices."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -714,7 +739,7 @@ module ietf-otn-topology { description "Augment TE label range information for the source LTP of the connectivity matrix entry."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -730,7 +755,7 @@ module ietf-otn-topology { description "Augment TE label range information for the destination LTP of the connectivity matrix entry."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -746,7 +771,7 @@ module ietf-otn-topology { description "Augment TE label range information for the TE node connectivity matrices information source."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -762,7 +787,7 @@ module ietf-otn-topology { description "Augment TE label range information for the source LTP of the connectivity matrix entry information source."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -778,7 +803,7 @@ module ietf-otn-topology { description "Augment TE label range information for the destination LTP of the connectivity matrix entry information source."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -794,7 +819,7 @@ module ietf-otn-topology { description "Augment TE label range information for the TTP Local Link Connectivities."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -811,7 +836,7 @@ module ietf-otn-topology { description "Augment TE label range information for the TTP Local Link Connectivity entry."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nt:link/tet:te/" @@ -825,7 +850,7 @@ module ietf-otn-topology { } description "Augment TE label range information for the TE link."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/nw:network/nt:link/tet:te/" @@ -840,7 +865,7 @@ module ietf-otn-topology { description "Augment TE label range information for the TE link information source."; - uses l1-types:otn-label-range-info; + uses label-range-info; } augment "/nw:networks/tet:te/tet:templates/" @@ -848,12 +873,13 @@ module ietf-otn-topology { + "tet:label-restrictions/tet:label-restriction" { description "Augment TE label range information for the TE link template."; - uses l1-types:otn-label-range-info; + uses label-range-info; } /* * Augment TE label */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:label-restrictions/tet:label-restriction/" @@ -950,6 +976,7 @@ module ietf-otn-topology { uses l1-types:otn-label-hop; } } + augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:optimizations/tet:algorithm/tet:metric/" @@ -1122,7 +1149,6 @@ module ietf-otn-topology { uses l1-types:otn-label-start-end; } } - augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:connectivity-matrix/tet:to/" @@ -1478,6 +1504,7 @@ module ietf-otn-topology { uses l1-types:otn-label-step; } } + augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:connectivity-matrix/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-sav@2023-05-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-sav@2023-05-20.yang index 9c23c499d..270c9366b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-sav@2023-05-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-sav@2023-05-20.yang @@ -23,21 +23,27 @@ module ietf-sav { fully conforms to the Network Management Datastore Architecture (NMDA). - Copyright (c) 2023 IETF Trust and the persons identified - As authors of the code. All rights reserved. + 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. + + 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 Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions + 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."; reference "RFC XXXX: A YANG Data Model For SAV Management."; + revision 2023-05-20 { description "Initial revision."; @@ -223,7 +229,6 @@ module ietf-sav { } /* Augments */ - augment "/if:interfaces/if:interface" { description "SAV configuration of incoming interfaces."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-06-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-07-10.yang similarity index 95% rename from experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-06-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-07-10.yang index d71076808..776e4a504 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-06-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-07-10.yang @@ -43,7 +43,6 @@ module ietf-te-packet-types { 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 @@ -55,7 +54,7 @@ module ietf-te-packet-types { (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - revision 2023-06-23 { + revision 2023-07-10 { description "Added common TE packet identities: - bandwidth-profile-type. @@ -558,49 +557,43 @@ module ietf-te-packet-types { } description "Type of Bandwidth Profile."; } - leaf cir { type uint64; units "bits/second"; + mandatory true; description - "Committed Information Rate in kilobits per second."; + "Committed Information Rate (CIR)."; + } + leaf cbs { + type uint64; + units "bits/second"; + mandatory true; + description + "Committed Burst Size (CBS)."; } - leaf eir { + type uint64; + units "bits/second"; + description + "Excess Information Rate (EIR)."; + } + leaf ebs { type uint64; units "bytes"; - /* - Need to indicate that EIR is not supported by RFC 2697 - - must - - '../bw-profile-type = "etht-types:mef-10-bwp" or ' + - '../bw-profile-type = "etht-types:rfc-2698-bwp" or ' + - '../bw-profile-type = "etht-types:rfc-4115-bwp"' - - must - '../bw-profile-type != "etht-types:rfc-2697-bwp"' - */ description - "Excess Information Rate in kilobits per second. - - In case of RFC 2698: PIR = CIR + EIR"; + "Excess Burst Size (EBS)."; } - - leaf cbs { + leaf pir { type uint64; units "bits/second"; description - "Committed Burst Size."; + "Peak Information Rate (PIR)."; } - - leaf ebs { + leaf pbs { type uint64; units "bytes"; description - "Excess Burst Size. - - In case of RFC 2698: PBS = CBS + EBS"; + "Peak Burst Size (PBS)."; } } @@ -614,8 +607,7 @@ module ietf-te-packet-types { type uint64; units "bits/second"; description - "Available bandwith value expressed in kilobits per - second"; + "Available bandwith value."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang index ef7831ffe..85ed34180 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang @@ -381,6 +381,7 @@ module ietf-te-types { "Enumerated type for specifying the direction of a link on a node."; } + typedef te-metric { type uint32; description @@ -771,7 +772,6 @@ module ietf-te-types { RFC 7570: Label Switched Path (LSP) Attribute in the Explicit Route Object (ERO)"; } - identity boundary-rerouting-desired { base lsp-attributes-flags; description @@ -820,7 +820,6 @@ module ietf-te-types { RFC 7570: Label Switched Path (LSP) Attribute in the Explicit Route Object (ERO)"; } - identity contiguous-lsp-desired { base lsp-attributes-flags; description @@ -909,6 +908,7 @@ module ietf-te-types { "RFC 7260: GMPLS RSVP-TE Extensions for Operations, Administration, and Maintenance (OAM) Configuration"; } + identity srlg-collection-desired { base lsp-attributes-flags; description @@ -1005,6 +1005,7 @@ module ietf-te-types { "A compound link protection type derived from the underlay TE tunnel protection configuration supporting the TE link."; } + identity association-type { description "Base identity for the tunnel association."; @@ -1341,12 +1342,12 @@ module ietf-te-types { description "Tunnel's state is up."; } + identity tunnel-state-down { base tunnel-state-type; description "Tunnel's state is down."; } - identity lsp-state-type { description "Base identity for TE LSP states."; @@ -1443,7 +1444,6 @@ module ietf-te-types { description "No LSP affected by a failure is restored."; } - identity lsp-restoration-restore-any { base lsp-restoration-type; description @@ -1725,6 +1725,7 @@ module ietf-te-types { "RFC 4427: Recovery (Protection and Restoration) Terminology for Generalized Multi-Protocol Label Switching (GMPLS)"; } + identity action-forced-switch { base protection-external-commands; description @@ -1965,12 +1966,12 @@ module ietf-te-types { "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet Forum and G.8011 Ethernet Service Switching"; } + identity path-signaling-type { description "Base identity from which specific LSP path setup types are derived."; } - identity path-setup-static { base path-signaling-type; description @@ -2211,7 +2212,6 @@ module ietf-te-types { description "Base identity for SRLG path computation."; } - identity srlg-ignore { base path-computation-srlg-type; description @@ -2253,13 +2253,13 @@ module ietf-te-types { reference "Section 7.5 of RFC5440"; } + identity path-computation-error-no-topology { base path-computation-error-reason; description "Path computation has failed because there is no topology with the provided topology-identifier."; } - identity path-computation-error-no-dependent-server { base path-computation-error-reason; description @@ -2404,7 +2404,6 @@ module ietf-te-types { https://www.iana.org/assignments/pcep/pcep.xhtml"; } - identity path-computation-error-brpc-chain-unavailable { base path-computation-error-no-dependent-server; description @@ -2541,6 +2540,7 @@ module ietf-te-types { (PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architecture."; } + identity svec-of-minimize-shared-link { base svec-objective-function-type; description @@ -2733,6 +2733,7 @@ module ietf-te-types { /** * TE performance metrics groupings **/ + grouping performance-metrics-one-way-delay-loss { description "Performance Metrics (PM) information in real time that can @@ -3021,6 +3022,7 @@ module ietf-te-types { } } } + /** * TE tunnel generic groupings **/ diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-modif@2023-03-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-modif@2023-03-08.yang index 78fe74a78..3f539f329 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-modif@2023-03-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-modif@2023-03-08.yang @@ -642,6 +642,7 @@ module ietf-yang-push-modif { uses datastore-criteria; } } + augment "/sn:subscription-started" { description "This augmentation adds datastore-specific objects to