From d2faa83d1219dcb37291b7ca8babdbac3a667df7 Mon Sep 17 00:00:00 2001 From: Joe Clarke Date: Mon, 25 Nov 2024 19:13:11 -0500 Subject: [PATCH] yc.o sync (#1599) --------- Co-authored-by: Miroslav Kovac Co-authored-by: Joe Clarke --- .../ietf-alto@2023-02-23.yang | 1 + .../ietf-amm@2024-07-03.yang | 3 + ...11.yang => ietf-bfd-large@2024-11-23.yang} | 2 +- .../ietf-coreconf@2024-03-04.yang | 1 + ...ection-manifest-statistics@2024-07-02.yang | 2 + ...f-data-collection-manifest@2024-07-02.yang | 1 + .../ietf-dtnma-agent@2024-07-03.yang | 2 + .../ietf-eth-service-oam@2024-03-04.yang | 33 +- .../ietf-eth-te-topology@2023-09-28.yang | 28 +- .../ietf-eth-tran-service@2024-01-11.yang | 7 +- .../ietf-eth-tran-types@2024-01-11.yang | 3 +- ...tf-external-transaction-id@2022-10-20.yang | 1 + .../ietf-fgotn-topology@2024-07-07.yang | 36 +- .../ietf-fgotn-tunnel@2024-07-07.yang | 50 +- .../ietf-flexi-grid-topology@2023-12-15.yang | 24 +- .../ietf-ioam-integrity@2024-08-31.yang | 23 +- .../ietf-layer0-types@2024-07-23.yang | 229 +-- .../ietf-mpls-te-types@2023-10-13.yang | 6 +- ...-netconf-private-candidate@2024-09-12.yang | 14 +- ...-netconf-txid-nmda-compare@2023-05-01.yang | 7 +- ...etf-netconf-txid-yang-push@2022-04-01.yang | 2 +- .../ietf-netconf-txid@2023-03-01.yang | 42 +- .../ietf-network-inventory@2024-10-02.yang | 5 +- ...ion-transport-capabilities@2024-10-14.yang | 1 + ...ptical-impairment-topology@2024-05-21.yang | 423 ++--- .../ietf-otn-path-computation@2022-09-12.yang | 11 +- .../ietf-otn-topology@2024-06-21.yang | 18 +- .../ietf-otn-tunnel@2023-10-12.yang | 7 +- .../ietf-platform-manifest@2024-07-02.yang | 1 + .../ietf-resource-pm-types@2024-07-07.yang | 2 + .../ietf-resource-pm@2024-07-07.yang | 3 + .../ietf-service-pm@2024-03-04.yang | 1 + .../ietf-sr-policy-types@2024-03-04.yang | 27 +- .../ietf-sr-policy@2019-11-04.yang | 1047 ------------ .../ietf-sr-policy@2024-11-22.yang | 1490 +++++++++++++++++ .../ietf-srv6-base@2022-01-14.yang | 11 +- .../ietf-srv6-static@2024-03-04.yang | 8 +- .../ietf-srv6-types@2024-03-04.yang | 751 --------- .../ietf-srv6-types@2024-11-21.yang | 852 ++++++++++ .../ietf-te-fgnm-ext@2024-07-08.yang | 31 +- .../ietf-te-mpls-topology@2023-10-13.yang | 18 +- .../ietf-te-packet-types@2024-10-30.yang | 2 + .../ietf-te-path-computation@2023-06-27.yang | 41 +- .../ietf-te-topology-fgnm-ext@2024-07-08.yang | 33 +- .../ietf-te-types@2024-10-30.yang | 69 +- ...tlm-philatelist-aggregator@2024-04-15.yang | 83 +- ...etf-tlm-philatelist-assets@2024-04-15.yang | 13 +- ...-tlm-philatelist-collector@2024-04-15.yang | 65 +- ...-tlm-philatelist-dashboard@2024-04-15.yang | 214 +-- ...ietf-tlm-philatelist-index@2024-04-15.yang | 90 +- ...f-tlm-philatelist-provider@2024-04-15.yang | 4 +- ...ietf-tlm-philatelist-types@2024-04-15.yang | 44 +- ...t-service-path-computation@2024-07-07.yang | 46 +- .../ietf-trans-client-service@2024-01-11.yang | 5 +- .../ietf-udp-client@2024-10-15.yang | 1 + .../ietf-udp-server@2024-10-15.yang | 1 + .../ietf-voucher@2023-01-10.yang | 1 + .../ietf-wdm-path-computation@2024-02-29.yang | 8 +- .../ietf-wdm-tunnel@2024-07-02.yang | 11 +- ...tf-yang-full-embed-library@2023-11-05.yang | 2 + .../ietf-yang-full-embed@2023-11-05.yang | 1 + .../ietf-yp-notification@2024-10-18.yang | 16 +- standard/iana/yang-parameters.xml | 12 +- standard/ietf/RFC/ietf-babel@2024-10-10.yang | 1 + .../RFC/ietf-factory-default@2020-08-31.yang | 2 +- .../ietf/RFC/ietf-module-tags@2021-01-04.yang | 1 + .../ietf/RFC/ietf-mpls-ldp@2022-03-14.yang | 1 + standard/ietf/RFC/ietf-mpls@2020-12-18.yang | 2 +- standard/ietf/RFC/ietf-msdp@2020-10-31.yang | 2 +- .../RFC/ietf-nmda-compare@2021-12-10.yang | 1 + ...f-subscribed-notifications@2019-11-17.yang | 4 +- .../ietf/RFC/ietf-softwire-br@2019-11-16.yang | 146 +- .../ietf/RFC/ietf-softwire-ce@2019-11-16.yang | 74 +- .../RFC/ietf-softwire-common@2019-11-16.yang | 46 +- .../ietf-system-capabilities@2022-02-17.yang | 1 + .../ietf-te-topology-state@2020-08-06.yang | 2 +- .../ietf/RFC/ietf-te-topology@2020-08-06.yang | 2 +- .../ietf/RFC/ietf-tls-client@2024-10-10.yang | 1 + .../ietf/RFC/ietf-tls-server@2024-10-10.yang | 1 + standard/ietf/RFC/ietf-twamp@2021-11-17.yang | 2 +- .../RFC/ietf-wson-topology@2021-08-13.yang | 1 + .../ietf-yang-structure-ext@2020-06-17.yang | 1 + 82 files changed, 3455 insertions(+), 2822 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-bfd-large@2024-10-11.yang => ietf-bfd-large@2024-11-23.yang} (99%) delete mode 100644 experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2019-11-04.yang create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2024-11-22.yang delete mode 100644 experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-11-21.yang diff --git a/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang index 75d1a9dff..7a3fb9c17 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang @@ -352,6 +352,7 @@ module ietf-alto { reference "RFC 9439: ALTO Performance Cost Metrics, Section 4.2"; } + identity delay-variation { if-feature "performance-metrics"; base cost-metric; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang index 74727e3cd..c9109bb66 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang @@ -87,6 +87,7 @@ module ietf-amm { "The literal value default for a parameter or result. The argument is the text form of the ARI"; } + extension init-value { argument value; description @@ -135,6 +136,7 @@ module ietf-amm { The argument to this statement is the object name. An 'init-value' substatement must be present."; } + extension ctrl { argument name; description @@ -183,6 +185,7 @@ module ietf-amm { /* * This section contains extensions for defining semantic type instances. */ + extension type { argument name; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bfd-large@2024-10-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-bfd-large@2024-11-23.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-bfd-large@2024-10-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bfd-large@2024-11-23.yang index 0f3133206..75e6ca9e1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bfd-large@2024-10-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bfd-large@2024-11-23.yang @@ -81,7 +81,7 @@ module ietf-bfd-large { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision "2024-10-11" { + revision "2024-11-23" { description "Initial Version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang index 5e64c6460..8961e4358 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang @@ -89,6 +89,7 @@ module ietf-coreconf { 'pattern' or 'require-instance' constrain is not fulfilled."; } + identity missing-element { base error-tag; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang index d19d17403..424dea1b1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang @@ -15,6 +15,7 @@ module ietf-data-collection-manifest-statistics { reference "RFC 8641: Subscriptions to YANG Datastores."; } + organization "IETF OPSAWG (Network Configuration) Working Group"; contact @@ -71,3 +72,4 @@ module ietf-data-collection-manifest-statistics { } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang index 3c5a7914e..a3298712a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang @@ -85,3 +85,4 @@ module ietf-data-collection-manifest { } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang index 1c2830069..0226bc006 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang @@ -174,6 +174,7 @@ module ietf-dtnma-agent { amm:type "/ARITYPE/BOOL"; } } + grouping bool-unary-result { description "Boolean result"; @@ -462,6 +463,7 @@ module ietf-dtnma-agent { } } } + // Objects related to VAR handling amm:edd var-list { amm:enum 11; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang index 3dd8755b6..ec06fbe7d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang @@ -139,12 +139,12 @@ module ietf-eth-service-oam { type string; description "Name of Maintenance Domain."; - } + } leaf ma-name { type string; description "Name of Maintenance Domain. - An maintenance association(MA) is a part of an MD. + An maintenance association(MA) is a part of an MD. An MD can be divided into one or more MAs. "; } @@ -156,7 +156,7 @@ module ietf-eth-service-oam { leaf meg-id { type string; - description + description "Comply with Y.1731 term, mapping with 802.lag MA name."; } leaf meg-level { @@ -214,11 +214,11 @@ module ietf-eth-service-oam { type leafref { path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances" + "/ethtsvc:etht-svc-name"; - } + } type leafref { path "/clntsvc:client-svc/clntsvc:client-svc-instances" + "/clntsvc:client-svc-name"; - } + } } mandatory true; @@ -231,22 +231,22 @@ module ietf-eth-service-oam { output { list oam-config-list { key "service-name"; - description "The OAM configuration list. "; + description "The OAM configuration list. "; leaf service-name { type union { type leafref { path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances" + "/ethtsvc:etht-svc-name"; - } + } type leafref { path "/clntsvc:client-svc/clntsvc:client-svc-instances" + "/clntsvc:client-svc-name"; - } + } } mandatory true; description "The name of service."; } - } + } leaf result { type enumeration { enum success { @@ -267,17 +267,17 @@ module ietf-eth-service-oam { description "Delete OAM configurations. "; input { list service-list { - key "service-name"; + key "service-name"; leaf service-name { type union { type leafref { path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances" + "/ethtsvc:etht-svc-name"; - } + } type leafref { path "/clntsvc:client-svc/clntsvc:client-svc-instances" + "/clntsvc:client-svc-name"; - } + } } mandatory true; description "The name of service."; @@ -294,15 +294,15 @@ module ietf-eth-service-oam { type leafref { path "/ethtsvc:etht-svc/ethtsvc:etht-svc-instances" + "/ethtsvc:etht-svc-name"; - } + } type leafref { path "/clntsvc:client-svc/clntsvc:client-svc-instances" + "/clntsvc:client-svc-name"; - } + } } mandatory true; description "The name of service."; - } + } leaf result { type enumeration { @@ -330,7 +330,7 @@ module ietf-eth-service-oam { path "/nw:networks/nw:network/nw:node/nw:node-id"; } description - "Node identifier. Must be same in the topology."; + "Node identifier. Must be same in the topology."; } } @@ -352,3 +352,4 @@ module ietf-eth-service-oam { } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-eth-te-topology@2023-09-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-te-topology@2023-09-28.yang index aecdff758..706d3e274 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-te-topology@2023-09-28.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-te-topology@2023-09-28.yang @@ -31,7 +31,7 @@ module ietf-eth-te-topology { import ietf-eth-tran-types { prefix "etht-types"; reference - "RFC YYYY: A YANG Data Model for Transport Network Client + "RFC YYYY: A YANG Data Model for Transport Network Client Signals"; } // RFC Ed.: replace YYYY with actual RFC number, update date @@ -101,12 +101,12 @@ module ietf-eth-te-topology { grouping label-range-info { description - "Ethernet technology-specific label range related - information with a presence container indicating that the + "Ethernet technology-specific label range related + information with a presence container indicating that the label range is an Ethernet technology-specific label range. This grouping SHOULD be used together with the - eth-label and eth-label-step groupings to provide Ethernet + eth-label and eth-label-step groupings to provide Ethernet technology-specific label information to the models which use the label-restriction-info grouping defined in the module ietf-te-types."; @@ -121,7 +121,7 @@ module ietf-eth-te-topology { description "Ethernet-specific label range related information."; - uses etht-types:eth-label-restriction; + uses etht-types:eth-label-restriction; } } @@ -174,6 +174,7 @@ module ietf-eth-te-topology { } } } + grouping eth-ltp-attributes { description "Ethernet transport Link Termination Point (LTP) attributes"; @@ -257,7 +258,7 @@ module ietf-eth-te-topology { container supported-classification { description - "Service classification capability supported by the + "Service classification capability supported by the Ethernet Link Termination Point (LTP)."; leaf port-classification { @@ -270,6 +271,7 @@ module ietf-eth-te-topology { description "Service classification capabilities based on the VLAN tag(s) supported by the ETH LTP."; + leaf vlan-tag-classification { type boolean; description @@ -288,11 +290,11 @@ module ietf-eth-te-topology { VLAN tag, supported by the ETH LTP."; leaf second-tag-classification { type boolean; - must ". = 'false' or " + must ". = 'false' or " + "../../vlan-tag-classification = 'true'" { description - "VLAN service classification based on the second - VLAN tag can be supported only when VLAN service + "VLAN service classification based on the second + VLAN tag can be supported only when VLAN service classification"; } description @@ -394,7 +396,7 @@ module ietf-eth-te-topology { container eth-node { presence "The TE node is an Ethernet node."; description - "Presence container used only to indicate that the TE node + "Presence container used only to indicate that the TE node is an Ethernet node."; } } @@ -408,10 +410,10 @@ module ietf-eth-te-topology { container eth-svc { presence - "When present, indicates that the Link supports Ethernet + "When present, indicates that the Link supports Ethernet client signals."; description - "Presence container used only to indicate that the link + "Presence container used only to indicate that the link supports Ethernet client signals."; } } @@ -426,7 +428,7 @@ module ietf-eth-te-topology { container eth-svc { presence - "When present, indicates that the Link Termination Point + "When present, indicates that the Link Termination Point (LTP) supports Ethernet client signals."; description "ETH LTP Service attributes."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang index c6c48d4e5..d1207fd7c 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang @@ -48,7 +48,7 @@ module ietf-eth-tran-service { import ietf-eth-tran-types { prefix etht-types; reference - "RFCXXXX: A YANG Data Model for Transport Network Client + "RFCXXXX: A YANG Data Model for Transport Network Client Signals"; } // RFC Editor: replace XXXX with the actual RFC number assigned @@ -398,7 +398,7 @@ module ietf-eth-tran-service { } } /* - * Open issue: + * Open issue: * can we constraints it to be used only with mp services? */ leaf src-split-horizon-group { @@ -470,6 +470,7 @@ module ietf-eth-tran-service { receiving rate is below the low threshold"; } } + grouping etht-svc-instance-config { description "Configuraiton parameters for Ethernet services."; @@ -750,7 +751,7 @@ module ietf-eth-tran-service { } } /* - * Open issue: + * Open issue: * can we constraints it to be used only with mp services? */ leaf split-horizon-group { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang index 83275a7d7..78c849d7b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang @@ -214,7 +214,7 @@ module ietf-eth-tran-types { identity root-primary { base access-role; description - "Designates the primary root UNI of an E-Tree service, and + "Designates the primary root UNI of an E-Tree service, and may also designates the UNI access role of E-LINE and E-LAN service."; } @@ -285,6 +285,7 @@ module ietf-eth-tran-types { For example: 1,10-100,50,500-1000"; } + typedef bandwidth-profile-type { type identityref { base bandwidth-profile-type; 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 5e8d86914..246118c1e 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 @@ -152,3 +152,4 @@ module ietf-external-transaction-id { } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang index 343e1359d..dc51650ff 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang @@ -55,8 +55,8 @@ module ietf-fgotn-topology { "; description - "This module defines a YANG data model for fgOTN-specific - extension based on existing network topology models. The model + "This module defines a YANG data model for fgOTN-specific + extension based on existing network topology models. The model fully conforms to the Network Management Datastore Architecture (NMDA). @@ -95,14 +95,14 @@ module ietf-fgotn-topology { description "It is used to indicate whether the TP can support fgOTN switching capability."; - } + } } - augment "/nw:networks/nw:network/nt:link/tet:te" + - "/tet:te-link-attributes/tet:max-link-bandwidth" + + augment "/nw:networks/nw:network/nt:link/tet:te" + + "/tet:te-link-attributes/tet:max-link-bandwidth" + "/tet:te-bandwidth/otnt:otn-bandwidth/otnt:odulist" { description - "specific augmentation of fgOTN link on maximum link + "specific augmentation of fgOTN link on maximum link bandwidth"; leaf fgotn-bandwidth { type string; @@ -110,13 +110,13 @@ module ietf-fgotn-topology { "It is used to indicate how much of the bandwidth has been allocated for the usage of fgOTN."; } - } + } - augment "/nw:networks/nw:network/nt:link/tet:te" + + augment "/nw:networks/nw:network/nt:link/tet:te" + "/tet:te-link-attributes/tet:unreserved-bandwidth" + "/tet:te-bandwidth/otnt:otn-bandwidth" { description - "specific augmentation of fgOTN link on unreserved link + "specific augmentation of fgOTN link on unreserved link bandwidth"; list fgotnlist { key "odu-type odu-ts-number"; @@ -127,32 +127,32 @@ module ietf-fgotn-topology { type identityref { base l1-types:odu-type; } - description + description "The granularity of server ODUk"; } leaf odu-ts-number { type uint16; - description + description "The index of server ODUk channel"; } leaf fgotn-bandwidth { type string; - description + description "The unsreserved bandwidth of fgOTN in this server ODUk"; } } } - augment "/nw:networks/tet:te/tet:templates/tet:link-template"+ + augment "/nw:networks/tet:te/tet:templates/tet:link-template"+ "/tet:te-link-attributes/tet:label-restrictions" + "/tet:label-restriction/otnt:otn-label-range" { description "specific augmentation of fgOTN label"; list fgts-range { key "odu-type odu-ts-number"; - description + description "This structure is used to describe the availability of fgOTN timeslot in the server ODUk"; leaf odu-type { @@ -165,19 +165,19 @@ module ietf-fgotn-topology { leaf odu-ts-number { type string; - description - "The index of server ODUk channel"; + description + "The index of server ODUk channel"; } leaf fgts-reserved { type string; - description + description "The reserved fgOTN timeslot in this server ODUk"; } leaf fgts-unreserved { type string; - description + description "The unreserved fgOTN timeslot in this server ODUk"; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang index 7bd4e5bec..a7b5b9f7d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang @@ -36,8 +36,8 @@ module ietf-fgotn-tunnel { "; description - "This module defines a YANG data model for fgOTN-specific - extension based on existing network topology models. The model + "This module defines a YANG data model for fgOTN-specific + extension based on existing network topology models. The model fully conforms to the Network Management Datastore Architecture (NMDA). @@ -69,11 +69,11 @@ module ietf-fgotn-tunnel { /** augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + - "/te:primary-path/te:te-bandwidth/te:technology" + + "/te:primary-path/te:te-bandwidth/te:technology" + "/otn-tnl:otn/otn-tnl:otn-bandwidth" { leaf fgoduflex-bandwidth { type string; - description + description "The bandwidth of this fgOTN tunnel"; } } @@ -85,7 +85,7 @@ module ietf-fgotn-tunnel { "augmentation of fgOTN tunnel on bandwidth structure"; leaf fgoduflex-bandwidth { type string; - description + description "Augment TE bandwidth of the fgOTN tunnel"; } } @@ -94,56 +94,56 @@ module ietf-fgotn-tunnel { + "te:primary-paths/te:primary-path/" + "te:explicit-route-objects/" + "te:route-object-include-exclude/te:type/te:label/" - + "te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + + "te:label-hop/te:te-label/te:technology/otn-tnl:otn" + "/otn-tnl:otn-label" { description "augmentation of fgOTN label"; leaf fgts-numbers { type uint16; - description + description "Augment fgOTN timeslot information of this label hop"; } } - augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + - "/te:primary-path/te:primary-reverse-path" + - "/te:explicit-route-objects" + - "/te:route-object-include-exclude/te:type/te:label" + - "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + + "/te:primary-path/te:primary-reverse-path" + + "/te:explicit-route-objects" + + "/te:route-object-include-exclude/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + "/otn-tnl:otn-label" { description "augmentation of fgOTN label"; leaf fgts-numbers { type uint16; - description + description "Augment fgOTN timeslot information of this label hop"; } } - augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + - "/te:secondary-path/te:explicit-route-objects" + - "/te:route-object-include-exclude/te:type/te:label" + - "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + + "/te:secondary-path/te:explicit-route-objects" + + "/te:route-object-include-exclude/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + "/otn-tnl:otn-label" { description "augmentation of fgOTN label"; leaf fgts-numbers { type uint16; - description + description "fgOTN timeslot information of this label hop"; } - } + } - augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths" + - "/te:secondary-reverse-path/te:explicit-route-objects" + - "/te:route-object-include-exclude/te:type/te:label" + - "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths" + + "/te:secondary-reverse-path/te:explicit-route-objects" + + "/te:route-object-include-exclude/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + "/otn-tnl:otn-label" { description "augmentation of fgOTN label"; leaf fgts-numbers { type uint16; - description + description "fgOTN timeslot information of this label hop"; } } @@ -156,7 +156,7 @@ module ietf-fgotn-tunnel { "augmentation of fgOTN label"; leaf fgts-numbers { type uint16; - description + description "fgOTN timeslot information of this label hop"; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang index 779361438..0a5c8555f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang @@ -53,12 +53,12 @@ module ietf-flexi-grid-topology { "; description - "This YANG module defines a topology model for flexi-grid - optical networks. The model augments the technology-agnostic - TE topology model with flexi-grid technology specific + "This YANG module defines a topology model for flexi-grid + optical networks. The model augments the technology-agnostic + TE topology model with flexi-grid technology specific definitions, based on RFC 7698 and RFC 7699. - The model fully conforms to the Network Management Datastore + The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2023 IETF Trust and the persons identified @@ -80,10 +80,10 @@ module ietf-flexi-grid-topology { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; reference - "RFC 7698: Framework and Requirements for GMPLS-Based Control - of Flexi-Grid Dense Wavelength Division Multiplexing + "RFC 7698: Framework and Requirements for GMPLS-Based Control + of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks; - RFC 7699: Generalized Labels for the Flexi-Grid in Lambda + RFC 7699: Generalized Labels for the Flexi-Grid in Lambda Switch Capable (LSC) Label Switching Routers."; revision 2023-12-15 { @@ -101,15 +101,15 @@ module ietf-flexi-grid-topology { 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-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 + 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."; @@ -293,6 +293,7 @@ module ietf-flexi-grid-topology { "Augment TE label range information for the TE link."; uses label-range-info; } + augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:label-restrictions/tet:label-restriction" { @@ -965,6 +966,7 @@ module ietf-flexi-grid-topology { uses l0-types:flexi-grid-label-start-end; } } + 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-ioam-integrity@2024-08-31.yang b/experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang index ceb960efb..a359cec59 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang @@ -30,7 +30,7 @@ module ietf-ioam-integrity { 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. + they appear in all capitals, as shown here. Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -60,17 +60,17 @@ module ietf-ioam-integrity { feature int-incremental-trace { - description + description "This feature indicates that the Integrity Protected Incremental Trace-Option is supported."; - reference + reference "RFC YYYY: Integrity Protection of In Situ Operations, Administration, and Maintenance (IOAM) Data Fields"; } feature int-preallocated-trace { - description + description "This feature indicates that the Integrity Protected Pre-allocated Trace-Option is supported."; reference @@ -80,16 +80,17 @@ module ietf-ioam-integrity { feature int-proof-of-transit { - description + description "This feature indicates that the Integrity Protected Proof of Transit Option is supported."; reference "RFC YYYY: Integrity Protection of In Situ Operations, Administration, and Maintenance (IOAM) Data Fields"; } + feature int-edge-to-edge { - description + description "This feature indicates that the Integrity Protected Edge-to-Edge Option is supported."; reference @@ -152,7 +153,7 @@ module ietf-ioam-integrity { 'ioam:action-encapsulate')"; type method-type; default "method-1"; - description + description "This object indicates the Integrity Protection Method for this profile."; } @@ -174,7 +175,7 @@ module ietf-ioam-integrity { 'ioam:action-encapsulate')"; type method-type; default "method-1"; - description + description "This object indicates the Integrity Protection Method for this profile."; } @@ -216,7 +217,7 @@ module ietf-ioam-integrity { 'ioam:action-encapsulate')"; type method-type; default "method-1"; - description + description "This object indicates the Integrity Protection Method for this profile."; } @@ -231,15 +232,17 @@ module ietf-ioam-integrity { Protected Edge-to-Edge Option."; uses ioam:ioam-e2e-profile; + leaf int-method { when "derived-from-or-self(../node-action, 'ioam:action-encapsulate')"; type method-type; default "method-1"; - description + description "This object indicates the Integrity Protection Method for this profile."; } } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang index 63f49ac7e..972983102 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang @@ -73,7 +73,7 @@ module ietf-layer0-types { description "Layer 0 grid type"; reference - "RFC 6205: Generalized Labels for Lambda-Switch-Capable + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC), Label Switching Routers, ITU-T G.694.2 (12/2003): Spectral grids for WDM applications: @@ -97,8 +97,9 @@ module ietf-layer0-types { description "DWDM grid"; reference - "RFC 6205: Generalized Labels for Lambda-Switch-Capable + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC), Label Switching Routers, + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: DWDM frequency grid"; } @@ -212,7 +213,7 @@ module ietf-layer0-types { identity flexi-ncfg-type { description - "Flexi-grid Nominal Central Frequency Granularity (NCFG) + "Flexi-grid Nominal Central Frequency Granularity (NCFG) type"; reference "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda @@ -302,7 +303,7 @@ module ietf-layer0-types { identity DP-QAM16 { base modulation; description - "DP-QAM16 (16 symbols Dual Polarization Quadrature Amplitude + "DP-QAM16 (16 symbols Dual Polarization Quadrature Amplitude Modulation)"; } @@ -343,7 +344,7 @@ module ietf-layer0-types { description "Generic Forward Error Correction (G-FEC)."; reference - "ITU-T G.975 v2.0 (10/2000): Forward error correction for + "ITU-T G.975 v2.0 (10/2000): Forward error correction for submarine systems."; } @@ -352,7 +353,7 @@ module ietf-layer0-types { description "Super Forward Error Correction (S-FEC)."; reference - "ITU-T G.975.1 v1.2 (07/2013): Forward error correction for + "ITU-T G.975.1 v1.2 (07/2013): Forward error correction for high bit-rate DWDM submarine systems."; } @@ -367,107 +368,107 @@ module ietf-layer0-types { description "Staircase Forward Error Correction (SC-FEC)."; reference - "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach + "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach interface."; } identity o-fec { base fec-type; description - "Open Forward Error Correction (O-FEC) which reuses the + "Open Forward Error Correction (O-FEC) which reuses the Bose, Chaudhuri and Hocquenghem (BCH) FEC."; reference - "Clause 16.4.4 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN + "Clause 16.4.4 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN long-reach interfaces; - Annex E of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN + Annex E of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN long-reach interfaces."; } identity c-fec { base fec-type; description - "Concatenated FEC (C-FEC) that combines an outer Staircase - Forward Error Correction (SC-FEC) code and an inner + "Concatenated FEC (C-FEC) that combines an outer Staircase + Forward Error Correction (SC-FEC) code and an inner double-extended SD-FEC (128,119) Hamming code. - More details are provided in clause 15/G.709.3 where it is + More details are provided in clause 15/G.709.3 where it is called DSH instead of concatenated FEC."; reference - "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach + "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach interface; - Annex D of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN + Annex D of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN long-reach interfaces; - Clause 15 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN + Clause 15 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN long-reach interfaces."; } identity line-coding { description - "Base identity to defined the bit rate/line coding of optical + "Base identity to defined the bit rate/line coding of optical tributary signals."; - reference + reference "Section 7.1.2 of ITU-T G.698.2 v3.0 (11/2018)."; - } + } identity line-coding-NRZ-2p5G { base line-coding; description - "The non return to zero (NRZ) bit rate/line coding used by + "The non return to zero (NRZ) bit rate/line coding used by the optical tributary signal class NRZ 2.5G"; - reference + reference "Section 3.2.6 of ITU-T G.959.1 v8.0 (07/2018)."; } identity line-coding-NRZ-OTU1 { base line-coding; description - "The non return to zero (NRZ) bit rate/line coding used by - the Optical channel Transport Unit order 1 (OTU1) optical + "The non return to zero (NRZ) bit rate/line coding used by + the Optical channel Transport Unit order 1 (OTU1) optical tributary signals"; - reference + reference "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018)."; } identity line-coding-NRZ-10G { description - "The non return to zero (NRZ) bit rate/line coding used by + "The non return to zero (NRZ) bit rate/line coding used by the optical tributary signal class NRZ 10G"; - reference + reference "Section 3.2.7 of ITU-T G.959.1 v8.0 (07/2018)."; } identity line-coding-NRZ-OTU2 { base line-coding; description - "The non return to zero (NRZ) bit rate/line coding used by - the Optical channel Transport Unit order 2 (OTU2) optical + "The non return to zero (NRZ) bit rate/line coding used by + the Optical channel Transport Unit order 2 (OTU2) optical tributary signals"; - reference + reference "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018)."; } identity line-coding-OTL4.4-SC { base line-coding; description - "The bit rate/line coding used by optical tributary - signals carrying a 100G Optical Transport Unit order 4 - (OTU4) with Staircase Forward Error Correction (SC FEC) + "The bit rate/line coding used by optical tributary + signals carrying a 100G Optical Transport Unit order 4 + (OTU4) with Staircase Forward Error Correction (SC FEC) from a group of four Optical Transport Lanes (OTL)."; - reference + reference "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018)."; } identity line-coding-FOIC1.4-SC { base line-coding; description - "The bit rate/line coding used by optical tributary signals - carrying a FlexO Interface of order C1 with 4 lanes - (FOIC1.1) with Staircase Forward Error Correction + "The bit rate/line coding used by optical tributary signals + carrying a FlexO Interface of order C1 with 4 lanes + (FOIC1.1) with Staircase Forward Error Correction (SC FEC)."; - reference + reference "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018)."; } @@ -475,7 +476,7 @@ module ietf-layer0-types { description "Wavelength selection base"; reference - "RFC 7689: Signaling Extensions for Wavelength Switched + "RFC 7689: Signaling Extensions for Wavelength Switched Optical Networks"; } @@ -486,7 +487,7 @@ module ietf-layer0-types { and this WA (Wavelength Assignment) method chooses the available wavelength with the lowest index"; reference - "RFC 7689: Signaling Extensions for Wavelength Switched + "RFC 7689: Signaling Extensions for Wavelength Switched Optical Networks"; } @@ -496,7 +497,7 @@ module ietf-layer0-types { "This WA method chooses an available wavelength randomly"; reference - "RFC 7689: Signaling Extensions for Wavelength Switched + "RFC 7689: Signaling Extensions for Wavelength Switched Optical Networks"; } @@ -507,7 +508,7 @@ module ietf-layer0-types { has the largest residual capacity on the most loaded link along the route (in multi-fiber networks)"; reference - "RFC 7689: Signaling Extensions for Wavelength Switched + "RFC 7689: Signaling Extensions for Wavelength Switched Optical Networks"; } @@ -581,7 +582,7 @@ module ietf-layer0-types { identity type-power-mode { description - "power equalization mode used within the + "power equalization mode used within the OMS and its elements"; } @@ -652,7 +653,7 @@ module ietf-layer0-types { where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor frequency' for transmission over the DWDM grid, and where - NCFG is defined by the flexi-ncfg-type, or by the deprecated + NCFG is defined by the flexi-ncfg-type, or by the deprecated flexi-ch-spc-type."; reference "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda @@ -684,7 +685,7 @@ module ietf-layer0-types { description "Identifies an ITU-T G.698.2 standard application code. - It MUST be a string with a format that follows the + It MUST be a string with a format that follows the nomenclature defined in section 5.3 of ITU-T G.698.2."; reference "ITU-T G.698.2 (11/2018)"; @@ -708,8 +709,8 @@ module ietf-layer0-types { description "Identifies an organization (e.g., vendor) specific mode. - The format of the string has to be defined by the - organization which is responsible for defining the + The format of the string has to be defined by the + organization which is responsible for defining the corresponding optical interface specification."; reference "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical @@ -735,7 +736,7 @@ module ietf-layer0-types { units "GHz"; description "The DWDM frequency in GHz, e.g., 193112.500000"; - } + } typedef snr { type decimal-2; @@ -764,7 +765,7 @@ module ietf-layer0-types { type enumeration { enum G.652 { description - "G.652 Standard Singlemode Fiber"; + "G.652 Standard Singlemode Fiber"; } enum G.654 { description @@ -822,7 +823,7 @@ module ietf-layer0-types { type empty; } description - "The gain in dB, when it is known or an empty + "The gain in dB, when it is known or an empty value when the power gain/loss is not known."; } @@ -841,7 +842,7 @@ module ietf-layer0-types { type empty; } description - "The power attenuation in dB, when it is known or an empty + "The power attenuation in dB, when it is known or an empty value when the loss is not known."; } @@ -858,7 +859,7 @@ module ietf-layer0-types { type empty; } description - "The power difference in dB, when it is known or an empty + "The power difference in dB, when it is known or an empty value when the difference is not known."; } @@ -893,7 +894,7 @@ module ietf-layer0-types { type empty; } description - "A decimal64 value with five digits, when the value is known + "A decimal64 value with five digits, when the value is known or an empty value when the value is not known."; } @@ -1155,6 +1156,7 @@ module ietf-layer0-types { description "A multiplier of the slot width granularity, indicating the maximum slot width supported by an optical port. + Maximum slot width is calculated by: Maximum slot width (GHz) = max-slot-width-factor * slot-width-granularity @@ -1347,17 +1349,17 @@ module ietf-layer0-types { "The given value 'N' is used to determine the nominal central frequency. - As described in section 3.1 of RFC 8363, the range of - available nominal central frequencies are advertised for - m=1, which means that for an available central frequency n, - the frequency slot from central frequency n-1 to central + As described in section 3.1 of RFC 8363, the range of + available nominal central frequencies are advertised for + m=1, which means that for an available central frequency n, + the frequency slot from central frequency n-1 to central frequency n+1 is available."; } reference "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda Switch Capable (LSC) Label Switching Routers, - RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid + RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks"; } @@ -1400,21 +1402,21 @@ module ietf-layer0-types { case multi { container frequency-slots { description - "The top level container for the list of frequency + "The top level container for the list of frequency slots used for flexi-grid super channel."; list frequency-slot { key "flexi-n"; min-elements 2; uses flexi-grid-frequency-slot; description - "List of frequency slots used for flexi-grid super + "List of frequency slots used for flexi-grid super channel."; } } } } reference - "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid + "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks"; } @@ -1434,8 +1436,8 @@ module ietf-layer0-types { "Minimum space between slot widths. Default is 12.500 GHz."; reference - "RFC 8363: GMPLS OSPF-TE Extensions in Support of - Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) + "RFC 8363: GMPLS OSPF-TE Extensions in Support of + Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks"; } leaf min-slot-width-factor { @@ -1543,8 +1545,8 @@ module ietf-layer0-types { - the explicit-mode grouping, when explicit mode templates are not used. - The compatible-modes container shall be augmented with the - proper leafrefs when used: see for example the + The compatible-modes container shall be augmented with the + proper leafrefs when used: see for example the transceiver-capabilities grouping below."; choice mode { mandatory true; @@ -1598,10 +1600,10 @@ module ietf-layer0-types { container supported-modes { presence - "When present, it indicates that the modes supported by a + "When present, it indicates that the modes supported by a transceiver are reported."; description - "The top level container for the list supported + "The top level container for the list supported transceiver's modes."; list supported-mode { key "mode-id"; @@ -1609,7 +1611,7 @@ module ietf-layer0-types { min-elements 1; description "The list of supported transceiver's modes."; leaf mode-id { - type string { + type string { length "1..255"; } description "ID for the supported transceiver's mode."; @@ -1618,7 +1620,7 @@ module ietf-layer0-types { augment "mode/explicit-mode/explicit-mode/" + "compatible-modes" { description - "Augments the compatible modes with the proper + "Augments the compatible modes with the proper leafrefs."; leaf-list supported-application-codes { type leafref { @@ -1629,7 +1631,7 @@ module ietf-layer0-types { + "standard-mode" { description "The pointer is only for application codes - supported by transceiver."; + supported by transceiver."; } description "List of pointers to the application codes @@ -1708,8 +1710,8 @@ module ietf-layer0-types { config false; mandatory true; description - "The OSNR penalty associated with the related optical - impairment at the receiver, when the value is known or an + "The OSNR penalty associated with the related optical + impairment at the receiver, when the value is known or an empty value when the value is not known."; } } @@ -1732,7 +1734,7 @@ module ietf-layer0-types { config false; description "Bit rate/line coding of the optical tributary signal."; - reference + reference "ITU-T G.698.2 section 7.1.2"; } leaf bitrate { @@ -1748,7 +1750,7 @@ module ietf-layer0-types { units "ps"; config false; description - "Maximum Differential group delay of this mode for this + "Maximum Differential group delay of this mode for this lane"; } leaf max-chromatic-dispersion { @@ -1758,7 +1760,7 @@ module ietf-layer0-types { units "ps/nm"; config false; description - "Maximum acceptable accumulated chromatic dispersion (CD) + "Maximum acceptable accumulated chromatic dispersion (CD) on the receiver"; } list cd-penalty { @@ -1820,14 +1822,14 @@ module ietf-layer0-types { config false; mandatory true; description - "Maximum acceptable accumulated accumulated polarization + "Maximum acceptable accumulated accumulated polarization dependent loss (PDL) on the receiver"; } list pdl-penalty { key pdl-value; config false; description - "Optional penalty associated with a given accumulated + "Optional penalty associated with a given accumulated polarization dependent loss (PDL) value. This list of pair PDL and penalty values can be used to @@ -1858,14 +1860,14 @@ module ietf-layer0-types { description "min OSNR measured over 0.1 nm resolution bandwidth: if received OSNR at Rx-power reference point - (rx-ref-channel-power) is lower than MIN-OSNR, an increased + (rx-ref-channel-power) is lower than MIN-OSNR, an increased level of bit-errors post-FEC needs to be expected"; } leaf rx-ref-channel-power { type power-dbm; config false; description - "The channel power used as reference for defining penalties + "The channel power used as reference for defining penalties and min-OSNR"; } list rx-channel-power-penalty { @@ -1900,16 +1902,16 @@ module ietf-layer0-types { units "Bd"; config false; description - "Baud-rate the specific transceiver in + "Baud-rate the specific transceiver in the list can support. Baud-rate is the unit for - symbol rate or modulation rate + symbol rate or modulation rate in symbols per second or - pulses per second. + pulses per second. It is the number of distinct symbol - changes (signal events) made to the + changes (signal events) made to the transmission medium - per second in a digitally + per second in a digitally modulated signal or a line code"; } leaf roll-off { @@ -1918,12 +1920,12 @@ module ietf-layer0-types { range "0..1"; } config false; - description - "the roll-off factor (beta with values from 0 to 1) - identifies how the real signal shape exceed - the baud rate. If=0 it is exactly matching - the baud rate.If=1 the signal exceeds the - 50% of the baud rate at each side."; + description + "the roll-off factor (beta with values from 0 to 1) + identifies how the real signal shape exceed + the baud rate. If=0 it is exactly matching + the baud rate.If=1 the signal exceeds the + 50% of the baud rate at each side."; } leaf min-carrier-spacing { type frequency-ghz; @@ -1962,20 +1964,20 @@ module ietf-layer0-types { } config false; description - "Threshold on the BER, for which FEC + "Threshold on the BER, for which FEC is able to correct errors"; } leaf in-band-osnr { type snr; config false; description - "The OSNR defined within the bandwidth of the transmit - spectral excursion (i.e., between the nominal central - frequency of the channel and the -3.0dB points of the - transmitter spectrum furthest from the nominal central + "The OSNR defined within the bandwidth of the transmit + spectral excursion (i.e., between the nominal central + frequency of the channel and the -3.0dB points of the + transmitter spectrum furthest from the nominal central frequency) measured at reference point Ss. - The in-band OSNR is referenced to an optical bandwidth of + The in-band OSNR is referenced to an optical bandwidth of 0.1nm @ 193.7 THz or 12.5 GHz."; reference "OIF-400ZR-01.0: Implementation Agreement 400ZR"; @@ -1984,13 +1986,13 @@ module ietf-layer0-types { type snr; config false; description - "The ratio of the peak transmitter power to the integrated + "The ratio of the peak transmitter power to the integrated power outside the transmitter spectral excursion. - The spectral resolution of the measurement shall be better + The spectral resolution of the measurement shall be better than the maximum spectral width of the peak. - The out-of-band OSNR is referenced to an optical bandwidth + The out-of-band OSNR is referenced to an optical bandwidth of 0.1nm @ 193.7 THz or 12.5 GHz"; reference "OIF-400ZR-01.0: Implementation Agreement 400ZR"; @@ -1999,8 +2001,8 @@ module ietf-layer0-types { type power-ratio; config false; description - "The transmitter polarization dependent power difference - defined as the power difference between X and Y + "The transmitter polarization dependent power difference + defined as the power difference between X and Y polarizations"; reference "OIF-400ZR-01.0: Implementation Agreement 400ZR"; @@ -2010,7 +2012,7 @@ module ietf-layer0-types { units "ps"; config false; description - "The X-Y skew, included as a fixed value in the receiver + "The X-Y skew, included as a fixed value in the receiver polarization mode dispersion (PMD) tolerance limits."; reference "OIF-400ZR-01.0: Implementation Agreement 400ZR"; @@ -2019,7 +2021,7 @@ module ietf-layer0-types { grouping common-standard-organizational-mode { description - "Common attributes used by standard and organizational + "Common attributes used by standard and organizational transceiver's modes."; leaf-list line-coding-bitrate { @@ -2028,12 +2030,12 @@ module ietf-layer0-types { } config false; description - "The list of the bit rate/line coding of the optical + "The list of the bit rate/line coding of the optical tributary signal supported by the transceiver. - Reporting this list is optional when the standard or + Reporting this list is optional when the standard or organization mode supports only one bit rate/line coding."; - reference + reference "ITU-T G.698.2 section 7.1.2"; } } // grouping common-standard-organizational-mode @@ -2060,7 +2062,7 @@ module ietf-layer0-types { description "This parameter indicates the transmitter frequency fine tuning steps e.g 3.125GHz or 0.001GHz."; - } + } } // grouping transmitter-tuning-range grouping common-all-modes { @@ -2077,7 +2079,7 @@ module ietf-layer0-types { type power-dbm; config false; description "The maximum output power of this interface"; - } + } leaf rx-channel-power-min { type power-dbm; config false; @@ -2119,18 +2121,18 @@ module ietf-layer0-types { description "Bit rate/line coding of the optical tributary signal. - Support of this attribute is optional when the configured + Support of this attribute is optional when the configured mode supports only one bit rate/line coding."; - reference + reference "ITU-T G.698.2 section 7.1.2"; } leaf tx-channel-power { type power-dbm-or-null; description - "The current channel transmit power, when the value is + "The current channel transmit power, when the value is known or an empty value when the value is not known. - The empty value MUST NOT be used when this attribute is + The empty value MUST NOT be used when this attribute is configured."; } } // grouping for configured transceiver attributes out of mode @@ -2144,14 +2146,14 @@ module ietf-layer0-types { type power-dbm-or-null; config false; description - "The current channel received power, when the value is + "The current channel received power, when the value is known or an empty value when the value is not known."; } leaf rx-total-power { type power-dbm-or-null; config false; description - "The current total received power, when the value is known + "The current total received power, when the value is known or an empty value when the value is not known."; } } // grouping for read-only transceiver attributes out of mode @@ -2211,6 +2213,7 @@ module ietf-layer0-types { SNR (GSNR)."; } } + grouping l0-path-properties { description "Common attribute for reporting the Layer 0 computed path diff --git a/experimental/ietf-extracted-YANG-modules/ietf-mpls-te-types@2023-10-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-mpls-te-types@2023-10-13.yang index 6c626a46a..045ec66b8 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-mpls-te-types@2023-10-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-mpls-te-types@2023-10-13.yang @@ -31,7 +31,7 @@ module ietf-mpls-te-types { "; description - "This module defines a collection of common YANG data type + "This module defines a collection of common YANG data type and grouping definitions specific to MPLS-TE. Copyright (c) 2023 IETF Trust and the persons @@ -53,8 +53,8 @@ module ietf-mpls-te-types { reference "RFC XXXX: A YANG Data Model for MPLS-TE Topology"; } - // RFC Editor: replace XXXX with the actual RFC number assigned - // to the RFC once this draft + // RFC Editor: replace XXXX with the actual RFC number assigned + // to the RFC once this draft // becomes an RFC, update date information and remove this note. /* diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-private-candidate@2024-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-private-candidate@2024-09-12.yang index 0ada0e93a..2f9ca0eaa 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-private-candidate@2024-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-private-candidate@2024-09-12.yang @@ -37,7 +37,7 @@ module ietf-netconf-private-candidate { Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of + This version of this YANG module is part of draft-ietf-netconf-privcand; see these documents for full legal notices."; @@ -45,9 +45,9 @@ module ietf-netconf-private-candidate { description "Introduce private candidate support"; reference - "draft-ietf-netconf-privcand: + "draft-ietf-netconf-privcand: Netconf Private Candidates"; - } + } feature private-candidate { description @@ -81,6 +81,7 @@ module ietf-netconf-private-candidate { } } } + augment /cmp:compare/cmp:input { leaf reference-point { reference "draft-ietf-netconf-privcand"; @@ -88,9 +89,9 @@ module ietf-netconf-private-candidate { description "When this leaf is provided and the source or destination is the candidate datastore, operating - in private candidate mode, the comparison will - either occur between the last-update point of - the private candidate or the creation-point of + in private candidate mode, the comparison will + either occur between the last-update point of + the private candidate or the creation-point of the private candidate."; default last-update; type enumeration { @@ -101,3 +102,4 @@ module ietf-netconf-private-candidate { } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang index eb2312a3c..d816ea18b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang @@ -1,13 +1,13 @@ module ietf-netconf-txid-nmda-compare { yang-version 1.1; - namespace + namespace 'urn:ietf:params:xml:ns:yang:ietf-netconf-txid-nmda-compare'; prefix ietf-netconf-txid-nmda-compare; import ietf-nmda-compare { prefix cmp; reference - "RFC 9144: Comparison of Network Management Datastore + "RFC 9144: Comparison of Network Management Datastore Architecture (NMDA) Datastores"; } @@ -43,6 +43,7 @@ module ietf-netconf-txid-nmda-compare { 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 @@ -70,7 +71,7 @@ module ietf-netconf-txid-nmda-compare { txid-values."; container most-recent { description "The txid value returned by the server MUST be the - txid value pertaining to the target node in the source or + txid value pertaining to the target node in the source or target datastores that is the most recent."; uses ietf-netconf-txid:txid-value-grouping; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang index b8850f475..cb202b892 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang @@ -1,6 +1,6 @@ module ietf-netconf-txid-yang-push { yang-version 1.1; - namespace + namespace 'urn:ietf:params:xml:ns:yang:ietf-netconf-txid-yang-push'; prefix ietf-netconf-txid-yp; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang index af375b6ee..4b9b237d4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang @@ -1,6 +1,6 @@ module ietf-netconf-txid { yang-version 1.1; - namespace + namespace 'urn:ietf:params:xml:ns:yang:ietf-netconf-txid'; prefix ietf-netconf-txid; @@ -63,7 +63,7 @@ module ietf-netconf-txid { feature last-modified { description "Servers implementing this module MUST support the - etag txid mechanism. Servers MAY also support the + etag txid mechanism. Servers MAY also support the last-modified txid mechanism. Support is shown by announcing this feature."; } @@ -98,22 +98,22 @@ module ietf-netconf-txid { modifier invert-match; } } - description - "Unique Entity-tag txid value representing a specific - transaction. Could be any string that does not contain + description + "Unique Entity-tag txid value representing a specific + transaction. Could be any string that does not contain spaces, double quotes or backslash. The txid values '?', '!' and '=' have special meaning: - '?' This txid value is used by clients and is + '?' This txid value is used by clients and is guaranteed not to match any txid on the server. - '!' This txid value used by servers to indicate + '!' This txid value used by servers to indicate the node in the candidate datastore has changed relative to the running datastore, but not yet received a new txid value on the server. - '=' This txid value used by servers to indicate + '=' This txid value used by servers to indicate that contents has been pruned due to txid match between client and server. "; @@ -124,17 +124,17 @@ module ietf-netconf-txid { type yang:date-and-time; type enumeration { enum ? { - description "Txid value used by clients that is + description "Txid value used by clients that is guaranteed not to match any txid on the server."; } enum ! { - description "Txid value used by servers to indicate + description "Txid value used by servers to indicate the node in the candidate datastore has changed relative to the running datastore, but not yet received a new txid value on the server."; } enum = { - description "Txid value used by servers to indicate + description "Txid value used by servers to indicate that contents has been pruned due to txid match between client and server."; } @@ -150,19 +150,19 @@ module ietf-netconf-txid { type boolean; description "Indicates whether the client requests the server to include - a txid:etag txid attribute when the configuration has + a txid:etag txid attribute when the configuration has changed."; } leaf with-last-modified { if-feature last-modified; type boolean; - description + description "Indicates whether the client requests the server to include - a txid:last-modified attribute when the configuration has + a txid:last-modified attribute when the configuration has changed."; } description - "Grouping for txid mechanisms, to be augmented into + "Grouping for txid mechanisms, to be augmented into rpcs that modify configuration data stores."; } @@ -179,7 +179,7 @@ module ietf-netconf-txid { "Indicates server's txid value for a YANG node."; } description - "Grouping for txid mechanisms, to be augmented into + "Grouping for txid mechanisms, to be augmented into output of rpcs that return txid metadata for configuration data stores."; } @@ -187,21 +187,21 @@ module ietf-netconf-txid { augment /nc:edit-config/nc:input { uses txid-grouping; description - "Injects the txid mechanisms into the + "Injects the txid mechanisms into the edit-config operation"; } augment /nc:commit/nc:input { uses txid-grouping; description - "Injects the txid mechanisms into the + "Injects the txid mechanisms into the commit operation"; } augment /ncds:edit-data/ncds:input { uses txid-grouping; description - "Injects the txid mechanisms into the + "Injects the txid mechanisms into the edit-data operation"; } @@ -223,14 +223,14 @@ module ietf-netconf-txid { leaf mismatch-etag-value { type etag-t; description - "Indicates server's txid value of the etag + "Indicates server's txid value of the etag attribute for one mismatching element."; } leaf mismatch-last-modified-value { if-feature last-modified; type last-modified-t; description - "Indicates server's txid value of the last-modified + "Indicates server's txid value of the last-modified attribute for one mismatching element."; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-10-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-10-02.yang index 1bfc3a1c7..319999b4d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-10-02.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-10-02.yang @@ -187,7 +187,8 @@ module ietf-network-inventory { (e.g., component) types within the scope of the vendor."; } } - /* + + /* * Data Nodes */ @@ -383,7 +384,7 @@ module ietf-network-inventory { "RFC 6933: Entity MIB (Version 4) - entPhysicalUris"; } container chassis-specific-info { - when "derived-from-or-self(../class, + when "derived-from-or-self(../class, 'ianahw:chassis')"; config false; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-notification-transport-capabilities@2024-10-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-notification-transport-capabilities@2024-10-14.yang index d84734703..3920a7eaf 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-notification-transport-capabilities@2024-10-14.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-notification-transport-capabilities@2024-10-14.yang @@ -76,6 +76,7 @@ module ietf-notification-transport-capabilities { description "Identity for DTLS 1.2 security protocol."; } + identity dtls13 { base security-protocol; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang index 4bdbe0c71..70496a105 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang @@ -19,7 +19,7 @@ module ietf-optical-impairment-topology { import ietf-te-topology { prefix "tet"; reference - "RFC 8795: YANG Data Model for Traffic Engineering (TE) + "RFC 8795: YANG Data Model for Traffic Engineering (TE) Topologies"; } @@ -102,7 +102,7 @@ module ietf-optical-impairment-topology { description "Individual OTSi(G) protection LSP protection type."; reference - "ITU-T G.873.1 v5.2 (02/2022): Optical transport network: + "ITU-T G.873.1 v5.2 (02/2022): Optical transport network: Linear protection"; } @@ -314,7 +314,7 @@ module ietf-optical-impairment-topology { leaf delta-power { type l0-types:power-ratio-or-null; description - " Deviation from the reference carrier power + " Deviation from the reference carrier power defined for the OMS."; } } // media channels list @@ -326,8 +326,8 @@ module ietf-optical-impairment-topology { } // grouping amplifier-params grouping fiber-params { - description - "String identifier of fiber type referencing a + description + "String identifier of fiber type referencing a specification in a separate equipment catalog"; container fiber { description "fiber characteristics"; @@ -376,7 +376,7 @@ module ietf-optical-impairment-topology { grouping roadm-common-path { description - "The optical impairments of a ROADM which are common to all + "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 { @@ -387,15 +387,15 @@ module ietf-optical-impairment-topology { type empty; } units "ps"; - description - "Polarization Mode Dispersion (PMD), when known, or an + description + "Polarization Mode Dispersion (PMD), when known, or an empty value when unknown."; } leaf roadm-cd { type l0-types:decimal-5-or-null; units "ps/nm"; description "Chromatic Dispersion (CD)"; - } + } leaf roadm-pdl { type l0-types:power-loss-or-null; description "Polarization Dependent Loss (PDL)"; @@ -404,7 +404,7 @@ module ietf-optical-impairment-topology { type l0-types:decimal-2-or-null; units "dB"; description - "In-band crosstalk, or coherent crosstalk, can occur in + "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 one blocked"; @@ -412,8 +412,8 @@ module ietf-optical-impairment-topology { leaf roadm-maxloss { type l0-types:power-loss-or-null; description - "This is the maximum expected path loss from the - ROADM ingress to the ROADM egress + "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 @@ -430,69 +430,69 @@ module ietf-optical-impairment-topology { uses roadm-common-path { refine roadm-inband-crosstalk { description - "In-band crosstalk, or coherent crosstalk, + "In-band crosstalk, or coherent crosstalk, can occur in components that can have multiple same - wavelength inputs,with the inputs either + wavelength inputs,with the inputs either routed to different output ports, or all but one blocked. - In the case of add path it is the total + In the case of add path it is the total 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. + 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 - transponder output power required - to hit the ROADM egress target power - levels and preventing + transponder output power required + to hit the ROADM egress target power + levels and preventing to hit the WSS attenuation limits. - If the add path contains an internal amplifier - this loss value should be based + If the add path contains an internal amplifier + 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-dbm-or-null; - description - "This is the maximum (per carrier) power level + 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 + 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 + 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 + 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 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 + 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 l0-types:decimal-5-or-null; - units "dB"; - description - "Noise Figure. If the add path contains an amplifier, + 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 + This permits add path OSNR calculation based on the input power levels to the add block - without knowing the ROADM path losses to + without knowing the ROADM path losses to the add amplifier."; } - } // grouping roadm-add-path + } // grouping roadm-add-path grouping roadm-drop-path { description @@ -501,137 +501,137 @@ module ietf-optical-impairment-topology { refine roadm-inband-crosstalk { description "In-band crosstalk, or coherent crosstalk, can occur in - components that can have multiple same wavelength + components that can have multiple same wavelength inputs,with the inputs either routed to different output ports,or all but one blocked. - In the case of drop path it is the total + In the case of drop path it is the total of the ingress to drop e.g. WSS and drop block crosstalk contributions."; } refine roadm-maxloss { - description - "The net loss from the ROADM input,to the output - of the drop block. + 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. + the amplifier gain reduces the net loss. This is before any additional drop path attenuation - that may be required + that may be required due to drop amplifier power contraints. The max value correspond to worst case expected loss, - including amplifier gain ripple or uncertainty. - It is the maximum output power of the drop + including amplifier gain ripple or uncertainty. + It is the maximum output power of the drop amplifier."; } } leaf roadm-minloss { type l0-types:power-loss-or-null; - description - "The net loss from the ROADM input, to the + 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 + 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, + The min value correspond to best case expected loss, including amplifier gain ripple or uncertainty."; } leaf roadm-typloss { type l0-types:power-loss-or-null; - description - "The net loss from the ROADM input, + 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 + 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 + The typ value correspond to typical case expected loss."; } leaf roadm-pmin { type l0-types:power-dbm-or-null; - description + description "If the drop path has additional loss that is added, for example, - to hit target power levels into a + 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 + (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 + 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."; + these parameters is + detailed in section xxx of the document yyy."; } leaf roadm-pmax { type l0-types:power-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 + 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 + 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"; + 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-dbm-or-null; - description + 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 + 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."; + per carrier power levels expected + at the output of the drop block."; } leaf roadm-osnr { - type l0-types:snr-or-null; - description + type l0-types:snr-or-null; + description "Optical Signal-to-Noise Ratio (OSNR). Expected OSNR contribution of the drop path - amplifier(if present) + amplifier(if present) for the case of additional drop path loss - (before this amplifier) + (before this amplifier) in order to hit a target power level (per carrier). - If both, the OSNR based on the ROADM + If both, the OSNR based on the ROADM input power level - (Pcarrier = + (Pcarrier = Pref+10Log(carrier-baudrate/ref-baud) + delta-power) - and the input inferred NF(NF.drop), - and this OSNR value, are defined, + 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 l0-types:decimal-5-or-null; - units "dB"; - description - "Drop path Noise Figure. + 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 + of that amplifier, inferred to the ROADM ingress port. - This permits to determine - amplifier OSNR contribution - without having to specify the + 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, + 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"; } @@ -663,10 +663,10 @@ module ietf-optical-impairment-topology { description "The equalization mode. - When not present it indicates that the information about + When not present it indicates that the information about the equalization mode is not reported. - Reporting this value is needed to support optical + Reporting this value is needed to support optical impairments applications."; } container power-param { @@ -711,14 +711,14 @@ module ietf-optical-impairment-topology { } description "OTSi carrier frequency, equivalent to the - actual configured transmitter frequency, when known, or + actual configured transmitter frequency, when known, or an empty value when unknown."; } leaf-list e2e-mc-path-id { type uint16; description - "The list of the possible end-to-end Media Channel - (e2e-MC) paths associated with the OTSi which have + "The list of the possible end-to-end Media Channel + (e2e-MC) paths associated with the OTSi which have different optical impairments. This list is meaningful in case the OTSi can be associated @@ -735,15 +735,15 @@ module ietf-optical-impairment-topology { description "media channel groups. - This grouping is not intended to be reused outside of this + This grouping is not intended to be reused outside of this module."; container media-channel-groups { presence - "When present, it indicates that the list media channel + "When present, it indicates that the list media channel groups is reported."; description - "The top level container for the list of media channel + "The top level container for the list of media channel groups."; list media-channel-group { key "otsi-group-ref"; @@ -755,7 +755,7 @@ module ietf-optical-impairment-topology { "otsi-group/otsi-group-id"; } description - "Reference to the OTSiG to which the OTSis carried by + "Reference to the OTSiG to which the OTSis carried by this media channel group belong to."; } list media-channel { @@ -779,8 +779,8 @@ module ietf-optical-impairment-topology { list otsi-ref { key "otsi-carrier-ref"; description - "The list of references to the OTSis and their - end-to-end Media Channel (e2e-MC) paths within the + "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 { @@ -802,15 +802,15 @@ module ietf-optical-impairment-topology { "/../otsi-carrier-ref]/e2e-mc-path-id"; } description - "References to the end-to-end Media Channel (e2e-MC) - paths of this OTSi which are routed through this + "References to the end-to-end Media Channel (e2e-MC) + paths of this OTSi which are routed through this media channel."; } } leaf delta-power { type l0-types:power-ratio-or-null; description - " Deviation from the reference carrier power defined + " Deviation from the reference carrier power defined for the OMS."; } } // media channels list @@ -822,19 +822,19 @@ module ietf-optical-impairment-topology { description "OMS description"; container OMS-elements { presence - "When present, it indicates that the list of OMS elements + "When present, it indicates that the list of OMS elements is reported."; description "The top level container for the list of OMS elements."; list OMS-element { key "elt-index"; description - "defines the spans and the amplifier blocks of + "defines the spans and the amplifier blocks of the amplified lines"; leaf elt-index { type uint16; description - "ordered list of Index of OMS element + "ordered list of Index of OMS element (whether it's a Fiber, an EDFA or a Concentratedloss)"; } @@ -917,7 +917,7 @@ module ietf-optical-impairment-topology { } } -/* +/* * Data nodes */ @@ -938,17 +938,17 @@ module ietf-optical-impairment-topology { when "./nw:network-types/tet:te-topology" + "/oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology."; } description "Network augmentation for optical impairments data."; container otsis { presence - "When present, it indicates that OTSi information is + "When present, it indicates that OTSi information is reported."; description - "The information about the OTSis configured on the WDM-TE + "The information about the OTSis configured on the WDM-TE link."; list otsi-group { key "otsi-group-id"; @@ -982,7 +982,7 @@ module ietf-optical-impairment-topology { ROADM paths."; leaf roadm-path-impairments-id { - type string; + type string; description "The identifier of the set of optical impairments related to a ROADM path."; @@ -1010,7 +1010,7 @@ module ietf-optical-impairment-topology { uses l0-types:frequency-range; } uses roadm-express-path; - } + } } case roadm-add-path { list roadm-add-path { @@ -1032,9 +1032,9 @@ module ietf-optical-impairment-topology { impairments apply."; uses l0-types:frequency-range; } - uses roadm-add-path; + uses roadm-add-path; } - } + } case roadm-drop-path { list roadm-drop-path { key frequency-range-id; @@ -1055,12 +1055,12 @@ module ietf-optical-impairment-topology { impairments apply."; uses l0-types:frequency-range; } - uses roadm-drop-path; + uses roadm-drop-path; } } } - } // list roadm-path-impairments - } // container roadm-path-impairments + } // list roadm-path-impairments + } // container roadm-path-impairments container explicit-transceiver-modes { description "The top level container for the list of the @@ -1090,7 +1090,7 @@ module ietf-optical-impairment-topology { "Node augmentation for optical impairments data."; container transponders { presence - "If present, it indicates that the list of transponders is + "If present, it indicates that the list of transponders is reported."; description "The top level container for the list of transponders."; @@ -1145,7 +1145,7 @@ module ietf-optical-impairment-topology { } } description - "Describes the supported 3R configuration type."; + "Describes the supported 3R configuration type."; } list transceiver { key "transceiver-id"; @@ -1186,17 +1186,17 @@ module ietf-optical-impairment-topology { "Reference to the configured mode for transceiver compatibility approach. - The empty value is used to report that no mode has + The empty value is used to report that no mode has been configured and there is no default mode. - When not present, the configured-mode is not reported + When not present, the configured-mode is not reported by the server."; } uses l0-types:common-transceiver-param; container outgoing-otsi { when "../../../../../otsis" { description - "It applies only when the OTSi information is + "It applies only when the OTSi information is reported."; } description @@ -1206,7 +1206,7 @@ module ietf-optical-impairment-topology { container incoming-otsi { when "../../../../../otsis" { description - "It applies only when the OTSi information is + "It applies only when the OTSi information is reported."; } description @@ -1235,15 +1235,15 @@ module ietf-optical-impairment-topology { transceiver is used in an Optical Tunnel termination configuration or in a 3R configuration. - If empty, it means that the information about the + If empty, it means that the information about the configured-termination-type is not reported."; } - } // end of list of transceiver + } // end of list of transceiver } // end list of transponder } container regen-groups { presence - "When present, it indicates that the list of 3R groups + "When present, it indicates that the list of 3R groups is reported."; description "The top level container for the list of 3R groups."; @@ -1253,9 +1253,9 @@ module ietf-optical-impairment-topology { description "The list of 3R groups. - Any 3R group represent a group of transponder in which an - a an electrical connectivity is either in place or could - be dynamically provided, to associated transponders used + Any 3R group represent a group of transponder in which an + a an electrical connectivity is either in place or could + be dynamically provided, to associated transponders used for 3R regeneration."; leaf group-id { type uint32; @@ -1285,7 +1285,7 @@ module ietf-optical-impairment-topology { when "../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology."; } description "Optical Link augmentation for impairment data."; @@ -1303,7 +1303,7 @@ module ietf-optical-impairment-topology { when "../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology."; } description @@ -1312,7 +1312,7 @@ module ietf-optical-impairment-topology { list ttp-transceiver { when "../../../transponders" { description - "It applies only when the list of transponders is + "It applies only when the list of transponders is reported."; } key "transponder-ref transceiver-ref"; @@ -1345,7 +1345,7 @@ module ietf-optical-impairment-topology { when "../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology"; } description @@ -1357,7 +1357,7 @@ module ietf-optical-impairment-topology { description "The protection type that this LTP is capable of. - When not present it indicates that the information about + When not present it indicates that the information about the protection type is not reported."; } } @@ -1367,7 +1367,7 @@ module ietf-optical-impairment-topology { when "../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology"; } description @@ -1376,22 +1376,22 @@ module ietf-optical-impairment-topology { leaf inter-layer-sequence-number { type uint32; description - "The inter-layer-sequence-number (ILSN) is used to report - additional connectivity constraints between a client layer - Link Termination Point (LTP), such as a muxponder port, and + "The inter-layer-sequence-number (ILSN) is used to report + additional connectivity constraints between a client layer + Link Termination Point (LTP), such as a muxponder port, and the server layer Tunnel Termination Point (TTP). - A client service cannot be setup between two client layer + A client service cannot be setup between two client layer LTPs which report different values of the ILSN. - This attribute is not reported when there are no additional + This attribute is not reported when there are no additional connectivity constraints. - Therefore, a client service can be setup when at least one - of the two client layer LTPs does not report any ILSN or - both client layer LTPs report the same ILSN value and the - corresponding server layer TTPs have at least one common - server-layer switching capability and at least one common + Therefore, a client service can be setup when at least one + of the two client layer LTPs does not report any ILSN or + both client layer LTPs report the same ILSN value and the + corresponding server layer TTPs have at least one common + server-layer switching capability and at least one common client-layer switching capability."; } } @@ -1401,25 +1401,25 @@ module ietf-optical-impairment-topology { when "../../../nw:network-types/tet:te-topology" + "/oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology"; } description "node attributes augmentantion for optical-impairment ROADM node"; - } // augmentation for optical-impairment ROADM + } // augmentation for optical-impairment ROADM augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices"{ when "../../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology "; - } + } description - "Augment default TE node connectivity matrix information + "Augment default TE node connectivity matrix information source."; leaf roadm-path-impairments { @@ -1444,7 +1444,7 @@ module ietf-optical-impairment-topology { topology "; } description - "Augment TE node connectivity matrix entry information + "Augment TE node connectivity matrix entry information source."; leaf roadm-path-impairments { type leafref { @@ -1455,7 +1455,7 @@ module ietf-optical-impairment-topology { config false; description "Pointer to the list set of ROADM optical impairments"; - } + } } // augmentation connectivity-matrix information-source augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -1463,9 +1463,9 @@ module ietf-optical-impairment-topology { when "../../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Optical Impairment + "This augment is only valid for Optical Impairment topology "; - } + } description "Augment default TE node connectivity matrix."; leaf roadm-path-impairments { @@ -1476,10 +1476,10 @@ module ietf-optical-impairment-topology { } config false; /*the identifier in the list */ /*"roadm-path-impairments" of ROADM optical impairment*/ - /*is read-only as the rest of attributes*/ - description "pointer to the list set of ROADM optical + /*is read-only as the rest of attributes*/ + description "pointer to the list set of ROADM optical impairments"; - } + } } // augmentation connectivity-matrices augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -1488,7 +1488,7 @@ module ietf-optical-impairment-topology { when "../../../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for + "This augment is only valid for Optical Impairment topology "; } description @@ -1511,11 +1511,11 @@ module ietf-optical-impairment-topology { when "../../../../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for + "This augment is only valid for Optical Impairment topology "; } description - "Augment the attributes for the 'from' LTP for the TE node + "Augment the attributes for the 'from' LTP for the TE node connectivity matrix entry."; list additional-ltp { when "derived-from-or-self(../../../../../../" @@ -1524,27 +1524,27 @@ module ietf-optical-impairment-topology { + "oit:protection-type," + "'oit:otsi-protection')" { description - "This list applies only when the 'to' LTP for this - connectivity matrix entry supports individual OTSi(G) + "This list applies only when the 'to' LTP for this + connectivity matrix entry supports individual OTSi(G) protection."; } key "ltp-ref"; config false; description - "The restricted list of the potential secondary LTPs that - can be selected when the 'from' LTP of this connectivity + "The restricted list of the potential secondary LTPs that + can be selected when the 'from' LTP of this connectivity matrix entry is selected as a working LTP. - If this list is empty, all the other LTPs that can reach - the 'to' LTP of this connectivity matrix entry can be + If this list is empty, all the other LTPs that can reach + the 'to' LTP of this connectivity matrix entry can be selected as secondary LTPs."; leaf ltp-ref { type leafref { path "../../../../../../../nt:termination-point/nt:tp-id"; } description - "The reference to the potential secondary LTP that can be - selected when the 'from' LTP of this connectivity matrix + "The reference to the potential secondary LTP that can be + selected when the 'from' LTP of this connectivity matrix entry is selected as a working LTP"; } leaf roadm-path-impairments { @@ -1554,10 +1554,10 @@ module ietf-optical-impairment-topology { + "/oit:roadm-path-impairments-id"; } description - "Pointer to ROADM optical impairments of the ROADM path - between this secondary 'from' LTP and the 'to' LTP of + "Pointer to ROADM optical impairments of the ROADM path + between this secondary 'from' LTP and the 'to' LTP of this connectivity matrix entry."; - } + } } } // augmentation connectivity-matrix from @@ -1567,11 +1567,11 @@ module ietf-optical-impairment-topology { when "../../../../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for + "This augment is only valid for Optical Impairment topology "; } description - "Augment the attributes for the 'to' LTP for the TE node + "Augment the attributes for the 'to' LTP for the TE node connectivity matrix entry."; list additional-ltp { when "derived-from-or-self(../../../../../../" @@ -1580,27 +1580,27 @@ module ietf-optical-impairment-topology { + "oit:protection-type," + "'oit:otsi-protection')" { description - "This list applies only when the 'from' LTP for this - connectivity matrix entry supports individual OTSi(G) + "This list applies only when the 'from' LTP for this + connectivity matrix entry supports individual OTSi(G) protection."; } key "ltp-ref"; config false; description - "The restricted list of the potential secondary LTPs that - can be selected when the 'to' LTP of this connectivity + "The restricted list of the potential secondary LTPs that + can be selected when the 'to' LTP of this connectivity matrix entry is selected as a working LTP. - If this list is empty, all the other LTPs that can be - reached from the 'from' LTP of this connectivity matrix + If this list is empty, all the other LTPs that can be + reached from the 'from' LTP of this connectivity matrix entry can be selected as secondary LTPs."; leaf ltp-ref { type leafref { path "../../../../../../../nt:termination-point/nt:tp-id"; } description - "The reference to the potential secondary LTP that can be - selected when the 'to' LTP of this connectivity matrix + "The reference to the potential secondary LTP that can be + selected when the 'to' LTP of this connectivity matrix entry is selected as a working LTP"; } leaf roadm-path-impairments { @@ -1610,10 +1610,10 @@ module ietf-optical-impairment-topology { + "/oit:roadm-path-impairments-id"; } description - "Pointer to ROADM optical impairments of the ROADM path - between the 'from' LTP of this connectivity matrix entry + "Pointer to ROADM optical impairments of the ROADM path + between the 'from' LTP of this connectivity matrix entry and this secondary LTP."; - } + } } } // augmentation connectivity-matrix to @@ -1644,7 +1644,7 @@ module ietf-optical-impairment-topology { + "/oit:roadm-path-impairments-id" ; } config false; - description "pointer to the list set of ROADM + description "pointer to the list set of ROADM optical impairments"; } } // augmentation local-link-connectivities @@ -1678,7 +1678,7 @@ module ietf-optical-impairment-topology { + "/oit:roadm-path-impairments-id" ; } config false; - description "pointer to the list set of ROADM optical + description "pointer to the list set of ROADM optical impairments"; } list llc-transceiver { @@ -1724,7 +1724,7 @@ module ietf-optical-impairment-topology { + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + "/oit:roadm-path-impairments-id" ; } - description "pointer to the list set of ROADM + description "pointer to the list set of ROADM optical impairments"; } } @@ -1732,25 +1732,25 @@ module ietf-optical-impairment-topology { when "derived-from-or-self(../../../tet:protection-type," + "'oit:otsi-protection')" { description - "This list applies only to TTPs that support individual + "This list applies only to TTPs that support individual OTSi(G) protection."; } key "ltp-ref"; config false; description - "The restricted list of the potential secondary LTPs that - can be selected when the LTP associated with this LLCP + "The restricted list of the potential secondary LTPs that + can be selected when the LTP associated with this LLCP entry is selected as a working LTP. - If this list is empty, all the other LTPs that can be + If this list is empty, all the other LTPs that can be reached by this TTP can be selected as secondary LTPs."; leaf ltp-ref { type leafref { path "../../../../../../nt:termination-point/nt:tp-id"; } description - "The reference to potential secondary LTP that can be - selected when the LTP associated with this LLCP entry is + "The reference to potential secondary LTP that can be + selected when the LTP associated with this LLCP entry is selected as a working LTP"; } leaf add-path-impairments { @@ -1768,9 +1768,10 @@ module ietf-optical-impairment-topology { + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + "/oit:roadm-path-impairments-id" ; } - description "pointer to the list set of ROADM + description "pointer to the list set of ROADM optical impairments"; } } } // augmentation local-link-connectivity } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-path-computation@2022-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-path-computation@2022-09-12.yang index 0e7053b65..fc99ef2d1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-path-computation@2022-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-path-computation@2022-09-12.yang @@ -6,7 +6,7 @@ module ietf-otn-path-computation { import ietf-te-path-computation { prefix "te-pc"; revision-date "2021-09-06"; - reference + reference "I-D.ietf-teas-yang-path-computation-14: Yang model for requesting Path Computation."; } @@ -21,8 +21,8 @@ module ietf-otn-path-computation { import ietf-layer1-types { prefix "l1-types"; - reference - "I-D.ietf-ccamp-layer1-types: + reference + "I-D.ietf-ccamp-layer1-types: A YANG Data Model for Layer 1 Types. "; } @@ -45,7 +45,7 @@ module ietf-otn-path-computation { "This module defines a model for requesting OTN Path Computation. - The model fully conforms to the Network Management + The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2022 IETF Trust and the persons @@ -67,7 +67,7 @@ module ietf-otn-path-computation { reference "RFC XXXX: A YANG Data Model for requesting Path Computation in an Optical Transport Network (OTN)"; - // RFC Ed.: replace XXXX with actual RFC number, update date + // RFC Ed.: replace XXXX with actual RFC number, update date // information and remove this note } @@ -87,6 +87,7 @@ module ietf-otn-path-computation { uses l1-types:otn-path-bandwidth; } } + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + "te-pc:tunnel-attributes/te-pc:te-bandwidth/" + "te-pc:technology" { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang index 5d4d550c9..90677e79e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang @@ -27,7 +27,7 @@ module ietf-otn-topology { reference "RFC YYYY: A YANG Data Model for Layer 1 Types"; } - // RFC Editor: replace YYYY with actual RFC number assigned to + // RFC Editor: replace YYYY with actual RFC number assigned to // [I-D.ietf-ccamp-layer1-types] and remove this note organization @@ -79,7 +79,7 @@ module ietf-otn-topology { description "Initial Revision"; reference - "RFC XXXX: A YANG Data Model for Optical Transport Network + "RFC XXXX: A YANG Data Model for Optical Transport Network Topology"; } // RFC Editor: replace XXXX with actual RFC number, update date @@ -91,8 +91,8 @@ module ietf-otn-topology { 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 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 @@ -105,8 +105,8 @@ module ietf-otn-topology { 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 + This container MUST NOT be present if there are other + presence containers or attributes indicating another type of label range."; } } @@ -115,6 +115,7 @@ module ietf-otn-topology { /* * Data nodes */ + augment "/nw:networks/nw:network/nw:network-types/" + "tet:te-topology" { container otn-topology { @@ -212,7 +213,7 @@ module ietf-otn-topology { } container client-svc { presence - "When present, indicates that the Link Termination Point + "When present, indicates that the Link Termination Point (LTP) supports Constant Bit Rate (CBR) client signals."; description "OTN LTP Service attributes."; @@ -883,6 +884,7 @@ module ietf-otn-topology { /* * 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/" @@ -979,6 +981,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/" @@ -1507,6 +1510,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-otn-tunnel@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang index 6947757b9..17f982588 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang @@ -13,8 +13,8 @@ module ietf-otn-tunnel { import ietf-layer1-types { prefix "l1-types"; - reference - "I-D.ietf-ccamp-layer1-types: + reference + "I-D.ietf-ccamp-layer1-types: A YANG Data Model for Layer 1 Types. "; } @@ -42,7 +42,7 @@ module ietf-otn-tunnel { description "This module defines a model for OTN Tunnel Services. - The model fully conforms to the Network Management + The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2023 IETF Trust and the persons @@ -222,6 +222,7 @@ module ietf-otn-tunnel { of the primay path."; uses l1-types:otn-label-range-info; } + augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" + "te:path-out-segment/te:label-restrictions/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang index d7f170c87..011c2c7ea 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang @@ -128,3 +128,4 @@ module ietf-platform-manifest { } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang index 5a1288a7c..f57b4c7e8 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang @@ -13,6 +13,7 @@ module ietf-resource-pm-types { Editor: Chaode Yu + Editor: Fabio Peruzzini @@ -151,3 +152,4 @@ module ietf-resource-pm-types { retrieving the pm parameters supported"; } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang index 1ba85e184..e67bcd062 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang @@ -6,6 +6,7 @@ module ietf-resource-pm { import ietf-yang-types { prefix "yang"; } + import ietf-resource-pm-types { prefix "rpm-types"; } @@ -149,6 +150,7 @@ module ietf-resource-pm { grouping monitoring-tasks-grouping { description "grouping of performance monitoring task"; + container monitor-tasks { description "Information of PM tasks"; @@ -673,6 +675,7 @@ module ietf-resource-pm { } } } + grouping indicator-data-instance-grouping { description "grouping for a performance data"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang index 78d59feb0..ba8988bd2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang @@ -165,6 +165,7 @@ module ietf-service-pm { description "Current bandwidth usage of the ingress traffic."; } + identity egress-bandwidth { base performance-parameter-type; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang index edafff23f..985a25fa9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang @@ -22,6 +22,8 @@ module ietf-sr-policy-types { WG List: Editor: Kamran Raza + Editor: Tarik Saleh + Editor: Robert Sawaya Editor: Zhuang Shunwan @@ -39,22 +41,24 @@ module ietf-sr-policy-types { description "This YANG module defines the essential types for the management of SR policy module. - Copyright (c) 2022 IETF Trust and the persons identified as + + Copyright (c) 2024 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 - (http://trustee.ietf.org/license-info). + (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."; + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices."; - // RFC Editor: replace XXXX with actual RFC number and remove - // this note + // RFC Editor: replace XXXX with actual RFC number and remove + // this note - revision 2024-03-04 { + revision "2024-03-04" { // RFC Editor: replace the above date 2024-03-04 with the date of // publication and remove this note. @@ -311,7 +315,6 @@ module ietf-sr-policy-types { description "Binding SID operational state type"; } - typedef policy-admin-state { type enumeration { enum UP { @@ -442,7 +445,7 @@ module ietf-sr-policy-types { type uint32 { range "1..4294967295"; } - description "SID algorithm type"; + description "Policy color type"; } typedef name-type { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2019-11-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2019-11-04.yang deleted file mode 100644 index 38f97649f..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2019-11-04.yang +++ /dev/null @@ -1,1047 +0,0 @@ -module ietf-sr-policy { - - namespace "urn:ietf:params:xml:ns:yang:ietf-sr-policy"; - - prefix "sr-policy"; - - import ietf-inet-types { - prefix "inet"; - } - - import ietf-interfaces { - prefix if; - } - - import ietf-routing { - prefix "rt"; - } - - import ietf-routing-types { - prefix "rt-types"; - } - - import ietf-yang-types { - prefix "yang"; - } - - import ietf-srv6-types { - prefix "srv6-types"; - } - - import ietf-sr-policy-types { - prefix "sr-policy-types"; - } - - organization "IETF SPRING Working Group"; - - contact - "WG Web: - WG List: - - Editor: Kamran Raza - - - Editor: Zhuang Shunwan - - - Editor: Daniel Voyer - - - Editor: Muhammad Durrani - - - Editor: Satoru Matsushima - - - Editor: Pavan Vishnu Beeram - - "; - - description - "This module contains a collection of YANG definitions - for SR policy module. - - Copyright (c) 2019 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info)."; - - revision "2019-11-04" { - description - "Changes in keys for policy and its candidate paths"; - reference - "draft-raza-spring-sr-policy-yang"; - } - - revision "2019-07-08" { - description - "Dynamic TE candidate-path support"; - reference - "draft-raza-spring-sr-policy-yang"; - } - - revision "2018-07-01" { - description - "Initial version"; - reference - "draft-raza-spring-sr-policy-yang"; - } - - grouping segment_config { - description "Segment properties grouping"; - leaf index { - type uint32; - description "Segment index"; - } - leaf type { - type sr-policy-types:segment-type; - description "Segment type"; - } - container segment-types { - description "Types of segments"; - container segment-type-1 { - description - "Segment declared by MPLS label"; - leaf sid-value { - type rt-types:mpls-label; - description "MPLS label value"; - } - } - container segment-type-2 { - description - "Segment declared by SRv6 SID value"; - leaf sid-value { - type srv6-types:srv6-sid; - description "SRv6 SID value"; - } - } - container segment-type-3 { - description - "Segment declared by IPv4 Prefix with optional SR Algorithm"; - leaf ipv4-address { - type inet:ipv4-address; - description "Segment IPv4 address"; - } - leaf algorithm { - type uint8; - description "Prefix SID algorithm identifier"; - } - } - container segment-type-4 { - description - "Segment declared by IPv6 Global Prefix with optional - SR Algorithm for SR-MPLS"; - leaf ipv6-address { - type inet:ipv6-address; - description "Segment IPv6 address"; - } - leaf algorithm { - type uint8; - description "Prefix SID algorithm identifier"; - } - } - container segment-type-5 { - description - "Segment declared by IPv4 Prefix with Local Interface ID"; - leaf ipv4-address { - type inet:ipv4-address; - description "Node IPv4 address"; - } - leaf interface-identifier { - type uint32; - description "local interface identifier"; - } - } - container segment-type-6 { - description - "Segment declared by IPv4 Addresses for link endpoints - as Local, Remote pair"; - leaf local-ipv4-address { - type inet:ipv4-address; - description "Segment local IPv4 adjacency address"; - } - leaf remote-ipv4-address { - type inet:ipv4-address; - description "Segment remote IPv4 adjacency address"; - } - } - container segment-type-7 { - description - "Segment declared by IPv6 Prefix and Interface ID for - link endpoints as Local, Remote pair for SR-MPLS"; - leaf local-ipv6-address { - type inet:ipv6-address; - description "Local link IPv6 address"; - } - leaf local-interface-identifier { - type uint32; - description "Local interface identifier"; - } - leaf remote-ipv6-address { - type inet:ipv6-address; - description "Remote link IPv6 address"; - } - leaf remote-interface-identifier { - type uint32; - description "Remote interface identifier"; - } - } - container segment-type-8 { - description - "Segment declared by IPv6 Addresses for link endpoints as - Local, Remote pair for SR-MPLS"; - leaf local-ipv6-address { - type inet:ipv6-address; - description "Segment local IPv6 adjacency address"; - } - leaf remote-ipv6-address { - type inet:ipv6-address; - description "Segment remote IPv6 adjacency address"; - } - } - container segment-type-9 { - description - "Segment declared by IPv6 Global Prefix with optional - SR Algorithm for SRv6"; - leaf ipv6-address { - type inet:ipv6-address; - description "Segment IPv6 prefix"; - } - leaf algorithm { - type uint8; - description "Prefix SID algorithm identifier"; - } - } - container segment-type-10 { - description - "Segment declared by IPv6 Prefix and Interface ID for - link endpoints as Local, Remote pair for SRv6"; - leaf local-ipv6-address { - type inet:ipv6-address; - description "Local link IPv6 address"; - } - leaf local-interface-identifier { - type uint32; - description "Local interface identifier"; - } - leaf remote-ipv6-address { - type inet:ipv6-address; - description "Remote link IPv6 address"; - } - leaf remote-interface-identifier { - type uint32; - description "Remote interface identifier"; - } - } - container segment-type-11 { - description - "Segment declared by IPv6 Addresses for link endpoints as - Local, Remote pair for SRv6"; - leaf local-ipv6-address { - type inet:ipv6-address; - description "Segment local IPv6 adjacency address"; - } - leaf remote-ipv6-address { - type inet:ipv6-address; - description "Segment remote IPv6 adjacency address"; - } - } - } - leaf validate { - type boolean; - default 'false'; - description "Indicates whether the segment should be validated. The default - applies to all segments other than the first segment. For the - first segment, validation is always done."; - } - } - - grouping segment-properties { - description - "SR segment properties grouping"; - uses segment_config; - } - - grouping attributes { - description - "Grouping containing attributes applicable to all SR policies"; - - container attributes { - description - "Attributes applicable to SR policies"; - - uses affinity-mapping; - uses segment-lists; - uses explicit-binding-sid-rules; - } - } - grouping segment-lists { - description - "Segment lists grouping"; - container segment-lists { - description "Segment-lists properties"; - - list segment-list { - key "name"; - description "Segment-list properties"; - leaf name { - type string; - description "Segment-list name"; - } - container segments { - description - "Segments for given segment list"; - - list segment { - key "index"; - description "Configure Segment/hop at the index"; - uses segment-properties; - } - } - } - } - } - - grouping binding-sid_config { - description - "Binding SID configuration properties grouping"; - leaf dataplane { - type sr-policy-types:dataplane-type; - description "Binding SID dataplane type"; - } - leaf value { - type sr-policy-types:sid-value-type; - description "Binding SID value"; - } - } - - grouping forwarding-counters { - description - "Grouping for counters"; - container counters { - config false; - description - "Counters containing stats related to forwarding"; - - leaf pkts { - type yang:counter64; - description "Number of packets forwarded"; - } - leaf octets { - type yang:counter64; - units "byte"; - description "Number of bytes forwarded"; - } - } - } - - grouping binding-sid_state { - description - "Binding SID state properties grouping"; - leaf alloc-mode { - type sr-policy-types:binding-sid-alloc-mode; - config false; - description "Binding SID type"; - } - leaf allocated-sid { - type sr-policy-types:sid-value-type; - config false; - description "Allocated SID value for the Binding SID"; - } - leaf oper-state { - type sr-policy-types:binding-sid-oper-state; - config false; - description - "Binding SID operational state"; - } - } - - grouping binding-sid-properties { - description - "Binding SID properties grouping"; - container binding-sid { - description "Binding Segment ID"; - uses binding-sid_config; - uses binding-sid_state; - } - } - - grouping mpls-label-stack { - description - "Grouping for MPLS label stack"; - - list labels { - key "label"; - description - "Stack containing MPLS labels"; - - leaf label { - type rt-types:mpls-label; - description - "MPLS label value"; - } - } - } - - grouping srv6-sid-stack { - description - "Grouping for SRv6 label stack"; - - list sids { - key "sid"; - description - "Stack containing SRv6 SIDs"; - - leaf sid { - type srv6-types:srv6-sid; - description - "SRv6 sid value"; - } - } - } - - grouping path-forwarding_state { - description "Policy Forwarding path information"; - leaf path-id { - type uint8; - description "Primary path id"; - } - leaf next-hop-address { - type inet:ip-address; - description "Nexthop address"; - } - leaf next-hop-table-id { - type uint32; - description "Table ID for nexthop address"; - } - leaf interface { - type if:interface-ref; - description "Outgoing interface handle"; - } - container sid-list { - description - "Outgoing sid stack"; - choice dataplanetype { - description - "Outgoing sids dataplane choice"; - case mpls { - uses mpls-label-stack; - } - case srv6 { - uses srv6-sid-stack; - } - } - } - leaf is-protected { - type boolean; - description "Is this path protected ?"; - } - leaf is-pure-backup { - type boolean; - description "Is this path a pure backup ?"; - } - leaf backup-path-id { - type uint8; - description "Backup path id"; - } - leaf weight { - type uint32; - description "Path's weight for W-ECMP balancing"; - } - } - - grouping cpath-cmn-properties { - description - "Common properties of the candidate path"; - - leaf is-valid { - type boolean; - config false; - description - "True if the segment-list is valid, False otherwise"; - - } - - container forwarding-paths { - config false; - description - "Forwarding state of paths"; - list forwarding-path { - key "path-id"; - description "Forwarding path"; - uses path-forwarding_state; - } - } -} - - grouping explicit-path-properties { - description - "Explicit path properties of the candidate path"; - container segment-lists { - description - "Path segment list(s) properties"; - list segment-list { - key "name-ref"; - description "SR policy candidate path segment lists"; - - leaf name-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:attributes/sr-policy:segment-lists/sr-policy:segment-list/sr-policy:name"; - } - description "Reference to segment-list name"; - } - leaf weight { - type uint32; - description "Segment-list weighted loadshare"; - } - } - } - } - - grouping affinity-mapping { - description "Affinity-map grouping"; - - container affinity-map { - description - "Mapping of affinity names to bit position"; - list affinity { - key "name"; - unique "bit-position"; - leaf name { - type string; - description - "Name of the affinity"; - } - leaf bit-position { - type uint16; - description - "The affinity entry in this list is mapped to the this bit-position in the - affinity bitmap"; - } - - description "Affinity"; - } - } - } - grouping dynamic-path-properties { - description - "Dynamic path properties of the candidate path"; - leaf sid-dataplane-type { - type sr-policy-types:dataplane-type; - description - "The dataplane type for the sid"; - } - - container constraints { - description "Constraints for the dynamic path computation"; - container affinities { - description "Affinity constraints on the computed dynamic path"; - leaf-list exclude-any { - type string; - description - "The link is excluded if it has any of these affinities."; - } - leaf-list include-any { - type string; - description - "The link is accepted if it has any of these affinities"; - } - leaf-list include-all { - type string; - description - "The link is accepted if it has all these affinities"; - } - } - - container bounds { - description "Upper-bound constraints on the computed dynamic path"; - leaf igp-metric-bound { - type uint32; - description - "Path is invalid if its IGP metric exceeds this value"; - } - leaf te-metric-bound { - type uint32; - description - "Path is invalid if its TE metric exceeds this value"; - } - leaf latency-metric-bound { - type uint32; - units "microsecond"; - description - "Path is invalid if its latency exceeds this value"; - } - leaf segment-bound { - type uint32; - description - "Path is invalid if it has more segments than this value"; - } - } - container segment-rules { - description "Constraints on the segments to be used in the path"; - leaf sid-algorithm { - type uint8 { - range "128..255"; - } - description - "The prefix-sid algorithm to be used in path calculation"; - } - } - container disjoint-path { - description "Path disjointness constraints"; - leaf group-id { - type uint32 { range "1..65535"; } - description ""; - } - leaf disjointness-type { - type identityref { base sr-policy-types:path-disjointness; } - description - "Type of disjointness computation used to find the path"; - } - leaf subgroup-id { - type uint32 { range "1..65535"; } - description ""; - } - } - } - } - - grouping candidate-path_state { - description - "Candidate path state properties grouping"; - leaf is-best-candidate-path { - type boolean; - default 'false'; - config false; - description - "True if the candidate path is the best candidate path, False otherwise"; - } - leaf non-selection-reason { - type identityref { - base sr-policy-types:candidate-path-not-selected-reason; - } - config false; - description - "Candidate path not selected reason"; - } - } - - grouping policy-properties_config { - description - "SR policy configuration grouping"; - leaf name { - type string { - length "1..59"; - } - description "SR policy name"; - } - leaf color { - type uint32 { - range "1..4294967295"; - } - description "Color associated with the policy"; - } - leaf endpoint { - type inet:ip-address; - description "Policy end point IP address"; - } - leaf description { - type string; - description "Description of the policy"; - } - leaf admin-state { - type sr-policy-types:policy-admin-state; - default 'UP'; - description - "SR policy administrative state, true for - enabled, false for disabled"; - } - } - - grouping policy-properties_state { - description - "SR policy property grouping"; - leaf oper-state { - type sr-policy-types:policy-oper-state; - config false; - description - "SR policy operational state"; - } - leaf transition-count { - type uint32; - config false; - description "Indicates number of up/down transitions"; - } - leaf up-time { - type yang:date-and-time; - config false; - description "Policy up time in seconds"; - } - leaf down-time { - type yang:date-and-time; - config false; - description "Policy down time in seconds"; - } - } - - grouping policy-properties { - description - "SR policy properties"; - uses policy-properties_state; - uses binding-sid-properties; - uses forwarding-counters; - } - - grouping candidate-path-type { - description "Candidate path type grouping"; - choice type { - description - "Type of candidate paths"; - case explicit { - description "Candidate path with explicitly defined set/s of segment-lists"; - uses explicit-path-properties; - } - case dynamic { - description "Candidate path with dynamic computed segment-lists"; - uses dynamic-path-properties; - } - } - } - grouping candidate-paths { - description "SR policy candidate path grouping"; - container candidate-paths { - description "SR policy candidate path(s) "; - - list candidate-path { - key "protocol-origin originator discriminator"; - unique "preference"; - - description "SR policy Candidate path(s) list entry"; - - leaf protocol-origin { - type sr-policy-types:protocol-origin-type; - description - "Instantiation mechanism used to create the candidate path"; - } - leaf originator { - type string; - description - "Identifier (concatenation of ASN and node-address) of the node - that signalled/instantiated the candidate path on headend"; - } - leaf discriminator { - type uint32; - description "Candidate path distinguisher"; - } - - leaf preference { - type uint32 { - range "1..65535"; - } - mandatory true; - description "Candidate path preference"; - } - leaf name { - type string; - description "Candidate path name"; - } - leaf description { - type string; - description "Candidate path description"; - } - container binding-sid { - if-feature capability-candidate-path-binding-sid; - description - "Binding segment ID"; - uses binding-sid_config; - } - uses candidate-path-type; - uses candidate-path_state; - uses cpath-cmn-properties; - } - } - } - - grouping policies { - description "SR policy grouping"; - container policies { - description "SR Policy container"; - - list policy { - key "color endpoint"; - unique "name"; - - description "SR Policy properties"; - leaf color { - type uint32 { - range "1..4294967295"; - } - description "Color associated with the policy"; - } - leaf endpoint { - type inet:ip-address; - description "Policy end point IP address"; - } - leaf name { - type string { - length "1..59"; - } - description "SR policy name"; - } - leaf description { - type string; - description "Description of the policy"; - } - leaf admin-state { - type sr-policy-types:policy-admin-state; - default 'UP'; - description - "SR policy administrative state, true for - enabled, false for disabled"; - } - leaf priority { - type uint8; - default 128; - description "Priority considered when policy is recomputed due to topology changes"; - } - - uses policy-properties; - - uses candidate-paths; - } - } - } - - grouping explicit-binding-sid-rules { - description - "Grouping for explicit binding sid rules"; - - list explicit-binding-sid-rules { - key "index"; - description - "Explicit binding sid rules applicable for all policies"; - leaf index { - type uint32; - description "Explicit binding SID rules list index"; - } - leaf rule { - type sr-policy-types:explicit-binding-sid-rule-type; - description "Explicit binding sid rule"; - } - } - } - - augment "/rt:routing" { - description - "This augments routing-instance configuration with segment-routing sr-policy."; - container segment-routing { - description "Main segment routing container"; - container traffic-engineering { - description "Traffic-engineering container"; - - uses attributes; - - uses policies; - } - } - } - - /* Notifications */ - - notification sr-policy-oper-state-change-event { - description - "Notification event when the operational state of the SR policy changes"; - leaf policy-name-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:name"; - } - description "Reference to sr-policy name"; - } - - leaf policy-color-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:color"; - } - description "Reference to sr-policy color"; - } - - leaf policy-endpoint-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:endpoint"; - } - description "Reference to sr-policy endpoint"; - } - - leaf policy-new-oper-state { - type sr-policy-types:policy-oper-state; - description "New operational state of the SR policy"; - } - - leaf policy-down-reason { - type identityref { - base sr-policy-types:policy-down-reason; - } - description "Down reason if the SR policy's new operational state is down"; - } - } - - notification sr-policy-candidate-path-change-event { - description - "Notification event when candidate path changes for SR policy"; - - leaf policy-name-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:name"; - } - description "Reference to sr-policy name"; - } - - leaf policy-color-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:color"; - } - description "Reference to sr-policy color"; - } - - leaf policy-endpoint-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:endpoint"; - } - description "Reference to sr-policy endpoint"; - } - - leaf existing-preference { - type uint32; - description "Existing candidate path preference"; - } - - leaf new-preference { - type uint32; - description "New candidate path preference"; - } - } - - notification sr-policy-binding-sid-unavailable-event { - description - "Notification event when the binding sid of sr-policy is unavailable"; - - leaf policy-name-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:name"; - } - description "Reference to sr-policy name"; - } - - leaf policy-color-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:color"; - } - description "Reference to sr-policy color"; - } - - leaf policy-endpoint-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:endpoint"; - } - description "Reference to sr-policy endpoint"; - } - - leaf policy-binding-sid-value-ref { - if-feature capability-candidate-path-binding-sid; - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:binding-sid/sr-policy:value"; - } - description "Reference to sr-policy binding-sid value"; - } - - leaf reason { - type identityref { - base sr-policy-types:binding-sid-unavailable-reason; - } - description - "Reason why the binding sid is unavailable"; - } - } - - notification sr-policy-candidate-path-binding-sid-mismatch-event { - description - "Notification event when binding sid of requested candidate path - is different from the binding sid of the existing candidate path"; - - leaf policy-color-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:color"; - } - description "Reference to sr-policy color"; - } - - leaf policy-endpoint-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:endpoint"; - } - description "Reference to sr-policy endpoint"; - } - - leaf existing-candidate-path-protocol-origin-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:candidate-paths/sr-policy:candidate-path/sr-policy:protocol-origin"; - } - description "Reference to existing candidate path protocol origin"; - } - - leaf existing-candidate-path-preference-ref { - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:candidate-paths/sr-policy:candidate-path/sr-policy:preference"; - } - description "Reference to existing candidate path preference"; - } - leaf existing-candidate-path-binding-sid-dataplane-ref { - if-feature capability-candidate-path-binding-sid; - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:candidate-paths/sr-policy:candidate-path/sr-policy:binding-sid/sr-policy:dataplane"; - } - description "Reference to existing candidate path binding sid dataplane type"; - } - - leaf existing-candidate-path-binding-sid-value-ref { - if-feature capability-candidate-path-binding-sid; - type leafref { - path "/rt:routing/sr-policy:segment-routing/sr-policy:traffic-engineering/sr-policy:policies/sr-policy:policy/sr-policy:candidate-paths/sr-policy:candidate-path/sr-policy:binding-sid/sr-policy:value"; - } - description "Reference to existing candidate path binding sid value"; - } - - leaf conflicting-candidate-path-protocol-origin { - type uint8; - description "Conflicting candidate path protocol origin"; - } - - leaf conflicting-candidate-path-preference { - type uint32; - description "Conflicting candidate path preference"; - } - - leaf conflicting-candidate-path-binding-sid-dataplane { - type sr-policy-types:dataplane-type; - description "Conflicting candidate path binding sid dataplane type"; - } - - leaf conflicting-candidate-path-binding-sid-value { - type sr-policy-types:sid-value-type; - description "Conflicting candidate path binding sid value"; - } - } - - /* Features */ - - feature capability-candidate-path-binding-sid { - description - "This feature enables the capability of specifying binding-sid - for a candidate path."; - } -} // module diff --git a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2024-11-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2024-11-22.yang new file mode 100644 index 000000000..231e14dd7 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy@2024-11-22.yang @@ -0,0 +1,1490 @@ +module ietf-sr-policy { + + namespace "urn:ietf:params:xml:ns:yang:ietf-sr-policy"; + + prefix "sr-policy"; + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-interfaces { + prefix if; + } + + import ietf-routing { + prefix "rt"; + } + + import ietf-routing-types { + prefix "rt-types"; + } + + import ietf-yang-types { + prefix "yang"; + } + + import ietf-srv6-types { + prefix "srv6-types"; + } + + import ietf-sr-policy-types { + prefix "sr-policy-types"; + } + + import ietf-te-types { + prefix "te-types"; + } + + organization "IETF SPRING Working Group"; + contact + "WG Web: + WG List: + + Editor: Kamran Raza + + Editor: Tarik Saleh + + + Editor: Robert Sawaya + + + Editor: Zhuang Shunwan + + + Editor: Daniel Voyer + + + Editor: Muhammad Durrani + + + Editor: Satoru Matsushima + + + Editor: Pavan Vishnu Beeram + + "; + + description + "This module contains a collection of YANG definitions + for SR policy module. + + Copyright (c) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices. + + 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."; + + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + + revision "2024-11-22" { + // RFC Editor: replace the above date 2024-11-22 with the date of + // publication and remove this note. + + description + "Fix SR policy YANG model"; + reference + "RFC XXXX: YANG Data Model for Segment-routing Policy"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision "2024-03-04" { + // RFC Editor: replace the above date 2024-03-04 with the date of + // publication and remove this note. + + description + "Alignment with SR policy architecture RFC9256"; + reference + "RFC XXXX: YANG Data Model for Segment-routing Policy"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision "2022-03-28" { + description + "Alignment with SR policy architecture"; + reference + "draft-ietf-spring-sr-policy-yang"; + } + + revision "2019-11-04" { + description + "Changes in keys for policy and its candidate paths"; + reference + "draft-raza-spring-sr-policy-yang"; + } + + revision "2019-07-08" { + description + "Dynamic TE candidate-path support"; + reference + "draft-raza-spring-sr-policy-yang"; + } + + revision "2018-07-01" { + description + "Initial version"; + reference + "draft-raza-spring-sr-policy-yang"; + } + + grouping srv6-bsid-type-b-config { + description "SRv6 BSID Type-B config grouping"; + + leaf sid-behavior { + type identityref { + base srv6-types:srv6-endpoint-type; + } + description "SRv6 BSID behavior"; + } + + container sid-structure { + description "SRv6 BSID structure"; + uses srv6-types:srv6-sid-structure; + } + } + + grouping segment_config { + description "Segment properties grouping"; + leaf index { + type uint32; + description "Segment index"; + } + leaf type { + type identityref { + base sr-policy-types:segment-type; + } + mandatory true; + description "Segment type"; + } + + container sr-mpls { + description "SR-MPLS specific types"; + + container Type-A { + description + "Segment declared by MPLS label"; + leaf value { + type rt-types:mpls-label; + description "MPLS label value"; + } + } + + container Type-C { + description + "Segment declared by IPv4 Prefix with optional SR Algorithm + for SR-MPLS"; + leaf ipv4-address { + type inet:ipv4-address; + description "Segment IPv4 address"; + } + leaf algorithm { + type uint8; + description "Prefix SID algorithm identifier"; + } + } + + container Type-D { + description + "Segment declared by IPv6 Global Prefix with optional + SR Algorithm for SR-MPLS"; + leaf ipv6-address { + type inet:ipv6-address; + description "Segment IPv6 address"; + } + leaf algorithm { + type uint8; + description "Prefix SID algorithm identifier"; + } + } + + container Type-E { + description + "Segment declared by IPv4 Prefix with Local Interface ID - + SR-MPLS"; + leaf ipv4-address { + type inet:ipv4-address; + description "Node IPv4 address"; + } + leaf interface-identifier { + type uint32; + description "local interface identifier"; + } + } + + container Type-F { + description + "Segment declared by IPv4 Addresses for link endpoints + as Local, Remote pair - SR-MPLS"; + leaf local-ipv4-address { + type inet:ipv4-address; + description "Segment local IPv4 adjacency address"; + } + leaf remote-ipv4-address { + type inet:ipv4-address; + description "Segment remote IPv4 adjacency address"; + } + } + + container Type-G { + description + "Segment declared by IPv6 Prefix and Interface ID for + link endpoints as Local, Remote pair for SR-MPLS"; + leaf local-ipv6-address { + type inet:ipv6-address; + description "Local link IPv6 address"; + } + leaf local-interface-identifier { + type uint32; + description "Local interface identifier"; + } + leaf remote-ipv6-address { + type inet:ipv6-address; + description "Remote link IPv6 address"; + } + leaf remote-interface-identifier { + type uint32; + description "Remote interface identifier"; + } + } + + container Type-H { + description + "Segment declared by IPv6 Addresses for link endpoints as + Local, Remote pair for SR-MPLS"; + leaf local-ipv6-address { + type inet:ipv6-address; + description "Segment local IPv6 adjacency address"; + } + leaf remote-ipv6-address { + type inet:ipv6-address; + description "Segment remote IPv6 adjacency address"; + } + } + } // sr-mpls + + container srv6 { + description "SRv6 specific types"; + + container Type-B { + description + "Segment declared by SRv6 SID value"; + leaf value { + type srv6-types:srv6-sid; + description "SRv6 SID value"; + } + + uses srv6-bsid-type-b-config; + } + + container Type-I { + description + "Segment declared by IPv6 Global Prefix with optional + SR Algorithm for SRv6"; + leaf ipv6-address { + type inet:ipv6-address; + description "Segment IPv6 prefix"; + } + leaf algorithm { + type uint8; + description "Prefix SID algorithm identifier"; + } + } + container Type-J { + description + "Segment declared by IPv6 Prefix and Interface ID for + link endpoints as Local, Remote pair for SRv6"; + leaf local-ipv6-address { + type inet:ipv6-address; + description "Local link IPv6 address"; + } + leaf local-interface-identifier { + type uint32; + description "Local interface identifier"; + } + leaf remote-ipv6-address { + type inet:ipv6-address; + description "Remote link IPv6 address"; + } + leaf remote-interface-identifier { + type uint32; + description "Remote interface identifier"; + } + } + container Type-K { + description + "Segment declared by IPv6 Addresses for link endpoints as + Local, Remote pair for SRv6"; + leaf local-ipv6-address { + type inet:ipv6-address; + description "Segment local IPv6 adjacency address"; + } + leaf remote-ipv6-address { + type inet:ipv6-address; + description "Segment remote IPv6 adjacency address"; + } + } + } // srv6 + + leaf validate { + type boolean; + default 'false'; + description + "Indicates whether the segment should be validated. + The default applies to all segments other than the first + segment. For the first segment, validation is always done."; + } + } + + grouping segment-properties { + description + "SR segment properties grouping"; + uses segment_config; + } + + grouping attributes { + description + "Grouping containing attributes applicable to all SR policies"; + + container attributes { + description + "Attributes applicable to SR policies"; + + /* uses srlg; + uses affinity-mapping; + */ // TODO: Beyond the scope of this model + uses segment-lists; + uses explicit-binding-sid-rules; + } + } + + grouping segment-lists { + description + "Segment lists grouping"; + container segment-lists { + description "Segment-lists properties"; + + list segment-list { + key "name"; + description "Segment-list properties"; + leaf name { + type string; + description "Segment-list name"; + } + container segments { + description + "Segments for given segment list"; + + list segment { + key "index"; + description "Configure Segment/hop at the index"; + uses segment-properties; + } + } + } + } + } + + grouping binding-sid_config { + description + "Binding SID configuration properties grouping"; + leaf dataplane { + type sr-policy-types:dataplane-type; + description "Binding SID dataplane type"; + } + leaf value { + type sr-policy-types:sid-value-type; + description "Binding SID value"; + } + + container srv6 { + description + "SRv6 configuration"; + leaf locator-name { + type srv6-types:srv6-locator-name-type; + description "Locator name used to allocate SRv6 binding SID"; + } + uses srv6-bsid-type-b-config; + } + } + + grouping forwarding-counters { + description + "Grouping for counters"; + container counters { + config false; + description + "Counters containing stats related to forwarding"; + + leaf pkts { + type yang:counter64; + description "Number of packets forwarded"; + } + leaf octets { + type yang:counter64; + units "byte"; + description "Number of bytes forwarded"; + } + } + } + + grouping binding-sid_state { + description + "Binding SID state properties grouping"; + leaf alloc-mode { + type sr-policy-types:binding-sid-alloc-mode; + config false; + description "Binding SID type"; + } + leaf allocated-sid { + type sr-policy-types:sid-value-type; + config false; + description "Allocated SID value for the Binding SID"; + } + leaf oper-state { + type sr-policy-types:binding-sid-oper-state; + config false; + description + "Binding SID operational state"; + } + } + + grouping binding-sid-properties { + description + "Binding SID properties grouping"; + container binding-sid { + description "Binding Segment ID"; + uses binding-sid_config; + uses binding-sid_state; + } + } + + grouping mpls-label-stack { + description + "Grouping for MPLS label stack"; + + list labels { + key "index"; + description + "Stack containing MPLS labels"; + + leaf index { + type uint32; + description "A unique ID of an MPLS label in labels list"; + } + leaf label { + type rt-types:mpls-label; + description + "MPLS label value"; + } + } + } + + grouping srv6-sid-stack { + description + "Grouping for SRv6 label stack"; + + list sids { + key "index"; + description + "Stack containing SRv6 SIDs"; + + leaf index { + type uint32; + description "A unique ID of an SRv6 sid in sid list"; + } + leaf sid { + type srv6-types:srv6-sid; + description + "SRv6 sid value"; + } + } + } + + grouping path-forwarding_state { + description "Policy Forwarding path information"; + leaf path-id { + type uint8; + description "Primary path id"; + } + leaf next-hop-address { + type inet:ip-address; + description "Nexthop address"; + } + leaf next-hop-table-id { + type uint32; + description "Table ID for nexthop address"; + } + leaf interface { + type if:interface-ref; + description "Outgoing interface handle"; + } + container sid-list { + description + "Outgoing sid stack"; + choice dataplanetype { + description + "Outgoing sids dataplane choice"; + case mpls { + uses mpls-label-stack; + } + case srv6 { + uses srv6-sid-stack; + } + } + } + leaf is-protected { + type boolean; + description "Is this path protected ?"; + } + leaf is-pure-backup { + type boolean; + description "Is this path a pure backup ?"; + } + leaf backup-path-id { + type uint8; + description "Backup path id"; + } + leaf weight { + type uint32; + description "Path's weight for W-ECMP balancing"; + } + } + + grouping cpath-cmn-properties { + description + "Common properties of the candidate path"; + + leaf is-active { + type boolean; + config false; + description + "True if the candidate path is valid and used to forward + traffic, False otherwise"; + } + + leaf is-valid { + type boolean; + config false; + description + "True if at least one segment-list is valid, + False otherwise"; + } + + container forwarding-paths { + config false; + description + "Forwarding state of paths"; + list forwarding-path { + key "path-id"; + description "Forwarding path"; + uses path-forwarding_state; + } + } + } + + grouping explicit-path-properties { + description + "Explicit path properties of the candidate path"; + container segment-lists { + description + "Path segment list(s) properties"; + list segment-list { + key "name-ref"; + description "SR policy candidate path segment lists"; + + leaf name-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:attributes/" + + "sr-policy:segment-lists/" + + "sr-policy:segment-list/" + + "sr-policy:name"; + } + description "Reference to segment-list name"; + } + leaf weight { + type uint32; + default 1; + description "Segment-list weighted loadshare"; + } + leaf is-valid { + type boolean; + config false; + description + "True if the segment-list is valid, False otherwise"; + } + } + } + } + + grouping affinity-mapping { + description "Affinity-map grouping"; + + container affinity-map { + description + "Mapping of affinity names to bit position"; + list affinity { + key "name"; + unique "bit-position"; + leaf name { + type string; + description + "Name of the affinity"; + } + leaf bit-position { + type uint16; + description + "The affinity entry in this list is mapped to the this + bit-position in the affinity bitmap"; + } + + description "Affinity"; + } + } + } + + grouping srlg { + description "SRLG grouping"; + + container srlgs { + description "SRLG"; + list srlg { + key "name"; + + leaf name { + type string; + description + "Name of the SRLG"; + } + + leaf description { + type string; + description + "Description of the SRLG"; + } + leaf value { + type uint32; + mandatory true; + description + "The associated value (for advertisements etc.) "; + } + + description "SRLG"; + } + } + } + + grouping cpath-optimization-objs { + description "Candidate-path optimization objective grouping"; + + container optimization-objectives { + description + "Optimization objectives for the dynamic path computation"; + container minimize-metric { + description "The metric for which the path is optimized"; + leaf metric-type { + type sr-policy-types:metric-type; + description "Metric type"; + } + + container margin { + description + "The margin by which two paths with similar metric-type + would be considered equal"; + leaf type { + type sr-policy-types:margin-type; + description "Margin type"; + } + leaf value { + type uint32; + description "Margin value"; + } + leaf computed-value { + type uint32; + config false; + description "Computed metric value"; + } + } + } + } + } + + grouping cpath-constraints { + description "Candidate-path constraints grouping"; + + container constraints { + description "Constraints for the dynamic path computation"; + + container srlg { // the rule applies per link + description "SRLG constraints on the computed dynamic path"; + + leaf-list exclude-any { + type string; + description + "The link is excluded if it has any of these SRLG."; + } + leaf-list include-any { + type string; + description + "The link is accepted if it has any of these SRLG"; + } + + leaf-list include-all { + type string; + description + "The link is accepted if it has all these SRLG"; + } + } + + container affinity { // the rule applies per link + description + "Affinity constraints on the computed dynamic path"; + + leaf-list exclude-any { + type string; + description + "The link is excluded if it has any of these affinities." + ; + } + + leaf-list include-any { + type string; + description + "The link is accepted if it has any of these affinities"; + } + leaf-list include-all { + type string; + description + "The link is accepted if it has all these affinities"; + } + } + + container ip-address { + // the rule applies to e2e path and not per link + description + "IP address constraints on the computed dynamic path"; + + leaf-list exclude { + type inet:ip-address; + description + "Must exclude the links that has any of these IP + addresses."; + } + leaf-list include-any { + type inet:ip-address; + description + "Must include atleast 1 link (or possibly more) with any + of these IP addresses."; + } + leaf-list include-all { + type inet:ip-address; + description + "Must include all the links that have any of these IP + addresses."; + } + } + + container upper-bounds { + description + "Upper-bound constraints on the computed dynamic path"; + + container cumulative-metric { + description + "Path is invalid if its metric exceeds this value"; + + leaf metric-type { + type sr-policy-types:metric-type; + description "Metric type"; + } + + leaf value { type uint32; description "Cumulative value"; } + } + + leaf max-sids { + type uint32; + description + "Path is invalid if it has more SIDs than this value"; + } + } + + container segment-rules { + description + "Constraints on the segments to be used in the path"; + leaf sid-algorithm { + type sr-policy-types:sid-algorithm-type; + description + "The prefix-sid algorithm to be used in + + path calculation"; + } + + leaf sid-protection-eligibility { + // currently applies to adj-sid segments only + type sr-policy-types:sid-protection-eligibility-type; + description "SID protection eligibility"; + } + } + + container disjoint-path { + description "Path disjointness constraints"; + + leaf disjointness-type { + type te-types:te-path-disjointness; + description + "Type of disjointness computation used to find the path"; + } + + leaf association-group-id { + type uint16; + mandatory true; + description "Association group Id"; + } + + leaf association-source { + type inet:ip-address; + mandatory true; + description "Association source address"; + } + + leaf association-extended-id { + type yang:hex-string; + description + "Association extended identifier."; + reference + "RFC6780"; + } + } + + container bandwidth { + description "Bandwidth constraints"; + + leaf requested { + type uint32; + description + "Requested bandwidth expressed in bytes per second"; + } + leaf reserved { + type uint32; + config false; + description + "Reserved bandwidth expressed in bytes per second"; + } + } + + leaf max-sids { + type uint32; + description "Maximum number of SIDs in a segment-list"; + } + } + } + + grouping dynamic-path-properties { + description + "Dynamic path properties of the candidate path"; + container segment-list { + description + "Segment-list properties"; + leaf segment-list-dataplane-type { + type sr-policy-types:dataplane-type; + mandatory true; + description + "The dataplane type for the segment-list"; + } + leaf is-valid { + type boolean; + config false; + description + "True if the segment-list is valid, False otherwise"; + } + } + + uses cpath-optimization-objs; + uses cpath-constraints; + } + + grouping composite-path-properties { + description + "Composite path properties of the candidate path"; + + container constituent-policies { + description "Constituent SR policies"; + + list constituent-policy { + key "color"; + description "List of constituent SR policies"; + + leaf color { + type sr-policy-types:color-type; + description + "Color associated with the constituent policy + (the endpoint is same as the parent policy)"; + } + leaf weight { + type uint32; + default 1; + description "Constituent policy weighted loadshare"; + } + } + } + } + + grouping candidate-path_state { + description + "Candidate path state properties grouping"; + leaf is-best-candidate-path { + type boolean; + default 'false'; + config false; + description + "True if the candidate path is the best candidate path, + False otherwise"; + } + leaf non-selection-reason { + type identityref { + base sr-policy-types:candidate-path-not-selected-reason; + } + config false; + description + "Candidate path not selected reason"; + } + } + + grouping policy-properties_config { + description + "SR policy configuration grouping"; + leaf name { + type sr-policy-types:name-type; + description "SR policy name"; + } + leaf color { + type sr-policy-types:color-type; + description "Color associated with the policy"; + } + leaf endpoint { + type inet:ip-address; + description "Policy end point IP address"; + } + leaf description { + type string; + description "Description of the policy"; + } + leaf admin-state { + type sr-policy-types:policy-admin-state; + default 'UP'; + description + "SR policy administrative state, true for + enabled, false for disabled"; + } + leaf priority { + type uint8; + default 128; + description + "Priority considered when policy is recomputed due to + topology changes"; + } + } + + grouping policy-properties_state { + description + "SR policy property grouping"; + leaf oper-state { + type sr-policy-types:policy-oper-state; + config false; + description + "SR policy operational state"; + } + leaf transition-count { + type uint32; + config false; + description "Indicates number of up/down transitions"; + } + leaf up-time { + type yang:date-and-time; + config false; + description "Policy up time in seconds"; + } + leaf down-time { + type yang:date-and-time; + config false; + description "Policy down time in seconds"; + } + } + + grouping policy-properties { + description + "SR policy properties"; + uses policy-properties_config; + uses policy-properties_state; + uses binding-sid-properties; + uses forwarding-counters; + } + + grouping candidate-path-type { + description "Candidate path type grouping"; + choice type { + description + "Type of candidate paths"; + case explicit { + description + "Candidate path with explicitly defined set/s of + segment-lists"; + uses explicit-path-properties; + } + case dynamic { + description + "Candidate path with dynamic computed segment-lists"; + uses dynamic-path-properties; + } + case composite { + description + "Candidate path that groups SR policies each with explicit + and/or dynamic candidate path with potentially different + optimization objectives and constraints"; + uses composite-path-properties; + } + + } + } + + grouping candidate-paths { + description "SR policy candidate path grouping"; + container candidate-paths { + description "SR policy candidate path(s) "; + + list candidate-path { + key "protocol-origin originator-asn originator-node-address + discriminator"; + unique "preference"; + + description "SR policy Candidate path(s) list entry"; + + leaf protocol-origin { + type identityref { + base sr-policy-types:protocol-origin-type; + } + description + "Instantiation mechanism used to create the candidate + path"; + } + leaf originator-asn { + type uint32; + description + "The autonomous system number (ASN) of the provisioning + node. If 2-byte ASNs are in use, the low-order 16 bits + MUST be used, and the high-order bits MUST be set to 0"; + } + leaf originator-node-address { + type sr-policy-types:node-address-type; + description + "represented as a 128-bit value. IPv4 addresses MUST be + encoded in the lowest 32 bits, and the high-order bits + MUST be set to 0"; + } + leaf discriminator { + type uint32; + description "Candidate path distinguisher"; + } + leaf preference { + type uint32 { + range "1..65535"; + } + mandatory true; + description "Candidate path preference"; + } + leaf name { + type string; + description "Candidate path name"; + } + leaf description { + type string; + description "Candidate path description"; + } + leaf drop-upon-invalid { + type boolean; + description "Enable traffic dropping when LSP is invalid"; + } + leaf admin-state { + type boolean; + description "Shutdown the candidate-path"; + } + container binding-sid { + if-feature capability-candidate-path-binding-sid; + description + "Binding segment ID"; + uses binding-sid_config; + } + + uses candidate-path-type; + uses candidate-path_state; + uses cpath-cmn-properties; + } + } + } + + grouping policies { + description "SR policy grouping"; + container policies { + description "SR Policy container"; + + list policy { + key "color endpoint"; + unique "name"; + description "SR Policy properties"; + + uses policy-properties; + uses candidate-paths; + } + } + } + + grouping explicit-binding-sid-rules { + description + "Grouping for explicit binding sid rules"; + + list explicit-binding-sid-rules { + key "index"; + description + "Explicit binding sid rules applicable for all policies"; + leaf index { + type uint32; + description "Explicit binding SID rules list index"; + } + leaf rule { + type sr-policy-types:explicit-binding-sid-rule-type; + mandatory true; + description "Explicit binding sid rule"; + } + } + } + + augment "/rt:routing" { + description + "This augments routing-instance configuration with + segment-routing sr-policy."; + container segment-routing { + description "Main segment routing container"; + container traffic-engineering { + description "Traffic-engineering container"; + + uses attributes; + + uses policies; + } + } + } + + /* Notifications */ + + notification sr-policy-oper-state-change-event { + description + "Notification event when the operational state of the SR policy + changes"; + + leaf policy-name-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:name"; + } + description "Reference to sr-policy name"; + } + + leaf policy-color-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:color"; + } + description "Reference to sr-policy color"; + } + + leaf policy-endpoint-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:endpoint"; + } + description "Reference to sr-policy endpoint"; + } + + leaf policy-new-oper-state { + type sr-policy-types:policy-oper-state; + description "New operational state of the SR policy"; + } + + leaf policy-down-reason { + type identityref { + base sr-policy-types:policy-down-reason; + } + description + "Down reason if the SR policy's new operational state is + down"; + } + } + + notification sr-policy-candidate-path-change-event { + description + "Notification event when candidate path changes for SR policy"; + + leaf policy-name-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:name"; + } + description "Reference to sr-policy name"; + } + + leaf policy-color-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:color"; + } + description "Reference to sr-policy color"; + } + + leaf policy-endpoint-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:endpoint"; + } + description "Reference to sr-policy endpoint"; + } + + leaf existing-preference { + type uint32; + description "Existing candidate path preference"; + } + + leaf new-preference { + type uint32; + description "New candidate path preference"; + } + } + + notification sr-policy-binding-sid-unavailable-event { + description + "Notification event when the binding sid of sr-policy is + unavailable"; + + leaf policy-name-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:name"; + } + description "Reference to sr-policy name"; + } + + leaf policy-color-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:color"; + } + description "Reference to sr-policy color"; + } + + leaf policy-endpoint-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:endpoint"; + } + description "Reference to sr-policy endpoint"; + } + + leaf policy-binding-sid-value-ref { + if-feature capability-candidate-path-binding-sid; + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:binding-sid/" + + "sr-policy:value"; + } + description "Reference to sr-policy binding-sid value"; + } + + leaf reason { + type identityref { + base sr-policy-types:binding-sid-unavailable-reason; + } + description + "Reason why the binding sid is unavailable"; + } + } + + notification sr-policy-candidate-path-binding-sid-mismatch-event { + description + "Notification event when binding sid of requested candidate + path is different from the binding sid of the existing + candidate path"; + + leaf policy-color-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:color"; + } + description "Reference to sr-policy color"; + } + + leaf policy-endpoint-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:endpoint"; + } + description "Reference to sr-policy endpoint"; + } + + leaf existing-candidate-path-protocol-origin-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:candidate-paths/" + + "sr-policy:candidate-path/" + + "sr-policy:protocol-origin"; + } + description + "Reference to existing candidate path protocol origin"; + } + + leaf existing-candidate-path-preference-ref { + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:candidate-paths/" + + "sr-policy:candidate-path/" + + "sr-policy:preference"; + } + description "Reference to existing candidate path preference"; + } + + leaf existing-candidate-path-binding-sid-dataplane-ref { + if-feature capability-candidate-path-binding-sid; + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:candidate-paths/" + + "sr-policy:candidate-path/" + + "sr-policy:binding-sid/" + + "sr-policy:dataplane"; + } + description + "Reference to existing candidate path binding sid dataplane + type"; + } + + leaf existing-candidate-path-binding-sid-value-ref { + if-feature capability-candidate-path-binding-sid; + type leafref { + path "/rt:routing/" + + "sr-policy:segment-routing/" + + "sr-policy:traffic-engineering/" + + "sr-policy:policies/" + + "sr-policy:policy/" + + "sr-policy:candidate-paths/" + + "sr-policy:candidate-path/" + + "sr-policy:binding-sid/" + + "sr-policy:value"; + } + description + "Reference to existing candidate path binding sid value"; + } + + leaf conflicting-candidate-path-protocol-origin { + type uint8; + description "Conflicting candidate path protocol origin"; + } + + leaf conflicting-candidate-path-preference { + type uint32; + description "Conflicting candidate path preference"; + } + + leaf conflicting-candidate-path-binding-sid-dataplane { + type sr-policy-types:dataplane-type; + description + "Conflicting candidate path binding sid dataplane type"; + } + + leaf conflicting-candidate-path-binding-sid-value { + type sr-policy-types:sid-value-type; + description "Conflicting candidate path binding sid value"; + } + } + + /* Features */ + + feature capability-candidate-path-binding-sid { + description + "This feature enables the capability of specifying binding-sid + for a candidate path."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang index 81ba2ebe0..80c0fdb23 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang @@ -3,7 +3,6 @@ module ietf-srv6-base { namespace "urn:ietf:params:xml:ns:yang:ietf-srv6-base"; prefix srv6; - import ietf-interfaces { prefix "if"; reference "RFC 8343: A YANG Data Model for Interface Management"; @@ -54,6 +53,7 @@ module ietf-srv6-base { Editor: Jaganbabu Rajamanickam + Editor: Xufeng Liu @@ -99,9 +99,9 @@ module ietf-srv6-base { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - // RFC Editor: replace XXXX with actual RFC number and remove // this note + revision 2022-01-14 { description "Alignment with SRv6 network programming rev16"; @@ -286,7 +286,7 @@ module ietf-srv6-base { description "Configure a SRv6 locator"; leaf name { - type string; + type srv6-types:srv6-locator-name-type; description "Locator name"; } @@ -438,6 +438,7 @@ module ietf-srv6-base { } uses path-attrs-cmn; + description "L3 information"; } uses path-out-sids-choice; @@ -486,6 +487,7 @@ module ietf-srv6-base { } description "Type of SRv6 end behavior."; } + leaf alloc-type { type srv6-types:sid-alloc-type; description @@ -529,7 +531,6 @@ module ietf-srv6-base { grouping srv6-support-ends { description "SRv6 End behavior support grouping"; - list end-behavior { key "type"; description "End behavior support"; @@ -626,7 +627,6 @@ module ietf-srv6-base { list counters { key "type"; description "SRv6 counter support"; - leaf type { type identityref { base srv6-types:srv6-counter-type; @@ -675,7 +675,6 @@ module ietf-srv6-base { uses srv6-state-sid; } } - /* Notifications */ grouping srv6-locator { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang index 78fa91d19..86297ed50 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang @@ -171,6 +171,7 @@ module ietf-srv6-static { uses srv6:path-attrs-cmn; } + grouping path-attrs-v4 { description "IPv4 Path properties"; @@ -264,7 +265,6 @@ module ietf-srv6-static { list path { key path-index; description "The list of paths associated with the SID"; - leaf path-index { type uint8; description "Index of the path"; @@ -308,7 +308,7 @@ module ietf-srv6-static { "Configuration parameters relating to SRv6 sid."; leaf function { - type srv6-types:srv6-func-value; + type srv6-types:srv6-sid-func-value; description "SRv6 function value."; } @@ -363,6 +363,7 @@ module ietf-srv6-static { to the matched entry. This is the SRv6 instantiation of a Prefix SID (variant: USP only)"; + } container end_psp_usp { @@ -408,7 +409,6 @@ module ietf-srv6-static { (variant: PSP/USD)"; } - container end_usp_usd { when "../end-behavior-type = 'srv6-types:End_USP_USD'" { description @@ -601,7 +601,6 @@ module ietf-srv6-static { in the core."; // TODO presence "Mandatory child only if container is present"; - leaf lookup-table-ipv6 { type srv6-types:table-id; mandatory true; @@ -841,7 +840,6 @@ module ietf-srv6-static { uses multi-paths-v6; } - container end-bm { when "../end-behavior-type = 'srv6-types:End.BM'" { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang deleted file mode 100644 index 2e04d0c9f..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang +++ /dev/null @@ -1,751 +0,0 @@ -module ietf-srv6-types { - yang-version 1.1; - - namespace "urn:ietf:params:xml:ns:yang:ietf-srv6-types"; - prefix srv6-types; - - import ietf-inet-types { - prefix inet; - reference "RFC 6991: Common YANG Data Types"; - } - - organization - "IETF SPRING Working Group"; - contact - "WG Web: - WG List: - - Editor: Kamran Raza - - - Editor: Jaganbabu Rajamanickam - - - Editor: Xufeng Liu - - - Editor: Zhibo Hu - - - Editor: Iftekhar Hussain - - - Editor: Himanshu Shah - - - Editor: Daniel Voyer - - - Editor: Hani Elmalky - - - Editor: Satoru Matsushima - - - Editor: Katsuhiro Horiba - - - Editor: Ahmed AbdelSalam - - - "; - - description - "This YANG module defines the essential types for the - management of Segment-Routing with IPv6 dataplane (SRv6). - - Copyright (c) 2018 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; - - // RFC Editor: replace XXXX with actual RFC number and remove - // this note - - revision 2024-03-04 { - description - "Renamed some of End identities"; - reference - "RFC XXXX: YANG Data Model for SRv6"; - // RFC Editor: replace XXXX with actual RFC number and remove - // this note - } - - revision 2022-01-14 { - description - "Alignment with SRv6 net-pgm rev16"; - reference - "RFC XXXX: YANG Data Model for SRv6"; - // RFC Editor: replace XXXX with actual RFC number and remove - // this note - } - - revision 2019-10-30 { - description - "Renaming of some types"; - reference - "RFC XXXX: YANG Data Model for SRv6"; - // RFC Editor: replace XXXX with actual RFC number and remove - // this note - } - - revision 2019-07-08 { - description - "Alignment with latest SRv6 network programming"; - reference - "RFC XXXX: YANG Data Model for SRv6"; - // RFC Editor: replace XXXX with actual RFC number and remove - // this note - } - - revision 2018-10-22 { - description - "Initial revision."; - reference - "RFC XXXX: YANG Data Model for SRv6"; - // RFC Editor: replace XXXX with actual RFC number and remove - // this note - } - - identity srv6-endpoint-type { - description - "Base identity from which specific SRv6 Endpoint types are - derived."; - } - - /* Endpoints defined under draft-ietf-spring- - * srv6-network-programming */ - - identity End { - base srv6-endpoint-type; - description - "End function (variant: no PSP, no USP)."; - reference - "RFC 8986"; - } - - identity End_PSP { - base srv6-endpoint-type; - description - "End function (variant: PSP only)."; - reference - "RFC 8986"; - } - - identity End_USP { - base srv6-endpoint-type; - description - "End function (variant: USP only)."; - reference - "RFC 8986"; - } - - identity End_PSP_USP { - base srv6-endpoint-type; - description - "End function (variant: PSP and USP)."; - reference - "RFC 8986"; - } - - identity End.X { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: no PSP, no USP)."; - reference - "RFC 8986"; - } - - identity End.X_PSP { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: PSP only)."; - reference - "RFC 8986"; - } - - identity End.X_USP { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: USP only)."; - reference - "RFC 8986"; - } - - identity End.X_PSP_USP { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: PSP and USP)."; - reference - "RFC 8986"; - } - - identity End.T { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: no PSP, no USP)."; - reference - "RFC 8986"; - } - - identity End.T_PSP { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: PSP only)."; - reference - "RFC 8986"; - } - - identity End.T_USP { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: USP only)."; - reference - "RFC 8986"; - } - - identity End.T_PSP_USP { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: PSP and USP)."; - reference - "RFC 8986"; - } - - identity End.B6.Encaps { - base srv6-endpoint-type; - description - "Endpoint bound to an SRv6 Policy - where the SRv6 Policy also includes an - IPv6 Source Address A."; - reference - "RFC 8986"; - } - - identity End.BM { - base srv6-endpoint-type; - description - "Endpoint bound to an SR-MPLS Policy"; - reference - "RFC 8986"; - } - - identity End.DX6 { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and cross-connect - to an array of IPv6 adjacencies"; - reference - "RFC 8986"; - } - - identity End.DX4 { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and cross-connect - to an array of IPv4 adjacencies"; - reference - "RFC 8986"; - } - - identity End.DT6 { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and specific - IPv6 table lookup"; - reference - "RFC 8986"; - } - - identity End.DT4 { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and specific - IPv4 table lookup"; - reference - "RFC 8986"; - } - - identity End.DT46 { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and specific IP - (IPv4 or IPv6) table lookup"; - reference - "RFC 8986"; - } - - identity End.DX2 { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and Layer-2 - cross-connect to an L2 interface"; - reference - "RFC 8986"; - } - - identity End.DX2V { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and specific - VLAN L2 table lookup"; - reference - "RFC 8986"; - } - - identity End.DT2U { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and specific - unicast MAC L2 table lookup"; - reference - "RFC 8986"; - } - - identity End.DT2M { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and specific L2 table - flooding"; - reference - "RFC 8986"; - } - - identity End.B6.Encaps.Red { - base srv6-endpoint-type; - description - "This is a reduced encap variation of the End.B6.Encap - behavior."; - reference - "RFC 8986"; - } - - identity End_USD { - base srv6-endpoint-type; - description - "End function (variant: USD)."; - reference - "RFC 8986"; - } - - identity End_PSP_USD { - base srv6-endpoint-type; - description - "End function (variant: PSP and USD)."; - reference - "RFC 8986"; - } - - identity End_USP_USD { - base srv6-endpoint-type; - description - "End function (variant: USP and USD)."; - reference - "RFC 8986"; - } - - identity End_PSP_USP_USD { - base srv6-endpoint-type; - description - "End function (variant: PSP and USP and USD)."; - reference - "RFC 8986"; - } - - identity End.X_USD { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: USD)."; - reference - "RFC 8986"; - } - - identity End.X_PSP_USD { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: PSP and USD)."; - reference - "RFC 8986"; - } - - identity End.X_USP_USD { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: USP and USD)."; - reference - "RFC 8986"; - } - - identity End.X_PSP_USP_USD { - base srv6-endpoint-type; - description - "Endpoint with cross-connect to an array - of layer-3 adjacencies (variant: PSP and USP and USD)."; - reference - "RFC 8986"; - } - - identity End.T_USD { - base srv6-endpoint-type; - description - "Endpoint with decapsulation and Layer-2 - cross-connect to an L2 interface"; - reference - "RFC 8986"; - } - - identity End.T_PSP_USD { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: PSP and USD)."; - reference - "RFC 8986"; - } - - identity End.T_USP_USD { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: USP and USD)."; - reference - "RFC 8986"; - } - - identity End.T_PSP_USP_USD { - base srv6-endpoint-type; - description - "Endpoint with specific IPv6 table lookup - (variant: PSP and USP and USD)."; - reference - "RFC 8986"; - } - - /* Endpoints defined under draft-ietf-spring-sr-service-programming */ - - identity End.AN { - base srv6-endpoint-type; - description - "Service-Chaining SR Aware function (native)"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity End.AS { - base srv6-endpoint-type; - description - "Service-Chaining Static proxy"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity End.AD { - base srv6-endpoint-type; - description - "Service-Chaining Dynamic proxy"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity End.AM { - base srv6-endpoint-type; - description - "Service-Chaining Masquerading SR proxy"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity End.AM_NAT { - base srv6-endpoint-type; - description - "Service-Chaining Masquerading SR proxy with NAT"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity End.AM_CACHE { - base srv6-endpoint-type; - description - "Service-Chaining Masquerading SR proxy with Caching"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity End.AM_NAT_CACHE { - base srv6-endpoint-type; - description - "Service-Chaining Masquerading SR proxy with NAT and Caching"; - reference - "draft-ietf-spring-sr-service-programming-05"; - // RFC Editor: replace with actual RFC number and remove this note - } - - /* Endpoints defined under RFC 9433 */ - - identity End.MAP { - base srv6-endpoint-type; - description - "DMM End.MAP"; - reference - "RFC 9433"; - } - - identity End.Limit { - base srv6-endpoint-type; - description - "DMM End.Limit"; - reference - "RFC 9433"; - } - - identity End.M.GTP6.D { - base srv6-endpoint-type; - description - "DMM End.M.GTP6.D"; - reference - "RFC 9433"; - } - - identity End.M.GTP6.Di { - base srv6-endpoint-type; - description - "DMM End.M.GTP6.Di"; - reference - "RFC 9433"; - } - - identity End.M.GTP6.E { - base srv6-endpoint-type; - description - "DMM End.M.GTP6.E"; - reference - "RFC 9433"; - } - - identity End.M.GTP4.E { - base srv6-endpoint-type; - description - "DMM End.M.GTP4.E"; - reference - "RFC 9433"; - } - /* DMM end */ - - identity srv6-headend-type { - description - "Base identity from which SRv6 headend rule types are derived."; - } - - identity H.Encaps { - base srv6-headend-type; - description - "Headend rule H.Encaps with encapsulated of an SRv6 policy"; - reference - "draft-ietf-spring-srv6-network-programming-16"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity H.Encaps.Red { - base srv6-headend-type; - description - "Headend rule H.Encaps.Red with reduced encap of an - SRv6 policy"; - reference - "draft-ietf-spring-srv6-network-programming-16"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity H.Encaps.L2 { - base srv6-headend-type; - description - "Headend rule H.Encaps.l2 on the received L2 frame"; - reference - "draft-ietf-spring-srv6-network-programming-16"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity H.Encaps.L2.Red { - base srv6-headend-type; - description - "Headend rule H.Encaps.L2.Red on the received L2 frame"; - reference - "draft-ietf-spring-srv6-network-programming-16"; - // RFC Editor: replace with actual RFC number and remove this note - } - - identity srv6-security-type { - description - "Base identity from which SRv6 Security rule types are - derived."; - } - - identity SEC-1 { - base srv6-security-type; - description - "Support an ACL on the external interface that - drops any traffic with SA or DA in the internal SID space. - (aka Security rule SEC-1)"; - } - - identity SEC-2 { - base srv6-security-type; - description - "Support an ACL that drops any traffic on local SID as DA - from a source SA that does not belong to internal address - or SID space. (aka Security rule SEC-2)"; - } - - identity srv6-counter-type { - description - "Base identity from which SRv6 counter types are derived."; - } - - identity LocalSID { - base srv6-counter-type; - description - "Count packets and bytes traffic that matched that SID and - was processed successfully (aka Counter CNT-1)"; - reference - "RFC 8986"; - // RFC Editor: replace with actual RFC number and remove this note - } - - typedef srv6-sid { - type inet:ipv6-prefix; - description - "This type defines a SID value in SRv6"; - } - - typedef srv6-func-value { - type uint32; - description - "This is a typedef for SID's FUNC value"; - } - - typedef srv6-func-value-reserved-type { - type enumeration { - enum invalid { value 0; description "Invalid function value"; } - } - - description "SRv6 SID's FUNC Reserved values"; - } - - typedef srv6-locator-len { - type uint8 { - range "32 .. 96"; - } - description - "This type defines an SRv6 locator len with range constraints"; - } - - typedef srv6-sid-pfxlen { - type uint8 { - range "32 .. 128"; - } - default 128; - description - "This type defines a SID prefixlen with range constraints"; - } - - typedef sid-alloc-type { - type enumeration { - enum Dynamic { - description - "SID allocated dynamically."; - } - enum Explicit { - description - "SID allocated with explicit (static) value"; - } - } - description - "Types of sid allocation used."; - } - - identity srv6-sid-owner-type { - description - "Base identity from which SID owner types are derived."; - } - - identity isis { - base srv6-sid-owner-type; - description "ISIS"; - } - - identity ospfv3 { - base srv6-sid-owner-type; - description "OSPFv3"; - } - - identity bgp { - base srv6-sid-owner-type; - description "BGP"; - } - - identity evpn { - base srv6-sid-owner-type; - description "EVPN"; - } - - identity sr-policy { - base srv6-sid-owner-type; - description "SR Policy"; - } - - identity service-function { - base srv6-sid-owner-type; - description "SF"; - } - - typedef table-id { - type uint32; - description - "Routing/switching/bridging/VLAN Table Id"; - } - - typedef srv6-status-type { - type enumeration { - enum up { value 1; description "State is Up"; } - enum down { description "State is Down"; } - } - description - "Status type"; - } - - typedef srv6-nexthop-type { - type enumeration { - enum ipv4 { value 1; description "IPv4 next-hop"; } - enum ipv6 { description "IPv6 next-hop"; } - enum mpls { description "MPLS next-hop"; } - enum l2 { description "L2 next-hop"; } - } - description - "Forwarding Next-hop type"; - } - -} // module diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-11-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-11-21.yang new file mode 100644 index 000000000..836443536 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-11-21.yang @@ -0,0 +1,852 @@ +module ietf-srv6-types { + yang-version 1.1; + + namespace "urn:ietf:params:xml:ns:yang:ietf-srv6-types"; + prefix srv6-types; + + import ietf-inet-types { + prefix inet; + reference "RFC 6991: Common YANG Data Types"; + } + + organization + "IETF SPRING Working Group"; + contact + "WG Web: + WG List: + + Editor: Kamran Raza + + + Editor: Jaganbabu Rajamanickam + + + Editor: Xufeng Liu + + + Editor: Zhibo Hu + + + Editor: Iftekhar Hussain + + + Editor: Himanshu Shah + + + Editor: Daniel Voyer + + + Editor: Hani Elmalky + + + Editor: Satoru Matsushima + + + Editor: Katsuhiro Horiba + + + Editor: Ahmed AbdelSalam + + + "; + + description + "This YANG module defines the essential types for the + management of Segment-Routing with IPv6 dataplane (SRv6). + + Copyright (c) 2018 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Simplified BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (http://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices."; + + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + + revision 2024-11-21 { + description + "Added SID structure definition and "; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision 2024-03-04 { + description + "Renamed some of End identities"; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision 2022-01-14 { + description + "Alignment with SRv6 net-pgm rev16"; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision 2019-10-30 { + description + "Renaming of some types"; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision 2019-07-08 { + description + "Alignment with latest SRv6 network programming"; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision 2018-10-22 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + identity srv6-endpoint-type { + description + "Base identity from which specific SRv6 Endpoint types are + derived."; + } + + /* Endpoints defined under draft-ietf-spring- + * srv6-network-programming */ + + identity End { + base srv6-endpoint-type; + description + "End function (variant: no PSP, no USP)."; + reference + "RFC 8986"; + } + + identity End_PSP { + base srv6-endpoint-type; + description + "End function (variant: PSP only)."; + reference + "RFC 8986"; + } + identity End_USP { + base srv6-endpoint-type; + description + "End function (variant: USP only)."; + reference + "RFC 8986"; + } + + identity End_PSP_USP { + base srv6-endpoint-type; + description + "End function (variant: PSP and USP)."; + reference + "RFC 8986"; + } + + identity End.X { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: no PSP, no USP)."; + reference + "RFC 8986"; + } + + identity End.X_PSP { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: PSP only)."; + reference + "RFC 8986"; + } + + identity End.X_USP { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: USP only)."; + reference + "RFC 8986"; + } + + identity End.X_PSP_USP { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: PSP and USP)."; + reference + "RFC 8986"; + } + + identity End.T { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: no PSP, no USP)."; + reference + "RFC 8986"; + } + + identity End.T_PSP { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: PSP only)."; + reference + "RFC 8986"; + } + + identity End.T_USP { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: USP only)."; + reference + "RFC 8986"; + } + + identity End.T_PSP_USP { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: PSP and USP)."; + reference + "RFC 8986"; + } + + identity End.B6.Encaps { + base srv6-endpoint-type; + description + "Endpoint bound to an SRv6 Policy + where the SRv6 Policy also includes an + IPv6 Source Address A."; + reference + "RFC 8986"; + } + + identity End.BM { + base srv6-endpoint-type; + description + "Endpoint bound to an SR-MPLS Policy"; + reference + "RFC 8986"; + } + + identity End.DX6 { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and cross-connect + to an array of IPv6 adjacencies"; + reference + "RFC 8986"; + } + identity End.DX4 { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and cross-connect + to an array of IPv4 adjacencies"; + reference + "RFC 8986"; + } + + identity End.DT6 { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and specific + IPv6 table lookup"; + reference + "RFC 8986"; + } + + identity End.DT4 { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and specific + IPv4 table lookup"; + reference + "RFC 8986"; + } + + identity End.DT46 { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and specific IP + (IPv4 or IPv6) table lookup"; + reference + "RFC 8986"; + } + + identity End.DX2 { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and Layer-2 + cross-connect to an L2 interface"; + reference + "RFC 8986"; + } + + identity End.DX2V { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and specific + VLAN L2 table lookup"; + reference + "RFC 8986"; + } + + identity End.DT2U { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and specific + unicast MAC L2 table lookup"; + reference + "RFC 8986"; + } + + identity End.DT2M { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and specific L2 table + flooding"; + reference + "RFC 8986"; + } + + identity End.B6.Encaps.Red { + base srv6-endpoint-type; + description + "This is a reduced encap variation of the End.B6.Encap + behavior."; + reference + "RFC 8986"; + } + + identity End_USD { + base srv6-endpoint-type; + description + "End function (variant: USD)."; + reference + "RFC 8986"; + } + + identity End_PSP_USD { + base srv6-endpoint-type; + description + "End function (variant: PSP and USD)."; + reference + "RFC 8986"; + } + identity End_USP_USD { + base srv6-endpoint-type; + description + "End function (variant: USP and USD)."; + reference + "RFC 8986"; + } + + identity End_PSP_USP_USD { + base srv6-endpoint-type; + description + "End function (variant: PSP and USP and USD)."; + reference + "RFC 8986"; + } + + identity End.X_USD { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: USD)."; + reference + "RFC 8986"; + } + + identity End.X_PSP_USD { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: PSP and USD)."; + reference + "RFC 8986"; + } + + identity End.X_USP_USD { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: USP and USD)."; + reference + "RFC 8986"; + } + + identity End.X_PSP_USP_USD { + base srv6-endpoint-type; + description + "Endpoint with cross-connect to an array + of layer-3 adjacencies (variant: PSP and USP and USD)."; + reference + "RFC 8986"; + } + + identity End.T_USD { + base srv6-endpoint-type; + description + "Endpoint with decapsulation and Layer-2 + cross-connect to an L2 interface"; + reference + "RFC 8986"; + } + + identity End.T_PSP_USD { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: PSP and USD)."; + reference + "RFC 8986"; + } + + identity End.T_USP_USD { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: USP and USD)."; + reference + "RFC 8986"; + } + identity End.T_PSP_USP_USD { + base srv6-endpoint-type; + description + "Endpoint with specific IPv6 table lookup + (variant: PSP and USP and USD)."; + reference + "RFC 8986"; + } + + /* Endpoints defined under + * draft-ietf-spring-sr-service-programming */ + + identity End.AN { + base srv6-endpoint-type; + description + "Service-Chaining SR Aware function (native)"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.AS { + base srv6-endpoint-type; + description + "Service-Chaining Static proxy"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.AD { + base srv6-endpoint-type; + description + "Service-Chaining Dynamic proxy"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.AM { + base srv6-endpoint-type; + description + "Service-Chaining Masquerading SR proxy"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.AM_NAT { + base srv6-endpoint-type; + description + "Service-Chaining Masquerading SR proxy with NAT"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.AM_CACHE { + base srv6-endpoint-type; + description + "Service-Chaining Masquerading SR proxy with Caching"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.AM_NAT_CACHE { + base srv6-endpoint-type; + description + "Service-Chaining Masquerading SR proxy with NAT and + Caching"; + reference + "draft-ietf-spring-sr-service-programming-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + /* Endpoints defined under draft-ietf-dmm-srv6-mobile-uplane */ + + identity End.MAP { + base srv6-endpoint-type; + description + "DMM End.MAP"; + reference + "draft-ietf-dmm-srv6-mobile-uplane-17"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.Limit { + base srv6-endpoint-type; + description + "DMM End.Limit"; + reference + "draft-ietf-dmm-srv6-mobile-uplane-17"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.M.GTP6.D { + base srv6-endpoint-type; + description + "DMM End.M.GTP6.D"; + reference + "draft-ietf-dmm-srv6-mobile-uplane-17"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.M.GTP6.Di { + base srv6-endpoint-type; + description + "DMM End.M.GTP6.Di"; + reference + "draft-ietf-dmm-srv6-mobile-uplane-17"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.M.GTP6.E { + base srv6-endpoint-type; + description + "DMM End.M.GTP6.E"; + reference + "draft-ietf-dmm-srv6-mobile-uplane-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity End.M.GTP4.E { + base srv6-endpoint-type; + description + "DMM End.M.GTP4.E"; + reference + "draft-ietf-dmm-srv6-mobile-uplane-05"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + /* DMM end */ + + identity srv6-headend-type { + description + "Base identity from which SRv6 headend rule types are + derived."; + } + + identity H.Encaps { + base srv6-headend-type; + description + "Headend rule H.Encaps with encapsulated of an SRv6 policy"; + reference + "draft-ietf-spring-srv6-network-programming-16"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity H.Encaps.Red { + base srv6-headend-type; + description + "Headend rule H.Encaps.Red with reduced encap of an + SRv6 policy"; + reference + "draft-ietf-spring-srv6-network-programming-16"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity H.Encaps.L2 { + base srv6-headend-type; + description + "Headend rule H.Encaps.l2 on the received L2 frame"; + reference + "draft-ietf-spring-srv6-network-programming-16"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + identity H.Encaps.L2.Red { + base srv6-headend-type; + description + "Headend rule H.Encaps.L2.Red on the received L2 frame"; + reference + "draft-ietf-spring-srv6-network-programming-16"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + identity srv6-security-type { + description + "Base identity from which SRv6 Security rule types are + derived."; + } + + identity SEC-1 { + base srv6-security-type; + description + "Support an ACL on the external interface that + drops any traffic with SA or DA in the internal SID space. + (aka Security rule SEC-1)"; + } + + identity SEC-2 { + base srv6-security-type; + description + "Support an ACL that drops any traffic on local SID as DA + from a source SA that does not belong to internal address + or SID space. (aka Security rule SEC-2)"; + } + + identity srv6-counter-type { + description + "Base identity from which SRv6 counter types are derived."; + } + + identity LocalSID { + base srv6-counter-type; + description + "Count packets and bytes traffic that matched that SID and + was processed successfully (aka Counter CNT-1)"; + reference + "RFC 8986"; + // RFC Editor: replace with actual RFC number and remove this + // note + } + + typedef srv6-sid { + type inet:ipv6-prefix; + description + "This type defines a SID value in SRv6"; + } + + typedef srv6-sid-func-value { + type uint32; + description + "This is a typedef for SID's FUNC value"; + } + + typedef srv6-sid-func-value-reserved-type { + type enumeration { + enum invalid { + value 0; + description "Invalid function value"; + } + } + + description "SRv6 SID's FUNC Reserved values"; + } + + typedef srv6-locator-name-type { + type string { + length "1..59"; + } + description "SRv6 locator name"; + } + + typedef srv6-locator-len { + type uint8 { + range "32 .. 96"; + } + description + "This type defines an SRv6 locator len with range + constraints"; + } + + typedef srv6-locator-block-len { + type uint8; + description + "This type defines an SRv6 locator block length in bits"; + } + + typedef srv6-locator-node-len { + type uint8; + description + "This type defines an SRv6 locator node length in bits"; + } + + typedef srv6-sid-func-len { + type uint8; + description + "This type defines an SRv6 SID function length in bits"; + } + + typedef srv6-sid-arg-len { + type uint8; + description + "This type defines an SRv6 SID argument length in bits"; + } + + typedef srv6-sid-pfxlen { + type uint8 { + range "32 .. 128"; + } + default 128; + description + "This type defines a SID prefixlen with range constraints"; + } + + typedef sid-alloc-type { + type enumeration { + enum Dynamic { + description + "SID allocated dynamically."; + } + enum Explicit { + description + "SID allocated with explicit (static) value"; + } + } + description + "Types of sid allocation used."; + } + + identity srv6-sid-owner-type { + description + "Base identity from which SID owner types are derived."; + } + + identity isis { + base srv6-sid-owner-type; + description "ISIS"; + } + + identity ospfv3 { + base srv6-sid-owner-type; + description "OSPFv3"; + } + + identity bgp { + base srv6-sid-owner-type; + description "BGP"; + } + identity evpn { + base srv6-sid-owner-type; + description "EVPN"; + } + + identity sr-policy { + base srv6-sid-owner-type; + description "SR Policy"; + } + + identity service-function { + base srv6-sid-owner-type; + description "SF"; + } + + typedef table-id { + type uint32; + description + "Routing/switching/bridging/VLAN Table Id"; + } + + typedef srv6-status-type { + type enumeration { + enum up { value 1; description "State is Up"; } + enum down { description "State is Down"; } + } + description + "Status type"; + } + + typedef srv6-nexthop-type { + type enumeration { + enum ipv4 { value 1; description "IPv4 next-hop"; } + enum ipv6 { description "IPv6 next-hop"; } + enum mpls { description "MPLS next-hop"; } + enum l2 { description "L2 next-hop"; } + } + description + "Forwarding Next-hop type"; + } + + grouping srv6-sid-structure { + description "SRv6 SID structure grouping"; + + leaf locator-block-length { + type srv6-types:srv6-locator-block-len; + description "SRv6 SID locator block length in bits"; + } + leaf locator-node-length { + type srv6-types:srv6-locator-node-len; + description "SRv6 SID locator node length in bits"; + } + leaf function-length { + type srv6-types:srv6-sid-func-len; + description "SRv6 SID function length in bits"; + } + leaf argument-length { + type srv6-types:srv6-sid-arg-len; + description "SRv6 SID argument length in bits"; + } + } + + grouping srv6-sid-type-b-config { + description "SRv6 SID Type-B config grouping"; + + leaf sid-behavior { + type identityref { + base srv6-types:srv6-endpoint-type; + } + description "SRv6 SID behavior"; + } + + container sid-structure { + description "SRv6 SID structure"; + uses srv6-types:srv6-sid-structure; + } + } +} // module diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang index 0c6e177c4..16f6b1da6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang @@ -13,11 +13,11 @@ module ietf-te-fgnm-ext { import ietf-te-types-fgnm-ext { prefix "te-types-fgnm-ext"; - } + } import ietf-network { prefix "nw"; - } + } import ietf-network-topology { prefix "nt"; @@ -25,7 +25,7 @@ module ietf-te-fgnm-ext { import ietf-te-topology { prefix "tet"; - } + } organization "IETF CCAMP Working Group"; @@ -35,7 +35,7 @@ module ietf-te-fgnm-ext { Editor: Chaode Yu - Xing Zhao + Xing Zhao Yanxia Tan @@ -57,7 +57,7 @@ module ietf-te-fgnm-ext { augment "/te:te/te:tunnels/te:tunnel" { leaf alias { - description + description "alias of TE tunnel"; type string; } @@ -101,9 +101,9 @@ module ietf-te-fgnm-ext { leaf restoration-priority { description - "when there are multiple services need to be restored, the - higher estoration priority services can occupied the idle - resource in priority, it is used to control the restoration + "when there are multiple services need to be restored, the + higher estoration priority services can occupied the idle + resource in priority, it is used to control the restoration sequence."; type enumeration { enum high; @@ -126,7 +126,7 @@ module ietf-te-fgnm-ext { augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + "/te:primary-path/te:explicit-route-objects-always" + "/te:route-object-include-exclude/te:type" { - description + description "a TTP hop"; case ttp-hop { uses te-types-fgnm-ext:explicit-ttp-hop; @@ -136,18 +136,18 @@ module ietf-te-fgnm-ext { augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + "/te:secondary-path/te:explicit-route-objects-always" + "/te:route-object-include-exclude/te:type" { - description + description "a TTP hop"; case ttp-hop { uses te-types-fgnm-ext:explicit-ttp-hop; } - } + } augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + "/te:primary-path/te:primary-reverse-path" + "/te:explicit-route-objects-always" + "/te:route-object-include-exclude/te:type" { - description + description "a TTP hop"; case ttp-hop { uses te-types-fgnm-ext:explicit-ttp-hop; @@ -158,12 +158,12 @@ module ietf-te-fgnm-ext { + "/te:secondary-reverse-path" + "/te:explicit-route-objects-always" + "/te:route-object-include-exclude/te:type" { - description + description "a TTP hop"; case ttp-hop { uses te-types-fgnm-ext:explicit-ttp-hop; } - } + } grouping time-state-grouping { leaf create-time { @@ -178,7 +178,7 @@ module ietf-te-fgnm-ext { description "the lastest time when the tunnel was activated"; type yang:date-and-time; - } + } } grouping endpoint-grouping { @@ -197,6 +197,7 @@ module ietf-te-fgnm-ext { } } } + case ttp { choice id-or-name { case id { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-mpls-topology@2023-10-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-mpls-topology@2023-10-13.yang index 1207e01b8..c1a6b98a5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-mpls-topology@2023-10-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-mpls-topology@2023-10-13.yang @@ -27,8 +27,8 @@ module ietf-te-mpls-topology { reference "RFC YYYY: YANG Data Model for Layer 3 TE Topologies"; } - // RFC Editor: replace YYYY with the actual RFC number assigned - // to the RFC once draft-ietf-teas-yang-l3-te-topo + // RFC Editor: replace YYYY with the actual RFC number assigned + // to the RFC once draft-ietf-teas-yang-l3-te-topo // becomes an RFC and remove this note. import ietf-mpls-te-types { @@ -36,8 +36,8 @@ module ietf-te-mpls-topology { reference "RFC XXXX: A YANG Data Model for MPLS-TE Topology"; } - // RFC Editor: replace XXXX with the actual RFC number assigned - // to the RFC once this draft + // RFC Editor: replace XXXX with the actual RFC number assigned + // to the RFC once this draft // becomes an RFC and remove this note. organization @@ -62,11 +62,11 @@ module ietf-te-mpls-topology { "; description - "This module defines a YANG data model for representing, + "This module defines a YANG data model for representing, retrieving, and manipulating MPLS-TE network topologies. - This module defines MPLS-TE technology-specific augmentations - to the generic Packet TE topology module + This module defines MPLS-TE technology-specific augmentations + to the generic Packet TE topology module (ietf-te-topology-packet). Copyright (c) 2022 IETF Trust and the persons @@ -88,8 +88,8 @@ module ietf-te-mpls-topology { reference "RFC XXXX: A YANG Data Model for MPLS-TE Topology"; } - // RFC Editor: replace XXXX with the actual RFC number assigned - // to the RFC once this draft + // RFC Editor: replace XXXX with the actual RFC number assigned + // to the RFC once this draft // becomes an RFC, update date information and remove this note. /* diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-10-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-10-30.yang index 3c24930da..70bead463 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-10-30.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-10-30.yang @@ -23,6 +23,7 @@ module ietf-te-packet-types { contact "WG Web: WG List: + Editor: Tarek Saad @@ -791,6 +792,7 @@ module ietf-te-packet-types { } } } + grouping te-packet-link-bandwidth { description "Bandwidth attributes for Packet TE links."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-path-computation@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-path-computation@2023-06-27.yang index f3bee2d26..dc8ef269f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-path-computation@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-path-computation@2023-06-27.yang @@ -16,7 +16,7 @@ module ietf-te-path-computation { import ietf-te-types { prefix te-types; reference - "RFCZZZZ: Updated Common YANG Data Types for Traffic + "RFCZZZZ: Updated Common YANG Data Types for Traffic Engineering"; } @@ -93,6 +93,7 @@ module ietf-te-path-computation { // this note // replace the revision date with the module publication date // the format is (year-month-day) + revision 2023-06-27 { description "Initial revision"; @@ -109,19 +110,19 @@ module ietf-te-path-computation { feature svec { description - "This feature indicates that the server supports synchronized + "This feature indicates that the server supports synchronized path computation requests."; reference - "Section 7.13 of RFC5440: Path Computation Element (PCE) + "Section 7.13 of RFC5440: Path Computation Element (PCE) Communication Protocol (PCEP)."; } feature compute-priority { description - "This feature indicates that the server supports path + "This feature indicates that the server supports path computation request's priority"; reference - "Section 7.4.1 of RFC5440: Path Computation Element (PCE) + "Section 7.4.1 of RFC5440: Path Computation Element (PCE) Communication Protocol (PCEP)."; } @@ -515,18 +516,18 @@ module ietf-te-path-computation { type uint8; default 0; description - "The path computation request's priority (from 1 to 7) - which can be used to constraint the order by which the - path computation server processes the path computation + "The path computation request's priority (from 1 to 7) + which can be used to constraint the order by which the + path computation server processes the path computation requests. - A higher numerical value of the priority field reflects a + A higher numerical value of the priority field reflects a higher priority. - It MUST be set to the default value (i.e., 0) when + It MUST be set to the default value (i.e., 0) when unused."; reference - "Section 7.4.1 of RFC5440: Path Computation Element (PCE) + "Section 7.4.1 of RFC5440: Path Computation Element (PCE) Communication Protocol (PCEP)."; } choice tunnel-attributes { @@ -567,7 +568,7 @@ module ietf-te-path-computation { description "The referenced te-tunnel instance"; } - } // case tunnel-attributes-ref + } // case tunnel-attributes-ref } // choice tunnel-exist leaf path-name { type string; @@ -601,7 +602,7 @@ module ietf-te-path-computation { + "te-pc:request-id"; } description - "A reference to the reverse secondary path + "A reference to the reverse secondary path when co-routed with the secondary path."; } leaf preference { @@ -610,7 +611,7 @@ module ietf-te-path-computation { } default "1"; description - "Specifies a preference for this path. The + "Specifies a preference for this path. The lower the number higher the preference."; } uses protection-restoration-properties; @@ -654,7 +655,7 @@ module ietf-te-path-computation { description "The referenced primary path request"; } - } // case path-request-ref + } // case path-request-ref } // choice primary-path-exist } // list primary-path-ref } // container secondary-path @@ -700,7 +701,7 @@ module ietf-te-path-computation { description "The referenced primary path request"; } - } // case path-request-ref + } // case path-request-ref } // choice primary-path-exist } // container primary-reverse-path } // case primary-reverse-path @@ -715,7 +716,7 @@ module ietf-te-path-computation { } default "1"; description - "Specifies a preference for this path. The + "Specifies a preference for this path. The lower the number higher the preference."; } uses protection-restoration-properties; @@ -761,7 +762,7 @@ module ietf-te-path-computation { "The referenced primary reverse path request"; } - } // case path-request-ref + } // case path-request-ref } // choice primary-reverse-path-exist } // list primary-reverse-path-ref } // container secondary-reverse-path @@ -788,8 +789,8 @@ module ietf-te-path-computation { requested path will be the only path of a tunnel. If the requested path is a transit segment path - (i.e., the source and destination containers are - not present), it could be of any type. Otherwise it + (i.e., the source and destination containers are + not present), it could be of any type. Otherwise it could only be a primary path."; } default primary-path; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang index 30a0e1b5a..743938966 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang @@ -23,7 +23,7 @@ module ietf-te-topology-fgnm-ext { Editor: Chaode Yu - Xing Zhao + Xing Zhao Yanxia Tan @@ -44,8 +44,8 @@ module ietf-te-topology-fgnm-ext { } augment "/nw:networks/nw:network/nw:node/tet:te" { - description - "Generic fine-grain network management extensions for + description + "Generic fine-grain network management extensions for te node"; uses node-fgnm-ext-grouping; @@ -53,8 +53,8 @@ module ietf-te-topology-fgnm-ext { augment "/nw:networks/nw:network/nw:node/nt:termination-point/" + "tet:te" { - description - "Generic fine-grain network management extensions for + description + "Generic fine-grain network management extensions for termination point"; uses tp-fgnm-ext-grouping; @@ -62,15 +62,15 @@ module ietf-te-topology-fgnm-ext { augment "/nw:networks/nw:network/nw:node/tet:te" + "/tet:tunnel-termination-point" { - description - "Generic fine-grain network management extensions for + description + "Generic fine-grain network management extensions for te node"; uses ttp-fgnm-ext-grouping; - } + } augment "/nw:networks/nw:network/nt:link/tet:te" { - description + description "Generic fine-grain network management extensions for link"; uses link-fgnm-ext-grouping; @@ -113,7 +113,7 @@ module ietf-te-topology-fgnm-ext { key tp-id; leaf tp-id { type leafref { - path "/nw:networks/nw:network/nw:node" + + path "/nw:networks/nw:network/nw:node" + "/nt:termination-point/nt:tp-id"; } @@ -138,28 +138,29 @@ module ietf-te-topology-fgnm-ext { leaf tp-id { type leafref { - path "/nw:networks/nw:network/nw:node" + + path "/nw:networks/nw:network/nw:node" + "/nt:termination-point/nt:tp-id"; } + description "the identifier of TP queried and returns TTPs"; } list ttp-list { leaf tunnel-tp-id { type leafref { - path "/nw:networks/nw:network/nw:node/tet:te" + + path "/nw:networks/nw:network/nw:node/tet:te" + "/tet:tunnel-termination-point/tet:tunnel-tp-id"; } - description "Identifier of TTP which is existing in the - topology. It is not required to return if it is not + description "Identifier of TTP which is existing in the + topology. It is not required to return if it is not existing in the topology."; } leaf ttp-name { type string; - description "Name of TTP. If the ttp is idle, the default - name should be provided by the server and follow the + description "Name of TTP. If the ttp is idle, the default + name should be provided by the server and follow the naming pattern of TMF814."; } leaf using-status { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-10-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-10-30.yang index ee9ad6ce6..5d9ae16f4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-10-30.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-10-30.yang @@ -203,6 +203,7 @@ module ietf-te-types { description "Derived types for TE administrative groups."; } + typedef extended-admin-group { type yang:hex-string; description @@ -677,12 +678,13 @@ module ietf-te-types { } } description - "The type of TE path, indicating whether a path is a primary, - or a reverse primary, or a secondary, or a reverse secondary + "The type of TE path, indicating whether a path is a primary, + or a reverse primary, or a secondary, or a reverse secondary path."; } /* TE features */ + feature p2mp-te { description "Indicates support for Point-to-Multipoint TE (P2MP-TE)."; @@ -1355,6 +1357,7 @@ module ietf-te-types { "TE tunnel action that reoptimizes the placement of the tunnel LSP(s)."; } + identity tunnel-action-switchpath { base tunnel-action-type; description @@ -1451,6 +1454,7 @@ module ietf-te-types { description "State path computation failed."; } + identity lsp-state-setting-up { base lsp-state-type; description @@ -1925,8 +1929,8 @@ module ietf-te-types { identity action-exercise { base protection-external-commands; description - "An action that starts testing whether or not Automatic - Protection Switching (APS) communication is operating + "An action that starts testing whether or not Automatic + Protection Switching (APS) communication is operating correctly. It is of lower priority than any other state or command."; reference @@ -2273,7 +2277,7 @@ module ietf-te-types { microseconds."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions, Section 4.1 + Extensions, Section 4.1 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions, Section 4.1"; } @@ -2507,6 +2511,7 @@ module ietf-te-types { description "Base identity for SRLG path computation."; } + identity srlg-ignore { base path-computation-srlg-type; description @@ -2539,7 +2544,7 @@ module ietf-te-types { identity path-computation-error-path-not-found { base path-computation-error-reason; description - "Path computation has failed because of an unspecified + "Path computation has failed because of an unspecified reason."; reference "RFC 5440: Path Computation Element (PCE) Communication @@ -2577,7 +2582,7 @@ module ietf-te-types { description "Path computation has failed because PCE is not available. - It corresponds to bit 31 of the Flags field of the + It corresponds to bit 31 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5440: Path Computation Element (PCE) Communication @@ -2600,7 +2605,7 @@ module ietf-te-types { "Path computation has failed because the destination node is unknown in indicated destination domain. - It corresponds to bit 19 of the Flags field of the + It corresponds to bit 19 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 8685: Path Computation Element Communication Protocol @@ -2617,7 +2622,7 @@ module ietf-te-types { "Path computation has failed because there is no available resource in one or more domains. - It corresponds to bit 20 of the Flags field of the + It corresponds to bit 20 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 8685: Path Computation Element Communication Protocol @@ -2634,7 +2639,7 @@ module ietf-te-types { "Path computation has failed because child PCE is not responsive. - It corresponds to bit 21 of the Flags field of the + It corresponds to bit 21 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 8685: Path Computation Element Communication Protocol @@ -2651,7 +2656,7 @@ module ietf-te-types { "Path computation has failed because the destination domain was unknown. - It corresponds to bit 22 of the Flags field of the + It corresponds to bit 22 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 8685: Path Computation Element Communication Protocol @@ -2668,7 +2673,7 @@ module ietf-te-types { "Path computation has failed because of P2MP reachability problem. - It corresponds to bit 24 of the Flags field of the + It corresponds to bit 24 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 8306: Extensions to the Path Computation Element @@ -2686,7 +2691,7 @@ module ietf-te-types { "Path computation has failed because of no Global Concurrent Optimization (GCO) migration path found. - It corresponds to bit 26 of the Flags field of the + It corresponds to bit 26 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5557: Path Computation Element Communication Protocol @@ -2703,7 +2708,7 @@ module ietf-te-types { "Path computation has failed because of no GCO solution found. - It corresponds to bit 25 of the Flags field of the + It corresponds to bit 25 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5557: Path Computation Element Communication Protocol @@ -2720,7 +2725,7 @@ module ietf-te-types { "Path computation has failed because of Path-Key Subobject (PKS) expansion failure. - It corresponds to bit 27 of the Flags field of the + It corresponds to bit 27 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5520: Preserving Topology Confidentiality in @@ -2737,7 +2742,7 @@ module ietf-te-types { "Path computation has failed because PCE BRPC chain unavailable. - It corresponds to bit 28 of the Flags field of the + It corresponds to bit 28 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC) @@ -2752,10 +2757,10 @@ module ietf-te-types { identity path-computation-error-source-unknown { base path-computation-error-reason; description - "Path computation has failed because source node is + "Path computation has failed because source node is unknown. - It corresponds to bit 29 of the Flags field of the + It corresponds to bit 29 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5440: Path Computation Element (PCE) Communication @@ -2771,7 +2776,7 @@ module ietf-te-types { "Path computation has failed because destination node is unknown. - It corresponds to bit 30 of the Flags field of the + It corresponds to bit 30 of the Flags field of the NO-PATH-VECTOR TLV."; reference "RFC 5440: Path Computation Element (PCE) Communication @@ -2809,7 +2814,7 @@ module ietf-te-types { identity protocol-origin-pcep { base protocol-origin-type; description - "Protocol origin is Path Computation Engine Protocol + "Protocol origin is Path Computation Engine Protocol (PCEP)."; reference "RFC 5440: Path Computation Element (PCE) Communication @@ -2835,7 +2840,7 @@ module ietf-te-types { identity svec-of-minimize-agg-bandwidth-consumption { base svec-objective-function-type; description - "Objective function for minimizing aggregate bandwidth + "Objective function for minimizing aggregate bandwidth consumption (MBC)."; reference "RFC 5541: Encoding of Objective Functions in the Path @@ -2846,7 +2851,7 @@ module ietf-te-types { identity svec-of-minimize-load-most-loaded-link { base svec-objective-function-type; description - "Objective function for minimizing the load on the link that + "Objective function for minimizing the load on the link that is carrying the highest load (MLL)."; reference "RFC 5541: Encoding of Objective Functions in the Path @@ -2857,7 +2862,7 @@ module ietf-te-types { identity svec-of-minimize-cost-path-set { base svec-objective-function-type; description - "Objective function for minimizing the cost on a path set + "Objective function for minimizing the cost on a path set (MCC)."; reference "RFC 5541: Encoding of Objective Functions in the Path @@ -2868,10 +2873,10 @@ module ietf-te-types { identity svec-of-minimize-common-transit-domain { base svec-objective-function-type; description - "Objective function for minimizing the number of common + "Objective function for minimizing the number of common transit domains (MCTD)."; reference - "RFC 8685: Path Computation Element Communication Protocol + "RFC 8685: Path Computation Element Communication Protocol (PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architecture."; } @@ -2879,10 +2884,10 @@ module ietf-te-types { identity svec-of-minimize-shared-link { base svec-objective-function-type; description - "Objective function for minimizing the number of shared + "Objective function for minimizing the number of shared links (MSL)."; reference - "RFC 8685: Path Computation Element Communication Protocol + "RFC 8685: Path Computation Element Communication Protocol (PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architecture."; } @@ -2890,10 +2895,10 @@ module ietf-te-types { identity svec-of-minimize-shared-srlg { base svec-objective-function-type; description - "Objective function for minimizing the number of shared + "Objective function for minimizing the number of shared Shared Risk Link Groups (SRLG) (MSS)."; reference - "RFC 8685: Path Computation Element Communication Protocol + "RFC 8685: Path Computation Element Communication Protocol (PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architecture."; } @@ -2901,7 +2906,7 @@ module ietf-te-types { identity svec-of-minimize-shared-nodes { base svec-objective-function-type; description - "Objective function for minimizing the number of shared + "Objective function for minimizing the number of shared nodes (MSN)."; reference "RFC 8685: Path Computation Element Communication Protocol @@ -3436,7 +3441,7 @@ module ietf-te-types { must "(link-tp-id-uri or link-tp-id) and " + "(node-id-uri or node-id)" { description - "At least one node identifier and at least one Link + "At least one node identifier and at least one Link Termination Point (LTP) identifier MUST be present."; } leaf link-tp-id-uri { @@ -3589,7 +3594,7 @@ module ietf-te-types { must "(link-tp-id-uri or link-tp-id) and " + "(node-id-uri or node-id)" { description - "At least one node identifier and at least one Link + "At least one node identifier and at least one Link Termination Point (LTP) identifier MUST be present."; } leaf link-tp-id-uri { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang index 97b593b21..b787a299b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-aggregator { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-aggregator"; prefix ietf-tlm-philatelist-aggregator; @@ -29,7 +29,7 @@ module ietf-tlm-philatelist-aggregator { An AGGREGATOR ensures data from one or more SOURCE(s) are combined into a FLOW using a (sequence of) OPERATIONs (OPs) to generate a new data set in the DESTINATION (which could - be a new collection in the same data storage system as the + be a new collection in the same data storage system as the SOURCE). +-------------+ @@ -91,15 +91,15 @@ module ietf-tlm-philatelist-aggregator { "Root container for the Philatelist Aggregator function. "; container aggregations { - description + description "List of aggregation operations that are applied to a set of - input telemetry streams in a TSDB Partition to form an output + input telemetry streams in a TSDB Partition to form an output stream in a different TSDB Partition. "; list aggregation { key id; - description - "Each aggregation takes one or more input streams from a + description + "Each aggregation takes one or more input streams from a TSDB Partition, an operation to apply to them, and points to an output stream an another TSDB Partition. "; @@ -111,101 +111,102 @@ module ietf-tlm-philatelist-aggregator { } list input { key source; - description + description "The list of sources/input streams for the aggregation. "; - leaf source { - type ietf-tlm-philatelist-index:partition-ref-t; - description + leaf source { + type ietf-tlm-philatelist-index:partition-ref-t; + description "The TSDB Partition (bucket, interval, segment, etc.) that the input telemetry data is read from. - "; + "; } } leaf operation { type leafref { path ../../../operations/operation/id; } - description + description "The operation to apply to the input stream(s) in order to compute the output stream. "; } container output { - description + description "The TSDB Partition to send the computed output to. "; - leaf destination { - type ietf-tlm-philatelist-index:partition-ref-t; - description + leaf destination { + type ietf-tlm-philatelist-index:partition-ref-t; + description "The TSDB Partition (bucket, interval, segment, etc.) that the aggregated telemetry data is sent to. - "; + "; } } } } container operations { - description + description "The operations that may be applied during the aggregation. "; list operation { key id; - description + description "Details about which operation to apply and how. "; - leaf id { - type ietf-tlm-philatelist-types:something; - description + leaf id { + type ietf-tlm-philatelist-types:something; + description "The internal id of the operation to apply. - "; + "; } choice op-type { - description + description "A choice of basic operation types. This set of choices may be extended by other modules agumenting the choice. "; - container linear-sum { - description + container linear-sum { + description "This operation produces the sum of the input streams. + Since the data points in the input stream are not likely to be perfectly aligned in time, this linear-sum - operation produces a linear interpolation between each + operation produces a linear interpolation between each point in the time series. This works well when all inputs are continuously - receiving additional data points, and when their + receiving additional data points, and when their frequency is roughly the same. A different summing operation should be chosen if this is not the case, e.g. most-recent-sum. - "; + "; } container linear-average { description "FIXME"; } container linear-max { description "FIXME"; } container linear-min { description "FIXME"; } container rolling-average { description "FIXME"; - leaf timespan { - type ietf-tlm-philatelist-types:something; - description "FIXME"; + leaf timespan { + type ietf-tlm-philatelist-types:something; + description "FIXME"; } } container filter-age { description "FIXME"; - leaf min-age { - type ietf-tlm-philatelist-types:something; - description "FIXME"; + leaf min-age { + type ietf-tlm-philatelist-types:something; + description "FIXME"; } - leaf max-age { - type ietf-tlm-philatelist-types:something; - description "FIXME"; + leaf max-age { + type ietf-tlm-philatelist-types:something; + description "FIXME"; } } container function { description "FIXME"; - leaf name { - type ietf-tlm-philatelist-types:something; - description "FIXME"; + leaf name { + type ietf-tlm-philatelist-types:something; + description "FIXME"; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang index dfac7e3d2..abd838651 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-assets { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-assets"; prefix ietf-tlm-philatelist-assets; @@ -43,6 +43,7 @@ module ietf-tlm-philatelist-assets { 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 @@ -59,17 +60,17 @@ module ietf-tlm-philatelist-assets { } grouping asset-pointer-g { - description + description "Pointer to an LMO asset. "; leaf pertains-to-asset-class { type leafref { path /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:lmo-class; } - must + must "derived-from-or-self(current(), 'ietf-lmo-assets:asset')"; must "../pertains-to-asset-id"; - description + description "The LMO Asset class of the asset. "; } @@ -79,7 +80,7 @@ module ietf-tlm-philatelist-assets { "[ietf-lmo:lmo-class=current()/../pertains-to-asset-class]" +"/ietf-lmo:inst/ietf-lmo:id"; } - description + description "The LMO Asset id (within the class) of the asset. "; } @@ -88,7 +89,7 @@ module ietf-tlm-philatelist-assets { augment "/ietf-tlm-philatelist-index:tlm-index"+ "/ietf-tlm-philatelist-index:partitions"+ "/ietf-tlm-philatelist-index:partition" { - description + description "By augmenting an asset pointer into the TSDB Partition Index, controller may clarify which LMO Asset the data in the Partition pertains to. diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang index 6ba653f76..129c65a6d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-collector { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-collector"; prefix ietf-tlm-philatelist-collector; @@ -30,7 +30,7 @@ module ietf-tlm-philatelist-collector { These definitions are for Philatelist Network Controllers. A Network Controller with the Collector role programs one or more - SOURCES (typically Network Elements) to generate a STREAM of + SOURCES (typically Network Elements) to generate a STREAM of telemetry data. A SOURCE may be a Provider, or a proxy mechanism standing in for the Provider. The STREAM is then sent to a specific DESTINATION PARTITION @@ -54,6 +54,7 @@ module ietf-tlm-philatelist-collector { +------------+ +------------+ | | \\ STREAM 3 | | =============================> \___________/ + '+" Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -85,46 +86,46 @@ module ietf-tlm-philatelist-collector { } container tlm-collector { - description + description "Root container for the Philatelist Collector function. "; container organizations { - description + description "List of organizations that the collected data pertains to. Data belonging to one organization will not mix with that of another. "; list organization { key name; - description + description "Organization that this collection process pertains to. "; leaf name { type string; - description + description "Collector's name of the organization. "; } container device-groups { - description + description "List of device-groups. "; list device-group { key name; - description + description "A device-group contains a group of similar devices that will have collection performed in the same way. "; leaf name { type string; - description + description "Name of the device-group. "; } leaf-list devices { type string; - description + description "Points to the devices members of this device-group. The exact meaning of these names is implementation specific. @@ -135,53 +136,53 @@ module ietf-tlm-philatelist-collector { } container tlm-streams { - description + description "List of telemetry streams pertainin to this organization. "; list tlm-stream { key id; - description + description "A stream of telemetry data that is collected from a device-group that share a particular dashboard. "; - leaf id { - type ietf-tlm-philatelist-types:something; - description + leaf id { + type ietf-tlm-philatelist-types:something; + description "Identifier of the telemetry stream. - "; + "; } - list sources { + list sources { key "device-group dash-name"; - description + description "List of sources to collect from. Each source points to a device-group and a dashboard name to collect from each device in the device-group. "; - leaf device-group { - type leafref { + leaf device-group { + type leafref { path ../../../../device-groups/device-group/name; } - description + description "The device-group to collect from. - "; + "; } - leaf dash-name { - type leafref { + leaf dash-name { + type leafref { path "../../../../device-groups/device-group/"+ "dashboards/dashboard/id"; } - description - "The name of the dashboard - "; + description + "The name of the dashboard + "; } } - leaf destination { - type ietf-tlm-philatelist-index:partition-ref-t; - description + leaf destination { + type ietf-tlm-philatelist-index:partition-ref-t; + description "The TSDB Partition (bucket, interval, segment, etc.) that the collected telemetry data is sent to. - "; + "; } } } @@ -191,7 +192,7 @@ module ietf-tlm-philatelist-collector { augment "/tlm-collector/organizations/organization/device-groups/"+ "device-group/dash-items/dash-item/label/value-source" { - description + description "Some additional value-sources that the collector enables (that are not available to providers). "; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang index 96e2da86a..00c5e0cc1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-dashboard { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-dashboard"; prefix ietf-tlm-philatelist-dashboard; @@ -22,9 +22,9 @@ module ietf-tlm-philatelist-dashboard { description "This YANG module defines the Telemetry Philatelist Dashboard. - These definitions are used both by Philatelist Network + These definitions are used both by Philatelist Network Controllers, and Philatelist Network Elements. Network Elements - that are unaware of the Philatelist framework may also be + that are unaware of the Philatelist framework may also be covered when a 'proxy mechanism' for the Philatelist information is added. @@ -59,7 +59,7 @@ module ietf-tlm-philatelist-dashboard { identity cm-gnmi { base ietf-tlm-philatelist-types:connection-method; - description + description "Connection method identity for gNMI-based mechanisms. "; } @@ -84,54 +84,54 @@ module ietf-tlm-philatelist-dashboard { identity gnmi-polling { base cm-gnmi; base ietf-tlm-philatelist-types:cm-polled; - description + description "Connection method identity for gNMI-based polling mechanisms. "; } identity restconf-get-polling { base cm-restconf; base ietf-tlm-philatelist-types:cm-polled; - description - "Connection method identity for RESTCONF-based polling + description + "Connection method identity for RESTCONF-based polling mechanisms. "; } - identity netconf-get-polling { + identity netconf-get-polling { base cm-netconf; base ietf-tlm-philatelist-types:cm-polled; - description - "Connection method identity for NETCONF-based polling + description + "Connection method identity for NETCONF-based polling mechanisms. "; } identity restconf-yang-push-subscription { base cm-restconf; - description - "Connection method identity for RESTCONF-based + description + "Connection method identity for RESTCONF-based subscription mechanisms. "; } identity netconf-yang-push-subscription { base cm-netconf; - description - "Connection method identity for NETCONF-based + description + "Connection method identity for NETCONF-based subscription mechanisms. "; } identity redfish-polling { base cm-redfish; - description + description "Connection method identity for Redfish-based polling mechanisms. "; } grouping access-g { - description + description "Grouping describing the basic set of access methods offered by - Philatelist servers, i.e. Network Elements. The set of access - mechanisms may be extended by servers offering additional + Philatelist servers, i.e. Network Elements. The set of access + mechanisms may be extended by servers offering additional mechanisms. This grouping is also used by Network Controllers, - when they need to find a way to interact with the + when they need to find a way to interact with the Network Elements. "; @@ -140,77 +140,77 @@ module ietf-tlm-philatelist-dashboard { base ietf-tlm-philatelist-types:connection-method; } default ietf-tlm-philatelist-types:get-local-file-once; - description + description "Discriminator pointing out which access mechanism is offered. This value controls which detailed configuration nodes will be available. "; } container get-local-file-once { - when "derived-from-or-self(../method, + when "derived-from-or-self(../method, 'ietf-tlm-philatelist-types:get-local-file-once')"; - description + description "The server itself does not offer any access mechanism for this dashboard item. Instead, philatelist controllers will - need to read static values from a local on the controller. - How the file appears in a relevant location on the + need to read static values from a local on the controller. + How the file appears in a relevant location on the controller is outside the scope of this specification. The file format used MUST adhere to RFC9195 (https://datatracker.ietf.org/doc/rfc9195/) "; - leaf filename { - type string; - description + leaf filename { + type string; + description "The name of the file containing the static data for the - dashboard item. If the filename is not specified, the + dashboard item. If the filename is not specified, the controller should look for a file with the same name as the connection name. "; } } container get-static-url-once { - when "derived-from-or-self(../method, + when "derived-from-or-self(../method, 'ietf-tlm-philatelist-types:get-static-url-once')"; - description + description "The server points to a URL the controller can use to download a file with static values for this dashboard item. The URL may or may not be pointing to the server itself, and - could potentially even point to a URL on the controller + could potentially even point to a URL on the controller itself. How the static file contents pointed to by the URL appears on the webserver is outside the scope of this specification. "; - leaf url { - type ietf-tlm-philatelist-types:something; - description - "The URL that the controller should read in order to + leaf url { + type ietf-tlm-philatelist-types:something; + description + "The URL that the controller should read in order to get the static data about the dashboard item. The file format used MUST adhere to RFC9195 (https://datatracker.ietf.org/doc/rfc9195/) - "; + "; } } container gnmi-polling { when "derived-from-or-self(../method, 'gnmi-polling')"; - description + description "The server points to a gNMI interface the controller can poll at regular intervals to read the current sensor value for this dashboard item. "; - leaf encoding { - type ietf-tlm-philatelist-types:something; - description - "The encoding of the data provided by this mechanism, + leaf encoding { + type ietf-tlm-philatelist-types:something; + description + "The encoding of the data provided by this mechanism, such as self-describing-gpb - "; - } - leaf protocol { - type ietf-tlm-philatelist-types:something; - description - "The exact protocol parameters for this gNMI endpoint, + "; + } + leaf protocol { + type ietf-tlm-philatelist-types:something; + description + "The exact protocol parameters for this gNMI endpoint, such as grpc no-tls - "; - } + "; + } } container restconf-get-polling { when "derived-from-or-self(../method, 'restconf-get-polling')"; @@ -223,13 +223,13 @@ module ietf-tlm-philatelist-dashboard { description "FIXME"; } container restconf-yang-push-subscription { - when "derived-from-or-self(../method, + when "derived-from-or-self(../method, 'restconf-yang-push-subscription')"; leaf xxx { type string; description "FIXME"; } description "FIXME"; } container netconf-yang-push-subscription { - when "derived-from-or-self(../method, + when "derived-from-or-self(../method, 'netconf-yang-push-subscription')"; leaf xxx { type string; description "FIXME"; } description "FIXME"; @@ -239,11 +239,11 @@ module ietf-tlm-philatelist-dashboard { leaf xxx { type string; description "FIXME"; } description "FIXME"; } - leaf frequency { - when "derived-from(../method, + leaf frequency { + when "derived-from(../method, 'ietf-tlm-philatelist-types:cm-polled')"; - type ietf-tlm-philatelist-types:sample-frequency; - description + type ietf-tlm-philatelist-types:sample-frequency; + description "The frequency with which the sensor data value collection should happen. E.g. once per 30 minutes, once per 5 minutes, once per 30 seconds or on-change. @@ -252,7 +252,7 @@ module ietf-tlm-philatelist-dashboard { } grouping provider-g { - description + description "Top-level provider grouping. Devices will implement this as a config false container, or as a piece of instance data that a controller can read. Controllers implement this @@ -260,24 +260,24 @@ module ietf-tlm-philatelist-dashboard { the operators. "; container dashboards { - description - "Each device may support one or more dashboards. - Controllers can then choose the most advanced dashboard they + description + "Each device may support one or more dashboards. + Controllers can then choose the most advanced dashboard they are aware of and interested in. A dashboard contains a list of sensors and/or controls that a controller may find useful for some particular use case. "; list dashboard { key id; - description - "List of dashboards supported by a given device or + description + "List of dashboards supported by a given device or controller. "; leaf id { type identityref { base ietf-tlm-philatelist-types:dash-type; } - description + description "Formal dashboard id. The dashboard-items in this dashboard are found in ../items, and what items are available there depends on this dashboard id . @@ -285,7 +285,7 @@ module ietf-tlm-philatelist-dashboard { } list items { key tsdb-path; - description + description "List of dashboard items. Some of the items are sensors which provide data to be read, some may be controls that the controller may use. @@ -294,16 +294,16 @@ module ietf-tlm-philatelist-dashboard { type leafref { path ../../../../dash-items/dash-item/tsdb-path; } - description + description "Path to the sensor or control item on the dashboard. The format of the path is TSDB style, i.e. used MUST conform to the I-D.draft-kll-yang-label-tsdb, e.g. interfaces_interface_statistics_in_unicast_pkts - Each dashboard item may point to multiple sensors, + Each dashboard item may point to multiple sensors, as in the example above, where each interface would have a counter of incoming unicase packets. - Each dashboard item may occur in more than one - dashboard, and is therefore further desribed in + Each dashboard item may occur in more than one + dashboard, and is therefore further desribed in ../../../../dash-items/dash-item "; } @@ -311,21 +311,21 @@ module ietf-tlm-philatelist-dashboard { } } container dash-items { - description + description "Container for all dashboard items. Each item may be part of (referenced by) multiple dashboards. "; list dash-item { key tsdb-path; - description - "Dashboard item, a sensor or control item that is part + description + "Dashboard item, a sensor or control item that is part of a dashboard, i.e. a collection of sensors and controls relevant for a particular use case. Each dashboard item may occur in more than one dashboard. "; leaf tsdb-path { type string; - description + description "Path to the sensor or control item on the dashboard. The format of the path is TSDB style, i.e. used MUST conform to the I-D.draft-kll-yang-label-tsdb, e.g. @@ -335,16 +335,16 @@ module ietf-tlm-philatelist-dashboard { a counter of incoming unicase packets. "; } - leaf item-type { - type identityref { - base ietf-tlm-philatelist-types:dash-item-type; + leaf item-type { + type identityref { + base ietf-tlm-philatelist-types:dash-item-type; } mandatory true; - description + description "The item type describes the type of dashboard item this is, including if it is a sensor or contol, sitting on the inside or outside of the parent component, the - measurement quantity (e.g. temperature) and unit + measurement quantity (e.g. temperature) and unit (e.g. Celsius). See the ietf-tlm-philatelist-types:dash-item-type for a @@ -353,21 +353,21 @@ module ietf-tlm-philatelist-dashboard { "; } container accuracy { - when "derived-from(../item-type, + when "derived-from(../item-type, 'ietf-tlm-philatelist-types:sensor-type')"; - description + description "The accuracy of the dasboard item (sensor). The accuracy described using two parameters. One is the max deviation relative to the sensor reading, the other one is a constant deviation offset. - Example 1: if a sensor might produce values between - 0 and 1000, and the sensor currently reports 555, but + Example 1: if a sensor might produce values between + 0 and 1000, and the sensor currently reports 555, but the actual value is 531, that could be reported as a 5% relative error with offset 0. - Example 2: if a sensor might produce values between - 0 and 1000, and the sensor currently reports 0, but + Example 2: if a sensor might produce values between + 0 and 1000, and the sensor currently reports 0, but the actual value is 2, that could be reported as a 0% relative error with offset 2 (or some slightly highger value, e.g. 5). @@ -377,13 +377,13 @@ module ietf-tlm-philatelist-dashboard { value R so that: (measured-error) = | R - V | - (error-margin) = | R * (max-error-relative) | + (error-margin) = | R * (max-error-relative) | + (max-error-offset) p( (measured-error) < (error-margin) ) >= 0.96 "; leaf max-error-relative { type ietf-tlm-philatelist-types:something; - description + description "The part of the accuracy claim that depends on (varies in proportion to) the reported value. "; @@ -398,9 +398,9 @@ module ietf-tlm-philatelist-dashboard { } list label { key name; - description + description "List of TSDB path labels. A single TSDB path often refer - to a whole collection of readable sensors. Each such + to a whole collection of readable sensors. Each such sensor is distinguished by the values associated with labels in the path. Those labels are listed here. @@ -423,13 +423,13 @@ module ietf-tlm-philatelist-dashboard { I-D.draft-kll-yang-label-tsdb; leaf name { type string; - description + description "The name of the label, in TSDB path notation. E.g. interfaces_interface_name "; } choice value-source { - description + description "The source of the values associated with the labels. Label values may be provided in several ways: + the server may provide values in runtime, in which @@ -444,10 +444,10 @@ module ietf-tlm-philatelist-dashboard { "; leaf-list static-values { type string; - description + description "One or more values configured by the controller or operator designating which instances of this TSDB - path to collect data about. + path to collect data about. Example: if the label name for this label entry is interfaces_interface_name, this could be a configured @@ -458,13 +458,13 @@ module ietf-tlm-philatelist-dashboard { type leafref { path ../../../dash-item/tsdb-path; } - description + description "One or more dashboard items to read label values from. Example: if the label name for this label entry is interfaces_interface_name, this could point to a - dashboard item that collects the names of all + dashboard item that collects the names of all interfaces, or all interfaces relevant for a particular purpose or customer. "; @@ -472,7 +472,7 @@ module ietf-tlm-philatelist-dashboard { } } choice access-path { - description + description "This is the path used by the client (Network Controller) when asking the server (Network Element) for data. The format of the access-path depends on the specific @@ -484,20 +484,20 @@ module ietf-tlm-philatelist-dashboard { "; leaf plain-string { type string; - description + description "The given string is used as is, without substitution of any labels or special characters. "; } leaf string-with-labels { type string; - description + description "The given string contains references of the form $(label_name) - i.e. a dollar-sign, a left-parenthesis, - the name of the label - case sensitive and without + i.e. a dollar-sign, a left-parenthesis, + the name of the label - case sensitive and without whitespace - and finally a right-parenthesis. This expression refers to the labels-value pairs from @@ -523,7 +523,7 @@ module ietf-tlm-philatelist-dashboard { } leaf url-with-labels { type string; - description + description "The given string contains references of the forms {label_name} @@ -566,15 +566,15 @@ module ietf-tlm-philatelist-dashboard { type leafref { path ../../../accesses/access/id; } - description + description "Points to the specific access method to be used with - this dashboard item. + this dashboard item. "; } } } container accesses { - description + description "Holds a list of all the access methods that have been defined for dashboard items on the Network Element. "; @@ -586,7 +586,7 @@ module ietf-tlm-philatelist-dashboard { "; leaf id { type string; - description + description "Name for this access method. "; } @@ -594,19 +594,19 @@ module ietf-tlm-philatelist-dashboard { } } container prefix-mappings { - description + description "Contains the mappings for prefixes used in the access-path to the XML namespace (NETCONF) or module name (RESTCONF). "; list prefix-mapping { key prefix; - description + description "List of access-path prefixes and their mapping to namespace and module name. "; leaf prefix { type string; - description + description "Prefix, as used in the dash-item/access-path. The prefix is case sensitive, and should not contain the ending colon (:). @@ -614,14 +614,14 @@ module ietf-tlm-philatelist-dashboard { } leaf namespace { type string; - description + description "XML namespace corresponding to the prefix name. Used by NETCONF-based access mechanisms. "; } leaf module-name { type string; - description + description "YANG module name corresponding to the prefix name. Used by RESTCONF-based access mechanisms. "; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang index d7e414779..cb43815b7 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-index { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-index"; prefix ietf-tlm-philatelist-index; @@ -24,7 +24,7 @@ module ietf-tlm-philatelist-index { These definitions are for Philatelist Network Controllers. A Network Controller with the Collector role programs one or more - SOURCES (typically Network Elements) to generate a STREAM of + SOURCES (typically Network Elements) to generate a STREAM of telemetry data. The STREAM is sent to a specific DESTINATION in a Time Series Database (TSDB). @@ -77,45 +77,45 @@ module ietf-tlm-philatelist-index { } typedef partition-ref-t { - type leafref { - path + type leafref { + path "/ietf-tlm-philatelist-index:tlm-index"+ "/ietf-tlm-philatelist-index:partitions"+ "/ietf-tlm-philatelist-index:partition"+ - "/ietf-tlm-philatelist-index:id"; + "/ietf-tlm-philatelist-index:id"; } - description - "Pointer to a specific TSDB partition + description + "Pointer to a specific TSDB partition (aka. bucket, interval, segment, etc.) "; } grouping tsdb-partition-g { - description + description "Grouping for identifying and connecting to a specific TSDB partition (aka. bucket, interval, segment, etc.) "; - leaf url { - type ietf-tlm-philatelist-types:something; - description + leaf url { + type ietf-tlm-philatelist-types:something; + description "The URL to use to connect to the TSDB. - "; + "; } - leaf organization { - type ietf-tlm-philatelist-types:something; - description + leaf organization { + type ietf-tlm-philatelist-types:something; + description "The organization this partition belongs to. Leaving this unset means the 'default' organization. - "; + "; } leaf partition { - type ietf-tlm-philatelist-types:something; - description + type ietf-tlm-philatelist-types:something; + description "The TSDB partition (aka. bucket, interval, segment, etc.) that the collected data is stored in. - "; + "; } container impl-specific { - description + description "Implementation specific key-valye pairs for establising and maintaining the collection connections. "; @@ -125,38 +125,38 @@ module ietf-tlm-philatelist-index { "List of key-value bindings. The meaning of these key-value pairs is implementation dependent. "; - leaf key { - type string; - description + leaf key { + type string; + description "The key part of the key-value pair. The set of key values that are defined is implementation dependent. - "; + "; } choice value-type { - description + description "The value part of the key-value pair. The value part may have several different formats, and implementations may augment yet other formats into this choice. "; - leaf value { - type string; - description + leaf value { + type string; + description "The value part of the key-value pair as a simple string value. - "; + "; } - leaf-list values { - type string; - ordered-by user; - description + leaf-list values { + type string; + ordered-by user; + description "The value part of the key-value pair as a collection of string values. - "; + "; } - leaf env-var { - type string; - description + leaf env-var { + type string; + description "The value part of the key-value pair. The actual value is provided by an operating system environment variable. The name of that environment variable is @@ -164,7 +164,7 @@ module ietf-tlm-philatelist-index { The set of environment variable names that are defined is implementation dependent. - "; + "; } } } @@ -172,25 +172,25 @@ module ietf-tlm-philatelist-index { } container tlm-index { - description + description "List of TSDB Partitions referenced by this Network Controller. "; container partitions { - description + description "Container for all the TSDB Partition access information. "; list partition { key id; - description + description "TSDB Partition access information for the Partitions that this Network Controller is aware of. "; - leaf id { - type ietf-tlm-philatelist-types:something; - description + leaf id { + type ietf-tlm-philatelist-types:something; + description "The Network Controller's internal identifier for this TSDB Partition. - "; + "; } uses tsdb-partition-g; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang index c4d8a4e58..0b569c83d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-provider { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-provider"; prefix ietf-tlm-philatelist-provider; @@ -58,7 +58,7 @@ module ietf-tlm-philatelist-provider { } container tlm-provider { - description + description "Container with telemetry collection dashboards for Network Elements with built-in support for the Philatelist collection framework. diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang index 6d6a9b8f9..38d40dd93 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang @@ -1,6 +1,6 @@ module ietf-tlm-philatelist-types { yang-version 1.1; - namespace + namespace "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-types"; prefix ietf-tlm-philatelist-types; @@ -16,7 +16,7 @@ module ietf-tlm-philatelist-types { Editor: Marisol Palmero "; description - "This YANG module defines base identities for quantities, + "This YANG module defines base identities for quantities, measurement units, connection methods, sensor and control types for the Telemetry Philatelist framework. @@ -49,67 +49,68 @@ module ietf-tlm-philatelist-types { "RFC XXXX: ..."; } - typedef something { + typedef something { type string; - description + description "FIXME: Used when we haven't decided the type yet "; } typedef xpath { type string; - description + description "FIXME: Proper type needed "; } typedef sample-frequency { - type string; - description + type string; + description "FIXME: Proper type needed "; } // ========== SENSOR-CLASS ============================== identity sensor-class { - description + description "Sensor's relation to the asset it sits on. "; } identity sc-input { base sensor-class; - description + description "Sensor reports input quantity of the asset it sits on. "; } identity sc-output { base sensor-class; - description + description "Sensor reports output quantity of the asset it sits on. "; } identity sc-allocated { base sensor-class; - description + description "Sensor reports (maximum) allocated quantity of the asset it sits on. "; } + // ========== SENSOR-QUANTITY ============================== identity sensor-quantity { - description + description "Sensor's quantity being measured. "; } // ========== SENSOR-UNIT ============================== identity sensor-unit { - description + description "Sensor's unit of reporting. "; } // ========== DASH-TYPE =================================== identity dash-type { - description + description "The base identity for all dashboard types. Dashboards are predefined collections of sensors and/or controls that a Network Element publishes towards a Network @@ -120,7 +121,7 @@ module ietf-tlm-philatelist-types { // ========== DASH-ITEM-TYPE ============================== identity dash-item-type { - description + description "The base identity for an individual item on a dashboard. This is further subdivided into controls and sensors, which are even further subdivided into sensors measuring e.g. @@ -129,7 +130,7 @@ module ietf-tlm-philatelist-types { } identity sensor-type { base dash-item-type; - description + description "Sensor's type, i.e. combination of class, quantity and unit. Sensor class tells whether the sensor measures some quantity on the inside or outside of the component it pertains to. @@ -141,18 +142,19 @@ module ietf-tlm-philatelist-types { E.g. Celsius, Farenheit or Kelvin. Or energy in kWh or J. "; } + // ========== CONNECTION-METHOD ============================== identity connection-method { - description + description "Base identity for all kinds of connection methods. "; } identity get-local-file-once { base connection-method; - description + description "Connection method identity for the case where a file contains - the dashboard information in lieu of the Network Element + the dashboard information in lieu of the Network Element itself. "; } @@ -161,13 +163,13 @@ module ietf-tlm-philatelist-types { description "Connection method identity for the case where a URL contains the dashboard information in lieu of the Network Element - itself. The URL may or may not be hosted on the Network + itself. The URL may or may not be hosted on the Network Element. "; } identity cm-polled { base connection-method; - description + description "Connection method identity for all mechanisms that are based on the client regularly polling the server. "; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang index 4742f5c09..95d28d4a4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang @@ -41,8 +41,8 @@ module ietf-trans-client-service-path-computation { Chaode Yu (yuchaode@huawei.com); Sergio Belotti (sergio.belotti@nokia.com); Italo Busi (italo.busi@huawei.com); - Aihua Guo (aihuaguo.ietf@gmail.com); - Dieter Beller (dieter.beller@nokia.com); + Aihua Guo (aihuaguo.ietf@gmail.com); + Dieter Beller (dieter.beller@nokia.com); "; description @@ -74,7 +74,7 @@ module ietf-trans-client-service-path-computation { key path-id; leaf path-id { - type yang:uuid; + type yang:uuid; } leaf creation-time { @@ -91,8 +91,8 @@ module ietf-trans-client-service-path-computation { key index; leaf index { - description - "The tunnels underlay should be ordered by their + description + "The tunnels underlay should be ordered by their supproting relationship. The client layer tunnels should use smaller index."; type uint8; @@ -103,17 +103,17 @@ module ietf-trans-client-service-path-computation { path "/te:te/te:tunnels/te:tunnel/te:name"; } - description + description "the computed result can route with some existing - TE tunnels. The tunnel-name is the identifier of - tunnel. If the tunnel is not created, this + TE tunnels. The tunnel-name is the identifier of + tunnel. If the tunnel is not created, this parameter is not needed to provide."; } uses te-types:te-topology-identifier; list computed-lsp { - key lsp-id; + key lsp-id; leaf lsp-id { type uint8; } @@ -146,6 +146,7 @@ module ietf-trans-client-service-path-computation { } } } + list lsp-route-objects { key index; @@ -160,7 +161,7 @@ module ietf-trans-client-service-path-computation { path "../../../index"; } } - } + } } } } @@ -234,11 +235,11 @@ module ietf-trans-client-service-path-computation { description "when the client requestes to compute multiple paths for a service, this path-number can be used to rank - the path result, based on the path computation - policy. The path-number starts with 0 and 0 - indicates the best option. The better path's + the path result, based on the path computation + policy. The path-number starts with 0 and 0 + indicates the best option. The better path's path-number should be in lower number."; - } + } } uses te-types:te-topology-identifier; @@ -258,15 +259,15 @@ module ietf-trans-client-service-path-computation { list underlay-tunnel { key index; - description + description "The server could support all the layers of tunnels - under the client signal service. If it cannot + under the client signal service. If it cannot support that, it should return its topmost layer tunnel's path infomation"; leaf index { - description - "The tunnels underlay should be ordered by their + description + "The tunnels underlay should be ordered by their supproting relationship. The client layer tunnels should use smaller index."; type uint8; @@ -277,10 +278,10 @@ module ietf-trans-client-service-path-computation { path "/te:te/te:tunnels/te:tunnel/te:name"; } - description + description "the computed result can route with some existing - TE tunnels. The tunnel-name is the identifier of - tunnel. If the tunnel is not created, this + TE tunnels. The tunnel-name is the identifier of + tunnel. If the tunnel is not created, this parameter is not needed to provide."; } @@ -345,7 +346,7 @@ module ietf-trans-client-service-path-computation { } } } - } + } grouping hop-infomation { leaf node-id { @@ -383,6 +384,7 @@ module ietf-trans-client-service-path-computation { case wson { uses l0-types:wson-label-hop; } + case otn { uses l1-types:otn-label-hop; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang index 4398a689a..60d9ea673 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang @@ -38,7 +38,7 @@ module ietf-trans-client-service { import ietf-trans-client-svc-types { prefix clnt-types; reference - "RFCXXXX: A YANG Data Model for Transport Network Client + "RFCXXXX: A YANG Data Model for Transport Network Client Signals"; } // RFC Editor: replace XXXX with the actual RFC number assigned @@ -118,7 +118,7 @@ module ietf-trans-client-service { leaf access-ltp-id { type te-types:te-tp-id; description - "The TE link termination point identifier in TE topology, + "The TE link termination point identifier in TE topology, used together with access-node-id to identify the access Link Termination Point (LTP)."; } @@ -189,6 +189,7 @@ module ietf-trans-client-service { "TE tunnel instance name."; } } + grouping client-svc-instance-config { description "Configuration parameters for client services."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-10-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-10-15.yang index 34cc52265..6d773cebd 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-10-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-10-15.yang @@ -18,6 +18,7 @@ module ietf-udp-client { Pierre Francois "; + description "Defines a generic grouping for UDP-based client applications. diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-10-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-10-15.yang index ff21a11b3..470b89527 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-10-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-10-15.yang @@ -24,6 +24,7 @@ module ietf-udp-server { Copyright (c) 2024 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 diff --git a/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang index 4b9762a2a..1f6a55f4b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang @@ -58,6 +58,7 @@ module ietf-voucher { '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-01-10 { description "updated to support new assertion enumerated type"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang index 6287d49a4..ae8d12620 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang @@ -6,7 +6,7 @@ module ietf-wdm-path-computation { import ietf-te-path-computation { prefix "tepc"; - reference + reference "I-D.ietf-teas-yang-path-computation-22: Yang model for requesting Path Computation."; } @@ -50,7 +50,7 @@ module ietf-wdm-path-computation { "This module defines a model for requesting WDM Path Computation. - The model fully conforms to the Network Management + The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2022 IETF Trust and the persons @@ -72,7 +72,7 @@ module ietf-wdm-path-computation { reference "RFC XXXX: YANG Data Models for requesting Path Computation in Optical Networks."; - // RFC Ed.: replace XXXX with actual RFC number, update date + // RFC Ed.: replace XXXX with actual RFC number, update date // information and remove this note } @@ -139,6 +139,7 @@ module ietf-wdm-path-computation { uses wdm-tnl:path-transceiver-config; } + //??? augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + "tepc:path-request/tepc:optimizations/tepc:algorithm/" @@ -187,6 +188,7 @@ module ietf-wdm-path-computation { "The OMS element route hop type"; } } + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + "tepc:path-request/tepc:explicit-route-objects/" + "tepc:route-object-include-exclude/tepc:type/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang index c0e8a94be..daac6b8a2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang @@ -47,7 +47,7 @@ module ietf-wdm-tunnel { and managing Wavelength-Division Multiplexing (WDM) switched optical tunnels. - The model fully conforms to the Network Management + The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2021 IETF Trust and the persons @@ -70,7 +70,7 @@ module ietf-wdm-tunnel { reference "RFC XXXX: YANG data model for WDM tunnels"; - // RFC Ed.: replace XXXX with actual RFC number, update date + // RFC Ed.: replace XXXX with actual RFC number, update date // information and remove this note } @@ -93,6 +93,7 @@ module ietf-wdm-tunnel { For instance, if the frequency is restricted to the C-band, the list of operational modes should not include any modes applicable only to the L-band."; + leaf otsi-carrier-frequency { type l0-types:frequency-thz; description @@ -113,10 +114,10 @@ module ietf-wdm-tunnel { base l0-types:line-coding; } description - "The list of the bit rate/line coding of the optical + "The list of the bit rate/line coding of the optical tributary signal that constrains the configuration of the transceiver."; - reference + reference "ITU-T G.698.2 section 7.1.2"; } @@ -150,7 +151,7 @@ module ietf-wdm-tunnel { configurations"; leaf-list operational-modes { - type string { + type string { length "1..255"; } description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang index 340d1772f..9114e2ac2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang @@ -40,6 +40,7 @@ module ietf-yang-full-embed-library { 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 @@ -92,3 +93,4 @@ module ietf-yang-full-embed-library { } } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang index 4c7e8d070..16111a7ec 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang @@ -59,3 +59,4 @@ module ietf-yang-full-embed { the sequence is declared"; } } + diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2024-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2024-10-18.yang index e5068eff6..21a10b482 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2024-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2024-10-18.yang @@ -47,7 +47,7 @@ module ietf-yp-notification { description "Defines a notification header for Subscribed Notifications [RFC8639] and YANG-Push [RFC8641]. When this notification header - is enabled through configuration, the root container of the + is enabled through configuration, the root container of the notification is encoded as defined in RFCXXX. This module can be used to validate XML encoded notifications @@ -85,11 +85,11 @@ module ietf-yp-notification { type boolean; default false; description - "Enables YANG-Push to use the notification-envelope + "Enables YANG-Push to use the notification-envelope defined in RFC XXXX."; } container metadata { - description + description "Container for configuring optional metadata."; } } @@ -103,11 +103,11 @@ module ietf-yp-notification { type boolean; default false; description - "Supports YANG-Push to use the notification-envelope + "Supports YANG-Push to use the notification-envelope defined in RFC XXXX."; } container metadata { - description + description "Container with the supported optional metadata by the YANG-Push publisher."; leaf hostname-sequence-number { @@ -145,7 +145,7 @@ module ietf-yp-notification { published message."; } anydata notification-contents { - description + description "This contains the values defined by the 'notification' statement unchanged."; } @@ -178,11 +178,11 @@ module ietf-yp-notification { augment "/sysc:system-capabilities/notc:subscription-capabilities" { description "Extension to the subscription-capabilities model to enable - clients to learn whether the publisher supports the + clients to learn whether the publisher supports the notification-envelope"; container notification-metadata { - description + description "Adds the notification metadata capabilities to subscription capabilities."; uses notif-env-capabilities; diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index 7eb296471..7f89fa2a8 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2024-11-07 + 2024-11-22 YANG Module Names @@ -1569,6 +1569,16 @@ and Subsequent Address Family Identi + + ietf-otn-topology + N + + urn:ietf:params:xml:ns:yang:ietf-otn-topology + otnt + + + 's module file will be posted upon the document's publication as an RFC. + ietf-packet-fields N diff --git a/standard/ietf/RFC/ietf-babel@2024-10-10.yang b/standard/ietf/RFC/ietf-babel@2024-10-10.yang index 89cbd463e..1b1c5a531 100644 --- a/standard/ietf/RFC/ietf-babel@2024-10-10.yang +++ b/standard/ietf/RFC/ietf-babel@2024-10-10.yang @@ -1261,3 +1261,4 @@ module ietf-babel { } } } + diff --git a/standard/ietf/RFC/ietf-factory-default@2020-08-31.yang b/standard/ietf/RFC/ietf-factory-default@2020-08-31.yang index efed91988..8402a249f 100644 --- a/standard/ietf/RFC/ietf-factory-default@2020-08-31.yang +++ b/standard/ietf/RFC/ietf-factory-default@2020-08-31.yang @@ -84,4 +84,4 @@ module ietf-factory-default { the contents of the read-write conventional configuration datastores during a 'factory-reset' RPC operation."; } -} +} \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-module-tags@2021-01-04.yang b/standard/ietf/RFC/ietf-module-tags@2021-01-04.yang index b4e965674..dbc759ca4 100644 --- a/standard/ietf/RFC/ietf-module-tags@2021-01-04.yang +++ b/standard/ietf/RFC/ietf-module-tags@2021-01-04.yang @@ -116,3 +116,4 @@ module ietf-module-tags { } } } + diff --git a/standard/ietf/RFC/ietf-mpls-ldp@2022-03-14.yang b/standard/ietf/RFC/ietf-mpls-ldp@2022-03-14.yang index fc55646da..b225b72c0 100644 --- a/standard/ietf/RFC/ietf-mpls-ldp@2022-03-14.yang +++ b/standard/ietf/RFC/ietf-mpls-ldp@2022-03-14.yang @@ -1449,3 +1449,4 @@ module ietf-mpls-ldp { } } } + diff --git a/standard/ietf/RFC/ietf-mpls@2020-12-18.yang b/standard/ietf/RFC/ietf-mpls@2020-12-18.yang index 2d3d5046b..a4e064a7a 100644 --- a/standard/ietf/RFC/ietf-mpls@2020-12-18.yang +++ b/standard/ietf/RFC/ietf-mpls@2020-12-18.yang @@ -460,4 +460,4 @@ module ietf-mpls { statement."; uses nhlfe-multiple-contents; } -} +} \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-msdp@2020-10-31.yang b/standard/ietf/RFC/ietf-msdp@2020-10-31.yang index ba42b978a..2db40d262 100644 --- a/standard/ietf/RFC/ietf-msdp@2020-10-31.yang +++ b/standard/ietf/RFC/ietf-msdp@2020-10-31.yang @@ -797,4 +797,4 @@ module ietf-msdp { } // sa-cache } // msdp } // augment -} +} \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-nmda-compare@2021-12-10.yang b/standard/ietf/RFC/ietf-nmda-compare@2021-12-10.yang index b2a983f9a..ec91c202e 100644 --- a/standard/ietf/RFC/ietf-nmda-compare@2021-12-10.yang +++ b/standard/ietf/RFC/ietf-nmda-compare@2021-12-10.yang @@ -178,3 +178,4 @@ module ietf-nmda-compare { } } } + diff --git a/standard/ietf/RFC/ietf-restconf-subscribed-notifications@2019-11-17.yang b/standard/ietf/RFC/ietf-restconf-subscribed-notifications@2019-11-17.yang index 1efa6e447..98a799087 100644 --- a/standard/ietf/RFC/ietf-restconf-subscribed-notifications@2019-11-17.yang +++ b/standard/ietf/RFC/ietf-restconf-subscribed-notifications@2019-11-17.yang @@ -35,9 +35,9 @@ module ietf-restconf-subscribed-notifications { 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 + forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (https://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8650; see the RFC itself for full legal notices."; diff --git a/standard/ietf/RFC/ietf-softwire-br@2019-11-16.yang b/standard/ietf/RFC/ietf-softwire-br@2019-11-16.yang index 708ad44b1..e2450cd48 100644 --- a/standard/ietf/RFC/ietf-softwire-br@2019-11-16.yang +++ b/standard/ietf/RFC/ietf-softwire-br@2019-11-16.yang @@ -5,12 +5,12 @@ module ietf-softwire-br { import ietf-inet-types { prefix inet; - reference + reference "RFC 6991: Common YANG Data Types, Section 4"; } import ietf-yang-types { prefix yang; - reference + reference "RFC 6991: Common YANG Data Types, Section 3"; } import ietf-softwire-common { @@ -26,30 +26,30 @@ module ietf-softwire-br { "WG Web: WG List: - Author: Qi Sun + Author: Qi Sun - Author: Linhui Sun + Author: Linhui Sun - Author: Yong Cui + Author: Yong Cui - Editor: Ian Farrer + Editor: Ian Farrer - Author: Sladjana Zoric + Author: Sladjana Zoric - Editor: Mohamed Boucadair + Editor: Mohamed Boucadair - Author: Rajiv Asati + Author: Rajiv Asati "; description "This document defines a YANG module for the configuration and - management of A+P Softwire Border Routers. It covers + management of A+P Softwire Border Routers. It covers Lightweight 4over6, MAP-E, and MAP-T mechanisms. Copyright (c) 2019 IETF Trust and the persons identified as @@ -81,8 +81,8 @@ module ietf-softwire-br { description "Describes a set of Layer 4 port numbers. - This may be a simple port range, or use the Port Set - Identifier (PSID) algorithm to represent a range of transport + This may be a simple port range, or use the Port Set + Identifier (PSID) algorithm to represent a range of transport layer ports that will be used by a NAPT."; leaf psid-offset { type uint8 { @@ -93,7 +93,7 @@ module ietf-softwire-br { the default value is 0 for assigning one contiguous port range. In MAP-E/T, the default value is 6, which means the system ports (0-1023) are excluded by - default and the assigned port ranges are distributed across + default and the assigned port ranges are distributed across the entire port space, depending on either psid-len or the number of contiguous ports."; } @@ -119,8 +119,8 @@ module ietf-softwire-br { grouping binding-entry { description - "The binding BR maintains an address binding table that - contains the binding between the CE's IPv6 address, + "The binding BR maintains an address binding table that + contains the binding between the CE's IPv6 address, the allocated IPv4 address and restricted port-set."; leaf binding-ipv6info { type union { @@ -129,7 +129,7 @@ module ietf-softwire-br { } description "The IPv6 information for a CE binding entry. - When the IPv6 prefix type is used, + When the IPv6 prefix type is used, the IPv6 source address of the CE is constructed according to the description in RFC 7596; if the IPv6 address type is used, the CE can use @@ -142,7 +142,7 @@ module ietf-softwire-br { leaf binding-ipv4-addr { type inet:ipv4-address; description - "The IPv4 address assigned to the binding CE, + "The IPv4 address assigned to the binding CE, which is used as the IPv4 external address for binding CE local NAPT44."; } @@ -170,28 +170,28 @@ module ietf-softwire-br { feature binding-mode { description - "Binding is used for configuring the Lightweight 4over6 + "Binding is used for configuring the Lightweight 4over6 mechanism. Binding-based softwire mechanisms are IPv4-over-IPv6 tunneling transition mechanisms specifically intended for complete - independence between the IPv6 subnet prefix (and IPv6 address) + independence between the IPv6 subnet prefix (and IPv6 address) and IPv4 address, with or without IPv4 address sharing. This is accomplished by maintaining state for each softwire - (per-subscriber state) in the central Border Relay (BR) and - using a hub-and-spoke forwarding architecture. In order to - delegate the NAPT function and achieve IPv4 address sharing, + (per-subscriber state) in the central Border Relay (BR) and + using a hub-and-spoke forwarding architecture. In order to + delegate the NAPT function and achieve IPv4 address sharing, port-restricted IPv4 addresses needs to be allocated to CEs. This feature indicates that the network element can function as one or more binding-based softwire instances."; reference - "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack + "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture - RFC 7597: Mapping of Address and Port with Encapsulation - (MAP-E) - RFC 7599: Mapping of Address and Port using Translation + RFC 7597: Mapping of Address and Port with Encapsulation + (MAP-E) + RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; } @@ -199,14 +199,14 @@ module ietf-softwire-br { description "MAP-E is an IPv6 transition mechanism for transporting IPv4 packets across an IPv6 network using IP encapsulation. MAP-E - allows for a reduction of the amount of centralized state - using rules to express IPv4/IPv6 address mappings. This - introduces an algorithmic relationship between the IPv6 subnet + allows for a reduction of the amount of centralized state + using rules to express IPv4/IPv6 address mappings. This + introduces an algorithmic relationship between the IPv6 subnet and IPv4 address. - This feature indicates that the network element can function + This feature indicates that the network element can function as one or more MAP-E softwire instances."; - reference + reference "RFC 7597: Mapping of Address and Port with Encapsulation (MAP-E)"; } @@ -214,15 +214,15 @@ module ietf-softwire-br { feature map-t { description "MAP-T is an IPv6 transition mechanism for transporting IPv4 - packets across an IPv6 network using IP translation. It - leverages a double stateless NAT64-based solution as well - as the stateless algorithmic address and transport layer + packets across an IPv6 network using IP translation. It + leverages a double stateless NAT64-based solution as well + as the stateless algorithmic address and transport layer port mapping algorithm defined for MAP-E. This feature indicates that the network element can function as one or more MAP-T softwire instances."; - reference - "RFC 7599: Mapping of Address and Port using Translation + reference + "RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; } @@ -261,19 +261,19 @@ module ietf-softwire-br { description "Timestamp when the binding table was activated. - A binding instance may be provided with binding + A binding instance may be provided with binding entries that may change in time (e.g., increase - the size of the port set). When a party who is - the victim of abuse presents an external IP - address/port, the version of the binding table - is important because, depending on the version, + the size of the port set). When a party who is + the victim of abuse presents an external IP + address/port, the version of the binding table + is important because, depending on the version, a distinct customer may be identified. - The timestamp is used as a key to find the - appropriate binding table that was put into effect + The timestamp is used as a key to find the + appropriate binding table that was put into effect when an abuse occurred."; reference - "RFC 7422: Deterministic Address Mapping to Reduce + "RFC 7422: Deterministic Address Mapping to Reduce Logging in Carrier-Grade NAT Deployments"; } } @@ -283,7 +283,7 @@ module ietf-softwire-br { } mandatory true; description - "The maximum number of softwires that can be created + "The maximum number of softwires that can be created on the binding BR."; } leaf softwire-payload-mtu { @@ -309,8 +309,8 @@ module ietf-softwire-br { description "Enables/disables support for locally forwarding (hairpinning) traffic between two CEs"; - reference - "RFC 7596: Lightweight 4over6: An Extension to + reference + "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture, Section 6.2"; } container binding-table { @@ -338,7 +338,7 @@ module ietf-softwire-br { "Enables the processing of incoming ICMPv4 packets."; reference - "RFC 7596: Lightweight 4over6: An Extension to + "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture"; } leaf icmpv4-rate { @@ -352,9 +352,9 @@ module ietf-softwire-br { default "true"; description "Enables the generation of outgoing ICMPv4 error - messages on receipt of an inbound IPv4 packet + messages on receipt of an inbound IPv4 packet with no matching binding table entry."; - reference + reference "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture, Section 5.2"; @@ -367,10 +367,10 @@ module ietf-softwire-br { type boolean; default "true"; description - "Enables the generation of ICMPv6 error messages + "Enables the generation of ICMPv6 error messages if no matching binding table entry is found for a received packet."; - reference + reference "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture, Section 6.2"; @@ -380,7 +380,7 @@ module ietf-softwire-br { description "Rate limit threshold in messages per second for sending ICMPv6 errors messages"; - reference + reference "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture, Section 9"; } @@ -394,9 +394,9 @@ module ietf-softwire-br { type yang:date-and-time; mandatory true; description - "The time of the most recent occasion on which the - BR instance suffered a discontinuity. This must - be initialized when the BR instance is configured + "The time of the most recent occasion on which the + BR instance suffered a discontinuity. This must + be initialized when the BR instance is configured or rebooted."; } uses softwire-common:traffic-stat; @@ -405,11 +405,11 @@ module ietf-softwire-br { description "ICMPv4 packets that are dropped as a result of the ICMP policy. Typically, this can be any - incoming ICMPv4 packets if ICMPv4 processing is - disabled or incoming ICMPv4 packets that exceed + incoming ICMPv4 packets if ICMPv4 processing is + disabled or incoming ICMPv4 packets that exceed the ICMPv4 rate-limit threshold. - Discontinuities in the value of this counter can + Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; @@ -417,14 +417,14 @@ module ietf-softwire-br { leaf dropped-icmpv4-bytes { type yang:zero-based-counter64; description - "ICMPv4 messages, in bytes, that are dropped as - a result of the ICMP policy. Typically, it + "ICMPv4 messages, in bytes, that are dropped as + a result of the ICMP policy. Typically, it can be any incoming ICMPv4 packets if ICMPv4 - processing is disabled or incoming ICMPv4 - packets that exceed the ICMPv4 rate-limit + processing is disabled or incoming ICMPv4 + packets that exceed the ICMPv4 rate-limit threshold. - Discontinuities in the value of this counter can + Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; @@ -435,7 +435,7 @@ module ietf-softwire-br { "IPv4 packets locally routed between two CEs (hairpinned). - Discontinuities in the value of this counter can + Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; @@ -446,7 +446,7 @@ module ietf-softwire-br { "IPv4 bytes locally routed between two CEs (hairpinned). - Discontinuities in the value of this counter can + Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; @@ -458,7 +458,7 @@ module ietf-softwire-br { "The number of currently active softwires on the binding instance. - Discontinuities in the value of this counter can + Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of 'discontinuity-time'."; @@ -480,7 +480,7 @@ module ietf-softwire-br { type string; mandatory true; description - "The name is used to uniquely identify an algorithm + "The name is used to uniquely identify an algorithm instance. This name can be automatically assigned @@ -502,7 +502,7 @@ module ietf-softwire-br { description "The time of the most recent occasion on which the BR instance suffered a discontinuity. This must - be reset to the current date-and-time when the BR + be reset to the current date-and-time when the BR instance is configured or rebooted."; } uses softwire-common:traffic-stat; @@ -520,7 +520,7 @@ module ietf-softwire-br { notification softwire-binding-instance-event { if-feature "binding-mode"; description - "Notifications for the binding instance when an entry is + "Notifications for the binding instance when an entry is added, modified, or is not valid anymore."; leaf bind-name { type leafref { @@ -537,8 +537,8 @@ module ietf-softwire-br { + "binding-table/binding-entry/binding-ipv6info"; } description - "Notify the client that a specific binding entry has - expired or is invalid. The binding-ipv6info identifies + "Notify the client that a specific binding entry has + expired or is invalid. The binding-ipv6info identifies an entry."; } leaf-list added-entry { @@ -562,7 +562,7 @@ module ietf-softwire-br { notification softwire-algorithm-instance-event { if-feature "map-e or map-t"; description - "Notifications for an algorithm instance when an entry is + "Notifications for an algorithm instance when an entry is added, modified, or is not valid anymore."; leaf algo-name { type leafref { diff --git a/standard/ietf/RFC/ietf-softwire-ce@2019-11-16.yang b/standard/ietf/RFC/ietf-softwire-ce@2019-11-16.yang index b41857033..ecc59f5e4 100644 --- a/standard/ietf/RFC/ietf-softwire-ce@2019-11-16.yang +++ b/standard/ietf/RFC/ietf-softwire-ce@2019-11-16.yang @@ -5,12 +5,12 @@ module ietf-softwire-ce { import ietf-inet-types { prefix inet; - reference + reference "RFC 6991: Common YANG Data Types, Section 4"; } import ietf-interfaces { prefix if; - reference + reference "RFC 8343: A YANG Data Model for Interface Management"; } import ietf-softwire-common { @@ -31,29 +31,29 @@ module ietf-softwire-ce { "WG Web: WG List: - Author: Qi Sun + Author: Qi Sun - Author: Linhui Sun + Author: Linhui Sun - Author: Yong Cui + Author: Yong Cui - Editor: Ian Farrer + Editor: Ian Farrer - Author: Sladjana Zoric + Author: Sladjana Zoric - Editor: Mohamed Boucadair + Editor: Mohamed Boucadair - Author: Rajiv Asati + Author: Rajiv Asati "; description "This document defines a YANG module for the configuration and - management of A+P Softwire Customer Premises Equipment (CEs). + management of A+P Softwire Customer Premises Equipment (CEs). It covers Lightweight 4over6, MAP-E, and MAP-T mechanisms. Copyright (c) 2019 IETF Trust and the persons identified as @@ -73,7 +73,7 @@ module ietf-softwire-ce { description "Initial revision."; reference - "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port + "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port (A+P) Softwires"; } @@ -83,7 +83,7 @@ module ietf-softwire-ce { feature binding-mode { description - "Binding is used for configuring the Lightweight 4over6 + "Binding is used for configuring the Lightweight 4over6 mechanism. Binding-based softwire mechanisms are IPv4-over-IPv6 tunneling @@ -92,19 +92,19 @@ module ietf-softwire-ce { and IPv4 address, with or without IPv4 address sharing. This is accomplished by maintaining state for each softwire - (per-subscriber state) in the central Border Relay (BR) and - using a hub-and-spoke forwarding architecture. In order to + (per-subscriber state) in the central Border Relay (BR) and + using a hub-and-spoke forwarding architecture. In order to delegate the NAPT function and achieve IPv4 address sharing, port-restricted IPv4 addresses needs to be allocated to CEs. - This feature indicates that the network element can function + This feature indicates that the network element can function as one or more binding-based softwire instances."; reference - "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack + "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture - RFC 7597: Mapping of Address and Port with Encapsulation - (MAP-E) - RFC 7599: Mapping of Address and Port using Translation + RFC 7597: Mapping of Address and Port with Encapsulation + (MAP-E) + RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; } @@ -112,14 +112,14 @@ module ietf-softwire-ce { description "MAP-E is an IPv6 transition mechanism for transporting IPv4 packets across an IPv6 network using IP encapsulation. MAP-E - allows for a reduction of the amount of centralized state - using rules to express IPv4/IPv6 address mappings. This - introduces an algorithmic relationship between the IPv6 + allows for a reduction of the amount of centralized state + using rules to express IPv4/IPv6 address mappings. This + introduces an algorithmic relationship between the IPv6 subnet and IPv4 address. This feature indicates that the network element can function as one or more MAP-E softwire instances."; - reference + reference "RFC 7597: Mapping of Address and Port with Encapsulation (MAP-E)"; } @@ -127,15 +127,15 @@ module ietf-softwire-ce { feature map-t { description "MAP-T is an IPv6 transition mechanism for transporting IPv4 - packets across an IPv6 network using IP translation. It + packets across an IPv6 network using IP translation. It leverages a double stateless NAT64-based solution as well as the stateless algorithmic address and transport layer port mapping algorithm defined for MAP-E. This feature indicates that the network element can function as one or more MAP-T softwire instances."; - reference - "RFC 7599: Mapping of Address and Port using Translation + reference + "RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; } @@ -143,9 +143,9 @@ module ietf-softwire-ce { grouping binding-entry { description - "The binding BR (Border Relay) maintains an address - binding table that contains the binding between the CE's - IPv6 address, the allocated IPv4 address, and the + "The binding BR (Border Relay) maintains an address + binding table that contains the binding between the CE's + IPv6 address, the allocated IPv4 address, and the restricted port-set."; leaf binding-ipv6info { type union { @@ -155,15 +155,15 @@ module ietf-softwire-ce { description "The IPv6 information for a binding entry. - When the IPv6 prefix type is used, + When the IPv6 prefix type is used, the IPv6 source address of the CE is constructed according to the description in RFC 7596. If the IPv6 address type is used, the CE can use any valid /128 address from a prefix assigned to the CE."; - reference - "RFC 7596: Lightweight 4over6: An Extension + reference + "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture, Section 5.1"; } leaf br-ipv6-addr { @@ -193,8 +193,8 @@ module ietf-softwire-ce { "The path MRU for the softwire (payload + encapsulation overhead)."; reference - "RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and - Routers"; + "RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and + Routers"; } choice ce-type { description @@ -215,13 +215,13 @@ module ietf-softwire-ce { list algo-instance { key "name"; description - "MAP forwarding rule instance for + "MAP forwarding rule instance for MAP-E/MAP-T"; leaf name { type string; mandatory true; description - "The name is used to uniquely identify an algorithm + "The name is used to uniquely identify an algorithm instance. This name can be automatically assigned @@ -252,7 +252,7 @@ module ietf-softwire-ce { type inet:ipv6-address; mandatory true; description - "This notification is generated whenever the CE's binding + "This notification is generated whenever the CE's binding IPv6 address changes for any reason."; } } diff --git a/standard/ietf/RFC/ietf-softwire-common@2019-11-16.yang b/standard/ietf/RFC/ietf-softwire-common@2019-11-16.yang index 5e825bf0a..75151a0cd 100644 --- a/standard/ietf/RFC/ietf-softwire-common@2019-11-16.yang +++ b/standard/ietf/RFC/ietf-softwire-common@2019-11-16.yang @@ -5,12 +5,12 @@ module ietf-softwire-common { import ietf-inet-types { prefix inet; - reference + reference "RFC 6991: Common YANG Data Types, Section 4"; } import ietf-yang-types { prefix yang; - reference + reference "RFC 6991: Common YANG Data Types, Section 3"; } @@ -20,29 +20,29 @@ module ietf-softwire-common { "WG Web: WG List: - Author: Qi Sun + Author: Qi Sun - Author: Linhui Sun + Author: Linhui Sun - Author: Yong Cui + Author: Yong Cui - Editor: Ian Farrer + Editor: Ian Farrer - Author: Sladjana Zoric + Author: Sladjana Zoric - Editor: Mohamed Boucadair + Editor: Mohamed Boucadair - Author: Rajiv Asati + Author: Rajiv Asati "; description "This document defines a YANG module defining types - common to all A+P modules. + common to all A+P modules. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -69,14 +69,14 @@ module ietf-softwire-common { description "MAP-E is an IPv6 transition mechanism for transporting IPv4 packets across an IPv6 network using IP encapsulation. MAP-E - allows for a reduction of the amount of centralized state - using rules to express IPv4/IPv6 address mappings. This - introduces an algorithmic relationship between the IPv6 + allows for a reduction of the amount of centralized state + using rules to express IPv4/IPv6 address mappings. This + introduces an algorithmic relationship between the IPv6 subnet and IPv4 address. This feature indicates that the network element can function as one or more MAP-E softwire instances."; - reference + reference "RFC 7597: Mapping of Address and Port with Encapsulation (MAP-E)"; } @@ -84,15 +84,15 @@ module ietf-softwire-common { feature map-t { description "MAP-T is an IPv6 transition mechanism for transporting IPv4 - packets across an IPv6 network using IP translation. It - leverages a double stateless NAT64-based solution as well as - the stateless algorithmic address and transport layer + packets across an IPv6 network using IP translation. It + leverages a double stateless NAT64-based solution as well as + the stateless algorithmic address and transport layer port mapping algorithm defined for MAP-E. This feature indicates that the network element can function as one or more MAP-T softwire instances."; - reference - "RFC 7599: Mapping of Address and Port using Translation + reference + "RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; } @@ -114,7 +114,7 @@ module ietf-softwire-common { leaf version { type uint64; description - "A version number for the mapping algorithm + "A version number for the mapping algorithm rules provided to the algorithm instance"; } leaf date { @@ -122,7 +122,7 @@ module ietf-softwire-common { description "Timestamp when the algorithm instance was activated. - An algorithm instance may be provided with mapping + An algorithm instance may be provided with mapping rules that may change in time (for example, increase the size of the port set). When a party who is the victim of abuse presents an external IP address/port, the version @@ -130,7 +130,7 @@ module ietf-softwire-common { the version, a distinct customer may be identified. The timestamp is used as a key to find the appropriate - algorithm that was put into effect when an abuse + algorithm that was put into effect when an abuse occurred."; reference "RFC 7422: Deterministic Address Mapping to Reduce @@ -168,7 +168,7 @@ module ietf-softwire-common { mandatory true; description "Embedded Address (EA) bits are the IPv4 EA-bits in the IPv6 - address identifying an IPv4 prefix/address (or part thereof) + address identifying an IPv4 prefix/address (or part thereof) or a shared IPv4 address (or part thereof) and a port-set identifier. The length of the EA-bits is defined as part of a MAP rule for a MAP domain."; diff --git a/standard/ietf/RFC/ietf-system-capabilities@2022-02-17.yang b/standard/ietf/RFC/ietf-system-capabilities@2022-02-17.yang index 55f959d8f..dbecd8738 100644 --- a/standard/ietf/RFC/ietf-system-capabilities@2022-02-17.yang +++ b/standard/ietf/RFC/ietf-system-capabilities@2022-02-17.yang @@ -168,3 +168,4 @@ module ietf-system-capabilities { } } } + diff --git a/standard/ietf/RFC/ietf-te-topology-state@2020-08-06.yang b/standard/ietf/RFC/ietf-te-topology-state@2020-08-06.yang index 6bfb01e65..fffdcc490 100644 --- a/standard/ietf/RFC/ietf-te-topology-state@2020-08-06.yang +++ b/standard/ietf/RFC/ietf-te-topology-state@2020-08-06.yang @@ -309,4 +309,4 @@ module ietf-te-topology-state { Connectivities)."; uses te-node-tunnel-termination-point-llc-list; } -} +} \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-te-topology@2020-08-06.yang b/standard/ietf/RFC/ietf-te-topology@2020-08-06.yang index 6d76a77b2..41edbcd1f 100644 --- a/standard/ietf/RFC/ietf-te-topology@2020-08-06.yang +++ b/standard/ietf/RFC/ietf-te-topology@2020-08-06.yang @@ -1949,4 +1949,4 @@ module ietf-te-topology { Connectivities)."; uses te-node-tunnel-termination-point-llc-list; } -} +} \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-tls-client@2024-10-10.yang b/standard/ietf/RFC/ietf-tls-client@2024-10-10.yang index d504afe48..e490640a2 100644 --- a/standard/ietf/RFC/ietf-tls-client@2024-10-10.yang +++ b/standard/ietf/RFC/ietf-tls-client@2024-10-10.yang @@ -513,3 +513,4 @@ module ietf-tls-client { } // grouping tls-client-grouping } + diff --git a/standard/ietf/RFC/ietf-tls-server@2024-10-10.yang b/standard/ietf/RFC/ietf-tls-server@2024-10-10.yang index 2f6285453..ba503476d 100644 --- a/standard/ietf/RFC/ietf-tls-server@2024-10-10.yang +++ b/standard/ietf/RFC/ietf-tls-server@2024-10-10.yang @@ -516,3 +516,4 @@ module ietf-tls-server { } // grouping tls-server-grouping } + diff --git a/standard/ietf/RFC/ietf-twamp@2021-11-17.yang b/standard/ietf/RFC/ietf-twamp@2021-11-17.yang index 1bb293d67..afc69d471 100644 --- a/standard/ietf/RFC/ietf-twamp@2021-11-17.yang +++ b/standard/ietf/RFC/ietf-twamp@2021-11-17.yang @@ -1312,4 +1312,4 @@ module ietf-twamp { } } } -} +} \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-wson-topology@2021-08-13.yang b/standard/ietf/RFC/ietf-wson-topology@2021-08-13.yang index fe13fd19d..9deb5d301 100644 --- a/standard/ietf/RFC/ietf-wson-topology@2021-08-13.yang +++ b/standard/ietf/RFC/ietf-wson-topology@2021-08-13.yang @@ -1633,3 +1633,4 @@ module ietf-wson-topology { } } } + diff --git a/standard/ietf/RFC/ietf-yang-structure-ext@2020-06-17.yang b/standard/ietf/RFC/ietf-yang-structure-ext@2020-06-17.yang index 1382ea567..40cd20370 100644 --- a/standard/ietf/RFC/ietf-yang-structure-ext@2020-06-17.yang +++ b/standard/ietf/RFC/ietf-yang-structure-ext@2020-06-17.yang @@ -204,3 +204,4 @@ module ietf-yang-structure-ext { "; } } +