From 88ead097c92f335901ee208e7b296e0e92ab4c96 Mon Sep 17 00:00:00 2001 From: armingol Date: Mon, 9 Mar 2026 10:43:57 +0000 Subject: [PATCH 1/4] feat: Update OpenConfig YANG models, add and remove IETF YANG definitions, and refresh documentation. --- openconfig_public | 1 + .../yang/iana-routing-types@2017-12-04.yang | 473 --- .../yang/iana-routing-types@2025-02-18.yang | 648 ++++ .../ietf-eth-tran-service@2023-10-23.yang | 1004 ----- .../ietf-eth-tran-service@2024-01-11.yang | 987 +++++ .../yang/ietf-eth-tran-types@2023-10-23.yang | 457 --- .../yang/ietf-eth-tran-types@2024-01-11.yang | 470 +++ .../yang/ietf-inet-types@2013-07-15.yang | 459 --- .../yang/ietf-inet-types@2025-06-23.yang | 669 ++++ .../yang/ietf-layer1-types@2022-10-14.yang | 1414 ------- .../yang/ietf-layer1-types@2024-02-22.yang | 1361 +++++++ .../yang/ietf-otn-topology@2023-07-06.yang | 2405 ------------ .../yang/ietf-otn-topology@2024-06-21.yang | 2230 +++++++++++ .../yang/ietf-te-packet-types@2020-06-10.yang | 475 --- .../yang/ietf-te-packet-types@2026-01-15.yang | 844 ++++ ...-10.yang => ietf-te-types@2026-01-23.yang} | 3408 +++++++++++------ .../ietf-trans-client-service@2023-10-23.yang | 325 -- .../ietf-trans-client-service@2024-01-11.yang | 338 ++ ...etf-trans-client-svc-types@2023-10-23.yang | 63 - ...etf-trans-client-svc-types@2024-01-11.yang | 77 + .../yang/ietf-yang-types@2013-07-15.yang | 475 --- .../yang/ietf-yang-types@2025-12-22.yang | 764 ++++ 22 files changed, 10674 insertions(+), 8673 deletions(-) create mode 160000 openconfig_public delete mode 100644 src/nbi/service/ietf_network/yang/iana-routing-types@2017-12-04.yang create mode 100644 src/nbi/service/ietf_network/yang/iana-routing-types@2025-02-18.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2024-01-11.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2024-01-11.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-inet-types@2013-07-15.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-inet-types@2025-06-23.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-layer1-types@2022-10-14.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-layer1-types@2024-02-22.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-otn-topology@2023-07-06.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-otn-topology@2024-06-21.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang rename src/nbi/service/ietf_network/yang/{ietf-te-types@2020-06-10.yang => ietf-te-types@2026-01-23.yang} (55%) delete mode 100644 src/nbi/service/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-trans-client-service@2024-01-11.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2024-01-11.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-yang-types@2013-07-15.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-yang-types@2025-12-22.yang diff --git a/openconfig_public b/openconfig_public new file mode 160000 index 000000000..834db2b62 --- /dev/null +++ b/openconfig_public @@ -0,0 +1 @@ +Subproject commit 834db2b62f8ee66ee6c8f8b567569ad81caac34e diff --git a/src/nbi/service/ietf_network/yang/iana-routing-types@2017-12-04.yang b/src/nbi/service/ietf_network/yang/iana-routing-types@2017-12-04.yang deleted file mode 100644 index 250cba4b6..000000000 --- a/src/nbi/service/ietf_network/yang/iana-routing-types@2017-12-04.yang +++ /dev/null @@ -1,473 +0,0 @@ - module iana-routing-types { - namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; - prefix iana-rt-types; - - organization - "IANA"; - contact - "Internet Assigned Numbers Authority - - Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - "; - - description - "This module contains a collection of YANG data types - considered defined by IANA and used for routing - protocols. - - Copyright (c) 2017 IETF Trust and the persons - identified as authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC 8294; see - the RFC itself for full legal notices."; - - revision 2017-12-04 { - description "Initial revision."; - reference - "RFC 8294: Common YANG Data Types for the Routing Area. - Section 4."; - } - - /*** Collection of IANA types related to routing ***/ - /*** IANA Address Family enumeration ***/ - - typedef address-family { - type enumeration { - enum ipv4 { - value 1; - description - "IPv4 Address Family."; - } - - enum ipv6 { - value 2; - description - "IPv6 Address Family."; - } - - enum nsap { - value 3; - description - "OSI Network Service Access Point (NSAP) Address Family."; - } - - enum hdlc { - value 4; - description - "High-Level Data Link Control (HDLC) Address Family."; - } - - enum bbn1822 { - value 5; - description - "Bolt, Beranek, and Newman Report 1822 (BBN 1822) - Address Family."; - } - - enum ieee802 { - value 6; - description - "IEEE 802 Committee Address Family - (aka Media Access Control (MAC) address)."; - } - - enum e163 { - value 7; - description - "ITU-T E.163 Address Family."; - } - - enum e164 { - value 8; - description - "ITU-T E.164 (Switched Multimegabit Data Service (SMDS), - Frame Relay, ATM) Address Family."; - } - - enum f69 { - value 9; - description - "ITU-T F.69 (Telex) Address Family."; - } - - enum x121 { - value 10; - description - "ITU-T X.121 (X.25, Frame Relay) Address Family."; - } - - enum ipx { - value 11; - description - "Novell Internetwork Packet Exchange (IPX) - Address Family."; - } - - enum appletalk { - value 12; - description - "Apple AppleTalk Address Family."; - } - - enum decnet-iv { - value 13; - description - "Digital Equipment DECnet Phase IV Address Family."; - } - - enum vines { - value 14; - description - "Banyan Vines Address Family."; - } - - enum e164-nsap { - value 15; - description - "ITU-T E.164 with NSAP sub-address Address Family."; - } - - enum dns { - value 16; - description - "Domain Name System (DNS) Address Family."; - } - - enum distinguished-name { - value 17; - description - "Distinguished Name Address Family."; - } - - enum as-num { - value 18; - description - "Autonomous System (AS) Number Address Family."; - } - - enum xtp-v4 { - value 19; - description - "Xpress Transport Protocol (XTP) over IPv4 - Address Family."; - } - - enum xtp-v6 { - value 20; - description - "XTP over IPv6 Address Family."; - } - - enum xtp-native { - value 21; - description - "XTP native mode Address Family."; - } - - enum fc-port { - value 22; - description - "Fibre Channel (FC) World-Wide Port Name Address Family."; - } - - enum fc-node { - value 23; - description - "FC World-Wide Node Name Address Family."; - } - - enum gwid { - value 24; - description - "ATM Gateway Identifier (GWID) Number Address Family."; - } - - enum l2vpn { - value 25; - description - "Layer 2 VPN (L2VPN) Address Family."; - } - - enum mpls-tp-section-eid { - value 26; - description - "MPLS Transport Profile (MPLS-TP) Section Endpoint - Identifier Address Family."; - } - - enum mpls-tp-lsp-eid { - value 27; - description - "MPLS-TP Label Switched Path (LSP) Endpoint Identifier - Address Family."; - } - - enum mpls-tp-pwe-eid { - value 28; - description - "MPLS-TP Pseudowire Endpoint Identifier Address Family."; - } - - enum mt-v4 { - value 29; - description - "Multi-Topology IPv4 Address Family."; - } - - enum mt-v6 { - value 30; - description - "Multi-Topology IPv6 Address Family."; - } - - enum eigrp-common-sf { - value 16384; - description - "Enhanced Interior Gateway Routing Protocol (EIGRP) - Common Service Family Address Family."; - } - - enum eigrp-v4-sf { - value 16385; - description - "EIGRP IPv4 Service Family Address Family."; - } - - enum eigrp-v6-sf { - value 16386; - description - "EIGRP IPv6 Service Family Address Family."; - } - - enum lcaf { - value 16387; - description - "Locator/ID Separation Protocol (LISP) - Canonical Address Format (LCAF) Address Family."; - } - - enum bgp-ls { - value 16388; - description - "Border Gateway Protocol - Link State (BGP-LS) - Address Family."; - } - - enum mac-48 { - value 16389; - description - "IEEE 48-bit MAC Address Family."; - } - - enum mac-64 { - value 16390; - description - "IEEE 64-bit MAC Address Family."; - } - - enum trill-oui { - value 16391; - description - "Transparent Interconnection of Lots of Links (TRILL) - IEEE Organizationally Unique Identifier (OUI) - Address Family."; - } - - enum trill-mac-24 { - value 16392; - description - "TRILL final 3 octets of 48-bit MAC Address Family."; - } - - enum trill-mac-40 { - value 16393; - description - "TRILL final 5 octets of 64-bit MAC Address Family."; - } - - enum ipv6-64 { - value 16394; - description - "First 8 octets (64 bits) of IPv6 address - Address Family."; - } - - enum trill-rbridge-port-id { - value 16395; - description - "TRILL Routing Bridge (RBridge) Port ID Address Family."; - } - - enum trill-nickname { - value 16396; - description - "TRILL Nickname Address Family."; - } - } - - description - "Enumeration containing all the IANA-defined - Address Families."; - - } - - /*** Subsequent Address Family Identifiers (SAFIs) ***/ - /*** for multiprotocol BGP enumeration ***/ - - typedef bgp-safi { - type enumeration { - enum unicast-safi { - value 1; - description - "Unicast SAFI."; - } - - enum multicast-safi { - value 2; - description - "Multicast SAFI."; - } - - enum labeled-unicast-safi { - value 4; - description - "Labeled Unicast SAFI."; - } - - enum multicast-vpn-safi { - value 5; - description - "Multicast VPN SAFI."; - } - - enum pseudowire-safi { - value 6; - description - "Multi-segment Pseudowire VPN SAFI."; - } - - enum tunnel-encap-safi { - value 7; - description - "Tunnel Encap SAFI."; - } - - enum mcast-vpls-safi { - value 8; - description - "Multicast Virtual Private LAN Service (VPLS) SAFI."; - } - - enum tunnel-safi { - value 64; - description - "Tunnel SAFI."; - } - - enum vpls-safi { - value 65; - description - "VPLS SAFI."; - } - - enum mdt-safi { - value 66; - description - "Multicast Distribution Tree (MDT) SAFI."; - } - - enum v4-over-v6-safi { - value 67; - description - "IPv4 over IPv6 SAFI."; - } - - enum v6-over-v4-safi { - value 68; - description - "IPv6 over IPv4 SAFI."; - } - - enum l1-vpn-auto-discovery-safi { - value 69; - description - "Layer 1 VPN Auto-Discovery SAFI."; - } - - enum evpn-safi { - value 70; - description - "Ethernet VPN (EVPN) SAFI."; - } - - enum bgp-ls-safi { - value 71; - description - "BGP-LS SAFI."; - } - - enum bgp-ls-vpn-safi { - value 72; - description - "BGP-LS VPN SAFI."; - } - - enum sr-te-safi { - value 73; - description - "Segment Routing - Traffic Engineering (SR-TE) SAFI."; - } - - enum labeled-vpn-safi { - value 128; - description - "MPLS Labeled VPN SAFI."; - } - - enum multicast-mpls-vpn-safi { - value 129; - description - "Multicast for BGP/MPLS IP VPN SAFI."; - } - - enum route-target-safi { - value 132; - description - "Route Target SAFI."; - } - - enum ipv4-flow-spec-safi { - value 133; - description - "IPv4 Flow Specification SAFI."; - } - - enum vpnv4-flow-spec-safi { - value 134; - description - "IPv4 VPN Flow Specification SAFI."; - } - - enum vpn-auto-discovery-safi { - value 140; - description - "VPN Auto-Discovery SAFI."; - } - } - description - "Enumeration for BGP SAFI."; - reference - "RFC 4760: Multiprotocol Extensions for BGP-4."; - } - } diff --git a/src/nbi/service/ietf_network/yang/iana-routing-types@2025-02-18.yang b/src/nbi/service/ietf_network/yang/iana-routing-types@2025-02-18.yang new file mode 100644 index 000000000..b7a9e21b3 --- /dev/null +++ b/src/nbi/service/ietf_network/yang/iana-routing-types@2025-02-18.yang @@ -0,0 +1,648 @@ +module iana-routing-types { + namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; + prefix iana-rt-types; + + organization + "IANA"; + contact + "Internet Assigned Numbers Authority + + Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + "; + + description + "This module contains a collection of YANG data types + considered defined by IANA and used for routing + protocols. + + Copyright (c) 2017 IETF Trust and the persons + identified as authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Simplified BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 8294; see + the RFC itself for full legal notices."; + + revision 2025-02-18 { + description "Modified SAFI value 73."; + } + + revision 2022-08-19 { + description "Added SAFI value 85."; + } + + revision 2022-04-13 { + description "Added SAFI values 83 and 84."; + } + + revision 2022-02-11 { + description "Added SAFI value 80."; + } + + revision 2021-10-19 { + description "Added Address Family Number value 16399."; + } + + revision 2021-09-08 { + description "Added SAFI value 79."; + } + + revision 2021-05-26 { + description "Added ‘OBSOLETE’ to description field for SAFI value 7."; + } + + revision 2021-05-18 { + description "Added Address Family Number value 31, + SAFI value 9."; + } + + revision 2021-03-23 { + description "Added SAFI value 78."; + } + + revision 2020-12-31 { + description "Non-backwards-compatible change of SAFI names + (SAFI values 133, 134)."; + reference + "RFC 8955: Dissemination of Flow Specification Rules."; + } + + revision 2020-11-19 { + description "Added SAFI value 77."; + } + + revision 2020-07-02 { + description "Added SAFI value 76."; + } + + revision 2020-05-12 { + description "Added Address Family Number value 16398, + SAFI value 75."; + } + + revision 2019-11-04 { + description "Added Address Family Number value 16397."; + } + + revision 2018-10-29 { + description "Added SAFI value 74."; + } + + revision 2017-12-04 { + description "Initial revision."; + reference + "RFC 8294: Common YANG Data Types for the Routing Area. + Section 4."; + } + + + + + /*** Collection of IANA types related to routing ***/ + /*** IANA Address Family enumeration ***/ + + typedef address-family { + type enumeration { + enum ipv4 { + value 1; + description + "IPv4 Address Family."; + } + + enum ipv6 { + value 2; + description + "IPv6 Address Family."; + } + + enum nsap { + value 3; + description + "OSI Network Service Access Point (NSAP) Address Family."; + } + + enum hdlc { + value 4; + description + "High-Level Data Link Control (HDLC) Address Family."; + } + + enum bbn1822 { + value 5; + description + "Bolt, Beranek, and Newman Report 1822 (BBN 1822) + Address Family."; + } + + enum ieee802 { + value 6; + description + "IEEE 802 Committee Address Family + (aka Media Access Control (MAC) address)."; + } + + enum e163 { + value 7; + description + "ITU-T E.163 Address Family."; + } + enum e164 { + value 8; + description + "ITU-T E.164 (Switched Multimegabit Data Service (SMDS), + Frame Relay, ATM) Address Family."; + } + + enum f69 { + value 9; + description + "ITU-T F.69 (Telex) Address Family."; + } + + enum x121 { + value 10; + description + "ITU-T X.121 (X.25, Frame Relay) Address Family."; + } + + enum ipx { + value 11; + description + "Novell Internetwork Packet Exchange (IPX) + Address Family."; + } + + enum appletalk { + value 12; + description + "Apple AppleTalk Address Family."; + } + + enum decnet-iv { + value 13; + description + "Digital Equipment DECnet Phase IV Address Family."; + } + + enum vines { + value 14; + description + "Banyan Vines Address Family."; + } + + + + + + enum e164-nsap { + value 15; + description + "ITU-T E.164 with NSAP sub-address Address Family."; + } + + enum dns { + value 16; + description + "Domain Name System (DNS) Address Family."; + } + + enum distinguished-name { + value 17; + description + "Distinguished Name Address Family."; + } + + enum as-num { + value 18; + description + "Autonomous System (AS) Number Address Family."; + } + + enum xtp-v4 { + value 19; + description + "Xpress Transport Protocol (XTP) over IPv4 + Address Family."; + } + + enum xtp-v6 { + value 20; + description + "XTP over IPv6 Address Family."; + } + + enum xtp-native { + value 21; + description + "XTP native mode Address Family."; + } + + enum fc-port { + value 22; + description + "Fibre Channel (FC) World-Wide Port Name Address Family."; + } + enum fc-node { + value 23; + description + "FC World-Wide Node Name Address Family."; + } + + enum gwid { + value 24; + description + "ATM Gateway Identifier (GWID) Number Address Family."; + } + + enum l2vpn { + value 25; + description + "Layer 2 VPN (L2VPN) Address Family."; + } + + enum mpls-tp-section-eid { + value 26; + description + "MPLS Transport Profile (MPLS-TP) Section Endpoint + Identifier Address Family."; + } + + enum mpls-tp-lsp-eid { + value 27; + description + "MPLS-TP Label Switched Path (LSP) Endpoint Identifier + Address Family."; + } + + enum mpls-tp-pwe-eid { + value 28; + description + "MPLS-TP Pseudowire Endpoint Identifier Address Family."; + } + + enum mt-v4 { + value 29; + description + "Multi-Topology IPv4 Address Family."; + } + + + + + + enum mt-v6 { + value 30; + description + "Multi-Topology IPv6 Address Family."; + } + + enum bgp-sfc { + value 31; + description + "BGP SFC Address Family."; + reference + "RFC 9015: BGP Control Plane for the Network Service Header in Service Function Chaining."; + } + + enum eigrp-common-sf { + value 16384; + description + "Enhanced Interior Gateway Routing Protocol (EIGRP) + Common Service Family Address Family."; + } + + enum eigrp-v4-sf { + value 16385; + description + "EIGRP IPv4 Service Family Address Family."; + } + + enum eigrp-v6-sf { + value 16386; + description + "EIGRP IPv6 Service Family Address Family."; + } + + enum lcaf { + value 16387; + description + "Locator/ID Separation Protocol (LISP) + Canonical Address Format (LCAF) Address Family."; + } + + enum bgp-ls { + value 16388; + description + "Border Gateway Protocol - Link State (BGP-LS) + Address Family."; + } + + enum mac-48 { + value 16389; + description + "IEEE 48-bit MAC Address Family."; + } + + + + + enum mac-64 { + value 16390; + description + "IEEE 64-bit MAC Address Family."; + } + + enum trill-oui { + value 16391; + description + "Transparent Interconnection of Lots of Links (TRILL) + IEEE Organizationally Unique Identifier (OUI) + Address Family."; + } + + enum trill-mac-24 { + value 16392; + description + "TRILL final 3 octets of 48-bit MAC Address Family."; + } + + enum trill-mac-40 { + value 16393; + description + "TRILL final 5 octets of 64-bit MAC Address Family."; + } + + enum ipv6-64 { + value 16394; + description + "First 8 octets (64 bits) of IPv6 address + Address Family."; + } + + enum trill-rbridge-port-id { + value 16395; + description + "TRILL Routing Bridge (RBridge) Port ID Address Family."; + } + + enum trill-nickname { + value 16396; + description + "TRILL Nickname Address Family."; + } + + enum universally-unique-identifier { + value 16397; + description + "Universally Unique Identifier (UUID)."; + } + + enum routing-policy { + value 16398; + description + "Routing Policy Address Family."; + } + + enum mpls-namespaces { + value 16399; + description + "MPLS Namespaces Address Family."; + } + + } + + + + description + "Enumeration containing all the IANA-defined + Address Families."; + + } + + /*** Subsequent Address Family Identifiers (SAFIs) ***/ + /*** for multiprotocol BGP enumeration ***/ + + typedef bgp-safi { + type enumeration { + enum unicast-safi { + value 1; + description + "Unicast SAFI."; + } + + enum multicast-safi { + value 2; + description + "Multicast SAFI."; + } + + enum labeled-unicast-safi { + value 4; + description + "Labeled Unicast SAFI."; + } + + enum multicast-vpn-safi { + value 5; + description + "Multicast VPN SAFI."; + } + + enum pseudowire-safi { + value 6; + description + "Multi-segment Pseudowire VPN SAFI."; + } + + enum tunnel-encap-safi { + value 7; + description + "Tunnel Encap SAFI (OBSOLETE)."; + } + + + enum mcast-vpls-safi { + value 8; + description + "Multicast Virtual Private LAN Service (VPLS) SAFI."; + } + + enum bgp-sfc-safi { + value 9; + description + "BGP SFC SAFI."; + reference + "RFC 9015: BGP Control Plane for the Network Service Header in Service Function Chaining."; + } + + enum tunnel-safi { + value 64; + description + "Tunnel SAFI."; + } + + enum vpls-safi { + value 65; + description + "VPLS SAFI."; + } + + enum mdt-safi { + value 66; + description + "Multicast Distribution Tree (MDT) SAFI."; + } + + enum v4-over-v6-safi { + value 67; + description + "IPv4 over IPv6 SAFI."; + } + + enum v6-over-v4-safi { + value 68; + description + "IPv6 over IPv4 SAFI."; + } + + enum l1-vpn-auto-discovery-safi { + value 69; + description + "Layer 1 VPN Auto-Discovery SAFI."; + } + + enum evpn-safi { + value 70; + description + "Ethernet VPN (EVPN) SAFI."; + } + + enum bgp-ls-safi { + value 71; + description + "BGP-LS SAFI."; + } + + enum bgp-ls-vpn-safi { + value 72; + description + "BGP-LS VPN SAFI."; + } + + enum sr-policy-safi { + value 73; + description + "SR Policy SAFI."; + } + + enum sd-wan-capabilities-safi { + value 74; + description + "SD-WAN Capabilities SAFI."; + } + + enum routing-policy-safi { + value 75; + description + "Routing Policy SAFI."; + } + + enum classful-transport-safi { + value 76; + description + "Classful-Transport SAFI."; + } + + enum tunneled-traffic-flowspec-safi { + value 77; + description + "Tunneled Traffic Flowspec SAFI."; + } + + enum mcast-tree-safi { + value 78; + description + "MCAST-TREE SAFI."; + } + + enum bgp-dps-safi { + value 79; + description + "BGP-DPS (Dynamic Path Selection) SAFI."; + } + + enum bgp-ls-spf-safi { + value 80; + description + "BGP-LS-SPF SAFI."; + } + + enum bgp-car-safi { + value 83; + description + "BGP CAR SAFI."; + } + + enum bgp-vpn-car-safi { + value 84; + description + "BGP VPN CAR SAFI."; + } + + enum bgp-mup-safi { + value 85; + description + "BGP-MUP SAFI."; + } + + enum labeled-vpn-safi { + value 128; + description + "MPLS Labeled VPN SAFI."; + } + + enum multicast-mpls-vpn-safi { + value 129; + description + "Multicast for BGP/MPLS IP VPN SAFI."; + } + + enum route-target-safi { + value 132; + description + "Route Target SAFI."; + } + + enum flow-spec-safi { + value 133; + description + "Dissemination of Flow Specification rules SAFI."; + } + + enum l3vpn-flow-spec-safi { + value 134; + description + "L3VPN Dissemination of Flow Specification rules SAFI."; + } + + enum vpn-auto-discovery-safi { + value 140; + description + "VPN Auto-Discovery SAFI."; + } + } + description + "Enumeration for BGP SAFI."; + reference + "RFC 4760: Multiprotocol Extensions for BGP-4."; + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang deleted file mode 100644 index 222066adf..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang +++ /dev/null @@ -1,1004 +0,0 @@ - module ietf-eth-tran-service { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-service"; - - prefix "ethtsvc"; - import ietf-yang-types { - prefix "yang"; - reference "RFC 6991 - Common YANG Data Types"; - } - - import ietf-network { - prefix "nw"; - reference "RFC8345 - A YANG Data Model for Network Topologies"; - } - - import ietf-network-topology { - prefix "nt"; - reference "RFC8345 - A YANG Data Model for Network Topologies"; - } - - import ietf-te-types { - prefix "te-types"; - reference "RFC 8776 - Traffic Engineering Common YANG Types"; - } - - import ietf-eth-tran-types { - prefix "etht-types"; - reference "RFC XXXX - A YANG Data Model for Transport - Network Client Signals"; - } - - import ietf-routing-types { - prefix "rt-types"; - reference "RFC 8294 - Common YANG Data Types for the - Routing Area"; - - } - - import ietf-te { - prefix "te"; - reference "RFC YYYY - A YANG Data Model for Traffic - Engineering Tunnels and Interfaces"; - } - - organization - "Internet Engineering Task Force (IETF) CCAMP WG"; - contact - " - WG List: - - ID-draft editor: - Haomian Zheng (zhenghaomian@huawei.com); - Italo Busi (italo.busi@huawei.com); - Aihua Guo (aihuaguo.ietf@gmail.com); - Anton Snitser (antons@sedonasys.com);0 - Francesco Lazzeri (francesco.lazzeri@ericsson.com); - Yunbin Xu (xuyunbin@caict.ac.cn); - Yang Zhao (zhaoyangyjy@chinamobile.com); - Xufeng Liu (xufeng.liu.ietf@gmail.com); - Giuseppe Fioccola (giuseppe.fioccola@huawei.com); - Chaode Yu (yuchaode@huawei.com) - "; - - description - "This module defines a YANG data model for describing - the Ethernet services. The model fully conforms to the - Network Management Datastore Architecture (NMDA). - - Copyright (c) 2021 IETF Trust and the persons - identified as authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - - revision 2023-10-23 { - description - "version -04 as an WG document"; - reference - "draft-ietf-ccamp-client-signal-yang"; - } - - /* - * Groupings - */ - - grouping vlan-classification { - description - "A grouping which represents classification - on an 802.1Q VLAN tag."; - - leaf tag-type { - type etht-types:eth-tag-classify; - description - "The tag type used for VLAN classification."; - } - choice individual-bundling-vlan { - description - "VLAN based classification can be individual - or bundling."; - - case individual-vlan { - leaf vlan-value { - type etht-types:vlanid; - description - "VLAN ID value."; - } - } - - case vlan-bundling { - leaf vlan-range { - type etht-types:vid-range-type; - description - "List of VLAN ID values."; - } - } - } - } - - grouping vlan-write { - description - "A grouping which represents push/pop operations - of an 802.1Q VLAN tag."; - - leaf tag-type { - type etht-types:eth-tag-type; - description - "The VLAN tag type to push/swap."; - } - leaf vlan-value { - type etht-types:vlanid; - description - "The VLAN ID value to push/swap."; - } - /* - * To be added: this attribute is used when: - * a) the ETH service has only one CoS (as in current version) - * b) as a default when a mapping between a given CoS value - * and the PCP value is not defined (in future versions) - */ - leaf default-pcp { - type uint8 { - range "0..7"; - } - description - "The default Priority Code Point (PCP) value to push/swap"; - } - } - - grouping vlan-operations { - description - "A grouping which represents VLAN operations."; - - leaf pop-tags { - type uint8 { - range "1..2"; - } - description - "The number of VLAN tags to pop (or swap if used in - conjunction with push-tags)"; - } - container push-tags { - description - "The VLAN tags to push (or swap if used in - conjunction with pop-tags)"; - - container outer-tag { - presence - "Indicates existence of the outermost VLAN tag to - push/swap"; - - description - "The outermost VLAN tag to push/swap."; - - uses vlan-write; - } - container second-tag { - must - '../outer-tag/tag-type = "etht-types:s-vlan-tag-type" and ' + - 'tag-type = "etht-types:c-vlan-tag-type"' - { - - error-message - " - When pushing/swapping two tags, the outermost tag must - be specified and of S-VLAN type and the second - outermost tag must be of C-VLAN tag type. - "; - description - " - For IEEE 802.1Q interoperability, when pushing/swapping - two tags, it is required that the outermost tag exists - and is an S-VLAN, and the second outermost tag is a - C-VLAN. - "; - } - - presence - "Indicates existence of a second outermost VLAN tag to - push/swap"; - - description - "The second outermost VLAN tag to push/swap."; - uses vlan-write; - } - } - } - - grouping named-or-value-bandwidth-profile { - description - "A grouping to configure a bandwdith profile either by - referencing a named bandwidth profile or by - configuring the values of the bandwidth profile attributes."; - choice style { - description - "Whether the bandwidth profile is named or defined by value"; - - case named { - description - "Named bandwidth profile."; - leaf bandwidth-profile-name { - type leafref { - path "/ethtsvc:etht-svc/ethtsvc:globals/" - + "ethtsvc:named-bandwidth-profiles/" - + "ethtsvc:bandwidth-profile-name"; - } - description - "Name of the bandwidth profile."; - } - } - case value { - description - "Bandwidth profile configured by value."; - uses etht-types:etht-bandwidth-profiles; - } - } - } - - grouping bandwidth-profiles { - description - "A grouping which represent bandwidth profile configuration."; - - choice direction { - description - "Whether the bandwidth profiles are symmetrical or - asymmetrical"; - case symmetrical { - description - "The same bandwidth profile is used to describe both - the ingress and the egress bandwidth profile."; - container ingress-egress-bandwidth-profile { - description - "The bandwdith profile used in both directions."; - uses named-or-value-bandwidth-profile; - } - } - case asymmetrical { - description - "Ingress and egress bandwidth profiles can be specified."; - container ingress-bandwidth-profile { - description - "The bandwdith profile used in the ingress direction."; - uses named-or-value-bandwidth-profile; - } - container egress-bandwidth-profile { - description - "The bandwdith profile used in the egress direction."; - uses named-or-value-bandwidth-profile; - } - } - } - } - - grouping etht-svc-access-parameters { - description - "ETH services access parameters"; - - leaf access-node-id { - type te-types:te-node-id; - description - "The identifier of the access node in - the ETH TE topology."; - } - - leaf access-node-uri { - type nw:node-id; - description - "The identifier of the access node in the network."; - } - - leaf access-ltp-id { - type te-types:te-tp-id; - description - "The TE link termination point identifier, used - together with access-node-id to identify the - access LTP."; - } - - leaf access-ltp-uri { - type nt:tp-id; - description - "The link termination point identifier in network topology, - used together with access-node-uri to identify the - access LTP."; - } - - leaf access-role { - type identityref { - base etht-types:access-role; - } - description - "Indicate the role of access, e.g., working or protection. "; - } - - container pm-config { - uses pm-config-grouping; - description - "This grouping is used to set the threshold value for - performance monitoring. "; - } - - container state { - config false; - description - "The state is used to monitor the status of service. "; - leaf operational-state { - type identityref { - base te-types:tunnel-state-type; - } - description - "Indicating the operational state of client signal. "; - } - leaf provisioning-state { - type identityref { - base te-types:lsp-state-type; - } - description - "Indicating the provisional state of client signal, - especially when there is a change, i.e., revise, create. "; - } - } - - leaf performance { - type identityref { - base etht-types:performance; - } - config false; - description - "Performance Monitoring for the service. "; - } - - } - - grouping etht-svc-tunnel-parameters { - description - "ETH services tunnel parameters."; - choice technology { - description - "Service multiplexing is optional and flexible."; - - case native-ethernet { - /* - placeholder to support proprietary multiplexing - (for further discussion) - */ - list eth-tunnels { - key name; - description - "ETH Tunnel list in native Ethernet scenario."; - uses tunnels-grouping; - } - } - - case frame-base { - list otn-tunnels { - key name; - description - "OTN Tunnel list in Frame-based scenario."; - uses tunnels-grouping; - } - } - - case mpls-tp { - container pw { - description - "Pseudowire information for Ethernet over MPLS-TP."; - uses pw-segment-grouping; - } - } - } - - /* - * Open issue: can we constraints it to be used only with mp services? - */ - leaf src-split-horizon-group { - type string; - description - "Identify a split horizon group at the Tunnel source TTP"; - } - leaf dst-split-horizon-group { - type string; - description - "Identify a split horizon group at the Tunnel destination TTP"; - } - } - - grouping etht-svc-pm-threshold-config { - description - "Configuraiton parameters for Ethernet service PM thresholds."; - - leaf sending-rate-high { - type uint64; - description - "High threshold of packet sending rate in kbps."; - } - leaf sending-rate-low { - type uint64; - description - "Low threshold of packet sending rate in kbps."; - } - leaf receiving-rate-high { - type uint64; - description - "High threshold of packet receiving rate in kbps."; - } - leaf receiving-rate-low { - type uint64; - description - "Low threshold of packet receiving rate in kbps."; - } - } - - grouping etht-svc-pm-stats { - description - "Ethernet service PM statistics."; - - leaf sending-rate-too-high { - type uint32; - description - "Counter that indicates the number of times the - sending rate is above the high threshold"; - } - leaf sending-rate-too-low { - type uint32; - description - "Counter that indicates the number of times the - sending rate is below the low threshold"; - } - leaf receiving-rate-too-high { - type uint32; - description - "Counter that indicates the number of times the - receiving rate is above the high threshold"; - } - leaf receiving-rate-too-low { - type uint32; - description - "Counter that indicates the number of times the - receiving rate is below the low threshold"; - } - } - - grouping etht-svc-instance-config { - description - "Configuraiton parameters for Ethernet services."; - - leaf etht-svc-name { - type string; - description - "Name of the ETH service."; - } - - leaf etht-svc-title { - type string; - description - "The Identifier of the ETH service."; - } - - leaf user-label { - type string; - description - "Alias of the ETH service."; - } - - leaf etht-svc-descr { - type string; - description - "Description of the ETH service."; - } - - leaf etht-svc-customer { - type string; - description - "Customer of the ETH service."; - } - - leaf etht-svc-type { - type etht-types:service-type; - description - "Type of ETH service (p2p, mp2mp or rmp)."; - /* Add default as p2p */ - } - - leaf etht-svc-lifecycle { - type etht-types:lifecycle-status; - description - "Lifecycle state of ETH service."; - /* Add default as installed */ - } - uses te-types:te-topology-identifier; - - uses resilience-grouping; - list etht-svc-end-points { - key etht-svc-end-point-name; - description - "The logical end point for the ETH service. "; - uses etht-svc-end-point-grouping; - } - - container alarm-shreshold { - description "threshold configuration for the E2E client signal"; - uses alarm-shreshold-grouping; - } - - container underlay { - description - "The unterlay tunnel information that carrying the - ETH service. "; - uses etht-svc-tunnel-parameters; - } - - leaf admin-status { - type identityref { - base te-types:tunnel-admin-state-type; - } - default te-types:tunnel-admin-state-up; - description "ETH service administrative state."; - } - } - - grouping etht-svc-instance-state { - description - "State parameters for Ethernet services."; - - leaf operational-state { - type identityref { - base te-types:tunnel-state-type; - } - default te-types:tunnel-state-up; - description "ETH service operational state."; - } - leaf provisioning-state { - type identityref { - base te-types:lsp-state-type; - } - description "ETH service provisioning state."; - } - leaf creation-time { - type yang:date-and-time; - description - "Time of ETH service creation."; - } - leaf last-updated-time { - type yang:date-and-time; - description - "Time of ETH service last update."; - } - - leaf created-by { - type string; - description - "The client signal is created by whom, - can be a system or staff ID."; - } - leaf last-updated-by { - type string; - description - "The client signal is last updated by whom, - can be a system or staff ID."; - } - leaf owned-by { - type string; - description - "The client signal is last updated by whom, - can be a system ID."; - } - container pm-state { - description - "PM data of E2E Ethernet service"; - uses pm-state-grouping; - } - container error-info { - description "error messages of configuration"; - uses error-info-grouping; - } - } - - grouping pm-state-grouping { - leaf latency { - description - "latency value of the E2E Ethernet service"; - type uint32; - units microsecond; - } - } - - grouping error-info-grouping { - leaf error-code { - description "error code"; - type uint16; - } - - leaf error-description { - description "detail message of error"; - type string; - } - - leaf error-timestamp { - description "the date and time error is happened"; - type yang:date-and-time; - } - } - - grouping alarm-shreshold-grouping { - leaf latency-threshold { - description "a threshold for the E2E client signal service's - latency. Once the latency value exceed this threshold, an alarm - should be triggered."; - type uint32; - units microsecond; - } - } - - /* - * Data nodes - */ - - container etht-svc { - description - "ETH services."; - - container globals { - description - "Globals Ethernet configuration data container"; - list named-bandwidth-profiles { - key bandwidth-profile-name; - description - "List of named bandwidth profiles used by - Ethernet services."; - - leaf bandwidth-profile-name { - type string; - description - "Name of the bandwidth profile."; - } - uses etht-types:etht-bandwidth-profiles; - } - } - list etht-svc-instances { - key etht-svc-name; - description - "The list of p2p ETH service instances"; - - uses etht-svc-instance-config; - - container state { - config false; - description - "Ethernet Service states."; - - uses etht-svc-instance-state; - } - } - } - - grouping resilience-grouping { - description - "Grouping for resilience configuration. "; - container resilience { - description - "To configure the data plane protection parameters, - currently a placeholder only, future candidate attributes - include, Revert, WTR, Hold-off Timer, ..."; - uses te:protection-restoration-properties; - } - } - - grouping etht-svc-end-point-grouping { - description - "Grouping for the end point configuration."; - leaf etht-svc-end-point-name { - type string; - description - "The name of the logical end point of ETH service. "; - } - - leaf etht-svc-end-point-id { - type string; - description - "The identifier of the logical end point of ETH service."; - } - - leaf etht-svc-end-point-descr { - type string; - description - "The description of the logical end point of ETH service. "; - } - - leaf topology-role { - type identityref { - base etht-types:topology-role; - } - description - "Indicating the underlay topology role, - e.g., hub,spoke, any-to-any "; - } - - container resilience { - description - "Placeholder for resilience configuration, for future study. "; - } - - list etht-svc-access-points { - key access-point-id; - min-elements "1"; - /* - Open Issue: - Is it possible to limit the max-elements only for p2p services? - max-elements "2"; - */ - description - "List of the ETH trasport services access point instances."; - - leaf access-point-id { - type string; - description - "ID of the service access point instance"; - } - uses etht-svc-access-parameters; - } - - leaf service-classification-type { - type identityref { - base etht-types:service-classification-type; - } - description - "Service classification type."; - } - - choice service-classification { - description - "Access classification can be port-based or - VLAN based."; - case port-classification { - /* no additional information */ - } - - case vlan-classification { - container outer-tag { - presence "The outermost VLAN tag exists"; - description - "Classifies traffic using the outermost VLAN tag."; - - uses vlan-classification; - } - container second-tag { - must - '../outer-tag/tag-type = "etht-types:classify-s-vlan" and ' + - 'tag-type = "etht-types:classify-c-vlan"' - { - error-message - " - When matching two tags, the outermost tag must be - specified and of S-VLAN type and the second - outermost tag must be of C-VLAN tag type. - "; - description - " - For IEEE 802.1Q interoperability, when matching two - tags, it is required that the outermost tag exists - and is an S-VLAN, and the second outermost tag is a - C-VLAN. - "; - } - presence "The second outermost VLAN tag exists"; - - description - "Classifies traffic using the second outermost VLAN tag."; - - uses vlan-classification; - } - } - } - - /* - * Open issue: can we constraints it to be used only with mp services? - */ - leaf split-horizon-group { - type string; - description "Identify a split horizon group"; - } - uses bandwidth-profiles; - - container vlan-operations { - description - "Configuration of VLAN operations."; - choice direction { - description - "Whether the VLAN operations are symmetrical or - asymmetrical"; - case symmetrical { - container symmetrical-operation { - uses vlan-operations; - description - "Symmetrical operations. - Expressed in the ingress direction, but - the reverse operation is applied to egress traffic"; - } - } - case asymmetrical { - container asymmetrical-operation { - description "Asymmetrical operations"; - container ingress { - uses vlan-operations; - description "Ingress operations"; - } - container egress { - uses vlan-operations; - description "Egress operations"; - } - } - } - } - } - } - - grouping pm-config-grouping { - description - "Grouping used for Performance Monitoring Configuration. "; - leaf pm-enable { - type boolean; - description - "Whether to enable the performance monitoring."; - } - - leaf sending-rate-high { - type uint64; - description - "The upperbound of sending rate."; - } - - leaf sending-rate-low { - type uint64; - description - "The lowerbound of sending rate."; - } - - leaf receiving-rate-high { - type uint64; - description - "The upperbound of receiving rate."; - } - - leaf receiving-rate-low { - type uint64; - description - "The lowerbound of receiving rate."; - } - } - - grouping pw-segment-grouping { - description - "Grouping used for PW configuration. "; - leaf pw-id { - type string; - description - "The Identifier information of pseudowire. "; - } - - leaf pw-name { - type string; - description - "The name information of pseudowire."; - } - - leaf transmit-label { - type rt-types:mpls-label; - description - "Transmit label information in PW. "; - } - - leaf receive-label { - type rt-types:mpls-label; - description - "Receive label information in PW. "; - } - leaf encapsulation-type { - type identityref { - base etht-types:encapsulation-type; - } - description - "The encapsulation type, raw or tag. "; - } - - leaf oper-status { - type identityref { - base te-types:tunnel-state-type; - } - config false; - description - "The operational state of the PW segment. "; - } - - container ingress-bandwidth-profile { - description - "Bandwidth Profile for ingress. "; - uses pw-segment-named-or-value-bandwidth-profile; - } - - list pw-paths { - key path-id; - description - "A list of pw paths. "; - - leaf path-id { - type uint8; - description - "The identifier of pw paths. "; - - } - - list tp-tunnels { - key name; - description - "Names of TP Tunnel underlay"; - leaf name { - type string; - description - "Names of TP Tunnel underlay"; - } - } - } - - } - grouping pw-segment-named-or-value-bandwidth-profile { - description - "A grouping to configure a bandwdith profile either by - referencing a named bandwidth profile or by - configuring the values of the bandwidth profile attributes."; - choice style { - description - "Whether the bandwidth profile is named or defined by value"; - case named { - description - "Named bandwidth profile."; - leaf bandwidth-profile-name { - type leafref { - path "/ethtsvc:etht-svc/ethtsvc:globals/" - + "ethtsvc:named-bandwidth-profiles/" - + "ethtsvc:bandwidth-profile-name"; - } - description - "Name of the bandwidth profile."; - } - } - case value { - description - "Bandwidth profile configured by value."; - uses etht-types:pw-segement-bandwidth-profile-grouping; - } - } - } - - grouping tunnels-grouping { - description - "A group of tunnels. "; - leaf name { - type leafref { - path "/te:te/te:tunnels/te:tunnel/te:name"; - require-instance false; - } - description "Dependency tunnel name"; - } - leaf encoding { - type identityref { - base te-types:lsp-encoding-types; - } - description "LSP encoding type"; - reference "RFC3945"; - } - leaf switching-type { - type identityref { - base te-types:switching-capabilities; - } - description "LSP switching type"; - reference "RFC3945"; - } - } - } diff --git a/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2024-01-11.yang b/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2024-01-11.yang new file mode 100644 index 000000000..d1207fd7c --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2024-01-11.yang @@ -0,0 +1,987 @@ +module ietf-eth-tran-service { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-service"; + prefix etht-svc; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + + import ietf-routing-types { + prefix rt-types; + reference + "RFC 8294: Common YANG Data Types for the Routing Area"; + } + + import ietf-te-types { + prefix te-types; + reference "RFCYYYY: Traffic Engineering Common YANG Types"; + } + // RFC Editor: replace YYYY with the actual RFC number assigned + // to the RFC once draft-ietf-teas-rfc8776-update + // becomes an RFC, update date information and remove this note. + + import ietf-network { + prefix nw; + reference + "RFC8345: A YANG Data Model for Network Topologies"; + } + + import ietf-network-topology { + prefix "nt"; + reference + "RFC8345: A YANG Data Model for Network Topologies"; + } + + import ietf-te { + prefix "te"; + reference + "RFCKKKK: A YANG Data Model for Traffic Engineering Tunnels + and Interfaces"; + } + // RFC Editor: replace KKKK with the actual RFC number assigned + // to the RFC once draft-ietf-teas-yang-te + // becomes an RFC, update date information and remove this note. + + import ietf-eth-tran-types { + prefix etht-types; + reference + "RFCXXXX: A YANG Data Model for Transport Network Client + Signals"; + } + // 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. + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Aihua Guo + + + Editor: Italo Busi + + + Editor: Anton Snitser + + + Editor: Chaode Yu + "; + + description + "This module defines a YANG data model for describing + Ethernet transport network client services. + + The model fully conforms to the Network Management + Datastore Architecture (NMDA). + + 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."; + + revision 2024-01-11 { + description + "Initial Version"; + reference + "RFC XXXX: A YANG Data Model for Transport Network Client + Signals"; + } + // 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. + + /* + * Groupings + */ + + grouping vlan-classification { + description + "A grouping which represents classification + on an 802.1Q VLAN tag."; + + leaf tag-type { + type etht-types:eth-tag-classify; + description + "The tag type used for VLAN classification."; + } + choice individual-bundling-vlan { + description + "VLAN based classification can be individual + or bundling."; + + case individual-vlan { + leaf vlan-value { + type etht-types:vlanid; + description + "VLAN ID value."; + } + } + case vlan-bundling { + leaf vlan-range { + type etht-types:vid-range-type; + description + "List of VLAN ID values."; + } + } + } + } + + grouping vlan-write { + description + "A grouping which represents push/pop operations + of an 802.1Q VLAN tag."; + + leaf tag-type { + type etht-types:eth-tag-type; + description + "The VLAN tag type to push/swap."; + } + leaf vlan-value { + type etht-types:vlanid; + description + "The VLAN ID value to push/swap."; + } +/* + * To be added: this attribute is used when: + * a) the ETH service has only one CoS (as in current version) + * b) as a default when a mapping between a given CoS value + * and the PCP value is not defined (in future versions) + */ + leaf default-pcp { + type uint8 { + range "0..7"; + } + description + "The default Priority Code Point (PCP) value to push/swap"; + } + } + + grouping vlan-operations { + description + "A grouping which represents VLAN operations."; + + leaf pop-tags { + type uint8 { + range "1..2"; + } + description + "The number of VLAN tags to pop (or swap if used in + conjunction with push-tags)"; + } + container push-tags { + description + "The VLAN tags to push (or swap if used in + conjunction with pop-tags)"; + container outer-tag { + presence + "Indicates existence of the outermost VLAN tag to + push/swap"; + description + "The outermost VLAN tag to push/swap."; + uses vlan-write; + } + container second-tag { + must + '../outer-tag/tag-type = "etht-types:s-vlan-tag-type" and ' + + 'tag-type = "etht-types:c-vlan-tag-type"' + { + error-message + " + When pushing/swapping two tags, the outermost tag must + be specified and of S-VLAN type and the second + outermost tag must be of C-VLAN tag type. + "; + description + " + For IEEE 802.1Q interoperability, when pushing/swapping + two tags, it is required that the outermost tag exists + and is an S-VLAN, and the second outermost tag is a + C-VLAN. + "; + } + presence + "Indicates existence of a second outermost VLAN tag to + push/swap"; + description + "The second outermost VLAN tag to push/swap."; + uses vlan-write; + } + } + } + + grouping named-or-value-bandwidth-profile { + description + "A grouping to configure a bandwdith profile either by + referencing a named bandwidth profile or by + configuring the values of the bandwidth profile attributes."; + choice style { + description + "Whether the bandwidth profile is named or defined by value"; + case named { + description + "Named bandwidth profile."; + leaf bandwidth-profile-name { + type leafref { + path "/etht-svc:etht-svc/etht-svc:globals/" + + "etht-svc:named-bandwidth-profiles/" + + "etht-svc:bandwidth-profile-name"; + } + description + "Name of the bandwidth profile."; + } + } + case value { + description + "Bandwidth profile configured by value."; + uses etht-types:etht-bandwidth-profiles; + } + } + } + + grouping bandwidth-profiles { + description + "A grouping which represent bandwidth profile configuration."; + + choice direction { + description + "Whether the bandwidth profiles are symmetrical or + asymmetrical"; + case symmetrical { + description + "The same bandwidth profile is used to describe both + the ingress and the egress bandwidth profile."; + container ingress-egress-bandwidth-profile { + description + "The bandwdith profile used in both directions."; + uses named-or-value-bandwidth-profile; + } + } + case asymmetrical { + description + "Ingress and egress bandwidth profiles can be specified."; + container ingress-bandwidth-profile { + description + "The bandwdith profile used in the ingress direction."; + uses named-or-value-bandwidth-profile; + } + container egress-bandwidth-profile { + description + "The bandwdith profile used in the egress direction."; + uses named-or-value-bandwidth-profile; + } + } + } + } + + grouping etht-svc-access-parameters { + description + "ETH services access parameters"; + + leaf access-node-id { + type te-types:te-node-id; + description + "The identifier of the access node in + the ETH TE topology."; + } + leaf access-node-uri { + type nw:node-id; + description + "The identifier of the access node in the network."; + } + leaf access-ltp-id { + type te-types:te-tp-id; + description + "The TE link termination point identifier, used + together with access-node-id to identify the + access LTP."; + } + leaf access-ltp-uri { + type nt:tp-id; + description + "The link termination point identifier in network topology, + used together with access-node-uri to identify the + access LTP."; + } + leaf access-role { + type identityref { + base etht-types:access-role; + } + description + "Indicate the role of access, e.g., working or protection. "; + } + container pm-config { + uses pm-config-grouping; + description + "This grouping is used to set the threshold value for + performance monitoring. "; + } + container state { + config false; + description + "The state is used to monitor the status of service. "; + leaf operational-state { + type identityref { + base te-types:tunnel-state-type; + } + description + "Indicating the operational state of client signal. "; + } + leaf provisioning-state { + type identityref { + base te-types:lsp-state-type; + } + description + "Indicating the provisional state of client signal, + especially when there is a change, i.e., revise, create. "; + } + } + leaf performance { + type identityref { + base etht-types:performance; + } + config false; + description + "Performance Monitoring for the service. "; + } + } + + grouping etht-svc-tunnel-parameters { + description + "ETH services tunnel parameters."; + + choice technology { + description + "Service multiplexing is optional and flexible."; + case native-ethernet { + /* + placeholder to support proprietary multiplexing + (for further discussion) + */ + list eth-tunnels { + key name; + description + "ETH Tunnel list in native Ethernet scenario."; + uses tunnels-grouping; + } + } + case frame-base { + list otn-tunnels { + key name; + description + "OTN Tunnel list in Frame-based scenario."; + uses tunnels-grouping; + } + } + case mpls-tp { + container pw { + description + "Pseudowire information for Ethernet over MPLS-TP."; + uses pw-segment-grouping; + } + } + } + /* + * Open issue: + * can we constraints it to be used only with mp services? + */ + leaf src-split-horizon-group { + type string; + description + "Identify a split horizon group at the source Tunnel + Termination Point (TTP)."; + } + leaf dst-split-horizon-group { + type string; + description + "Identify a split horizon group at the destination Tunnel + Termination Point (TTP)."; + } + } + + grouping etht-svc-pm-threshold-config { + description + "Configuraiton parameters for Ethernet service PM thresholds."; + + leaf sending-rate-high { + type uint64; + description + "High threshold of packet sending rate in kbps."; + } + leaf sending-rate-low { + type uint64; + description + "Low threshold of packet sending rate in kbps."; + } + leaf receiving-rate-high { + type uint64; + description + "High threshold of packet receiving rate in kbps."; + } + leaf receiving-rate-low { + type uint64; + description + "Low threshold of packet receiving rate in kbps."; + } + } + + grouping etht-svc-pm-stats { + description + "Ethernet service PM statistics."; + + leaf sending-rate-too-high { + type uint32; + description + "Counter that indicates the number of times the + sending rate is above the high threshold"; + } + leaf sending-rate-too-low { + type uint32; + description + "Counter that indicates the number of times the + sending rate is below the low threshold"; + } + leaf receiving-rate-too-high { + type uint32; + description + "Counter that indicates the number of times the + receiving rate is above the high threshold"; + } + leaf receiving-rate-too-low { + type uint32; + description + "Counter that indicates the number of times the + receiving rate is below the low threshold"; + } + } + + grouping etht-svc-instance-config { + description + "Configuraiton parameters for Ethernet services."; + + leaf etht-svc-name { + type string; + description + "Name of the ETH service."; + } + leaf etht-svc-title { + type string; + description + "The Identifier of the ETH service."; + } + leaf user-label { + type string; + description + "Alias of the ETH service."; + } + leaf etht-svc-descr { + type string; + description + "Description of the ETH service."; + } + leaf etht-svc-customer { + type string; + description + "Customer of the ETH service."; + } + leaf etht-svc-type { + type etht-types:service-type; + description + "Type of ETH service (p2p, mp2mp or rmp)."; + /* Add default as p2p */ + } + leaf etht-svc-lifecycle { + type etht-types:lifecycle-status; + description + "Lifecycle state of ETH service."; + /* Add default as installed */ + } + uses te-types:te-topology-identifier; + uses resilience-grouping; + list etht-svc-end-points { + key etht-svc-end-point-name; + description + "The logical end point for the ETH service. "; + uses etht-svc-end-point-grouping; + } + container alarm-threshold { + description + "threshold configuration for the E2E client signal"; + uses alarm-threshold-grouping; + } + container underlay { + description + "The unterlay tunnel information that carrying the + ETH service. "; + uses etht-svc-tunnel-parameters; + } + leaf admin-status { + type identityref { + base te-types:tunnel-admin-state-type; + } + default te-types:tunnel-admin-state-up; + description "ETH service administrative state."; + } + } + + grouping etht-svc-instance-state { + description + "State parameters for Ethernet services."; + + leaf operational-state { + type identityref { + base te-types:tunnel-state-type; + } + default te-types:tunnel-state-up; + description + "ETH service operational state."; + } + leaf provisioning-state { + type identityref { + base te-types:lsp-state-type; + } + description + "ETH service provisioning state."; + } + leaf creation-time { + type yang:date-and-time; + description + "Time of ETH service creation."; + } + leaf last-updated-time { + type yang:date-and-time; + description + "Time of ETH service last update."; + } + leaf created-by { + type string; + description + "The client signal is created by whom, + can be a system or staff ID."; + } + leaf last-updated-by { + type string; + description + "The client signal is last updated by whom, + can be a system or staff ID."; + } + leaf owned-by { + type string; + description + "The client signal is last updated by whom, + can be a system ID."; + } + container pm-state { + description + "PM data of E2E Ethernet service"; + uses pm-state-grouping; + } + container error-info { + description "error messages of configuration"; + uses error-info-grouping; + } + } + + grouping pm-state-grouping { + description + "Performance Monitoring (PM) state attributes"; + leaf latency { + type uint32; + units microsecond; + description + "latency value of the E2E Ethernet service"; + } + } + + grouping error-info-grouping { + description + "Error information parameters"; + + leaf error-code { + type uint16; + description "error code"; + } + leaf error-description { + type string; + description "detail message of error"; + } + leaf error-timestamp { + type yang:date-and-time; + description "the date and time error is happened"; + } + } + + grouping alarm-threshold-grouping { + description + "Alarm threshold parameters."; + leaf latency-threshold { + type uint32; + units microsecond; + description + "a threshold for the E2E client signal service's + latency. Once the latency value exceed this threshold, + an alarm should be triggered."; + } + } + + grouping resilience-grouping { + description + "Grouping for resilience configuration. "; + container resilience { + description + "To configure the data plane protection parameters, + currently a placeholder only, future candidate attributes + include, Revert, WTR, Hold-off Timer, ..."; + uses te:protection-restoration-properties; + } + } + + grouping etht-svc-end-point-grouping { + description + "Grouping for the end point configuration."; + + leaf etht-svc-end-point-name { + type string; + description + "The name of the logical end point of ETH service. "; + } + leaf etht-svc-end-point-id { + type string; + description + "The identifier of the logical end point of ETH service."; + } + leaf etht-svc-end-point-descr { + type string; + description + "The description of the logical end point of ETH service. "; + } + leaf topology-role { + type identityref { + base etht-types:topology-role; + } + description + "Indicating the underlay topology role, + e.g., hub,spoke, any-to-any "; + } + container resilience { + description + "Placeholder for resilience configuration, for future + study."; + } + list etht-svc-access-points { + key access-point-id; + min-elements "1"; + /* + Open Issue: + Is it possible to limit the max-elements only for p2p + services? + max-elements "2"; + */ + description + "List of the ETH trasport services access point instances."; + leaf access-point-id { + type string; + description + "ID of the service access point instance"; + } + uses etht-svc-access-parameters; + } + leaf service-classification-type { + type identityref { + base etht-types:service-classification-type; + } + description + "Service classification type."; + } + choice service-classification { + description + "Access classification can be port-based or + VLAN based."; + case port-classification { + /* no additional information */ + } + case vlan-classification { + container outer-tag { + presence "The outermost VLAN tag exists"; + description + "Classifies traffic using the outermost VLAN tag."; + uses vlan-classification; + } + container second-tag { + must + '../outer-tag/tag-type = "etht-types:classify-s-vlan"' + + ' and tag-type = "etht-types:classify-c-vlan"' + { + error-message + " + When matching two tags, the outermost tag must be + specified and of S-VLAN type and the second + outermost tag must be of C-VLAN tag type. + "; + description + " + For IEEE 802.1Q interoperability, when matching two + tags, it is required that the outermost tag exists + and is an S-VLAN, and the second outermost tag is a + C-VLAN. + "; + } + presence "The second outermost VLAN tag exists"; + description + "Classifies traffic using the second outermost VLAN + tag."; + uses vlan-classification; + } + } + } + /* + * Open issue: + * can we constraints it to be used only with mp services? + */ + leaf split-horizon-group { + type string; + description "Identify a split horizon group"; + } + uses bandwidth-profiles; + container vlan-operations { + description + "Configuration of VLAN operations."; + choice direction { + description + "Whether the VLAN operations are symmetrical or + asymmetrical"; + case symmetrical { + container symmetrical-operation { + uses vlan-operations; + description + "Symmetrical operations. + Expressed in the ingress direction, but + the reverse operation is applied to egress traffic"; + } + } + case asymmetrical { + container asymmetrical-operation { + description "Asymmetrical operations"; + container ingress { + uses vlan-operations; + description "Ingress operations"; + } + container egress { + uses vlan-operations; + description "Egress operations"; + } + } + } + } + } + } + + grouping pm-config-grouping { + description + "Grouping used for Performance Monitoring Configuration. "; + + leaf pm-enable { + type boolean; + description + "Whether to enable the performance monitoring."; + } + leaf sending-rate-high { + type uint64; + description + "The upperbound of sending rate."; + } + leaf sending-rate-low { + type uint64; + description + "The lowerbound of sending rate."; + } + leaf receiving-rate-high { + type uint64; + description + "The upperbound of receiving rate."; + } + leaf receiving-rate-low { + type uint64; + description + "The lowerbound of receiving rate."; + } + } + + grouping pw-segment-grouping { + description + "Grouping used for PW configuration. "; + + leaf pw-id { + type string; + description + "The Identifier information of pseudowire. "; + } + leaf pw-name { + type string; + description + "The name information of pseudowire."; + } + leaf transmit-label { + type rt-types:mpls-label; + description + "Transmit label information in PW. "; + } + leaf receive-label { + type rt-types:mpls-label; + description + "Receive label information in PW. "; + } + leaf encapsulation-type { + type identityref { + base etht-types:encapsulation-type; + } + description + "The encapsulation type, raw or tag. "; + } + leaf oper-status { + type identityref { + base te-types:tunnel-state-type; + } + config false; + description + "The operational state of the PW segment. "; + } + container ingress-bandwidth-profile { + description + "Bandwidth Profile for ingress. "; + uses pw-segment-named-or-value-bandwidth-profile; + } + list pw-paths { + key path-id; + description + "A list of pw paths. "; + leaf path-id { + type uint8; + description + "The identifier of pw paths. "; + } + list tp-tunnels { + key name; + description + "Names of TP Tunnel underlay"; + leaf name { + type string; + description + "Names of TP Tunnel underlay"; + } + } + } + } + + grouping pw-segment-named-or-value-bandwidth-profile { + description + "A grouping to configure a bandwdith profile either by + referencing a named bandwidth profile or by + configuring the values of the bandwidth profile attributes."; + + choice style { + description + "Whether the bandwidth profile is named or defined by value"; + case named { + description + "Named bandwidth profile."; + leaf bandwidth-profile-name { + type leafref { + path "/etht-svc:etht-svc/etht-svc:globals/" + + "etht-svc:named-bandwidth-profiles/" + + "etht-svc:bandwidth-profile-name"; + } + description + "Name of the bandwidth profile."; + } + } + case value { + description + "Bandwidth profile configured by value."; + uses etht-types:pw-segement-bandwidth-profile-grouping; + } + } + } + + grouping tunnels-grouping { + description + "A group of tunnels. "; + leaf name { + type leafref { + path "/te:te/te:tunnels/te:tunnel/te:name"; + require-instance false; + } + description "Dependency tunnel name"; + } + leaf encoding { + type identityref { + base te-types:lsp-encoding-types; + } + description "LSP encoding type"; + reference "RFC3945"; + } + leaf switching-type { + type identityref { + base te-types:switching-capabilities; + } + description "LSP switching type"; + reference "RFC3945"; + } + } + + /* + * Data nodes + */ + + container etht-svc { + description + "ETH services."; + + container globals { + description + "Globals Ethernet configuration data container"; + list named-bandwidth-profiles { + key bandwidth-profile-name; + description + "List of named bandwidth profiles used by + Ethernet services."; + + leaf bandwidth-profile-name { + type string; + description + "Name of the bandwidth profile."; + } + uses etht-types:etht-bandwidth-profiles; + } + } + list etht-svc-instances { + key etht-svc-name; + description + "The list of p2p ETH service instances"; + + uses etht-svc-instance-config; + container state { + config false; + description + "Ethernet Service states."; + uses etht-svc-instance-state; + } + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang deleted file mode 100644 index f46908b34..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang +++ /dev/null @@ -1,457 +0,0 @@ - module ietf-eth-tran-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-types"; - - prefix "etht-types"; - - organization - "Internet Engineering Task Force (IETF) CCAMP WG"; - contact - " - WG List: - - ID-draft editor: - Haomian Zheng (zhenghaomian@huawei.com); - Italo Busi (italo.busi@huawei.com); - Aihua Guo (aihuaguo.ietf@gmail.com); - Anton Snitser (antons@sedonasys.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.com); - Yunbin Xu (xuyunbin@caict.ac.cn); - Yang Zhao (zhaoyangyjy@chinamobile.com); - Xufeng Liu (xufeng.liu.ietf@gmail.com); - Giuseppe Fioccola (giuseppe.fioccola@huawei.com); - Chaode Yu (yuchaode@huawei.com) - "; - - description - "This module defines the ETH types. - The model fully conforms to the Network Management - Datastore Architecture (NMDA). - - 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 - (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - - revision 2023-10-23 { - description - "version -05 as a WG draft"; - reference - "draft-ietf-ccamp-client-signal-yang"; - } - - /* - * Identities - */ - - identity eth-vlan-tag-type { - description - "ETH VLAN tag type."; - } - - identity c-vlan-tag-type { - base eth-vlan-tag-type; - description - "802.1Q Customer VLAN"; - } - - identity s-vlan-tag-type { - base eth-vlan-tag-type; - description - "802.1Q Service VLAN (QinQ)"; - } - - identity service-classification-type { - description - "Service classification."; - } - - identity port-classification { - base service-classification-type; - description - "Port classification."; - } - identity vlan-classification { - base service-classification-type; - description - "VLAN classification."; - } - - identity eth-vlan-tag-classify { - description - "VLAN tag classification."; - } - - identity classify-c-vlan { - base eth-vlan-tag-classify; - description - "Classify 802.1Q Customer VLAN tag. - Only C-tag type is accepted"; - } - - identity classify-s-vlan { - base eth-vlan-tag-classify; - description - "Classify 802.1Q Service VLAN (QinQ) tag. - Only S-tag type is accepted"; - } - - identity classify-s-or-c-vlan { - base eth-vlan-tag-classify; - description - "Classify S-VLAN or C-VLAN tag-classify. - Either tag is accepted"; - } - - identity bandwidth-profile-type-ir { - description - "Bandwidth Profile Types"; - } - - identity mef-10-bwp { - base bandwidth-profile-type-ir; - description - "MEF 10 Bandwidth Profile"; - } - - identity rfc-2697-bwp { - base bandwidth-profile-type-ir; - description - "RFC 2697 Bandwidth Profile"; - } - identity rfc-2698-bwp { - base bandwidth-profile-type-ir; - description - "RFC 2698 Bandwidth Profile"; - } - - identity rfc-4115-bwp { - base bandwidth-profile-type-ir; - description - "RFC 4115 Bandwidth Profile"; - } - - identity service-type-ir { - description - "Type of Ethernet service."; - } - - identity p2p-svc { - base service-type-ir; - description - "Ethernet point-to-point service (EPL, EVPL)."; - } - - identity rmp-svc { - base service-type-ir; - description - "Ethernet rooted-multitpoint service (E-TREE, EP-TREE)."; - } - - identity mp2mp-svc { - base service-type-ir; - description - "Ethernet multipoint-to-multitpoint service (E-LAN, EP-LAN)."; - } - - identity lifecycle-status-ir { - description - "Lifecycle Status."; - } - - identity installed { - base lifecycle-status-ir; - description - "Installed."; - } - - identity planned { - base lifecycle-status-ir; - description - "Planned."; - } - - identity pending-removal { - base lifecycle-status-ir; - description - "Pending Removal."; - } - - /* - * Type Definitions - */ - - typedef eth-tag-type { - type identityref { - base eth-vlan-tag-type; - } - description - "Identifies a specific ETH VLAN tag type."; - } - - typedef eth-tag-classify { - type identityref { - base eth-vlan-tag-classify; - } - description - "Identifies a specific VLAN tag classification."; - } - - typedef vlanid { - type uint16 { - range "1..4094"; - } - description - "The 12-bit VLAN-ID used in the VLAN Tag header."; - } - - typedef vid-range-type { - type string { - pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" + - "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; - } - description - "A list of VLAN Ids, or non overlapping VLAN ranges, in - ascending order, between 1 and 4094. - This type is used to match an ordered list of VLAN Ids, or - contiguous ranges of VLAN Ids. Valid VLAN Ids must be in the - range 1 to 4094, and included in the list in non overlapping - ascending order. - - For example: 1,10-100,50,500-1000"; - } - - typedef bandwidth-profile-type { - type identityref { - base bandwidth-profile-type-ir; - } - description - "Identifies a specific Bandwidth Profile type."; - } - - typedef service-type { - type identityref { - base service-type-ir; - } - description - "Identifies the type of Ethernet service."; - } - - typedef lifecycle-status { - type identityref { - base lifecycle-status-ir; - } - description - "Identifies the lLifecycle Status ."; - } - - /* - * Grouping Definitions - */ - - grouping etht-bandwidth-profiles { - description - "Bandwidth profile configuration paramters."; - - leaf bandwidth-profile-type { - type etht-types:bandwidth-profile-type; - description - "The type of bandwidth profile."; - } - leaf CIR { - type uint64; - description - "Committed Information Rate in Kbps"; - } - leaf CBS { - type uint64; - description - "Committed Burst Size in in KBytes"; - } - leaf EIR { - type uint64; - /* Need to indicate that EIR is not supported by RFC 2697 - - must - '../bw-profile-type = "mef-10-bwp" or ' + - '../bw-profile-type = "rfc-2698-bwp" or ' + - '../bw-profile-type = "rfc-4115-bwp"' - - must - '../bw-profile-type != "rfc-2697-bwp"' - */ - description - "Excess Information Rate in Kbps - In case of RFC 2698, PIR = CIR + EIR"; - } - leaf EBS { - type uint64; - description - "Excess Burst Size in KBytes. - In case of RFC 2698, PBS = CBS + EBS"; - } - leaf color-aware { - type boolean; - description - "Indicates weather the color-mode is - color-aware or color-blind."; - } - leaf coupling-flag { - type boolean; - /* Need to indicate that Coupling Flag is defined only for MEF 10 - - must - '../bw-profile-type = "mef-10-bwp"' - */ - description - "Coupling Flag."; - } - } - - identity topology-role { - description - "The role of underlay topology: e.g., hub, spoke, - any-to-any."; - } - - identity resilience { - description - "Placeholder for resilience information in data plane, - for future study. "; - } - - identity access-role { - description - "Indicating whether the access is a working or protection access."; - } - - identity root-primary { - base access-role; - description - "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."; - } - - identity root-backup { - base access-role; - description - "Designates the backup root UNI of an E-Tree service."; - } - - identity leaf-access { - base access-role; - description - "Designates the leaf UNI of an E-Tree service."; - } - - identity leaf-edge { - base access-role; - description ""; - } - - identity performance { - description - "Placeholder for performance information, for future study."; - } - - identity encapsulation-type { - description - "Indicating how the service is encapsulated (to PW), e.g, raw or tag. "; - } - grouping pw-segement-bandwidth-profile-grouping { - description - "bandwidth profile grouping for PW segment. "; - leaf bandwidth-profile-type { - type etht-types:bandwidth-profile-type; - description - "The type of bandwidth profile."; - } - leaf CIR { - type uint64; - description - "Committed Information Rate in Kbps"; - } - leaf CBS { - type uint64; - description - "Committed Burst Size in in KBytes"; - } - leaf EIR { - type uint64; - /* Need to indicate that EIR is not supported by RFC 2697 - - must - '../bw-profile-type = "mef-10-bwp" or ' + - '../bw-profile-type = "rfc-2698-bwp" or ' + - '../bw-profile-type = "rfc-4115-bwp"' - - must - '../bw-profile-type != "rfc-2697-bwp"' - */ - description - "Excess Information Rate in Kbps - In case of RFC 2698, PIR = CIR + EIR"; - } - leaf EBS { - type uint64; - description - "Excess Burst Size in KBytes. - In case of RFC 2698, PBS = CBS + EBS"; - } - } - grouping eth-bandwidth { - description - "Available bandwith for ethernet."; - leaf eth-bandwidth { - type uint64{ - range "0..10000000000"; - } - units "Kbps"; - description - "Available bandwith value expressed in kilobits per second"; - } - } - - grouping eth-label-restriction { - description - "Label Restriction for ethernet."; - leaf tag-type { - type etht-types:eth-tag-type; - description "VLAN tag type."; - } - leaf priority { - type uint8; - description "priority."; - } - } - grouping eth-label { - description - "Label for ethernet."; - leaf vlanid { - type etht-types:vlanid; - description - "VLAN tag id."; - } - } - - grouping eth-label-step { - description "Label step for Ethernet VLAN"; - leaf eth-step { - type uint16 { - range "1..4095"; - } - default 1; - description - "Label step which represent possible increments for - an Ethernet VLAN tag."; - reference - "IEEE 802.1ad: Provider Bridges."; - } - } - } diff --git a/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2024-01-11.yang b/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2024-01-11.yang new file mode 100644 index 000000000..78c849d7b --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2024-01-11.yang @@ -0,0 +1,470 @@ +module ietf-eth-tran-types { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-types"; + prefix etht-types; + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Aihua Guo + + + Editor: Italo Busi + + + Editor: Anton Snitser + + + Editor: Chaode Yu + "; + + description + "This module defines a collection of common YANG identity, data + type and grouping definitions for describing Ethernet transport + network clients. + + 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."; + + revision 2024-01-11 { + description + "Initial Version"; + reference + "RFC XXXX: A YANG Data Model for Transport Network Client + Signals"; + } + // 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. + + /* + * Identities + */ + + identity eth-vlan-tag-type { + description + "ETH VLAN tag type."; + } + + identity c-vlan-tag-type { + base eth-vlan-tag-type; + description + "802.1Q Customer VLAN"; + } + + identity s-vlan-tag-type { + base eth-vlan-tag-type; + description + "802.1Q Service VLAN (QinQ)"; + } + + identity service-classification-type { + description + "Service classification."; + } + + identity port-classification { + base service-classification-type; + description + "Port classification."; + } + + identity vlan-classification { + base service-classification-type; + description + "VLAN classification."; + } + + identity eth-vlan-tag-classify { + description + "VLAN tag classification."; + } + + identity classify-c-vlan { + base eth-vlan-tag-classify; + description + "Classify 802.1Q Customer VLAN tag. + Only C-tag type is accepted"; + } + + identity classify-s-vlan { + base eth-vlan-tag-classify; + description + "Classify 802.1Q Service VLAN (QinQ) tag. + Only S-tag type is accepted"; + } + + identity classify-s-or-c-vlan { + base eth-vlan-tag-classify; + description + "Classify S-VLAN or C-VLAN tag-classify. + Either tag is accepted"; + } + + identity bandwidth-profile-type { + description + "Bandwidth Profile Types"; + } + + identity mef-10-bwp { + base bandwidth-profile-type; + description + "MEF 10 Bandwidth Profile"; + } + + identity rfc-2697-bwp { + base bandwidth-profile-type; + description + "RFC 2697 Bandwidth Profile"; + } + + identity rfc-2698-bwp { + base bandwidth-profile-type; + description + "RFC 2698 Bandwidth Profile"; + } + + identity rfc-4115-bwp { + base bandwidth-profile-type; + description + "RFC 4115 Bandwidth Profile"; + } + + identity service-type { + description + "Type of Ethernet service."; + } + + identity p2p-svc { + base service-type; + description + "Ethernet point-to-point service (EPL, EVPL)."; + } + + identity rmp-svc { + base service-type; + description + "Ethernet rooted-multitpoint service (E-TREE, EP-TREE)."; + } + + identity mp2mp-svc { + base service-type; + description + "Ethernet multipoint-to-multitpoint service + (E-LAN, EP-LAN)."; + } + + identity lifecycle-status { + description + "Lifecycle Status."; + } + + identity installed { + base lifecycle-status; + description + "Installed."; + } + + identity planned { + base lifecycle-status; + description + "Planned."; + } + + identity pending-removal { + base lifecycle-status; + description + "Pending Removal."; + } + + identity topology-role { + description + "The role of underlay topology: e.g., hub, spoke, + any-to-any."; + } + + identity resilience { + description + "Placeholder for resilience information in data plane, + for future study. "; + } + + identity access-role { + description + "Indicating whether the access is a working or protection + access."; + } + + identity root-primary { + base access-role; + description + "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."; + } + + identity root-backup { + base access-role; + description + "Designates the backup root UNI of an E-Tree service."; + } + + identity leaf-access { + base access-role; + description + "Designates the leaf UNI of an E-Tree service."; + } + + identity performance { + description + "Placeholder for performance information, for future study."; + } + + identity encapsulation-type { + description + "Indicating how the service is encapsulated (to PW), e.g, raw or + tag. "; + } + + /* + * Data Types + */ + + typedef eth-tag-type { + type identityref { + base eth-vlan-tag-type; + } + description + "Identifies a specific ETH VLAN tag type."; + } + + typedef eth-tag-classify { + type identityref { + base eth-vlan-tag-classify; + } + description + "Identifies a specific VLAN tag classification."; + } + + typedef vlanid { + type uint16 { + range "1..4094"; + } + description + "The 12-bit VLAN-ID used in the VLAN Tag header."; + } + + typedef vid-range-type { + type string { + pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" + + "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; + } + description + "A list of VLAN Ids, or non overlapping VLAN ranges, in + ascending order, between 1 and 4094. + This type is used to match an ordered list of VLAN Ids, or + contiguous ranges of VLAN Ids. Valid VLAN Ids must be in the + range 1 to 4094, and included in the list in non overlapping + ascending order. + + For example: 1,10-100,50,500-1000"; + } + + typedef bandwidth-profile-type { + type identityref { + base bandwidth-profile-type; + } + description + "Identifies a specific Bandwidth Profile type."; + } + + typedef service-type { + type identityref { + base service-type; + } + description + "Identifies the type of Ethernet service."; + } + + typedef lifecycle-status { + type identityref { + base lifecycle-status; + } + description + "Identifies the lLifecycle Status ."; + } + + /* + * Groupings + */ + + grouping etht-bandwidth-profiles { + description + "Bandwidth profile configuration paramters."; + + leaf bandwidth-profile-type { + type etht-types:bandwidth-profile-type; + description + "The type of bandwidth profile."; + } + leaf CIR { + type uint64; + description + "Committed Information Rate in Kbps"; + } + leaf CBS { + type uint64; + description + "Committed Burst Size in in KBytes"; + } + leaf EIR { + type uint64; + /* Need to indicate that EIR is not supported by RFC 2697 + + must + '../bw-profile-type = "mef-10-bwp" or ' + + '../bw-profile-type = "rfc-2698-bwp" or ' + + '../bw-profile-type = "rfc-4115-bwp"' + + must + '../bw-profile-type != "rfc-2697-bwp"' + */ + description + "Excess Information Rate in Kbps + In case of RFC 2698, PIR = CIR + EIR"; + } + leaf EBS { + type uint64; + description + "Excess Burst Size in KBytes. + In case of RFC 2698, PBS = CBS + EBS"; + } + leaf color-aware { + type boolean; + description + "Indicates weather the color-mode is + color-aware or color-blind."; + } + leaf coupling-flag { + type boolean; + /* Need to indicate that Coupling Flag is defined only for + MEF 10 + + must + '../bw-profile-type = "mef-10-bwp"' + */ + description + "Coupling Flag."; + } + } + + grouping pw-segement-bandwidth-profile-grouping { + description + "bandwidth profile grouping for PW segment."; + + leaf bandwidth-profile-type { + type etht-types:bandwidth-profile-type; + description + "The type of bandwidth profile."; + } + leaf CIR { + type uint64; + description + "Committed Information Rate in Kbps"; + } + leaf CBS { + type uint64; + description + "Committed Burst Size in in KBytes"; + } + leaf EIR { + type uint64; + /* Need to indicate that EIR is not supported by RFC 2697 + + must + '../bw-profile-type = "mef-10-bwp" or ' + + '../bw-profile-type = "rfc-2698-bwp" or ' + + '../bw-profile-type = "rfc-4115-bwp"' + + must + '../bw-profile-type != "rfc-2697-bwp"' + */ + description + "Excess Information Rate in Kbps + In case of RFC 2698, PIR = CIR + EIR"; + } + leaf EBS { + type uint64; + description + "Excess Burst Size in KBytes. + In case of RFC 2698, PBS = CBS + EBS"; + } + } + + grouping eth-bandwidth { + description + "Available bandwith for ethernet."; + leaf eth-bandwidth { + type uint64{ + range "0..10000000000"; + } + units "Kbps"; + description + "Available bandwith value expressed in kilobits per second"; + } + } + + grouping eth-label-restriction { + description + "Label Restriction for ethernet."; + leaf tag-type { + type etht-types:eth-tag-type; + description "VLAN tag type."; + } + leaf priority { + type uint8; + description "priority."; + } + } + + grouping eth-label { + description + "Label for ethernet."; + leaf vlanid { + type etht-types:vlanid; + description + "VLAN tag id."; + } + } + + grouping eth-label-step { + description "Label step for Ethernet VLAN"; + leaf eth-step { + type uint16 { + range "1..4095"; + } + default 1; + description + "Label step which represent possible increments for + an Ethernet VLAN tag."; + reference + "IEEE 802.1ad: Provider Bridges."; + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-inet-types@2013-07-15.yang b/src/nbi/service/ietf_network/yang/ietf-inet-types@2013-07-15.yang deleted file mode 100644 index 790bafc31..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-inet-types@2013-07-15.yang +++ /dev/null @@ -1,459 +0,0 @@ - module ietf-inet-types { - - namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; - prefix "inet"; - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - - Editor: Juergen Schoenwaelder - "; - - description - "This module contains a collection of generally useful derived - YANG data types for Internet addresses and related things. - - Copyright (c) 2013 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 6991; see - the RFC itself for full legal notices."; - - revision 2013-07-15 { - description - "This revision adds the following new data types: - - ip-address-no-zone - - ipv4-address-no-zone - - ipv6-address-no-zone"; - reference - "RFC 6991: Common YANG Data Types"; - } - - revision 2010-09-24 { - description - "Initial revision."; - reference - "RFC 6021: Common YANG Data Types"; - } - - /*** collection of types related to protocol fields ***/ - - typedef ip-version { - type enumeration { - enum unknown { - value "0"; - description - "An unknown or unspecified version of the Internet - protocol."; - } - enum ipv4 { - value "1"; - description - "The IPv4 protocol as defined in RFC 791."; - } - enum ipv6 { - value "2"; - description - "The IPv6 protocol as defined in RFC 2460."; - } - } - description - "This value represents the version of the IP protocol. - - In the value set and its semantics, this type is equivalent - to the InetVersion textual convention of the SMIv2."; - reference - "RFC 791: Internet Protocol - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification - RFC 4001: Textual Conventions for Internet Network Addresses"; - } - - typedef dscp { - type uint8 { - range "0..63"; - } - description - "The dscp type represents a Differentiated Services Code Point - that may be used for marking packets in a traffic stream. - - In the value set and its semantics, this type is equivalent - to the Dscp textual convention of the SMIv2."; - reference - "RFC 3289: Management Information Base for the Differentiated - Services Architecture - RFC 2474: Definition of the Differentiated Services Field - (DS Field) in the IPv4 and IPv6 Headers - RFC 2780: IANA Allocation Guidelines For Values In - the Internet Protocol and Related Headers"; - } - - typedef ipv6-flow-label { - type uint32 { - range "0..1048575"; - } - description - "The ipv6-flow-label type represents the flow identifier or Flow - Label in an IPv6 packet header that may be used to - discriminate traffic flows. - - In the value set and its semantics, this type is equivalent - to the IPv6FlowLabel textual convention of the SMIv2."; - reference - "RFC 3595: Textual Conventions for IPv6 Flow Label - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; - } - - typedef port-number { - type uint16 { - range "0..65535"; - } - description - "The port-number type represents a 16-bit port number of an - Internet transport-layer protocol such as UDP, TCP, DCCP, or - SCTP. Port numbers are assigned by IANA. A current list of - all assignments is available from . - - Note that the port number value zero is reserved by IANA. In - situations where the value zero does not make sense, it can - be excluded by subtyping the port-number type. - In the value set and its semantics, this type is equivalent - to the InetPortNumber textual convention of the SMIv2."; - reference - "RFC 768: User Datagram Protocol - RFC 793: Transmission Control Protocol - RFC 4960: Stream Control Transmission Protocol - RFC 4340: Datagram Congestion Control Protocol (DCCP) - RFC 4001: Textual Conventions for Internet Network Addresses"; - } - - /*** collection of types related to autonomous systems ***/ - - typedef as-number { - type uint32; - description - "The as-number type represents autonomous system numbers - which identify an Autonomous System (AS). An AS is a set - of routers under a single technical administration, using - an interior gateway protocol and common metrics to route - packets within the AS, and using an exterior gateway - protocol to route packets to other ASes. IANA maintains - the AS number space and has delegated large parts to the - regional registries. - - Autonomous system numbers were originally limited to 16 - bits. BGP extensions have enlarged the autonomous system - number space to 32 bits. This type therefore uses an uint32 - base type without a range restriction in order to support - a larger autonomous system number space. - - In the value set and its semantics, this type is equivalent - to the InetAutonomousSystemNumber textual convention of - the SMIv2."; - reference - "RFC 1930: Guidelines for creation, selection, and registration - of an Autonomous System (AS) - RFC 4271: A Border Gateway Protocol 4 (BGP-4) - RFC 4001: Textual Conventions for Internet Network Addresses - RFC 6793: BGP Support for Four-Octet Autonomous System (AS) - Number Space"; - } - - /*** collection of types related to IP addresses and hostnames ***/ - - typedef ip-address { - type union { - type inet:ipv4-address; - type inet:ipv6-address; - } - description - "The ip-address type represents an IP address and is IP - version neutral. The format of the textual representation - implies the IP version. This type supports scoped addresses - by allowing zone identifiers in the address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; - } - - typedef ipv4-address { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '(%[\p{N}\p{L}]+)?'; - } - description - "The ipv4-address type represents an IPv4 address in - dotted-quad notation. The IPv4 address may include a zone - index, separated by a % sign. - - The zone index is used to disambiguate identical address - values. For link-local addresses, the zone index will - typically be the interface index number or the name of an - interface. If the zone index is not present, the default - zone of the device will be used. - - The canonical format for the zone index is the numerical - format"; - } - - typedef ipv6-address { - type string { - pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' - + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' - + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' - + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' - + '(%[\p{N}\p{L}]+)?'; - pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' - + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' - + '(%.+)?'; - } - description - "The ipv6-address type represents an IPv6 address in full, - mixed, shortened, and shortened-mixed notation. The IPv6 - address may include a zone index, separated by a % sign. - - The zone index is used to disambiguate identical address - values. For link-local addresses, the zone index will - typically be the interface index number or the name of an - interface. If the zone index is not present, the default - zone of the device will be used. - - The canonical format of IPv6 addresses uses the textual - representation defined in Section 4 of RFC 5952. The - canonical format for the zone index is the numerical - format as described in Section 11.2 of RFC 4007."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - } - - typedef ip-address-no-zone { - type union { - type inet:ipv4-address-no-zone; - type inet:ipv6-address-no-zone; - } - description - "The ip-address-no-zone type represents an IP address and is - IP version neutral. The format of the textual representation - implies the IP version. This type does not support scoped - addresses since it does not allow zone identifiers in the - address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; - } - - typedef ipv4-address-no-zone { - type inet:ipv4-address { - pattern '[0-9\.]*'; - } - description - "An IPv4 address without a zone index. This type, derived from - ipv4-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; - } - - typedef ipv6-address-no-zone { - type inet:ipv6-address { - pattern '[0-9a-fA-F:\.]*'; - } - description - "An IPv6 address without a zone index. This type, derived from - ipv6-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - } - - typedef ip-prefix { - type union { - type inet:ipv4-prefix; - type inet:ipv6-prefix; - } - description - "The ip-prefix type represents an IP prefix and is IP - version neutral. The format of the textual representations - implies the IP version."; - } - - typedef ipv4-prefix { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; - } - description - "The ipv4-prefix type represents an IPv4 address prefix. - The prefix length is given by the number following the - slash character and must be less than or equal to 32. - - A prefix length value of n corresponds to an IP address - mask that has n contiguous 1-bits from the most - significant bit (MSB) and all other bits set to 0. - - The canonical format of an IPv4 prefix has all bits of - the IPv4 address set to zero that are not part of the - IPv4 prefix."; - } - - typedef ipv6-prefix { - type string { - pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' - + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' - + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' - + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' - + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; - pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' - + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' - + '(/.+)'; - } - - description - "The ipv6-prefix type represents an IPv6 address prefix. - The prefix length is given by the number following the - slash character and must be less than or equal to 128. - - A prefix length value of n corresponds to an IP address - mask that has n contiguous 1-bits from the most - significant bit (MSB) and all other bits set to 0. - - The IPv6 address should have all bits that do not belong - to the prefix set to zero. - - The canonical format of an IPv6 prefix has all bits of - the IPv6 address set to zero that are not part of the - IPv6 prefix. Furthermore, the IPv6 address is represented - as defined in Section 4 of RFC 5952."; - reference - "RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - } - - /*** collection of domain name and URI types ***/ - - typedef domain-name { - type string { - pattern - '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' - + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' - + '|\.'; - length "1..253"; - } - description - "The domain-name type represents a DNS domain name. The - name SHOULD be fully qualified whenever possible. - - Internet domain names are only loosely specified. Section - 3.5 of RFC 1034 recommends a syntax (modified in Section - 2.1 of RFC 1123). The pattern above is intended to allow - for current practice in domain name use, and some possible - future expansion. It is designed to hold various types of - domain names, including names used for A or AAAA records - (host names) and other records, such as SRV records. Note - that Internet host names have a stricter syntax (described - in RFC 952) than the DNS recommendations in RFCs 1034 and - 1123, and that systems that want to store host names in - schema nodes using the domain-name type are recommended to - adhere to this stricter standard to ensure interoperability. - - The encoding of DNS names in the DNS protocol is limited - to 255 characters. Since the encoding consists of labels - prefixed by a length bytes and there is a trailing NULL - byte, only 253 characters can appear in the textual dotted - notation. - - The description clause of schema nodes using the domain-name - type MUST describe when and how these names are resolved to - IP addresses. Note that the resolution of a domain-name value - may require to query multiple DNS records (e.g., A for IPv4 - and AAAA for IPv6). The order of the resolution process and - which DNS record takes precedence can either be defined - explicitly or may depend on the configuration of the - resolver. - - Domain-name values use the US-ASCII encoding. Their canonical - format uses lowercase US-ASCII characters. Internationalized - domain names MUST be A-labels as per RFC 5890."; - reference - "RFC 952: DoD Internet Host Table Specification - RFC 1034: Domain Names - Concepts and Facilities - RFC 1123: Requirements for Internet Hosts -- Application - and Support - RFC 2782: A DNS RR for specifying the location of services - (DNS SRV) - RFC 5890: Internationalized Domain Names in Applications - (IDNA): Definitions and Document Framework"; - } - - typedef host { - type union { - type inet:ip-address; - type inet:domain-name; - } - description - "The host type represents either an IP address or a DNS - domain name."; - } - - typedef uri { - type string; - description - "The uri type represents a Uniform Resource Identifier - (URI) as defined by STD 66. - - Objects using the uri type MUST be in US-ASCII encoding, - and MUST be normalized as described by RFC 3986 Sections - 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary - percent-encoding is removed, and all case-insensitive - characters are set to lowercase except for hexadecimal - digits, which are normalized to uppercase as described in - Section 6.2.2.1. - - The purpose of this normalization is to help provide - unique URIs. Note that this normalization is not - sufficient to provide uniqueness. Two URIs that are - textually distinct after this normalization may still be - equivalent. - - Objects using the uri type may restrict the schemes that - they permit. For example, 'data:' and 'urn:' schemes - might not be appropriate. - - A zero-length URI is not a valid URI. This can be used to - express 'URI absent' where required. - - In the value set and its semantics, this type is equivalent - to the Uri SMIv2 textual convention defined in RFC 5017."; - reference - "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax - RFC 3305: Report from the Joint W3C/IETF URI Planning Interest - Group: Uniform Resource Identifiers (URIs), URLs, - and Uniform Resource Names (URNs): Clarifications - and Recommendations - RFC 5017: MIB Textual Conventions for Uniform Resource - Identifiers (URIs)"; - } - - } diff --git a/src/nbi/service/ietf_network/yang/ietf-inet-types@2025-06-23.yang b/src/nbi/service/ietf_network/yang/ietf-inet-types@2025-06-23.yang new file mode 100644 index 000000000..b28621b9f --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-inet-types@2025-06-23.yang @@ -0,0 +1,669 @@ +module ietf-inet-types { + + namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; + prefix "inet"; + + organization + "IETF Network Modeling (NETMOD) Working Group"; + + contact + "WG Web: + WG List: + + Editor: Juergen Schoenwaelder + "; + + description + "This module contains a collection of generally useful derived + YANG data types for Internet addresses and related things. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2025 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Revised BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; + + revision 2025-06-23 { + description + "This revision adds the following new data types: + - inet:ip-address-and-prefix + - inet:ipv4-address-and-prefix + - inet:ipv6-address-and-prefix + - inet:protocol-number + - inet:upper-layer-protocol-number + - inet:host-name + - inet:email-address + - inet:ip-address-link-local + - inet:ipv4-address-link-local + - inet:ipv6-address-link-local + The inet:host union was changed to use inet:host-name instead + of inet:domain-name. Several pattern statements have been + improved."; + reference + "RFC XXXX: Common YANG Data Types"; + } + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - inet:ip-address-no-zone + - inet:ipv4-address-no-zone + - inet:ipv6-address-no-zone"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of types related to protocol fields ***/ + + typedef ip-version { + type enumeration { + enum unknown { + value "0"; + description + "An unknown or unspecified version of the Internet + protocol."; + } + enum ipv4 { + value "1"; + description + "The IPv4 protocol as defined in RFC 791."; + } + enum ipv6 { + value "2"; + description + "The IPv6 protocol as defined in RFC 8200."; + } + } + description + "This value represents the version of the IP protocol. + + In the value set and its semantics, this type is equivalent + to the InetVersion textual convention of the SMIv2."; + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef dscp { + type uint8 { + range "0..63"; + } + description + "The dscp type represents a Differentiated Services Code Point + that may be used for marking packets in a traffic stream. + + In the value set and its semantics, this type is equivalent + to the Dscp textual convention of the SMIv2."; + reference + "RFC 3289: Management Information Base for the Differentiated + Services Architecture + RFC 2474: Definition of the Differentiated Services Field + (DS Field) in the IPv4 and IPv6 Headers + RFC 2780: IANA Allocation Guidelines For Values In + the Internet Protocol and Related Headers"; + } + + typedef ipv6-flow-label { + type uint32 { + range "0..1048575"; + } + description + "The ipv6-flow-label type represents the flow identifier or + Flow Label in an IPv6 packet header that may be used to + discriminate traffic flows. + + In the value set and its semantics, this type is equivalent + to the IPv6FlowLabel textual convention of the SMIv2."; + reference + "RFC 3595: Textual Conventions for IPv6 Flow Label + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + typedef port-number { + type uint16 { + range "0..65535"; + } + description + "The port-number type represents a 16-bit port number of an + Internet transport-layer protocol such as UDP, TCP, DCCP, or + SCTP. + + Port numbers are assigned by IANA. The current list of + all assignments is available from . + + Note that the port number value zero is reserved by IANA. In + situations where the value zero does not make sense, it can + be excluded by subtyping the port-number type. + + In the value set and its semantics, this type is equivalent + to the InetPortNumber textual convention of the SMIv2."; + reference + "RFC 768: User Datagram Protocol + RFC 9293: Transmission Control Protocol (TCP) + RFC 9260: Stream Control Transmission Protocol + RFC 4340: Datagram Congestion Control Protocol (DCCP) + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef protocol-number { + type uint8; + description + "The protocol-number type represents an 8-bit Internet + protocol number, carried in the 'protocol' field of the + IPv4 header or in the 'next header' field of the IPv6 + header. + + Protocol numbers are assigned by IANA. The current list of + all assignments is available from ."; + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + typedef upper-layer-protocol-number { + type protocol-number; + description + "The upper-layer-protocol-number represents the upper-layer + protocol number carried in an IP packet. For IPv6 packets + with extension headers, this is the protocol number carried + in the last 'next header' field of the chain of IPv6 extension + headers."; + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + /*** collection of types related to autonomous systems ***/ + + typedef as-number { + type uint32; + description + "The as-number type represents autonomous system numbers + which identify an Autonomous System (AS). An AS is a set + of routers under a single technical administration, using + an interior gateway protocol and common metrics to route + packets within the AS, and using an exterior gateway + protocol to route packets to other ASes. IANA maintains + the AS number space and has delegated large parts to the + regional registries. + + Autonomous system numbers were originally limited to 16 + bits. BGP extensions have enlarged the autonomous system + number space to 32 bits. This type therefore uses an uint32 + base type without a range restriction in order to support + a larger autonomous system number space. + + In the value set and its semantics, this type is equivalent + to the InetAutonomousSystemNumber textual convention of + the SMIv2."; + reference + "RFC 1930: Guidelines for creation, selection, and registration + of an Autonomous System (AS) + RFC 4271: A Border Gateway Protocol 4 (BGP-4) + RFC 4001: Textual Conventions for Internet Network Addresses + RFC 6793: BGP Support for Four-Octet Autonomous System (AS) + Number Space"; + } + + /*** collection of types related to IP addresses and hostnames ***/ + + typedef ip-address { + type union { + type ipv4-address; + type ipv6-address; + } + description + "The ip-address type represents an IP address and is IP + version neutral. The format of the textual representation + implies the IP version. This type supports scoped addresses + by allowing zone identifiers in the address format."; + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + + typedef ipv4-address { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '(%.+)?'; + } + description + "The ipv4-address type represents an IPv4 address in + dotted-quad notation. The IPv4 address may include a zone + index, separated by a % sign. If a system uses zone names + that are not represented in UTF-8, then an implementation + needs to use some mechanism to transform the local name + into UTF-8. The definition of such a mechanism is outside + the scope of this document. + + The zone index is used to disambiguate identical address + values. For link-local addresses, the zone index will + typically be the interface index number or the name of an + interface. If the zone index is not present, the default + zone of the device will be used. + + The canonical format for the zone index is the numerical + format"; + } + + typedef ipv6-address { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(%.+)?'; + } + description + "The ipv6-address type represents an IPv6 address in full, + mixed, shortened, and shortened-mixed notation. The IPv6 + address may include a zone index, separated by a % sign. + If a system uses zone names that are not represented in + UTF-8, then an implementation needs to use some mechanism + to transform the local name into UTF-8. The definition of + such a mechanism is outside the scope of this document. + + The zone index is used to disambiguate identical address + values. For link-local addresses, the zone index will + typically be the interface index number or the name of an + interface. If the zone index is not present, the default + zone of the device will be used. + + The canonical format of IPv6 addresses uses the textual + representation defined in Section 4 of RFC 5952. The + canonical format for the zone index is the numerical + format as described in Section 11.2 of RFC 4007."; + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-no-zone { + type union { + type ipv4-address-no-zone; + type ipv6-address-no-zone; + } + description + "The ip-address-no-zone type represents an IP address and is + IP version neutral. The format of the textual representation + implies the IP version. This type does not support scoped + addresses since it does not allow zone identifiers in the + address format."; + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + + typedef ipv4-address-no-zone { + type ipv4-address { + pattern '[0-9\.]*'; + } + description + "An IPv4 address without a zone index. This type, derived + from the type ipv4-address, may be used in situations where + the zone is known from the context and no zone index is + needed."; + } + + typedef ipv6-address-no-zone { + type ipv6-address { + pattern '[0-9a-fA-F:\.]*'; + } + description + "An IPv6 address without a zone index. This type, derived + from the type ipv6-address, may be used in situations where + the zone is known from the context and no zone index is + needed."; + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-link-local { + type union { + type ipv4-address-link-local; + type ipv6-address-link-local; + } + description + "The ip-address-link-local type represents a link-local IP + address and is IP version neutral. The format of the textual + representation implies the IP version."; + } + + typedef ipv4-address-link-local { + type ipv4-address { + pattern '169\.254\..*'; + } + description + "A link-local IPv4 address in the prefix 169.254.0.0/16 as + defined in section 2.1. of RFC 3927."; + reference + "RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses"; + } + + typedef ipv6-address-link-local { + type ipv6-address { + pattern '[fF][eE]80:.*'; + } + description + "A link-local IPv6 address in the prefix fe80::/10 as defined + in section 2.5.6. of RFC 4291."; + reference + "RFC 4291: IP Version 6 Addressing Architecture"; + } + + typedef ip-prefix { + type union { + type ipv4-prefix; + type ipv6-prefix; + } + description + "The ip-prefix type represents an IP prefix and is IP + version neutral. The format of the textual representations + implies the IP version."; + } + + typedef ipv4-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; + } + description + "The ipv4-prefix type represents an IPv4 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 32. + + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + + The canonical format of an IPv4 prefix has all bits of + the IPv4 address set to zero that are not part of the + IPv4 prefix. + + The definition of ipv4-prefix does not require that bits, + which are not part of the prefix, are set to zero. However, + implementations have to return values in canonical format, + which requires non-prefix bits to be set to zero. This means + that 192.0.2.1/24 must be accepted as a valid value but it + will be converted into the canonical format 192.0.2.0/24."; + } + + typedef ipv6-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(/.+)'; + } + description + "The ipv6-prefix type represents an IPv6 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 128. + + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + + The canonical format of an IPv6 prefix has all bits of + the IPv6 address set to zero that are not part of the + IPv6 prefix. Furthermore, the IPv6 address is represented + as defined in Section 4 of RFC 5952. + + The definition of ipv6-prefix does not require that bits, + which are not part of the prefix, are set to zero. However, + implementations have to return values in canonical format, + which requires non-prefix bits to be set to zero. This means + that 2001:db8::1/64 must be accepted as a valid value but it + will be converted into the canonical format 2001:db8::/64."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-and-prefix { + type union { + type ipv4-address-and-prefix; + type ipv6-address-and-prefix; + } + description + "The ip-address-and-prefix type represents an IP address and + prefix and is IP version neutral. The format of the textual + representations implies the IP version."; + } + + typedef ipv4-address-and-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; + } + description + "The ipv4-address-and-prefix type represents an IPv4 + address and an associated IPv4 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 32. + + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0."; + } + + typedef ipv6-address-and-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(/.+)'; + } + description + "The ipv6-address-and-prefix type represents an IPv6 + address and an associated IPv6 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 128. + + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + + The canonical format requires that the IPv6 address is + represented as defined in Section 4 of RFC 5952."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + /*** collection of domain name and URI types ***/ + + typedef domain-name { + type string { + length "1..253"; + pattern + '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + + '|\.'; + } + description + "The domain-name type represents a DNS domain name. The + name SHOULD be fully qualified whenever possible. This + type does not support wildcards (see RFC 4592) or + classless in-addr.arpa delegations (see RFC 2317). + + Internet domain names are only loosely specified. Section + 3.5 of RFC 1034 recommends a syntax (modified in Section + 2.1 of RFC 1123). The pattern above is intended to allow + for current practice in domain name use, and some possible + future expansion. Note that Internet host names have a + stricter syntax (described in RFC 952) than the DNS + recommendations in RFCs 1034 and 1123. Schema nodes + representing host names should use the host-name type + instead of the domain-type. + + The encoding of DNS names in the DNS protocol is limited + to 255 characters. Since the encoding consists of labels + prefixed by a length bytes and there is a trailing NULL + byte, only 253 characters can appear in the textual dotted + notation. + + The description clause of schema nodes using the domain-name + type MUST describe when and how these names are resolved to + IP addresses. Note that the resolution of a domain-name value + may require to query multiple DNS records (e.g., A for IPv4 + and AAAA for IPv6). The order of the resolution process and + which DNS record takes precedence can either be defined + explicitly or may depend on the configuration of the + resolver. + + Domain-name values use the US-ASCII encoding. Their canonical + format uses lowercase US-ASCII characters. Internationalized + domain names MUST be A-labels as per RFC 5890."; + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1034: Domain Names - Concepts and Facilities + RFC 1123: Requirements for Internet Hosts -- Application + and Support + RFC 2317: Classless IN-ADDR.ARPA delegation + RFC 2782: A DNS RR for specifying the location of services + (DNS SRV) + RFC 4592: The Role of Wildcards in the Domain Name System + RFC 5890: Internationalized Domain Names in Applications + (IDNA): Definitions and Document Framework + RFC 9499: DNS Terminology"; + } + + typedef host-name { + type domain-name { + length "2..max"; + pattern '[a-zA-Z0-9\-\.]+'; + } + description + "The host-name type represents (fully qualified) host names. + Host names must be at least two characters long (see RFC 952) + and they are restricted to labels consisting of letters, digits + and hyphens separated by dots (see RFC1123 and RFC 952)."; + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1123: Requirements for Internet Hosts -- Application + and Support"; + } + + typedef host { + type union { + type ip-address; + type host-name; + } + description + "The host type represents either an IP address or a (fully + qualified) host name."; + } + + typedef uri { + type string { + pattern '[a-z][a-z0-9+.-]*:.*'; + } + description + "The uri type represents a Uniform Resource Identifier + (URI) as defined by the rule 'URI' in RFC 3986. + + Objects using the uri type MUST be in US-ASCII encoding, + and MUST be normalized as described by RFC 3986 Sections + 6.2.1, 6.2.2.1, and 6.2.2.2. Characters that can be + represented without using percent-encoding are represented + as characters (without percent-encoding), and all + case-insensitive characters are set to lowercase except + for hexadecimal digits within a percent-encoded triplet, + which are normalized to uppercase as described in + Section 6.2.2.1 of RFC 3986. + + The purpose of this normalization is to help provide + unique URIs. Note that this normalization is not + sufficient to provide uniqueness. Two URIs that are + textually distinct after this normalization may still be + equivalent. + + Objects using the uri type may restrict the schemes that + they permit. For example, 'data:' and 'urn:' schemes + might not be appropriate. + + A zero-length URI is not a valid URI. This can be used to + express 'URI absent' where required. + + In the value set and its semantics, this type is equivalent + to the Uri SMIv2 textual convention defined in RFC 5017."; + reference + "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax + RFC 3305: Report from the Joint W3C/IETF URI Planning Interest + Group: Uniform Resource Identifiers (URIs), URLs, + and Uniform Resource Names (URNs): Clarifications + and Recommendations + RFC 5017: MIB Textual Conventions for Uniform Resource + Identifiers (URIs)"; + } + + typedef email-address { + type string { + pattern '.+@.+'; + } + description + "The email-address type represents an internationalized + email address. + + The email address format is defined by the addr-spec + ABNF rule in RFC 5322 section 3.4.1. This format has + been extended by RFC 6532 to support internationalized + email addresses. Implementations MUST support the + internationalization extensions of RFC 6532. Support + of the obsolete obs-local-part, obs-domain, and + obs-qtext parts of RFC 5322 is not required. + + The domain part may use both A-labels and U-labels + (see RFC 5890). The canonical format of the domain part + uses lowercase characters and U-labels (RFC 5890) where + applicable."; + reference + "RFC 5322: Internet Message Format + RFC 5890: Internationalized Domain Names in Applications + (IDNA): Definitions and Document Framework + RFC 6531: SMTP Extension for Internationalized Email"; + } + +} \ No newline at end of file diff --git a/src/nbi/service/ietf_network/yang/ietf-layer1-types@2022-10-14.yang b/src/nbi/service/ietf_network/yang/ietf-layer1-types@2022-10-14.yang deleted file mode 100644 index 188336931..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-layer1-types@2022-10-14.yang +++ /dev/null @@ -1,1414 +0,0 @@ - module ietf-layer1-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-layer1-types"; - prefix "l1-types"; - - import ietf-routing-types { - prefix rt-types; - reference - "RFC 8294: Common YANG Data Types for the Routing Area"; - } - - organization - "IETF CCAMP Working Group"; - contact - "WG Web: - WG List: - - Editor: Haomian Zheng - - - Editor: Italo Busi - "; - - description - "This module defines Layer 1 types. The model fully conforms - to the Network Management Datastore Architecture (NMDA). - - Copyright (c) 2022 IETF Trust and the persons - identified as authors of the code. All rights reserved. - - 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."; - - revision "2022-10-14" { - description - "Initial Version"; - reference - "RFC XXXX: A YANG Data Model for Layer 1 Types"; - // RFC Editor: replace XXXX with actual RFC number, update date - // information and remove this note - } - - /* - * Identities - */ - - identity tributary-slot-granularity { - description - "Tributary Slot Granularity (TSG)"; - reference - "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity tsg-1.25G { - base tributary-slot-granularity; - description - "1.25G tributary slot granularity"; - } - - identity tsg-2.5G { - base tributary-slot-granularity; - description - "2.5G tributary slot granularity"; - } - - identity tsg-5G { - base tributary-slot-granularity; - description - "5G tributary slot granularity"; - } - - identity odu-type { - description - "Base identity from which specific Optical Data Unit (ODU) - type is derived."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - - - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODU0 { - base odu-type; - description - "ODU0 type (1.24Gb/s)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODU1 { - base odu-type; - description - "ODU1 type (2.49Gb/s)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODU2 { - base odu-type; - description - "ODU2 type (10.03Gb/s)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODU2e { - base odu-type; - description - "ODU2e type (10.39Gb/s)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - - - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODU3 { - base odu-type; - description - "ODU3 type (40.31Gb/s)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODU4 { - base odu-type; - description - "ODU4 type (104.79Gb/s)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODUflex { - base odu-type; - description - "ODUflex type (flexible bit rate, not resizable). - - It could be used for any type of ODUflex, including - ODUflex(CBR), ODUflex(GFP), ODUflex(GFP,n,k), ODUflex(IMP,s), - ODUflex(IMP) and ODUflex(FlexE-aware)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ODUflex-resizable { - base odu-type; - description - "ODUflex protocol (flexible bit rate, resizable). - - - - - It could be used only for ODUflex(GFP,n,k)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity protocol { - description - "Base identity from which specific protocol is derived."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity Ethernet { - base protocol; - description - "Ethernet protocol."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity Fibre-Channel { - base protocol; - description - "Fibre-Channel (FC) protocol."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity SDH { - base protocol; - description - "SDH protocol."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity SONET { - base protocol; - description - "SONET protocol."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - - - - identity client-signal { - description - "Base identity from which specific Constant Bit Rate (CBR) - client signal is derived"; - } - - identity coding-func { - description - "Base identity from which specific coding function - is derived."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ETH-1Gb { - base client-signal; - description - "Client signal type of 1GbE"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ETH-10Gb-LAN { - base client-signal; - description - "Client signal type of ETH-10Gb-LAN (10.3 Gb/s)"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - IEEE 802.3-2018, Clause 49: IEEE Standard for Ethernet"; - } - - identity ETH-10Gb-WAN { - base client-signal; - description - "Client signal type of ETH-10Gb-WAN (9.95 Gb/s)"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - - - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - IEEE 802.3-2018, Clause 50: IEEE Standard for Ethernet"; - } - - identity ETH-40Gb { - base client-signal; - description - "Client signal type of 40GbE"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ETH-100Gb { - base client-signal; - description - "Client signal type of 100GbE"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity STM-1 { - base client-signal; - base coding-func; - description - "Client signal type of STM-1; - STM-1 G.707 (N=1) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity STM-4 { - base client-signal; - - - - - base coding-func; - description - "Client signal type of STM-4; - STM-4 G.707 (N=4) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity STM-16 { - base client-signal; - base coding-func; - description - "Client signal type of STM-16; - STM-16 G.707 (N=16) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity STM-64 { - base client-signal; - base coding-func; - description - "Client signal type of STM-64; - STM-64 G.707 (N=64) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity STM-256 { - base client-signal; - - - - - base coding-func; - description - "Client signal type of STM-256; - STM-256 G.707 (N=256) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity OC-3 { - base client-signal; - base coding-func; - description - "Client signal type of OC3; - OC-3 GR-253-CORE (N=3) coding function."; - reference - "ANSI T1.105-1995: Synchronous Optical Network (SONET) - Basic Description including Multiplex Structure, Rates, - and Formats - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity OC-12 { - base client-signal; - base coding-func; - description - "Client signal type of OC12; - OC-12 GR-253-CORE (N=12) coding function."; - reference - "ANSI T1.105-1995: Synchronous Optical Network (SONET) - Basic Description including Multiplex Structure, Rates, - and Formats - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity OC-48 { - base client-signal; - base coding-func; - description - "Client signal type of OC48; - OC-48 GR-253-CORE (N=48) coding function."; - - - - - reference - "ANSI T1.105-1995: Synchronous Optical Network (SONET) - Basic Description including Multiplex Structure, Rates, - and Formats - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity OC-192 { - base client-signal; - base coding-func; - description - "Client signal type of OC192; - OC-192 GR-253-CORE (N=192) coding function."; - reference - "ANSI T1.105-1995: Synchronous Optical Network (SONET) - Basic Description including Multiplex Structure, Rates, - and Formats - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity OC-768 { - base client-signal; - base coding-func; - description - "Client signal type of OC768; - OC-768 GR-253-CORE (N=768) coding function."; - reference - "ANSI T1.105-1995: Synchronous Optical Network (SONET) - Basic Description including Multiplex Structure, Rates, - and Formats - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-100 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-100; - FC-100 FC-FS-2 (1.0625 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - - - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-200 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-200; - FC-200 FC-FS-2 (2.125 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-400 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-400; - FC-400 FC-FS-2 (4.250 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-800 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-800; - FC-800 FC-FS-2 (8.500 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - - - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-1200 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-1200; - FC-1200 FC-10GFC (10.51875 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-1600 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-1600; - FC-1600 FC-FS-3 (14.025 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FC-3200 { - base client-signal; - base coding-func; - description - "Client signal type of Fibre Channel FC-3200; - FC-3200 FC-FS-4 (28.05 Gb/s) coding function."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN) - - - - - MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FICON-4G { - base client-signal; - description - "Client signal type of Fibre Connection 4G"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity FICON-8G { - base client-signal; - description - "Client signal type of Fibre Connection 8G"; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks - - ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - - identity ETH-1000X { - base coding-func; - description - "1000BASE-X PCS clause 36 coding function."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ETH-10GW { - base coding-func; - description - "10GBASE-W (WAN PHY) PCS clause 49 and WIS clause 50 - coding function."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ETH-10GR { - base coding-func; - description - "10GBASE-R (LAN PHY) PCS clause 49 coding function."; - - - - - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ETH-40GR { - base coding-func; - description - "40GBASE-R PCS clause 82 coding function."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ETH-100GR { - base coding-func; - description - "100GBASE-R PCS clause 82 coding function."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity optical-interface-func { - description - "Base identity from which optical-interface-function - is derived."; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity SX-PMD-1000 { - base optical-interface-func; - description - "SX-PMD-clause-38 Optical Interface function for - 1000BASE-X PCS-36"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity LX-PMD-1000 { - base optical-interface-func; - description - "LX-PMD-clause-38 Optical Interface function for - 1000BASE-X PCS-36"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity LX10-PMD-1000 { - base optical-interface-func; - - - - - description - "LX10-PMD-clause-59 Optical Interface function for - 1000BASE-X PCS-36"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity BX10-PMD-1000 { - base optical-interface-func; - description - "BX10-PMD-clause-59 Optical Interface function for - 1000BASE-X PCS-36"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity LW-PMD-10G { - base optical-interface-func; - description - "LW-PMD-clause-52 Optical Interface function for - 10GBASE-W PCS-49-WIS-50"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity EW-PMD-10G { - base optical-interface-func; - description - "EW-PMD-clause-52 Optical Interface function for - 10GBASE-W PCS-49-WIS-50"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity LR-PMD-10G { - base optical-interface-func; - description - "LR-PMD-clause-52 Optical Interface function for - 10GBASE-R PCS-49"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ER-PMD-10G { - base optical-interface-func; - description - "ER-PMD-clause-52 Optical Interface function for - 10GBASE-R PCS-49"; - - - - - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity LR4-PMD-40G { - base optical-interface-func; - description - "LR4-PMD-clause-87 Optical Interface function for - 40GBASE-R PCS-82"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ER4-PMD-40G { - base optical-interface-func; - description - "ER4-PMD-clause-87 Optical Interface function for - 40GBASE-R PCS-82"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity FR-PMD-40G { - base optical-interface-func; - description - "FR-PMD-clause-89 Optical Interface function for - 40GBASE-R PCS-82"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity LR4-PMD-100G { - base optical-interface-func; - description - "LR4-PMD-clause-88 Optical Interface function for - 100GBASE-R PCS-82"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - identity ER4-PMD-100G { - base optical-interface-func; - description - "ER4-PMD-clause-88 Optical Interface function for - 100GBASE-R PCS-82"; - reference - "MEF63: Subscriber Layer 1 Service Attributes"; - } - - - - - /* - * Typedefs - */ - - typedef otn-tpn { - type uint16 { - range "1..4095"; - } - description - "Tributary Port Number (TPN) for OTN. "; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks."; - } - - typedef otn-ts { - type uint16 { - range "1..4095"; - } - description - "Tributary Slot (TS) for OTN."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of Evolving - G.709 Optical Transport Networks."; - } - - typedef otn-label-range-type { - type enumeration { - enum trib-slot { - description - "Defines a range of OTN tributary slots (TS)."; - } - enum trib-port { - description - "Defines a range of OTN tributary ports (TPN)."; - } - } - description - "Defines the type of OTN label range: TS or TPN. "; - } - - typedef gfp-k { - type enumeration { - enum 2 { - description - "The ODU2.ts rate (1,249,177.230 kbit/s) is used - to compute the rate of an ODUflex(GFP,n,2). "; - } - - - - - enum 3 { - description - "The ODU3.ts rate (1,254,470.354 kbit/s) is used - to compute the rate of an ODUflex(GFP,n,3). "; - } - enum 4 { - description - "The ODU4.ts rate (1,301,467.133 kbit/s) is used - to compute the rate of an ODUflex(GFP,n,4). "; - } - } - description - "The ODUk.ts used to compute the rate of an ODUflex(GFP,n,k)"; - reference - "ITU-T G.709 v6.0 (06/2020), Table 7-8 and L.7: Interfaces for - the Optical Transport Network (OTN)"; - } - - typedef flexe-client-rate { - type union { - type uint16; - type enumeration { - enum "10G" { - description - "Represents a 10G FlexE Client signal (s=2)"; - } - enum "40G" { - description - "Represents a 40G FlexE Client signal (s=8)"; - } - } - } - description - "The FlexE Client signal rate (s x 5,156,250.000 kbit/s) - used to compute the rate of an ODUflex(IMP, s). - Valid values for s are s=2 (10G), s=4 (40G) and - s=5 x n (n x 25G). - In the first two cases an enumeration value - (either 10G or 40G) is used, while in the latter case - the value of n is used"; - reference - "ITU-T G.709 v6.0 (06/2020), Table 7-2: Interfaces for the - Optical Transport Network (OTN)"; - } - - typedef odtu-flex-type { - type enumeration { - enum "2" { - - - - - description - "The ODTU2.ts ODTU type."; - } - enum "3" { - description - "The ODTU3.ts ODTU type."; - } - enum "4" { - description - "The ODTU4.ts ODTU type."; - } - enum "Cn" { - description - "The ODTUCn.ts ODTU type."; - } - } - description - "The type of Optical Data Tributary Unit (ODTU), - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by an ODUflex LSP, according to - the (19-1a) and (20-1a) formulas defined in G.709."; - reference - "ITU-T G.709 v6.0 (06/2020), Table 7-7, clause 19.6 and - clause 20.5: Interfaces for the Optical Transport - Network (OTN)"; - } - - typedef bandwidth-scientific-notation { - type string { - pattern - '0(\.0?)?([eE](\+)?0?)?|' - + '[1-9](\.[0-9]{0,6})?[eE](\+)?(9[0-6]|[1-8][0-9]|0?[0-9])?'; - } - units "bps"; - description - "Bandwidth values, expressed using the scientific notation - in bits per second. - - The encoding format is the external decimal-significant - character sequences specified in IEEE 754 and ISO/IEC C99 - for 32-bit decimal floating-point numbers: - (-1)**(S) * 10**(Exponent) * (Significant), - where Significant uses 7 digits. - - An implementation for this representation MAY use decimal32 - or binary32. The range of the Exponent is from -95 to +96 - for decimal32, and from -38 to +38 for binary32. - As a bandwidth value, the format is restricted to be - - - - - normalized, non-negative, and non-fraction: - n.dddddde{+}dd, N.DDDDDDE{+}DD, 0e0 or 0E0, - where 'd' and 'D' are decimal digits; 'n' and 'N' are - non-zero decimal digits; 'e' and 'E' indicate a power of ten. - Some examples are 0e0, 1e10, and 9.953e9."; - reference - "IEEE Std 754-2008: IEEE Standard for Floating-Point - Arithmetic. - ISO/IEC C99: Information technology - Programming - Languages - C."; - } - - /* - * Groupings - */ - - grouping otn-link-bandwidth { - description - "Bandwidth attributes for OTN links"; - container otn { - description - "Bandwidth attributes for OTN links"; - list odulist { - key "odu-type"; - description - "OTN bandwidth definition"; - leaf odu-type { - type identityref { - base odu-type; - } - description "ODU type"; - } - leaf number { - type uint16; - description "Number of ODUs"; - } - leaf ts-number { - when 'derived-from-or-self(../odu-type,"ODUflex") or - derived-from-or-self(../odu-type, - "ODUflex-resizable")' { - description - "Applicable when odu-type is ODUflex or - ODUflex-resizable"; - } - type uint16 { - range "1..4095"; - } - description - - - - - "The number of Tributary Slots (TS) that - could be used by all the ODUflex LSPs."; - } - } - } - } - - grouping otn-path-bandwidth { - description - "Bandwidth attributes for OTN paths."; - container otn { - description - "Bandwidth attributes for OTN paths."; - leaf odu-type { - type identityref { - base odu-type; - } - description "ODU type"; - } - choice oduflex-type { - when 'derived-from-or-self(./odu-type,"ODUflex") or - derived-from-or-self(./odu-type, - "ODUflex-resizable")' { - description - "Applicable when odu-type is ODUflex or - ODUflex-resizable"; - } - description - "Types of ODUflex used to compute the ODUflex - nominal bit rate."; - reference - "ITU-T G.709 v6.0 (06/2020), Table 7-2: Interfaces for the - Optical Transport Network (OTN)"; - case generic { - leaf nominal-bit-rate { - type union { - type l1-types:bandwidth-scientific-notation; - type rt-types:bandwidth-ieee-float32; - } - mandatory true; - description - "Nominal ODUflex bit rate."; - } - } - case cbr { - leaf client-type { - type identityref { - base client-signal; - - - - - } - mandatory true; - description - "The type of Constant Bit Rate (CBR) client signal - of an ODUflex(CBR)."; - } - } - case gfp-n-k { - leaf gfp-n { - type uint8 { - range "1..80"; - } - mandatory true; - description - "The value of n for an ODUflex(GFP,n,k)."; - reference - "ITU-T G.709 v6.0 (06/2020), Tables 7-8 and L.7: - Interfaces for the Optical Transport Network (OTN)"; - } - leaf gfp-k { - type gfp-k; - description - "The value of k for an ODUflex(GFP,n,k). - - If omitted, it is calculated from the value of gfp-n - as described in Table 7-8 of G.709"; - reference - "ITU-T G.709 v6.0 (06/2020), Tables 7-8 and L.7: - Interfaces for the Optical Transport Network (OTN)"; - } - } - case flexe-client { - leaf flexe-client { - type flexe-client-rate; - mandatory true; - description - "The rate of the FlexE-client for an ODUflex(IMP,s)."; - } - } - case flexe-aware { - leaf flexe-aware-n { - type uint16; - mandatory true; - description - "The rate of FlexE-aware client signal - for ODUflex(FlexE-aware)"; - } - } - - - - - case packet { - leaf opuflex-payload-rate { - type union { - type l1-types:bandwidth-scientific-notation; - type rt-types:bandwidth-ieee-float32; - } - mandatory true; - description - "Either the GFP-F encapsulated packet client nominal - bit rate for an ODUflex(GFP) or the 64b/66b encoded - packet client nominal bit rate for an ODUflex(IMP)."; - } - } - } - } - } - - grouping otn-max-path-bandwidth { - description - "Maximum bandwidth attributes for OTN paths."; - container otn { - description - "Maximum bandwidth attributes for OTN paths."; - leaf odu-type { - type identityref { - base odu-type; - } - description "ODU type"; - } - leaf max-ts-number { - when 'derived-from-or-self(../odu-type,"ODUflex") or - derived-from-or-self(../odu-type, - "ODUflex-resizable")' { - description - "Applicable when odu-type is ODUflex or - ODUflex-resizable"; - } - type uint16 { - range "1..4095"; - } - description - "The maximum number of Tributary Slots (TS) that could be - used by an ODUflex LSP."; - } - } - } - - grouping otn-label-range-info { - - - - - description - "Label range information for OTN. - - This grouping SHOULD be used together with the - otn-label-start-end and otn-label-step groupings to provide - OTN technology-specific label information to the models which - use the label-restriction-info grouping defined in the module - ietf-te-types."; - container otn-label-range { - description - "Label range information for OTN."; - leaf range-type { - type otn-label-range-type; - description "The type of range (e.g., TPN or TS) - to which the label range applies"; - } - leaf tsg { - type identityref { - base tributary-slot-granularity; - } - description - "Tributary slot granularity (TSG) to which the label range - applies. - - This leaf MUST be present when the range-type is TS. - - This leaf MAY be omitted when mapping an ODUk over an OTUk - Link. In this case the range-type is tpn, with only one - entry (ODUk), and the tpn range has only one value (1)."; - reference - "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - leaf-list odu-type-list { - type identityref { - base odu-type; - } - description - "List of ODU types to which the label range applies. - - An Empty odu-type-list means that the label range - applies to all the supported ODU types."; - } - leaf priority { - type uint8 { - range 0..7; - } - description - - - - - "Priority in Interface Switching Capability - Descriptor (ISCD)."; - reference - "RFC4203: OSPF Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS)"; - } - } - } - - grouping otn-label-start-end { - description - "The OTN label-start or label-end used to specify an OTN label - range. - - This grouping is dependent on the range-type defined in the - otn-label-range-info grouping. - - This grouping SHOULD be used together with the - otn-label-range-info and otn-label-step groupings to provide - OTN technology-specific label information to the models which - use the label-restriction-info grouping defined in the module - ietf-te-types."; - container otn { - description - "Label start or label end for OTN."; - choice range-type { - description - "OTN label range type, either TPN range or TS range"; - case trib-port { - leaf tpn { - when "../../../../otn-label-range/range-type = - 'trib-port'" { - description - "Valid only when range-type represented by - trib-port"; - } - type otn-tpn; - description - "Tributary Port Number (TPN)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of - Evolving G.709 Optical Transport Networks."; - } - } - case trib-slot { - leaf ts { - when "../../../../otn-label-range/range-type = - 'trib-slot'" { - - - - - description - "Valid only when range-type represented by - trib-slot"; - } - type otn-ts; - description - "Tributary Slot (TS) number."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of - Evolving G.709 Optical Transport Networks"; - } - } - } - } - } - - grouping otn-label-hop { - description "OTN Label"; - reference - "RFC7139, section 6: GMPLS Signaling Extensions for Control of - Evolving G.709 Optical Transport Networks"; - container otn { - description - "Label hop for OTN."; - leaf tpn { - type otn-tpn; - description - "Tributary Port Number (TPN)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of - Evolving G.709 Optical Transport Networks."; - } - leaf tsg { - type identityref { - base tributary-slot-granularity; - } - description "Tributary Slot Granularity (TSG)."; - reference - "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - leaf ts-list { - type string { - pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" - + "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; - } - description - "A list of available Tributary Slots (TS) ranging - - - - - between 1 and 4095. If multiple values or - ranges are given, they all MUST be disjoint - and MUST be in ascending order. - For example 1-20,25,50-1000."; - reference - "RFC 7139: GMPLS Signaling Extensions for Control - of Evolving G.709 Optical Transport Networks"; - } - } - } - - grouping otn-label-step { - description - "Label step for OTN. - - This grouping is dependent on the range-type defined in the - otn-label-range-info grouping. - - This grouping SHOULD be used together with the - otn-label-range-info and otn-label-start-end groupings to - provide OTN technology-specific label information to the - models which use the label-restriction-info grouping defined - in the module ietf-te-types."; - container otn { - description - "Label step for OTN"; - choice range-type { - description - "OTN label range type, either TPN range or TS range"; - case trib-port { - leaf tpn { - when "../../../otn-label-range/range-type = - 'trib-port'" { - description - "Valid only when range-type represented by - trib-port"; - } - type otn-tpn; - description - "Label step which represents possible increments for - Tributary Port Number (TPN)."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of - Evolving G.709 Optical Transport Networks."; - } - } - case trib-slot { - leaf ts { - - - - - when "../../../otn-label-range/range-type = - 'trib-slot'" { - description - "Valid only when range-type represented by - trib-slot"; - } - type otn-ts; - description - "Label step which represents possible increments for - Tributary Slot (TS) number."; - reference - "RFC7139: GMPLS Signaling Extensions for Control of - Evolving G.709 Optical Transport Networks."; - } - } - } - } - } - } diff --git a/src/nbi/service/ietf_network/yang/ietf-layer1-types@2024-02-22.yang b/src/nbi/service/ietf_network/yang/ietf-layer1-types@2024-02-22.yang new file mode 100644 index 000000000..5269ea60a --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-layer1-types@2024-02-22.yang @@ -0,0 +1,1361 @@ +module ietf-layer1-types { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-layer1-types"; + prefix "l1-types"; + + import ietf-routing-types { + prefix rt-types; + reference + "RFC 8294: Common YANG Data Types for the Routing Area"; + } + + organization + "IETF CCAMP Working Group"; + contact + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Italo Busi + "; + + description + "This module defines Layer 1 YANG types. The model fully conforms + to the Network Management Datastore Architecture (NMDA). + + 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."; + + revision "2024-02-22" { + description + "Initial Version"; + reference + "RFC XXXX: A YANG Data Model for Layer 1 Types"; + // RFC Editor: replace RFC XXXX with actual RFC number, + // update date information and remove this note. + } + + /* + * Identities + */ + + identity tributary-slot-granularity { + description + "Tributary Slot Granularity (TSG)."; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity tsg-1.25G { + base tributary-slot-granularity; + description + "1.25G tributary slot granularity."; + } + + identity tsg-2.5G { + base tributary-slot-granularity; + description + "2.5G tributary slot granularity."; + } + + identity tsg-5G { + base tributary-slot-granularity; + description + "5G tributary slot granularity."; + } + + identity odu-type { + description + "Base identity from which specific Optical Data Unit (ODU) + type is derived."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODU0 { + base odu-type; + description + "ODU0 type (1.24Gb/s)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODU1 { + base odu-type; + description + "ODU1 type (2.49Gb/s)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODU2 { + base odu-type; + description + "ODU2 type (10.03Gb/s)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODU2e { + base odu-type; + description + "ODU2e type (10.39Gb/s)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODU3 { + base odu-type; + description + "ODU3 type (40.31Gb/s)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODU4 { + base odu-type; + description + "ODU4 type (104.79Gb/s)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ODUflex { + base odu-type; + description + "ODUflex type (flexible bit rate, not resizable). + + It could be used for any type of ODUflex, including + ODUflex(CBR), ODUflex(GFP), ODUflex(GFP,n,k), ODUflex(IMP,s), + ODUflex(IMP) and ODUflex(FlexE-aware)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + identity ODUflex-resizable { + base odu-type; + description + "ODUflex protocol (flexible bit rate, resizable). + + It could be used only for ODUflex(GFP,n,k)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity protocol { + description + "Base identity from which specific protocol is derived."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity Ethernet { + base protocol; + description + "Ethernet protocol."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity Fibre-Channel { + base protocol; + description + "Fibre-Channel (FC) protocol."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity SDH { + base protocol; + description + "SDH protocol."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity SONET { + base protocol; + description + "SONET protocol."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity client-signal { + description + "Base identity from which specific Constant Bit Rate (CBR) + client signal is derived"; + } + + identity coding-func { + description + "Base identity from which specific coding function + is derived."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ETH-1Gb { + base client-signal; + description + "Client signal type of 1GbE."; + reference + "IEEE 802.3-2018, Clause 36: IEEE Standard for Ethernet + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ETH-10Gb-LAN { + base client-signal; + description + "Client signal type of ETH-10Gb-LAN (10.3 Gb/s)."; + reference + "IEEE 802.3-2018, Clause 49: IEEE Standard for Ethernet + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ETH-10Gb-WAN { + base client-signal; + description + "Client signal type of ETH-10Gb-WAN (9.95 Gb/s)."; + reference + "IEEE 802.3-2018, Clause 50: IEEE Standard for Ethernet + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ETH-40Gb { + base client-signal; + description + "Client signal type of 40GbE."; + reference + "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity ETH-100Gb { + base client-signal; + description + "Client signal type of 100GbE."; + reference + "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + + identity STM-1 { + base client-signal; + base coding-func; + description + "Client signal type of STM-1; + STM-1 G.707 (N=1) coding function."; + reference + "ITU-T G.707 v7.0 (01/2007): Network node interface for the + synchronous digital hierarchy (SDH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity STM-4 { + base client-signal; + base coding-func; + description + "Client signal type of STM-4; + STM-4 G.707 (N=4) coding function."; + reference + "ITU-T G.707 v7.0 (01/2007): Network node interface for the + synchronous digital hierarchy (SDH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity STM-16 { + base client-signal; + base coding-func; + description + "Client signal type of STM-16; + STM-16 G.707 (N=16) coding function."; + reference + "ITU-T G.707 v7.0 (01/2007): Network node interface for the + synchronous digital hierarchy (SDH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity STM-64 { + base client-signal; + base coding-func; + description + "Client signal type of STM-64; + STM-64 G.707 (N=64) coding function."; + reference + "ITU-T G.707 v7.0 (01/2007): Network node interface for the + synchronous digital hierarchy (SDH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity STM-256 { + base client-signal; + base coding-func; + description + "Client signal type of STM-256; + STM-256 G.707 (N=256) coding function."; + reference + "ITU-T G.707 v7.0 (01/2007): Network node interface for the + synchronous digital hierarchy (SDH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity OC-3 { + base client-signal; + base coding-func; + description + "Client signal type of OC3; + OC-3 GR-253-CORE (N=3) coding function."; + reference + "ANSI T1.105-2001: Synchronous Optical Network (SONET) + Basic Description including Multiplex Structure, Rates, + and Formats + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity OC-12 { + base client-signal; + base coding-func; + description + "Client signal type of OC12; + OC-12 GR-253-CORE (N=12) coding function."; + reference + "ANSI T1.105-2001: Synchronous Optical Network (SONET) + Basic Description including Multiplex Structure, Rates, + and Formats + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity OC-48 { + base client-signal; + base coding-func; + description + "Client signal type of OC48; + OC-48 GR-253-CORE (N=48) coding function."; + reference + "ANSI T1.105-2001: Synchronous Optical Network (SONET) + Basic Description including Multiplex Structure, Rates, + and Formats + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity OC-192 { + base client-signal; + base coding-func; + description + "Client signal type of OC192; + OC-192 GR-253-CORE (N=192) coding function."; + reference + "ANSI T1.105-2001: Synchronous Optical Network (SONET) + Basic Description including Multiplex Structure, Rates, + and Formats + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity OC-768 { + base client-signal; + base coding-func; + description + "Client signal type of OC768; + OC-768 GR-253-CORE (N=768) coding function."; + reference + "ANSI T1.105-2001: Synchronous Optical Network (SONET) + Basic Description including Multiplex Structure, Rates, + and Formats + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-100 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-100; + FC-100 FC-FS-2 (1.0625 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-200 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-200; + FC-200 FC-FS-2 (2.125 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-400 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-400; + FC-400 FC-FS-2 (4.250 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-800 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-800; + FC-800 FC-FS-2 (8.500 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-1200 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-1200; + FC-1200 FC-10GFC (10.51875 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-1600 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-1600; + FC-1600 FC-FS-3 (14.025 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FC-3200 { + base client-signal; + base coding-func; + description + "Client signal type of Fibre Channel FC-3200; + FC-3200 FC-FS-4 (28.05 Gb/s) coding function."; + reference + "ANSI INCITS 230-1994 R1999): Information Technology - + Fibre Channel - Physical and Signaling Interface (FC-PH) + + RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks + + ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN) + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ETH-1000X { + base coding-func; + description + "1000BASE-X PCS clause 36 coding function."; + reference + "IEEE 802.3-2018, Clause 36: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ETH-10GW { + base coding-func; + description + "IEEE 802.3-2018, Clause 50: IEEE Standard for Ethernet + + 10GBASE-W (WAN PHY) PCS clause 49 and WIS clause 50 + coding function."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ETH-10GR { + base coding-func; + description + "10GBASE-R (LAN PHY) PCS clause 49 coding function."; + reference + "IEEE 802.3-2018, Clause 49: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ETH-40GR { + base coding-func; + description + "40GBASE-R PCS clause 82 coding function."; + reference + "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ETH-100GR { + base coding-func; + description + "100GBASE-R PCS clause 82 coding function."; + reference + "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity optical-interface-func { + description + "Base identity from which optical-interface-function + is derived."; + reference + "MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity SX-PMD-1000 { + base optical-interface-func; + description + "SX-PMD-clause-38 Optical Interface function for + 1000BASE-X PCS-36."; + reference + "IEEE 802.3-2018, Clause 38: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity LX-PMD-1000 { + base optical-interface-func; + description + "LX-PMD-clause-38 Optical Interface function for + 1000BASE-X PCS-36."; + reference + "IEEE 802.3-2018, Clause 38: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity LX10-PMD-1000 { + base optical-interface-func; + description + "LX10-PMD-clause-59 Optical Interface function for + 1000BASE-X PCS-36."; + reference + "IEEE 802.3-2018, Clause 59: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity BX10-PMD-1000 { + base optical-interface-func; + description + "BX10-PMD-clause-59 Optical Interface function for + 1000BASE-X PCS-36."; + reference + "IEEE 802.3-2018, Clause 59: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity LW-PMD-10G { + base optical-interface-func; + description + "LW-PMD-clause-52 Optical Interface function for + 10GBASE-W PCS-49-WIS-50."; + reference + "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity EW-PMD-10G { + base optical-interface-func; + description + "EW-PMD-clause-52 Optical Interface function for + 10GBASE-W PCS-49-WIS-50."; + reference + "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity LR-PMD-10G { + base optical-interface-func; + description + "LR-PMD-clause-52 Optical Interface function for + 10GBASE-R PCS-49."; + reference + "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ER-PMD-10G { + base optical-interface-func; + description + "ER-PMD-clause-52 Optical Interface function for + 10GBASE-R PCS-49."; + reference + "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity LR4-PMD-40G { + base optical-interface-func; + description + "LR4-PMD-clause-87 Optical Interface function for + 40GBASE-R PCS-82."; + reference + "IEEE 802.3-2018, Clause 87: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity ER4-PMD-40G { + base optical-interface-func; + description + "ER4-PMD-clause-87 Optical Interface function for + 40GBASE-R PCS-82."; + reference + "IEEE 802.3-2018, Clause 87: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity FR-PMD-40G { + base optical-interface-func; + description + "FR-PMD-clause-89 Optical Interface function for + 40GBASE-R PCS-82."; + reference + "IEEE 802.3-2018, Clause 89: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + identity LR4-PMD-100G { + base optical-interface-func; + description + "LR4-PMD-clause-88 Optical Interface function for + 100GBASE-R PCS-82."; + reference + "IEEE 802.3-2018, Clause 88: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + identity ER4-PMD-100G { + base optical-interface-func; + description + "ER4-PMD-clause-88 Optical Interface function for + 100GBASE-R PCS-82."; + reference + "IEEE 802.3-2018, Clause 88: IEEE Standard for Ethernet + + MEF63: Subscriber Layer 1 Service Attributes"; + } + + /* + * Typedefs + */ + + typedef otn-tpn { + type uint16 { + range "1..4095"; + } + description + "Tributary Port Number (TPN) for OTN."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks."; + } + + typedef otn-ts { + type uint16 { + range "1..4095"; + } + description + "Tributary Slot (TS) for OTN."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of Evolving + G.709 Optical Transport Networks."; + } + + typedef otn-label-range-type { + type enumeration { + enum trib-slot { + description + "Defines a range of OTN tributary slots (TS)."; + } + enum trib-port { + description + "Defines a range of OTN tributary ports (TPN)."; + } + } + description + "Defines the type of OTN label range: TS or TPN."; + } + + typedef gfp-k { + type enumeration { + enum 2 { + description + "The ODU2.ts rate (1,249,177.230 kbit/s) is used + to compute the rate of an ODUflex(GFP,n,2)."; + } + enum 3 { + description + "The ODU3.ts rate (1,254,470.354 kbit/s) is used + to compute the rate of an ODUflex(GFP,n,3)."; + } + enum 4 { + description + "The ODU4.ts rate (1,301,467.133 kbit/s) is used + to compute the rate of an ODUflex(GFP,n,4)."; + } + } + description + "The ODUk.ts used to compute the rate of an ODUflex(GFP,n,k)."; + reference + "ITU-T G.709 v6.0 (06/2020), Table 7-8 and L.7: Interfaces for + the Optical Transport Network (OTN)"; + } + + typedef flexe-client-rate { + type union { + type uint16; + type enumeration { + enum "10G" { + description + "Represents a 10G FlexE Client signal (s=2)."; + } + enum "40G" { + description + "Represents a 40G FlexE Client signal (s=8)."; + } + } + } + description + "The FlexE Client signal rate (s x 5,156,250.000 kbit/s) + used to compute the rate of an ODUflex(IMP, s). + + Valid values for s are s=2 (10G), s=4 (40G) and + s=5 x n (n x 25G). + + In the first two cases an enumeration value + (either 10G or 40G) is used, while in the latter case + the value of n is used."; + reference + "ITU-T G.709 v6.0 (06/2020), Table 7-2: Interfaces for the + Optical Transport Network (OTN)"; + } + + typedef odtu-flex-type { + type enumeration { + enum "2" { + description + "The ODTU2.ts ODTU type."; + } + enum "3" { + description + "The ODTU3.ts ODTU type."; + } + enum "4" { + description + "The ODTU4.ts ODTU type."; + } + enum "Cn" { + description + "The ODTUCn.ts ODTU type."; + } + } + description + "The type of Optical Data Tributary Unit (ODTU), + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by an ODUflex LSP, according to + the (19-1a) and (20-1a) formulas defined in G.709."; + reference + "ITU-T G.709 v6.0 (06/2020), Table 7-7, clause 19.6 and + clause 20.5: Interfaces for the Optical Transport + Network (OTN)"; + } + + typedef bandwidth-scientific-notation { + type string { + pattern + '0(\.0?)?([eE](\+)?0?)?|' + + '[1-9](\.[0-9]{0,6})?[eE](\+)?(9[0-6]|[1-8][0-9]|0?[0-9])?'; + } + units "bps"; + description + "Bandwidth values, expressed using the scientific notation + in bits per second. + + The encoding format is the external decimal-significant + character sequences specified in IEEE 754 and ISO/IEC 9899:1999 + for 32-bit decimal floating-point numbers: + (-1)**(S) * 10**(Exponent) * (Significant), + where Significant uses 7 digits. + + An implementation for this representation MAY use decimal32 + or binary32. The range of the Exponent is from -95 to +96 + for decimal32, and from -38 to +38 for binary32. + As a bandwidth value, the format is restricted to be + normalized, non-negative, and non-fraction: + n.dddddde{+}dd, N.DDDDDDE{+}DD, 0e0 or 0E0, + where 'd' and 'D' are decimal digits; 'n' and 'N' are + non-zero decimal digits; 'e' and 'E' indicate a power of ten. + Some examples are 0e0, 1e10, and 9.953e9."; + reference + "IEEE Std 754-2001: IEEE Standard for Floating-Point + Arithmetic + + ISO/IEC 9899:1999: Information technology - Programming + Languages - C"; + } + + /* + * Groupings + */ + + grouping otn-link-bandwidth { + description + "Bandwidth attributes for OTN links."; + container otn-bandwidth { + description + "Bandwidth attributes for OTN links."; + list odulist { + key "odu-type"; + description + "OTN bandwidth definition"; + leaf odu-type { + type identityref { + base odu-type; + } + description "ODU type"; + } + leaf number { + type uint16; + description "Number of ODUs."; + } + leaf ts-number { + when 'derived-from-or-self(../odu-type,"ODUflex") or + derived-from-or-self(../odu-type, + "ODUflex-resizable")' { + description + "Applicable when odu-type is ODUflex or + ODUflex-resizable."; + } + type uint16 { + range "1..4095"; + } + description + "The number of Tributary Slots (TS) that + could be used by all the ODUflex LSPs."; + } + } + } + } + + grouping otn-path-bandwidth { + description + "Bandwidth attributes for OTN paths."; + container otn-bandwidth { + description + "Bandwidth attributes for OTN paths."; + leaf odu-type { + type identityref { + base odu-type; + } + description "ODU type"; + } + choice oduflex-type { + when 'derived-from-or-self(./odu-type,"ODUflex") or + derived-from-or-self(./odu-type, + "ODUflex-resizable")' { + description + "Applicable when odu-type is ODUflex or + ODUflex-resizable."; + } + description + "Types of ODUflex used to compute the ODUflex + nominal bit rate."; + reference + "ITU-T G.709 v6.0 (06/2020), Table 7-2: Interfaces for the + Optical Transport Network (OTN)"; + case generic { + leaf nominal-bit-rate { + type union { + type l1-types:bandwidth-scientific-notation; + type rt-types:bandwidth-ieee-float32; + } + mandatory true; + description + "Nominal ODUflex bit rate."; + } + } + case cbr { + leaf client-type { + type identityref { + base client-signal; + } + mandatory true; + description + "The type of Constant Bit Rate (CBR) client signal + of an ODUflex(CBR)."; + } + } + case gfp-n-k { + leaf gfp-n { + type uint8 { + range "1..80"; + } + mandatory true; + description + "The value of n for an ODUflex(GFP,n,k)."; + reference + "ITU-T G.709 v6.0 (06/2020), Tables 7-8 and L.7: + Interfaces for the Optical Transport Network (OTN)"; + } + leaf gfp-k { + type gfp-k; + description + "The value of k for an ODUflex(GFP,n,k). + + If omitted, it is calculated from the value of gfp-n + as described in Table 7-8 of G.709."; + reference + "ITU-T G.709 v6.0 (06/2020), Tables 7-8 and L.7: + Interfaces for the Optical Transport Network (OTN)"; + } + } + case flexe-client { + leaf flexe-client { + type flexe-client-rate; + mandatory true; + description + "The rate of the FlexE-client for an ODUflex(IMP,s)."; + } + } + case flexe-aware { + leaf flexe-aware-n { + type uint16; + mandatory true; + description + "The rate of FlexE-aware client signal + for ODUflex(FlexE-aware)"; + } + } + case packet { + leaf opuflex-payload-rate { + type union { + type l1-types:bandwidth-scientific-notation; + type rt-types:bandwidth-ieee-float32; + } + mandatory true; + description + "Either the GFP-F encapsulated packet client nominal + bit rate for an ODUflex(GFP) or the 64b/66b encoded + packet client nominal bit rate for an ODUflex(IMP)."; + } + } + } + } + } + + grouping otn-max-path-bandwidth { + description + "Maximum bandwidth attributes for OTN paths."; + container otn-bandwidth { + description + "Maximum bandwidth attributes for OTN paths."; + leaf odu-type { + type identityref { + base odu-type; + } + description "ODU type."; + } + leaf max-ts-number { + when 'derived-from-or-self(../odu-type,"ODUflex") or + derived-from-or-self(../odu-type, + "ODUflex-resizable")' { + description + "Applicable when odu-type is ODUflex or + ODUflex-resizable."; + } + type uint16 { + range "1..4095"; + } + description + "The maximum number of Tributary Slots (TS) that could be + used by an ODUflex LSP."; + } + } + } + + grouping otn-label-range-info { + description + "Label range information for OTN. + + This grouping SHOULD be used together with the + otn-label-start-end and otn-label-step groupings to provide + OTN technology-specific label information to the models which + use the label-restriction-info grouping defined in the module + ietf-te-types."; + container otn-label-range { + description + "Label range information for OTN."; + leaf range-type { + type otn-label-range-type; + description "The type of range (e.g., TPN or TS) + to which the label range applies"; + } + leaf tsg { + type identityref { + base tributary-slot-granularity; + } + description + "Tributary slot granularity (TSG) to which the label range + applies. + + This leaf MUST be present when the range-type is TS. + + This leaf MAY be omitted when mapping an ODUk over an OTUk + Link. In this case the range-type is tpn, with only one + entry (ODUk), and the tpn range has only one value (1)."; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + leaf-list odu-type-list { + type identityref { + base odu-type; + } + description + "List of ODU types to which the label range applies. + + An Empty odu-type-list means that the label range + applies to all the supported ODU types."; + } + leaf priority { + type uint8 { + range 0..7; + } + description + "Priority in Interface Switching Capability + Descriptor (ISCD)."; + reference + "RFC4203: OSPF Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS)"; + } + } + } + + grouping otn-label-start-end { + description + "The OTN label-start or label-end used to specify an OTN label + range. + + This grouping is dependent on the range-type defined in the + otn-label-range-info grouping. + + This grouping SHOULD be used together with the + otn-label-range-info and otn-label-step groupings to provide + OTN technology-specific label information to the models which + use the label-restriction-info grouping defined in the module + ietf-te-types."; + container otn-label { + description + "Label start or label end for OTN. + + It is either a TPN or a TS depending on the OTN label range + type specified in the 'range-type' leaf defined in the + otn-label-range-info grouping."; + leaf tpn { + when "../../../../otn-label-range/range-type = + 'trib-port'" { + description + "Valid only when range-type represented by + trib-port."; + } + type otn-tpn; + description + "Tributary Port Number (TPN)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of + Evolving G.709 Optical Transport Networks"; + } + leaf ts { + when "../../../../otn-label-range/range-type = + 'trib-slot'" { + description + "Valid only when range-type represented by + trib-slot."; + } + type otn-ts; + description + "Tributary Slot (TS) number."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of + Evolving G.709 Optical Transport Networks"; + } + } + } + + grouping otn-label-hop { + description "OTN Label"; + reference + "RFC7139, section 6: GMPLS Signaling Extensions for Control of + Evolving G.709 Optical Transport Networks"; + container otn-label { + description + "Label hop for OTN."; + leaf tpn { + type otn-tpn; + description + "Tributary Port Number (TPN)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of + Evolving G.709 Optical Transport Networks"; + } + leaf tsg { + type identityref { + base tributary-slot-granularity; + } + description "Tributary Slot Granularity (TSG)."; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + leaf ts-list { + type string { + pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" + + "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; + } + description + "A list of available Tributary Slots (TS) ranging + between 1 and 4095. If multiple values or + ranges are given, they all MUST be disjoint + and MUST be in ascending order. + For example 1-20,25,50-1000."; + reference + "RFC 7139: GMPLS Signaling Extensions for Control + of Evolving G.709 Optical Transport Networks"; + } + } + } + + grouping otn-label-step { + description + "Label step for OTN. + + This grouping is dependent on the range-type defined in the + otn-label-range-info grouping. + + This grouping SHOULD be used together with the + otn-label-range-info and otn-label-start-end groupings to + provide OTN technology-specific label information to the + models which use the label-restriction-info grouping defined + in the module ietf-te-types."; + container otn-label-step { + description + "Label step for OTN. + + It is either a TPN or a TS depending on the OTN label range + type specified in the 'range-type' leaf defined in the + otn-label-range-info grouping."; + leaf tpn { + when "../../../otn-label-range/range-type = + 'trib-port'" { + description + "Valid only when range-type represented by + trib-port."; + } + type otn-tpn; + description + "Label step which represents possible increments for + Tributary Port Number (TPN)."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of + Evolving G.709 Optical Transport Networks"; + } + leaf ts { + when "../../../otn-label-range/range-type = + 'trib-slot'" { + description + "Valid only when range-type represented by + trib-slot"; + } + type otn-ts; + description + "Label step which represents possible increments for + Tributary Slot (TS) number."; + reference + "RFC7139: GMPLS Signaling Extensions for Control of + Evolving G.709 Optical Transport Networks"; + } + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-otn-topology@2023-07-06.yang b/src/nbi/service/ietf_network/yang/ietf-otn-topology@2023-07-06.yang deleted file mode 100644 index 587612e8e..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-otn-topology@2023-07-06.yang +++ /dev/null @@ -1,2405 +0,0 @@ - module ietf-otn-topology { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-otn-topology"; - prefix "otnt"; - - import ietf-network { - prefix "nw"; - reference "RFC 8345: A YANG Data Model for Network Topologies"; - } - - import ietf-network-topology { - prefix "nt"; - reference "RFC 8345: A YANG Data Model for Network Topologies"; - } - - import ietf-te-topology { - prefix "tet"; - reference - "RFC 8795: YANG Data Model for Traffic Engineering - (TE) Topologies"; - } - - import ietf-layer1-types { - prefix "l1-types"; - reference - "I-D.ietf-ccamp-layer1-types: A YANG Data Model - for Layer 1 Types"; - } - - organization - "IETF CCAMP Working Group"; - contact - "WG Web: - WG List: - - Editor: Haomian Zheng - - - Editor: Italo Busi - - - Editor: Xufeng Liu - - - Editor: Sergio Belotti - - - - - - Editor: Oscar Gonzalez de Dios - "; - - description - "This module defines a protocol independent Layer 1/ODU topology - data model. The model fully conforms - to the Network Management Datastore Architecture (NMDA). - - Copyright (c) 2023 IETF Trust and the persons identified - as authors of the code. All rights reserved. - - 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."; - - revision 2023-07-06 { - description - "Initial Revision"; - reference - "RFC XXXX: A YANG Data Model for Optical Transport Network - Topology"; - // RFC Ed.: replace XXXX with actual RFC number, update date - // information and remove this note - } - - /* - * Groupings - */ - - grouping label-range-info { - description - "OTN technology-specific label range related information with - a presence container indicating that the label range is an - OTN technology-specific label range. - - This grouping SHOULD be used together with the - - - - - otn-label-start-end and otn-label-step groupings to provide - OTN technology-specific label information to the models which - use the label-restriction-info grouping defined in the module - ietf-te-types."; - uses l1-types:otn-label-range-info { - refine otn-label-range { - presence - "Indicates the label range is an OTN label range. - - This container MUST NOT be present if there are other - presence containers or attributes indicating another type - of label range."; - } - } - } - - /* - * Data nodes - */ - - augment "/nw:networks/nw:network/nw:network-types/" - + "tet:te-topology" { - container otn-topology { - presence "indicates a topology type of Optical Transport - Network (OTN)-electrical layer."; - description "OTN topology type"; - } - description "augment network types to include OTN newtork"; - } - - augment "/nw:networks/nw:network/nw:node/tet:te" - + "/tet:te-node-attributes" { - when "../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description "Augment only for OTN network."; - } - description "Augment TE node attributes."; - container otn-node { - presence "The TE node is an OTN node."; - description - "Introduce new TE node type for OTN node."; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes" { - when "../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - - - - - description "Augment only for OTN network."; - } - description "Augment link configuration"; - - container otn-link { - description - "Attributes of the OTN Link."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs set up - on this OTN Link."; - } - leaf tsg { - type identityref { - base l1-types:tributary-slot-granularity; - } - description "Tributary slot granularity."; - reference - "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical - Transport Network (OTN)"; - } - leaf distance { - type uint32; - description "distance in the unit of kilometers"; - } - } - container client-svc { - presence - "When present, indicates that the Link supports Costant - Bit Rate (CBR) client signals."; - description - "Attributes of the Link supporting CBR client signals."; - leaf-list supported-client-signal { - type identityref { - base l1-types:client-signal; - } - min-elements 1; - description - "List of client signal types supported by the Link."; - } - } - } - - augment "/nw:networks/nw:network/nw:node/nt:termination-point/" - + "tet:te" { - - - - - when "../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description "Augment only for OTN network"; - } - description "OTN TP attributes config in ODU topology."; - - container otn-ltp { - description - "Attributes of the OTN Link Termination Point (LTP)."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs set up - on this OTN Link Termination Point (LTP)."; - } - } - container client-svc { - presence - "When present, indicates that the Link Termination Point - (LTP) supports Costant Bit Rate (CBR) client signals."; - description - "OTN LTP Service attributes."; - leaf-list supported-client-signal { - type identityref { - base l1-types:client-signal; - } - description - "List of client signal types supported by the LTP."; - } - } - } - - /* - * Augment TE bandwidth - */ - - augment "/nw:networks/nw:network/nw:node/nt:termination-point/" - + "tet:te/" - + "tet:interface-switching-capability/tet:max-lsp-bandwidth/" - + "tet:te-bandwidth/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - - - - - description - "Augment maximum LSP TE bandwidth for the link termination - point (LTP)."; - case otn { - uses l1-types:otn-max-path-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link Termination - Point (LTP) is used to compute the number of Tributary - Slots (TS) required by the ODUflex LSPs set up on this - OTN LTP."; - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:path-constraints/tet:te-bandwidth/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE bandwidth path constraints of the TE node - connectivity matrices."; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - set up along the underlay paths of these OTN - connectivity matrices."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - - - - - + "tet:path-constraints/tet:te-bandwidth/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE bandwidth path constraints of the - connectivity matrix entry."; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - set up along the underlay path of this OTN - connectivity matrix entry."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:path-constraints/tet:te-bandwidth/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE bandwidth path constraints of the TE node - connectivity matrices information source."; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - - - - - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - set up along the underlay paths of these OTN - connectivity matrices."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:path-constraints/tet:te-bandwidth/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE bandwidth path constraints of the - connectivity matrix entry information source"; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - set up along the underlay path of this OTN - connectivity matrix entry."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:client-layer-adaptation/tet:switching-capability/" - + "tet:te-bandwidth/tet:technology" { - - - - - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment client TE bandwidth of the tunnel termination point - (TTP)"; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - terminated on this OTN Tunnel Termination Point - (TTP)."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/tet:path-constraints/" - + "tet:te-bandwidth/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE bandwidth path constraints for the TTP - Local Link Connectivities."; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - - - - - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - set up along the underlay paths of these OTN Local - Link Connectivities."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/tet:path-constraints/" - + "tet:te-bandwidth/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE bandwidth path constraints for the TTP - Local Link Connectivity entry."; - case otn { - uses l1-types:otn-link-bandwidth { - augment otn { - description - "Augment OTN link bandwidth information."; - leaf odtu-flex-type { - type l1-types:odtu-flex-type; - description - "The type of Optical Data Tributary Unit (ODTU) - whose nominal bitrate is used to compute the number of - Tributary Slots (TS) required by the ODUflex LSPs - set up along the underlay path of this OTN Local - Link Connectivyt entry."; - } - } - } - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:interface-switching-capability/tet:max-lsp-bandwidth/" - - - - - + "tet:te-bandwidth/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment maximum LSP TE bandwidth for the TE link."; - case otn { - uses l1-types:otn-max-path-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:max-link-bandwidth/" - + "tet:te-bandwidth" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment maximum TE bandwidth for the TE link"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:max-resv-link-bandwidth/" - + "tet:te-bandwidth" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - - - - - } - description - "Augment maximum reservable TE bandwidth for the TE link"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:unreserved-bandwidth/" - + "tet:te-bandwidth" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment unreserved TE bandwidth for the TE Link"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:interface-switching-capability/" - + "tet:max-lsp-bandwidth/" - + "tet:te-bandwidth/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment maximum LSP TE bandwidth for the TE link - information source"; - case otn { - uses l1-types:otn-max-path-bandwidth { - description - - - - - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:max-link-bandwidth/" - + "tet:te-bandwidth" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment maximum TE bandwidth for the TE link - information source"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:max-resv-link-bandwidth/" - + "tet:te-bandwidth" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment maximum reservable TE bandwidth for the TE link - information-source"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - - - - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:unreserved-bandwidth/" - + "tet:te-bandwidth" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment unreserved TE bandwidth of the TE link - information source"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on this OTN Link."; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:interface-switching-capability/" - + "tet:max-lsp-bandwidth/" - + "tet:te-bandwidth/tet:technology" { - description - "Augment maximum LSP TE bandwidth of the TE link - template"; - case otn { - uses l1-types:otn-max-path-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:max-link-bandwidth/" - + "tet:te-bandwidth" { - description - "Augment maximum TE bandwidth the TE link template"; - uses l1-types:otn-link-bandwidth { - description - - - - - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:max-resv-link-bandwidth/" - + "tet:te-bandwidth" { - description - "Augment maximum reservable TE bandwidth for the TE link - template."; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:unreserved-bandwidth/" - + "tet:te-bandwidth" { - description - "Augment unreserved TE bandwidth the TE link template"; - uses l1-types:otn-link-bandwidth { - description - "The odtu-flex-type attribute of the OTN Link is used - to compute the number of Tributary Slots (TS) required - by the ODUflex LSPs set up on the OTN Link that uses this - Link Template."; - } - } - - /* - * Augment TE label range information - */ - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:label-restrictions/tet:label-restriction" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - - - - - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the TE node - connectivity matrices."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:from/" - + "tet:label-restrictions/tet:label-restriction" { - when "../../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the source LTP - of the connectivity matrix entry."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:to/" - + "tet:label-restrictions/tet:label-restriction" { - when "../../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the destination LTP - of the connectivity matrix entry."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/" - + "tet:connectivity-matrices/tet:label-restrictions/" - + "tet:label-restriction" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - - - - - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the TE node - connectivity matrices information source."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:from/tet:label-restrictions/tet:label-restriction" { - when "../../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the source LTP - of the connectivity matrix entry information source."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:to/tet:label-restrictions/tet:label-restriction" { - when "../../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the destination LTP - of the connectivity matrix entry information source."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:label-restrictions/tet:label-restriction" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - - - - - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the TTP - Local Link Connectivities."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:label-restrictions/tet:label-restriction" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range information for the TTP - Local Link Connectivity entry."; - uses label-range-info; - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "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" { - when "../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - - - - - } - description - "Augment TE label range information for the TE link - information source."; - uses label-range-info; - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction" { - description - "Augment TE label range information for the TE link template."; - uses label-range-info; - } - - /* - * Augment TE label - */ - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the TE node - connectivity matrices"; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:label-restrictions/" - + "tet:label-restriction/tet:label-end/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - - - - - } - description - "Augment TE label range end for the TE node - connectivity matrices"; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:label-restrictions/" - + "tet:label-restriction/tet:label-step/" - + "tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the TE node - connectivity matrices"; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:underlay/tet:primary-path/tet:path-element/" - + "tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path of the - TE node connectivity matrices"; - case otn { - uses l1-types:otn-label-hop; - } - } - - - - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:underlay/tet:backup-path/tet:path-element/" - + "tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path of the - TE node connectivity matrices"; - case otn { - 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/" - + "tet:optimization-metric/" - + "tet:explicit-route-exclude-objects/" - + "tet:route-object-exclude-object/" - + "tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects excluded - by the path computation of the TE node connectivity - matrices"; - case otn { - 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/" - + "tet:optimization-metric/" - - - - - + "tet:explicit-route-include-objects/" - + "tet:route-object-include-object/" - + "tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects included - by the path computation of the TE node connectivity - matrices"; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:path-properties/tet:path-route-objects/" - + "tet:path-route-object/tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the computed path route objects - of the TE node connectivity matrices"; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:from/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - - - - - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the source LTP - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:from/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the source LTP - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:from/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/" - + "tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - - - - - "Augment TE label range step for the source LTP - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:to/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the destination LTP - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:to/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the destination LTP - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - - - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:to/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/" - + "tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the destination LTP - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:underlay/tet:primary-path/tet:path-element/" - + "tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:underlay/tet:backup-path/tet:path-element/" - + "tet:type/tet:label/tet:label-hop/" - + "tet:te-label/tet:technology" { - - - - - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:optimizations/" - + "tet:algorithm/tet:metric/tet:optimization-metric/" - + "tet:explicit-route-exclude-objects/" - + "tet:route-object-exclude-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects excluded - by the path computation of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/tet:optimizations/" - + "tet:algorithm/tet:metric/tet:optimization-metric/" - + "tet:explicit-route-include-objects/" - + "tet:route-object-include-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - - - - - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects included - by the path computation of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:path-properties/tet:path-route-objects/" - + "tet:path-route-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the computed path route objects - of the connectivity matrix entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/" - + "tet:connectivity-matrices/tet:label-restrictions/" - + "tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the TE node connectivity - matrices information source."; - case otn { - - - - - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/" - + "tet:connectivity-matrices/tet:label-restrictions/" - + "tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the TE node connectivity - matrices information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/" - + "tet:connectivity-matrices/tet:label-restrictions/" - + "tet:label-restriction/" - + "tet:label-step/tet:technology" { - when "../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the TE node connectivity - matrices information source."; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - - - - - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path - of the TE node connectivity matrices of the information - source entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path - of the TE node connectivity matrices of the information - source entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-exclude-objects/" - + "tet:route-object-exclude-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - - - - - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects excluded - by the path computation of the TE node connectivity matrices - information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-include-objects/" - + "tet:route-object-include-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects included - by the path computation of the TE node connectivity matrices - information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:path-properties/tet:path-route-objects/" - + "tet:path-route-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the computed path route objects - - - - - of the TE node connectivity matrices information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:from/tet:label-restrictions/" - + "tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the source LTP - of the connectivity matrix entry information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:from/tet:label-restrictions/" - + "tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the source LTP - of the connectivity matrix entry information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - - - - - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:from/tet:label-restrictions/" - + "tet:label-restriction/" - + "tet:label-step/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the source LTP - of the connectivity matrix entry information source."; - case otn { - 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/" - + "tet:to/tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the destination LTP - of the connectivity matrix entry information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:to/tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - - - - - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the destination LTP - of the connectivity matrix entry information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:to/tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the destination LTP - of the connectivity matrix entry information source."; - case otn { - 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/" - + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path - of the connectivity matrix entry information source."; - case otn { - - - - - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path - of the connectivity matrix entry information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-exclude-objects/" - + "tet:route-object-exclude-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects excluded - by the path computation of the connectivity matrix entry - information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - - - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-include-objects/" - + "tet:route-object-include-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects included - by the path computation of the connectivity matrix entry - information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:information-source-entry/tet:connectivity-matrices/" - + "tet:connectivity-matrix/" - + "tet:path-properties/tet:path-route-objects/" - + "tet:path-route-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the computed path route objects - of the connectivity matrix entry information source."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - - - - - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/" - + "tet:te-label/tet:technology" { - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the TTP - Local Link Connectivities."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/" - + "tet:te-label/tet:technology"{ - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the TTP - Local Link Connectivities."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/" - + "tet:technology"{ - when "../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - - - - - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the TTP - Local Link Connectivities."; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path - of the TTP Local Link Connectivities."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path - of the TTP Local Link Connectivities."; - case otn { - - - - - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-exclude-objects/" - + "tet:route-object-exclude-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects excluded - by the path computation of the TTP Local Link - Connectivities."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-include-objects/" - + "tet:route-object-include-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects included - by the path computation of the TTP Local Link - Connectivities."; - case otn { - - - - - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:path-properties/tet:path-route-objects/" - + "tet:path-route-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the computed path route objects - of the TTP Local Link Connectivities."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the TTP - Local Link Connectivity entry."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - - - - - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - when "../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the TTP - Local Link Connectivity entry."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/tet:technology" { - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the TTP - Local Link Connectivity entry."; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - - - - - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path - of the TTP Local Link Connectivity entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path - of the TTP Local Link Connectivity entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-exclude-objects/" - + "tet:route-object-exclude-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - - - - - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects excluded - by the path computation of the TTP Local Link - Connectivity entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:optimizations/tet:algorithm/tet:metric/" - + "tet:optimization-metric/" - + "tet:explicit-route-include-objects/" - + "tet:route-object-include-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the explicit route objects included - by the path computation of the TTP Local Link - Connectivity entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:tunnel-termination-point/" - + "tet:local-link-connectivities/" - + "tet:local-link-connectivity/" - + "tet:path-properties/tet:path-route-objects/" - + "tet:path-route-object/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - - - - - OTN topology type."; - } - description - "Augment TE label hop for the computed path route objects - of the TTP Local Link Connectivity entry."; - case otn { - uses l1-types:otn-label-hop; - } - } - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay primary path - of the TE link."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - when "../../../../../../../../" - + "nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label hop for the underlay backup path - of the TE link."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - - - - - + "tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the TE link."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the TE link."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range step for the TE link."; - case otn { - uses l1-types:otn-label-step; - } - - - - - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range start for the TE link - information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - when "../../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - description - "Augment TE label range end for the TE link - information source."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:information-source-entry/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/tet:technology" { - when "../../../../../../nw:network-types/tet:te-topology/" - + "otnt:otn-topology" { - description - "Augmentation parameters apply only for networks with - OTN topology type."; - } - - - - - description - "Augment TE label range step for the TE link - information source."; - case otn { - uses l1-types:otn-label-step; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - description - "Augment TE label hop for the underlay primary path - of the TE link template."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" - + "tet:label/tet:label-hop/tet:te-label/tet:technology" { - description - "Augment TE label hop for the underlay backup path - of the TE link template."; - case otn { - uses l1-types:otn-label-hop; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-start/tet:te-label/tet:technology" { - description - "Augment TE label range start for the TE link template."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-end/tet:te-label/tet:technology" { - description - - - - - "Augment TE label range end for the TE link template."; - case otn { - uses l1-types:otn-label-start-end; - } - } - - augment "/nw:networks/tet:te/tet:templates/" - + "tet:link-template/tet:te-link-attributes/" - + "tet:label-restrictions/tet:label-restriction/" - + "tet:label-step/tet:technology" { - description - "Augment TE label range step for the TE link template."; - case otn { - uses l1-types:otn-label-step; - } - } - } diff --git a/src/nbi/service/ietf_network/yang/ietf-otn-topology@2024-06-21.yang b/src/nbi/service/ietf_network/yang/ietf-otn-topology@2024-06-21.yang new file mode 100644 index 000000000..90677e79e --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-otn-topology@2024-06-21.yang @@ -0,0 +1,2230 @@ +module ietf-otn-topology { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-otn-topology"; + prefix "otnt"; + + import ietf-network { + prefix "nw"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + import ietf-network-topology { + prefix "nt"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + import ietf-te-topology { + prefix "tet"; + reference + "RFC 8795: YANG Data Model for Traffic Engineering + (TE) Topologies"; + } + + import ietf-layer1-types { + prefix "l1-types"; + reference + "RFC YYYY: A YANG Data Model for Layer 1 Types"; + } + // RFC Editor: replace YYYY with actual RFC number assigned to + // [I-D.ietf-ccamp-layer1-types] and remove this note + + organization + "IETF CCAMP Working Group"; + contact + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Italo Busi + + + Editor: Xufeng Liu + + + Editor: Sergio Belotti + + + Editor: Oscar Gonzalez de Dios + "; + + description + "This module defines a protocol independent Layer 1/ODU topology + data model. The model fully conforms + to the Network Management Datastore Architecture (NMDA). + + 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."; + + revision 2024-06-21 { + description + "Initial Revision"; + reference + "RFC XXXX: A YANG Data Model for Optical Transport Network + Topology"; + } + // RFC Editor: replace XXXX with actual RFC number, update date + // information and remove this note + + /* + * Groupings + */ + + grouping label-range-info { + description + "OTN technology-specific label range related information with + a presence container indicating that the label range is an + OTN technology-specific label range. + + This grouping SHOULD be used together with the + otn-label-start-end and otn-label-step groupings to provide + OTN technology-specific label information to the models which + use the label-restriction-info grouping defined in the module + ietf-te-types."; + uses l1-types:otn-label-range-info { + refine otn-label-range { + presence + "Indicates the label range is an OTN label range. + + This container MUST NOT be present if there are other + presence containers or attributes indicating another type + of label range."; + } + } + } + + /* + * Data nodes + */ + + augment "/nw:networks/nw:network/nw:network-types/" + + "tet:te-topology" { + container otn-topology { + presence "indicates a topology type of Optical Transport + Network (OTN)-electrical layer."; + description "OTN topology type"; + } + description "augment network types to include OTN."; + } + + augment "/nw:networks/nw:network/nw:node/tet:te" + + "/tet:te-node-attributes" { + when "../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description "Augment only for OTN."; + } + description "Augment TE node attributes."; + container otn-node { + presence "The TE node is an OTN node."; + description + "Introduce new TE node type for OTN node."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes" { + when "../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description "Augment only for OTN."; + } + description "Augment link configuration"; + + container otn-link { + description + "Attributes of the OTN Link."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs set up + on this OTN Link."; + } + leaf tsg { + type identityref { + base l1-types:tributary-slot-granularity; + } + description "Tributary slot granularity."; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; + } + leaf distance { + type uint32; + description "distance in the unit of kilometers"; + } + } + container client-svc { + presence + "When present, indicates that the Link supports Constant + Bit Rate (CBR) client signals."; + description + "Attributes of the Link supporting CBR client signals."; + leaf-list supported-client-signal { + type identityref { + base l1-types:client-signal; + } + min-elements 1; + description + "List of client signal types supported by the Link."; + } + } + } + + augment "/nw:networks/nw:network/nw:node/nt:termination-point/" + + "tet:te" { + when "../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description "Augment only for OTN."; + } + description + "Augment link termination point (LTP) configuration."; + + container otn-link-tp { + description + "Attributes of the OTN Link Termination Point (LTP)."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs set up + on this OTN Link Termination Point (LTP)."; + } + } + container client-svc { + presence + "When present, indicates that the Link Termination Point + (LTP) supports Constant Bit Rate (CBR) client signals."; + description + "OTN LTP Service attributes."; + leaf-list supported-client-signal { + type identityref { + base l1-types:client-signal; + } + description + "List of client signal types supported by the LTP."; + } + } + } + + /* + * Augment TE bandwidth + */ + + augment "/nw:networks/nw:network/nw:node/nt:termination-point/" + + "tet:te/" + + "tet:interface-switching-capability/tet:max-lsp-bandwidth/" + + "tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum LSP TE bandwidth for the link termination + point (LTP)."; + case otn { + uses l1-types:otn-max-path-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link Termination + Point (LTP) is used to compute the number of Tributary + Slots (TS) required by the ODUflex LSPs set up on this + OTN LTP."; + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:path-constraints/tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE bandwidth path constraints of the TE node + connectivity matrices."; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + set up along the underlay paths of these OTN + connectivity matrices."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:path-constraints/tet:te-bandwidth/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE bandwidth path constraints of the + connectivity matrix entry."; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + set up along the underlay path of this OTN + connectivity matrix entry."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:path-constraints/tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE bandwidth path constraints of the TE node + connectivity matrices information source."; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + set up along the underlay paths of these OTN + connectivity matrices."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:path-constraints/tet:te-bandwidth/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE bandwidth path constraints of the + connectivity matrix entry information source"; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + set up along the underlay path of this OTN + connectivity matrix entry."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:client-layer-adaptation/tet:switching-capability/" + + "tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment client TE bandwidth of the tunnel termination point + (TTP)"; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + terminated on this OTN Tunnel Termination Point + (TTP)."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/tet:path-constraints/" + + "tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE bandwidth path constraints for the TTP + Local Link Connectivities."; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + set up along the underlay paths of these OTN Local + Link Connectivities."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/tet:path-constraints/" + + "tet:te-bandwidth/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE bandwidth path constraints for the TTP + Local Link Connectivity entry."; + case otn { + uses l1-types:otn-link-bandwidth { + augment otn-bandwidth { + description + "Augment OTN link bandwidth information."; + leaf odtu-flex-type { + type l1-types:odtu-flex-type; + description + "The type of Optical Data Tributary Unit (ODTU) + whose nominal bitrate is used to compute the number of + Tributary Slots (TS) required by the ODUflex LSPs + set up along the underlay path of this OTN Local + Link Connectivity entry."; + } + } + } + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:interface-switching-capability/tet:max-lsp-bandwidth/" + + "tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum LSP TE bandwidth for the TE link."; + case otn { + uses l1-types:otn-max-path-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:max-link-bandwidth/" + + "tet:te-bandwidth" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum TE bandwidth for the TE link"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:max-resv-link-bandwidth/" + + "tet:te-bandwidth" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum reservable TE bandwidth for the TE link"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:unreserved-bandwidth/" + + "tet:te-bandwidth" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment unreserved TE bandwidth for the TE Link"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:interface-switching-capability/" + + "tet:max-lsp-bandwidth/" + + "tet:te-bandwidth/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum LSP TE bandwidth for the TE link + information source"; + case otn { + uses l1-types:otn-max-path-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:max-link-bandwidth/" + + "tet:te-bandwidth" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum TE bandwidth for the TE link + information source"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:max-resv-link-bandwidth/" + + "tet:te-bandwidth" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment maximum reservable TE bandwidth for the TE link + information-source"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:unreserved-bandwidth/" + + "tet:te-bandwidth" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment unreserved TE bandwidth of the TE link + information source"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on this OTN Link."; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:interface-switching-capability/" + + "tet:max-lsp-bandwidth/" + + "tet:te-bandwidth/tet:technology" { + description + "Augment maximum LSP TE bandwidth of the TE link + template"; + case otn { + uses l1-types:otn-max-path-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; + } + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:max-link-bandwidth/" + + "tet:te-bandwidth" { + description + "Augment maximum TE bandwidth the TE link template"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:max-resv-link-bandwidth/" + + "tet:te-bandwidth" { + description + "Augment maximum reservable TE bandwidth for the TE link + template."; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:unreserved-bandwidth/" + + "tet:te-bandwidth" { + description + "Augment unreserved TE bandwidth the TE link template"; + uses l1-types:otn-link-bandwidth { + description + "The odtu-flex-type attribute of the OTN Link is used + to compute the number of Tributary Slots (TS) required + by the ODUflex LSPs set up on the OTN Link that uses this + Link Template."; + } + } + + /* + * Augment TE label range information + */ + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:label-restrictions/tet:label-restriction" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the TE node + connectivity matrices."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:from/" + + "tet:label-restrictions/tet:label-restriction" { + when "../../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the source LTP + of the connectivity matrix entry."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:to/" + + "tet:label-restrictions/tet:label-restriction" { + when "../../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the destination LTP + of the connectivity matrix entry."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/" + + "tet:connectivity-matrices/tet:label-restrictions/" + + "tet:label-restriction" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the TE node + connectivity matrices information source."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:from/tet:label-restrictions/tet:label-restriction" { + when "../../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the source LTP + of the connectivity matrix entry information source."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:to/tet:label-restrictions/tet:label-restriction" { + when "../../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the destination LTP + of the connectivity matrix entry information source."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:label-restrictions/tet:label-restriction" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the TTP + Local Link Connectivities."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:label-restrictions/tet:label-restriction" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the TTP + Local Link Connectivity entry."; + uses label-range-info; + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "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" { + when "../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range information for the TE link + information source."; + uses label-range-info; + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction" { + description + "Augment TE label range information for the TE link template."; + uses label-range-info; + } + + /* + * Augment TE label + */ + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the TE node + connectivity matrices"; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:label-restrictions/" + + "tet:label-restriction/tet:label-end/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the TE node + connectivity matrices"; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:label-restrictions/" + + "tet:label-restriction/tet:label-step/" + + "tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the TE node + connectivity matrices"; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:underlay/tet:primary-path/tet:path-element/" + + "tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path of the + TE node connectivity matrices"; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:underlay/tet:backup-path/tet:path-element/" + + "tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path of the + TE node connectivity matrices"; + case otn { + 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/" + + "tet:optimization-metric/" + + "tet:explicit-route-exclude-objects/" + + "tet:route-object-exclude-object/" + + "tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects excluded + by the path computation of the TE node connectivity + matrices"; + case otn { + 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/" + + "tet:optimization-metric/" + + "tet:explicit-route-include-objects/" + + "tet:route-object-include-object/" + + "tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects included + by the path computation of the TE node connectivity + matrices"; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:path-properties/tet:path-route-objects/" + + "tet:path-route-object/tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the computed path route objects + of the TE node connectivity matrices"; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:from/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the source LTP + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:from/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the source LTP + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:from/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/" + + "tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the source LTP + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:to/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the destination LTP + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:to/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the destination LTP + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:to/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/" + + "tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the destination LTP + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:underlay/tet:primary-path/tet:path-element/" + + "tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:underlay/tet:backup-path/tet:path-element/" + + "tet:type/tet:label/tet:label-hop/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:optimizations/" + + "tet:algorithm/tet:metric/tet:optimization-metric/" + + "tet:explicit-route-exclude-objects/" + + "tet:route-object-exclude-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects excluded + by the path computation of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:optimizations/" + + "tet:algorithm/tet:metric/tet:optimization-metric/" + + "tet:explicit-route-include-objects/" + + "tet:route-object-include-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects included + by the path computation of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:path-properties/tet:path-route-objects/" + + "tet:path-route-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the computed path route objects + of the connectivity matrix entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/" + + "tet:connectivity-matrices/tet:label-restrictions/" + + "tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the TE node connectivity + matrices information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/" + + "tet:connectivity-matrices/tet:label-restrictions/" + + "tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the TE node connectivity + matrices information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/" + + "tet:connectivity-matrices/tet:label-restrictions/" + + "tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the TE node connectivity + matrices information source."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path + of the TE node connectivity matrices of the information + source entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path + of the TE node connectivity matrices of the information + source entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-exclude-objects/" + + "tet:route-object-exclude-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects excluded + by the path computation of the TE node connectivity matrices + information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-include-objects/" + + "tet:route-object-include-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects included + by the path computation of the TE node connectivity matrices + information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:path-properties/tet:path-route-objects/" + + "tet:path-route-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the computed path route objects + of the TE node connectivity matrices information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:from/tet:label-restrictions/" + + "tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the source LTP + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:from/tet:label-restrictions/" + + "tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the source LTP + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:from/tet:label-restrictions/" + + "tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the source LTP + of the connectivity matrix entry information source."; + case otn { + 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/" + + "tet:to/tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the destination LTP + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:to/tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the destination LTP + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:to/tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the destination LTP + of the connectivity matrix entry information source."; + case otn { + 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/" + + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-exclude-objects/" + + "tet:route-object-exclude-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects excluded + by the path computation of the connectivity matrix entry + information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-include-objects/" + + "tet:route-object-include-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects included + by the path computation of the connectivity matrix entry + information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:path-properties/tet:path-route-objects/" + + "tet:path-route-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the computed path route objects + of the connectivity matrix entry information source."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/" + + "tet:te-label/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the TTP + Local Link Connectivities."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/" + + "tet:te-label/tet:technology"{ + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the TTP + Local Link Connectivities."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/" + + "tet:technology"{ + when "../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the TTP + Local Link Connectivities."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path + of the TTP Local Link Connectivities."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path + of the TTP Local Link Connectivities."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-exclude-objects/" + + "tet:route-object-exclude-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects excluded + by the path computation of the TTP Local Link + Connectivities."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-include-objects/" + + "tet:route-object-include-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects included + by the path computation of the TTP Local Link + Connectivities."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:path-properties/tet:path-route-objects/" + + "tet:path-route-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the computed path route objects + of the TTP Local Link Connectivities."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the TTP + Local Link Connectivity entry."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the TTP + Local Link Connectivity entry."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the TTP + Local Link Connectivity entry."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path + of the TTP Local Link Connectivity entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path + of the TTP Local Link Connectivity entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-exclude-objects/" + + "tet:route-object-exclude-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects excluded + by the path computation of the TTP Local Link + Connectivity entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:optimizations/tet:algorithm/tet:metric/" + + "tet:optimization-metric/" + + "tet:explicit-route-include-objects/" + + "tet:route-object-include-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the explicit route objects included + by the path computation of the TTP Local Link + Connectivity entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:path-properties/tet:path-route-objects/" + + "tet:path-route-object/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the computed path route objects + of the TTP Local Link Connectivity entry."; + case otn { + uses l1-types:otn-label-hop; + } + } + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay primary path + of the TE link."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label hop for the underlay backup path + of the TE link."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the TE link."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the TE link."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the TE link."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range start for the TE link + information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range end for the TE link + information source."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otnt:otn-topology" { + description + "Augmentation parameters apply only for networks with + OTN topology type."; + } + description + "Augment TE label range step for the TE link + information source."; + case otn { + uses l1-types:otn-label-step; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + description + "Augment TE label hop for the underlay primary path + of the TE link template."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:underlay/tet:backup-path/tet:path-element/tet:type/" + + "tet:label/tet:label-hop/tet:te-label/tet:technology" { + description + "Augment TE label hop for the underlay backup path + of the TE link template."; + case otn { + uses l1-types:otn-label-hop; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-start/tet:te-label/tet:technology" { + description + "Augment TE label range start for the TE link template."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-end/tet:te-label/tet:technology" { + description + "Augment TE label range end for the TE link template."; + case otn { + uses l1-types:otn-label-start-end; + } + } + + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + description + "Augment TE label range step for the TE link template."; + case otn { + uses l1-types:otn-label-step; + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang deleted file mode 100644 index 8e7d4aafa..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang +++ /dev/null @@ -1,475 +0,0 @@ -module ietf-te-packet-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; - prefix te-packet-types; - - /* Import TE generic types */ - - import ietf-te-types { - prefix te-types; - reference - "RFC 8776: Common YANG Data Types for Traffic Engineering"; - } - - organization - "IETF Traffic Engineering Architecture and Signaling (TEAS) - Working Group"; - contact - "WG Web: - WG List: - - Editor: Tarek Saad - - - Editor: Rakesh Gandhi - - - Editor: Vishnu Pavan Beeram - - - Editor: Xufeng Liu - - - Editor: Igor Bryskin - "; - description - "This YANG module contains a collection of generally useful YANG - data type definitions specific to MPLS TE. The model fully - conforms to the Network Management Datastore Architecture - (NMDA). - - Copyright (c) 2020 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC 8776; see the - RFC itself for full legal notices."; - - revision 2020-06-10 { - description - "Latest revision of TE MPLS types."; - reference - "RFC 8776: Common YANG Data Types for Traffic Engineering"; - } - - /** - * Typedefs - */ - - typedef te-bandwidth-requested-type { - type enumeration { - enum specified { - description - "Bandwidth is explicitly specified."; - } - enum auto { - description - "Bandwidth is automatically computed."; - } - } - description - "Enumerated type for specifying whether bandwidth is - explicitly specified or automatically computed."; - } - - typedef te-class-type { - type uint8; - description - "Diffserv-TE Class-Type. Defines a set of Traffic Trunks - crossing a link that is governed by a specific set of - bandwidth constraints. Class-Type is used for the purposes - of link bandwidth allocation, constraint-based routing, and - admission control."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; - } - - typedef bc-type { - type uint8 { - range "0..7"; - } - description - "Diffserv-TE bandwidth constraints as defined in RFC 4124."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; - } - - typedef bandwidth-kbps { - type uint64; - units "Kbps"; - description - "Bandwidth values, expressed in kilobits per second."; - } - - typedef bandwidth-mbps { - type uint64; - units "Mbps"; - description - "Bandwidth values, expressed in megabits per second."; - } - - typedef bandwidth-gbps { - type uint64; - units "Gbps"; - description - "Bandwidth values, expressed in gigabits per second."; - } - - identity backup-protection-type { - description - "Base identity for the backup protection type."; - } - - identity backup-protection-link { - base backup-protection-type; - description - "Backup provides link protection only."; - } - - identity backup-protection-node-link { - base backup-protection-type; - description - "Backup offers node (preferred) or link protection."; - } - - identity bc-model-type { - description - "Base identity for the Diffserv-TE Bandwidth Constraints - Model type."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; - } - - identity bc-model-rdm { - base bc-model-type; - description - "Russian Dolls Bandwidth Constraints Model type."; - reference - "RFC 4127: Russian Dolls Bandwidth Constraints Model for - Diffserv-aware MPLS Traffic Engineering"; - } - - identity bc-model-mam { - base bc-model-type; - description - "Maximum Allocation Bandwidth Constraints Model type."; - reference - "RFC 4125: Maximum Allocation Bandwidth Constraints Model for - Diffserv-aware MPLS Traffic Engineering"; - } - - identity bc-model-mar { - base bc-model-type; - description - "Maximum Allocation with Reservation Bandwidth Constraints - Model type."; - reference - "RFC 4126: Max Allocation with Reservation Bandwidth - Constraints Model for Diffserv-aware MPLS Traffic Engineering - & Performance Comparisons"; - } - - grouping performance-metrics-attributes-packet { - description - "Contains PM attributes."; - uses te-types:performance-metrics-attributes { - augment "performance-metrics-one-way" { - leaf one-way-min-delay { - type uint32 { - range "0..16777215"; - } - description - "One-way minimum delay or latency in microseconds."; - } - leaf one-way-min-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "One-way minimum delay or latency normality."; - } - leaf one-way-max-delay { - type uint32 { - range "0..16777215"; - } - description - "One-way maximum delay or latency in microseconds."; - } - leaf one-way-max-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "One-way maximum delay or latency normality."; - } - leaf one-way-delay-variation { - type uint32 { - range "0..16777215"; - } - description - "One-way delay variation in microseconds."; - reference - "RFC 5481: Packet Delay Variation Applicability - Statement, Section 4.2"; - } - leaf one-way-delay-variation-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "One-way delay variation normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; - } - leaf one-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - description - "One-way packet loss as a percentage of the total traffic - sent over a configurable interval. The finest precision - is 0.000003%, where the maximum is 50.331642%."; - reference - "RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.4"; - } - leaf one-way-packet-loss-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Packet loss normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; - } - description - "PM one-way packet-specific augmentation for a generic PM - grouping."; - } - augment "performance-metrics-two-way" { - leaf two-way-min-delay { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "Two-way minimum delay or latency in microseconds."; - } - leaf two-way-min-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way minimum delay or latency normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; - } - leaf two-way-max-delay { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "Two-way maximum delay or latency in microseconds."; - } - leaf two-way-max-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way maximum delay or latency normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; - } - leaf two-way-delay-variation { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "Two-way delay variation in microseconds."; - reference - "RFC 5481: Packet Delay Variation Applicability - Statement, Section 4.2"; - } - leaf two-way-delay-variation-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way delay variation normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; - } - leaf two-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - default "0"; - description - "Two-way packet loss as a percentage of the total traffic - sent over a configurable interval. The finest precision - is 0.000003%."; - } - leaf two-way-packet-loss-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way packet loss normality."; - } - description - "PM two-way packet-specific augmentation for a generic PM - grouping."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; - } - } - } - - grouping one-way-performance-metrics-packet { - description - "One-way packet PM throttle grouping."; - leaf one-way-min-delay { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "One-way minimum delay or latency in microseconds."; - } - leaf one-way-max-delay { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "One-way maximum delay or latency in microseconds."; - } - leaf one-way-delay-variation { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "One-way delay variation in microseconds."; - } - leaf one-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - default "0"; - description - "One-way packet loss as a percentage of the total traffic - sent over a configurable interval. The finest precision is - 0.000003%."; - } - } - - grouping two-way-performance-metrics-packet { - description - "Two-way packet PM throttle grouping."; - leaf two-way-min-delay { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "Two-way minimum delay or latency in microseconds."; - } - leaf two-way-max-delay { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "Two-way maximum delay or latency in microseconds."; - } - leaf two-way-delay-variation { - type uint32 { - range "0..16777215"; - } - default "0"; - description - "Two-way delay variation in microseconds."; - } - leaf two-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - default "0"; - description - "Two-way packet loss as a percentage of the total traffic - sent over a configurable interval. The finest precision is - 0.000003%."; - } - } - - grouping performance-metrics-throttle-container-packet { - description - "Packet PM threshold grouping."; - uses te-types:performance-metrics-throttle-container { - augment "throttle/threshold-out" { - uses one-way-performance-metrics-packet; - uses two-way-performance-metrics-packet; - description - "PM threshold-out packet augmentation for a - generic grouping."; - } - augment "throttle/threshold-in" { - uses one-way-performance-metrics-packet; - uses two-way-performance-metrics-packet; - description - "PM threshold-in packet augmentation for a - generic grouping."; - } - augment "throttle/threshold-accelerated-advertisement" { - uses one-way-performance-metrics-packet; - uses two-way-performance-metrics-packet; - description - "PM accelerated advertisement packet augmentation for a - generic grouping."; - } - } - } -} diff --git a/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang new file mode 100644 index 000000000..54393a9c3 --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang @@ -0,0 +1,844 @@ +module ietf-te-packet-types { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; + prefix te-packet-types; + + import ietf-yang-types { + prefix yang; + reference + "RFC 9911: Common YANG Data Types"; + } + import ietf-te-types { + prefix te-types; + reference + "RFC XXXX: Common YANG Data Types for Traffic Engineering"; + } + + organization + "IETF Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + contact + "WG Web: + WG List: + + Editor: Tarek Saad + + + Editor: Rakesh Gandhi + + + Editor: Vishnu Pavan Beeram + + + Editor: Xufeng Liu + + + Editor: Igor Bryskin + "; + description + "This YANG module contains a collection of generally useful YANG + data type definitions specific to Packet Traffic Engineering + (TE). + + The model conforms to the Network Management Datastore + Architecture (NMDA). + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2026 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + + revision 2026-01-15 { + description + "This revision adds the following new identities: + - bandwidth-profile-type; + - link-metric-delay-variation; + - link-metric-loss; + - path-metric-delay-variation; + - path-metric-loss. + + This revision adds the following new groupings: + - bandwidth-profile-parameters; + - te-packet-path-bandwidth; + - te-packet-link-bandwidth. + + This revision provides also few editorial changes."; + reference + "RFC XXXX: Common YANG Data Types for Traffic Engineering"; + } + revision 2020-06-10 { + description + "Latest revision of TE MPLS types."; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + + /* + * Identities + */ + + identity bandwidth-profile-type { + description + "Bandwidth Profile Types"; + } + + identity mef-10 { + base bandwidth-profile-type; + description + "MEF 10 Bandwidth Profile"; + reference + "MEF 10.3: Ethernet Services Attributes Phase 3"; + } + + identity rfc-2697 { + base bandwidth-profile-type; + description + "RFC 2697 Bandwidth Profile"; + reference + "RFC 2697: A Single Rate Three Color Marker"; + } + + identity rfc-2698 { + base bandwidth-profile-type; + description + "RFC 2698 Bandwidth Profile"; + reference + "RFC 2698: A Two Rate Three Color Marker"; + } + + // Derived identities from te-types:link-metric-type + + identity link-metric-delay-variation { + base te-types:link-metric-type; + description + "The Unidirectional Delay Variation Metric, + measured in units of microseconds."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions, + Section 4.3 + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions, + Section 4.3"; + } + + identity link-metric-loss { + base te-types:link-metric-type; + description + "The Unidirectional Link Loss Metric, + measured in units of 0.000003%."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions, + Section 4.4 + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions, + Section 4.4"; + } + + // Derived identities from te-types:path-metric-type + + identity path-metric-delay-variation { + base te-types:path-metric-type; + description + "The Path Delay Variation Metric, + measured in units of microseconds."; + reference + "RFC 8233: Extensions to the Path Computation Element + Communication Protocol (PCEP) to Compute + Service-Aware Label Switched Paths (LSPs), + Section 3.1.2"; + } + + identity path-metric-loss { + base te-types:path-metric-type; + description + "The Path Loss Metric, measured in units of 0.000003%."; + reference + "RFC 8233: Extensions to the Path Computation Element + Communication Protocol (PCEP) to Compute + Service-Aware Label Switched Paths (LSPs), + Section 3.1.3"; + } + + identity backup-protection-type { + description + "Base identity for the backup protection type."; + } + + identity backup-protection-link { + base backup-protection-type; + description + "Backup provides link protection only."; + } + + identity backup-protection-node-link { + base backup-protection-type; + description + "Backup offers node (preferred) or link protection."; + } + + identity bc-model-type { + description + "Base identity for the Diffserv-TE Bandwidth Constraints + Model type."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering"; + } + + identity bc-model-rdm { + base bc-model-type; + description + "Russian Dolls Bandwidth Constraints Model type."; + reference + "RFC 4127: Russian Dolls Bandwidth Constraints Model for + Diffserv-aware MPLS Traffic Engineering"; + } + + identity bc-model-mam { + base bc-model-type; + description + "Maximum Allocation Bandwidth Constraints Model type."; + reference + "RFC 4125: Maximum Allocation Bandwidth Constraints Model for + Diffserv-aware MPLS Traffic Engineering"; + } + + identity bc-model-mar { + base bc-model-type; + description + "Maximum Allocation with Reservation Bandwidth Constraints + Model type."; + reference + "RFC 4126: Max Allocation with Reservation Bandwidth + Constraints Model for Diffserv-aware MPLS Traffic + Engineering & Performance Comparisons"; + } + + /* + * Typedefs + */ + + typedef te-bandwidth-requested-type { + type enumeration { + enum specified-value { + description + "Bandwidth value is explicitly specified."; + } + enum specified-profile { + description + "Bandwidth profile is explicitly specified."; + } + enum auto { + description + "Bandwidth is automatically computed."; + } + } + description + "Enumerated type for specifying whether bandwidth is + explicitly specified or automatically computed."; + } + + typedef te-class-type { + type uint8; + description + "Diffserv-TE Class-Type. + Defines a set of Traffic Trunks crossing a link that is + governed by a specific set of bandwidth constraints. + + Class-Type is used for the purposes of link bandwidth + allocation, constraint-based routing, and admission control."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering"; + } + + typedef bc-type { + type uint8 { + range "0..7"; + } + description + "Diffserv-TE bandwidth constraints as defined in RFC 4124."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering"; + } + + typedef bandwidth-kbps { + type uint64; + units "kilobits per second"; + description + "Bandwidth values, expressed in kilobits per second."; + } + + typedef bandwidth-mbps { + type uint64; + units "megabits per second"; + description + "Bandwidth values, expressed in megabits per second."; + } + + typedef bandwidth-gbps { + type uint64; + units "gigabits per second"; + description + "Bandwidth values, expressed in gigabits per second."; + } + + /* + * Groupings + */ + + grouping performance-metrics-attributes-packet { + description + "Contains Performance Metrics (PM) information."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; + uses te-types:performance-metrics-attributes { + augment "performance-metrics-one-way" { + description + "Performance Metrics (PM) one-way packet-specific + augmentation for a generic PM grouping."; + leaf one-way-min-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + description + "One-way minimum delay or latency."; + } + leaf one-way-min-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "One-way minimum delay or latency normality."; + } + leaf one-way-max-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + description + "One-way maximum delay or latency."; + } + leaf one-way-max-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "One-way maximum delay or latency normality."; + } + leaf one-way-delay-variation { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + description + "One-way delay variation."; + reference + "RFC 5481: Packet Delay Variation Applicability + Statement, Section 4.2"; + } + leaf one-way-delay-variation-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "One-way delay variation normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions"; + } + leaf one-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + units "percent"; + description + "One-way packet loss as a percentage of the total traffic + sent over a configurable interval. + + The finest precision is 0.000003%."; + reference + "RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 4.4"; + } + leaf one-way-packet-loss-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Packet loss normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions"; + } + } + augment "performance-metrics-two-way" { + description + "Performance Metrics (PM) two-way packet-specific + augmentation for a generic PM grouping."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE + Metric Extensions"; + leaf two-way-min-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "Two-way minimum delay or latency."; + } + leaf two-way-min-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way minimum delay or latency normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions"; + } + leaf two-way-max-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "Two-way maximum delay or latency."; + } + leaf two-way-max-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way maximum delay or latency normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions"; + } + leaf two-way-delay-variation { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "Two-way delay variation."; + reference + "RFC 5481: Packet Delay Variation Applicability + Statement, Section 4.2"; + } + leaf two-way-delay-variation-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way delay variation normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions"; + } + leaf two-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + units "percent"; + default "0"; + description + "Two-way packet loss as a percentage of the total traffic + sent over a configurable interval. + + The finest precision is 0.000003%."; + } + leaf two-way-packet-loss-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way packet loss normality."; + } + } + } + } + + grouping one-way-performance-metrics-packet { + description + "One-way packet Performance Metrics (PM) throttle grouping."; + leaf one-way-min-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "One-way minimum delay or latency."; + } + leaf one-way-max-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "One-way maximum delay or latency."; + } + leaf one-way-delay-variation { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "One-way delay variation."; + } + leaf one-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + units "percent"; + default "0"; + description + "One-way packet loss as a percentage of the total traffic + sent over a configurable interval. + + The finest precision is 0.000003%."; + } + } + + grouping one-way-performance-metrics-gauge-packet { + description + "One-way packet Performance Metrics (PM) throttle grouping. + + This grouping is used to report the same metrics defined in + the one-way-performance-metrics-packet grouping, using gauges + instead of uint32 data types and referencing IPPM RFCs + instead of IGP-TE RFCs."; + leaf one-way-min-delay { + type yang:gauge64; + units "microseconds"; + description + "One-way minimum delay or latency."; + } + leaf one-way-max-delay { + type yang:gauge64; + units "microseconds"; + description + "One-way maximum delay or latency."; + reference + "RFC 7679: A One-Way Delay Metric for IP Performance + Metrics (IPPM)"; + } + leaf one-way-delay-variation { + type yang:gauge64; + units "microseconds"; + description + "One-way delay variation."; + reference + "RFC 3393: IP Packet Delay Variation Metric for IP + Performance Metrics (IPPM)"; + } + leaf one-way-packet-loss { + type decimal64 { + fraction-digits 5; + range "0..100"; + } + description + "The ratio of packets dropped to packets transmitted between + two endpoints."; + reference + "RFC 7680: A One-Way Loss Metric for IP Performance + Metrics (IPPM)"; + } + } + + grouping two-way-performance-metrics-packet { + description + "Two-way packet Performance Metrics (PM) throttle grouping."; + leaf two-way-min-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "Two-way minimum delay or latency."; + } + leaf two-way-max-delay { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "Two-way maximum delay or latency."; + } + leaf two-way-delay-variation { + type uint32 { + range "0..16777215"; + } + units "microseconds"; + default "0"; + description + "Two-way delay variation."; + } + leaf two-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + units "percent"; + default "0"; + description + "Two-way packet loss as a percentage of the total traffic + sent over a configurable interval. + + The finest precision is 0.000003%."; + } + } + + grouping two-way-performance-metrics-gauge-packet { + description + "Two-way packet Performance Metrics (PM) throttle grouping. + + This grouping is used to report the same metrics defined in + the two-way-performance-metrics-packet grouping, using gauges + instead of uint32 data types and referencing IPPM RFCs + instead of IGP-TE RFCs."; + leaf two-way-min-delay { + type yang:gauge64; + units "microseconds"; + description + "Two-way minimum delay or latency."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + leaf two-way-max-delay { + type yang:gauge64; + units "microseconds"; + description + "Two-way maximum delay or latency."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + leaf two-way-delay-variation { + type yang:gauge64; + units "microseconds"; + description + "Two-way delay variation."; + reference + "RFC 5481: Packet Delay Variation Applicability Statement"; + } + leaf two-way-packet-loss { + type decimal64 { + fraction-digits 5; + range "0..100"; + } + description + "The ratio of packets dropped to packets transmitted between + two endpoints."; + } + } + + grouping performance-metrics-throttle-container-packet { + description + "Packet Performance Metrics (PM) threshold grouping."; + uses te-types:performance-metrics-throttle-container { + augment "throttle/threshold-out" { + description + "Performance Metrics (PM) threshold-out packet + augmentation for a generic grouping."; + uses one-way-performance-metrics-packet; + uses two-way-performance-metrics-packet; + } + augment "throttle/threshold-in" { + description + "Performance Metrics (PM) threshold-in packet augmentation + for a generic grouping."; + uses one-way-performance-metrics-packet; + uses two-way-performance-metrics-packet; + } + augment "throttle/threshold-accelerated-advertisement" { + description + "Performance Metrics (PM) accelerated advertisement packet + augmentation for a generic grouping."; + uses one-way-performance-metrics-packet; + uses two-way-performance-metrics-packet; + } + } + } + + grouping bandwidth-profile-parameters { + description + "Common parameters to define bandwidth profiles, also known as + traffic profiles in RFC 2475, that may be used to specify the + temporal properties of a packet stream (e.g., MPLS-TE LSPs), + e.g., as specified in MEF 10, RFC 2697 or RFC 2698."; + reference + "RFC 2475: An Architecture for Differentiated Services + MEF 10.3: Ethernet Services Attributes Phase 3 + RFC 2697: A Single Rate Three Color Marker + RFC 2698: A Two Rate Three Color Marker"; + leaf cir { + type uint64; + units "bits per second"; + description + "Committed Information Rate (CIR)."; + } + leaf cbs { + type uint64; + units "bytes"; + description + "Committed Burst Size (CBS)."; + } + leaf eir { + type uint64; + units "bits per second"; + description + "Excess Information Rate (EIR)."; + } + leaf ebs { + type uint64; + units "bytes"; + description + "Excess Burst Size (EBS)."; + } + leaf pir { + type uint64; + units "bits per second"; + description + "Peak Information Rate (PIR)."; + } + leaf pbs { + type uint64; + units "bytes"; + description + "Peak Burst Size (PBS)."; + } + } + + grouping te-packet-path-bandwidth { + description + "Bandwidth attributes for TE Packet paths."; + container packet-bandwidth { + description + "Bandwidth attributes for TE Packet paths."; + leaf specification-type { + type te-bandwidth-requested-type; + description + "The bandwidth specification type, either explicitly + specified or automatically computed."; + } + leaf set-bandwidth { + when "../specification-type = 'specified-value'" { + description + "When the bandwidth value is explicitly specified."; + } + type bandwidth-kbps; + description + "Set the bandwidth value explicitly, e.g., using offline + calculation."; + } + container bandwidth-profile { + when "../specification-type = 'specified-profile'" { + description + "When the bandwidth profile is explicitly specified."; + } + description + "Set the bandwidth profile attributes explicitly."; + leaf bandwidth-profile-name { + type string; + description + "Name of Bandwidth Profile."; + } + leaf bandwidth-profile-type { + type identityref { + base bandwidth-profile-type; + } + description + "Type of Bandwidth Profile."; + } + uses bandwidth-profile-parameters; + } + leaf class-type { + type te-types:te-ds-class; + description + "The Class-Type of traffic transported by the LSP."; + reference + "RFC 4124: Protocol Extensions for Support of + Diffserv-aware MPLS Traffic Engineering, + Section 4.3.1"; + } + leaf signaled-bandwidth { + type te-packet-types:bandwidth-kbps; + config false; + description + "The currently signaled bandwidth of the LSP. + + In the case where the bandwidth is specified + explicitly, then this will match the value of the + set-bandwidth leaf. + + In the cases where the bandwidth is dynamically + computed by the system, the current value of the + bandwidth should be reflected."; + } + } + } + + grouping te-packet-link-bandwidth { + description + "Bandwidth attributes for Packet TE links."; + leaf packet-bandwidth { + type uint64; + units "bits per second"; + description + "Bandwidth value for Packet TE links."; + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang b/src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang similarity index 55% rename from src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang rename to src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang index 6fc0544de..beb464034 100644 --- a/src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang +++ b/src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang @@ -6,18 +6,28 @@ module ietf-te-types { import ietf-inet-types { prefix inet; reference - "RFC 6991: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types, Section 4"; } import ietf-yang-types { prefix yang; reference - "RFC 6991: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types, Section 3"; } import ietf-routing-types { prefix rt-types; reference "RFC 8294: Common YANG Data Types for the Routing Area"; } + import ietf-network { + prefix nw; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + import ietf-network-topology { + prefix nt; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } organization "IETF Traffic Engineering Architecture and Signaling (TEAS) @@ -27,7 +37,7 @@ module ietf-te-types { WG List: Editor: Tarek Saad - + Editor: Rakesh Gandhi @@ -42,9 +52,7 @@ module ietf-te-types { "; description "This YANG module contains a collection of generally useful - YANG data type definitions specific to TE. The model fully - conforms to the Network Management Datastore Architecture - (NMDA). + YANG data type definitions specific to TE. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', @@ -52,882 +60,553 @@ module ietf-te-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2026 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 + 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 8776; see the - RFC itself for full legal notices."; - + All revisions of IETF and IANA published modules can be found + at the YANG Parameters registry group + (https://www.iana.org/assignments/yang-parameters). + + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; + + revision 2026-01-23 { + description + "This revision adds the following new identities: + - lsp-provisioning-error-reason; + - association-type-diversity; + - tunnel-admin-state-auto; + - lsp-restoration-restore-none; + - restoration-scheme-rerouting; + - path-metric-optimization-type; + - link-path-metric-type; + - link-metric-type and its derived identities; + - path-computation-error-reason and its derived identities; + - protocol-origin-type and its derived identities; + - svec-objective-function-type and its derived identities; + - svec-metric-type and its derived identities. + + This revision adds the following new data types: + - path-type. + + This revision adds the following new groupings: + - explicit-route-hop-with-srlg; + - encoding-and-switching-type; + - te-generic-node-id. + + This revision updates the following identities: + - objective-function-type; + - action-exercise; + - path-metric-type; + - path-metric-te; + - path-metric-igp; + - path-metric-hop; + - path-metric-delay-average; + - path-metric-delay-minimum; + - path-metric-residual-bandwidth; + - path-metric-optimize-includes; + - path-metric-optimize-excludes; + - te-optimization-criterion. + + This revision updates the following data types: + - te-node-id. + + This revision updates the following groupings: + - explicit-route-hop: + - adds the following leaves: + - node-id-uri; + - link-tp-id-uri; + - updates the following leaves: + - node-id; + - link-tp-id; + - record-route-state: + - adds the following leaves: + - node-id-uri; + - link-tp-id-uri; + - updates the following leaves: + - node-id; + - link-tp-id; + - optimization-metric-entry: + - updates the following leaves: + - metric-type; + - tunnel-constraints; + - adds the following leaves: + - network-id; + - path-constraints-route-objects: + - updates the following containers: + - explicit-route-objects-always; + - generic-path-metric-bounds: + - updates the following leaves: + - metric-type; + - generic-path-optimization + - adds the following leaves: + - tiebreaker; + - deprecate the following containers: + - tiebreakers. + + This revision obsoletes the following identities: + - of-minimize-agg-bandwidth-consumption; + - of-minimize-load-most-loaded-link; + - of-minimize-cost-path-set; + - lsp-protection-reroute-extra; + - lsp-protection-reroute. + + This revision provides also few editorial changes."; + reference + "RFC XXXX: Common YANG Data Types for Traffic Engineering"; + } revision 2020-06-10 { description - "Latest revision of TE types."; + "Initial Version of TE types."; reference "RFC 8776: Common YANG Data Types for Traffic Engineering"; } - /** - * Typedefs + /* + * Features */ - typedef admin-group { - type yang:hex-string { - /* 01:02:03:04 */ - length "1..11"; - } + feature p2mp-te { description - "Administrative group / resource class / color representation - in 'hex-string' type. - The most significant byte in the hex-string is the farthest - to the left in the byte sequence. Leading zero bytes in the - configured value may be omitted for brevity."; + "Indicates support for Point-to-Multipoint TE (P2MP-TE)."; reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2 - RFC 5305: IS-IS Extensions for Traffic Engineering - RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; + "RFC 4875: Extensions to Resource Reservation Protocol - + Traffic Engineering (RSVP-TE) for + Point-to-Multipoint TE Label Switched Paths (LSPs)"; } - typedef admin-groups { - type union { - type admin-group; - type extended-admin-group; - } + feature frr-te { description - "Derived types for TE administrative groups."; + "Indicates support for TE Fast Reroute (FRR)."; + reference + "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; } - typedef extended-admin-group { - type yang:hex-string; + feature extended-admin-groups { description - "Extended administrative group / resource class / color - representation in 'hex-string' type. - The most significant byte in the hex-string is the farthest - to the left in the byte sequence. Leading zero bytes in the - configured value may be omitted for brevity."; + "Indicates support for TE link extended administrative + groups."; reference "RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; + Engineering (MPLS-TE)"; } - typedef path-attribute-flags { - type union { - type identityref { - base session-attributes-flags; - } - type identityref { - base lsp-attributes-flags; - } - } + feature named-path-affinities { description - "Path attributes flags type."; + "Indicates support for named path affinities."; } - typedef performance-metrics-normality { - type enumeration { - enum unknown { - value 0; - description - "Unknown."; - } - enum normal { - value 1; - description - "Normal. Indicates that the anomalous bit is not set."; - } - enum abnormal { - value 2; - description - "Abnormal. Indicates that the anomalous bit is set."; - } - } + feature named-extended-admin-groups { description - "Indicates whether a performance metric is normal (anomalous - bit not set), abnormal (anomalous bit set), or unknown."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + "Indicates support for named extended administrative groups."; } - typedef srlg { - type uint32; + feature named-srlg-groups { description - "SRLG type."; - reference - "RFC 4203: OSPF Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS) - RFC 5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS)"; + "Indicates support for named Shared Risk Link Group (SRLG)."; } - typedef te-common-status { - type enumeration { - enum up { - description - "Enabled."; - } - enum down { - description - "Disabled."; - } - enum testing { - description - "In some test mode."; - } - enum preparing-maintenance { - description - "The resource is disabled in the control plane to prepare - for a graceful shutdown for maintenance purposes."; - reference - "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS - Traffic Engineering Networks"; - } - enum maintenance { - description - "The resource is disabled in the data plane for maintenance - purposes."; - } - enum unknown { - description - "Status is unknown."; - } - } + feature named-path-constraints { description - "Defines a type representing the common states of a TE - resource."; + "Indicates support for named path constraints."; } - typedef te-bandwidth { - type string { - pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' - + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' - + '[pP](\+)?(12[0-7]|' - + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' - + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' - + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' - + '[pP](\+)?(12[0-7]|' - + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; - } + feature path-optimization-metric { description - "This is the generic bandwidth type. It is a string containing - a list of numbers separated by commas, where each of these - numbers can be non-negative decimal, hex integer, or - hex float: + "Indicates support for path optimization metrics."; + } - (dec | hex | float)[*(','(dec | hex | float))] + feature path-optimization-objective-function { + description + "Indicates support for path optimization objective functions."; + } - For the packet-switching type, the string encoding follows - the type 'bandwidth-ieee-float32' as defined in RFC 8294 - (e.g., 0x1p10), where the units are in bytes per second. + /* + * Identities + */ - For the Optical Transport Network (OTN) switching type, - a list of integers can be used, such as '0,2,3,1', indicating - two ODU0s and one ODU3. ('ODU' stands for 'Optical Data - Unit'.) For Dense Wavelength Division Multiplexing (DWDM), - a list of pairs of slot numbers and widths can be used, - such as '0,2,3,3', indicating a frequency slot 0 with - slot width 2 and a frequency slot 3 with slot width 3. - Canonically, the string is represented as all lowercase and in - hex, where the prefix '0x' precedes the hex number."; - reference - "RFC 8294: Common YANG Data Types for the Routing Area - ITU-T Recommendation G.709: Interfaces for the - optical transport network"; + identity lsp-provisioning-error-reason { + description + "Base identity for LSP provisioning errors."; } - typedef te-ds-class { - type uint8 { - range "0..7"; - } + identity session-attributes-flags { description - "The Differentiated Services Class-Type of traffic."; + "Base identity for the RSVP-TE session attributes flags."; + } + + identity local-protection-desired { + base session-attributes-flags; + description + "Local protection is desired."; reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering, Section 4.3.1"; + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.7.1"; } - typedef te-global-id { - type uint32; + identity se-style-desired { + base session-attributes-flags; description - "An identifier to uniquely identify an operator, which can be - either a provider or a client. - The definition of this type is taken from RFCs 6370 and 5003. - This attribute type is used solely to provide a globally - unique context for TE topologies."; + "Shared explicit style, to allow the LSP to be established + and share resources with the old LSP."; reference - "RFC 5003: Attachment Individual Identifier (AII) Types for - Aggregation - RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers"; + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; } - typedef te-hop-type { - type enumeration { - enum loose { - description - "A loose hop in an explicit path."; - } - enum strict { - description - "A strict hop in an explicit path."; - } - } + identity local-recording-desired { + base session-attributes-flags; description - "Enumerated type for specifying loose or strict paths."; + "Label recording is desired."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3.3"; + Section 4.7.1"; } - typedef te-link-access-type { - type enumeration { - enum point-to-point { - description - "The link is point-to-point."; - } - enum multi-access { - description - "The link is multi-access, including broadcast and NBMA."; - } - } + identity bandwidth-protection-desired { + base session-attributes-flags; description - "Defines a type representing the access type of a TE link."; + "Requests FRR bandwidth protection on LSRs, if present."; reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; + "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP + Tunnels"; } - typedef te-label-direction { - type enumeration { - enum forward { - description - "Label allocated for the forward LSP direction."; - } - enum reverse { - description - "Label allocated for the reverse LSP direction."; - } - } + identity node-protection-desired { + base session-attributes-flags; description - "Enumerated type for specifying the forward or reverse - label."; + "Requests FRR node protection on LSRs, if present."; + reference + "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP + Tunnels"; } - typedef te-link-direction { - type enumeration { - enum incoming { - description - "The explicit route represents an incoming link on - a node."; - } - enum outgoing { - description - "The explicit route represents an outgoing link on - a node."; - } - } + identity path-reevaluation-request { + base session-attributes-flags; description - "Enumerated type for specifying the direction of a link on - a node."; + "Indicates that a path re-evaluation (of the + current path in use) is requested. + + Note that this does not trigger any LSP reroutes but + instead just signals a request to evaluate whether a + preferable path exists."; + reference + "RFC 4736: Reoptimization of Multiprotocol Label Switching + (MPLS) Traffic Engineering (TE) Loosely Routed + Label Switched Path (LSP)"; } - typedef te-metric { - type uint32; + identity soft-preemption-desired { + base session-attributes-flags; description - "TE metric."; + "Soft preemption of LSP resources is desired."; reference - "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a - second MPLS Traffic Engineering (TE) Metric"; + "RFC 5712: MPLS Traffic Engineering Soft Preemption"; } - typedef te-node-id { - type yang:dotted-quad; + identity lsp-attributes-flags { description - "A type representing the identifier for a node in a TE - topology. - The identifier is represented as 4 octets in dotted-quad - notation. - This attribute MAY be mapped to the Router Address TLV - described in Section 2.4.1 of RFC 3630, the TE Router ID - described in Section 3 of RFC 6827, the Traffic Engineering - Router ID TLV described in Section 4.3 of RFC 5305, or the - TE Router ID TLV described in Section 3.2.1 of RFC 6119. - The reachability of such a TE node MAY be achieved by a - mechanism such as that described in Section 6.2 of RFC 6827."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2, Section 2.4.1 - RFC 5305: IS-IS Extensions for Traffic Engineering, - Section 4.3 - RFC 6119: IPv6 Traffic Engineering in IS-IS, Section 3.2.1 - RFC 6827: Automatically Switched Optical Network (ASON) - Routing for OSPFv2 Protocols, Section 3"; + "Base identity for LSP attributes flags."; } - typedef te-oper-status { - type te-common-status; + identity end-to-end-rerouting-desired { + base lsp-attributes-flags; description - "Defines a type representing the operational status of - a TE resource."; + "Indicates end-to-end rerouting behavior for an LSP + undergoing establishment. + + This MAY also be used to specify the behavior of end-to-end + LSP recovery for established LSPs."; + reference + "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS + RSVP-TE + RFC 5420: Encoding of Attributes for MPLS LSP Establishment + Using Resource Reservation Protocol Traffic + Engineering (RSVP-TE) + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-admin-status { - type te-common-status; + identity boundary-rerouting-desired { + base lsp-attributes-flags; description - "Defines a type representing the administrative status of - a TE resource."; + "Indicates boundary rerouting behavior for an LSP undergoing + establishment. + + This MAY also be used to specify segment-based LSP recovery + through nested crankback for established LSPs. + + The boundary Area Border Router (ABR) / Autonomous System + Border Router (ASBR) can decide to forward the PathErr + message upstream to either an upstream boundary ABR/ASBR or + the ingress LSR. + + Alternatively, it can try to select another egress boundary + LSR."; + reference + "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS + RSVP-TE + RFC 5420: Encoding of Attributes for MPLS LSP Establishment + Using Resource Reservation Protocol Traffic + Engineering (RSVP-TE) + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-path-disjointness { - type bits { - bit node { - position 0; - description - "Node disjoint."; - } - bit link { - position 1; - description - "Link disjoint."; - } - bit srlg { - position 2; - description - "SRLG (Shared Risk Link Group) disjoint."; - } - } + identity segment-based-rerouting-desired { + base lsp-attributes-flags; description - "Type of the resource disjointness for a TE tunnel path."; + "Indicates segment-based rerouting behavior for an LSP + undergoing establishment. + + This MAY also be used to specify segment-based LSP recovery + for established LSPs."; reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS + RSVP-TE + RFC 5420: Encoding of Attributes for MPLS LSP Establishment + Using Resource Reservation Protocol + Traffic Engineering (RSVP-TE) + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-recovery-status { - type enumeration { - enum normal { - description - "Both the recovery span and the working span are fully - allocated and active, data traffic is being - transported over (or selected from) the working - span, and no trigger events are reported."; - } - enum recovery-started { - description - "The recovery action has been started but not completed."; - } - enum recovery-succeeded { - description - "The recovery action has succeeded. The working span has - reported a failure/degrade condition, and the user traffic - is being transported (or selected) on the recovery span."; - } - enum recovery-failed { - description - "The recovery action has failed."; - } - enum reversion-started { - description - "The reversion has started."; - } - enum reversion-succeeded { - description - "The reversion action has succeeded."; - } - enum reversion-failed { - description - "The reversion has failed."; - } - enum recovery-unavailable { - description - "The recovery is unavailable, as a result of either an - operator's lockout command or a failure condition - detected on the recovery span."; - } - enum recovery-admin { - description - "The operator has issued a command to switch the user - traffic to the recovery span."; - } - enum wait-to-restore { - description - "The recovery domain is recovering from a failure/degrade - condition on the working span that is being controlled by - the Wait-to-Restore (WTR) timer."; - } - } + identity lsp-integrity-required { + base lsp-attributes-flags; description - "Defines the status of a recovery action."; + "Indicates that LSP integrity is required."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS) - RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; + "RFC 4875: Extensions to Resource Reservation Protocol - + Traffic Engineering (RSVP-TE) for + Point-to-Multipoint TE Label Switched Paths (LSPs) + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-template-name { - type string { - pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; - } + identity contiguous-lsp-desired { + base lsp-attributes-flags; description - "A type for the name of a TE node template or TE link - template."; + "Indicates that a contiguous LSP is desired."; + reference + "RFC 5151: Inter-Domain MPLS and GMPLS Traffic Engineering -- + Resource Reservation Protocol-Traffic Engineering + (RSVP-TE) Extensions + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-topology-event-type { - type enumeration { - enum add { - value 0; - description - "A TE node or TE link has been added."; - } - enum remove { - value 1; - description - "A TE node or TE link has been removed."; - } - enum update { - value 2; - description - "A TE node or TE link has been updated."; - } - } + identity lsp-stitching-desired { + base lsp-attributes-flags; description - "TE event type for notifications."; + "Indicates that LSP stitching is desired."; + reference + "RFC 5150: Label Switched Path Stitching with Generalized + Multiprotocol Label Switching Traffic Engineering + (GMPLS TE) + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-topology-id { - type union { - type string { - length "0"; - // empty string - } - type string { - pattern '([a-zA-Z0-9\-_.]+:)*' - + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; - } - } + identity pre-planned-lsp-flag { + base lsp-attributes-flags; description - "An identifier for a topology. - It is optional to have one or more prefixes at the beginning, - separated by colons. The prefixes can be 'network-types' as - defined in the 'ietf-network' module in RFC 8345, to help the - user better understand the topology before further inquiry - is made."; + "Indicates that the LSP MUST be provisioned in the + control plane only."; reference - "RFC 8345: A YANG Data Model for Network Topologies"; + "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for + Multi-Layer and Multi-Region Networks (MLN/MRN) + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - typedef te-tp-id { - type union { - type uint32; - // Unnumbered - type inet:ip-address; - // IPv4 or IPv6 address - } + identity non-php-behavior-flag { + base lsp-attributes-flags; description - "An identifier for a TE link endpoint on a node. - This attribute is mapped to a local or remote link identifier - as defined in RFCs 3630 and 5305."; + "Indicates that non-PHP (non-Penultimate Hop Popping) + behavior for the LSP is desired."; reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2 - RFC 5305: IS-IS Extensions for Traffic Engineering"; + "RFC 6511: Non-Penultimate Hop Popping Behavior and + Out-of-Band Mapping for RSVP-TE Label Switched + Paths + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - /* TE features */ - - feature p2mp-te { + identity oob-mapping-flag { + base lsp-attributes-flags; description - "Indicates support for Point-to-Multipoint TE (P2MP-TE)."; + "Indicates that signaling of the egress binding information + is out of band (e.g., via the Border Gateway Protocol + (BGP))."; reference - "RFC 4875: Extensions to Resource Reservation Protocol - - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE - Label Switched Paths (LSPs)"; + "RFC 6511: Non-Penultimate Hop Popping Behavior and + Out-of-Band Mapping for RSVP-TE Label Switched + Paths + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - feature frr-te { + identity entropy-label-capability { + base lsp-attributes-flags; description - "Indicates support for TE Fast Reroute (FRR)."; + "Indicates entropy label capability."; reference - "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; + "RFC 6790: The Use of Entropy Labels in MPLS Forwarding + RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO)"; } - feature extended-admin-groups { + identity oam-mep-entity-desired { + base lsp-attributes-flags; description - "Indicates support for TE link extended administrative - groups."; + "OAM Maintenance Entity Group End Point (MEP) entities + desired."; reference - "RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; + "RFC 7260: GMPLS RSVP-TE Extensions for Operations, + Administration, and Maintenance (OAM) + Configuration"; } - feature named-path-affinities { + identity oam-mip-entity-desired { + base lsp-attributes-flags; description - "Indicates support for named path affinities."; + "OAM Maintenance Entity Group Intermediate Points (MIP) + entities desired."; + reference + "RFC 7260: GMPLS RSVP-TE Extensions for Operations, + Administration, and Maintenance (OAM) + Configuration"; } - feature named-extended-admin-groups { + identity srlg-collection-desired { + base lsp-attributes-flags; description - "Indicates support for named extended administrative groups."; + "Shared Risk Link Group (SRLG) collection desired."; + reference + "RFC 7570: Label Switched Path (LSP) Attribute in the + Explicit Route Object (ERO) + RFC 8001: RSVP-TE Extensions for Collecting Shared Risk + Link Group (SRLG) Information"; } - feature named-srlg-groups { + identity loopback-desired { + base lsp-attributes-flags; description - "Indicates support for named SRLG groups."; + "Indicates that a particular node on the LSP is + required to enter loopback mode. + + This can also be used to specify the loopback state of the + node."; + reference + "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and + Loopback"; } - feature named-path-constraints { + identity p2mp-te-tree-eval-request { + base lsp-attributes-flags; description - "Indicates support for named path constraints."; + "P2MP-TE tree re-evaluation request."; + reference + "RFC 8149: RSVP Extensions for Reoptimization of Loosely + Routed Point-to-Multipoint Traffic Engineering + Label Switched Paths (LSPs)"; } - feature path-optimization-metric { + identity rtm-set-desired { + base lsp-attributes-flags; description - "Indicates support for path optimization metrics."; + "Residence Time Measurement (RTM) attribute flag requested."; + reference + "RFC 8169: Residence Time Measurement in MPLS Networks"; } - feature path-optimization-objective-function { + identity link-protection-type { description - "Indicates support for path optimization objective functions."; + "Base identity for the link protection type."; + reference + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } - /* - * Identities - */ - - identity session-attributes-flags { + identity link-protection-unprotected { + base link-protection-type; description - "Base identity for the RSVP-TE session attributes flags."; + "'Unprotected' link protection type."; + reference + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } - identity local-protection-desired { - base session-attributes-flags; + identity link-protection-extra-traffic { + base link-protection-type; description - "Local protection is desired."; + "'Extra-Traffic' link protection type."; reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.7.1"; - } - - identity se-style-desired { - base session-attributes-flags; - description - "Shared explicit style, to allow the LSP to be established - and share resources with the old LSP."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; - } - - identity local-recording-desired { - base session-attributes-flags; - description - "Label recording is desired."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.7.1"; - } - - identity bandwidth-protection-desired { - base session-attributes-flags; - description - "Requests FRR bandwidth protection on LSRs, if present."; - reference - "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; - } - - identity node-protection-desired { - base session-attributes-flags; - description - "Requests FRR node protection on LSRs, if present."; - reference - "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; - } - - identity path-reevaluation-request { - base session-attributes-flags; - description - "This flag indicates that a path re-evaluation (of the - current path in use) is requested. Note that this does - not trigger any LSP reroutes but instead just signals a - request to evaluate whether a preferable path exists."; - reference - "RFC 4736: Reoptimization of Multiprotocol Label Switching - (MPLS) Traffic Engineering (TE) Loosely Routed Label Switched - Path (LSP)"; - } - - identity soft-preemption-desired { - base session-attributes-flags; - description - "Soft preemption of LSP resources is desired."; - reference - "RFC 5712: MPLS Traffic Engineering Soft Preemption"; - } - - identity lsp-attributes-flags { - description - "Base identity for LSP attributes flags."; - } - - identity end-to-end-rerouting-desired { - base lsp-attributes-flags; - description - "Indicates end-to-end rerouting behavior for an LSP - undergoing establishment. This MAY also be used to - specify the behavior of end-to-end LSP recovery for - established LSPs."; - reference - "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE - RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic Engineering - (RSVP-TE) - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity boundary-rerouting-desired { - base lsp-attributes-flags; - description - "Indicates boundary rerouting behavior for an LSP undergoing - establishment. This MAY also be used to specify - segment-based LSP recovery through nested crankback for - established LSPs. The boundary Area Border Router (ABR) / - Autonomous System Border Router (ASBR) can decide to forward - the PathErr message upstream to either an upstream boundary - ABR/ASBR or the ingress LSR. Alternatively, it can try to - select another egress boundary LSR."; - reference - "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE - RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic Engineering - (RSVP-TE) - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity segment-based-rerouting-desired { - base lsp-attributes-flags; - description - "Indicates segment-based rerouting behavior for an LSP - undergoing establishment. This MAY also be used to specify - segment-based LSP recovery for established LSPs."; - reference - "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE - RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic Engineering - (RSVP-TE) - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity lsp-integrity-required { - base lsp-attributes-flags; - description - "Indicates that LSP integrity is required."; - reference - "RFC 4875: Extensions to Resource Reservation Protocol - - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE - Label Switched Paths (LSPs) - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity contiguous-lsp-desired { - base lsp-attributes-flags; - description - "Indicates that a contiguous LSP is desired."; - reference - "RFC 5151: Inter-Domain MPLS and GMPLS Traffic Engineering -- - Resource Reservation Protocol-Traffic Engineering (RSVP-TE) - Extensions - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity lsp-stitching-desired { - base lsp-attributes-flags; - description - "Indicates that LSP stitching is desired."; - reference - "RFC 5150: Label Switched Path Stitching with Generalized - Multiprotocol Label Switching Traffic Engineering (GMPLS TE) - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity pre-planned-lsp-flag { - base lsp-attributes-flags; - description - "Indicates that the LSP MUST be provisioned in the - control plane only."; - reference - "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for - Multi-Layer and Multi-Region Networks (MLN/MRN) - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity non-php-behavior-flag { - base lsp-attributes-flags; - description - "Indicates that non-PHP (non-Penultimate Hop Popping) behavior - for the LSP is desired."; - reference - "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band - Mapping for RSVP-TE Label Switched Paths - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity oob-mapping-flag { - base lsp-attributes-flags; - description - "Indicates that signaling of the egress binding information is - out of band (e.g., via the Border Gateway Protocol (BGP))."; - reference - "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band - Mapping for RSVP-TE Label Switched Paths - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity entropy-label-capability { - base lsp-attributes-flags; - description - "Indicates entropy label capability."; - reference - "RFC 6790: The Use of Entropy Labels in MPLS Forwarding - RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; - } - - identity oam-mep-entity-desired { - base lsp-attributes-flags; - description - "OAM Maintenance Entity Group End Point (MEP) entities - desired."; - reference - "RFC 7260: GMPLS RSVP-TE Extensions for Operations, - Administration, and Maintenance (OAM) Configuration"; - } - - identity oam-mip-entity-desired { - base lsp-attributes-flags; - description - "OAM Maintenance Entity Group Intermediate Points (MIP) - entities desired."; - reference - "RFC 7260: GMPLS RSVP-TE Extensions for Operations, - Administration, and Maintenance (OAM) Configuration"; - } - - identity srlg-collection-desired { - base lsp-attributes-flags; - description - "SRLG collection desired."; - reference - "RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO) - RFC 8001: RSVP-TE Extensions for Collecting Shared Risk - Link Group (SRLG) Information"; - } - - identity loopback-desired { - base lsp-attributes-flags; - description - "This flag indicates that a particular node on the LSP is - required to enter loopback mode. This can also be - used to specify the loopback state of the node."; - reference - "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and - Loopback"; - } - - identity p2mp-te-tree-eval-request { - base lsp-attributes-flags; - description - "P2MP-TE tree re-evaluation request."; - reference - "RFC 8149: RSVP Extensions for Reoptimization of Loosely Routed - Point-to-Multipoint Traffic Engineering Label Switched Paths - (LSPs)"; - } - - identity rtm-set-desired { - base lsp-attributes-flags; - description - "Residence Time Measurement (RTM) attribute flag requested."; - reference - "RFC 8169: Residence Time Measurement in MPLS Networks"; - } - - identity link-protection-type { - description - "Base identity for the link protection type."; - } - - identity link-protection-unprotected { - base link-protection-type; - description - "Unprotected link type."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; - } - - identity link-protection-extra-traffic { - base link-protection-type; - description - "Extra-Traffic protected link type."; - reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } identity link-protection-shared { base link-protection-type; description - "Shared protected link type."; + "'Shared' link protection type."; reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } identity link-protection-1-for-1 { base link-protection-type; description - "One-for-one (1:1) protected link type."; + "'Dedicated 1:1' link protection type."; reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } identity link-protection-1-plus-1 { base link-protection-type; description - "One-plus-one (1+1) protected link type."; + "'Dedicated 1+1' link protection type."; reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } identity link-protection-enhanced { base link-protection-type; description - "A compound link protection type derived from the underlay - TE tunnel protection configuration supporting the TE link."; + "'Enhanced' link protection type."; + reference + "RFC 4202: Routing Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS), + section 2.2 + RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description, section 7"; } identity association-type { @@ -942,7 +621,8 @@ module ietf-te-types { same tunnel for recovery."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery RFC 6780: RSVP ASSOCIATION Object Extensions"; } @@ -964,7 +644,7 @@ module ietf-te-types { independently configured on either endpoint."; reference "RFC 7551: RSVP-TE Extensions for Associated Bidirectional - Label Switched Paths (LSPs)"; + Label Switched Paths (LSPs)"; } identity association-type-single-sided-bidir { @@ -977,12 +657,23 @@ module ietf-te-types { reference "RFC 6780: RSVP ASSOCIATION Object Extensions RFC 7551: RSVP-TE Extensions for Associated Bidirectional - Label Switched Paths (LSPs)"; + Label Switched Paths (LSPs)"; + } + + identity association-type-diversity { + base association-type; + description + "Association Type diversity used to associate LSPs whose + paths are to be diverse from each other."; + reference + "RFC 8800: Path Computation Element Communication Protocol + (PCEP) Extension for Label Switched Path (LSP) + Diversity Constraint Signaling"; } identity objective-function-type { description - "Base objective function type."; + "Base identity for path objective function types."; } identity of-minimize-cost-path { @@ -991,7 +682,8 @@ module ietf-te-types { "Objective function for minimizing path cost."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity of-minimize-load-path { @@ -1001,7 +693,8 @@ module ietf-te-types { paths."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity of-maximize-residual-bandwidth { @@ -1010,36 +703,55 @@ module ietf-te-types { "Objective function for maximizing residual bandwidth."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity of-minimize-agg-bandwidth-consumption { base objective-function-type; + status obsolete; description "Objective function for minimizing aggregate bandwidth - consumption."; + consumption. + + This identity has been obsoleted: the + 'svec-of-minimize-agg-bandwidth-consumption' identity SHOULD + be used instead."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity of-minimize-load-most-loaded-link { base objective-function-type; + status obsolete; description "Objective function for minimizing the load on the link that - is carrying the highest load."; + is carrying the highest load. + + This identity has been obsoleted: the + 'svec-of-minimize-load-most-loaded-link' identity SHOULD + be used instead."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity of-minimize-cost-path-set { base objective-function-type; + status obsolete; description - "Objective function for minimizing the cost on a path set."; + "Objective function for minimizing the cost on a path set. + + This identity has been obsoleted: the + 'svec-of-minimize-cost-path-set' identity SHOULD + be used instead."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity path-computation-method { @@ -1053,8 +765,8 @@ module ietf-te-types { "Indicates a constrained-path LSP in which the path is computed by the local LER."; reference - "RFC 3272: Overview and Principles of Internet Traffic - Engineering, Section 5.4"; + "RFC 9522: Overview and Principles of Internet Traffic + Engineering, Section 4.4"; } identity path-externally-queried { @@ -1064,14 +776,15 @@ module ietf-te-types { querying an external source, such as a PCE server. In the case that an LSP is defined to be externally queried, it may also have associated explicit definitions (provided - to the external source to aid computation). The path that is - returned by the external source may require further local - computation on the device."; + to the external source to aid computation). + + The path that is returned by the external source may + require further local computation on the device."; reference - "RFC 3272: Overview and Principles of Internet Traffic - Engineering + "RFC 9522: Overview and Principles of Internet Traffic + Engineering RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; + Protocol Generic Requirements"; } identity path-explicitly-defined { @@ -1082,8 +795,8 @@ module ietf-te-types { hops."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 3272: Overview and Principles of Internet Traffic - Engineering"; + RFC 9522: Overview and Principles of Internet Traffic + Engineering"; } identity lsp-metric-type { @@ -1099,7 +812,7 @@ module ietf-te-types { cost to the LSP's tail end."; reference "RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; + Protocol Generic Requirements"; } identity lsp-metric-absolute { @@ -1109,7 +822,7 @@ module ietf-te-types { refers is specified as an absolute value."; reference "RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; + Protocol Generic Requirements"; } identity lsp-metric-inherited { @@ -1120,7 +833,7 @@ module ietf-te-types { from the IGP cost."; reference "RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; + Protocol Generic Requirements"; } identity te-tunnel-type { @@ -1142,8 +855,9 @@ module ietf-te-types { "TE P2MP tunnel type."; reference "RFC 4875: Extensions to Resource Reservation Protocol - - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE - Label Switched Paths (LSPs)"; + Traffic Engineering (RSVP-TE) for + Point-to-Multipoint TE Label Switched Paths + (LSPs)"; } identity tunnel-action-type { @@ -1214,6 +928,15 @@ module ietf-te-types { "Tunnel's administrative state is down."; } + identity tunnel-admin-state-auto { + base tunnel-admin-state-type; + description + "Tunnel administrative auto state. The administrative status + in state datastore transitions to 'tunnel-admin-up' when the + tunnel used by the client layer, and to 'tunnel-admin-down' + when it is not used by the client layer."; + } + identity tunnel-state-type { description "Base identity for TE tunnel states."; @@ -1302,7 +1025,7 @@ module ietf-te-types { valid, but any packet mapped over the tunnel is dropped."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 2.5"; + Section 2.5"; } identity path-invalidation-action-teardown { @@ -1311,7 +1034,7 @@ module ietf-te-types { "TE path invalidation action teardown."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 2.5"; + Section 2.5"; } identity lsp-restoration-type { @@ -1319,6 +1042,12 @@ module ietf-te-types { "Base identity from which LSP restoration types are derived."; } + identity lsp-restoration-restore-none { + base lsp-restoration-type; + description + "No LSP affected by a failure is restored."; + } + identity lsp-restoration-restore-any { base lsp-restoration-type; description @@ -1337,31 +1066,55 @@ module ietf-te-types { "Base identity for LSP restoration schemes."; } - identity restoration-scheme-preconfigured { + identity restoration-scheme-rerouting { base restoration-scheme-type; description - "Restoration LSP is preconfigured prior to the failure."; + "Restoration LSP is computed, signalled and configured after + the failure detection. + + This restoration scheme is also known as + 'Full LSP Re-routing', with the alternate route being + computed after the failure occurs."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 11"; + } + + identity restoration-scheme-preconfigured { + base restoration-scheme-type; + description + "Restoration LSP is precomputed, presignalled and + preconfigured prior to the failure."; } identity restoration-scheme-precomputed { base restoration-scheme-type; description - "Restoration LSP is precomputed prior to the failure."; + "Restoration LSP is precomputed, but not presignalled nor + preconfigured, prior to the failure. + + This restoration scheme is also known as + 'Full LSP Re-routing', with the alternate route being + precomputed and stored for use when the failure occurs."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 11"; } identity restoration-scheme-presignaled { base restoration-scheme-type; description - "Restoration LSP is presignaled prior to the failure."; + "Restoration LSP is presignaled, but not preconfigured, + prior to the failure. + + This restoration scheme is also known as + 'Pre-planned LSP Re-routing'."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 8"; } identity lsp-protection-type { @@ -1369,7 +1122,8 @@ module ietf-te-types { "Base identity from which LSP protection types are derived."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery"; } identity lsp-protection-unprotected { @@ -1378,25 +1132,39 @@ module ietf-te-types { "'Unprotected' LSP protection type."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery"; } identity lsp-protection-reroute-extra { base lsp-protection-type; + status obsolete; description - "'(Full) Rerouting' LSP protection type."; + "'(Full) Rerouting' LSP protection type. + + This identity has been obsoleted: the + 'restoration-scheme-rerouting' or + 'restoration-scheme-precomputed' identity SHOULD be used + instead."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 11"; } identity lsp-protection-reroute { base lsp-protection-type; + status obsolete; description - "'Rerouting without Extra-Traffic' LSP protection type."; + "'Rerouting without Extra-Traffic' LSP protection type. + + This identity has been obsoleted: the + 'restoration-scheme-presignaled' identity SHOULD be used + instead."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 8"; } identity lsp-protection-1-for-n { @@ -1405,7 +1173,8 @@ module ietf-te-types { "'1:N Protection with Extra-Traffic' LSP protection type."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 7.3"; } identity lsp-protection-1-for-1 { @@ -1414,7 +1183,8 @@ module ietf-te-types { "LSP protection '1:1 Protection Type'."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 7"; } identity lsp-protection-unidir-1-plus-1 { @@ -1423,7 +1193,8 @@ module ietf-te-types { "'1+1 Unidirectional Protection' LSP protection type."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 5"; } identity lsp-protection-bidir-1-plus-1 { @@ -1432,7 +1203,8 @@ module ietf-te-types { "'1+1 Bidirectional Protection' LSP protection type."; reference "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 6"; } identity lsp-protection-extra-traffic { @@ -1440,8 +1212,9 @@ module ietf-te-types { description "Extra-Traffic LSP protection type."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery, section 7"; } identity lsp-protection-state { @@ -1453,6 +1226,11 @@ module ietf-te-types { base lsp-protection-state; description "Normal state."; + reference + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity signal-fail-of-protection { @@ -1462,8 +1240,10 @@ module ietf-te-types { that is of higher priority than the forced switchover command."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity lockout-of-protection { @@ -1471,8 +1251,10 @@ module ietf-te-types { description "A Loss of Protection (LoP) command is active."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity forced-switch { @@ -1480,8 +1262,10 @@ module ietf-te-types { description "A forced switchover command is active."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity signal-fail { @@ -1490,8 +1274,10 @@ module ietf-te-types { "There is a signal fail condition on either the working path or the protection path."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity signal-degrade { @@ -1500,8 +1286,10 @@ module ietf-te-types { "There is a signal degrade condition on either the working path or the protection path."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity manual-switch { @@ -1509,17 +1297,21 @@ module ietf-te-types { description "A manual switchover command is active."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity wait-to-restore { base lsp-protection-state; description - "A WTR timer is running."; + "A Wait-to-Restore (WTR) timer is running."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity do-not-revert { @@ -1528,8 +1320,10 @@ module ietf-te-types { "A Do Not Revert (DNR) condition is active because of non-revertive behavior."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity failure-of-protocol { @@ -1538,8 +1332,13 @@ module ietf-te-types { "LSP protection is not working because of a protocol failure condition."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection + to Match the Operational Expectations of + Synchronous Digital Hierarchy, Optical Transport + Network, and Ethernet Transport Network Operators + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity protection-external-commands { @@ -1555,8 +1354,13 @@ module ietf-te-types { command that prevents any switchover action from being taken and, as such, freezes the current state."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection + to Match the Operational Expectations of + Synchronous Digital Hierarchy, Optical Transport + Network, and Ethernet Transport Network Operators + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity clear-freeze { @@ -1564,8 +1368,13 @@ module ietf-te-types { description "An action that clears the active freeze state."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection + to Match the Operational Expectations of + Synchronous Digital Hierarchy, Optical Transport + Network, and Ethernet Transport Network Operators + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-lockout-of-normal { @@ -1575,8 +1384,12 @@ module ietf-te-types { command to ensure that the normal traffic is not allowed to use the protection transport entity."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity clear-lockout-of-normal { @@ -1585,8 +1398,12 @@ module ietf-te-types { "An action that clears the active lockout of the normal state."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-lockout-of-protection { @@ -1597,55 +1414,78 @@ module ietf-te-types { temporarily not available to transport a traffic signal (either normal or Extra-Traffic)."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-forced-switch { base protection-external-commands; description - "A switchover action initiated by an operator command to switch - the Extra-Traffic signal, the normal traffic signal, or the - null signal to the protection transport entity, unless a - switchover command of equal or higher priority is in effect."; + "A switchover action initiated by an operator command to + switch the Extra-Traffic signal, the normal traffic signal, + or the null signal to the protection transport entity, + unless a switchover command of equal or higher priority is + in effect."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-manual-switch { base protection-external-commands; description - "A switchover action initiated by an operator command to switch - the Extra-Traffic signal, the normal traffic signal, or - the null signal to the protection transport entity, unless - a fault condition exists on other transport entities or a - switchover command of equal or higher priority is in effect."; + "A switchover action initiated by an operator command to + switch the Extra-Traffic signal, the normal traffic signal, + or the null signal to the protection transport entity, + unless a fault condition exists on other transport entities + or a switchover command of equal or higher priority is in + effect."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-exercise { base protection-external-commands; description - "An action that starts testing whether or not APS communication - is operating correctly. It is of lower priority than any - other state or command."; + "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 - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection + to Match the Operational Expectations of + Synchronous Digital Hierarchy, Optical Transport + Network, and Ethernet Transport Network Operators + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity clear { base protection-external-commands; description "An action that clears the active near-end lockout of a - protection, forced switchover, manual switchover, WTR state, - or exercise command."; + protection, forced switchover, manual switchover, + Wait-to-Restore (WTR) state, or exercise command."; reference - "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity switching-capabilities { @@ -1653,7 +1493,7 @@ module ietf-te-types { "Base identity for interface switching capabilities."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity switching-psc1 { @@ -1662,7 +1502,7 @@ module ietf-te-types { "Packet-Switch Capable-1 (PSC-1)."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity switching-evpl { @@ -1670,8 +1510,9 @@ module ietf-te-types { description "Ethernet Virtual Private Line (EVPL)."; reference - "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet - Forum and G.8011 Ethernet Service Switching"; + "RFC 6004: Generalized MPLS (GMPLS) Support for Metro + Ethernet Forum and G.8011 Ethernet Service + Switching"; } identity switching-l2sc { @@ -1680,7 +1521,7 @@ module ietf-te-types { "Layer-2 Switch Capable (L2SC)."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity switching-tdm { @@ -1689,7 +1530,7 @@ module ietf-te-types { "Time-Division-Multiplex Capable (TDM)."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity switching-otn { @@ -1698,7 +1539,8 @@ module ietf-te-types { "OTN-TDM capable."; reference "RFC 7138: Traffic Engineering Extensions to OSPF for GMPLS - Control of Evolving G.709 Optical Transport Networks"; + Control of Evolving G.709 Optical Transport + Networks"; } identity switching-dcsc { @@ -1707,7 +1549,8 @@ module ietf-te-types { "Data Channel Switching Capable (DCSC)."; reference "RFC 6002: Generalized MPLS (GMPLS) Data Channel - Switching Capable (DCSC) and Channel Set Label Extensions"; + Switching Capable (DCSC) and Channel Set Label + Extensions"; } identity switching-lsc { @@ -1716,7 +1559,7 @@ module ietf-te-types { "Lambda-Switch Capable (LSC)."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity switching-fsc { @@ -1725,7 +1568,7 @@ module ietf-te-types { "Fiber-Switch Capable (FSC)."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-types { @@ -1733,7 +1576,7 @@ module ietf-te-types { "Base identity for encoding types."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-packet { @@ -1742,7 +1585,7 @@ module ietf-te-types { "Packet LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-ethernet { @@ -1751,7 +1594,7 @@ module ietf-te-types { "Ethernet LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-pdh { @@ -1760,7 +1603,7 @@ module ietf-te-types { "ANSI/ETSI PDH LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-sdh { @@ -1769,7 +1612,7 @@ module ietf-te-types { "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-digital-wrapper { @@ -1778,7 +1621,7 @@ module ietf-te-types { "Digital Wrapper LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-lambda { @@ -1787,7 +1630,7 @@ module ietf-te-types { "Lambda (photonic) LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-fiber { @@ -1796,7 +1639,7 @@ module ietf-te-types { "Fiber LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-fiber-channel { @@ -1805,7 +1648,7 @@ module ietf-te-types { "FiberChannel LSP encoding."; reference "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; + Signaling Functional Description"; } identity lsp-encoding-oduk { @@ -1814,8 +1657,8 @@ module ietf-te-types { "G.709 ODUk (Digital Path) LSP encoding."; reference "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Extensions for G.709 Optical Transport Networks - Control"; + Signaling Extensions for G.709 Optical Transport + Networks Control"; } identity lsp-encoding-optical-channel { @@ -1824,8 +1667,8 @@ module ietf-te-types { "G.709 Optical Channel LSP encoding."; reference "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Extensions for G.709 Optical Transport Networks - Control"; + Signaling Extensions for G.709 Optical Transport + Networks Control"; } identity lsp-encoding-line { @@ -1834,7 +1677,8 @@ module ietf-te-types { "Line (e.g., 8B/10B) LSP encoding."; reference "RFC 6004: Generalized MPLS (GMPLS) Support for Metro - Ethernet Forum and G.8011 Ethernet Service Switching"; + Ethernet Forum and G.8011 Ethernet Service + Switching"; } identity path-signaling-type { @@ -1894,6 +1738,14 @@ module ietf-te-types { base route-usage-type; description "'Include route' object."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3.2 + RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP), Section 7.12 + RFC 7896: Update to the Include Route Object (IRO) + Specification in the Path Computation Element + Communication Protocol (PCEP)"; } identity route-exclude-object { @@ -1902,84 +1754,195 @@ module ietf-te-types { "'Exclude route' object."; reference "RFC 4874: Exclude Routes - Extension to Resource ReserVation - Protocol-Traffic Engineering (RSVP-TE)"; + Protocol-Traffic Engineering (RSVP-TE)"; } identity route-exclude-srlg { base route-usage-type; description - "Excludes SRLGs."; + "Excludes Shared Risk Link Groups (SRLGs)."; reference "RFC 4874: Exclude Routes - Extension to Resource ReserVation - Protocol-Traffic Engineering (RSVP-TE)"; + Protocol-Traffic Engineering (RSVP-TE)"; } - identity path-metric-type { + identity path-metric-optimization-type { description - "Base identity for the path metric type."; + "Base identity used to define the path metric optimization + types."; } - identity path-metric-te { - base path-metric-type; + identity link-path-metric-type { description - "TE path metric."; - reference - "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a - second MPLS Traffic Engineering (TE) Metric"; - } + "Base identity used to define the link and the path metric + types. - identity path-metric-igp { - base path-metric-type; - description - "IGP path metric."; - reference - "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a - second MPLS Traffic Engineering (TE) Metric"; + The unit of the path metric value is interpreted in the + context of the path metric type and the derived identities + SHOULD describe the unit of the path metric types they + define."; } - identity path-metric-hop { - base path-metric-type; + identity link-metric-type { + base link-path-metric-type; description - "Hop path metric."; + "Base identity for the link metric types."; } - identity path-metric-delay-average { - base path-metric-type; + identity link-metric-te { + base link-metric-type; description - "Average unidirectional link delay."; + "Traffic Engineering (TE) Link Metric."; reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2, Section 2.5.5 + RFC 5305: IS-IS Extensions for Traffic Engineering, + Section 3.7"; + } + + identity link-metric-igp { + base link-metric-type; + description + "Interior Gateway Protocol (IGP) Link Metric."; + reference + "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric + as a second MPLS Traffic Engineering (TE) + Metric"; + } + + identity link-metric-delay-average { + base link-metric-type; + description + "Unidirectional Link Delay, measured in units of + microseconds."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions, Section 4.1 + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 4.1"; + } + + identity link-metric-delay-minimum { + base link-metric-type; + description + "Minimum unidirectional Link Delay, measured in units of + microseconds."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions, Section 4.2 + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 4.2"; + } + + identity link-metric-delay-maximum { + base link-metric-type; + description + "Maximum unidirectional Link Delay, measured in units of + microseconds."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions, Section 4.2 + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 4.2"; + } + + identity link-metric-residual-bandwidth { + base link-metric-type; + description + "Unidirectional Residual Bandwidth, measured in units of + bytes per second. + + It is defined to be Maximum Bandwidth minus the bandwidth + currently allocated to LSPs."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions, Section 4.5 + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 4.5"; + } + + identity path-metric-type { + base link-path-metric-type; + base path-metric-optimization-type; + description + "Base identity for the path metric types."; + } + + identity path-metric-te { + base path-metric-type; + description + "Traffic Engineering (TE) Path Metric."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP), Section 7.8"; + } + + identity path-metric-igp { + base path-metric-type; + description + "Interior Gateway Protocol (IGP) Path Metric."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP), section 7.8"; + } + + identity path-metric-hop { + base path-metric-type; + description + "Hop Count Path Metric."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP), Section 7.8"; + } + + identity path-metric-delay-average { + base path-metric-type; + description + "The Path Delay Metric, measured in units of + microseconds."; + reference + "RFC 8233: Extensions to the Path Computation Element + Communication Protocol (PCEP) to Compute + Service-Aware Label Switched Paths (LSPs), + Section 3.1.1"; } identity path-metric-delay-minimum { base path-metric-type; description - "Minimum unidirectional link delay."; + "The Path Min Delay Metric, measured in units of + microseconds."; reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; + "I-D.ietf-pce-sid-algo: Carrying SR-Algorithm information + in PCE-based Networks, + draft-ietf-pce-sid-algo-29, + Sections 4.5.1 and 4.5.2"; } identity path-metric-residual-bandwidth { base path-metric-type; description - "Unidirectional Residual Bandwidth, which is defined to be - Maximum Bandwidth (RFC 3630) minus the bandwidth currently - allocated to LSPs."; + "The Path Residual Bandwidth, defined as the minimum Link + Residual Bandwidth all the links along the path. + + The Path Residual Bandwidth can be seen as the path + metric associated with the Maximum residual Bandwidth Path + (MBP) objective function."; reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2 - RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; } identity path-metric-optimize-includes { - base path-metric-type; + base path-metric-optimization-type; description "A metric that optimizes the number of included resources specified in a set."; } identity path-metric-optimize-excludes { - base path-metric-type; + base path-metric-optimization-type; description "A metric that optimizes to a maximum the number of excluded resources specified in a set."; @@ -1993,13 +1956,15 @@ module ietf-te-types { identity path-tiebreaker-minfill { base path-tiebreaker-type; description - "Min-Fill LSP path placement."; + "Min-Fill LSP path placement: selects the path with the most + available bandwidth (load balance LSPs over more links)."; } identity path-tiebreaker-maxfill { base path-tiebreaker-type; description - "Max-Fill LSP path placement."; + "Max-Fill LSP path placement: selects the path with the least + available bandwidth (packing more LSPs over few links)."; } identity path-tiebreaker-random { @@ -2012,7 +1977,8 @@ module ietf-te-types { description "Base identity for resource class affinities."; reference - "RFC 2702: Requirements for Traffic Engineering Over MPLS"; + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 2702: Requirements for Traffic Engineering Over MPLS"; } identity resource-aff-include-all { @@ -2022,8 +1988,8 @@ module ietf-te-types { tunnel, all of which must be present for a link to be acceptable."; reference - "RFC 2702: Requirements for Traffic Engineering Over MPLS - RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 2702: Requirements for Traffic Engineering Over MPLS"; } identity resource-aff-include-any { @@ -2033,8 +1999,8 @@ module ietf-te-types { tunnel, any of which must be present for a link to be acceptable."; reference - "RFC 2702: Requirements for Traffic Engineering Over MPLS - RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 2702: Requirements for Traffic Engineering Over MPLS"; } identity resource-aff-exclude-any { @@ -2043,16 +2009,16 @@ module ietf-te-types { "The set of attribute filters associated with a tunnel, any of which renders a link unacceptable."; reference - "RFC 2702: Requirements for Traffic Engineering Over MPLS - RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 2702: Requirements for Traffic Engineering Over MPLS"; } identity te-optimization-criterion { description "Base identity for the TE optimization criteria."; reference - "RFC 3272: Overview and Principles of Internet Traffic - Engineering"; + "RFC 9522: Overview and Principles of Internet Traffic + Engineering"; } identity not-optimized { @@ -2067,7 +2033,8 @@ module ietf-te-types { "Optimized on cost."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity delay { @@ -2076,54 +2043,1009 @@ module ietf-te-types { "Optimized on delay."; reference "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; + Computation Element Communication Protocol + (PCEP)"; } identity path-computation-srlg-type { description - "Base identity for SRLG path computation."; + "Base identity for Shared Risk Link Group (SRLG) path + computation."; } identity srlg-ignore { base path-computation-srlg-type; description - "Ignores SRLGs in the path computation."; + "Ignores Shared Risk Link Groups (SRLGs) in the path + computation."; } identity srlg-strict { base path-computation-srlg-type; description - "Includes a strict SRLG check in the path computation."; - } + "Includes a strict Shared Risk Link Group (SRLG) check in + the path computation."; + } + + identity srlg-preferred { + base path-computation-srlg-type; + description + "Includes a preferred Shared Risk Link Group (SRLG) check in + the path computation."; + } + + identity srlg-weighted { + base path-computation-srlg-type; + description + "Includes a weighted Shared Risk Link Group (SRLG) check in + the path computation."; + } + + identity path-computation-error-reason { + description + "Base identity for path computation error reasons."; + } + + identity path-computation-error-path-not-found { + base path-computation-error-reason; + description + "Path computation has failed because of an unspecified + reason."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP), Section 7.5"; + } + + identity path-computation-error-no-topology { + base path-computation-error-reason; + description + "Path computation has failed because there is no topology + with the provided topology-identifier."; + } + + identity path-computation-error-no-dependent-server { + base path-computation-error-reason; + description + "Path computation has failed because one or more dependent + path computation servers are unavailable. + + The dependent path computation server could be + a Backward-Recursive Path Computation (BRPC) downstream + PCE or a child PCE."; + reference + "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC) + Procedure to Compute Shortest Constrained + Inter-Domain Traffic Engineering Label Switched + Paths + RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture"; + } + + identity path-computation-error-pce-unavailable { + base path-computation-error-reason; + description + "Path computation has failed because PCE is not available. + + It corresponds to bit 31 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP) + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-no-inclusion-hop { + base path-computation-error-reason; + description + "Path computation has failed because there is no + node or link provided by one or more inclusion hops."; + } + + identity path-computation-error-destination-unknown-in-domain { + base path-computation-error-reason; + description + "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 + NO-PATH-VECTOR TLV."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-no-resource { + base path-computation-error-reason; + description + "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 + NO-PATH-VECTOR TLV."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-child-pce-unresponsive { + base path-computation-error-no-dependent-server; + description + "Path computation has failed because child PCE is not + responsive. + + It corresponds to bit 21 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-destination-domain-unknown { + base path-computation-error-reason; + description + "Path computation has failed because the destination domain + was unknown. + + It corresponds to bit 22 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-p2mp { + base path-computation-error-reason; + description + "Path computation has failed because of P2MP reachability + problem. + + It corresponds to bit 24 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 8306: Extensions to the Path Computation Element + Communication Protocol (PCEP) for + Point-to-Multipoint Traffic Engineering Label + Switched Paths + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-no-gco-migration { + base path-computation-error-reason; + description + "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 + NO-PATH-VECTOR TLV."; + reference + "RFC 5557: Path Computation Element Communication Protocol + (PCEP) Requirements and Protocol Extensions in + Support of Global Concurrent Optimization + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-no-gco-solution { + base path-computation-error-reason; + description + "Path computation has failed because of no GCO solution + found. + + It corresponds to bit 25 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 5557: Path Computation Element Communication Protocol + (PCEP) Requirements and Protocol Extensions in + Support of Global Concurrent Optimization + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-pks-expansion { + base path-computation-error-reason; + description + "Path computation has failed because of Path-Key Subobject + (PKS) expansion failure. + + It corresponds to bit 27 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 5520: Preserving Topology Confidentiality in + Inter-Domain Path Computation Using a + Path-Key-Based Mechanism + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-brpc-chain-unavailable { + base path-computation-error-no-dependent-server; + description + "Path computation has failed because PCE BRPC chain + unavailable. + + 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) + Procedure to Compute Shortest Constrained + Inter-Domain Traffic Engineering Label Switched + Paths + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-source-unknown { + base path-computation-error-reason; + description + "Path computation has failed because source node is + unknown. + + It corresponds to bit 29 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP); + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity path-computation-error-destination-unknown { + base path-computation-error-reason; + description + "Path computation has failed because destination node is + unknown. + + It corresponds to bit 30 of the Flags field of the + NO-PATH-VECTOR TLV."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP); + + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; + } + + identity protocol-origin-type { + description + "Base identity for protocol origin type."; + } + + identity protocol-origin-api { + base protocol-origin-type; + description + "Protocol origin is via Application Programming Interface + (API)."; + } + + identity protocol-origin-pcep { + base protocol-origin-type; + description + "Protocol origin is Path Computation Engine Protocol + (PCEP)."; + reference + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP)"; + } + + identity protocol-origin-bgp { + base protocol-origin-type; + description + "Protocol origin is Border Gateway Protocol (BGP)."; + reference + "RFC 9012: The BGP Tunnel Encapsulation Attribute"; + } + + identity svec-objective-function-type { + description + "Base identity for SVEC objective function type."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity svec-of-minimize-agg-bandwidth-consumption { + base svec-objective-function-type; + description + "Objective function for minimizing aggregate bandwidth + consumption (MBC)."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-of-minimize-load-most-loaded-link { + base svec-objective-function-type; + description + "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 + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-of-minimize-cost-path-set { + base svec-objective-function-type; + description + "Objective function for minimizing the cost on a path set + (MCC)."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-of-minimize-common-transit-domain { + base svec-objective-function-type; + description + "Objective function for minimizing the number of common + transit domains (MCTD)."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture."; + } + + identity svec-of-minimize-shared-link { + base svec-objective-function-type; + description + "Objective function for minimizing the number of shared + links (MSL)."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture."; + } + + identity svec-of-minimize-shared-srlg { + base svec-objective-function-type; + description + "Objective function for minimizing the number of shared + Shared Risk Link Groups (SRLG) (MSS)."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture."; + } + + identity svec-of-minimize-shared-nodes { + base svec-objective-function-type; + description + "Objective function for minimizing the number of shared + nodes (MSN)."; + reference + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture."; + } + + identity svec-metric-type { + description + "Base identity for SVEC metric type."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity svec-metric-cumulative-te { + base svec-metric-type; + description + "Cumulative TE cost."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-metric-cumulative-igp { + base svec-metric-type; + description + "Cumulative IGP cost."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-metric-cumulative-hop { + base svec-metric-type; + description + "Cumulative Hop path metric."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-metric-aggregate-bandwidth-consumption { + base svec-metric-type; + description + "Aggregate bandwidth consumption."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + identity svec-metric-load-of-the-most-loaded-link { + base svec-metric-type; + description + "Load of the most loaded link."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; + } + + /* + * Typedefs + */ + + typedef admin-group { + type yang:hex-string { + /* 01:02:03:04 */ + length "1..11"; + } + description + "Administrative group / resource class / color representation + in 'hex-string' type. + + The most significant byte in the hex-string is the farthest + to the left in the byte sequence. + + Leading zero bytes in the configured value may be omitted + for brevity."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2 + RFC 5305: IS-IS Extensions for Traffic Engineering + RFC 7308: Extended Administrative Groups in MPLS Traffic + Engineering (MPLS-TE)"; + } + + typedef admin-groups { + type union { + type admin-group; + type extended-admin-group; + } + description + "Derived types for TE administrative groups."; + } + + typedef extended-admin-group { + type yang:hex-string; + description + "Extended administrative group / resource class / color + representation in 'hex-string' type. + + The most significant byte in the hex-string is the farthest + to the left in the byte sequence. + + Leading zero bytes in the configured value may be omitted + for brevity."; + reference + "RFC 7308: Extended Administrative Groups in MPLS Traffic + Engineering (MPLS-TE)"; + } + + typedef path-attribute-flags { + type union { + type identityref { + base session-attributes-flags; + } + type identityref { + base lsp-attributes-flags; + } + } + description + "Path attributes flags type."; + } + + typedef performance-metrics-normality { + type enumeration { + enum unknown { + value 0; + description + "Unknown."; + } + enum normal { + value 1; + description + "Normal. + + Indicates that the anomalous bit is not set."; + } + enum abnormal { + value 2; + description + "Abnormal. + + Indicates that the anomalous bit is set."; + } + } + description + "Indicates whether a performance metric is normal (anomalous + bit not set), abnormal (anomalous bit set), or unknown."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + } + + typedef srlg { + type uint32; + description + "Shared Risk Link Group (SRLG) type."; + reference + "RFC 4203: OSPF Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS) + RFC 5307: IS-IS Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS)"; + } + + typedef te-common-status { + type enumeration { + enum up { + description + "Enabled."; + } + enum down { + description + "Disabled."; + } + enum testing { + description + "In some test mode."; + } + enum preparing-maintenance { + description + "The resource is disabled in the control plane to prepare + for a graceful shutdown for maintenance purposes."; + reference + "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS + Traffic Engineering Networks"; + } + enum maintenance { + description + "The resource is disabled in the data plane for maintenance + purposes."; + } + enum unknown { + description + "Status is unknown."; + } + } + description + "Defines a type representing the common states of a TE + resource."; + } + + typedef te-bandwidth { + type string { + pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' + + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' + + '[pP](\+)?(12[0-7]|' + + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' + + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' + + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' + + '[pP](\+)?(12[0-7]|' + + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; + } + description + "This is the generic bandwidth type. + + It is a string containing a list of numbers separated by + commas, where each of these numbers can be non-negative + decimal, hex integer, or hex float, as defined in + ISO/IEC 9899: + + (dec | hex | float)[*(','(dec | hex | float))] + + For the packet-switching type, the string encoding MUST follow + the type 'bandwidth-ieee-float32' as defined in RFC 8294 + (e.g., 0x1p10), where the units are in bytes per second. + + Canonically, the string is represented as all lowercase and in + hex, where the prefix '0x' precedes the hex number."; + reference + "ISO/IEC 9899:2024: Information Technology - Programming + Languages - C, Section 6.4.4.2 + RFC 8294: Common YANG Data Types for the Routing Area"; + } + + typedef te-ds-class { + type uint8 { + range "0..7"; + } + description + "The Differentiated Services Class-Type of traffic."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering, Section 4.3.1"; + } + + typedef te-global-id { + type uint32; + description + "An identifier to uniquely identify an operator, which can be + either a provider or a client. + + The definition of this type is taken from RFCs 6370 and 5003. + + This attribute type is used solely to provide a globally + unique context for TE topologies."; + reference + "RFC 5003: Attachment Individual Identifier (AII) Types for + Aggregation + RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers"; + } + + typedef te-hop-type { + type enumeration { + enum loose { + description + "A loose hop in an explicit path."; + } + enum strict { + description + "A strict hop in an explicit path."; + } + } + description + "Enumerated type for specifying loose or strict paths."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3.3"; + } + + typedef te-link-access-type { + type enumeration { + enum point-to-point { + description + "The link is point-to-point."; + } + enum multi-access { + description + "The link is multi-access, including broadcast and NBMA."; + } + } + description + "The access types of a TE link."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2"; + } + + typedef te-label-direction { + type enumeration { + enum forward { + description + "Label allocated for the forward LSP direction."; + } + enum reverse { + description + "Label allocated for the reverse LSP direction."; + } + } + description + "Enumerated type for specifying the forward or reverse + label."; + } + + typedef te-link-direction { + type enumeration { + enum incoming { + description + "The explicit route represents an incoming link on + a node."; + } + enum outgoing { + description + "The explicit route represents an outgoing link on + a node."; + } + } + description + "Enumerated type for specifying the direction of a link on + a node."; + } + + typedef te-metric { + type uint32; + description + "Traffic Engineering (TE) metric."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2, Section 2.5.5 + RFC 5305: IS-IS Extensions for Traffic Engineering, + Section 3.7"; + } + + typedef te-node-id { + type union { + type yang:dotted-quad; + type inet:ipv6-address-no-zone; + } + description + "A type representing the identifier for a node in a TE + topology. + + The identifier is represented either as 4 octets in + dotted-quad notation, or as 16 octets in full, mixed, + shortened, or shortened-mixed IPv6 address notation. + + This attribute MAY be mapped to the Router Address TLV + described in Section 2.4.1 of RFC 3630, the TE Router ID + described in Section 3 of RFC 6827, the Traffic Engineering + Router ID TLV described in Section 4.3 of RFC 5305, the TE + Router ID TLV described in Section 3.2.1 of RFC 6119, or the + IPv6 TE Router ID TLV described in Section 4.1 of RFC 6119. + + The reachability of such a TE node MAY be achieved by a + mechanism such as that described in Section 6.2 of RFC 6827."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2, Section 2.4.1 + RFC 5305: IS-IS Extensions for Traffic Engineering, + Section 4.3 + RFC 6119: IPv6 Traffic Engineering in IS-IS, Section 3.2.1 + RFC 6827: Automatically Switched Optical Network (ASON) + Routing for OSPFv2 Protocols, Section 3"; + } + + typedef te-oper-status { + type te-common-status; + description + "Defines a type representing the operational status of + a TE resource."; + } + + typedef te-admin-status { + type te-common-status; + description + "Defines a type representing the administrative status of + a TE resource."; + } + + typedef te-path-disjointness { + type bits { + bit node { + position 0; + description + "Node disjoint."; + } + bit link { + position 1; + description + "Link disjoint."; + } + bit srlg { + position 2; + description + "Shared Risk Link Group (SRLG) disjoint."; + } + } + description + "Type of the resource disjointness for a TE tunnel path."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery"; + } + + typedef te-recovery-status { + type enumeration { + enum normal { + description + "Both the recovery span and the working span are fully + allocated and active, data traffic is being + transported over (or selected from) the working + span, and no trigger events are reported."; + } + enum recovery-started { + description + "The recovery action has been started but not completed."; + } + enum recovery-succeeded { + description + "The recovery action has succeeded. + + The working span has reported a failure/degrade condition, + and the user traffic is being transported (or selected) + on the recovery span."; + } + enum recovery-failed { + description + "The recovery action has failed."; + } + enum reversion-started { + description + "The reversion has started."; + } + enum reversion-succeeded { + description + "The reversion action has succeeded."; + } + enum reversion-failed { + description + "The reversion has failed."; + } + enum recovery-unavailable { + description + "The recovery is unavailable, as a result of either an + operator's lockout command or a failure condition + detected on the recovery span."; + } + enum recovery-admin { + description + "The operator has issued a command to switch the user + traffic to the recovery span."; + } + enum wait-to-restore { + description + "The recovery domain is recovering from a failure/degrade + condition on the working span that is being controlled by + the Wait-to-Restore (WTR) timer."; + } + } + description + "Defines the status of a recovery action."; + reference + "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection + RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; + } + + typedef te-template-name { + type string { + pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; + } + description + "A type for the name of a TE node template or TE link + template."; + } + + typedef te-topology-event-type { + type enumeration { + enum add { + value 0; + description + "A TE node or TE link has been added."; + } + enum remove { + value 1; + description + "A TE node or TE link has been removed."; + } + enum update { + value 2; + description + "A TE node or TE link has been updated."; + } + } + description + "TE event type for notifications."; + } + + typedef te-topology-id { + type union { + type string { + length "0"; + // empty string + } + type string { + pattern '([a-zA-Z0-9\-_.]+:)*' + + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; + } + } + description + "An identifier for a topology. + + It is optional to have one or more prefixes at the beginning, + separated by colons. + + The prefixes can be 'network-types' as defined in the + 'ietf-network' module in RFC 8345, to help the user better + understand the topology before further inquiry is made."; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + typedef te-tp-id { + type union { + type uint32; + // Unnumbered + type inet:ip-address; + // IPv4 or IPv6 address + } + description + "An identifier for a TE link endpoint on a node. - identity srlg-preferred { - base path-computation-srlg-type; - description - "Includes a preferred SRLG check in the path computation."; + This attribute is mapped to a local or remote link identifier + as defined in RFCs 3630 and 5305."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2 + RFC 5305: IS-IS Extensions for Traffic Engineering"; } - identity srlg-weighted { - base path-computation-srlg-type; + typedef path-type { + type enumeration { + enum primary-path { + description + "Indicates that the TE path is a primary path."; + } + enum secondary-path { + description + "Indicates that the TE path is a secondary path."; + } + enum primary-reverse-path { + description + "Indicates that the TE path is a primary reverse path."; + } + enum secondary-reverse-path { + description + "Indicates that the TE path is a secondary reverse path."; + } + } description - "Includes a weighted SRLG check in the path computation."; + "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 bandwidth groupings - **/ + */ grouping te-bandwidth { description "This grouping defines the generic TE bandwidth. + For some known data-plane technologies, specific modeling - structures are specified. The string-encoded 'te-bandwidth' - type is used for unspecified technologies. + structures are specified. + + The string-encoded 'te-bandwidth' type is used for + unspecified technologies. + The modeling structure can be augmented later for other technologies."; container te-bandwidth { description - "Container that specifies TE bandwidth. The choices - can be augmented for specific data-plane technologies."; + "Container that specifies TE bandwidth. + + The choices can be augmented for specific data-plane + technologies."; choice technology { default "generic"; description @@ -2139,20 +3061,24 @@ module ietf-te-types { } } - /** + /* * TE label groupings - **/ + */ grouping te-label { description "This grouping defines the generic TE label. + The modeling structure can be augmented for each technology. + For unspecified technologies, 'rt-types:generalized-label' is used."; container te-label { description - "Container that specifies the TE label. The choices can - be augmented for specific data-plane technologies."; + "Container that specifies the TE label. + + The choices can be augmented for specific data-plane + technologies."; choice technology { default "generic"; description @@ -2201,34 +3127,38 @@ module ietf-te-types { default ""; description "When the datastore contains several topologies, - 'topology-id' distinguishes between them. If omitted, - the default (empty) string for this leaf is assumed."; + 'topology-id' distinguishes between them. + + If omitted, the default (empty) string for this leaf is + assumed."; } } } - /** + /* * TE performance metrics groupings - **/ + */ grouping performance-metrics-one-way-delay-loss { description "Performance Metrics (PM) information in real time that can - be applicable to links or connections. PM defined in this - grouping are applicable to generic TE PM as well as packet TE - PM."; + be applicable to links or connections. + + PM defined in this grouping are applicable to generic TE PM + as well as packet TE PM."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; leaf one-way-delay { type uint32 { range "0..16777215"; } + units "microseconds"; description - "One-way delay or latency in microseconds."; + "One-way delay or latency."; } leaf one-way-delay-normality { type te-types:performance-metrics-normality; @@ -2239,21 +3169,24 @@ module ietf-te-types { grouping performance-metrics-two-way-delay-loss { description - "PM information in real time that can be applicable to links or - connections. PM defined in this grouping are applicable to - generic TE PM as well as packet TE PM."; + "Performance Metrics (PM) information in real time that can be + applicable to links or connections. + + PM defined in this grouping are applicable to generic TE PM + as well as packet TE PM."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; leaf two-way-delay { type uint32 { range "0..16777215"; } + units "microseconds"; description - "Two-way delay or latency in microseconds."; + "Two-way delay or latency."; } leaf two-way-delay-normality { type te-types:performance-metrics-normality; @@ -2264,15 +3197,17 @@ module ietf-te-types { grouping performance-metrics-one-way-bandwidth { description - "PM information in real time that can be applicable to links. + "Performance Metrics (PM) information in real time that can be + applicable to links. + PM defined in this grouping are applicable to generic TE PM as well as packet TE PM."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; leaf one-way-residual-bandwidth { type rt-types:bandwidth-ieee-float32; units "bytes per second"; @@ -2283,7 +3218,7 @@ module ietf-te-types { provides an aggregated remainder across QoS classes."; reference "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; + Version 2"; } leaf one-way-residual-bandwidth-normality { type te-types:performance-metrics-normality; @@ -2298,9 +3233,10 @@ module ietf-te-types { description "Available bandwidth that is defined to be residual bandwidth minus the measured bandwidth used for the - actual forwarding of non-RSVP-TE LSP packets. For a - bundled link, available bandwidth is defined to be the - sum of the component link available bandwidths."; + actual forwarding of non-RSVP-TE LSP packets. + + For a bundled link, available bandwidth is defined to be + the sum of the component link available bandwidths."; } leaf one-way-available-bandwidth-normality { type te-types:performance-metrics-normality; @@ -2328,14 +3264,21 @@ module ietf-te-types { grouping one-way-performance-metrics { description - "One-way PM throttle grouping."; + "One-way Performance Metrics (PM) throttle grouping."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; leaf one-way-delay { type uint32 { range "0..16777215"; } + units "microseconds"; default "0"; description - "One-way delay or latency in microseconds."; + "One-way delay or latency."; } leaf one-way-residual-bandwidth { type rt-types:bandwidth-ieee-float32; @@ -2347,7 +3290,7 @@ module ietf-te-types { provides an aggregated remainder across QoS classes."; reference "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; + Version 2"; } leaf one-way-available-bandwidth { type rt-types:bandwidth-ieee-float32; @@ -2356,9 +3299,10 @@ module ietf-te-types { description "Available bandwidth that is defined to be residual bandwidth minus the measured bandwidth used for the - actual forwarding of non-RSVP-TE LSP packets. For a - bundled link, available bandwidth is defined to be the - sum of the component link available bandwidths."; + actual forwarding of non-RSVP-TE LSP packets. + + For a bundled link, available bandwidth is defined to be + the sum of the component link available bandwidths."; } leaf one-way-utilized-bandwidth { type rt-types:bandwidth-ieee-float32; @@ -2374,14 +3318,21 @@ module ietf-te-types { grouping two-way-performance-metrics { description - "Two-way PM throttle grouping."; + "Two-way Performance Metrics (PM) throttle grouping."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; leaf two-way-delay { type uint32 { range "0..16777215"; } + units "microseconds"; default "0"; description - "Two-way delay or latency in microseconds."; + "Two-way delay or latency."; } } @@ -2395,16 +3346,16 @@ module ietf-te-types { grouping performance-metrics-attributes { description - "Contains PM attributes."; + "Contains Performance Metrics (PM) attributes."; container performance-metrics-one-way { description "One-way link performance information in real time."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; uses performance-metrics-one-way-delay-loss; uses performance-metrics-one-way-bandwidth; } @@ -2413,14 +3364,14 @@ module ietf-te-types { "Two-way link performance information in real time."; reference "RFC 6374: Packet Loss and Delay Measurement for MPLS - Networks"; + Networks"; uses performance-metrics-two-way-delay-loss; } } grouping performance-metrics-throttle-container { description - "Controls PM throttling."; + "Controls Performance Metrics (PM) throttling."; container throttle { must 'suppression-interval >= measure-interval' { error-message "'suppression-interval' cannot be less than " @@ -2433,61 +3384,63 @@ module ietf-te-types { "Link performance information in real time."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; leaf one-way-delay-offset { type uint32 { range "0..16777215"; } + units "microseconds"; default "0"; description "Offset value to be added to the measured delay value."; } leaf measure-interval { type uint32; + units "seconds"; default "30"; description - "Interval, in seconds, to measure the extended metric - values."; + "Interval to measure the extended metric values."; } leaf advertisement-interval { type uint32; + units "seconds"; default "0"; description - "Interval, in seconds, to advertise the extended metric - values."; + "Interval to advertise the extended metric values."; } leaf suppression-interval { type uint32 { range "1..max"; } + units "seconds"; default "120"; description - "Interval, in seconds, to suppress advertisement of the - extended metric values."; + "Interval to suppress advertisement of the extended metric + values."; reference "RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 6"; + Extensions, Section 6"; } container threshold-out { - uses performance-metrics-thresholds; description "If the measured parameter falls outside an upper bound for all but the minimum-delay metric (or a lower bound for the minimum-delay metric only) and the advertised value is not already outside that bound, an 'anomalous' announcement (anomalous bit set) will be triggered."; + uses performance-metrics-thresholds; } container threshold-in { - uses performance-metrics-thresholds; description "If the measured parameter falls inside an upper bound for all but the minimum-delay metric (or a lower bound for the minimum-delay metric only) and the advertised value is not already inside that bound, a 'normal' announcement (anomalous bit cleared) will be triggered."; + uses performance-metrics-thresholds; } container threshold-accelerated-advertisement { description @@ -2500,9 +3453,9 @@ module ietf-te-types { } } - /** + /* * TE tunnel generic groupings - **/ + */ grouping explicit-route-hop { description @@ -2512,9 +3465,25 @@ module ietf-te-types { "The explicit route entry type."; case numbered-node-hop { container numbered-node-hop { + must 'node-id-uri or node-id' { + description + "At least one node identifier needs to be present."; + } + description + "Numbered node route hop."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3, EXPLICIT_ROUTE in RSVP-TE + RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; + leaf node-id-uri { + type nw:node-id; + description + "The identifier of a node in the topology."; + } leaf node-id { type te-node-id; - mandatory true; description "The identifier of a node in the TE topology."; } @@ -2524,17 +3493,18 @@ module ietf-te-types { description "Strict or loose hop."; } - description - "Numbered node route hop."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE - RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; } } case numbered-link-hop { container numbered-link-hop { + description + "Numbered link explicit route hop."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3, EXPLICIT_ROUTE in RSVP-TE + RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; leaf link-tp-id { type te-tp-id; mandatory true; @@ -2553,28 +3523,45 @@ module ietf-te-types { description "Link route object direction."; } - description - "Numbered link explicit route hop."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE - RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; } } case unnumbered-link-hop { container unnumbered-link-hop { + 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 + Termination Point (LTP) identifier need to be + present."; + } + description + "Unnumbered link explicit route hop."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3, EXPLICIT_ROUTE in RSVP-TE + RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; + leaf link-tp-id-uri { + type nt:tp-id; + description + "Link Termination Point (LTP) identifier."; + } leaf link-tp-id { type te-tp-id; - mandatory true; description - "TE LTP identifier. The combination of the TE link ID - and the TE node ID is used to identify an unnumbered - TE link."; + "TE LTP identifier. + + The combination of the TE link ID and the TE node ID + is used to identify an unnumbered TE link."; + } + leaf node-id-uri { + type nw:node-id; + description + "The identifier of a node in the topology."; } leaf node-id { type te-node-id; - mandatory true; description "The identifier of a node in the TE topology."; } @@ -2590,17 +3577,12 @@ module ietf-te-types { description "Link route object direction."; } - description - "Unnumbered link explicit route hop."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE - RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; } } case as-number { container as-number-hop { + description + "Autonomous System (AS) explicit route hop."; leaf as-number { type inet:as-number; mandatory true; @@ -2613,18 +3595,43 @@ module ietf-te-types { description "Strict or loose hop."; } - description - "AS explicit route hop."; } } case label { + description + "The label explicit route hop type."; container label-hop { description "Label hop type."; uses te-label; } + } + } + } + + grouping explicit-route-hop-with-srlg { + description + "Augments the explicit route entry grouping with Shared Risk + Link Group (SRLG) hop type."; + uses explicit-route-hop { + augment "type" { description - "The label explicit route hop type."; + "Augmentation for a generic explicit route for Shared + Risk Link Group (SRLG) inclusion or exclusion."; + case srlg { + description + "An Shared Risk Link Group (SRLG) value to be + included or excluded."; + container srlg { + description + "Shared Risk Link Group (SRLG) container."; + leaf srlg { + type uint32; + description + "Shared Risk Link Group (SRLG) value."; + } + } + } } } } @@ -2635,20 +3642,33 @@ module ietf-te-types { leaf index { type uint32; description - "Record Route hop index. The index is used to - identify an entry in the list. The order of entries - is defined by the user without relying on key values."; + "Record Route hop index. + + The index is used to identify an entry in the list. + + The order of entries is defined by the user without relying + on key values."; } choice type { description "The Record Route entry type."; case numbered-node-hop { + description + "Numbered node route hop."; container numbered-node-hop { + must 'node-id-uri or node-id' { + description + "At least one node identifier need to be present."; + } description "Numbered node route hop container."; + leaf node-id-uri { + type nw:node-id; + description + "The identifier of a node in the topology."; + } leaf node-id { type te-node-id; - mandatory true; description "The identifier of a node in the TE topology."; } @@ -2659,15 +3679,15 @@ module ietf-te-types { reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels + Tunnels RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; + Node-Id Sub-Object"; } } - description - "Numbered node route hop."; } case numbered-link-hop { + description + "Numbered link route hop."; container numbered-link-hop { description "Numbered link route hop container."; @@ -2684,23 +3704,46 @@ module ietf-te-types { reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels + Tunnels RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; + Node-Id Sub-Object"; } } - description - "Numbered link route hop."; } case unnumbered-link-hop { + description + "Unnumbered link route hop."; container unnumbered-link-hop { + 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 + Termination Point (LTP) identifier need to be + present."; + } + description + "Unnumbered link Record Route hop."; + reference + "RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; + leaf link-tp-id-uri { + type nt:tp-id; + description + "Link Termination Point (LTP) identifier."; + } leaf link-tp-id { type te-tp-id; - mandatory true; description - "TE LTP identifier. The combination of the TE link ID - and the TE node ID is used to identify an unnumbered - TE link."; + "TE LTP identifier. + + The combination of the TE link ID and the TE node ID + is used to identify an unnumbered TE link."; + } + leaf node-id-uri { + type nw:node-id; + description + "The identifier of a node in the topology."; } leaf node-id { type te-node-id; @@ -2714,20 +3757,15 @@ module ietf-te-types { reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels + Tunnels RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; + Node-Id Sub-Object"; } - description - "Unnumbered link Record Route hop."; - reference - "RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; } - description - "Unnumbered link route hop."; } case label { + description + "The label Record Route entry types."; container label-hop { description "Label route hop type."; @@ -2739,13 +3777,11 @@ module ietf-te-types { reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels + Tunnels RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; + Node-Id Sub-Object"; } } - description - "The label Record Route entry types."; } } } @@ -2797,7 +3833,8 @@ module ietf-te-types { must "(not(../label-start/te-label/direction) and" + " not(te-label/direction))" + " or " - + "(../label-start/te-label/direction = te-label/direction)" + + "(../label-start/te-label/direction = " + + "te-label/direction)" + " or " + "(not(te-label/direction) and" + " (../label-start/te-label/direction = 'forward'))" @@ -2815,10 +3852,13 @@ module ietf-te-types { container label-step { description "The step increment between labels in the label range. - The label start/end values will have to be consistent - with the sign of label step. For example, - 'label-start' < 'label-end' enforces 'label-step' > 0 - 'label-start' > 'label-end' enforces 'label-step' < 0."; + + The label start/end values MUST be consistent with the sign + of label step. + + For example: + 'label-start' < 'label-end' enforces 'label-step' > 0 + 'label-start' > 'label-end' enforces 'label-step' < 0."; choice technology { default "generic"; description @@ -2838,17 +3878,31 @@ module ietf-te-types { description "When there are gaps between 'label-start' and 'label-end', this attribute is used to specify the positions - of the used labels. This is represented in big endian as - 'hex-string'. + of the used labels. + + This is represented in big endian as 'hex-string'. + + In case the restriction is 'inclusive', the bit-position is + set if the corresponding mapped label is available. + In this case, if the range-bitmap is not present, all the + labels in the range are available. + + In case the restriction is 'exclusive', the bit-position is + set if the corresponding mapped label is not available. + In this case, if the range-bitmap is not present, all the + labels in the range are not available. + The most significant byte in the hex-string is the farthest - to the left in the byte sequence. Leading zero bytes in the - configured value may be omitted for brevity. + to the left in the byte sequence. + + Leading zero bytes in the configured value may be omitted + for brevity. + Each bit position in the 'range-bitmap' 'hex-string' maps to a label in the range derived from 'label-start'. For example, assuming that 'label-start' = 16000 and 'range-bitmap' = 0x01000001, then: - - bit position (0) is set, and the corresponding mapped label from the range is 16000 + (0 * 'label-step') or 16000 for default 'label-step' = 1. @@ -2873,7 +3927,7 @@ module ietf-te-types { labels are available."; reference "RFC 7579: General Network Element Constraint Encoding - for GMPLS-Controlled Networks"; + for GMPLS-Controlled Networks"; uses label-restriction-info; } } @@ -2884,7 +3938,7 @@ module ietf-te-types { "Optimization metrics configuration grouping."; leaf metric-type { type identityref { - base path-metric-type; + base path-metric-optimization-type; } description "Identifies the 'metric-type' that the path computation @@ -2930,7 +3984,8 @@ module ietf-te-types { in the computed path."; reference "RFC 4202: Routing Extensions in Support of - Generalized Multi-Protocol Label Switching (GMPLS)"; + Generalized Multi-Protocol Label Switching + (GMPLS)"; } leaf setup-priority { type uint8 { @@ -2966,6 +4021,11 @@ module ietf-te-types { description "Tunnel constraints grouping that can be set on a constraint set or directly on the tunnel."; + leaf network-id { + type nw:network-id; + description + "The network topology identifier."; + } uses te-topology-identifier; uses common-constraints; } @@ -2974,9 +4034,9 @@ module ietf-te-types { description "List of route entries to be included or excluded when performing the path computation."; - container explicit-route-objects-always { + container explicit-route-objects { description - "Container for the 'exclude route' object list."; + "Container for the explicit route object lists."; list route-object-exclude-always { key "index"; ordered-by user; @@ -2986,11 +4046,27 @@ module ietf-te-types { leaf index { type uint32; description - "Explicit Route Object index. The index is used to - identify an entry in the list. The order of entries - is defined by the user without relying on key values."; + "Explicit Route Object index. + + The index is used to identify an entry in the list. + + The order of entries is defined by the user without + relying on key values."; + } + uses explicit-route-hop { + refine "type/numbered-node-hop/numbered-node-hop" + + "/hop-type" { + must '. = "strict"' { + description + "Loose hops can only be used for 'include' route + objects."; + reference + "RFC 4874: Exclude Routes - Extension to Resource + ReserVation Protocol-Traffic Engineering + (RSVP-TE), Section 3.1"; + } + } } - uses explicit-route-hop; } list route-object-include-exclude { key "index"; @@ -3005,33 +4081,34 @@ module ietf-te-types { default "te-types:route-include-object"; description "Indicates whether to include or exclude the - route object. The default is to include it."; + route object. + + The default is to include it."; } leaf index { type uint32; description - "Route object include-exclude index. The index is used - to identify an entry in the list. The order of entries - is defined by the user without relying on key values."; + "Route object include-exclude index. + + The index is used to identify an entry in the list. + + The order of entries is defined by the user without + relying on key values."; } - uses explicit-route-hop { - augment "type" { - case srlg { - container srlg { - description - "SRLG container."; - leaf srlg { - type uint32; - description - "SRLG value."; - } - } + uses explicit-route-hop-with-srlg { + refine "type/numbered-node-hop/numbered-node-hop" + + "/hop-type" { + must '(. = "strict") or ' + + 'derived-from-or-self(../../explicit-route-usage,' + + '"te-types:route-include-object")' { description - "An SRLG value to be included or excluded."; + "Loose hops can only be used for 'include' route + objects."; + reference + "RFC 4874: Exclude Routes - Extension to Resource + ReserVation Protocol-Traffic Engineering + (RSVP-TE), Section 3.1"; } - description - "Augmentation for a generic explicit route for SRLG - exclusion."; } } } @@ -3051,9 +4128,12 @@ module ietf-te-types { leaf index { type uint32; description - "Route object entry index. The index is used to - identify an entry in the list. The order of entries - is defined by the user without relying on key values."; + "Route object entry index. + + The index is used to identify an entry in the list. + + The order of entries is defined by the user without + relying on key values."; } uses explicit-route-hop; } @@ -3072,30 +4152,14 @@ module ietf-te-types { leaf index { type uint32; description - "Route object entry index. The index is used to - identify an entry in the list. The order of entries - is defined by the user without relying on key values."; - } - uses explicit-route-hop { - augment "type" { - case srlg { - container srlg { - description - "SRLG container."; - leaf srlg { - type uint32; - description - "SRLG value."; - } - } - description - "An SRLG value to be included or excluded."; - } - description - "Augmentation for a generic explicit route for SRLG - exclusion."; - } + "Route object entry index. + + The index is used to identify an entry in the list. + + The order of entries is defined by the user without + relying on key values."; } + uses explicit-route-hop-with-srlg; } } @@ -3104,14 +4168,22 @@ module ietf-te-types { "TE path metric bounds grouping."; container path-metric-bounds { description - "TE path metric bounds container."; + "Top-level container for the list of path metric bounds."; list path-metric-bound { key "metric-type"; description - "List of TE path metric bounds."; + "List of path metric bounds, which can apply to link and + path metrics. + + TE paths which have at least one path metric which + exceeds the specified bounds MUST NOT be selected. + + TE paths that traverse TE links which have at least one + link metric which exceeds the specified bounds MUST NOT + be selected."; leaf metric-type { type identityref { - base path-metric-type; + base link-path-metric-type; } description "Identifies an entry in the list of 'metric-type' items @@ -3121,9 +4193,13 @@ module ietf-te-types { type uint64; default "0"; description - "Upper bound on the end-to-end TE path metric. A zero - indicates an unbounded upper limit for the specific - 'metric-type'."; + "Upper bound on the specified 'metric-type'. + + A zero indicates an unbounded upper limit for the + specified 'metric-type'. + + The unit of is interpreted in the context of the + 'metric-type' identity."; } } } @@ -3150,10 +4226,15 @@ module ietf-te-types { } /* Tiebreakers */ container tiebreakers { + status deprecated; description - "Container for the list of tiebreakers."; + "Container for the list of tiebreakers. + + This container has been deprecated by the tiebreaker + leaf."; list tiebreaker { key "tiebreaker-type"; + status deprecated; description "The list of tiebreaker criteria to apply on an equally favored set of paths, in order to pick @@ -3162,6 +4243,7 @@ module ietf-te-types { type identityref { base path-metric-type; } + status deprecated; description "Identifies an entry in the list of tiebreakers."; } @@ -3187,6 +4269,15 @@ module ietf-te-types { } } } + leaf tiebreaker { + type identityref { + base path-tiebreaker-type; + } + default "te-types:path-tiebreaker-random"; + description + "The tiebreaker criteria to apply on an equally favored set + of paths, in order to pick the best."; + } } grouping generic-path-affinities { @@ -3211,7 +4302,9 @@ module ietf-te-types { type admin-groups; default ""; description - "The affinity value. The default is empty."; + "The affinity value. + + The default is empty."; } } } @@ -3232,13 +4325,13 @@ module ietf-te-types { } list affinity-name { key "name"; + description + "List of named affinities."; leaf name { type string; description "Identifies a named affinity entry."; } - description - "List of named affinities."; } } } @@ -3246,48 +4339,51 @@ module ietf-te-types { grouping generic-path-srlgs { description - "Path SRLG grouping."; + "Path Shared Risk Link Group (SRLG) grouping."; container path-srlgs-lists { description - "Path SRLG properties container."; + "Path Shared Risk Link Group (SRLG) properties container."; list path-srlgs-list { key "usage"; description - "List of SRLG values to be included or excluded."; + "List of Shared Risk Link Group (SRLG) values to be + included or excluded."; leaf usage { type identityref { base route-usage-type; } description - "Identifies an entry in a list of SRLGs to either - include or exclude."; + "Identifies an entry in a list of Shared Risk Link Groups + (SRLGs) to either include or exclude."; } leaf-list values { type srlg; description - "List of SRLG values."; + "List of Shared Risk Link Group (SRLG) values."; } } } container path-srlgs-names { description - "Container for the list of named SRLGs."; + "Container for the list of named Shared Risk Link Groups + (SRLGs)."; list path-srlgs-name { key "usage"; description - "List of named SRLGs to be included or excluded."; + "List of named Shared Risk Link Groups (SRLGs) to be + included or excluded."; leaf usage { type identityref { base route-usage-type; } description - "Identifies an entry in a list of named SRLGs to either - include or exclude."; + "Identifies an entry in a list of named Shared Risk Link + Groups (SRLGs) to either include or exclude."; } leaf-list names { type string; description - "List of named SRLGs."; + "List of named Shared Risk Link Groups (SRLGs)."; } } } @@ -3301,9 +4397,10 @@ module ietf-te-types { description "The type of resource disjointness. When configured for a primary path, the disjointness level - applies to all secondary LSPs. When configured for a - secondary path, the disjointness level overrides the level - configured for the primary path."; + applies to all secondary LSPs. + + When configured for a secondary path, the disjointness + level overrides the level configured for the primary path."; } } @@ -3366,14 +4463,79 @@ module ietf-te-types { leaf index { type uint32; description - "Route object entry index. The index is used to - identify an entry in the list. The order of entries - is defined by the user without relying on key - values."; + "Route object entry index. + + The index is used to identify an entry in the list. + + The order of entries is defined by the user without + relying on key values."; } uses explicit-route-hop; } } } } + + grouping encoding-and-switching-type { + description + "Common grouping to define the LSP encoding and + switching types"; + leaf encoding { + type identityref { + base te-types:lsp-encoding-types; + } + description + "LSP encoding type."; + reference + "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) + Architecture"; + } + leaf switching-type { + type identityref { + base te-types:switching-capabilities; + } + description + "LSP switching type."; + reference + "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) + Architecture"; + } + } + + grouping te-generic-node-id { + description + "A reusable grouping for a TE generic node identifier."; + leaf id { + type union { + type te-node-id; + type inet:ip-address; + type nw:node-id; + } + description + "The identifier of the node. + + It can be represented as IP address or dotted quad address + or as a URI. + + The type data node disambiguates the union type."; + } + leaf type { + type enumeration { + enum ip { + description + "IP address representation of the node identifier."; + } + enum te-id { + description + "TE identifier of the node"; + } + enum node-id { + description + "URI representation of the node identifier."; + } + } + description + "Type of node identifier representation."; + } + } } diff --git a/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang deleted file mode 100644 index f0157bcc8..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang +++ /dev/null @@ -1,325 +0,0 @@ - module ietf-trans-client-service { - /* TODO: FIXME */ - yang-version 1.1; - - namespace "urn:ietf:params:xml:ns:yang:ietf-trans-client-service"; - prefix "clntsvc"; - - import ietf-network { - prefix "nw"; - reference "RFC8345 - A YANG Data Model for Network Topologies"; - } - - import ietf-network-topology { - prefix "nt"; - reference "RFC8345 - A YANG Data Model for Network Topologies"; - } - - import ietf-te-types { - prefix "te-types"; - reference "RFC 8776 - Traffic Engineering Common YANG Types"; - } - - import ietf-layer1-types { - prefix "layer1-types"; - reference "RFC ZZZZ - A YANG Data Model for Layer 1 Types"; - } - - import ietf-yang-types { - prefix "yang"; - reference "RFC 6991 - Common YANG Data Types"; - } - - import ietf-trans-client-svc-types { - prefix "clntsvc-types"; - reference "RFC XXXX - A YANG Data Model for - Transport Network Client Signals"; - } - - organization - "Internet Engineering Task Force (IETF) CCAMP WG"; - contact - " - ID-draft editor: - Haomian Zheng (zhenghaomian@huawei.com); - Aihua Guo (aihuaguo.ietf@gmail.com); - Italo Busi (italo.busi@huawei.com); - Anton Snitser (antons@sedonasys.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.com); - Yunbin Xu (xuyunbin@caict.ac.cn); - Yang Zhao (zhaoyangyjy@chinamobile.com); - Xufeng Liu (Xufeng_Liu@jabil.com); - Giuseppe Fioccola (giuseppe.fioccola@huawei.com); - Chaode Yu (yuchaode@huawei.com); - "; - - description - "This module defines a YANG data model for describing - transport network client services. The model fully conforms - to the Network Management Datastore Architecture (NMDA). - - Copyright (c) 2021 IETF Trust and the persons - identified as authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - revision 2023-10-23 { - description - "version -04 as a WG document"; - reference - "draft-ietf-ccamp-client-signal-yang"; - } - - /* - * Groupings - */ - grouping client-svc-access-parameters { - description - "Transport network client signals access parameters"; - - leaf access-node-id { - type te-types:te-node-id; - description - "The identifier of the access node in the TE topology."; - } - - leaf access-node-uri { - type nw:node-id; - description - "The identifier of the access node in the network."; - } - - leaf access-ltp-id { - type te-types:te-tp-id; - description - "The TE link termination point identifier in TE topology, used - together with access-node-id to identify the access LTP."; - } - - leaf access-ltp-uri { - type nt:tp-id; - description - "The link termination point identifier in network topology, - used together with access-node-uri to identify the access LTP"; - } - - leaf client-signal { - type identityref { - base layer1-types:client-signal; - } - description - "Identify the client signal type associated with this port"; - } - - } - - grouping pm-state-grouping { - leaf latency { - description "latency value of the E2E client signal service"; - type uint32; - units microsecond; - } - } - - grouping error-info-grouping { - leaf error-code { - description "error code"; - type uint16; - } - - leaf error-description { - description "detail message of error"; - type string; - } - - leaf error-timestamp { - description "the date and time error is happened"; - type yang:date-and-time; - } - } - - grouping alarm-shreshold-grouping { - leaf latency-threshold { - description "a threshold for the E2E client signal service's - latency. Once the latency value exceed this threshold, an alarm - should be triggered."; - type uint32; - units microsecond; - } - } - - grouping client-svc-tunnel-parameters { - description - "Transport network client signals tunnel parameters"; - - leaf tunnel-name { - type string; - description - "TE tunnel instance name."; - } - } - - grouping client-svc-instance-config { - description - "Configuration parameters for client services."; - leaf client-svc-name { - type string; - description - "Identifier of the p2p transport network client signals."; - } - - leaf client-svc-title { - type string; - description - "Name of the p2p transport network client signals."; - } - - leaf user-label { - type string; - description - "Alias of the p2p transport network client signals."; - } - - leaf client-svc-descr { - type string; - description - "Description of the transport network client signals."; - } - - leaf client-svc-customer { - type string; - description - "Customer of the transport network client signals."; - } - - container resilience { - description "Place holder for resilience functionalities"; - } - - uses te-types:te-topology-identifier; - - leaf admin-status { - type identityref { - base te-types:tunnel-admin-state-type; - } - default te-types:tunnel-admin-state-up; - description "Client signals administrative state."; - } - - container src-access-ports { - description - "Source access port of a client signal."; - uses client-svc-access-parameters; - } - container dst-access-ports { - description - "Destination access port of a client signal."; - uses client-svc-access-parameters; - } - - container pm-state { - config false; - description "PM data of E2E client signal"; - uses pm-state-grouping; - } - - container error-info { - config false; - description "error messages of configuration"; - uses error-info-grouping; - } - - container alarm-shreshold { - description "threshold configuration for the E2E client signal"; - uses alarm-shreshold-grouping; - } - - leaf direction { - type identityref { - base clntsvc-types:direction; - } - description "Uni-dir or Bi-dir for the client signal."; - } - - list svc-tunnels { - key tunnel-name; - description - "List of the TE Tunnels supporting the client signal."; - uses client-svc-tunnel-parameters; - } - } - - grouping client-svc-instance-state { - description - "State parameters for client services."; - leaf operational-state { - type identityref { - base te-types:tunnel-state-type; - } - config false; - description "Client signal operational state."; - } - leaf provisioning-state { - type identityref { - base te-types:lsp-state-type; - } - config false; - description "Client signal provisioning state."; - } - leaf creation-time { - type yang:date-and-time; - config false; - description "The time of the client signal be created."; - } - leaf last-updated-time { - type yang:date-and-time; - config false; - description "The time of the client signal's latest update."; - } - leaf created-by { - type string; - config false; - description - "The client signal is created by whom, - can be a system or staff ID."; - } - leaf last-updated-by { - type string; - config false; - description - "The client signal is last updated by whom, - can be a system or staff ID."; - } - leaf owned-by { - type string; - config false; - description - "The client signal is owned by whom, - can be a system ID."; - } - } - - /* - * Data nodes - */ - - container client-svc { - description - "Transport client services."; - - list client-svc-instances { - key client-svc-name; - description - "The list of p2p transport client service instances"; - - uses client-svc-instance-config; - uses client-svc-instance-state; - } - } - } diff --git a/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2024-01-11.yang b/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2024-01-11.yang new file mode 100644 index 000000000..60d9ea673 --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2024-01-11.yang @@ -0,0 +1,338 @@ +module ietf-trans-client-service { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-trans-client-service"; + prefix clnt-svc; + + import ietf-yang-types { + prefix yang; + reference "RFC 6991: Common YANG Data Types"; + } + + import ietf-te-types { + prefix te-types; + reference "RFCYYYY: Traffic Engineering Common YANG Types"; + } + // RFC Editor: replace YYYY with the actual RFC number assigned + // to the RFC once draft-ietf-teas-rfc8776-update + // becomes an RFC, update date information and remove this note. + + import ietf-layer1-types { + prefix l1-types; + reference "RFCZZZZ: A YANG Data Model for Layer 1 Types"; + } + // RFC Editor: replace ZZZZ with the actual RFC number assigned + // to the RFC once draft-ietf-ccamp-layer1-types + // becomes an RFC, update date information and remove this note. + + import ietf-network { + prefix nw; + reference "RFC8345: A YANG Data Model for Network Topologies"; + } + + import ietf-network-topology { + prefix nt; + reference "RFC8345: A YANG Data Model for Network Topologies"; + } + + import ietf-trans-client-svc-types { + prefix clnt-types; + reference + "RFCXXXX: A YANG Data Model for Transport Network Client + Signals"; + } + // 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. + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Aihua Guo + + + Editor: Italo Busi + + + Editor: Anton Snitser + + + Editor: Chaode Yu + "; + + description + "This module defines a YANG data model for describing + transport network client services. + + The model fully conforms to the Network Management + Datastore Architecture (NMDA). + + 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."; + + revision 2024-01-11 { + description + "Initial Version"; + reference + "RFC XXXX: A YANG Data Model for Transport Network Client + Signals"; + } + // 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. + + /* + * Groupings + */ + + grouping client-svc-access-parameters { + description + "Transport network client signals access parameters"; + + leaf access-node-id { + type te-types:te-node-id; + description + "The identifier of the access node in the TE topology."; + } + leaf access-node-uri { + type nw:node-id; + description + "The identifier of the access node in the network."; + } + leaf access-ltp-id { + type te-types:te-tp-id; + description + "The TE link termination point identifier in TE topology, + used together with access-node-id to identify the access + Link Termination Point (LTP)."; + } + leaf access-ltp-uri { + type nt:tp-id; + description + "The link termination point identifier in network topology, + used together with access-node-uri to identify the access + LTP"; + } + leaf client-signal { + type identityref { + base l1-types:client-signal; + } + description + "Identify the client signal type associated with this port"; + } + } + + grouping pm-state-grouping { + description + "Performance Monitoring (PM) state attributes"; + leaf latency { + type uint32; + units microsecond; + description + "latency value of the E2E client signal service"; + } + } + + grouping error-info-grouping { + description + "Error information parameters"; + leaf error-code { + type uint16; + description "error code"; + } + leaf error-description { + type string; + description "detail message of error"; + } + leaf error-timestamp { + type yang:date-and-time; + description "the date and time error is happened"; + } + } + + grouping alarm-threshold-grouping { + description + "Alarm threshold parameters."; + leaf latency-threshold { + type uint32; + units microsecond; + description + "a threshold for the E2E client signal service's + latency. Once the latency value exceed this threshold, + an alarm should be triggered."; + } + } + + grouping client-svc-tunnel-parameters { + description + "Transport network client signals tunnel parameters"; + + leaf tunnel-name { + type string; + description + "TE tunnel instance name."; + } + } + + grouping client-svc-instance-config { + description + "Configuration parameters for client services."; + + leaf client-svc-name { + type string; + description + "Identifier of the p2p transport network client signals."; + } + leaf client-svc-title { + type string; + description + "Name of the p2p transport network client signals."; + } + leaf user-label { + type string; + description + "Alias of the p2p transport network client signals."; + } + leaf client-svc-descr { + type string; + description + "Description of the transport network client signals."; + } + leaf client-svc-customer { + type string; + description + "Customer of the transport network client signals."; + } + container resilience { + description "Place holder for resilience functionalities"; + } + uses te-types:te-topology-identifier; + leaf admin-status { + type identityref { + base te-types:tunnel-admin-state-type; + } + default te-types:tunnel-admin-state-up; + description "Client signals administrative state."; + } + container src-access-ports { + description + "Source access port of a client signal."; + uses client-svc-access-parameters; + } + container dst-access-ports { + description + "Destination access port of a client signal."; + uses client-svc-access-parameters; + } + container pm-state { + config false; + description "PM data of E2E client signal"; + uses pm-state-grouping; + } + container error-info { + config false; + description "error messages of configuration"; + uses error-info-grouping; + } + container alarm-threshold { + description + "threshold configuration for the E2E client signal"; + uses alarm-threshold-grouping; + } + leaf direction { + type identityref { + base clnt-types:direction; + } + description "Uni-dir or Bi-dir for the client signal."; + } + list svc-tunnels { + key tunnel-name; + description + "List of the TE Tunnels supporting the client signal."; + uses client-svc-tunnel-parameters; + } + } + + grouping client-svc-instance-state { + description + "State parameters for client services."; + leaf operational-state { + type identityref { + base te-types:tunnel-state-type; + } + config false; + description "Client signal operational state."; + } + leaf provisioning-state { + type identityref { + base te-types:lsp-state-type; + } + config false; + description "Client signal provisioning state."; + } + leaf creation-time { + type yang:date-and-time; + config false; + description "The time of the client signal be created."; + } + leaf last-updated-time { + type yang:date-and-time; + config false; + description "The time of the client signal's latest update."; + } + leaf created-by { + type string; + config false; + description + "The client signal is created by whom, + can be a system or staff ID."; + } + leaf last-updated-by { + type string; + config false; + description + "The client signal is last updated by whom, + can be a system or staff ID."; + } + leaf owned-by { + type string; + config false; + description + "The client signal is owned by whom, + can be a system ID."; + } + } + + /* + * Data nodes + */ + + container client-svc { + description + "Transport client services."; + + list client-svc-instances { + key client-svc-name; + description + "The list of p2p transport client service instances"; + uses client-svc-instance-config; + uses client-svc-instance-state; + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang deleted file mode 100644 index 60db5633a..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang +++ /dev/null @@ -1,63 +0,0 @@ - module ietf-trans-client-svc-types { - namespace "urn:ietf:params:xml:ns:yang:ietf-trans-client-svc-types"; - prefix "clntsvc-types"; - - organization - "Internet Engineering Task Force (IETF) CCAMP WG"; - contact - " - ID-draft editor: - Haomian Zheng (zhenghaomian@huawei.com); - Aihua Guo (aihuaguo.ietf@gmail.com); - Italo Busi (italo.busi@huawei.com); - Anton Snitser (antons@sedonasys.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.com); - Yunbin Xu (xuyunbin@caict.ac.cn); - Yang Zhao (zhaoyangyjy@chinamobile.com); - Xufeng Liu (Xufeng_Liu@jabil.com); - Giuseppe Fioccola (giuseppe.fioccola@huawei.com); - Chaode Yu (yuchaode@huawei.com); - "; - - description - "This module defines a YANG data model for describing - transport network client types. The model fully conforms - to the Network Management Datastore Architecture (NMDA). - - 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 - (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - - revision 2023-10-23 { - description - "version -01 as a WG document"; - reference - "draft-ietf-ccamp-client-signal-yang"; - } - - identity direction { - description - "Direction information of Client Signal."; - } - - identity bidirectional { - base direction; - description - "Client Signal is bi-directional."; - } - - identity unidirectional { - base direction; - description - "Client Signal is uni-directional."; - } - - } diff --git a/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2024-01-11.yang b/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2024-01-11.yang new file mode 100644 index 000000000..dd40c9a81 --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2024-01-11.yang @@ -0,0 +1,77 @@ +module ietf-trans-client-svc-types { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-trans-client-svc-types"; + prefix clnt-types; + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Aihua Guo + + + Editor: Italo Busi + + + Editor: Anton Snitser + + + Editor: Chaode Yu + "; + + description + "This module defines a collection of common YANG identity + definitions for describing Costant Bit Rate (CBR) transport + network clients. + + 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."; + + revision 2024-01-11 { + description + "Initial Version"; + reference + "RFC XXXX: A YANG Data Model for Transport Network Client + Signals"; + } + // 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. + + /* + * Identities + */ + + identity direction { + description + "Direction information of Client Signal."; + } + + identity bidirectional { + base direction; + description + "Client Signal is bi-directional."; + } + + identity unidirectional { + base direction; + description + "Client Signal is uni-directional."; + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-yang-types@2013-07-15.yang b/src/nbi/service/ietf_network/yang/ietf-yang-types@2013-07-15.yang deleted file mode 100644 index 956562a7b..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-yang-types@2013-07-15.yang +++ /dev/null @@ -1,475 +0,0 @@ - module ietf-yang-types { - - namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; - prefix "yang"; - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - - Editor: Juergen Schoenwaelder - "; - - description - "This module contains a collection of generally useful derived - YANG data types. - - Copyright (c) 2013 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 6991; see - the RFC itself for full legal notices."; - - revision 2013-07-15 { - description - "This revision adds the following new data types: - - yang-identifier - - hex-string - - uuid - - dotted-quad"; - reference - "RFC 6991: Common YANG Data Types"; - } - - revision 2010-09-24 { - description - "Initial revision."; - reference - "RFC 6021: Common YANG Data Types"; - } - - /*** collection of counter and gauge types ***/ - - typedef counter32 { - type uint32; - description - "The counter32 type represents a non-negative integer - that monotonically increases until it reaches a - maximum value of 2^32-1 (4294967295 decimal), when it - wraps around and starts increasing again from zero. - - Counters have no defined 'initial' value, and thus, a - single value of a counter has (in general) no information - content. Discontinuities in the monotonically increasing - value normally occur at re-initialization of the - management system, and at other times as specified in the - description of a schema node using this type. If such - other times can occur, for example, the creation of - a schema node of type counter32 at times other than - re-initialization, then a corresponding schema node - should be defined, with an appropriate type, to indicate - the last discontinuity. - - The counter32 type should not be used for configuration - schema nodes. A default statement SHOULD NOT be used in - combination with the type counter32. - - In the value set and its semantics, this type is equivalent - to the Counter32 type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef zero-based-counter32 { - type yang:counter32; - default "0"; - description - "The zero-based-counter32 type represents a counter32 - that has the defined 'initial' value zero. - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^32-1 (4294967295 decimal), when it - wraps around and starts increasing again from zero. - - Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. - - In the value set and its semantics, this type is equivalent - to the ZeroBasedCounter32 textual convention of the SMIv2."; - reference - "RFC 4502: Remote Network Monitoring Management Information - Base Version 2"; - } - - typedef counter64 { - type uint64; - description - "The counter64 type represents a non-negative integer - that monotonically increases until it reaches a - maximum value of 2^64-1 (18446744073709551615 decimal), - when it wraps around and starts increasing again from zero. - - Counters have no defined 'initial' value, and thus, a - single value of a counter has (in general) no information - content. Discontinuities in the monotonically increasing - value normally occur at re-initialization of the - management system, and at other times as specified in the - description of a schema node using this type. If such - other times can occur, for example, the creation of - a schema node of type counter64 at times other than - re-initialization, then a corresponding schema node - should be defined, with an appropriate type, to indicate - the last discontinuity. - - The counter64 type should not be used for configuration - schema nodes. A default statement SHOULD NOT be used in - combination with the type counter64. - - In the value set and its semantics, this type is equivalent - to the Counter64 type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef zero-based-counter64 { - type yang:counter64; - default "0"; - description - "The zero-based-counter64 type represents a counter64 that - has the defined 'initial' value zero. - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^64-1 (18446744073709551615 decimal), - when it wraps around and starts increasing again from zero. - - Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. - - In the value set and its semantics, this type is equivalent - to the ZeroBasedCounter64 textual convention of the SMIv2."; - reference - "RFC 2856: Textual Conventions for Additional High Capacity - Data Types"; - } - - typedef gauge32 { - type uint32; - description - "The gauge32 type represents a non-negative integer, which - may increase or decrease, but shall never exceed a maximum - value, nor fall below a minimum value. The maximum value - cannot be greater than 2^32-1 (4294967295 decimal), and - the minimum value cannot be smaller than 0. The value of - a gauge32 has its maximum value whenever the information - being modeled is greater than or equal to its maximum - value, and has its minimum value whenever the information - being modeled is smaller than or equal to its minimum value. - If the information being modeled subsequently decreases - below (increases above) the maximum (minimum) value, the - gauge32 also decreases (increases). - - In the value set and its semantics, this type is equivalent - to the Gauge32 type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef gauge64 { - type uint64; - description - "The gauge64 type represents a non-negative integer, which - may increase or decrease, but shall never exceed a maximum - value, nor fall below a minimum value. The maximum value - cannot be greater than 2^64-1 (18446744073709551615), and - the minimum value cannot be smaller than 0. The value of - a gauge64 has its maximum value whenever the information - being modeled is greater than or equal to its maximum - value, and has its minimum value whenever the information - being modeled is smaller than or equal to its minimum value. - If the information being modeled subsequently decreases - below (increases above) the maximum (minimum) value, the - gauge64 also decreases (increases). - - In the value set and its semantics, this type is equivalent - to the CounterBasedGauge64 SMIv2 textual convention defined - in RFC 2856"; - reference - "RFC 2856: Textual Conventions for Additional High Capacity - Data Types"; - } - - /*** collection of identifier-related types ***/ - - typedef object-identifier { - type string { - pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' - + '(\.(0|([1-9]\d*)))*'; - } - description - "The object-identifier type represents administratively - assigned names in a registration-hierarchical-name tree. - - Values of this type are denoted as a sequence of numerical - non-negative sub-identifier values. Each sub-identifier - value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers - are separated by single dots and without any intermediate - whitespace. - - The ASN.1 standard restricts the value space of the first - sub-identifier to 0, 1, or 2. Furthermore, the value space - of the second sub-identifier is restricted to the range - 0 to 39 if the first sub-identifier is 0 or 1. Finally, - the ASN.1 standard requires that an object identifier - has always at least two sub-identifiers. The pattern - captures these restrictions. - - Although the number of sub-identifiers is not limited, - module designers should realize that there may be - implementations that stick with the SMIv2 limit of 128 - sub-identifiers. - - This type is a superset of the SMIv2 OBJECT IDENTIFIER type - since it is not restricted to 128 sub-identifiers. Hence, - this type SHOULD NOT be used to represent the SMIv2 OBJECT - IDENTIFIER type; the object-identifier-128 type SHOULD be - used instead."; - reference - "ISO9834-1: Information technology -- Open Systems - Interconnection -- Procedures for the operation of OSI - Registration Authorities: General procedures and top - arcs of the ASN.1 Object Identifier tree"; - } - - typedef object-identifier-128 { - type object-identifier { - pattern '\d*(\.\d*){1,127}'; - } - description - "This type represents object-identifiers restricted to 128 - sub-identifiers. - - In the value set and its semantics, this type is equivalent - to the OBJECT IDENTIFIER type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef yang-identifier { - type string { - length "1..max"; - pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; - pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; - } - description - "A YANG identifier string as defined by the 'identifier' - rule in Section 12 of RFC 6020. An identifier must - start with an alphabetic character or an underscore - followed by an arbitrary sequence of alphabetic or - numeric characters, underscores, hyphens, or dots. - - A YANG identifier MUST NOT start with any possible - combination of the lowercase or uppercase character - sequence 'xml'."; - reference - "RFC 6020: YANG - A Data Modeling Language for the Network - Configuration Protocol (NETCONF)"; - } - - /*** collection of types related to date and time***/ - - typedef date-and-time { - type string { - pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' - + '(Z|[\+\-]\d{2}:\d{2})'; - } - description - "The date-and-time type is a profile of the ISO 8601 - standard for representation of dates and times using the - Gregorian calendar. The profile is defined by the - date-time production in Section 5.6 of RFC 3339. - - The date-and-time type is compatible with the dateTime XML - schema type with the following notable exceptions: - - (a) The date-and-time type does not allow negative years. - - (b) The date-and-time time-offset -00:00 indicates an unknown - time zone (see RFC 3339) while -00:00 and +00:00 and Z - all represent the same time zone in dateTime. - - (c) The canonical format (see below) of data-and-time values - differs from the canonical format used by the dateTime XML - schema type, which requires all times to be in UTC using - the time-offset 'Z'. - - This type is not equivalent to the DateAndTime textual - convention of the SMIv2 since RFC 3339 uses a different - separator between full-date and full-time and provides - higher resolution of time-secfrac. - - The canonical format for date-and-time values with a known time - zone uses a numeric time zone offset that is calculated using - the device's configured known offset to UTC time. A change of - the device's offset to UTC time will cause date-and-time values - to change accordingly. Such changes might happen periodically - in case a server follows automatically daylight saving time - (DST) time zone offset changes. The canonical format for - date-and-time values with an unknown time zone (usually - referring to the notion of local time) uses the time-offset - -00:00."; - reference - "RFC 3339: Date and Time on the Internet: Timestamps - RFC 2579: Textual Conventions for SMIv2 - XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; - } - - typedef timeticks { - type uint32; - description - "The timeticks type represents a non-negative integer that - represents the time, modulo 2^32 (4294967296 decimal), in - hundredths of a second between two epochs. When a schema - node is defined that uses this type, the description of - the schema node identifies both of the reference epochs. - - In the value set and its semantics, this type is equivalent - to the TimeTicks type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef timestamp { - type yang:timeticks; - description - "The timestamp type represents the value of an associated - timeticks schema node at which a specific occurrence - happened. The specific occurrence must be defined in the - description of any schema node defined using this type. When - the specific occurrence occurred prior to the last time the - associated timeticks attribute was zero, then the timestamp - value is zero. Note that this requires all timestamp values - to be reset to zero when the value of the associated timeticks - attribute reaches 497+ days and wraps around to zero. - - The associated timeticks schema node must be specified - in the description of any schema node using this type. - - In the value set and its semantics, this type is equivalent - to the TimeStamp textual convention of the SMIv2."; - reference - "RFC 2579: Textual Conventions for SMIv2"; - } - - /*** collection of generic address types ***/ - - typedef phys-address { - type string { - pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; - } - - description - "Represents media- or physical-level addresses represented - as a sequence octets, each octet represented by two hexadecimal - numbers. Octets are separated by colons. The canonical - representation uses lowercase characters. - - In the value set and its semantics, this type is equivalent - to the PhysAddress textual convention of the SMIv2."; - reference - "RFC 2579: Textual Conventions for SMIv2"; - } - - typedef mac-address { - type string { - pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; - } - description - "The mac-address type represents an IEEE 802 MAC address. - The canonical representation uses lowercase characters. - - In the value set and its semantics, this type is equivalent - to the MacAddress textual convention of the SMIv2."; - reference - "IEEE 802: IEEE Standard for Local and Metropolitan Area - Networks: Overview and Architecture - RFC 2579: Textual Conventions for SMIv2"; - } - - /*** collection of XML-specific types ***/ - - typedef xpath1.0 { - type string; - description - "This type represents an XPATH 1.0 expression. - - When a schema node is defined that uses this type, the - description of the schema node MUST specify the XPath - context in which the XPath expression is evaluated."; - reference - "XPATH: XML Path Language (XPath) Version 1.0"; - } - - /*** collection of string types ***/ - - typedef hex-string { - type string { - pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; - } - - description - "A hexadecimal string with octets represented as hex digits - separated by colons. The canonical representation uses - lowercase characters."; - } - - typedef uuid { - type string { - pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' - + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; - } - description - "A Universally Unique IDentifier in the string representation - defined in RFC 4122. The canonical representation uses - lowercase characters. - - The following is an example of a UUID in string representation: - f81d4fae-7dec-11d0-a765-00a0c91e6bf6 - "; - reference - "RFC 4122: A Universally Unique IDentifier (UUID) URN - Namespace"; - } - - typedef dotted-quad { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; - } - description - "An unsigned 32-bit number expressed in the dotted-quad - notation, i.e., four octets written as decimal numbers - and separated with the '.' (full stop) character."; - } - } diff --git a/src/nbi/service/ietf_network/yang/ietf-yang-types@2025-12-22.yang b/src/nbi/service/ietf_network/yang/ietf-yang-types@2025-12-22.yang new file mode 100644 index 000000000..09218bbd4 --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-yang-types@2025-12-22.yang @@ -0,0 +1,764 @@ +module ietf-yang-types { + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; + prefix yang; + + organization + "IETF Network Modeling (NETMOD) Working Group"; + contact + "WG Web: + WG List: + + Editor: Jürgen Schönwälder + "; + description + "This module contains a collection of generally useful derived + YANG data types. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2025 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 9911; + see the RFC itself for full legal notices."; + + revision 2025-12-22 { + description + "This revision adds the following new data types: + - yang:date + - yang:date-no-zone + - yang:time + - yang:time-no-zone + - yang:hours32 + - yang:minutes32 + - yang:seconds32 + - yang:centiseconds32 + - yang:milliseconds32 + - yang:microseconds32 + - yang:microseconds64 + - yang:nanoseconds32 + - yang:nanoseconds64 + - yang:language-tag + The yang-identifier definition has been aligned with YANG + 1.1, and types representing time support the representation + of leap seconds. The representation of time zone offsets + has been aligned with RFC 9557. Several description and + pattern statements have been improved."; + reference + "RFC 9911: Common YANG Data Types"; + } + revision 2013-07-15 { + description + "This revision adds the following new data types: + - yang:yang-identifier + - yang:hex-string + - yang:uuid + - yang:dotted-quad"; + reference + "RFC 6991: Common YANG Data Types"; + } + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of counter and gauge types ***/ + + typedef counter32 { + type uint32; + description + "The counter32 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system and at other times as specified in the + description of a schema node using this type. If + discontinuities occur at times other than re-initialization + (for example, at the instantiation of a schema node of type + counter32), then a corresponding schema node should be + defined, with an appropriate type, to indicate the last + discontinuity. + + The counter32 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter32. + + In the value set and its semantics, this type is equivalent + to the Counter32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter32 { + type counter32; + default "0"; + description + "The zero-based-counter32 type represents a counter32 + that has the defined 'initial' value zero. + + A data tree node using this type will be set to zero (0) + on creation and will thereafter increase monotonically until + it reaches a maximum value of 2^32-1 (4294967295 decimal), + when it wraps around and starts increasing again from zero. + + Provided that an application discovers a new data tree node + using this type within the minimum time to wrap, it can use + the 'initial' value as a delta. It is important for a + management station to be aware of this minimum time and the + actual time between polls, and to discard data if the actual + time is too long or there is no defined minimum time. + + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter32 textual convention of the SMIv2."; + reference + "RFC 4502: Remote Network Monitoring Management Information + Base Version 2"; + } + + typedef counter64 { + type uint64; + description + "The counter64 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system and at other times as specified in the + description of a schema node using this type. If + discontinuities occur at times other than re-initialization + (for example, at the instantiation of a schema node of type + counter64), then a corresponding schema node should be + defined, with an appropriate type, to indicate the last + discontinuity. + + The counter64 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter64. + + In the value set and its semantics, this type is equivalent + to the Counter64 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter64 { + type counter64; + default "0"; + description + "The zero-based-counter64 type represents a counter64 that + has the defined 'initial' value zero. + + A data tree node using this type will be set to zero (0) + on creation and will thereafter increase monotonically until + it reaches a maximum value of 2^64-1 (18446744073709551615 + decimal), when it wraps around and starts increasing again + from zero. + + Provided that an application discovers a new data tree node + using this type within the minimum time to wrap, it can use + the 'initial' value as a delta. It is important for a + management station to be aware of this minimum time and the + actual time between polls, and to discard data if the actual + time is too long or there is no defined minimum time. + + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter64 textual convention of the SMIv2."; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + typedef gauge32 { + type uint32; + description + "The gauge32 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^32-1 (4294967295 decimal), and + the minimum value cannot be smaller than 0. The value of + a gauge32 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases below + the maximum value, the gauge32 also decreases; likewise, if + the information increases above the minimum value, the + gauge32 also increases. + + In the value set and its semantics, this type is equivalent + to the Gauge32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef gauge64 { + type uint64; + description + "The gauge64 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^64-1 (18446744073709551615), and + the minimum value cannot be smaller than 0. The value of + a gauge64 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge64 also decreases (increases). + + In the value set and its semantics, this type is equivalent + to the CounterBasedGauge64 SMIv2 textual convention defined + in RFC 2856"; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + /*** collection of identifier-related types ***/ + + typedef object-identifier { + type string { + pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9][0-9]*))))' + + '(\.(0|([1-9][0-9]*)))*'; + } + description + "The object-identifier type represents administratively + assigned names in a registration-hierarchical-name tree. + + Values of this type are denoted as a sequence of numerical + non-negative sub-identifier values. Each sub-identifier + value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers + are separated by single dots and without any intermediate + whitespace. + + The ASN.1 standard restricts the value space of the first + sub-identifier to 0, 1, or 2. Furthermore, the value space + of the second sub-identifier is restricted to the range + 0 to 39 if the first sub-identifier is 0 or 1. Finally, + the ASN.1 standard requires that an object identifier + has always at least two sub-identifiers. The pattern + captures these restrictions. + + Although the number of sub-identifiers is not limited, + module designers should realize that there may be + implementations that stick with the SMIv2 limit of 128 + sub-identifiers. + + This type is a superset of the SMIv2 OBJECT IDENTIFIER type + since it is not restricted to 128 sub-identifiers. Hence, + this type SHOULD NOT be used to represent the SMIv2 OBJECT + IDENTIFIER type; the object-identifier-128 type SHOULD be + used instead."; + reference + "ISO 9834-1: Information technology -- Procedures for the + operation of object identifier registration authorities -- + Part 1: General procedures and top arcs of the international + object identifier tree"; + } + + typedef object-identifier-128 { + type object-identifier { + pattern '[0-9]*(\.[0-9]*){1,127}'; + } + description + "This type represents object-identifiers restricted to 128 + sub-identifiers. + + In the value set and its semantics, this type is equivalent + to the OBJECT IDENTIFIER type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + /*** collection of types related to date and time ***/ + + typedef date-and-time { + type string { + pattern + '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + 'T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + + '(\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The date-and-time type is a profile of the ISO 8601 + standard for representation of dates and times using the + Gregorian calendar. The profile is defined by the + date-time production in Section 5.6 of RFC 3339 and the + update defined in Section 2 of RFC 9557. The value of + 60 for seconds is allowed only in the case of leap seconds. + + The date-and-time type is compatible with the dateTime XML + schema dateTime type with the following notable exceptions: + + (a) The date-and-time type does not allow negative years. + + (b) The time-offset Z indicates that the date-and-time + value is reported in UTC and that the local time zone + reference point is unknown. The time-offset +00:00 + indicates that the date-and-time value is reported in + UTC and that the local time zone reference point is UTC + (see Section 2 of RFC 9557). + + This type is not equivalent to the DateAndTime textual + convention of the SMIv2 since RFC 3339 uses a different + separator between full-date and full-time and provides + higher resolution of time-secfrac. + + The canonical format for date-and-time values with a known + time zone uses a numeric time zone offset that is calculated + using the device's configured known offset to UTC time. A + change of the device's offset to UTC time will cause + date-and-time values to change accordingly. Such changes + might happen periodically if a server automatically follows + daylight saving time (DST) time zone offset changes. The + canonical format for date-and-time values reported in UTC + with an unknown local time zone offset SHOULD use the + time-offset Z and MAY use -00:00 for backwards + compatibility."; + reference + "ISO 8601: Data elements and interchange formats -- Information + interchange -- Representation of dates and times + RFC 3339: Date and Time on the Internet: Timestamps + RFC 9557: Date and Time on the Internet: Timestamps + with Additional Information + RFC 2579: Textual Conventions for SMIv2 + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef date { + type string { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The date type represents a time-interval of the length + of a day, i.e., 24 hours. It includes an optional time + zone offset. + + The date type is compatible with the XML schema date + type with the following notable exceptions: + + (a) The date type does not allow negative years. + + (b) The time-offset Z indicates that the date value is + reported in UTC and that the local time zone reference + point is unknown. The time-offset +00:00 indicates that + the date value is reported in UTC and that the local + time zone reference point is UTC (see Section 2 of + RFC 9557). + + The canonical format for date values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause date values + to change accordingly. Such changes might happen periodically + if a server automatically follows daylight saving time + (DST) time zone offset changes. The canonical format for + date values reported in UTC with an unknown local time zone + offset uses the time-offset Z."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + RFC 9557: Date and Time on the Internet: Timestamps + with Additional Information + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef date-no-zone { + type date { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])'; + } + description + "The date-no-zone type represents a date without the optional + time zone offset information."; + } + + typedef time { + type string { + pattern + '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + + '(\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The time type represents an instance of time of zero duration + that recurs every day. It includes an optional time zone + offset. The value of 60 for seconds is allowed only in the + case of leap seconds. + + The time type is compatible with the XML schema time + type with the following notable exception: + + (a) The time-offset Z indicates that the time value is + reported in UTC and that the local time zone reference + point is unknown. The time-offset +00:00 indicates that + the time value is reported in UTC and that the local + time zone reference point is UTC (see Section 2 of + RFC 9557). + + The canonical format for time values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause time values + to change accordingly. Such changes might happen periodically + if a server automatically follows daylight saving time + (DST) time zone offset changes. The canonical format for + time values reported in UTC with an unknown local time zone + offset uses the time-offset Z."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + RFC 9557: Date and Time on the Internet: Timestamps + with Additional Information + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef time-no-zone { + type time { + pattern + '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' + + '(\.[0-9]+)?'; + } + description + "The time-no-zone type represents a time without the optional + time zone offset information."; + } + + typedef hours32 { + type int32; + units "hours"; + description + "A period of time measured in units of hours. + + The maximum time period that can be expressed is in the + range [-89478485 days 08:00:00 to 89478485 days 07:00:00]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef minutes32 { + type int32; + units "minutes"; + description + "A period of time measured in units of minutes. + + The maximum time period that can be expressed is in the + range [-1491308 days 2:08:00 to 1491308 days 2:07:00]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef seconds32 { + type int32; + units "seconds"; + description + "A period of time measured in units of seconds. + + The maximum time period that can be expressed is in the + range [-24855 days 03:14:08 to 24855 days 03:14:07]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef centiseconds32 { + type int32; + units "centiseconds"; + description + "A period of time measured in units of 10^-2 seconds. + + The maximum time period that can be expressed is in the + range [-248 days 13:13:56 to 248 days 13:13:56]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef milliseconds32 { + type int32; + units "milliseconds"; + description + "A period of time measured in units of 10^-3 seconds. + + The maximum time period that can be expressed is in the + range [-24 days 20:31:23 to 24 days 20:31:23]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef microseconds32 { + type int32; + units "microseconds"; + description + "A period of time measured in units of 10^-6 seconds. + + The maximum time period that can be expressed is in the + range [-00:35:47 to 00:35:47]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef microseconds64 { + type int64; + units "microseconds"; + description + "A period of time measured in units of 10^-6 seconds. + + The maximum time period that can be expressed is in the + range [-106751991 days 04:00:54 to 106751991 days 04:00:54]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef nanoseconds32 { + type int32; + units "nanoseconds"; + description + "A period of time measured in units of 10^-9 seconds. + + The maximum time period that can be expressed is in the + range [-00:00:02 to 00:00:02]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef nanoseconds64 { + type int64; + units "nanoseconds"; + description + "A period of time measured in units of 10^-9 seconds. + + The maximum time period that can be expressed is in the + range [-106753 days 23:12:44 to 106752 days 0:47:16]. + + This type should be range-restricted in situations + where only non-negative time periods are desirable + (i.e., range '0..max')."; + } + + typedef timeticks { + type uint32; + description + "The timeticks type represents a non-negative integer that + represents the time, modulo 2^32 (4294967296 decimal), in + hundredths of a second between two epochs. When a schema + node is defined that uses this type, the description of + the schema node identifies both of the reference epochs. + + In the value set and its semantics, this type is equivalent + to the TimeTicks type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef timestamp { + type timeticks; + description + "The timestamp type represents the value of an associated + timeticks schema node instance at which a specific occurrence + happened. The specific occurrence must be defined in the + description of any schema node defined using this type. When + the specific occurrence occurred prior to the last time the + associated timeticks schema node instance was zero, then the + timestamp value is zero. + + Note that this requires all timestamp values to be reset to + zero when the value of the associated timeticks schema node + instance reaches 497+ days and wraps around to zero. + + The associated timeticks schema node must be specified + in the description of any schema node using this type. + + In the value set and its semantics, this type is equivalent + to the TimeStamp textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of generic address types ***/ + + typedef phys-address { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + description + "Represents media- or physical-level addresses represented + as a sequence of octets, each octet represented by two + hexadecimal numbers. Octets are separated by colons. The + canonical representation uses lowercase characters. + + In the value set and its semantics, this type is equivalent + to the PhysAddress textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + typedef mac-address { + type string { + pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; + } + description + "The mac-address type represents a 48-bit IEEE 802 Media + Access Control (MAC) address. The canonical representation + uses lowercase characters. Note that there are IEEE 802 MAC + addresses with a different length that this type cannot + represent. The phys-address type may be used to represent + physical addresses of varying length. + + In the value set and its semantics, this type is equivalent + to the MacAddress textual convention of the SMIv2."; + reference + "IEEE 802: IEEE Standard for Local and Metropolitan Area + Networks: Overview and Architecture + RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of XML-specific types ***/ + + typedef xpath1.0 { + type string; + description + "This type represents an XPATH 1.0 expression. + + When a schema node is defined that uses this type, the + description of the schema node MUST specify the XPath + context in which the XPath expression is evaluated."; + reference + "XPATH: XML Path Language (XPath) Version 1.0"; + } + + /*** collection of string types ***/ + + typedef hex-string { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + description + "A hexadecimal string with octets represented as hex digits + separated by colons. The canonical representation uses + lowercase characters."; + } + + typedef uuid { + type string { + pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; + } + description + "A Universally Unique IDentifier in the string representation + defined in RFC 9562. The canonical representation uses + lowercase characters. + + The following is an example of a UUID in string + representation: + f81d4fae-7dec-11d0-a765-00a0c91e6bf6. + "; + reference + "RFC 9562: Universally Unique IDentifiers (UUIDs)"; + } + + typedef dotted-quad { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; + } + description + "An unsigned 32-bit number expressed in the dotted-quad + notation, i.e., four octets written as decimal numbers + and separated with the '.' (full stop) character."; + } + + typedef language-tag { + type string; + description + "A language tag according to RFC 5646 (BCP 47). The + canonical representation uses lowercase characters. + + Values of this type must be well-formed language tags, + in conformance with the definition of well-formed tags + in BCP 47. Implementations MAY further limit the values + they accept to those permitted by a 'validating' + processor, as defined in BCP 47. + + The canonical representation of values of this type is + aligned with the SMIv2 LangTag textual convention for + language tags fitting the length constraints imposed + by the LangTag textual convention."; + reference + "RFC 5646: Tags for Identifying Languages + RFC 5131: A MIB Textual Convention for Language Tags"; + } + + /*** collection of YANG-specific types ***/ + + typedef yang-identifier { + type string { + length "1..max"; + pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; + } + description + "A YANG identifier string as defined by the 'identifier' + rule in Section 14 of RFC 7950. An identifier must + start with an alphabetic character or an underscore + followed by an arbitrary sequence of alphabetic or + numeric characters, underscores, hyphens, or dots. + + This definition conforms to YANG 1.1 defined in RFC + 7950. In RFC 6991, this definition excluded + all identifiers starting with any possible combination + of the lowercase or uppercase character sequence 'xml', + as required by YANG 1 defined in RFC 6020. If this type + is used in a YANG 1 context, then this restriction still + applies."; + reference + "RFC 7950: The YANG 1.1 Data Modeling Language + RFC 6991: Common YANG Data Types + RFC 6020: YANG - A Data Modeling Language for the + Network Configuration Protocol (NETCONF)"; + } +} -- GitLab From fe55cd10033754afbe465850a44ca6c7da2607c9 Mon Sep 17 00:00:00 2001 From: armingol Date: Fri, 27 Mar 2026 11:23:36 +0000 Subject: [PATCH 2/4] Update Yang models --- .../yang/ietf-te-packet-types@2026-01-15.yang | 844 --- .../yang/ietf-te-types@2026-01-23.yang | 4541 ----------------- 2 files changed, 5385 deletions(-) delete mode 100644 src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang delete mode 100644 src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang diff --git a/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang deleted file mode 100644 index 54393a9c3..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2026-01-15.yang +++ /dev/null @@ -1,844 +0,0 @@ -module ietf-te-packet-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; - prefix te-packet-types; - - import ietf-yang-types { - prefix yang; - reference - "RFC 9911: Common YANG Data Types"; - } - import ietf-te-types { - prefix te-types; - reference - "RFC XXXX: Common YANG Data Types for Traffic Engineering"; - } - - organization - "IETF Traffic Engineering Architecture and Signaling (TEAS) - Working Group"; - contact - "WG Web: - WG List: - - Editor: Tarek Saad - - - Editor: Rakesh Gandhi - - - Editor: Vishnu Pavan Beeram - - - Editor: Xufeng Liu - - - Editor: Igor Bryskin - "; - description - "This YANG module contains a collection of generally useful YANG - data type definitions specific to Packet Traffic Engineering - (TE). - - The model conforms to the Network Management Datastore - Architecture (NMDA). - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here. - - Copyright (c) 2026 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Revised BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself - for full legal notices."; - - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. - - revision 2026-01-15 { - description - "This revision adds the following new identities: - - bandwidth-profile-type; - - link-metric-delay-variation; - - link-metric-loss; - - path-metric-delay-variation; - - path-metric-loss. - - This revision adds the following new groupings: - - bandwidth-profile-parameters; - - te-packet-path-bandwidth; - - te-packet-link-bandwidth. - - This revision provides also few editorial changes."; - reference - "RFC XXXX: Common YANG Data Types for Traffic Engineering"; - } - revision 2020-06-10 { - description - "Latest revision of TE MPLS types."; - reference - "RFC 8776: Common YANG Data Types for Traffic Engineering"; - } - - /* - * Identities - */ - - identity bandwidth-profile-type { - description - "Bandwidth Profile Types"; - } - - identity mef-10 { - base bandwidth-profile-type; - description - "MEF 10 Bandwidth Profile"; - reference - "MEF 10.3: Ethernet Services Attributes Phase 3"; - } - - identity rfc-2697 { - base bandwidth-profile-type; - description - "RFC 2697 Bandwidth Profile"; - reference - "RFC 2697: A Single Rate Three Color Marker"; - } - - identity rfc-2698 { - base bandwidth-profile-type; - description - "RFC 2698 Bandwidth Profile"; - reference - "RFC 2698: A Two Rate Three Color Marker"; - } - - // Derived identities from te-types:link-metric-type - - identity link-metric-delay-variation { - base te-types:link-metric-type; - description - "The Unidirectional Delay Variation Metric, - measured in units of microseconds."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions, - Section 4.3 - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions, - Section 4.3"; - } - - identity link-metric-loss { - base te-types:link-metric-type; - description - "The Unidirectional Link Loss Metric, - measured in units of 0.000003%."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions, - Section 4.4 - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions, - Section 4.4"; - } - - // Derived identities from te-types:path-metric-type - - identity path-metric-delay-variation { - base te-types:path-metric-type; - description - "The Path Delay Variation Metric, - measured in units of microseconds."; - reference - "RFC 8233: Extensions to the Path Computation Element - Communication Protocol (PCEP) to Compute - Service-Aware Label Switched Paths (LSPs), - Section 3.1.2"; - } - - identity path-metric-loss { - base te-types:path-metric-type; - description - "The Path Loss Metric, measured in units of 0.000003%."; - reference - "RFC 8233: Extensions to the Path Computation Element - Communication Protocol (PCEP) to Compute - Service-Aware Label Switched Paths (LSPs), - Section 3.1.3"; - } - - identity backup-protection-type { - description - "Base identity for the backup protection type."; - } - - identity backup-protection-link { - base backup-protection-type; - description - "Backup provides link protection only."; - } - - identity backup-protection-node-link { - base backup-protection-type; - description - "Backup offers node (preferred) or link protection."; - } - - identity bc-model-type { - description - "Base identity for the Diffserv-TE Bandwidth Constraints - Model type."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; - } - - identity bc-model-rdm { - base bc-model-type; - description - "Russian Dolls Bandwidth Constraints Model type."; - reference - "RFC 4127: Russian Dolls Bandwidth Constraints Model for - Diffserv-aware MPLS Traffic Engineering"; - } - - identity bc-model-mam { - base bc-model-type; - description - "Maximum Allocation Bandwidth Constraints Model type."; - reference - "RFC 4125: Maximum Allocation Bandwidth Constraints Model for - Diffserv-aware MPLS Traffic Engineering"; - } - - identity bc-model-mar { - base bc-model-type; - description - "Maximum Allocation with Reservation Bandwidth Constraints - Model type."; - reference - "RFC 4126: Max Allocation with Reservation Bandwidth - Constraints Model for Diffserv-aware MPLS Traffic - Engineering & Performance Comparisons"; - } - - /* - * Typedefs - */ - - typedef te-bandwidth-requested-type { - type enumeration { - enum specified-value { - description - "Bandwidth value is explicitly specified."; - } - enum specified-profile { - description - "Bandwidth profile is explicitly specified."; - } - enum auto { - description - "Bandwidth is automatically computed."; - } - } - description - "Enumerated type for specifying whether bandwidth is - explicitly specified or automatically computed."; - } - - typedef te-class-type { - type uint8; - description - "Diffserv-TE Class-Type. - Defines a set of Traffic Trunks crossing a link that is - governed by a specific set of bandwidth constraints. - - Class-Type is used for the purposes of link bandwidth - allocation, constraint-based routing, and admission control."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; - } - - typedef bc-type { - type uint8 { - range "0..7"; - } - description - "Diffserv-TE bandwidth constraints as defined in RFC 4124."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; - } - - typedef bandwidth-kbps { - type uint64; - units "kilobits per second"; - description - "Bandwidth values, expressed in kilobits per second."; - } - - typedef bandwidth-mbps { - type uint64; - units "megabits per second"; - description - "Bandwidth values, expressed in megabits per second."; - } - - typedef bandwidth-gbps { - type uint64; - units "gigabits per second"; - description - "Bandwidth values, expressed in gigabits per second."; - } - - /* - * Groupings - */ - - grouping performance-metrics-attributes-packet { - description - "Contains Performance Metrics (PM) information."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - uses te-types:performance-metrics-attributes { - augment "performance-metrics-one-way" { - description - "Performance Metrics (PM) one-way packet-specific - augmentation for a generic PM grouping."; - leaf one-way-min-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - description - "One-way minimum delay or latency."; - } - leaf one-way-min-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "One-way minimum delay or latency normality."; - } - leaf one-way-max-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - description - "One-way maximum delay or latency."; - } - leaf one-way-max-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "One-way maximum delay or latency normality."; - } - leaf one-way-delay-variation { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - description - "One-way delay variation."; - reference - "RFC 5481: Packet Delay Variation Applicability - Statement, Section 4.2"; - } - leaf one-way-delay-variation-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "One-way delay variation normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) - Using TE Metric Extensions"; - } - leaf one-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - units "percent"; - description - "One-way packet loss as a percentage of the total traffic - sent over a configurable interval. - - The finest precision is 0.000003%."; - reference - "RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.4"; - } - leaf one-way-packet-loss-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Packet loss normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) - Using TE Metric Extensions"; - } - } - augment "performance-metrics-two-way" { - description - "Performance Metrics (PM) two-way packet-specific - augmentation for a generic PM grouping."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE - Metric Extensions"; - leaf two-way-min-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way minimum delay or latency."; - } - leaf two-way-min-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way minimum delay or latency normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) - Using TE Metric Extensions"; - } - leaf two-way-max-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way maximum delay or latency."; - } - leaf two-way-max-delay-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way maximum delay or latency normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) - Using TE Metric Extensions"; - } - leaf two-way-delay-variation { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way delay variation."; - reference - "RFC 5481: Packet Delay Variation Applicability - Statement, Section 4.2"; - } - leaf two-way-delay-variation-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way delay variation normality."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions - RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) - Using TE Metric Extensions"; - } - leaf two-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - units "percent"; - default "0"; - description - "Two-way packet loss as a percentage of the total traffic - sent over a configurable interval. - - The finest precision is 0.000003%."; - } - leaf two-way-packet-loss-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Two-way packet loss normality."; - } - } - } - } - - grouping one-way-performance-metrics-packet { - description - "One-way packet Performance Metrics (PM) throttle grouping."; - leaf one-way-min-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "One-way minimum delay or latency."; - } - leaf one-way-max-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "One-way maximum delay or latency."; - } - leaf one-way-delay-variation { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "One-way delay variation."; - } - leaf one-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - units "percent"; - default "0"; - description - "One-way packet loss as a percentage of the total traffic - sent over a configurable interval. - - The finest precision is 0.000003%."; - } - } - - grouping one-way-performance-metrics-gauge-packet { - description - "One-way packet Performance Metrics (PM) throttle grouping. - - This grouping is used to report the same metrics defined in - the one-way-performance-metrics-packet grouping, using gauges - instead of uint32 data types and referencing IPPM RFCs - instead of IGP-TE RFCs."; - leaf one-way-min-delay { - type yang:gauge64; - units "microseconds"; - description - "One-way minimum delay or latency."; - } - leaf one-way-max-delay { - type yang:gauge64; - units "microseconds"; - description - "One-way maximum delay or latency."; - reference - "RFC 7679: A One-Way Delay Metric for IP Performance - Metrics (IPPM)"; - } - leaf one-way-delay-variation { - type yang:gauge64; - units "microseconds"; - description - "One-way delay variation."; - reference - "RFC 3393: IP Packet Delay Variation Metric for IP - Performance Metrics (IPPM)"; - } - leaf one-way-packet-loss { - type decimal64 { - fraction-digits 5; - range "0..100"; - } - description - "The ratio of packets dropped to packets transmitted between - two endpoints."; - reference - "RFC 7680: A One-Way Loss Metric for IP Performance - Metrics (IPPM)"; - } - } - - grouping two-way-performance-metrics-packet { - description - "Two-way packet Performance Metrics (PM) throttle grouping."; - leaf two-way-min-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way minimum delay or latency."; - } - leaf two-way-max-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way maximum delay or latency."; - } - leaf two-way-delay-variation { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way delay variation."; - } - leaf two-way-packet-loss { - type decimal64 { - fraction-digits 6; - range "0..50.331642"; - } - units "percent"; - default "0"; - description - "Two-way packet loss as a percentage of the total traffic - sent over a configurable interval. - - The finest precision is 0.000003%."; - } - } - - grouping two-way-performance-metrics-gauge-packet { - description - "Two-way packet Performance Metrics (PM) throttle grouping. - - This grouping is used to report the same metrics defined in - the two-way-performance-metrics-packet grouping, using gauges - instead of uint32 data types and referencing IPPM RFCs - instead of IGP-TE RFCs."; - leaf two-way-min-delay { - type yang:gauge64; - units "microseconds"; - description - "Two-way minimum delay or latency."; - reference - "RFC 2681: A Round-trip Delay Metric for IPPM"; - } - leaf two-way-max-delay { - type yang:gauge64; - units "microseconds"; - description - "Two-way maximum delay or latency."; - reference - "RFC 2681: A Round-trip Delay Metric for IPPM"; - } - leaf two-way-delay-variation { - type yang:gauge64; - units "microseconds"; - description - "Two-way delay variation."; - reference - "RFC 5481: Packet Delay Variation Applicability Statement"; - } - leaf two-way-packet-loss { - type decimal64 { - fraction-digits 5; - range "0..100"; - } - description - "The ratio of packets dropped to packets transmitted between - two endpoints."; - } - } - - grouping performance-metrics-throttle-container-packet { - description - "Packet Performance Metrics (PM) threshold grouping."; - uses te-types:performance-metrics-throttle-container { - augment "throttle/threshold-out" { - description - "Performance Metrics (PM) threshold-out packet - augmentation for a generic grouping."; - uses one-way-performance-metrics-packet; - uses two-way-performance-metrics-packet; - } - augment "throttle/threshold-in" { - description - "Performance Metrics (PM) threshold-in packet augmentation - for a generic grouping."; - uses one-way-performance-metrics-packet; - uses two-way-performance-metrics-packet; - } - augment "throttle/threshold-accelerated-advertisement" { - description - "Performance Metrics (PM) accelerated advertisement packet - augmentation for a generic grouping."; - uses one-way-performance-metrics-packet; - uses two-way-performance-metrics-packet; - } - } - } - - grouping bandwidth-profile-parameters { - description - "Common parameters to define bandwidth profiles, also known as - traffic profiles in RFC 2475, that may be used to specify the - temporal properties of a packet stream (e.g., MPLS-TE LSPs), - e.g., as specified in MEF 10, RFC 2697 or RFC 2698."; - reference - "RFC 2475: An Architecture for Differentiated Services - MEF 10.3: Ethernet Services Attributes Phase 3 - RFC 2697: A Single Rate Three Color Marker - RFC 2698: A Two Rate Three Color Marker"; - leaf cir { - type uint64; - units "bits per second"; - description - "Committed Information Rate (CIR)."; - } - leaf cbs { - type uint64; - units "bytes"; - description - "Committed Burst Size (CBS)."; - } - leaf eir { - type uint64; - units "bits per second"; - description - "Excess Information Rate (EIR)."; - } - leaf ebs { - type uint64; - units "bytes"; - description - "Excess Burst Size (EBS)."; - } - leaf pir { - type uint64; - units "bits per second"; - description - "Peak Information Rate (PIR)."; - } - leaf pbs { - type uint64; - units "bytes"; - description - "Peak Burst Size (PBS)."; - } - } - - grouping te-packet-path-bandwidth { - description - "Bandwidth attributes for TE Packet paths."; - container packet-bandwidth { - description - "Bandwidth attributes for TE Packet paths."; - leaf specification-type { - type te-bandwidth-requested-type; - description - "The bandwidth specification type, either explicitly - specified or automatically computed."; - } - leaf set-bandwidth { - when "../specification-type = 'specified-value'" { - description - "When the bandwidth value is explicitly specified."; - } - type bandwidth-kbps; - description - "Set the bandwidth value explicitly, e.g., using offline - calculation."; - } - container bandwidth-profile { - when "../specification-type = 'specified-profile'" { - description - "When the bandwidth profile is explicitly specified."; - } - description - "Set the bandwidth profile attributes explicitly."; - leaf bandwidth-profile-name { - type string; - description - "Name of Bandwidth Profile."; - } - leaf bandwidth-profile-type { - type identityref { - base bandwidth-profile-type; - } - description - "Type of Bandwidth Profile."; - } - uses bandwidth-profile-parameters; - } - leaf class-type { - type te-types:te-ds-class; - description - "The Class-Type of traffic transported by the LSP."; - reference - "RFC 4124: Protocol Extensions for Support of - Diffserv-aware MPLS Traffic Engineering, - Section 4.3.1"; - } - leaf signaled-bandwidth { - type te-packet-types:bandwidth-kbps; - config false; - description - "The currently signaled bandwidth of the LSP. - - In the case where the bandwidth is specified - explicitly, then this will match the value of the - set-bandwidth leaf. - - In the cases where the bandwidth is dynamically - computed by the system, the current value of the - bandwidth should be reflected."; - } - } - } - - grouping te-packet-link-bandwidth { - description - "Bandwidth attributes for Packet TE links."; - leaf packet-bandwidth { - type uint64; - units "bits per second"; - description - "Bandwidth value for Packet TE links."; - } - } -} diff --git a/src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang b/src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang deleted file mode 100644 index beb464034..000000000 --- a/src/nbi/service/ietf_network/yang/ietf-te-types@2026-01-23.yang +++ /dev/null @@ -1,4541 +0,0 @@ -module ietf-te-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; - prefix te-types; - - import ietf-inet-types { - prefix inet; - reference - "RFC 9911: Common YANG Data Types, Section 4"; - } - import ietf-yang-types { - prefix yang; - reference - "RFC 9911: Common YANG Data Types, Section 3"; - } - import ietf-routing-types { - prefix rt-types; - reference - "RFC 8294: Common YANG Data Types for the Routing Area"; - } - import ietf-network { - prefix nw; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - import ietf-network-topology { - prefix nt; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - - organization - "IETF Traffic Engineering Architecture and Signaling (TEAS) - Working Group"; - contact - "WG Web: - WG List: - - Editor: Tarek Saad - - - Editor: Rakesh Gandhi - - - Editor: Vishnu Pavan Beeram - - - Editor: Xufeng Liu - - - Editor: Igor Bryskin - "; - description - "This YANG module contains a collection of generally useful - YANG data type definitions specific to TE. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here. - - Copyright (c) 2026 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). - - All revisions of IETF and IANA published modules can be found - at the YANG Parameters registry group - (https://www.iana.org/assignments/yang-parameters). - - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - - revision 2026-01-23 { - description - "This revision adds the following new identities: - - lsp-provisioning-error-reason; - - association-type-diversity; - - tunnel-admin-state-auto; - - lsp-restoration-restore-none; - - restoration-scheme-rerouting; - - path-metric-optimization-type; - - link-path-metric-type; - - link-metric-type and its derived identities; - - path-computation-error-reason and its derived identities; - - protocol-origin-type and its derived identities; - - svec-objective-function-type and its derived identities; - - svec-metric-type and its derived identities. - - This revision adds the following new data types: - - path-type. - - This revision adds the following new groupings: - - explicit-route-hop-with-srlg; - - encoding-and-switching-type; - - te-generic-node-id. - - This revision updates the following identities: - - objective-function-type; - - action-exercise; - - path-metric-type; - - path-metric-te; - - path-metric-igp; - - path-metric-hop; - - path-metric-delay-average; - - path-metric-delay-minimum; - - path-metric-residual-bandwidth; - - path-metric-optimize-includes; - - path-metric-optimize-excludes; - - te-optimization-criterion. - - This revision updates the following data types: - - te-node-id. - - This revision updates the following groupings: - - explicit-route-hop: - - adds the following leaves: - - node-id-uri; - - link-tp-id-uri; - - updates the following leaves: - - node-id; - - link-tp-id; - - record-route-state: - - adds the following leaves: - - node-id-uri; - - link-tp-id-uri; - - updates the following leaves: - - node-id; - - link-tp-id; - - optimization-metric-entry: - - updates the following leaves: - - metric-type; - - tunnel-constraints; - - adds the following leaves: - - network-id; - - path-constraints-route-objects: - - updates the following containers: - - explicit-route-objects-always; - - generic-path-metric-bounds: - - updates the following leaves: - - metric-type; - - generic-path-optimization - - adds the following leaves: - - tiebreaker; - - deprecate the following containers: - - tiebreakers. - - This revision obsoletes the following identities: - - of-minimize-agg-bandwidth-consumption; - - of-minimize-load-most-loaded-link; - - of-minimize-cost-path-set; - - lsp-protection-reroute-extra; - - lsp-protection-reroute. - - This revision provides also few editorial changes."; - reference - "RFC XXXX: Common YANG Data Types for Traffic Engineering"; - } - revision 2020-06-10 { - description - "Initial Version of TE types."; - reference - "RFC 8776: Common YANG Data Types for Traffic Engineering"; - } - - /* - * Features - */ - - feature p2mp-te { - description - "Indicates support for Point-to-Multipoint TE (P2MP-TE)."; - reference - "RFC 4875: Extensions to Resource Reservation Protocol - - Traffic Engineering (RSVP-TE) for - Point-to-Multipoint TE Label Switched Paths (LSPs)"; - } - - feature frr-te { - description - "Indicates support for TE Fast Reroute (FRR)."; - reference - "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; - } - - feature extended-admin-groups { - description - "Indicates support for TE link extended administrative - groups."; - reference - "RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; - } - - feature named-path-affinities { - description - "Indicates support for named path affinities."; - } - - feature named-extended-admin-groups { - description - "Indicates support for named extended administrative groups."; - } - - feature named-srlg-groups { - description - "Indicates support for named Shared Risk Link Group (SRLG)."; - } - - feature named-path-constraints { - description - "Indicates support for named path constraints."; - } - - feature path-optimization-metric { - description - "Indicates support for path optimization metrics."; - } - - feature path-optimization-objective-function { - description - "Indicates support for path optimization objective functions."; - } - - /* - * Identities - */ - - identity lsp-provisioning-error-reason { - description - "Base identity for LSP provisioning errors."; - } - - identity session-attributes-flags { - description - "Base identity for the RSVP-TE session attributes flags."; - } - - identity local-protection-desired { - base session-attributes-flags; - description - "Local protection is desired."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.7.1"; - } - - identity se-style-desired { - base session-attributes-flags; - description - "Shared explicit style, to allow the LSP to be established - and share resources with the old LSP."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; - } - - identity local-recording-desired { - base session-attributes-flags; - description - "Label recording is desired."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.7.1"; - } - - identity bandwidth-protection-desired { - base session-attributes-flags; - description - "Requests FRR bandwidth protection on LSRs, if present."; - reference - "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels"; - } - - identity node-protection-desired { - base session-attributes-flags; - description - "Requests FRR node protection on LSRs, if present."; - reference - "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels"; - } - - identity path-reevaluation-request { - base session-attributes-flags; - description - "Indicates that a path re-evaluation (of the - current path in use) is requested. - - Note that this does not trigger any LSP reroutes but - instead just signals a request to evaluate whether a - preferable path exists."; - reference - "RFC 4736: Reoptimization of Multiprotocol Label Switching - (MPLS) Traffic Engineering (TE) Loosely Routed - Label Switched Path (LSP)"; - } - - identity soft-preemption-desired { - base session-attributes-flags; - description - "Soft preemption of LSP resources is desired."; - reference - "RFC 5712: MPLS Traffic Engineering Soft Preemption"; - } - - identity lsp-attributes-flags { - description - "Base identity for LSP attributes flags."; - } - - identity end-to-end-rerouting-desired { - base lsp-attributes-flags; - description - "Indicates end-to-end rerouting behavior for an LSP - undergoing establishment. - - This MAY also be used to specify the behavior of end-to-end - LSP recovery for established LSPs."; - reference - "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE - RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic - Engineering (RSVP-TE) - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity boundary-rerouting-desired { - base lsp-attributes-flags; - description - "Indicates boundary rerouting behavior for an LSP undergoing - establishment. - - This MAY also be used to specify segment-based LSP recovery - through nested crankback for established LSPs. - - The boundary Area Border Router (ABR) / Autonomous System - Border Router (ASBR) can decide to forward the PathErr - message upstream to either an upstream boundary ABR/ASBR or - the ingress LSR. - - Alternatively, it can try to select another egress boundary - LSR."; - reference - "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE - RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic - Engineering (RSVP-TE) - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity segment-based-rerouting-desired { - base lsp-attributes-flags; - description - "Indicates segment-based rerouting behavior for an LSP - undergoing establishment. - - This MAY also be used to specify segment-based LSP recovery - for established LSPs."; - reference - "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE - RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol - Traffic Engineering (RSVP-TE) - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity lsp-integrity-required { - base lsp-attributes-flags; - description - "Indicates that LSP integrity is required."; - reference - "RFC 4875: Extensions to Resource Reservation Protocol - - Traffic Engineering (RSVP-TE) for - Point-to-Multipoint TE Label Switched Paths (LSPs) - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity contiguous-lsp-desired { - base lsp-attributes-flags; - description - "Indicates that a contiguous LSP is desired."; - reference - "RFC 5151: Inter-Domain MPLS and GMPLS Traffic Engineering -- - Resource Reservation Protocol-Traffic Engineering - (RSVP-TE) Extensions - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity lsp-stitching-desired { - base lsp-attributes-flags; - description - "Indicates that LSP stitching is desired."; - reference - "RFC 5150: Label Switched Path Stitching with Generalized - Multiprotocol Label Switching Traffic Engineering - (GMPLS TE) - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity pre-planned-lsp-flag { - base lsp-attributes-flags; - description - "Indicates that the LSP MUST be provisioned in the - control plane only."; - reference - "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for - Multi-Layer and Multi-Region Networks (MLN/MRN) - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity non-php-behavior-flag { - base lsp-attributes-flags; - description - "Indicates that non-PHP (non-Penultimate Hop Popping) - behavior for the LSP is desired."; - reference - "RFC 6511: Non-Penultimate Hop Popping Behavior and - Out-of-Band Mapping for RSVP-TE Label Switched - Paths - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity oob-mapping-flag { - base lsp-attributes-flags; - description - "Indicates that signaling of the egress binding information - is out of band (e.g., via the Border Gateway Protocol - (BGP))."; - reference - "RFC 6511: Non-Penultimate Hop Popping Behavior and - Out-of-Band Mapping for RSVP-TE Label Switched - Paths - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity entropy-label-capability { - base lsp-attributes-flags; - description - "Indicates entropy label capability."; - reference - "RFC 6790: The Use of Entropy Labels in MPLS Forwarding - RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO)"; - } - - identity oam-mep-entity-desired { - base lsp-attributes-flags; - description - "OAM Maintenance Entity Group End Point (MEP) entities - desired."; - reference - "RFC 7260: GMPLS RSVP-TE Extensions for Operations, - Administration, and Maintenance (OAM) - Configuration"; - } - - identity oam-mip-entity-desired { - base lsp-attributes-flags; - description - "OAM Maintenance Entity Group Intermediate Points (MIP) - entities desired."; - reference - "RFC 7260: GMPLS RSVP-TE Extensions for Operations, - Administration, and Maintenance (OAM) - Configuration"; - } - - identity srlg-collection-desired { - base lsp-attributes-flags; - description - "Shared Risk Link Group (SRLG) collection desired."; - reference - "RFC 7570: Label Switched Path (LSP) Attribute in the - Explicit Route Object (ERO) - RFC 8001: RSVP-TE Extensions for Collecting Shared Risk - Link Group (SRLG) Information"; - } - - identity loopback-desired { - base lsp-attributes-flags; - description - "Indicates that a particular node on the LSP is - required to enter loopback mode. - - This can also be used to specify the loopback state of the - node."; - reference - "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and - Loopback"; - } - - identity p2mp-te-tree-eval-request { - base lsp-attributes-flags; - description - "P2MP-TE tree re-evaluation request."; - reference - "RFC 8149: RSVP Extensions for Reoptimization of Loosely - Routed Point-to-Multipoint Traffic Engineering - Label Switched Paths (LSPs)"; - } - - identity rtm-set-desired { - base lsp-attributes-flags; - description - "Residence Time Measurement (RTM) attribute flag requested."; - reference - "RFC 8169: Residence Time Measurement in MPLS Networks"; - } - - identity link-protection-type { - description - "Base identity for the link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity link-protection-unprotected { - base link-protection-type; - description - "'Unprotected' link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity link-protection-extra-traffic { - base link-protection-type; - description - "'Extra-Traffic' link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity link-protection-shared { - base link-protection-type; - description - "'Shared' link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity link-protection-1-for-1 { - base link-protection-type; - description - "'Dedicated 1:1' link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity link-protection-1-plus-1 { - base link-protection-type; - description - "'Dedicated 1+1' link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity link-protection-enhanced { - base link-protection-type; - description - "'Enhanced' link protection type."; - reference - "RFC 4202: Routing Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS), - section 2.2 - RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description, section 7"; - } - - identity association-type { - description - "Base identity for the tunnel association."; - } - - identity association-type-recovery { - base association-type; - description - "Association type for recovery, used to associate LSPs of the - same tunnel for recovery."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery - RFC 6780: RSVP ASSOCIATION Object Extensions"; - } - - identity association-type-resource-sharing { - base association-type; - description - "Association type for resource sharing, used to enable - resource sharing during make-before-break."; - reference - "RFC 4873: GMPLS Segment Recovery - RFC 6780: RSVP ASSOCIATION Object Extensions"; - } - - identity association-type-double-sided-bidir { - base association-type; - description - "Association type for double-sided bidirectional LSPs, - used to associate two LSPs of two tunnels that are - independently configured on either endpoint."; - reference - "RFC 7551: RSVP-TE Extensions for Associated Bidirectional - Label Switched Paths (LSPs)"; - } - - identity association-type-single-sided-bidir { - base association-type; - description - "Association type for single-sided bidirectional LSPs, - used to associate two LSPs of two tunnels, where one - tunnel is configured on one side/endpoint and the other - tunnel is dynamically created on the other endpoint."; - reference - "RFC 6780: RSVP ASSOCIATION Object Extensions - RFC 7551: RSVP-TE Extensions for Associated Bidirectional - Label Switched Paths (LSPs)"; - } - - identity association-type-diversity { - base association-type; - description - "Association Type diversity used to associate LSPs whose - paths are to be diverse from each other."; - reference - "RFC 8800: Path Computation Element Communication Protocol - (PCEP) Extension for Label Switched Path (LSP) - Diversity Constraint Signaling"; - } - - identity objective-function-type { - description - "Base identity for path objective function types."; - } - - identity of-minimize-cost-path { - base objective-function-type; - description - "Objective function for minimizing path cost."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity of-minimize-load-path { - base objective-function-type; - description - "Objective function for minimizing the load on one or more - paths."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity of-maximize-residual-bandwidth { - base objective-function-type; - description - "Objective function for maximizing residual bandwidth."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity of-minimize-agg-bandwidth-consumption { - base objective-function-type; - status obsolete; - description - "Objective function for minimizing aggregate bandwidth - consumption. - - This identity has been obsoleted: the - 'svec-of-minimize-agg-bandwidth-consumption' identity SHOULD - be used instead."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity of-minimize-load-most-loaded-link { - base objective-function-type; - status obsolete; - description - "Objective function for minimizing the load on the link that - is carrying the highest load. - - This identity has been obsoleted: the - 'svec-of-minimize-load-most-loaded-link' identity SHOULD - be used instead."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity of-minimize-cost-path-set { - base objective-function-type; - status obsolete; - description - "Objective function for minimizing the cost on a path set. - - This identity has been obsoleted: the - 'svec-of-minimize-cost-path-set' identity SHOULD - be used instead."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity path-computation-method { - description - "Base identity for supported path computation mechanisms."; - } - - identity path-locally-computed { - base path-computation-method; - description - "Indicates a constrained-path LSP in which the - path is computed by the local LER."; - reference - "RFC 9522: Overview and Principles of Internet Traffic - Engineering, Section 4.4"; - } - - identity path-externally-queried { - base path-computation-method; - description - "Constrained-path LSP in which the path is obtained by - querying an external source, such as a PCE server. - In the case that an LSP is defined to be externally queried, - it may also have associated explicit definitions (provided - to the external source to aid computation). - - The path that is returned by the external source may - require further local computation on the device."; - reference - "RFC 9522: Overview and Principles of Internet Traffic - Engineering - RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; - } - - identity path-explicitly-defined { - base path-computation-method; - description - "Constrained-path LSP in which the path is - explicitly specified as a collection of strict and/or loose - hops."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 9522: Overview and Principles of Internet Traffic - Engineering"; - } - - identity lsp-metric-type { - description - "Base identity for the LSP metric specification types."; - } - - identity lsp-metric-relative { - base lsp-metric-type; - description - "The metric specified for the LSPs to which this identity - refers is specified as a value relative to the IGP metric - cost to the LSP's tail end."; - reference - "RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; - } - - identity lsp-metric-absolute { - base lsp-metric-type; - description - "The metric specified for the LSPs to which this identity - refers is specified as an absolute value."; - reference - "RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; - } - - identity lsp-metric-inherited { - base lsp-metric-type; - description - "The metric for the LSPs to which this identity refers is - not specified explicitly; rather, it is directly inherited - from the IGP cost."; - reference - "RFC 4657: Path Computation Element (PCE) Communication - Protocol Generic Requirements"; - } - - identity te-tunnel-type { - description - "Base identity from which specific tunnel types are derived."; - } - - identity te-tunnel-p2p { - base te-tunnel-type; - description - "TE Point-to-Point (P2P) tunnel type."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; - } - - identity te-tunnel-p2mp { - base te-tunnel-type; - description - "TE P2MP tunnel type."; - reference - "RFC 4875: Extensions to Resource Reservation Protocol - - Traffic Engineering (RSVP-TE) for - Point-to-Multipoint TE Label Switched Paths - (LSPs)"; - } - - identity tunnel-action-type { - description - "Base identity from which specific tunnel action types - are derived."; - } - - identity tunnel-action-resetup { - base tunnel-action-type; - description - "TE tunnel action that tears down the tunnel's current LSP - (if any) and attempts to re-establish a new LSP."; - } - - identity tunnel-action-reoptimize { - base tunnel-action-type; - description - "TE tunnel action that reoptimizes the placement of the - tunnel LSP(s)."; - } - - identity tunnel-action-switchpath { - base tunnel-action-type; - description - "TE tunnel action that switches the tunnel's LSP to use the - specified path."; - } - - identity te-action-result { - description - "Base identity from which specific TE action results - are derived."; - } - - identity te-action-success { - base te-action-result; - description - "TE action was successful."; - } - - identity te-action-fail { - base te-action-result; - description - "TE action failed."; - } - - identity tunnel-action-inprogress { - base te-action-result; - description - "TE action is in progress."; - } - - identity tunnel-admin-state-type { - description - "Base identity for TE tunnel administrative states."; - } - - identity tunnel-admin-state-up { - base tunnel-admin-state-type; - description - "Tunnel's administrative state is up."; - } - - identity tunnel-admin-state-down { - base tunnel-admin-state-type; - description - "Tunnel's administrative state is down."; - } - - identity tunnel-admin-state-auto { - base tunnel-admin-state-type; - description - "Tunnel administrative auto state. The administrative status - in state datastore transitions to 'tunnel-admin-up' when the - tunnel used by the client layer, and to 'tunnel-admin-down' - when it is not used by the client layer."; - } - - identity tunnel-state-type { - description - "Base identity for TE tunnel states."; - } - - identity tunnel-state-up { - base tunnel-state-type; - description - "Tunnel's state is up."; - } - - identity tunnel-state-down { - base tunnel-state-type; - description - "Tunnel's state is down."; - } - - identity lsp-state-type { - description - "Base identity for TE LSP states."; - } - - identity lsp-path-computing { - base lsp-state-type; - description - "State path computation is in progress."; - } - - identity lsp-path-computation-ok { - base lsp-state-type; - description - "State path computation was successful."; - } - - identity lsp-path-computation-failed { - base lsp-state-type; - description - "State path computation failed."; - } - - identity lsp-state-setting-up { - base lsp-state-type; - description - "State is being set up."; - } - - identity lsp-state-setup-ok { - base lsp-state-type; - description - "State setup was successful."; - } - - identity lsp-state-setup-failed { - base lsp-state-type; - description - "State setup failed."; - } - - identity lsp-state-up { - base lsp-state-type; - description - "State is up."; - } - - identity lsp-state-tearing-down { - base lsp-state-type; - description - "State is being torn down."; - } - - identity lsp-state-down { - base lsp-state-type; - description - "State is down."; - } - - identity path-invalidation-action-type { - description - "Base identity for TE path invalidation action types."; - } - - identity path-invalidation-action-drop { - base path-invalidation-action-type; - description - "Upon invalidation of the TE tunnel path, the tunnel remains - valid, but any packet mapped over the tunnel is dropped."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 2.5"; - } - - identity path-invalidation-action-teardown { - base path-invalidation-action-type; - description - "TE path invalidation action teardown."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 2.5"; - } - - identity lsp-restoration-type { - description - "Base identity from which LSP restoration types are derived."; - } - - identity lsp-restoration-restore-none { - base lsp-restoration-type; - description - "No LSP affected by a failure is restored."; - } - - identity lsp-restoration-restore-any { - base lsp-restoration-type; - description - "Any LSP affected by a failure is restored."; - } - - identity lsp-restoration-restore-all { - base lsp-restoration-type; - description - "Affected LSPs are restored after all LSPs of the tunnel are - broken."; - } - - identity restoration-scheme-type { - description - "Base identity for LSP restoration schemes."; - } - - identity restoration-scheme-rerouting { - base restoration-scheme-type; - description - "Restoration LSP is computed, signalled and configured after - the failure detection. - - This restoration scheme is also known as - 'Full LSP Re-routing', with the alternate route being - computed after the failure occurs."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 11"; - } - - identity restoration-scheme-preconfigured { - base restoration-scheme-type; - description - "Restoration LSP is precomputed, presignalled and - preconfigured prior to the failure."; - } - - identity restoration-scheme-precomputed { - base restoration-scheme-type; - description - "Restoration LSP is precomputed, but not presignalled nor - preconfigured, prior to the failure. - - This restoration scheme is also known as - 'Full LSP Re-routing', with the alternate route being - precomputed and stored for use when the failure occurs."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 11"; - } - - identity restoration-scheme-presignaled { - base restoration-scheme-type; - description - "Restoration LSP is presignaled, but not preconfigured, - prior to the failure. - - This restoration scheme is also known as - 'Pre-planned LSP Re-routing'."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 8"; - } - - identity lsp-protection-type { - description - "Base identity from which LSP protection types are derived."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery"; - } - - identity lsp-protection-unprotected { - base lsp-protection-type; - description - "'Unprotected' LSP protection type."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery"; - } - - identity lsp-protection-reroute-extra { - base lsp-protection-type; - status obsolete; - description - "'(Full) Rerouting' LSP protection type. - - This identity has been obsoleted: the - 'restoration-scheme-rerouting' or - 'restoration-scheme-precomputed' identity SHOULD be used - instead."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 11"; - } - - identity lsp-protection-reroute { - base lsp-protection-type; - status obsolete; - description - "'Rerouting without Extra-Traffic' LSP protection type. - - This identity has been obsoleted: the - 'restoration-scheme-presignaled' identity SHOULD be used - instead."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 8"; - } - - identity lsp-protection-1-for-n { - base lsp-protection-type; - description - "'1:N Protection with Extra-Traffic' LSP protection type."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 7.3"; - } - - identity lsp-protection-1-for-1 { - base lsp-protection-type; - description - "LSP protection '1:1 Protection Type'."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 7"; - } - - identity lsp-protection-unidir-1-plus-1 { - base lsp-protection-type; - description - "'1+1 Unidirectional Protection' LSP protection type."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 5"; - } - - identity lsp-protection-bidir-1-plus-1 { - base lsp-protection-type; - description - "'1+1 Bidirectional Protection' LSP protection type."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 6"; - } - - identity lsp-protection-extra-traffic { - base lsp-protection-type; - description - "Extra-Traffic LSP protection type."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery, section 7"; - } - - identity lsp-protection-state { - description - "Base identity of protection states for reporting purposes."; - } - - identity normal { - base lsp-protection-state; - description - "Normal state."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity signal-fail-of-protection { - base lsp-protection-state; - description - "The protection transport entity has a signal fail condition - that is of higher priority than the forced switchover - command."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity lockout-of-protection { - base lsp-protection-state; - description - "A Loss of Protection (LoP) command is active."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity forced-switch { - base lsp-protection-state; - description - "A forced switchover command is active."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity signal-fail { - base lsp-protection-state; - description - "There is a signal fail condition on either the working path - or the protection path."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity signal-degrade { - base lsp-protection-state; - description - "There is a signal degrade condition on either the working - path or the protection path."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity manual-switch { - base lsp-protection-state; - description - "A manual switchover command is active."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity wait-to-restore { - base lsp-protection-state; - description - "A Wait-to-Restore (WTR) timer is running."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity do-not-revert { - base lsp-protection-state; - description - "A Do Not Revert (DNR) condition is active because of - non-revertive behavior."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity failure-of-protocol { - base lsp-protection-state; - description - "LSP protection is not working because of a protocol failure - condition."; - reference - "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection - to Match the Operational Expectations of - Synchronous Digital Hierarchy, Optical Transport - Network, and Ethernet Transport Network Operators - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity protection-external-commands { - description - "Base identity from which protection-related external commands - used for troubleshooting purposes are derived."; - } - - identity action-freeze { - base protection-external-commands; - description - "A temporary configuration action initiated by an operator - command that prevents any switchover action from being taken - and, as such, freezes the current state."; - reference - "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection - to Match the Operational Expectations of - Synchronous Digital Hierarchy, Optical Transport - Network, and Ethernet Transport Network Operators - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity clear-freeze { - base protection-external-commands; - description - "An action that clears the active freeze state."; - reference - "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection - to Match the Operational Expectations of - Synchronous Digital Hierarchy, Optical Transport - Network, and Ethernet Transport Network Operators - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity action-lockout-of-normal { - base protection-external-commands; - description - "A temporary configuration action initiated by an operator - command to ensure that the normal traffic is not allowed - to use the protection transport entity."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity clear-lockout-of-normal { - base protection-external-commands; - description - "An action that clears the active lockout of the - normal state."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity action-lockout-of-protection { - base protection-external-commands; - description - "A temporary configuration action initiated by an operator - command to ensure that the protection transport entity is - temporarily not available to transport a traffic signal - (either normal or Extra-Traffic)."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity action-forced-switch { - base protection-external-commands; - description - "A switchover action initiated by an operator command to - switch the Extra-Traffic signal, the normal traffic signal, - or the null signal to the protection transport entity, - unless a switchover command of equal or higher priority is - in effect."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity action-manual-switch { - base protection-external-commands; - description - "A switchover action initiated by an operator command to - switch the Extra-Traffic signal, the normal traffic signal, - or the null signal to the protection transport entity, - unless a fault condition exists on other transport entities - or a switchover command of equal or higher priority is in - effect."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity action-exercise { - base protection-external-commands; - description - "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 - "RFC 7271: MPLS Transport Profile (MPLS-TP) Linear Protection - to Match the Operational Expectations of - Synchronous Digital Hierarchy, Optical Transport - Network, and Ethernet Transport Network Operators - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity clear { - base protection-external-commands; - description - "An action that clears the active near-end lockout of a - protection, forced switchover, manual switchover, - Wait-to-Restore (WTR) state, or exercise command."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - identity switching-capabilities { - description - "Base identity for interface switching capabilities."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity switching-psc1 { - base switching-capabilities; - description - "Packet-Switch Capable-1 (PSC-1)."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity switching-evpl { - base switching-capabilities; - description - "Ethernet Virtual Private Line (EVPL)."; - reference - "RFC 6004: Generalized MPLS (GMPLS) Support for Metro - Ethernet Forum and G.8011 Ethernet Service - Switching"; - } - - identity switching-l2sc { - base switching-capabilities; - description - "Layer-2 Switch Capable (L2SC)."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity switching-tdm { - base switching-capabilities; - description - "Time-Division-Multiplex Capable (TDM)."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity switching-otn { - base switching-capabilities; - description - "OTN-TDM capable."; - reference - "RFC 7138: Traffic Engineering Extensions to OSPF for GMPLS - Control of Evolving G.709 Optical Transport - Networks"; - } - - identity switching-dcsc { - base switching-capabilities; - description - "Data Channel Switching Capable (DCSC)."; - reference - "RFC 6002: Generalized MPLS (GMPLS) Data Channel - Switching Capable (DCSC) and Channel Set Label - Extensions"; - } - - identity switching-lsc { - base switching-capabilities; - description - "Lambda-Switch Capable (LSC)."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity switching-fsc { - base switching-capabilities; - description - "Fiber-Switch Capable (FSC)."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-types { - description - "Base identity for encoding types."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-packet { - base lsp-encoding-types; - description - "Packet LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-ethernet { - base lsp-encoding-types; - description - "Ethernet LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-pdh { - base lsp-encoding-types; - description - "ANSI/ETSI PDH LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-sdh { - base lsp-encoding-types; - description - "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-digital-wrapper { - base lsp-encoding-types; - description - "Digital Wrapper LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-lambda { - base lsp-encoding-types; - description - "Lambda (photonic) LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-fiber { - base lsp-encoding-types; - description - "Fiber LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-fiber-channel { - base lsp-encoding-types; - description - "FiberChannel LSP encoding."; - reference - "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Functional Description"; - } - - identity lsp-encoding-oduk { - base lsp-encoding-types; - description - "G.709 ODUk (Digital Path) LSP encoding."; - reference - "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Extensions for G.709 Optical Transport - Networks Control"; - } - - identity lsp-encoding-optical-channel { - base lsp-encoding-types; - description - "G.709 Optical Channel LSP encoding."; - reference - "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) - Signaling Extensions for G.709 Optical Transport - Networks Control"; - } - - identity lsp-encoding-line { - base lsp-encoding-types; - description - "Line (e.g., 8B/10B) LSP encoding."; - reference - "RFC 6004: Generalized MPLS (GMPLS) Support for Metro - Ethernet Forum and G.8011 Ethernet Service - Switching"; - } - - identity path-signaling-type { - description - "Base identity from which specific LSP path setup types - are derived."; - } - - identity path-setup-static { - base path-signaling-type; - description - "Static LSP provisioning path setup."; - } - - identity path-setup-rsvp { - base path-signaling-type; - description - "RSVP-TE signaling path setup."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; - } - - identity path-setup-sr { - base path-signaling-type; - description - "Segment-routing path setup."; - } - - identity path-scope-type { - description - "Base identity from which specific path scope types are - derived."; - } - - identity path-scope-segment { - base path-scope-type; - description - "Path scope segment."; - reference - "RFC 4873: GMPLS Segment Recovery"; - } - - identity path-scope-end-to-end { - base path-scope-type; - description - "Path scope end to end."; - reference - "RFC 4873: GMPLS Segment Recovery"; - } - - identity route-usage-type { - description - "Base identity for route usage."; - } - - identity route-include-object { - base route-usage-type; - description - "'Include route' object."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3.2 - RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP), Section 7.12 - RFC 7896: Update to the Include Route Object (IRO) - Specification in the Path Computation Element - Communication Protocol (PCEP)"; - } - - identity route-exclude-object { - base route-usage-type; - description - "'Exclude route' object."; - reference - "RFC 4874: Exclude Routes - Extension to Resource ReserVation - Protocol-Traffic Engineering (RSVP-TE)"; - } - - identity route-exclude-srlg { - base route-usage-type; - description - "Excludes Shared Risk Link Groups (SRLGs)."; - reference - "RFC 4874: Exclude Routes - Extension to Resource ReserVation - Protocol-Traffic Engineering (RSVP-TE)"; - } - - identity path-metric-optimization-type { - description - "Base identity used to define the path metric optimization - types."; - } - - identity link-path-metric-type { - description - "Base identity used to define the link and the path metric - types. - - The unit of the path metric value is interpreted in the - context of the path metric type and the derived identities - SHOULD describe the unit of the path metric types they - define."; - } - - identity link-metric-type { - base link-path-metric-type; - description - "Base identity for the link metric types."; - } - - identity link-metric-te { - base link-metric-type; - description - "Traffic Engineering (TE) Link Metric."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2, Section 2.5.5 - RFC 5305: IS-IS Extensions for Traffic Engineering, - Section 3.7"; - } - - identity link-metric-igp { - base link-metric-type; - description - "Interior Gateway Protocol (IGP) Link Metric."; - reference - "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric - as a second MPLS Traffic Engineering (TE) - Metric"; - } - - identity link-metric-delay-average { - base link-metric-type; - description - "Unidirectional Link Delay, measured in units of - microseconds."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions, Section 4.1 - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.1"; - } - - identity link-metric-delay-minimum { - base link-metric-type; - description - "Minimum unidirectional Link Delay, measured in units of - microseconds."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions, Section 4.2 - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.2"; - } - - identity link-metric-delay-maximum { - base link-metric-type; - description - "Maximum unidirectional Link Delay, measured in units of - microseconds."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions, Section 4.2 - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.2"; - } - - identity link-metric-residual-bandwidth { - base link-metric-type; - description - "Unidirectional Residual Bandwidth, measured in units of - bytes per second. - - It is defined to be Maximum Bandwidth minus the bandwidth - currently allocated to LSPs."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions, Section 4.5 - RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.5"; - } - - identity path-metric-type { - base link-path-metric-type; - base path-metric-optimization-type; - description - "Base identity for the path metric types."; - } - - identity path-metric-te { - base path-metric-type; - description - "Traffic Engineering (TE) Path Metric."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP), Section 7.8"; - } - - identity path-metric-igp { - base path-metric-type; - description - "Interior Gateway Protocol (IGP) Path Metric."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP), section 7.8"; - } - - identity path-metric-hop { - base path-metric-type; - description - "Hop Count Path Metric."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP), Section 7.8"; - } - - identity path-metric-delay-average { - base path-metric-type; - description - "The Path Delay Metric, measured in units of - microseconds."; - reference - "RFC 8233: Extensions to the Path Computation Element - Communication Protocol (PCEP) to Compute - Service-Aware Label Switched Paths (LSPs), - Section 3.1.1"; - } - - identity path-metric-delay-minimum { - base path-metric-type; - description - "The Path Min Delay Metric, measured in units of - microseconds."; - reference - "I-D.ietf-pce-sid-algo: Carrying SR-Algorithm information - in PCE-based Networks, - draft-ietf-pce-sid-algo-29, - Sections 4.5.1 and 4.5.2"; - } - - identity path-metric-residual-bandwidth { - base path-metric-type; - description - "The Path Residual Bandwidth, defined as the minimum Link - Residual Bandwidth all the links along the path. - - The Path Residual Bandwidth can be seen as the path - metric associated with the Maximum residual Bandwidth Path - (MBP) objective function."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity path-metric-optimize-includes { - base path-metric-optimization-type; - description - "A metric that optimizes the number of included resources - specified in a set."; - } - - identity path-metric-optimize-excludes { - base path-metric-optimization-type; - description - "A metric that optimizes to a maximum the number of excluded - resources specified in a set."; - } - - identity path-tiebreaker-type { - description - "Base identity for the path tiebreaker type."; - } - - identity path-tiebreaker-minfill { - base path-tiebreaker-type; - description - "Min-Fill LSP path placement: selects the path with the most - available bandwidth (load balance LSPs over more links)."; - } - - identity path-tiebreaker-maxfill { - base path-tiebreaker-type; - description - "Max-Fill LSP path placement: selects the path with the least - available bandwidth (packing more LSPs over few links)."; - } - - identity path-tiebreaker-random { - base path-tiebreaker-type; - description - "Random LSP path placement."; - } - - identity resource-affinities-type { - description - "Base identity for resource class affinities."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 2702: Requirements for Traffic Engineering Over MPLS"; - } - - identity resource-aff-include-all { - base resource-affinities-type; - description - "The set of attribute filters associated with a - tunnel, all of which must be present for a link - to be acceptable."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 2702: Requirements for Traffic Engineering Over MPLS"; - } - - identity resource-aff-include-any { - base resource-affinities-type; - description - "The set of attribute filters associated with a - tunnel, any of which must be present for a link - to be acceptable."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 2702: Requirements for Traffic Engineering Over MPLS"; - } - - identity resource-aff-exclude-any { - base resource-affinities-type; - description - "The set of attribute filters associated with a - tunnel, any of which renders a link unacceptable."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 2702: Requirements for Traffic Engineering Over MPLS"; - } - - identity te-optimization-criterion { - description - "Base identity for the TE optimization criteria."; - reference - "RFC 9522: Overview and Principles of Internet Traffic - Engineering"; - } - - identity not-optimized { - base te-optimization-criterion; - description - "Optimization is not applied."; - } - - identity cost { - base te-optimization-criterion; - description - "Optimized on cost."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity delay { - base te-optimization-criterion; - description - "Optimized on delay."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity path-computation-srlg-type { - description - "Base identity for Shared Risk Link Group (SRLG) path - computation."; - } - - identity srlg-ignore { - base path-computation-srlg-type; - description - "Ignores Shared Risk Link Groups (SRLGs) in the path - computation."; - } - - identity srlg-strict { - base path-computation-srlg-type; - description - "Includes a strict Shared Risk Link Group (SRLG) check in - the path computation."; - } - - identity srlg-preferred { - base path-computation-srlg-type; - description - "Includes a preferred Shared Risk Link Group (SRLG) check in - the path computation."; - } - - identity srlg-weighted { - base path-computation-srlg-type; - description - "Includes a weighted Shared Risk Link Group (SRLG) check in - the path computation."; - } - - identity path-computation-error-reason { - description - "Base identity for path computation error reasons."; - } - - identity path-computation-error-path-not-found { - base path-computation-error-reason; - description - "Path computation has failed because of an unspecified - reason."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP), Section 7.5"; - } - - identity path-computation-error-no-topology { - base path-computation-error-reason; - description - "Path computation has failed because there is no topology - with the provided topology-identifier."; - } - - identity path-computation-error-no-dependent-server { - base path-computation-error-reason; - description - "Path computation has failed because one or more dependent - path computation servers are unavailable. - - The dependent path computation server could be - a Backward-Recursive Path Computation (BRPC) downstream - PCE or a child PCE."; - reference - "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC) - Procedure to Compute Shortest Constrained - Inter-Domain Traffic Engineering Label Switched - Paths - RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture"; - } - - identity path-computation-error-pce-unavailable { - base path-computation-error-reason; - description - "Path computation has failed because PCE is not available. - - It corresponds to bit 31 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP) - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-no-inclusion-hop { - base path-computation-error-reason; - description - "Path computation has failed because there is no - node or link provided by one or more inclusion hops."; - } - - identity path-computation-error-destination-unknown-in-domain { - base path-computation-error-reason; - description - "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 - NO-PATH-VECTOR TLV."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-no-resource { - base path-computation-error-reason; - description - "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 - NO-PATH-VECTOR TLV."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-child-pce-unresponsive { - base path-computation-error-no-dependent-server; - description - "Path computation has failed because child PCE is not - responsive. - - It corresponds to bit 21 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-destination-domain-unknown { - base path-computation-error-reason; - description - "Path computation has failed because the destination domain - was unknown. - - It corresponds to bit 22 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-p2mp { - base path-computation-error-reason; - description - "Path computation has failed because of P2MP reachability - problem. - - It corresponds to bit 24 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 8306: Extensions to the Path Computation Element - Communication Protocol (PCEP) for - Point-to-Multipoint Traffic Engineering Label - Switched Paths - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-no-gco-migration { - base path-computation-error-reason; - description - "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 - NO-PATH-VECTOR TLV."; - reference - "RFC 5557: Path Computation Element Communication Protocol - (PCEP) Requirements and Protocol Extensions in - Support of Global Concurrent Optimization - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-no-gco-solution { - base path-computation-error-reason; - description - "Path computation has failed because of no GCO solution - found. - - It corresponds to bit 25 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 5557: Path Computation Element Communication Protocol - (PCEP) Requirements and Protocol Extensions in - Support of Global Concurrent Optimization - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-pks-expansion { - base path-computation-error-reason; - description - "Path computation has failed because of Path-Key Subobject - (PKS) expansion failure. - - It corresponds to bit 27 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 5520: Preserving Topology Confidentiality in - Inter-Domain Path Computation Using a - Path-Key-Based Mechanism - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-brpc-chain-unavailable { - base path-computation-error-no-dependent-server; - description - "Path computation has failed because PCE BRPC chain - unavailable. - - 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) - Procedure to Compute Shortest Constrained - Inter-Domain Traffic Engineering Label Switched - Paths - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-source-unknown { - base path-computation-error-reason; - description - "Path computation has failed because source node is - unknown. - - It corresponds to bit 29 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP); - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity path-computation-error-destination-unknown { - base path-computation-error-reason; - description - "Path computation has failed because destination node is - unknown. - - It corresponds to bit 30 of the Flags field of the - NO-PATH-VECTOR TLV."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP); - - https://www.iana.org/assignments/pcep - /pcep.xhtml#no-path-vector-tlv"; - } - - identity protocol-origin-type { - description - "Base identity for protocol origin type."; - } - - identity protocol-origin-api { - base protocol-origin-type; - description - "Protocol origin is via Application Programming Interface - (API)."; - } - - identity protocol-origin-pcep { - base protocol-origin-type; - description - "Protocol origin is Path Computation Engine Protocol - (PCEP)."; - reference - "RFC 5440: Path Computation Element (PCE) Communication - Protocol (PCEP)"; - } - - identity protocol-origin-bgp { - base protocol-origin-type; - description - "Protocol origin is Border Gateway Protocol (BGP)."; - reference - "RFC 9012: The BGP Tunnel Encapsulation Attribute"; - } - - identity svec-objective-function-type { - description - "Base identity for SVEC objective function type."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; - } - - identity svec-of-minimize-agg-bandwidth-consumption { - base svec-objective-function-type; - description - "Objective function for minimizing aggregate bandwidth - consumption (MBC)."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-of-minimize-load-most-loaded-link { - base svec-objective-function-type; - description - "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 - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-of-minimize-cost-path-set { - base svec-objective-function-type; - description - "Objective function for minimizing the cost on a path set - (MCC)."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-of-minimize-common-transit-domain { - base svec-objective-function-type; - description - "Objective function for minimizing the number of common - transit domains (MCTD)."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture."; - } - - identity svec-of-minimize-shared-link { - base svec-objective-function-type; - description - "Objective function for minimizing the number of shared - links (MSL)."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture."; - } - - identity svec-of-minimize-shared-srlg { - base svec-objective-function-type; - description - "Objective function for minimizing the number of shared - Shared Risk Link Groups (SRLG) (MSS)."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture."; - } - - identity svec-of-minimize-shared-nodes { - base svec-objective-function-type; - description - "Objective function for minimizing the number of shared - nodes (MSN)."; - reference - "RFC 8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path - Computation Element (H-PCE) Architecture."; - } - - identity svec-metric-type { - description - "Base identity for SVEC metric type."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)"; - } - - identity svec-metric-cumulative-te { - base svec-metric-type; - description - "Cumulative TE cost."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-metric-cumulative-igp { - base svec-metric-type; - description - "Cumulative IGP cost."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-metric-cumulative-hop { - base svec-metric-type; - description - "Cumulative Hop path metric."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-metric-aggregate-bandwidth-consumption { - base svec-metric-type; - description - "Aggregate bandwidth consumption."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - identity svec-metric-load-of-the-most-loaded-link { - base svec-metric-type; - description - "Load of the most loaded link."; - reference - "RFC 5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol - (PCEP)"; - } - - /* - * Typedefs - */ - - typedef admin-group { - type yang:hex-string { - /* 01:02:03:04 */ - length "1..11"; - } - description - "Administrative group / resource class / color representation - in 'hex-string' type. - - The most significant byte in the hex-string is the farthest - to the left in the byte sequence. - - Leading zero bytes in the configured value may be omitted - for brevity."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2 - RFC 5305: IS-IS Extensions for Traffic Engineering - RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; - } - - typedef admin-groups { - type union { - type admin-group; - type extended-admin-group; - } - description - "Derived types for TE administrative groups."; - } - - typedef extended-admin-group { - type yang:hex-string; - description - "Extended administrative group / resource class / color - representation in 'hex-string' type. - - The most significant byte in the hex-string is the farthest - to the left in the byte sequence. - - Leading zero bytes in the configured value may be omitted - for brevity."; - reference - "RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; - } - - typedef path-attribute-flags { - type union { - type identityref { - base session-attributes-flags; - } - type identityref { - base lsp-attributes-flags; - } - } - description - "Path attributes flags type."; - } - - typedef performance-metrics-normality { - type enumeration { - enum unknown { - value 0; - description - "Unknown."; - } - enum normal { - value 1; - description - "Normal. - - Indicates that the anomalous bit is not set."; - } - enum abnormal { - value 2; - description - "Abnormal. - - Indicates that the anomalous bit is set."; - } - } - description - "Indicates whether a performance metric is normal (anomalous - bit not set), abnormal (anomalous bit set), or unknown."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; - } - - typedef srlg { - type uint32; - description - "Shared Risk Link Group (SRLG) type."; - reference - "RFC 4203: OSPF Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS) - RFC 5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS)"; - } - - typedef te-common-status { - type enumeration { - enum up { - description - "Enabled."; - } - enum down { - description - "Disabled."; - } - enum testing { - description - "In some test mode."; - } - enum preparing-maintenance { - description - "The resource is disabled in the control plane to prepare - for a graceful shutdown for maintenance purposes."; - reference - "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS - Traffic Engineering Networks"; - } - enum maintenance { - description - "The resource is disabled in the data plane for maintenance - purposes."; - } - enum unknown { - description - "Status is unknown."; - } - } - description - "Defines a type representing the common states of a TE - resource."; - } - - typedef te-bandwidth { - type string { - pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' - + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' - + '[pP](\+)?(12[0-7]|' - + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' - + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' - + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' - + '[pP](\+)?(12[0-7]|' - + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; - } - description - "This is the generic bandwidth type. - - It is a string containing a list of numbers separated by - commas, where each of these numbers can be non-negative - decimal, hex integer, or hex float, as defined in - ISO/IEC 9899: - - (dec | hex | float)[*(','(dec | hex | float))] - - For the packet-switching type, the string encoding MUST follow - the type 'bandwidth-ieee-float32' as defined in RFC 8294 - (e.g., 0x1p10), where the units are in bytes per second. - - Canonically, the string is represented as all lowercase and in - hex, where the prefix '0x' precedes the hex number."; - reference - "ISO/IEC 9899:2024: Information Technology - Programming - Languages - C, Section 6.4.4.2 - RFC 8294: Common YANG Data Types for the Routing Area"; - } - - typedef te-ds-class { - type uint8 { - range "0..7"; - } - description - "The Differentiated Services Class-Type of traffic."; - reference - "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering, Section 4.3.1"; - } - - typedef te-global-id { - type uint32; - description - "An identifier to uniquely identify an operator, which can be - either a provider or a client. - - The definition of this type is taken from RFCs 6370 and 5003. - - This attribute type is used solely to provide a globally - unique context for TE topologies."; - reference - "RFC 5003: Attachment Individual Identifier (AII) Types for - Aggregation - RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers"; - } - - typedef te-hop-type { - type enumeration { - enum loose { - description - "A loose hop in an explicit path."; - } - enum strict { - description - "A strict hop in an explicit path."; - } - } - description - "Enumerated type for specifying loose or strict paths."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3.3"; - } - - typedef te-link-access-type { - type enumeration { - enum point-to-point { - description - "The link is point-to-point."; - } - enum multi-access { - description - "The link is multi-access, including broadcast and NBMA."; - } - } - description - "The access types of a TE link."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; - } - - typedef te-label-direction { - type enumeration { - enum forward { - description - "Label allocated for the forward LSP direction."; - } - enum reverse { - description - "Label allocated for the reverse LSP direction."; - } - } - description - "Enumerated type for specifying the forward or reverse - label."; - } - - typedef te-link-direction { - type enumeration { - enum incoming { - description - "The explicit route represents an incoming link on - a node."; - } - enum outgoing { - description - "The explicit route represents an outgoing link on - a node."; - } - } - description - "Enumerated type for specifying the direction of a link on - a node."; - } - - typedef te-metric { - type uint32; - description - "Traffic Engineering (TE) metric."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2, Section 2.5.5 - RFC 5305: IS-IS Extensions for Traffic Engineering, - Section 3.7"; - } - - typedef te-node-id { - type union { - type yang:dotted-quad; - type inet:ipv6-address-no-zone; - } - description - "A type representing the identifier for a node in a TE - topology. - - The identifier is represented either as 4 octets in - dotted-quad notation, or as 16 octets in full, mixed, - shortened, or shortened-mixed IPv6 address notation. - - This attribute MAY be mapped to the Router Address TLV - described in Section 2.4.1 of RFC 3630, the TE Router ID - described in Section 3 of RFC 6827, the Traffic Engineering - Router ID TLV described in Section 4.3 of RFC 5305, the TE - Router ID TLV described in Section 3.2.1 of RFC 6119, or the - IPv6 TE Router ID TLV described in Section 4.1 of RFC 6119. - - The reachability of such a TE node MAY be achieved by a - mechanism such as that described in Section 6.2 of RFC 6827."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2, Section 2.4.1 - RFC 5305: IS-IS Extensions for Traffic Engineering, - Section 4.3 - RFC 6119: IPv6 Traffic Engineering in IS-IS, Section 3.2.1 - RFC 6827: Automatically Switched Optical Network (ASON) - Routing for OSPFv2 Protocols, Section 3"; - } - - typedef te-oper-status { - type te-common-status; - description - "Defines a type representing the operational status of - a TE resource."; - } - - typedef te-admin-status { - type te-common-status; - description - "Defines a type representing the administrative status of - a TE resource."; - } - - typedef te-path-disjointness { - type bits { - bit node { - position 0; - description - "Node disjoint."; - } - bit link { - position 1; - description - "Link disjoint."; - } - bit srlg { - position 2; - description - "Shared Risk Link Group (SRLG) disjoint."; - } - } - description - "Type of the resource disjointness for a TE tunnel path."; - reference - "RFC 4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery"; - } - - typedef te-recovery-status { - type enumeration { - enum normal { - description - "Both the recovery span and the working span are fully - allocated and active, data traffic is being - transported over (or selected from) the working - span, and no trigger events are reported."; - } - enum recovery-started { - description - "The recovery action has been started but not completed."; - } - enum recovery-succeeded { - description - "The recovery action has succeeded. - - The working span has reported a failure/degrade condition, - and the user traffic is being transported (or selected) - on the recovery span."; - } - enum recovery-failed { - description - "The recovery action has failed."; - } - enum reversion-started { - description - "The reversion has started."; - } - enum reversion-succeeded { - description - "The reversion action has succeeded."; - } - enum reversion-failed { - description - "The reversion has failed."; - } - enum recovery-unavailable { - description - "The recovery is unavailable, as a result of either an - operator's lockout command or a failure condition - detected on the recovery span."; - } - enum recovery-admin { - description - "The operator has issued a command to switch the user - traffic to the recovery span."; - } - enum wait-to-restore { - description - "The recovery domain is recovering from a failure/degrade - condition on the working span that is being controlled by - the Wait-to-Restore (WTR) timer."; - } - } - description - "Defines the status of a recovery action."; - reference - "RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection - RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - - typedef te-template-name { - type string { - pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; - } - description - "A type for the name of a TE node template or TE link - template."; - } - - typedef te-topology-event-type { - type enumeration { - enum add { - value 0; - description - "A TE node or TE link has been added."; - } - enum remove { - value 1; - description - "A TE node or TE link has been removed."; - } - enum update { - value 2; - description - "A TE node or TE link has been updated."; - } - } - description - "TE event type for notifications."; - } - - typedef te-topology-id { - type union { - type string { - length "0"; - // empty string - } - type string { - pattern '([a-zA-Z0-9\-_.]+:)*' - + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; - } - } - description - "An identifier for a topology. - - It is optional to have one or more prefixes at the beginning, - separated by colons. - - The prefixes can be 'network-types' as defined in the - 'ietf-network' module in RFC 8345, to help the user better - understand the topology before further inquiry is made."; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - - typedef te-tp-id { - type union { - type uint32; - // Unnumbered - type inet:ip-address; - // IPv4 or IPv6 address - } - description - "An identifier for a TE link endpoint on a node. - - This attribute is mapped to a local or remote link identifier - as defined in RFCs 3630 and 5305."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2 - RFC 5305: IS-IS Extensions for Traffic Engineering"; - } - - typedef path-type { - type enumeration { - enum primary-path { - description - "Indicates that the TE path is a primary path."; - } - enum secondary-path { - description - "Indicates that the TE path is a secondary path."; - } - enum primary-reverse-path { - description - "Indicates that the TE path is a primary reverse path."; - } - enum secondary-reverse-path { - description - "Indicates that the TE path is a secondary reverse path."; - } - } - description - "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 bandwidth groupings - */ - - grouping te-bandwidth { - description - "This grouping defines the generic TE bandwidth. - - For some known data-plane technologies, specific modeling - structures are specified. - - The string-encoded 'te-bandwidth' type is used for - unspecified technologies. - - The modeling structure can be augmented later for other - technologies."; - container te-bandwidth { - description - "Container that specifies TE bandwidth. - - The choices can be augmented for specific data-plane - technologies."; - choice technology { - default "generic"; - description - "Data-plane technology type."; - case generic { - leaf generic { - type te-bandwidth; - description - "Bandwidth specified in a generic format."; - } - } - } - } - } - - /* - * TE label groupings - */ - - grouping te-label { - description - "This grouping defines the generic TE label. - - The modeling structure can be augmented for each technology. - - For unspecified technologies, 'rt-types:generalized-label' - is used."; - container te-label { - description - "Container that specifies the TE label. - - The choices can be augmented for specific data-plane - technologies."; - choice technology { - default "generic"; - description - "Data-plane technology type."; - case generic { - leaf generic { - type rt-types:generalized-label; - description - "TE label specified in a generic format."; - } - } - } - leaf direction { - type te-label-direction; - default "forward"; - description - "Label direction."; - } - } - } - - grouping te-topology-identifier { - description - "Augmentation for a TE topology."; - container te-topology-identifier { - description - "TE topology identifier container."; - leaf provider-id { - type te-global-id; - default "0"; - description - "An identifier to uniquely identify a provider. - If omitted, it assumes that the topology provider ID - value = 0 (the default)."; - } - leaf client-id { - type te-global-id; - default "0"; - description - "An identifier to uniquely identify a client. - If omitted, it assumes that the topology client ID - value = 0 (the default)."; - } - leaf topology-id { - type te-topology-id; - default ""; - description - "When the datastore contains several topologies, - 'topology-id' distinguishes between them. - - If omitted, the default (empty) string for this leaf is - assumed."; - } - } - } - - /* - * TE performance metrics groupings - */ - - grouping performance-metrics-one-way-delay-loss { - description - "Performance Metrics (PM) information in real time that can - be applicable to links or connections. - - PM defined in this grouping are applicable to generic TE PM - as well as packet TE PM."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf one-way-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - description - "One-way delay or latency."; - } - leaf one-way-delay-normality { - type te-types:performance-metrics-normality; - description - "One-way delay normality."; - } - } - - grouping performance-metrics-two-way-delay-loss { - description - "Performance Metrics (PM) information in real time that can be - applicable to links or connections. - - PM defined in this grouping are applicable to generic TE PM - as well as packet TE PM."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf two-way-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - description - "Two-way delay or latency."; - } - leaf two-way-delay-normality { - type te-types:performance-metrics-normality; - description - "Two-way delay normality."; - } - } - - grouping performance-metrics-one-way-bandwidth { - description - "Performance Metrics (PM) information in real time that can be - applicable to links. - - PM defined in this grouping are applicable to generic TE PM - as well as packet TE PM."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf one-way-residual-bandwidth { - type rt-types:bandwidth-ieee-float32; - units "bytes per second"; - default "0x0p0"; - description - "Residual bandwidth that subtracts tunnel reservations from - Maximum Bandwidth (or link capacity) (RFC 3630) and - provides an aggregated remainder across QoS classes."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; - } - leaf one-way-residual-bandwidth-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Residual bandwidth normality."; - } - leaf one-way-available-bandwidth { - type rt-types:bandwidth-ieee-float32; - units "bytes per second"; - default "0x0p0"; - description - "Available bandwidth that is defined to be residual - bandwidth minus the measured bandwidth used for the - actual forwarding of non-RSVP-TE LSP packets. - - For a bundled link, available bandwidth is defined to be - the sum of the component link available bandwidths."; - } - leaf one-way-available-bandwidth-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Available bandwidth normality."; - } - leaf one-way-utilized-bandwidth { - type rt-types:bandwidth-ieee-float32; - units "bytes per second"; - default "0x0p0"; - description - "Bandwidth utilization that represents the actual - utilization of the link (i.e., as measured in the router). - For a bundled link, bandwidth utilization is defined to - be the sum of the component link bandwidth utilizations."; - } - leaf one-way-utilized-bandwidth-normality { - type te-types:performance-metrics-normality; - default "normal"; - description - "Bandwidth utilization normality."; - } - } - - grouping one-way-performance-metrics { - description - "One-way Performance Metrics (PM) throttle grouping."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf one-way-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "One-way delay or latency."; - } - leaf one-way-residual-bandwidth { - type rt-types:bandwidth-ieee-float32; - units "bytes per second"; - default "0x0p0"; - description - "Residual bandwidth that subtracts tunnel reservations from - Maximum Bandwidth (or link capacity) (RFC 3630) and - provides an aggregated remainder across QoS classes."; - reference - "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; - } - leaf one-way-available-bandwidth { - type rt-types:bandwidth-ieee-float32; - units "bytes per second"; - default "0x0p0"; - description - "Available bandwidth that is defined to be residual - bandwidth minus the measured bandwidth used for the - actual forwarding of non-RSVP-TE LSP packets. - - For a bundled link, available bandwidth is defined to be - the sum of the component link available bandwidths."; - } - leaf one-way-utilized-bandwidth { - type rt-types:bandwidth-ieee-float32; - units "bytes per second"; - default "0x0p0"; - description - "Bandwidth utilization that represents the actual - utilization of the link (i.e., as measured in the router). - For a bundled link, bandwidth utilization is defined to - be the sum of the component link bandwidth utilizations."; - } - } - - grouping two-way-performance-metrics { - description - "Two-way Performance Metrics (PM) throttle grouping."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf two-way-delay { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Two-way delay or latency."; - } - } - - grouping performance-metrics-thresholds { - description - "Grouping for configurable thresholds for measured - attributes."; - uses one-way-performance-metrics; - uses two-way-performance-metrics; - } - - grouping performance-metrics-attributes { - description - "Contains Performance Metrics (PM) attributes."; - container performance-metrics-one-way { - description - "One-way link performance information in real time."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - uses performance-metrics-one-way-delay-loss; - uses performance-metrics-one-way-bandwidth; - } - container performance-metrics-two-way { - description - "Two-way link performance information in real time."; - reference - "RFC 6374: Packet Loss and Delay Measurement for MPLS - Networks"; - uses performance-metrics-two-way-delay-loss; - } - } - - grouping performance-metrics-throttle-container { - description - "Controls Performance Metrics (PM) throttling."; - container throttle { - must 'suppression-interval >= measure-interval' { - error-message "'suppression-interval' cannot be less than " - + "'measure-interval'."; - description - "Constraint on 'suppression-interval' and - 'measure-interval'."; - } - description - "Link performance information in real time."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions - RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions - RFC 7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf one-way-delay-offset { - type uint32 { - range "0..16777215"; - } - units "microseconds"; - default "0"; - description - "Offset value to be added to the measured delay value."; - } - leaf measure-interval { - type uint32; - units "seconds"; - default "30"; - description - "Interval to measure the extended metric values."; - } - leaf advertisement-interval { - type uint32; - units "seconds"; - default "0"; - description - "Interval to advertise the extended metric values."; - } - leaf suppression-interval { - type uint32 { - range "1..max"; - } - units "seconds"; - default "120"; - description - "Interval to suppress advertisement of the extended metric - values."; - reference - "RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 6"; - } - container threshold-out { - description - "If the measured parameter falls outside an upper bound - for all but the minimum-delay metric (or a lower bound - for the minimum-delay metric only) and the advertised - value is not already outside that bound, an 'anomalous' - announcement (anomalous bit set) will be triggered."; - uses performance-metrics-thresholds; - } - container threshold-in { - description - "If the measured parameter falls inside an upper bound - for all but the minimum-delay metric (or a lower bound - for the minimum-delay metric only) and the advertised - value is not already inside that bound, a 'normal' - announcement (anomalous bit cleared) will be triggered."; - uses performance-metrics-thresholds; - } - container threshold-accelerated-advertisement { - description - "When the difference between the last advertised value and - the current measured value exceeds this threshold, an - 'anomalous' announcement (anomalous bit set) will be - triggered."; - uses performance-metrics-thresholds; - } - } - } - - /* - * TE tunnel generic groupings - */ - - grouping explicit-route-hop { - description - "The explicit route entry grouping."; - choice type { - description - "The explicit route entry type."; - case numbered-node-hop { - container numbered-node-hop { - must 'node-id-uri or node-id' { - description - "At least one node identifier needs to be present."; - } - description - "Numbered node route hop."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE - RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering - (RSVP-TE)"; - leaf node-id-uri { - type nw:node-id; - description - "The identifier of a node in the topology."; - } - leaf node-id { - type te-node-id; - description - "The identifier of a node in the TE topology."; - } - leaf hop-type { - type te-hop-type; - default "strict"; - description - "Strict or loose hop."; - } - } - } - case numbered-link-hop { - container numbered-link-hop { - description - "Numbered link explicit route hop."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE - RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering - (RSVP-TE)"; - leaf link-tp-id { - type te-tp-id; - mandatory true; - description - "TE Link Termination Point (LTP) identifier."; - } - leaf hop-type { - type te-hop-type; - default "strict"; - description - "Strict or loose hop."; - } - leaf direction { - type te-link-direction; - default "outgoing"; - description - "Link route object direction."; - } - } - } - case unnumbered-link-hop { - container unnumbered-link-hop { - 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 - Termination Point (LTP) identifier need to be - present."; - } - description - "Unnumbered link explicit route hop."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE - RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering - (RSVP-TE)"; - leaf link-tp-id-uri { - type nt:tp-id; - description - "Link Termination Point (LTP) identifier."; - } - leaf link-tp-id { - type te-tp-id; - description - "TE LTP identifier. - - The combination of the TE link ID and the TE node ID - is used to identify an unnumbered TE link."; - } - leaf node-id-uri { - type nw:node-id; - description - "The identifier of a node in the topology."; - } - leaf node-id { - type te-node-id; - description - "The identifier of a node in the TE topology."; - } - leaf hop-type { - type te-hop-type; - default "strict"; - description - "Strict or loose hop."; - } - leaf direction { - type te-link-direction; - default "outgoing"; - description - "Link route object direction."; - } - } - } - case as-number { - container as-number-hop { - description - "Autonomous System (AS) explicit route hop."; - leaf as-number { - type inet:as-number; - mandatory true; - description - "The Autonomous System (AS) number."; - } - leaf hop-type { - type te-hop-type; - default "strict"; - description - "Strict or loose hop."; - } - } - } - case label { - description - "The label explicit route hop type."; - container label-hop { - description - "Label hop type."; - uses te-label; - } - } - } - } - - grouping explicit-route-hop-with-srlg { - description - "Augments the explicit route entry grouping with Shared Risk - Link Group (SRLG) hop type."; - uses explicit-route-hop { - augment "type" { - description - "Augmentation for a generic explicit route for Shared - Risk Link Group (SRLG) inclusion or exclusion."; - case srlg { - description - "An Shared Risk Link Group (SRLG) value to be - included or excluded."; - container srlg { - description - "Shared Risk Link Group (SRLG) container."; - leaf srlg { - type uint32; - description - "Shared Risk Link Group (SRLG) value."; - } - } - } - } - } - } - - grouping record-route-state { - description - "The Record Route grouping."; - leaf index { - type uint32; - description - "Record Route hop index. - - The index is used to identify an entry in the list. - - The order of entries is defined by the user without relying - on key values."; - } - choice type { - description - "The Record Route entry type."; - case numbered-node-hop { - description - "Numbered node route hop."; - container numbered-node-hop { - must 'node-id-uri or node-id' { - description - "At least one node identifier need to be present."; - } - description - "Numbered node route hop container."; - leaf node-id-uri { - type nw:node-id; - description - "The identifier of a node in the topology."; - } - leaf node-id { - type te-node-id; - description - "The identifier of a node in the TE topology."; - } - leaf-list flags { - type path-attribute-flags; - description - "Path attributes flags."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels - RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; - } - } - } - case numbered-link-hop { - description - "Numbered link route hop."; - container numbered-link-hop { - description - "Numbered link route hop container."; - leaf link-tp-id { - type te-tp-id; - mandatory true; - description - "Numbered TE LTP identifier."; - } - leaf-list flags { - type path-attribute-flags; - description - "Path attributes flags."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels - RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; - } - } - } - case unnumbered-link-hop { - description - "Unnumbered link route hop."; - container unnumbered-link-hop { - 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 - Termination Point (LTP) identifier need to be - present."; - } - description - "Unnumbered link Record Route hop."; - reference - "RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering - (RSVP-TE)"; - leaf link-tp-id-uri { - type nt:tp-id; - description - "Link Termination Point (LTP) identifier."; - } - leaf link-tp-id { - type te-tp-id; - description - "TE LTP identifier. - - The combination of the TE link ID and the TE node ID - is used to identify an unnumbered TE link."; - } - leaf node-id-uri { - type nw:node-id; - description - "The identifier of a node in the topology."; - } - leaf node-id { - type te-node-id; - description - "The identifier of a node in the TE topology."; - } - leaf-list flags { - type path-attribute-flags; - description - "Path attributes flags."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels - RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; - } - } - } - case label { - description - "The label Record Route entry types."; - container label-hop { - description - "Label route hop type."; - uses te-label; - leaf-list flags { - type path-attribute-flags; - description - "Path attributes flags."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels - RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP - Tunnels - RFC 4561: Definition of a Record Route Object (RRO) - Node-Id Sub-Object"; - } - } - } - } - } - - grouping label-restriction-info { - description - "Label set item information."; - leaf restriction { - type enumeration { - enum inclusive { - description - "The label or label range is inclusive."; - } - enum exclusive { - description - "The label or label range is exclusive."; - } - } - default "inclusive"; - description - "Indicates whether the list item is inclusive or exclusive."; - } - leaf index { - type uint32; - description - "The index of the label restriction list entry."; - } - container label-start { - must "(not(../label-end/te-label/direction) and" - + " not(te-label/direction))" - + " or " - + "(../label-end/te-label/direction = te-label/direction)" - + " or " - + "(not(te-label/direction) and" - + " (../label-end/te-label/direction = 'forward'))" - + " or " - + "(not(../label-end/te-label/direction) and" - + " (te-label/direction = 'forward'))" { - error-message "'label-start' and 'label-end' must have the " - + "same direction."; - } - description - "This is the starting label if a label range is specified. - This is the label value if a single label is specified, - in which case the 'label-end' attribute is not set."; - uses te-label; - } - container label-end { - must "(not(../label-start/te-label/direction) and" - + " not(te-label/direction))" - + " or " - + "(../label-start/te-label/direction = " - + "te-label/direction)" - + " or " - + "(not(te-label/direction) and" - + " (../label-start/te-label/direction = 'forward'))" - + " or " - + "(not(../label-start/te-label/direction) and" - + " (te-label/direction = 'forward'))" { - error-message "'label-start' and 'label-end' must have the " - + "same direction."; - } - description - "This is the ending label if a label range is specified. - This attribute is not set if a single label is specified."; - uses te-label; - } - container label-step { - description - "The step increment between labels in the label range. - - The label start/end values MUST be consistent with the sign - of label step. - - For example: - 'label-start' < 'label-end' enforces 'label-step' > 0 - 'label-start' > 'label-end' enforces 'label-step' < 0."; - choice technology { - default "generic"; - description - "Data-plane technology type."; - case generic { - leaf generic { - type int32; - default "1"; - description - "Label range step."; - } - } - } - } - leaf range-bitmap { - type yang:hex-string; - description - "When there are gaps between 'label-start' and 'label-end', - this attribute is used to specify the positions - of the used labels. - - This is represented in big endian as 'hex-string'. - - In case the restriction is 'inclusive', the bit-position is - set if the corresponding mapped label is available. - In this case, if the range-bitmap is not present, all the - labels in the range are available. - - In case the restriction is 'exclusive', the bit-position is - set if the corresponding mapped label is not available. - In this case, if the range-bitmap is not present, all the - labels in the range are not available. - - The most significant byte in the hex-string is the farthest - to the left in the byte sequence. - - Leading zero bytes in the configured value may be omitted - for brevity. - - Each bit position in the 'range-bitmap' 'hex-string' maps - to a label in the range derived from 'label-start'. - - For example, assuming that 'label-start' = 16000 and - 'range-bitmap' = 0x01000001, then: - - bit position (0) is set, and the corresponding mapped - label from the range is 16000 + (0 * 'label-step') or - 16000 for default 'label-step' = 1. - - bit position (24) is set, and the corresponding mapped - label from the range is 16000 + (24 * 'label-step') or - 16024 for default 'label-step' = 1."; - } - } - - grouping label-set-info { - description - "Grouping for the list of label restrictions specifying what - labels may or may not be used."; - container label-restrictions { - description - "The label restrictions container."; - list label-restriction { - key "index"; - description - "The absence of the label restrictions container implies - that all labels are acceptable; otherwise, only restricted - labels are available."; - reference - "RFC 7579: General Network Element Constraint Encoding - for GMPLS-Controlled Networks"; - uses label-restriction-info; - } - } - } - - grouping optimization-metric-entry { - description - "Optimization metrics configuration grouping."; - leaf metric-type { - type identityref { - base path-metric-optimization-type; - } - description - "Identifies the 'metric-type' that the path computation - process uses for optimization."; - } - leaf weight { - type uint8; - default "1"; - description - "TE path metric normalization weight."; - } - container explicit-route-exclude-objects { - when "../metric-type = " - + "'te-types:path-metric-optimize-excludes'"; - description - "Container for the 'exclude route' object list."; - uses path-route-exclude-objects; - } - container explicit-route-include-objects { - when "../metric-type = " - + "'te-types:path-metric-optimize-includes'"; - description - "Container for the 'include route' object list."; - uses path-route-include-objects; - } - } - - grouping common-constraints { - description - "Common constraints grouping that can be set on - a constraint set or directly on the tunnel."; - uses te-bandwidth { - description - "A requested bandwidth to use for path computation."; - } - leaf link-protection { - type identityref { - base link-protection-type; - } - default "te-types:link-protection-unprotected"; - description - "Link protection type required for the links included - in the computed path."; - reference - "RFC 4202: Routing Extensions in Support of - Generalized Multi-Protocol Label Switching - (GMPLS)"; - } - leaf setup-priority { - type uint8 { - range "0..7"; - } - default "7"; - description - "TE LSP requested setup priority."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; - } - leaf hold-priority { - type uint8 { - range "0..7"; - } - default "7"; - description - "TE LSP requested hold priority."; - reference - "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; - } - leaf signaling-type { - type identityref { - base path-signaling-type; - } - default "te-types:path-setup-rsvp"; - description - "TE tunnel path signaling type."; - } - } - - grouping tunnel-constraints { - description - "Tunnel constraints grouping that can be set on - a constraint set or directly on the tunnel."; - leaf network-id { - type nw:network-id; - description - "The network topology identifier."; - } - uses te-topology-identifier; - uses common-constraints; - } - - grouping path-constraints-route-objects { - description - "List of route entries to be included or excluded when - performing the path computation."; - container explicit-route-objects { - description - "Container for the explicit route object lists."; - list route-object-exclude-always { - key "index"; - ordered-by user; - description - "List of route objects to always exclude from the path - computation."; - leaf index { - type uint32; - description - "Explicit Route Object index. - - The index is used to identify an entry in the list. - - The order of entries is defined by the user without - relying on key values."; - } - uses explicit-route-hop { - refine "type/numbered-node-hop/numbered-node-hop" - + "/hop-type" { - must '. = "strict"' { - description - "Loose hops can only be used for 'include' route - objects."; - reference - "RFC 4874: Exclude Routes - Extension to Resource - ReserVation Protocol-Traffic Engineering - (RSVP-TE), Section 3.1"; - } - } - } - } - list route-object-include-exclude { - key "index"; - ordered-by user; - description - "List of route objects to include or exclude in the path - computation."; - leaf explicit-route-usage { - type identityref { - base route-usage-type; - } - default "te-types:route-include-object"; - description - "Indicates whether to include or exclude the - route object. - - The default is to include it."; - } - leaf index { - type uint32; - description - "Route object include-exclude index. - - The index is used to identify an entry in the list. - - The order of entries is defined by the user without - relying on key values."; - } - uses explicit-route-hop-with-srlg { - refine "type/numbered-node-hop/numbered-node-hop" - + "/hop-type" { - must '(. = "strict") or ' - + 'derived-from-or-self(../../explicit-route-usage,' - + '"te-types:route-include-object")' { - description - "Loose hops can only be used for 'include' route - objects."; - reference - "RFC 4874: Exclude Routes - Extension to Resource - ReserVation Protocol-Traffic Engineering - (RSVP-TE), Section 3.1"; - } - } - } - } - } - } - - grouping path-route-include-objects { - description - "List of route objects to be included when performing - the path computation."; - list route-object-include-object { - key "index"; - ordered-by user; - description - "List of Explicit Route Objects to be included in the - path computation."; - leaf index { - type uint32; - description - "Route object entry index. - - The index is used to identify an entry in the list. - - The order of entries is defined by the user without - relying on key values."; - } - uses explicit-route-hop; - } - } - - grouping path-route-exclude-objects { - description - "List of route objects to be excluded when performing - the path computation."; - list route-object-exclude-object { - key "index"; - ordered-by user; - description - "List of Explicit Route Objects to be excluded in the - path computation."; - leaf index { - type uint32; - description - "Route object entry index. - - The index is used to identify an entry in the list. - - The order of entries is defined by the user without - relying on key values."; - } - uses explicit-route-hop-with-srlg; - } - } - - grouping generic-path-metric-bounds { - description - "TE path metric bounds grouping."; - container path-metric-bounds { - description - "Top-level container for the list of path metric bounds."; - list path-metric-bound { - key "metric-type"; - description - "List of path metric bounds, which can apply to link and - path metrics. - - TE paths which have at least one path metric which - exceeds the specified bounds MUST NOT be selected. - - TE paths that traverse TE links which have at least one - link metric which exceeds the specified bounds MUST NOT - be selected."; - leaf metric-type { - type identityref { - base link-path-metric-type; - } - description - "Identifies an entry in the list of 'metric-type' items - bound for the TE path."; - } - leaf upper-bound { - type uint64; - default "0"; - description - "Upper bound on the specified 'metric-type'. - - A zero indicates an unbounded upper limit for the - specified 'metric-type'. - - The unit of is interpreted in the context of the - 'metric-type' identity."; - } - } - } - } - - grouping generic-path-optimization { - description - "TE generic path optimization grouping."; - container optimizations { - description - "The objective function container that includes - attributes to impose when computing a TE path."; - choice algorithm { - description - "Optimizations algorithm."; - case metric { - if-feature "path-optimization-metric"; - /* Optimize by metric */ - list optimization-metric { - key "metric-type"; - description - "TE path metric type."; - uses optimization-metric-entry; - } - /* Tiebreakers */ - container tiebreakers { - status deprecated; - description - "Container for the list of tiebreakers. - - This container has been deprecated by the tiebreaker - leaf."; - list tiebreaker { - key "tiebreaker-type"; - status deprecated; - description - "The list of tiebreaker criteria to apply on an - equally favored set of paths, in order to pick - the best."; - leaf tiebreaker-type { - type identityref { - base path-metric-type; - } - status deprecated; - description - "Identifies an entry in the list of tiebreakers."; - } - } - } - } - case objective-function { - if-feature "path-optimization-objective-function"; - /* Objective functions */ - container objective-function { - description - "The objective function container that includes - attributes to impose when computing a TE path."; - leaf objective-function-type { - type identityref { - base objective-function-type; - } - default "te-types:of-minimize-cost-path"; - description - "Objective function entry."; - } - } - } - } - } - leaf tiebreaker { - type identityref { - base path-tiebreaker-type; - } - default "te-types:path-tiebreaker-random"; - description - "The tiebreaker criteria to apply on an equally favored set - of paths, in order to pick the best."; - } - } - - grouping generic-path-affinities { - description - "Path affinities grouping."; - container path-affinities-values { - description - "Path affinities represented as values."; - list path-affinities-value { - key "usage"; - description - "List of named affinity constraints."; - leaf usage { - type identityref { - base resource-affinities-type; - } - description - "Identifies an entry in the list of value affinity - constraints."; - } - leaf value { - type admin-groups; - default ""; - description - "The affinity value. - - The default is empty."; - } - } - } - container path-affinity-names { - description - "Path affinities represented as names."; - list path-affinity-name { - key "usage"; - description - "List of named affinity constraints."; - leaf usage { - type identityref { - base resource-affinities-type; - } - description - "Identifies an entry in the list of named affinity - constraints."; - } - list affinity-name { - key "name"; - description - "List of named affinities."; - leaf name { - type string; - description - "Identifies a named affinity entry."; - } - } - } - } - } - - grouping generic-path-srlgs { - description - "Path Shared Risk Link Group (SRLG) grouping."; - container path-srlgs-lists { - description - "Path Shared Risk Link Group (SRLG) properties container."; - list path-srlgs-list { - key "usage"; - description - "List of Shared Risk Link Group (SRLG) values to be - included or excluded."; - leaf usage { - type identityref { - base route-usage-type; - } - description - "Identifies an entry in a list of Shared Risk Link Groups - (SRLGs) to either include or exclude."; - } - leaf-list values { - type srlg; - description - "List of Shared Risk Link Group (SRLG) values."; - } - } - } - container path-srlgs-names { - description - "Container for the list of named Shared Risk Link Groups - (SRLGs)."; - list path-srlgs-name { - key "usage"; - description - "List of named Shared Risk Link Groups (SRLGs) to be - included or excluded."; - leaf usage { - type identityref { - base route-usage-type; - } - description - "Identifies an entry in a list of named Shared Risk Link - Groups (SRLGs) to either include or exclude."; - } - leaf-list names { - type string; - description - "List of named Shared Risk Link Groups (SRLGs)."; - } - } - } - } - - grouping generic-path-disjointness { - description - "Path disjointness grouping."; - leaf disjointness { - type te-path-disjointness; - description - "The type of resource disjointness. - When configured for a primary path, the disjointness level - applies to all secondary LSPs. - - When configured for a secondary path, the disjointness - level overrides the level configured for the primary path."; - } - } - - grouping common-path-constraints-attributes { - description - "Common path constraints configuration grouping."; - uses common-constraints; - uses generic-path-metric-bounds; - uses generic-path-affinities; - uses generic-path-srlgs; - } - - grouping generic-path-constraints { - description - "Global named path constraints configuration grouping."; - container path-constraints { - description - "TE named path constraints container."; - uses common-path-constraints-attributes; - uses generic-path-disjointness; - } - } - - grouping generic-path-properties { - description - "TE generic path properties grouping."; - container path-properties { - config false; - description - "The TE path properties."; - list path-metric { - key "metric-type"; - description - "TE path metric type."; - leaf metric-type { - type identityref { - base path-metric-type; - } - description - "TE path metric type."; - } - leaf accumulative-value { - type uint64; - description - "TE path metric accumulative value."; - } - } - uses generic-path-affinities; - uses generic-path-srlgs; - container path-route-objects { - description - "Container for the list of route objects either returned by - the computation engine or actually used by an LSP."; - list path-route-object { - key "index"; - ordered-by user; - description - "List of route objects either returned by the computation - engine or actually used by an LSP."; - leaf index { - type uint32; - description - "Route object entry index. - - The index is used to identify an entry in the list. - - The order of entries is defined by the user without - relying on key values."; - } - uses explicit-route-hop; - } - } - } - } - - grouping encoding-and-switching-type { - description - "Common grouping to define the LSP encoding and - switching types"; - leaf encoding { - type identityref { - base te-types:lsp-encoding-types; - } - description - "LSP encoding type."; - reference - "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) - Architecture"; - } - leaf switching-type { - type identityref { - base te-types:switching-capabilities; - } - description - "LSP switching type."; - reference - "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) - Architecture"; - } - } - - grouping te-generic-node-id { - description - "A reusable grouping for a TE generic node identifier."; - leaf id { - type union { - type te-node-id; - type inet:ip-address; - type nw:node-id; - } - description - "The identifier of the node. - - It can be represented as IP address or dotted quad address - or as a URI. - - The type data node disambiguates the union type."; - } - leaf type { - type enumeration { - enum ip { - description - "IP address representation of the node identifier."; - } - enum te-id { - description - "TE identifier of the node"; - } - enum node-id { - description - "URI representation of the node identifier."; - } - } - description - "Type of node identifier representation."; - } - } -} -- GitLab From 2f14baa8e4e4f913c8b563042b35f51e5396aeaf Mon Sep 17 00:00:00 2001 From: armingol Date: Fri, 27 Mar 2026 11:27:43 +0000 Subject: [PATCH 3/4] Update Yang models --- .../yang/ietf-te-packet-types@2020-06-10.yang | 475 +++ .../yang/ietf-te-types@2020-06-10.yang | 3379 +++++++++++++++++ 2 files changed, 3854 insertions(+) create mode 100644 src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang create mode 100644 src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang diff --git a/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang new file mode 100644 index 000000000..8e7d4aafa --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang @@ -0,0 +1,475 @@ +module ietf-te-packet-types { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; + prefix te-packet-types; + + /* Import TE generic types */ + + import ietf-te-types { + prefix te-types; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + + organization + "IETF Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + contact + "WG Web: + WG List: + + Editor: Tarek Saad + + + Editor: Rakesh Gandhi + + + Editor: Vishnu Pavan Beeram + + + Editor: Xufeng Liu + + + Editor: Igor Bryskin + "; + description + "This YANG module contains a collection of generally useful YANG + data type definitions specific to MPLS TE. The model fully + conforms to the Network Management Datastore Architecture + (NMDA). + + Copyright (c) 2020 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Simplified BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 8776; see the + RFC itself for full legal notices."; + + revision 2020-06-10 { + description + "Latest revision of TE MPLS types."; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + + /** + * Typedefs + */ + + typedef te-bandwidth-requested-type { + type enumeration { + enum specified { + description + "Bandwidth is explicitly specified."; + } + enum auto { + description + "Bandwidth is automatically computed."; + } + } + description + "Enumerated type for specifying whether bandwidth is + explicitly specified or automatically computed."; + } + + typedef te-class-type { + type uint8; + description + "Diffserv-TE Class-Type. Defines a set of Traffic Trunks + crossing a link that is governed by a specific set of + bandwidth constraints. Class-Type is used for the purposes + of link bandwidth allocation, constraint-based routing, and + admission control."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering"; + } + + typedef bc-type { + type uint8 { + range "0..7"; + } + description + "Diffserv-TE bandwidth constraints as defined in RFC 4124."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering"; + } + + typedef bandwidth-kbps { + type uint64; + units "Kbps"; + description + "Bandwidth values, expressed in kilobits per second."; + } + + typedef bandwidth-mbps { + type uint64; + units "Mbps"; + description + "Bandwidth values, expressed in megabits per second."; + } + + typedef bandwidth-gbps { + type uint64; + units "Gbps"; + description + "Bandwidth values, expressed in gigabits per second."; + } + + identity backup-protection-type { + description + "Base identity for the backup protection type."; + } + + identity backup-protection-link { + base backup-protection-type; + description + "Backup provides link protection only."; + } + + identity backup-protection-node-link { + base backup-protection-type; + description + "Backup offers node (preferred) or link protection."; + } + + identity bc-model-type { + description + "Base identity for the Diffserv-TE Bandwidth Constraints + Model type."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering"; + } + + identity bc-model-rdm { + base bc-model-type; + description + "Russian Dolls Bandwidth Constraints Model type."; + reference + "RFC 4127: Russian Dolls Bandwidth Constraints Model for + Diffserv-aware MPLS Traffic Engineering"; + } + + identity bc-model-mam { + base bc-model-type; + description + "Maximum Allocation Bandwidth Constraints Model type."; + reference + "RFC 4125: Maximum Allocation Bandwidth Constraints Model for + Diffserv-aware MPLS Traffic Engineering"; + } + + identity bc-model-mar { + base bc-model-type; + description + "Maximum Allocation with Reservation Bandwidth Constraints + Model type."; + reference + "RFC 4126: Max Allocation with Reservation Bandwidth + Constraints Model for Diffserv-aware MPLS Traffic Engineering + & Performance Comparisons"; + } + + grouping performance-metrics-attributes-packet { + description + "Contains PM attributes."; + uses te-types:performance-metrics-attributes { + augment "performance-metrics-one-way" { + leaf one-way-min-delay { + type uint32 { + range "0..16777215"; + } + description + "One-way minimum delay or latency in microseconds."; + } + leaf one-way-min-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "One-way minimum delay or latency normality."; + } + leaf one-way-max-delay { + type uint32 { + range "0..16777215"; + } + description + "One-way maximum delay or latency in microseconds."; + } + leaf one-way-max-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "One-way maximum delay or latency normality."; + } + leaf one-way-delay-variation { + type uint32 { + range "0..16777215"; + } + description + "One-way delay variation in microseconds."; + reference + "RFC 5481: Packet Delay Variation Applicability + Statement, Section 4.2"; + } + leaf one-way-delay-variation-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "One-way delay variation normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) Using + TE Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions"; + } + leaf one-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + description + "One-way packet loss as a percentage of the total traffic + sent over a configurable interval. The finest precision + is 0.000003%, where the maximum is 50.331642%."; + reference + "RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 4.4"; + } + leaf one-way-packet-loss-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Packet loss normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) Using + TE Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions"; + } + description + "PM one-way packet-specific augmentation for a generic PM + grouping."; + } + augment "performance-metrics-two-way" { + leaf two-way-min-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way minimum delay or latency in microseconds."; + } + leaf two-way-min-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way minimum delay or latency normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) Using + TE Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions"; + } + leaf two-way-max-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way maximum delay or latency in microseconds."; + } + leaf two-way-max-delay-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way maximum delay or latency normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) Using + TE Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions"; + } + leaf two-way-delay-variation { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way delay variation in microseconds."; + reference + "RFC 5481: Packet Delay Variation Applicability + Statement, Section 4.2"; + } + leaf two-way-delay-variation-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way delay variation normality."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric + Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) Using + TE Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions"; + } + leaf two-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + default "0"; + description + "Two-way packet loss as a percentage of the total traffic + sent over a configurable interval. The finest precision + is 0.000003%."; + } + leaf two-way-packet-loss-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Two-way packet loss normality."; + } + description + "PM two-way packet-specific augmentation for a generic PM + grouping."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for + Explicitly Routed Label Switched Paths (LSPs) Using + TE Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions"; + } + } + } + + grouping one-way-performance-metrics-packet { + description + "One-way packet PM throttle grouping."; + leaf one-way-min-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "One-way minimum delay or latency in microseconds."; + } + leaf one-way-max-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "One-way maximum delay or latency in microseconds."; + } + leaf one-way-delay-variation { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "One-way delay variation in microseconds."; + } + leaf one-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + default "0"; + description + "One-way packet loss as a percentage of the total traffic + sent over a configurable interval. The finest precision is + 0.000003%."; + } + } + + grouping two-way-performance-metrics-packet { + description + "Two-way packet PM throttle grouping."; + leaf two-way-min-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way minimum delay or latency in microseconds."; + } + leaf two-way-max-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way maximum delay or latency in microseconds."; + } + leaf two-way-delay-variation { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way delay variation in microseconds."; + } + leaf two-way-packet-loss { + type decimal64 { + fraction-digits 6; + range "0..50.331642"; + } + default "0"; + description + "Two-way packet loss as a percentage of the total traffic + sent over a configurable interval. The finest precision is + 0.000003%."; + } + } + + grouping performance-metrics-throttle-container-packet { + description + "Packet PM threshold grouping."; + uses te-types:performance-metrics-throttle-container { + augment "throttle/threshold-out" { + uses one-way-performance-metrics-packet; + uses two-way-performance-metrics-packet; + description + "PM threshold-out packet augmentation for a + generic grouping."; + } + augment "throttle/threshold-in" { + uses one-way-performance-metrics-packet; + uses two-way-performance-metrics-packet; + description + "PM threshold-in packet augmentation for a + generic grouping."; + } + augment "throttle/threshold-accelerated-advertisement" { + uses one-way-performance-metrics-packet; + uses two-way-performance-metrics-packet; + description + "PM accelerated advertisement packet augmentation for a + generic grouping."; + } + } + } +} diff --git a/src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang b/src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang new file mode 100644 index 000000000..6fc0544de --- /dev/null +++ b/src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang @@ -0,0 +1,3379 @@ +module ietf-te-types { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; + prefix te-types; + + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-routing-types { + prefix rt-types; + reference + "RFC 8294: Common YANG Data Types for the Routing Area"; + } + + organization + "IETF Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + contact + "WG Web: + WG List: + + Editor: Tarek Saad + + + Editor: Rakesh Gandhi + + + Editor: Vishnu Pavan Beeram + + + Editor: Xufeng Liu + + + Editor: Igor Bryskin + "; + description + "This YANG module contains a collection of generally useful + YANG data type definitions specific to TE. The model fully + conforms to the Network Management Datastore Architecture + (NMDA). + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2020 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Simplified BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 8776; see the + RFC itself for full legal notices."; + + revision 2020-06-10 { + description + "Latest revision of TE types."; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + + /** + * Typedefs + */ + + typedef admin-group { + type yang:hex-string { + /* 01:02:03:04 */ + length "1..11"; + } + description + "Administrative group / resource class / color representation + in 'hex-string' type. + The most significant byte in the hex-string is the farthest + to the left in the byte sequence. Leading zero bytes in the + configured value may be omitted for brevity."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2 + RFC 5305: IS-IS Extensions for Traffic Engineering + RFC 7308: Extended Administrative Groups in MPLS Traffic + Engineering (MPLS-TE)"; + } + + typedef admin-groups { + type union { + type admin-group; + type extended-admin-group; + } + description + "Derived types for TE administrative groups."; + } + + typedef extended-admin-group { + type yang:hex-string; + description + "Extended administrative group / resource class / color + representation in 'hex-string' type. + The most significant byte in the hex-string is the farthest + to the left in the byte sequence. Leading zero bytes in the + configured value may be omitted for brevity."; + reference + "RFC 7308: Extended Administrative Groups in MPLS Traffic + Engineering (MPLS-TE)"; + } + + typedef path-attribute-flags { + type union { + type identityref { + base session-attributes-flags; + } + type identityref { + base lsp-attributes-flags; + } + } + description + "Path attributes flags type."; + } + + typedef performance-metrics-normality { + type enumeration { + enum unknown { + value 0; + description + "Unknown."; + } + enum normal { + value 1; + description + "Normal. Indicates that the anomalous bit is not set."; + } + enum abnormal { + value 2; + description + "Abnormal. Indicates that the anomalous bit is set."; + } + } + description + "Indicates whether a performance metric is normal (anomalous + bit not set), abnormal (anomalous bit set), or unknown."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + } + + typedef srlg { + type uint32; + description + "SRLG type."; + reference + "RFC 4203: OSPF Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS) + RFC 5307: IS-IS Extensions in Support of Generalized + Multi-Protocol Label Switching (GMPLS)"; + } + + typedef te-common-status { + type enumeration { + enum up { + description + "Enabled."; + } + enum down { + description + "Disabled."; + } + enum testing { + description + "In some test mode."; + } + enum preparing-maintenance { + description + "The resource is disabled in the control plane to prepare + for a graceful shutdown for maintenance purposes."; + reference + "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS + Traffic Engineering Networks"; + } + enum maintenance { + description + "The resource is disabled in the data plane for maintenance + purposes."; + } + enum unknown { + description + "Status is unknown."; + } + } + description + "Defines a type representing the common states of a TE + resource."; + } + + typedef te-bandwidth { + type string { + pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' + + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' + + '[pP](\+)?(12[0-7]|' + + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' + + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' + + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' + + '[pP](\+)?(12[0-7]|' + + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; + } + description + "This is the generic bandwidth type. It is a string containing + a list of numbers separated by commas, where each of these + numbers can be non-negative decimal, hex integer, or + hex float: + + (dec | hex | float)[*(','(dec | hex | float))] + + For the packet-switching type, the string encoding follows + the type 'bandwidth-ieee-float32' as defined in RFC 8294 + (e.g., 0x1p10), where the units are in bytes per second. + + For the Optical Transport Network (OTN) switching type, + a list of integers can be used, such as '0,2,3,1', indicating + two ODU0s and one ODU3. ('ODU' stands for 'Optical Data + Unit'.) For Dense Wavelength Division Multiplexing (DWDM), + a list of pairs of slot numbers and widths can be used, + such as '0,2,3,3', indicating a frequency slot 0 with + slot width 2 and a frequency slot 3 with slot width 3. + Canonically, the string is represented as all lowercase and in + hex, where the prefix '0x' precedes the hex number."; + reference + "RFC 8294: Common YANG Data Types for the Routing Area + ITU-T Recommendation G.709: Interfaces for the + optical transport network"; + } + + typedef te-ds-class { + type uint8 { + range "0..7"; + } + description + "The Differentiated Services Class-Type of traffic."; + reference + "RFC 4124: Protocol Extensions for Support of Diffserv-aware + MPLS Traffic Engineering, Section 4.3.1"; + } + + typedef te-global-id { + type uint32; + description + "An identifier to uniquely identify an operator, which can be + either a provider or a client. + The definition of this type is taken from RFCs 6370 and 5003. + This attribute type is used solely to provide a globally + unique context for TE topologies."; + reference + "RFC 5003: Attachment Individual Identifier (AII) Types for + Aggregation + RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers"; + } + + typedef te-hop-type { + type enumeration { + enum loose { + description + "A loose hop in an explicit path."; + } + enum strict { + description + "A strict hop in an explicit path."; + } + } + description + "Enumerated type for specifying loose or strict paths."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3.3"; + } + + typedef te-link-access-type { + type enumeration { + enum point-to-point { + description + "The link is point-to-point."; + } + enum multi-access { + description + "The link is multi-access, including broadcast and NBMA."; + } + } + description + "Defines a type representing the access type of a TE link."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2"; + } + + typedef te-label-direction { + type enumeration { + enum forward { + description + "Label allocated for the forward LSP direction."; + } + enum reverse { + description + "Label allocated for the reverse LSP direction."; + } + } + description + "Enumerated type for specifying the forward or reverse + label."; + } + + typedef te-link-direction { + type enumeration { + enum incoming { + description + "The explicit route represents an incoming link on + a node."; + } + enum outgoing { + description + "The explicit route represents an outgoing link on + a node."; + } + } + description + "Enumerated type for specifying the direction of a link on + a node."; + } + + typedef te-metric { + type uint32; + description + "TE metric."; + reference + "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a + second MPLS Traffic Engineering (TE) Metric"; + } + + typedef te-node-id { + type yang:dotted-quad; + description + "A type representing the identifier for a node in a TE + topology. + The identifier is represented as 4 octets in dotted-quad + notation. + This attribute MAY be mapped to the Router Address TLV + described in Section 2.4.1 of RFC 3630, the TE Router ID + described in Section 3 of RFC 6827, the Traffic Engineering + Router ID TLV described in Section 4.3 of RFC 5305, or the + TE Router ID TLV described in Section 3.2.1 of RFC 6119. + The reachability of such a TE node MAY be achieved by a + mechanism such as that described in Section 6.2 of RFC 6827."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2, Section 2.4.1 + RFC 5305: IS-IS Extensions for Traffic Engineering, + Section 4.3 + RFC 6119: IPv6 Traffic Engineering in IS-IS, Section 3.2.1 + RFC 6827: Automatically Switched Optical Network (ASON) + Routing for OSPFv2 Protocols, Section 3"; + } + + typedef te-oper-status { + type te-common-status; + description + "Defines a type representing the operational status of + a TE resource."; + } + + typedef te-admin-status { + type te-common-status; + description + "Defines a type representing the administrative status of + a TE resource."; + } + + typedef te-path-disjointness { + type bits { + bit node { + position 0; + description + "Node disjoint."; + } + bit link { + position 1; + description + "Link disjoint."; + } + bit srlg { + position 2; + description + "SRLG (Shared Risk Link Group) disjoint."; + } + } + description + "Type of the resource disjointness for a TE tunnel path."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + typedef te-recovery-status { + type enumeration { + enum normal { + description + "Both the recovery span and the working span are fully + allocated and active, data traffic is being + transported over (or selected from) the working + span, and no trigger events are reported."; + } + enum recovery-started { + description + "The recovery action has been started but not completed."; + } + enum recovery-succeeded { + description + "The recovery action has succeeded. The working span has + reported a failure/degrade condition, and the user traffic + is being transported (or selected) on the recovery span."; + } + enum recovery-failed { + description + "The recovery action has failed."; + } + enum reversion-started { + description + "The reversion has started."; + } + enum reversion-succeeded { + description + "The reversion action has succeeded."; + } + enum reversion-failed { + description + "The reversion has failed."; + } + enum recovery-unavailable { + description + "The recovery is unavailable, as a result of either an + operator's lockout command or a failure condition + detected on the recovery span."; + } + enum recovery-admin { + description + "The operator has issued a command to switch the user + traffic to the recovery span."; + } + enum wait-to-restore { + description + "The recovery domain is recovering from a failure/degrade + condition on the working span that is being controlled by + the Wait-to-Restore (WTR) timer."; + } + } + description + "Defines the status of a recovery action."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS) + RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; + } + + typedef te-template-name { + type string { + pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; + } + description + "A type for the name of a TE node template or TE link + template."; + } + + typedef te-topology-event-type { + type enumeration { + enum add { + value 0; + description + "A TE node or TE link has been added."; + } + enum remove { + value 1; + description + "A TE node or TE link has been removed."; + } + enum update { + value 2; + description + "A TE node or TE link has been updated."; + } + } + description + "TE event type for notifications."; + } + + typedef te-topology-id { + type union { + type string { + length "0"; + // empty string + } + type string { + pattern '([a-zA-Z0-9\-_.]+:)*' + + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; + } + } + description + "An identifier for a topology. + It is optional to have one or more prefixes at the beginning, + separated by colons. The prefixes can be 'network-types' as + defined in the 'ietf-network' module in RFC 8345, to help the + user better understand the topology before further inquiry + is made."; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + typedef te-tp-id { + type union { + type uint32; + // Unnumbered + type inet:ip-address; + // IPv4 or IPv6 address + } + description + "An identifier for a TE link endpoint on a node. + This attribute is mapped to a local or remote link identifier + as defined in RFCs 3630 and 5305."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2 + RFC 5305: IS-IS Extensions for Traffic Engineering"; + } + + /* TE features */ + + feature p2mp-te { + description + "Indicates support for Point-to-Multipoint TE (P2MP-TE)."; + reference + "RFC 4875: Extensions to Resource Reservation Protocol - + Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE + Label Switched Paths (LSPs)"; + } + + feature frr-te { + description + "Indicates support for TE Fast Reroute (FRR)."; + reference + "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; + } + + feature extended-admin-groups { + description + "Indicates support for TE link extended administrative + groups."; + reference + "RFC 7308: Extended Administrative Groups in MPLS Traffic + Engineering (MPLS-TE)"; + } + + feature named-path-affinities { + description + "Indicates support for named path affinities."; + } + + feature named-extended-admin-groups { + description + "Indicates support for named extended administrative groups."; + } + + feature named-srlg-groups { + description + "Indicates support for named SRLG groups."; + } + + feature named-path-constraints { + description + "Indicates support for named path constraints."; + } + + feature path-optimization-metric { + description + "Indicates support for path optimization metrics."; + } + + feature path-optimization-objective-function { + description + "Indicates support for path optimization objective functions."; + } + + /* + * Identities + */ + + identity session-attributes-flags { + description + "Base identity for the RSVP-TE session attributes flags."; + } + + identity local-protection-desired { + base session-attributes-flags; + description + "Local protection is desired."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.7.1"; + } + + identity se-style-desired { + base session-attributes-flags; + description + "Shared explicit style, to allow the LSP to be established + and share resources with the old LSP."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + + identity local-recording-desired { + base session-attributes-flags; + description + "Label recording is desired."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.7.1"; + } + + identity bandwidth-protection-desired { + base session-attributes-flags; + description + "Requests FRR bandwidth protection on LSRs, if present."; + reference + "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; + } + + identity node-protection-desired { + base session-attributes-flags; + description + "Requests FRR node protection on LSRs, if present."; + reference + "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; + } + + identity path-reevaluation-request { + base session-attributes-flags; + description + "This flag indicates that a path re-evaluation (of the + current path in use) is requested. Note that this does + not trigger any LSP reroutes but instead just signals a + request to evaluate whether a preferable path exists."; + reference + "RFC 4736: Reoptimization of Multiprotocol Label Switching + (MPLS) Traffic Engineering (TE) Loosely Routed Label Switched + Path (LSP)"; + } + + identity soft-preemption-desired { + base session-attributes-flags; + description + "Soft preemption of LSP resources is desired."; + reference + "RFC 5712: MPLS Traffic Engineering Soft Preemption"; + } + + identity lsp-attributes-flags { + description + "Base identity for LSP attributes flags."; + } + + identity end-to-end-rerouting-desired { + base lsp-attributes-flags; + description + "Indicates end-to-end rerouting behavior for an LSP + undergoing establishment. This MAY also be used to + specify the behavior of end-to-end LSP recovery for + established LSPs."; + reference + "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS + RSVP-TE + RFC 5420: Encoding of Attributes for MPLS LSP Establishment + Using Resource Reservation Protocol Traffic Engineering + (RSVP-TE) + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity boundary-rerouting-desired { + base lsp-attributes-flags; + description + "Indicates boundary rerouting behavior for an LSP undergoing + establishment. This MAY also be used to specify + segment-based LSP recovery through nested crankback for + established LSPs. The boundary Area Border Router (ABR) / + Autonomous System Border Router (ASBR) can decide to forward + the PathErr message upstream to either an upstream boundary + ABR/ASBR or the ingress LSR. Alternatively, it can try to + select another egress boundary LSR."; + reference + "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS + RSVP-TE + RFC 5420: Encoding of Attributes for MPLS LSP Establishment + Using Resource Reservation Protocol Traffic Engineering + (RSVP-TE) + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity segment-based-rerouting-desired { + base lsp-attributes-flags; + description + "Indicates segment-based rerouting behavior for an LSP + undergoing establishment. This MAY also be used to specify + segment-based LSP recovery for established LSPs."; + reference + "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS + RSVP-TE + RFC 5420: Encoding of Attributes for MPLS LSP Establishment + Using Resource Reservation Protocol Traffic Engineering + (RSVP-TE) + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity lsp-integrity-required { + base lsp-attributes-flags; + description + "Indicates that LSP integrity is required."; + reference + "RFC 4875: Extensions to Resource Reservation Protocol - + Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE + Label Switched Paths (LSPs) + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity contiguous-lsp-desired { + base lsp-attributes-flags; + description + "Indicates that a contiguous LSP is desired."; + reference + "RFC 5151: Inter-Domain MPLS and GMPLS Traffic Engineering -- + Resource Reservation Protocol-Traffic Engineering (RSVP-TE) + Extensions + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity lsp-stitching-desired { + base lsp-attributes-flags; + description + "Indicates that LSP stitching is desired."; + reference + "RFC 5150: Label Switched Path Stitching with Generalized + Multiprotocol Label Switching Traffic Engineering (GMPLS TE) + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity pre-planned-lsp-flag { + base lsp-attributes-flags; + description + "Indicates that the LSP MUST be provisioned in the + control plane only."; + reference + "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for + Multi-Layer and Multi-Region Networks (MLN/MRN) + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity non-php-behavior-flag { + base lsp-attributes-flags; + description + "Indicates that non-PHP (non-Penultimate Hop Popping) behavior + for the LSP is desired."; + reference + "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band + Mapping for RSVP-TE Label Switched Paths + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity oob-mapping-flag { + base lsp-attributes-flags; + description + "Indicates that signaling of the egress binding information is + out of band (e.g., via the Border Gateway Protocol (BGP))."; + reference + "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band + Mapping for RSVP-TE Label Switched Paths + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity entropy-label-capability { + base lsp-attributes-flags; + description + "Indicates entropy label capability."; + reference + "RFC 6790: The Use of Entropy Labels in MPLS Forwarding + RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO)"; + } + + identity oam-mep-entity-desired { + base lsp-attributes-flags; + description + "OAM Maintenance Entity Group End Point (MEP) entities + desired."; + reference + "RFC 7260: GMPLS RSVP-TE Extensions for Operations, + Administration, and Maintenance (OAM) Configuration"; + } + + identity oam-mip-entity-desired { + base lsp-attributes-flags; + description + "OAM Maintenance Entity Group Intermediate Points (MIP) + entities desired."; + reference + "RFC 7260: GMPLS RSVP-TE Extensions for Operations, + Administration, and Maintenance (OAM) Configuration"; + } + + identity srlg-collection-desired { + base lsp-attributes-flags; + description + "SRLG collection desired."; + reference + "RFC 7570: Label Switched Path (LSP) Attribute in the Explicit + Route Object (ERO) + RFC 8001: RSVP-TE Extensions for Collecting Shared Risk + Link Group (SRLG) Information"; + } + + identity loopback-desired { + base lsp-attributes-flags; + description + "This flag indicates that a particular node on the LSP is + required to enter loopback mode. This can also be + used to specify the loopback state of the node."; + reference + "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and + Loopback"; + } + + identity p2mp-te-tree-eval-request { + base lsp-attributes-flags; + description + "P2MP-TE tree re-evaluation request."; + reference + "RFC 8149: RSVP Extensions for Reoptimization of Loosely Routed + Point-to-Multipoint Traffic Engineering Label Switched Paths + (LSPs)"; + } + + identity rtm-set-desired { + base lsp-attributes-flags; + description + "Residence Time Measurement (RTM) attribute flag requested."; + reference + "RFC 8169: Residence Time Measurement in MPLS Networks"; + } + + identity link-protection-type { + description + "Base identity for the link protection type."; + } + + identity link-protection-unprotected { + base link-protection-type; + description + "Unprotected link type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity link-protection-extra-traffic { + base link-protection-type; + description + "Extra-Traffic protected link type."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity link-protection-shared { + base link-protection-type; + description + "Shared protected link type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity link-protection-1-for-1 { + base link-protection-type; + description + "One-for-one (1:1) protected link type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity link-protection-1-plus-1 { + base link-protection-type; + description + "One-plus-one (1+1) protected link type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity link-protection-enhanced { + base link-protection-type; + description + "A compound link protection type derived from the underlay + TE tunnel protection configuration supporting the TE link."; + } + + identity association-type { + description + "Base identity for the tunnel association."; + } + + identity association-type-recovery { + base association-type; + description + "Association type for recovery, used to associate LSPs of the + same tunnel for recovery."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery + RFC 6780: RSVP ASSOCIATION Object Extensions"; + } + + identity association-type-resource-sharing { + base association-type; + description + "Association type for resource sharing, used to enable + resource sharing during make-before-break."; + reference + "RFC 4873: GMPLS Segment Recovery + RFC 6780: RSVP ASSOCIATION Object Extensions"; + } + + identity association-type-double-sided-bidir { + base association-type; + description + "Association type for double-sided bidirectional LSPs, + used to associate two LSPs of two tunnels that are + independently configured on either endpoint."; + reference + "RFC 7551: RSVP-TE Extensions for Associated Bidirectional + Label Switched Paths (LSPs)"; + } + + identity association-type-single-sided-bidir { + base association-type; + description + "Association type for single-sided bidirectional LSPs, + used to associate two LSPs of two tunnels, where one + tunnel is configured on one side/endpoint and the other + tunnel is dynamically created on the other endpoint."; + reference + "RFC 6780: RSVP ASSOCIATION Object Extensions + RFC 7551: RSVP-TE Extensions for Associated Bidirectional + Label Switched Paths (LSPs)"; + } + + identity objective-function-type { + description + "Base objective function type."; + } + + identity of-minimize-cost-path { + base objective-function-type; + description + "Objective function for minimizing path cost."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity of-minimize-load-path { + base objective-function-type; + description + "Objective function for minimizing the load on one or more + paths."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity of-maximize-residual-bandwidth { + base objective-function-type; + description + "Objective function for maximizing residual bandwidth."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity of-minimize-agg-bandwidth-consumption { + base objective-function-type; + description + "Objective function for minimizing aggregate bandwidth + consumption."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity of-minimize-load-most-loaded-link { + base objective-function-type; + description + "Objective function for minimizing the load on the link that + is carrying the highest load."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity of-minimize-cost-path-set { + base objective-function-type; + description + "Objective function for minimizing the cost on a path set."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity path-computation-method { + description + "Base identity for supported path computation mechanisms."; + } + + identity path-locally-computed { + base path-computation-method; + description + "Indicates a constrained-path LSP in which the + path is computed by the local LER."; + reference + "RFC 3272: Overview and Principles of Internet Traffic + Engineering, Section 5.4"; + } + + identity path-externally-queried { + base path-computation-method; + description + "Constrained-path LSP in which the path is obtained by + querying an external source, such as a PCE server. + In the case that an LSP is defined to be externally queried, + it may also have associated explicit definitions (provided + to the external source to aid computation). The path that is + returned by the external source may require further local + computation on the device."; + reference + "RFC 3272: Overview and Principles of Internet Traffic + Engineering + RFC 4657: Path Computation Element (PCE) Communication + Protocol Generic Requirements"; + } + + identity path-explicitly-defined { + base path-computation-method; + description + "Constrained-path LSP in which the path is + explicitly specified as a collection of strict and/or loose + hops."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 3272: Overview and Principles of Internet Traffic + Engineering"; + } + + identity lsp-metric-type { + description + "Base identity for the LSP metric specification types."; + } + + identity lsp-metric-relative { + base lsp-metric-type; + description + "The metric specified for the LSPs to which this identity + refers is specified as a value relative to the IGP metric + cost to the LSP's tail end."; + reference + "RFC 4657: Path Computation Element (PCE) Communication + Protocol Generic Requirements"; + } + + identity lsp-metric-absolute { + base lsp-metric-type; + description + "The metric specified for the LSPs to which this identity + refers is specified as an absolute value."; + reference + "RFC 4657: Path Computation Element (PCE) Communication + Protocol Generic Requirements"; + } + + identity lsp-metric-inherited { + base lsp-metric-type; + description + "The metric for the LSPs to which this identity refers is + not specified explicitly; rather, it is directly inherited + from the IGP cost."; + reference + "RFC 4657: Path Computation Element (PCE) Communication + Protocol Generic Requirements"; + } + + identity te-tunnel-type { + description + "Base identity from which specific tunnel types are derived."; + } + + identity te-tunnel-p2p { + base te-tunnel-type; + description + "TE Point-to-Point (P2P) tunnel type."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + + identity te-tunnel-p2mp { + base te-tunnel-type; + description + "TE P2MP tunnel type."; + reference + "RFC 4875: Extensions to Resource Reservation Protocol - + Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE + Label Switched Paths (LSPs)"; + } + + identity tunnel-action-type { + description + "Base identity from which specific tunnel action types + are derived."; + } + + identity tunnel-action-resetup { + base tunnel-action-type; + description + "TE tunnel action that tears down the tunnel's current LSP + (if any) and attempts to re-establish a new LSP."; + } + + identity tunnel-action-reoptimize { + base tunnel-action-type; + description + "TE tunnel action that reoptimizes the placement of the + tunnel LSP(s)."; + } + + identity tunnel-action-switchpath { + base tunnel-action-type; + description + "TE tunnel action that switches the tunnel's LSP to use the + specified path."; + } + + identity te-action-result { + description + "Base identity from which specific TE action results + are derived."; + } + + identity te-action-success { + base te-action-result; + description + "TE action was successful."; + } + + identity te-action-fail { + base te-action-result; + description + "TE action failed."; + } + + identity tunnel-action-inprogress { + base te-action-result; + description + "TE action is in progress."; + } + + identity tunnel-admin-state-type { + description + "Base identity for TE tunnel administrative states."; + } + + identity tunnel-admin-state-up { + base tunnel-admin-state-type; + description + "Tunnel's administrative state is up."; + } + + identity tunnel-admin-state-down { + base tunnel-admin-state-type; + description + "Tunnel's administrative state is down."; + } + + identity tunnel-state-type { + description + "Base identity for TE tunnel states."; + } + + identity tunnel-state-up { + base tunnel-state-type; + description + "Tunnel's state is up."; + } + + identity tunnel-state-down { + base tunnel-state-type; + description + "Tunnel's state is down."; + } + + identity lsp-state-type { + description + "Base identity for TE LSP states."; + } + + identity lsp-path-computing { + base lsp-state-type; + description + "State path computation is in progress."; + } + + identity lsp-path-computation-ok { + base lsp-state-type; + description + "State path computation was successful."; + } + + identity lsp-path-computation-failed { + base lsp-state-type; + description + "State path computation failed."; + } + + identity lsp-state-setting-up { + base lsp-state-type; + description + "State is being set up."; + } + + identity lsp-state-setup-ok { + base lsp-state-type; + description + "State setup was successful."; + } + + identity lsp-state-setup-failed { + base lsp-state-type; + description + "State setup failed."; + } + + identity lsp-state-up { + base lsp-state-type; + description + "State is up."; + } + + identity lsp-state-tearing-down { + base lsp-state-type; + description + "State is being torn down."; + } + + identity lsp-state-down { + base lsp-state-type; + description + "State is down."; + } + + identity path-invalidation-action-type { + description + "Base identity for TE path invalidation action types."; + } + + identity path-invalidation-action-drop { + base path-invalidation-action-type; + description + "Upon invalidation of the TE tunnel path, the tunnel remains + valid, but any packet mapped over the tunnel is dropped."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 2.5"; + } + + identity path-invalidation-action-teardown { + base path-invalidation-action-type; + description + "TE path invalidation action teardown."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 2.5"; + } + + identity lsp-restoration-type { + description + "Base identity from which LSP restoration types are derived."; + } + + identity lsp-restoration-restore-any { + base lsp-restoration-type; + description + "Any LSP affected by a failure is restored."; + } + + identity lsp-restoration-restore-all { + base lsp-restoration-type; + description + "Affected LSPs are restored after all LSPs of the tunnel are + broken."; + } + + identity restoration-scheme-type { + description + "Base identity for LSP restoration schemes."; + } + + identity restoration-scheme-preconfigured { + base restoration-scheme-type; + description + "Restoration LSP is preconfigured prior to the failure."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity restoration-scheme-precomputed { + base restoration-scheme-type; + description + "Restoration LSP is precomputed prior to the failure."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity restoration-scheme-presignaled { + base restoration-scheme-type; + description + "Restoration LSP is presignaled prior to the failure."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity lsp-protection-type { + description + "Base identity from which LSP protection types are derived."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-unprotected { + base lsp-protection-type; + description + "'Unprotected' LSP protection type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-reroute-extra { + base lsp-protection-type; + description + "'(Full) Rerouting' LSP protection type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-reroute { + base lsp-protection-type; + description + "'Rerouting without Extra-Traffic' LSP protection type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-1-for-n { + base lsp-protection-type; + description + "'1:N Protection with Extra-Traffic' LSP protection type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-1-for-1 { + base lsp-protection-type; + description + "LSP protection '1:1 Protection Type'."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-unidir-1-plus-1 { + base lsp-protection-type; + description + "'1+1 Unidirectional Protection' LSP protection type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-bidir-1-plus-1 { + base lsp-protection-type; + description + "'1+1 Bidirectional Protection' LSP protection type."; + reference + "RFC 4872: RSVP-TE Extensions in Support of End-to-End + Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; + } + + identity lsp-protection-extra-traffic { + base lsp-protection-type; + description + "Extra-Traffic LSP protection type."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity lsp-protection-state { + description + "Base identity of protection states for reporting purposes."; + } + + identity normal { + base lsp-protection-state; + description + "Normal state."; + } + + identity signal-fail-of-protection { + base lsp-protection-state; + description + "The protection transport entity has a signal fail condition + that is of higher priority than the forced switchover + command."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity lockout-of-protection { + base lsp-protection-state; + description + "A Loss of Protection (LoP) command is active."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity forced-switch { + base lsp-protection-state; + description + "A forced switchover command is active."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity signal-fail { + base lsp-protection-state; + description + "There is a signal fail condition on either the working path + or the protection path."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity signal-degrade { + base lsp-protection-state; + description + "There is a signal degrade condition on either the working + path or the protection path."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity manual-switch { + base lsp-protection-state; + description + "A manual switchover command is active."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity wait-to-restore { + base lsp-protection-state; + description + "A WTR timer is running."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity do-not-revert { + base lsp-protection-state; + description + "A Do Not Revert (DNR) condition is active because of + non-revertive behavior."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity failure-of-protocol { + base lsp-protection-state; + description + "LSP protection is not working because of a protocol failure + condition."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity protection-external-commands { + description + "Base identity from which protection-related external commands + used for troubleshooting purposes are derived."; + } + + identity action-freeze { + base protection-external-commands; + description + "A temporary configuration action initiated by an operator + command that prevents any switchover action from being taken + and, as such, freezes the current state."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity clear-freeze { + base protection-external-commands; + description + "An action that clears the active freeze state."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity action-lockout-of-normal { + base protection-external-commands; + description + "A temporary configuration action initiated by an operator + command to ensure that the normal traffic is not allowed + to use the protection transport entity."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity clear-lockout-of-normal { + base protection-external-commands; + description + "An action that clears the active lockout of the + normal state."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity action-lockout-of-protection { + base protection-external-commands; + description + "A temporary configuration action initiated by an operator + command to ensure that the protection transport entity is + temporarily not available to transport a traffic signal + (either normal or Extra-Traffic)."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity action-forced-switch { + base protection-external-commands; + description + "A switchover action initiated by an operator command to switch + the Extra-Traffic signal, the normal traffic signal, or the + null signal to the protection transport entity, unless a + switchover command of equal or higher priority is in effect."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity action-manual-switch { + base protection-external-commands; + description + "A switchover action initiated by an operator command to switch + the Extra-Traffic signal, the normal traffic signal, or + the null signal to the protection transport entity, unless + a fault condition exists on other transport entities or a + switchover command of equal or higher priority is in effect."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity action-exercise { + base protection-external-commands; + description + "An action that starts testing whether or not APS communication + is operating correctly. It is of lower priority than any + other state or command."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity clear { + base protection-external-commands; + description + "An action that clears the active near-end lockout of a + protection, forced switchover, manual switchover, WTR state, + or exercise command."; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching (GMPLS)"; + } + + identity switching-capabilities { + description + "Base identity for interface switching capabilities."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity switching-psc1 { + base switching-capabilities; + description + "Packet-Switch Capable-1 (PSC-1)."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity switching-evpl { + base switching-capabilities; + description + "Ethernet Virtual Private Line (EVPL)."; + reference + "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet + Forum and G.8011 Ethernet Service Switching"; + } + + identity switching-l2sc { + base switching-capabilities; + description + "Layer-2 Switch Capable (L2SC)."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity switching-tdm { + base switching-capabilities; + description + "Time-Division-Multiplex Capable (TDM)."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity switching-otn { + base switching-capabilities; + description + "OTN-TDM capable."; + reference + "RFC 7138: Traffic Engineering Extensions to OSPF for GMPLS + Control of Evolving G.709 Optical Transport Networks"; + } + + identity switching-dcsc { + base switching-capabilities; + description + "Data Channel Switching Capable (DCSC)."; + reference + "RFC 6002: Generalized MPLS (GMPLS) Data Channel + Switching Capable (DCSC) and Channel Set Label Extensions"; + } + + identity switching-lsc { + base switching-capabilities; + description + "Lambda-Switch Capable (LSC)."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity switching-fsc { + base switching-capabilities; + description + "Fiber-Switch Capable (FSC)."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-types { + description + "Base identity for encoding types."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-packet { + base lsp-encoding-types; + description + "Packet LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-ethernet { + base lsp-encoding-types; + description + "Ethernet LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-pdh { + base lsp-encoding-types; + description + "ANSI/ETSI PDH LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-sdh { + base lsp-encoding-types; + description + "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-digital-wrapper { + base lsp-encoding-types; + description + "Digital Wrapper LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-lambda { + base lsp-encoding-types; + description + "Lambda (photonic) LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-fiber { + base lsp-encoding-types; + description + "Fiber LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-fiber-channel { + base lsp-encoding-types; + description + "FiberChannel LSP encoding."; + reference + "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Functional Description"; + } + + identity lsp-encoding-oduk { + base lsp-encoding-types; + description + "G.709 ODUk (Digital Path) LSP encoding."; + reference + "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Extensions for G.709 Optical Transport Networks + Control"; + } + + identity lsp-encoding-optical-channel { + base lsp-encoding-types; + description + "G.709 Optical Channel LSP encoding."; + reference + "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) + Signaling Extensions for G.709 Optical Transport Networks + Control"; + } + + identity lsp-encoding-line { + base lsp-encoding-types; + description + "Line (e.g., 8B/10B) LSP encoding."; + reference + "RFC 6004: Generalized MPLS (GMPLS) Support for Metro + Ethernet Forum and G.8011 Ethernet Service Switching"; + } + + identity path-signaling-type { + description + "Base identity from which specific LSP path setup types + are derived."; + } + + identity path-setup-static { + base path-signaling-type; + description + "Static LSP provisioning path setup."; + } + + identity path-setup-rsvp { + base path-signaling-type; + description + "RSVP-TE signaling path setup."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + + identity path-setup-sr { + base path-signaling-type; + description + "Segment-routing path setup."; + } + + identity path-scope-type { + description + "Base identity from which specific path scope types are + derived."; + } + + identity path-scope-segment { + base path-scope-type; + description + "Path scope segment."; + reference + "RFC 4873: GMPLS Segment Recovery"; + } + + identity path-scope-end-to-end { + base path-scope-type; + description + "Path scope end to end."; + reference + "RFC 4873: GMPLS Segment Recovery"; + } + + identity route-usage-type { + description + "Base identity for route usage."; + } + + identity route-include-object { + base route-usage-type; + description + "'Include route' object."; + } + + identity route-exclude-object { + base route-usage-type; + description + "'Exclude route' object."; + reference + "RFC 4874: Exclude Routes - Extension to Resource ReserVation + Protocol-Traffic Engineering (RSVP-TE)"; + } + + identity route-exclude-srlg { + base route-usage-type; + description + "Excludes SRLGs."; + reference + "RFC 4874: Exclude Routes - Extension to Resource ReserVation + Protocol-Traffic Engineering (RSVP-TE)"; + } + + identity path-metric-type { + description + "Base identity for the path metric type."; + } + + identity path-metric-te { + base path-metric-type; + description + "TE path metric."; + reference + "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a + second MPLS Traffic Engineering (TE) Metric"; + } + + identity path-metric-igp { + base path-metric-type; + description + "IGP path metric."; + reference + "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a + second MPLS Traffic Engineering (TE) Metric"; + } + + identity path-metric-hop { + base path-metric-type; + description + "Hop path metric."; + } + + identity path-metric-delay-average { + base path-metric-type; + description + "Average unidirectional link delay."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; + } + + identity path-metric-delay-minimum { + base path-metric-type; + description + "Minimum unidirectional link delay."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; + } + + identity path-metric-residual-bandwidth { + base path-metric-type; + description + "Unidirectional Residual Bandwidth, which is defined to be + Maximum Bandwidth (RFC 3630) minus the bandwidth currently + allocated to LSPs."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2 + RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; + } + + identity path-metric-optimize-includes { + base path-metric-type; + description + "A metric that optimizes the number of included resources + specified in a set."; + } + + identity path-metric-optimize-excludes { + base path-metric-type; + description + "A metric that optimizes to a maximum the number of excluded + resources specified in a set."; + } + + identity path-tiebreaker-type { + description + "Base identity for the path tiebreaker type."; + } + + identity path-tiebreaker-minfill { + base path-tiebreaker-type; + description + "Min-Fill LSP path placement."; + } + + identity path-tiebreaker-maxfill { + base path-tiebreaker-type; + description + "Max-Fill LSP path placement."; + } + + identity path-tiebreaker-random { + base path-tiebreaker-type; + description + "Random LSP path placement."; + } + + identity resource-affinities-type { + description + "Base identity for resource class affinities."; + reference + "RFC 2702: Requirements for Traffic Engineering Over MPLS"; + } + + identity resource-aff-include-all { + base resource-affinities-type; + description + "The set of attribute filters associated with a + tunnel, all of which must be present for a link + to be acceptable."; + reference + "RFC 2702: Requirements for Traffic Engineering Over MPLS + RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + + identity resource-aff-include-any { + base resource-affinities-type; + description + "The set of attribute filters associated with a + tunnel, any of which must be present for a link + to be acceptable."; + reference + "RFC 2702: Requirements for Traffic Engineering Over MPLS + RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + + identity resource-aff-exclude-any { + base resource-affinities-type; + description + "The set of attribute filters associated with a + tunnel, any of which renders a link unacceptable."; + reference + "RFC 2702: Requirements for Traffic Engineering Over MPLS + RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + + identity te-optimization-criterion { + description + "Base identity for the TE optimization criteria."; + reference + "RFC 3272: Overview and Principles of Internet Traffic + Engineering"; + } + + identity not-optimized { + base te-optimization-criterion; + description + "Optimization is not applied."; + } + + identity cost { + base te-optimization-criterion; + description + "Optimized on cost."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity delay { + base te-optimization-criterion; + description + "Optimized on delay."; + reference + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; + } + + identity path-computation-srlg-type { + description + "Base identity for SRLG path computation."; + } + + identity srlg-ignore { + base path-computation-srlg-type; + description + "Ignores SRLGs in the path computation."; + } + + identity srlg-strict { + base path-computation-srlg-type; + description + "Includes a strict SRLG check in the path computation."; + } + + identity srlg-preferred { + base path-computation-srlg-type; + description + "Includes a preferred SRLG check in the path computation."; + } + + identity srlg-weighted { + base path-computation-srlg-type; + description + "Includes a weighted SRLG check in the path computation."; + } + + /** + * TE bandwidth groupings + **/ + + grouping te-bandwidth { + description + "This grouping defines the generic TE bandwidth. + For some known data-plane technologies, specific modeling + structures are specified. The string-encoded 'te-bandwidth' + type is used for unspecified technologies. + The modeling structure can be augmented later for other + technologies."; + container te-bandwidth { + description + "Container that specifies TE bandwidth. The choices + can be augmented for specific data-plane technologies."; + choice technology { + default "generic"; + description + "Data-plane technology type."; + case generic { + leaf generic { + type te-bandwidth; + description + "Bandwidth specified in a generic format."; + } + } + } + } + } + + /** + * TE label groupings + **/ + + grouping te-label { + description + "This grouping defines the generic TE label. + The modeling structure can be augmented for each technology. + For unspecified technologies, 'rt-types:generalized-label' + is used."; + container te-label { + description + "Container that specifies the TE label. The choices can + be augmented for specific data-plane technologies."; + choice technology { + default "generic"; + description + "Data-plane technology type."; + case generic { + leaf generic { + type rt-types:generalized-label; + description + "TE label specified in a generic format."; + } + } + } + leaf direction { + type te-label-direction; + default "forward"; + description + "Label direction."; + } + } + } + + grouping te-topology-identifier { + description + "Augmentation for a TE topology."; + container te-topology-identifier { + description + "TE topology identifier container."; + leaf provider-id { + type te-global-id; + default "0"; + description + "An identifier to uniquely identify a provider. + If omitted, it assumes that the topology provider ID + value = 0 (the default)."; + } + leaf client-id { + type te-global-id; + default "0"; + description + "An identifier to uniquely identify a client. + If omitted, it assumes that the topology client ID + value = 0 (the default)."; + } + leaf topology-id { + type te-topology-id; + default ""; + description + "When the datastore contains several topologies, + 'topology-id' distinguishes between them. If omitted, + the default (empty) string for this leaf is assumed."; + } + } + } + + /** + * TE performance metrics groupings + **/ + + grouping performance-metrics-one-way-delay-loss { + description + "Performance Metrics (PM) information in real time that can + be applicable to links or connections. PM defined in this + grouping are applicable to generic TE PM as well as packet TE + PM."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + leaf one-way-delay { + type uint32 { + range "0..16777215"; + } + description + "One-way delay or latency in microseconds."; + } + leaf one-way-delay-normality { + type te-types:performance-metrics-normality; + description + "One-way delay normality."; + } + } + + grouping performance-metrics-two-way-delay-loss { + description + "PM information in real time that can be applicable to links or + connections. PM defined in this grouping are applicable to + generic TE PM as well as packet TE PM."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + leaf two-way-delay { + type uint32 { + range "0..16777215"; + } + description + "Two-way delay or latency in microseconds."; + } + leaf two-way-delay-normality { + type te-types:performance-metrics-normality; + description + "Two-way delay normality."; + } + } + + grouping performance-metrics-one-way-bandwidth { + description + "PM information in real time that can be applicable to links. + PM defined in this grouping are applicable to generic TE PM + as well as packet TE PM."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + leaf one-way-residual-bandwidth { + type rt-types:bandwidth-ieee-float32; + units "bytes per second"; + default "0x0p0"; + description + "Residual bandwidth that subtracts tunnel reservations from + Maximum Bandwidth (or link capacity) (RFC 3630) and + provides an aggregated remainder across QoS classes."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2"; + } + leaf one-way-residual-bandwidth-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Residual bandwidth normality."; + } + leaf one-way-available-bandwidth { + type rt-types:bandwidth-ieee-float32; + units "bytes per second"; + default "0x0p0"; + description + "Available bandwidth that is defined to be residual + bandwidth minus the measured bandwidth used for the + actual forwarding of non-RSVP-TE LSP packets. For a + bundled link, available bandwidth is defined to be the + sum of the component link available bandwidths."; + } + leaf one-way-available-bandwidth-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Available bandwidth normality."; + } + leaf one-way-utilized-bandwidth { + type rt-types:bandwidth-ieee-float32; + units "bytes per second"; + default "0x0p0"; + description + "Bandwidth utilization that represents the actual + utilization of the link (i.e., as measured in the router). + For a bundled link, bandwidth utilization is defined to + be the sum of the component link bandwidth utilizations."; + } + leaf one-way-utilized-bandwidth-normality { + type te-types:performance-metrics-normality; + default "normal"; + description + "Bandwidth utilization normality."; + } + } + + grouping one-way-performance-metrics { + description + "One-way PM throttle grouping."; + leaf one-way-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "One-way delay or latency in microseconds."; + } + leaf one-way-residual-bandwidth { + type rt-types:bandwidth-ieee-float32; + units "bytes per second"; + default "0x0p0"; + description + "Residual bandwidth that subtracts tunnel reservations from + Maximum Bandwidth (or link capacity) (RFC 3630) and + provides an aggregated remainder across QoS classes."; + reference + "RFC 3630: Traffic Engineering (TE) Extensions to OSPF + Version 2"; + } + leaf one-way-available-bandwidth { + type rt-types:bandwidth-ieee-float32; + units "bytes per second"; + default "0x0p0"; + description + "Available bandwidth that is defined to be residual + bandwidth minus the measured bandwidth used for the + actual forwarding of non-RSVP-TE LSP packets. For a + bundled link, available bandwidth is defined to be the + sum of the component link available bandwidths."; + } + leaf one-way-utilized-bandwidth { + type rt-types:bandwidth-ieee-float32; + units "bytes per second"; + default "0x0p0"; + description + "Bandwidth utilization that represents the actual + utilization of the link (i.e., as measured in the router). + For a bundled link, bandwidth utilization is defined to + be the sum of the component link bandwidth utilizations."; + } + } + + grouping two-way-performance-metrics { + description + "Two-way PM throttle grouping."; + leaf two-way-delay { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Two-way delay or latency in microseconds."; + } + } + + grouping performance-metrics-thresholds { + description + "Grouping for configurable thresholds for measured + attributes."; + uses one-way-performance-metrics; + uses two-way-performance-metrics; + } + + grouping performance-metrics-attributes { + description + "Contains PM attributes."; + container performance-metrics-one-way { + description + "One-way link performance information in real time."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + uses performance-metrics-one-way-delay-loss; + uses performance-metrics-one-way-bandwidth; + } + container performance-metrics-two-way { + description + "Two-way link performance information in real time."; + reference + "RFC 6374: Packet Loss and Delay Measurement for MPLS + Networks"; + uses performance-metrics-two-way-delay-loss; + } + } + + grouping performance-metrics-throttle-container { + description + "Controls PM throttling."; + container throttle { + must 'suppression-interval >= measure-interval' { + error-message "'suppression-interval' cannot be less than " + + "'measure-interval'."; + description + "Constraint on 'suppression-interval' and + 'measure-interval'."; + } + description + "Link performance information in real time."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; + leaf one-way-delay-offset { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Offset value to be added to the measured delay value."; + } + leaf measure-interval { + type uint32; + default "30"; + description + "Interval, in seconds, to measure the extended metric + values."; + } + leaf advertisement-interval { + type uint32; + default "0"; + description + "Interval, in seconds, to advertise the extended metric + values."; + } + leaf suppression-interval { + type uint32 { + range "1..max"; + } + default "120"; + description + "Interval, in seconds, to suppress advertisement of the + extended metric values."; + reference + "RFC 8570: IS-IS Traffic Engineering (TE) Metric + Extensions, Section 6"; + } + container threshold-out { + uses performance-metrics-thresholds; + description + "If the measured parameter falls outside an upper bound + for all but the minimum-delay metric (or a lower bound + for the minimum-delay metric only) and the advertised + value is not already outside that bound, an 'anomalous' + announcement (anomalous bit set) will be triggered."; + } + container threshold-in { + uses performance-metrics-thresholds; + description + "If the measured parameter falls inside an upper bound + for all but the minimum-delay metric (or a lower bound + for the minimum-delay metric only) and the advertised + value is not already inside that bound, a 'normal' + announcement (anomalous bit cleared) will be triggered."; + } + container threshold-accelerated-advertisement { + description + "When the difference between the last advertised value and + the current measured value exceeds this threshold, an + 'anomalous' announcement (anomalous bit set) will be + triggered."; + uses performance-metrics-thresholds; + } + } + } + + /** + * TE tunnel generic groupings + **/ + + grouping explicit-route-hop { + description + "The explicit route entry grouping."; + choice type { + description + "The explicit route entry type."; + case numbered-node-hop { + container numbered-node-hop { + leaf node-id { + type te-node-id; + mandatory true; + description + "The identifier of a node in the TE topology."; + } + leaf hop-type { + type te-hop-type; + default "strict"; + description + "Strict or loose hop."; + } + description + "Numbered node route hop."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3, EXPLICIT_ROUTE in RSVP-TE + RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + } + } + case numbered-link-hop { + container numbered-link-hop { + leaf link-tp-id { + type te-tp-id; + mandatory true; + description + "TE Link Termination Point (LTP) identifier."; + } + leaf hop-type { + type te-hop-type; + default "strict"; + description + "Strict or loose hop."; + } + leaf direction { + type te-link-direction; + default "outgoing"; + description + "Link route object direction."; + } + description + "Numbered link explicit route hop."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3, EXPLICIT_ROUTE in RSVP-TE + RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + } + } + case unnumbered-link-hop { + container unnumbered-link-hop { + leaf link-tp-id { + type te-tp-id; + mandatory true; + description + "TE LTP identifier. The combination of the TE link ID + and the TE node ID is used to identify an unnumbered + TE link."; + } + leaf node-id { + type te-node-id; + mandatory true; + description + "The identifier of a node in the TE topology."; + } + leaf hop-type { + type te-hop-type; + default "strict"; + description + "Strict or loose hop."; + } + leaf direction { + type te-link-direction; + default "outgoing"; + description + "Link route object direction."; + } + description + "Unnumbered link explicit route hop."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 4.3, EXPLICIT_ROUTE in RSVP-TE + RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + } + } + case as-number { + container as-number-hop { + leaf as-number { + type inet:as-number; + mandatory true; + description + "The Autonomous System (AS) number."; + } + leaf hop-type { + type te-hop-type; + default "strict"; + description + "Strict or loose hop."; + } + description + "AS explicit route hop."; + } + } + case label { + container label-hop { + description + "Label hop type."; + uses te-label; + } + description + "The label explicit route hop type."; + } + } + } + + grouping record-route-state { + description + "The Record Route grouping."; + leaf index { + type uint32; + description + "Record Route hop index. The index is used to + identify an entry in the list. The order of entries + is defined by the user without relying on key values."; + } + choice type { + description + "The Record Route entry type."; + case numbered-node-hop { + container numbered-node-hop { + description + "Numbered node route hop container."; + leaf node-id { + type te-node-id; + mandatory true; + description + "The identifier of a node in the TE topology."; + } + leaf-list flags { + type path-attribute-flags; + description + "Path attributes flags."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP + Tunnels + RFC 4561: Definition of a Record Route Object (RRO) + Node-Id Sub-Object"; + } + } + description + "Numbered node route hop."; + } + case numbered-link-hop { + container numbered-link-hop { + description + "Numbered link route hop container."; + leaf link-tp-id { + type te-tp-id; + mandatory true; + description + "Numbered TE LTP identifier."; + } + leaf-list flags { + type path-attribute-flags; + description + "Path attributes flags."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP + Tunnels + RFC 4561: Definition of a Record Route Object (RRO) + Node-Id Sub-Object"; + } + } + description + "Numbered link route hop."; + } + case unnumbered-link-hop { + container unnumbered-link-hop { + leaf link-tp-id { + type te-tp-id; + mandatory true; + description + "TE LTP identifier. The combination of the TE link ID + and the TE node ID is used to identify an unnumbered + TE link."; + } + leaf node-id { + type te-node-id; + description + "The identifier of a node in the TE topology."; + } + leaf-list flags { + type path-attribute-flags; + description + "Path attributes flags."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP + Tunnels + RFC 4561: Definition of a Record Route Object (RRO) + Node-Id Sub-Object"; + } + description + "Unnumbered link Record Route hop."; + reference + "RFC 3477: Signalling Unnumbered Links in Resource + ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + } + description + "Unnumbered link route hop."; + } + case label { + container label-hop { + description + "Label route hop type."; + uses te-label; + leaf-list flags { + type path-attribute-flags; + description + "Path attributes flags."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels + RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP + Tunnels + RFC 4561: Definition of a Record Route Object (RRO) + Node-Id Sub-Object"; + } + } + description + "The label Record Route entry types."; + } + } + } + + grouping label-restriction-info { + description + "Label set item information."; + leaf restriction { + type enumeration { + enum inclusive { + description + "The label or label range is inclusive."; + } + enum exclusive { + description + "The label or label range is exclusive."; + } + } + default "inclusive"; + description + "Indicates whether the list item is inclusive or exclusive."; + } + leaf index { + type uint32; + description + "The index of the label restriction list entry."; + } + container label-start { + must "(not(../label-end/te-label/direction) and" + + " not(te-label/direction))" + + " or " + + "(../label-end/te-label/direction = te-label/direction)" + + " or " + + "(not(te-label/direction) and" + + " (../label-end/te-label/direction = 'forward'))" + + " or " + + "(not(../label-end/te-label/direction) and" + + " (te-label/direction = 'forward'))" { + error-message "'label-start' and 'label-end' must have the " + + "same direction."; + } + description + "This is the starting label if a label range is specified. + This is the label value if a single label is specified, + in which case the 'label-end' attribute is not set."; + uses te-label; + } + container label-end { + must "(not(../label-start/te-label/direction) and" + + " not(te-label/direction))" + + " or " + + "(../label-start/te-label/direction = te-label/direction)" + + " or " + + "(not(te-label/direction) and" + + " (../label-start/te-label/direction = 'forward'))" + + " or " + + "(not(../label-start/te-label/direction) and" + + " (te-label/direction = 'forward'))" { + error-message "'label-start' and 'label-end' must have the " + + "same direction."; + } + description + "This is the ending label if a label range is specified. + This attribute is not set if a single label is specified."; + uses te-label; + } + container label-step { + description + "The step increment between labels in the label range. + The label start/end values will have to be consistent + with the sign of label step. For example, + 'label-start' < 'label-end' enforces 'label-step' > 0 + 'label-start' > 'label-end' enforces 'label-step' < 0."; + choice technology { + default "generic"; + description + "Data-plane technology type."; + case generic { + leaf generic { + type int32; + default "1"; + description + "Label range step."; + } + } + } + } + leaf range-bitmap { + type yang:hex-string; + description + "When there are gaps between 'label-start' and 'label-end', + this attribute is used to specify the positions + of the used labels. This is represented in big endian as + 'hex-string'. + The most significant byte in the hex-string is the farthest + to the left in the byte sequence. Leading zero bytes in the + configured value may be omitted for brevity. + Each bit position in the 'range-bitmap' 'hex-string' maps + to a label in the range derived from 'label-start'. + + For example, assuming that 'label-start' = 16000 and + 'range-bitmap' = 0x01000001, then: + + - bit position (0) is set, and the corresponding mapped + label from the range is 16000 + (0 * 'label-step') or + 16000 for default 'label-step' = 1. + - bit position (24) is set, and the corresponding mapped + label from the range is 16000 + (24 * 'label-step') or + 16024 for default 'label-step' = 1."; + } + } + + grouping label-set-info { + description + "Grouping for the list of label restrictions specifying what + labels may or may not be used."; + container label-restrictions { + description + "The label restrictions container."; + list label-restriction { + key "index"; + description + "The absence of the label restrictions container implies + that all labels are acceptable; otherwise, only restricted + labels are available."; + reference + "RFC 7579: General Network Element Constraint Encoding + for GMPLS-Controlled Networks"; + uses label-restriction-info; + } + } + } + + grouping optimization-metric-entry { + description + "Optimization metrics configuration grouping."; + leaf metric-type { + type identityref { + base path-metric-type; + } + description + "Identifies the 'metric-type' that the path computation + process uses for optimization."; + } + leaf weight { + type uint8; + default "1"; + description + "TE path metric normalization weight."; + } + container explicit-route-exclude-objects { + when "../metric-type = " + + "'te-types:path-metric-optimize-excludes'"; + description + "Container for the 'exclude route' object list."; + uses path-route-exclude-objects; + } + container explicit-route-include-objects { + when "../metric-type = " + + "'te-types:path-metric-optimize-includes'"; + description + "Container for the 'include route' object list."; + uses path-route-include-objects; + } + } + + grouping common-constraints { + description + "Common constraints grouping that can be set on + a constraint set or directly on the tunnel."; + uses te-bandwidth { + description + "A requested bandwidth to use for path computation."; + } + leaf link-protection { + type identityref { + base link-protection-type; + } + default "te-types:link-protection-unprotected"; + description + "Link protection type required for the links included + in the computed path."; + reference + "RFC 4202: Routing Extensions in Support of + Generalized Multi-Protocol Label Switching (GMPLS)"; + } + leaf setup-priority { + type uint8 { + range "0..7"; + } + default "7"; + description + "TE LSP requested setup priority."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + leaf hold-priority { + type uint8 { + range "0..7"; + } + default "7"; + description + "TE LSP requested hold priority."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; + } + leaf signaling-type { + type identityref { + base path-signaling-type; + } + default "te-types:path-setup-rsvp"; + description + "TE tunnel path signaling type."; + } + } + + grouping tunnel-constraints { + description + "Tunnel constraints grouping that can be set on + a constraint set or directly on the tunnel."; + uses te-topology-identifier; + uses common-constraints; + } + + grouping path-constraints-route-objects { + description + "List of route entries to be included or excluded when + performing the path computation."; + container explicit-route-objects-always { + description + "Container for the 'exclude route' object list."; + list route-object-exclude-always { + key "index"; + ordered-by user; + description + "List of route objects to always exclude from the path + computation."; + leaf index { + type uint32; + description + "Explicit Route Object index. The index is used to + identify an entry in the list. The order of entries + is defined by the user without relying on key values."; + } + uses explicit-route-hop; + } + list route-object-include-exclude { + key "index"; + ordered-by user; + description + "List of route objects to include or exclude in the path + computation."; + leaf explicit-route-usage { + type identityref { + base route-usage-type; + } + default "te-types:route-include-object"; + description + "Indicates whether to include or exclude the + route object. The default is to include it."; + } + leaf index { + type uint32; + description + "Route object include-exclude index. The index is used + to identify an entry in the list. The order of entries + is defined by the user without relying on key values."; + } + uses explicit-route-hop { + augment "type" { + case srlg { + container srlg { + description + "SRLG container."; + leaf srlg { + type uint32; + description + "SRLG value."; + } + } + description + "An SRLG value to be included or excluded."; + } + description + "Augmentation for a generic explicit route for SRLG + exclusion."; + } + } + } + } + } + + grouping path-route-include-objects { + description + "List of route objects to be included when performing + the path computation."; + list route-object-include-object { + key "index"; + ordered-by user; + description + "List of Explicit Route Objects to be included in the + path computation."; + leaf index { + type uint32; + description + "Route object entry index. The index is used to + identify an entry in the list. The order of entries + is defined by the user without relying on key values."; + } + uses explicit-route-hop; + } + } + + grouping path-route-exclude-objects { + description + "List of route objects to be excluded when performing + the path computation."; + list route-object-exclude-object { + key "index"; + ordered-by user; + description + "List of Explicit Route Objects to be excluded in the + path computation."; + leaf index { + type uint32; + description + "Route object entry index. The index is used to + identify an entry in the list. The order of entries + is defined by the user without relying on key values."; + } + uses explicit-route-hop { + augment "type" { + case srlg { + container srlg { + description + "SRLG container."; + leaf srlg { + type uint32; + description + "SRLG value."; + } + } + description + "An SRLG value to be included or excluded."; + } + description + "Augmentation for a generic explicit route for SRLG + exclusion."; + } + } + } + } + + grouping generic-path-metric-bounds { + description + "TE path metric bounds grouping."; + container path-metric-bounds { + description + "TE path metric bounds container."; + list path-metric-bound { + key "metric-type"; + description + "List of TE path metric bounds."; + leaf metric-type { + type identityref { + base path-metric-type; + } + description + "Identifies an entry in the list of 'metric-type' items + bound for the TE path."; + } + leaf upper-bound { + type uint64; + default "0"; + description + "Upper bound on the end-to-end TE path metric. A zero + indicates an unbounded upper limit for the specific + 'metric-type'."; + } + } + } + } + + grouping generic-path-optimization { + description + "TE generic path optimization grouping."; + container optimizations { + description + "The objective function container that includes + attributes to impose when computing a TE path."; + choice algorithm { + description + "Optimizations algorithm."; + case metric { + if-feature "path-optimization-metric"; + /* Optimize by metric */ + list optimization-metric { + key "metric-type"; + description + "TE path metric type."; + uses optimization-metric-entry; + } + /* Tiebreakers */ + container tiebreakers { + description + "Container for the list of tiebreakers."; + list tiebreaker { + key "tiebreaker-type"; + description + "The list of tiebreaker criteria to apply on an + equally favored set of paths, in order to pick + the best."; + leaf tiebreaker-type { + type identityref { + base path-metric-type; + } + description + "Identifies an entry in the list of tiebreakers."; + } + } + } + } + case objective-function { + if-feature "path-optimization-objective-function"; + /* Objective functions */ + container objective-function { + description + "The objective function container that includes + attributes to impose when computing a TE path."; + leaf objective-function-type { + type identityref { + base objective-function-type; + } + default "te-types:of-minimize-cost-path"; + description + "Objective function entry."; + } + } + } + } + } + } + + grouping generic-path-affinities { + description + "Path affinities grouping."; + container path-affinities-values { + description + "Path affinities represented as values."; + list path-affinities-value { + key "usage"; + description + "List of named affinity constraints."; + leaf usage { + type identityref { + base resource-affinities-type; + } + description + "Identifies an entry in the list of value affinity + constraints."; + } + leaf value { + type admin-groups; + default ""; + description + "The affinity value. The default is empty."; + } + } + } + container path-affinity-names { + description + "Path affinities represented as names."; + list path-affinity-name { + key "usage"; + description + "List of named affinity constraints."; + leaf usage { + type identityref { + base resource-affinities-type; + } + description + "Identifies an entry in the list of named affinity + constraints."; + } + list affinity-name { + key "name"; + leaf name { + type string; + description + "Identifies a named affinity entry."; + } + description + "List of named affinities."; + } + } + } + } + + grouping generic-path-srlgs { + description + "Path SRLG grouping."; + container path-srlgs-lists { + description + "Path SRLG properties container."; + list path-srlgs-list { + key "usage"; + description + "List of SRLG values to be included or excluded."; + leaf usage { + type identityref { + base route-usage-type; + } + description + "Identifies an entry in a list of SRLGs to either + include or exclude."; + } + leaf-list values { + type srlg; + description + "List of SRLG values."; + } + } + } + container path-srlgs-names { + description + "Container for the list of named SRLGs."; + list path-srlgs-name { + key "usage"; + description + "List of named SRLGs to be included or excluded."; + leaf usage { + type identityref { + base route-usage-type; + } + description + "Identifies an entry in a list of named SRLGs to either + include or exclude."; + } + leaf-list names { + type string; + description + "List of named SRLGs."; + } + } + } + } + + grouping generic-path-disjointness { + description + "Path disjointness grouping."; + leaf disjointness { + type te-path-disjointness; + description + "The type of resource disjointness. + When configured for a primary path, the disjointness level + applies to all secondary LSPs. When configured for a + secondary path, the disjointness level overrides the level + configured for the primary path."; + } + } + + grouping common-path-constraints-attributes { + description + "Common path constraints configuration grouping."; + uses common-constraints; + uses generic-path-metric-bounds; + uses generic-path-affinities; + uses generic-path-srlgs; + } + + grouping generic-path-constraints { + description + "Global named path constraints configuration grouping."; + container path-constraints { + description + "TE named path constraints container."; + uses common-path-constraints-attributes; + uses generic-path-disjointness; + } + } + + grouping generic-path-properties { + description + "TE generic path properties grouping."; + container path-properties { + config false; + description + "The TE path properties."; + list path-metric { + key "metric-type"; + description + "TE path metric type."; + leaf metric-type { + type identityref { + base path-metric-type; + } + description + "TE path metric type."; + } + leaf accumulative-value { + type uint64; + description + "TE path metric accumulative value."; + } + } + uses generic-path-affinities; + uses generic-path-srlgs; + container path-route-objects { + description + "Container for the list of route objects either returned by + the computation engine or actually used by an LSP."; + list path-route-object { + key "index"; + ordered-by user; + description + "List of route objects either returned by the computation + engine or actually used by an LSP."; + leaf index { + type uint32; + description + "Route object entry index. The index is used to + identify an entry in the list. The order of entries + is defined by the user without relying on key + values."; + } + uses explicit-route-hop; + } + } + } + } +} -- GitLab From b6edd2103d590ff7046ca07915b7a2e83f415415 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 27 Mar 2026 11:45:48 +0000 Subject: [PATCH 4/4] Remove wrong submodule openconfig_public --- openconfig_public | 1 - 1 file changed, 1 deletion(-) delete mode 160000 openconfig_public diff --git a/openconfig_public b/openconfig_public deleted file mode 160000 index 834db2b62..000000000 --- a/openconfig_public +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 834db2b62f8ee66ee6c8f8b567569ad81caac34e -- GitLab