diff --git a/experimental/ietf-extracted-YANG-modules/foo-ntwdev@2024-07-05.yang b/experimental/ietf-extracted-YANG-modules/foo-ntwdev@2024-07-05.yang new file mode 100644 index 000000000..bb5126361 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/foo-ntwdev@2024-07-05.yang @@ -0,0 +1,66 @@ +module foo-ntwdev { + namespace "urn:example:foo-ntwdev"; + prefix "netdevfoo"; + + import foo { + prefix "foo"; + } + + organization "Example Organization"; + contact "example@example.com"; + description "YANG model for foo-dev."; + + revision "2024-07-05" { + description + "Initial version."; + reference + "RFC XXXX: YANG Model for foo-dev"; + } + + leaf foo { + type leafref { + path "/foo:foo"; + } + description + "Reference to foo leaf from foo.yang"; + } + + container deployment { + description + "Deployment container."; + + list ntw-element { + key "ne-id"; + description + "List of network elements."; + + leaf ne-id { + type string; + description + "Network element identifier."; + } + leaf devmod-alias { + type string; + description + "Device module alias for the deployment."; + } + } + + list grp-ntw-elements { + key "grp-ne-id"; + description + "List of group of network elements."; + + leaf grp-ne-id { + type string; + description + "Group of network element identifier."; + } + leaf devmod-alias { + type string; + description + "Device module alias for the deployment."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2021-10-21.yang b/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-07-04.yang similarity index 76% rename from experimental/ietf-extracted-YANG-modules/iana-bfd-types@2021-10-21.yang rename to experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-07-04.yang index 3435578cf..9d7d3bdc0 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2021-10-21.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-07-04.yang @@ -38,6 +38,15 @@ module iana-bfd-types { "RFC 9127: YANG Data Model for Bidirectional Forwarding Detection (BFD)"; + revision 2024-07-04 { + description + "Add NULL and Meticulous ISAAC authentication type."; + reference + "I-D.ietf-bfd-optimizing-authentication: + Optimizing BFD Authentication, + I-D.ietf-bfd-stability: BFD Stability."; + } + revision 2021-10-21 { description "Initial revision."; @@ -104,8 +113,8 @@ module iana-bfd-types { reference "RFC 5880: Bidirectional Forwarding Detection (BFD) RFC 6428: Proactive Connectivity Verification, Continuity - Check, and Remote Defect Indication for the MPLS Transport - Profile"; + Check, and Remote Defect Indication for the MPLS + Transport Profile"; } } description @@ -148,12 +157,34 @@ module iana-bfd-types { description "Meticulous Keyed SHA1."; } + enum null { + value 6; + description + "NULL Auth. Used for stability measurement."; + } + enum optimized-md5-meticulous-keyed-isaac { + value 7; + description + "BFD Optimized Authentication using Meticulous Keyed + MD5 as the strong authentication and Meticulous Keyed + ISAAC as the 'optimized' authentication."; + } + enum optimized-sha1-meticulous-keyed-isaac { + value 8; + description + "BFD Optimized Authentication using Meticulous Keyed + SHA-1 as the strong authentication and Meticulous Keyed + ISAAC as the 'optimized' authentication."; + } } description "BFD authentication type as defined in RFC 5880. Values are maintained in the 'BFD Authentication Types' IANA registry. Range is 0 to 255."; reference - "RFC 5880: Bidirectional Forwarding Detection (BFD)"; + "RFC 5880: Bidirectional Forwarding Detection (BFD), + I-D.ietf-bfd-optimizing-authentication: + Optimizing BFD Authentication, + I-D.ietf-bfd-stability: BFD Stability."; } } diff --git a/experimental/ietf-extracted-YANG-modules/iana-display-hints@2024-07-20.yang b/experimental/ietf-extracted-YANG-modules/iana-display-hints@2024-07-20.yang new file mode 100644 index 000000000..f3a48ad03 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-display-hints@2024-07-20.yang @@ -0,0 +1,178 @@ +module iana-display-hints { + yang-version 1.1; + namespace "ari://iana-display-hints"; + prefix ianadh; + + import ietf-amm { + prefix amm; + } + + organization + "IANA"; + contact + "WG Web: + WG List: + + Editor: Brian Sipos + "; + description + "This module defines intermediate and leaf IDENT objects usable as + display-hint annotations derived from the base + object. + + 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) 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). + + The initial 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."; + reference + "https://www.iana.org/assignments/DTNMA-TBA"; + + revision 2024-07-20 { + description + "Updated for latest ADM document."; + reference + "draft-ietf-dtn-adm-yang"; + } + amm:enum 0; + + // Integer number hints + amm:ident base-integer { + amm:enum 1; + description + "Intermediate base IDENT of display hints for integer values. + Hints derived from this object SHALL only apply to built-in types + BYTE, INT, UINT, VAST, and UVAST."; + amm:base "//ietf-amm/IDENT/display-hint"; + } + amm:ident display-int-dec { + amm:enum 2; + description + "Display integers as decimal (base 10)."; + amm:base "//ietf-amm/IDENT/base-integer"; + } + amm:ident display-int-bin { + amm:enum 3; + description + "Display integers as binary (base 2)."; + amm:base "//ietf-amm/IDENT/base-integer"; + } + amm:ident display-int-hex { + amm:enum 4; + description + "Display integers as hexadecimal (base 16)."; + amm:base "//ietf-amm/IDENT/base-integer"; + } + + // Floating-point number hints + amm:ident base-float { + amm:enum 5; + description + "Intermediate base IDENT of display hints for floating point values. + Hints derived from this object SHALL only apply to built-in types + REAL32 and REAL64."; + amm:base "//ietf-amm/IDENT/display-hint"; + } + amm:ident display-float-dec { + amm:enum 6; + description + "Display floating point values as decimal fraction."; + amm:base "//ietf-amm/IDENT/base-float"; + } + amm:ident display-float-exp { + amm:enum 7; + description + "Display floating point values as decimal exponential form."; + amm:base "//ietf-amm/IDENT/base-float"; + } + amm:ident display-float-hex { + amm:enum 8; + description + "Display floating point values as hexadecimal exponential form."; + amm:base "//ietf-amm/IDENT/base-float"; + } + + // Byte-string hints + amm:ident base-bstr { + amm:enum 9; + description + "Intermediate base IDENT of display hints for byte string values. + Hints derived from this object SHALL only apply to built-in type + BYTESTR."; + amm:base "//ietf-amm/IDENT/display-hint"; + } + amm:ident display-bstr-text { + amm:enum 10; + description + "Display byte string values as UTF-8 text where possible. + The base16 encoding is used otherwise."; + reference + "draft-ietf-dtn-ari"; + amm:base "//ietf-amm/IDENT/base-bstr"; + } + amm:ident display-bstr-base16 { + amm:enum 11; + description + "Display byte string values as base16-encoded."; + reference + "draft-ietf-dtn-ari"; + amm:base "//ietf-amm/IDENT/base-bstr"; + } + amm:ident display-bstr-base64 { + amm:enum 12; + description + "Display byte string values as base64url-encoded."; + reference + "draft-ietf-dtn-ari"; + amm:base "//ietf-amm/IDENT/base-bstr"; + } + amm:ident display-bstr-ipaddress { + amm:enum 16; + description + "Display byte string values as either IPv4 address (4-octet length) + or IPv6 address (16-octet length)."; + reference + "RFC 4001: Textual Conventions for Internet Network Addresses"; + amm:base "//ietf-amm/IDENT/base-bstr"; + } + + // TIME type (TP or TD built-ins) hints + amm:ident base-time { + amm:enum 13; + description + "Intermediate base IDENT of display hints for time values. + Hints derived from this object SHALL only apply to built-in types + TP and TD."; + amm:base "//ietf-amm/IDENT/display-hint"; + } + amm:ident display-time-text { + amm:enum 14; + description + "Display TP and TD values as text in accordance with RFC 3339."; + reference + "draft-ietf-dtn-ari"; + amm:base "//ietf-amm/IDENT/base-time"; + } + amm:ident display-time-dec { + amm:enum 15; + description + "Display TP and TD values as decimal fraction."; + reference + "draft-ietf-dtn-ari"; + amm:base "//ietf-amm/IDENT/base-time"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-icmpv6-types@2023-04-28.yang b/experimental/ietf-extracted-YANG-modules/iana-icmpv6-types@2023-04-28.yang index a5fd2c23d..dfc839130 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-icmpv6-types@2023-04-28.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-icmpv6-types@2023-04-28.yang @@ -20,9 +20,9 @@ module iana-icmpv6-types { description "This YANG module translates IANA registry 'ICMPv6 \"type\" Numbers' to YANG derived types. + Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. - Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set diff --git a/experimental/ietf-extracted-YANG-modules/iana-ipv6-ext-types@2023-09-29.yang b/experimental/ietf-extracted-YANG-modules/iana-ipv6-ext-types@2023-09-29.yang index e0736bea7..764eb1cdf 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-ipv6-ext-types@2023-09-29.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-ipv6-ext-types@2023-09-29.yang @@ -23,6 +23,7 @@ module iana-ipv6-ext-types { Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. + Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set diff --git a/experimental/ietf-extracted-YANG-modules/iana-isis-pics@2023-10-18.yang b/experimental/ietf-extracted-YANG-modules/iana-isis-pics@2024-03-03.yang similarity index 82% rename from experimental/ietf-extracted-YANG-modules/iana-isis-pics@2023-10-18.yang rename to experimental/ietf-extracted-YANG-modules/iana-isis-pics@2024-03-03.yang index 9d22d2415..be496d012 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-isis-pics@2023-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-isis-pics@2024-03-03.yang @@ -19,8 +19,9 @@ module iana-isis-pics { "The YANG module defines the identities for IS-IS Protocol Implementation Conformance Statement (PICS). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. + Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set @@ -32,7 +33,7 @@ module iana-isis-pics { (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - revision 2023-10-18 { + revision 2024-03-03 { description "Initial Version"; reference @@ -45,11 +46,4 @@ module iana-isis-pics { in the 'IS-IS PICS' registry."; } - identity isis-pics-sr-mpls { - base "isis-pics"; - description - "The identity for support of SR MPLS."; - reference - "RFC 8667: IS-IS Extensions for Segment Routing."; - } } diff --git a/experimental/ietf-extracted-YANG-modules/iana-msd-types@2023-10-22.yang b/experimental/ietf-extracted-YANG-modules/iana-msd-types@2023-10-22.yang deleted file mode 100644 index f251e176f..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-msd-types@2023-10-22.yang +++ /dev/null @@ -1,115 +0,0 @@ -module iana-msd-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-msd-types"; - prefix iana-msd-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 - "The YANG module defines the identities for Maximum SID Depth - (MSD) Types. - - Copyright (c) 2023 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Revised BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself - for full legal notices."; - - revision 2023-10-22 { - description - "Initial Version"; - reference - "RFC XXXX: YA YANG Data Model for MPLS MSD.."; - } - - identity msd-base { - description - "Base identity for Maximum SID Depth (MSD) Type. The MSD type - definition is defined in IANA IGP MSD-Types registry."; - } - - identity msd-base-mpls { - base msd-base; - description - "Identity for MSD types applicable to MPLS data plane."; - } - - identity msd-mpls { - base msd-base-mpls; - description - "Base MPLS Imposition MSD."; - reference - "RFC 8491: Signaling Maximum SID Depth (MSD) using IS-IS. - RFC 8476: Signaling Maximum SID Depth (MSD) using OSPF."; - } - - identity msd-erld { - base msd-base-mpls; - description - "msd-erld is defined to advertise the Entropy Readable - Label Depth (ERLD)."; - reference - "RFC 8662: Entropy Label for Source Packet Routing in - Networking (SPRING) Tunnels"; - } - - identity msd-base-srh { - base msd-base; - description - "Identity for MSD types for Segment Routing Header (SRH)."; - } - - identity msd-srh-max-sl { - base msd-base-srh; - description - "The Maximum Segment Left MSD type."; - reference - "RFC 9352: IS-IS Extensions to Support Segment Routing - over the IPv6 Data Plane"; - } - - identity msd-srh-max-end-pop { - base msd-base-srh; - description - "The Maximum End Pop MSD Type."; - reference - "RFC 9352: IS-IS Extensions to Support Segment Routing - over the IPv6 Data Plane"; - } - - identity msd-srh-max-hen-cap { - base msd-base-srh; - description - "The Maximum H.Encaps MSD Type."; - reference - "RFC 9352: IS-IS Extensions to Support Segment Routing - over the IPv6 Data Plane"; - } - - identity msd-srh-max-end-d { - base msd-base-srh; - description - "The Maximum End D MSD Type."; - reference - "RFC 9352: IS-IS Extensions to Support Segment Routing - over the IPv6 Data Plane"; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-msd-types@2024-07-04.yang b/experimental/ietf-extracted-YANG-modules/iana-msd-types@2024-07-04.yang new file mode 100644 index 000000000..f6388dd7c --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-msd-types@2024-07-04.yang @@ -0,0 +1,135 @@ +module iana-msd-types { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-msd-types"; + prefix iana-msd-types; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Internet Assigned Numbers Authority + + ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + + Tel: +1 310 301 5800 + "; + + description + "The YANG module defines the identities for Maximum Segment + Identifier (SID) Depth (MSD) Types. + + This YANG module is maintained by IANA and reflects the 'IGP + MSD-Types' registry. + + 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 initial 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.: replace XXXX with actual RFC number and remove + this note + + //RFC Ed.: replace IANA_FOO_URL and remove this note. + + The latest version of this YANG module is available at + ."; + + revision 2024-07-04 { + description + "Initial Version"; + reference + "RFC XXXX: YANG Data Model for Maximum SID Depth Types and + MPLS Maximum SID Depth"; + } + + identity msd-base { + description + "Base identity for Maximum SID Depth (MSD) Type. The MSD type + definition is defined in IANA IGP MSD-Types registry."; + } + + identity msd-base-mpls { + base msd-base; + description + "Base identity of MSD types for MPLS data plane."; + } + + identity base-mpls-imposition-msd { + base msd-base-mpls; + description + "Base MPLS Imposition MSD."; + reference + "RFC 8491: Signaling Maximum SID Depth (MSD) using IS-IS + RFC 8476: Signaling Maximum SID Depth (MSD) using OSPF + RFC 8664: Path Computation Element Communication Protocol + (PCEP) Extensions for Segment Routing + RFC 8814: Signaling Maximum SID Depth (MSD) Using the Border + Gateway Protocol - Link State"; + } + + identity erld-msd { + base msd-base-mpls; + description + "msd-erld is defined to advertise the Entropy Readable + Label Depth (ERLD)."; + reference + "RFC 8662: Entropy Label for Source Packet Routing in + Networking (SPRING) Tunnels + RFC 9088: Signaling Entropy Label Capability and Entropy + Readable Label Depth Using IS-IS"; + } + + identity msd-base-srh { + base msd-base; + description + "Base identity of MSD types for Segment Routing Header (SRH)."; + } + + identity srh-max-sl { + base msd-base-srh; + description + "The Maximum Segment Left MSD type."; + reference + "RFC 9352: IS-IS Extensions to Support Segment Routing + over the IPv6 Data Plane"; + } + + identity srh-max-end-pop { + base msd-base-srh; + description + "The Maximum End Pop MSD Type."; + reference + "RFC 9352: IS-IS Extensions to Support Segment Routing + over the IPv6 Data Plane"; + } + + identity srh-max-h-encaps { + base msd-base-srh; + description + "The Maximum H.Encaps MSD Type."; + reference + "RFC 9352: IS-IS Extensions to Support Segment Routing + over the IPv6 Data Plane"; + } + + identity srh-max-end-d { + base msd-base-srh; + description + "The Maximum End D MSD Type."; + reference + "RFC 9352: IS-IS Extensions to Support Segment Routing + over the IPv6 Data Plane"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-qos-types@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/iana-qos-types@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/iana-qos-types@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/iana-qos-types@2024-01-31.yang index 579505037..85195f834 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-qos-types@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-qos-types@2024-01-31.yang @@ -31,7 +31,7 @@ module iana-qos-types { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version"; reference diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-encryption-algs@2022-06-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-encryption-algs@2022-06-16.yang deleted file mode 100644 index 516396b14..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-ssh-encryption-algs@2022-06-16.yang +++ /dev/null @@ -1,389 +0,0 @@ -module iana-ssh-encryption-algs { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-ssh-encryption-algs"; - prefix sshea; - - organization - "Internet Assigned Numbers Authority (IANA)"; - - contact - "Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - Email: iana@iana.org"; - - description - "This module defines identities for the encryption algorithms - defined in the 'Encryption Algorithm Names' sub-registry of the - 'Secure Shell (SSH) Protocol Parameters' registry maintained - by IANA. - - 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). - - The initial version of this YANG module is part of RFC EEEE - (https://www.rfc-editor.org/info/rfcEEEE); see the RFC - itself for full legal notices."; - - revision 2022-06-16 { - description - "Reflects contents of the encryption algorithms registry - on June 16, 2022."; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - // Typedefs - - typedef encryption-algorithm-ref { - type identityref { - base "encryption-alg-base"; - } - description - "A reference to a SSH encryption algorithm identifier."; - } - - // Identities - - identity encryption-alg-base { - description - "Base identity used to identify encryption algorithms."; - } - - identity triple-des-cbc { // YANG IDs cannot begin with a number - base encryption-alg-base; - description - "3DES-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity blowfish-cbc { - base encryption-alg-base; - description - "BLOWFISH-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity twofish256-cbc { - base encryption-alg-base; - description - "TWOFISH256-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity twofish-cbc { - base encryption-alg-base; - description - "TWOFISH-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity twofish192-cbc { - base encryption-alg-base; - description - "TWOFISH192-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - identity twofish128-cbc { - base encryption-alg-base; - description - "TWOFISH128-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity aes256-cbc { - base encryption-alg-base; - description - "AES256-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity aes192-cbc { - base encryption-alg-base; - description - "AES192-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity aes128-cbc { - base encryption-alg-base; - status deprecated; - description - "AES128-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity serpent256-cbc { - base encryption-alg-base; - description - "SERPENT256-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity serpent192-cbc { - base encryption-alg-base; - description - "SERPENT192-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity serpent128-cbc { - base encryption-alg-base; - description - "SERPENT128-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity arcfour { - base encryption-alg-base; - status obsolete; - description - "ARCFOUR"; - reference - "RFC 8758: - Deprecating RC4 in Secure Shell (SSH)"; - } - - identity idea-cbc { - base encryption-alg-base; - description - "IDEA-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity cast128-cbc { - base encryption-alg-base; - description - "CAST128-CBC"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity none { - base encryption-alg-base; - description - "NONE"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity des-cbc { - base encryption-alg-base; - status obsolete; - description - "DES-CBC"; - reference - "FIPS 46-3: - Data Encryption Standard (DES)"; - } - - identity arcfour128 { - base encryption-alg-base; - status obsolete; - description - "ARCFOUR128"; - reference - "RFC 8758: - Deprecating RC4 in Secure Shell (SSH)"; - } - - identity arcfour256 { - base encryption-alg-base; - status obsolete; - description - "ARCFOUR256"; - reference - "RFC 8758: - Deprecating RC4 in Secure Shell (SSH)"; - } - - identity aes128-ctr { - base encryption-alg-base; - status deprecated; - description - "AES128-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity aes192-ctr { - base encryption-alg-base; - description - "AES192-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity aes256-ctr { - base encryption-alg-base; - description - "AES256-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity triple-des-ctr { // YANG IDs cannot begin with a number - base encryption-alg-base; - description - "3DES-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity blowfish-ctr { - base encryption-alg-base; - description - "BLOWFISH-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity twofish128-ctr { - base encryption-alg-base; - description - "TWOFISH128-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity twofish192-ctr { - base encryption-alg-base; - description - "TWOFISH192-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity twofish256-ctr { - base encryption-alg-base; - description - "TWOFISH256-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity serpent128-ctr { - base encryption-alg-base; - description - "SERPENT128-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity serpent192-ctr { - base encryption-alg-base; - description - "SERPENT192-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity serpent256-ctr { - base encryption-alg-base; - description - "SERPENT256-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity idea-ctr { - base encryption-alg-base; - description - "IDEA-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity cast128-ctr { - base encryption-alg-base; - description - "CAST128-CTR"; - reference - "RFC 4344: - The Secure Shell (SSH) Transport Layer Encryption Modes"; - } - - identity aead-aes-128-gcm { - base encryption-alg-base; - description - "AEAD_AES_128_GCM"; - reference - "RFC 5647: - AES Galois Counter Mode for the - Secure Shell Transport Layer Protocol"; - } - - identity aead-aes-256-gcm { - base encryption-alg-base; - description - "AEAD_AES_256_GCM"; - reference - "RFC 5647: - AES Galois Counter Mode for the - Secure Shell Transport Layer Protocol"; - } - - // Protocol-accessible Nodes - - container supported-algorithms { - config false; - description - "A container for a list of encryption algorithms - supported by the server."; - leaf-list supported-algorithm { - type encryption-algorithm-ref; - description - "A encryption algorithm supported by the server."; - } - } - -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-encryption-algs@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-encryption-algs@2024-03-16.yang new file mode 100644 index 000000000..02db92d2b --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-ssh-encryption-algs@2024-03-16.yang @@ -0,0 +1,356 @@ +module iana-ssh-encryption-algs { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-ssh-encryption-algs"; + prefix sshea; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + Email: iana@iana.org"; + + description + "This module defines enumerations for the encryption algorithms + defined in the 'Encryption Algorithm Names' sub-registry of the + 'Secure Shell (SSH) Protocol Parameters' registry maintained + by IANA. + + 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). + + The initial version of this YANG module is part of RFC EEEE + (https://www.rfc-editor.org/info/rfcEEEE); see the RFC + itself for full legal notices. + + All versions of this module are published by IANA at + https://www.iana.org/assignments/yang-parameters."; + + revision 2024-03-16 { + description + "This initial version of the module was created using + the script defined in RFC EEEE to reflect the contents + of the encryption algorithms registry maintained by IANA."; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-encryption-algorithm { + type enumeration { + + enum 3des-cbc { + description + "Enumeration for the '3des-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum blowfish-cbc { + description + "Enumeration for the 'blowfish-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum twofish256-cbc { + description + "Enumeration for the 'twofish256-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum twofish-cbc { + description + "Enumeration for the 'twofish-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum twofish192-cbc { + description + "Enumeration for the 'twofish192-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum twofish128-cbc { + description + "Enumeration for the 'twofish128-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum aes256-cbc { + description + "Enumeration for the 'aes256-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum aes192-cbc { + description + "Enumeration for the 'aes192-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum aes128-cbc { + description + "Enumeration for the 'aes128-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum serpent256-cbc { + description + "Enumeration for the 'serpent256-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum serpent192-cbc { + description + "Enumeration for the 'serpent192-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum serpent128-cbc { + description + "Enumeration for the 'serpent128-cbc' algorithm. Section + 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum arcfour { + status obsolete; + description + "Enumeration for the 'arcfour' algorithm."; + reference + "RFC 8758: + Deprecating RC4 in Secure Shell (SSH)"; + } + + enum idea-cbc { + description + "Enumeration for the 'idea-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum cast128-cbc { + description + "Enumeration for the 'cast128-cbc' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum none { + description + "Enumeration for the 'none' algorithm. Section 6.3"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum des-cbc { + status obsolete; + description + "Enumeration for the 'des-cbc' algorithm."; + reference + "FIPS-46-3: + Data Encryption Standard (DES)"; + } + + enum arcfour128 { + status obsolete; + description + "Enumeration for the 'arcfour128' algorithm."; + reference + "RFC 8758: + Deprecating RC4 in Secure Shell (SSH)"; + } + + enum arcfour256 { + status obsolete; + description + "Enumeration for the 'arcfour256' algorithm."; + reference + "RFC 8758: + Deprecating RC4 in Secure Shell (SSH)"; + } + + enum aes128-ctr { + description + "Enumeration for the 'aes128-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum aes192-ctr { + description + "Enumeration for the 'aes192-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum aes256-ctr { + description + "Enumeration for the 'aes256-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum 3des-ctr { + description + "Enumeration for the '3des-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum blowfish-ctr { + description + "Enumeration for the 'blowfish-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum twofish128-ctr { + description + "Enumeration for the 'twofish128-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum twofish192-ctr { + description + "Enumeration for the 'twofish192-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum twofish256-ctr { + description + "Enumeration for the 'twofish256-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum serpent128-ctr { + description + "Enumeration for the 'serpent128-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum serpent192-ctr { + description + "Enumeration for the 'serpent192-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum serpent256-ctr { + description + "Enumeration for the 'serpent256-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum idea-ctr { + description + "Enumeration for the 'idea-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum cast128-ctr { + description + "Enumeration for the 'cast128-ctr' algorithm."; + reference + "RFC 4344: + The Secure Shell (SSH) Transport Layer Encryption + Modes"; + } + + enum AEAD_AES_128_GCM { + description + "Enumeration for the 'AEAD_AES_128_GCM' algorithm. Section + 6.1"; + reference + "RFC 5647: + AES Galois Counter Mode for the Secure Shell Transport + Layer Protocol"; + } + + enum AEAD_AES_256_GCM { + description + "Enumeration for the 'AEAD_AES_256_GCM' algorithm. Section + 6.2"; + reference + "RFC 5647: + AES Galois Counter Mode for the Secure Shell Transport + Layer Protocol"; + } + } + description + "An enumeration for SSH encryption algorithms."; + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-key-exchange-algs@2022-06-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-key-exchange-algs@2022-06-16.yang deleted file mode 100644 index 73b1895ae..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-ssh-key-exchange-algs@2022-06-16.yang +++ /dev/null @@ -1,2217 +0,0 @@ -module iana-ssh-key-exchange-algs { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-ssh-key-exchange-algs"; - prefix sshkea; - - organization - "Internet Assigned Numbers Authority (IANA)"; - - contact - "Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - Email: iana@iana.org"; - - description - "This module defines identities for the key exchange algorithms - defined in the 'Key Exchange Method Names' sub-registry of the - 'Secure Shell (SSH) Protocol Parameters' registry maintained - by IANA. - - 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). - - The initial version of this YANG module is part of RFC EEEE - (https://www.rfc-editor.org/info/rfcEEEE); see the RFC - itself for full legal notices."; - - revision 2022-06-16 { - description - "Reflects contents of the key exchange algorithms registry - on June 16, 2022."; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - // Typedefs - - typedef key-exchange-algorithm-ref { - type identityref { - base "key-exchange-alg-base"; - } - description - "A reference to a SSH key exchange algorithm identifier."; - } - - // Identities - - identity key-exchange-alg-base { - description - "Base identity used to identify key exchange algorithms."; - } - - identity diffie-hellman-group-exchange-sha1 { - base key-exchange-alg-base; - status deprecated; - description - "DIFFIE-HELLMAN-GROUP-EXCHANGE-SHA1"; - reference - "RFC 4419: - Diffie-Hellman Group Exchange for the - Secure Shell (SSH) Transport Layer Protocol"; - } - - identity diffie-hellman-group-exchange-sha256 { - base key-exchange-alg-base; - description - "DIFFIE-HELLMAN-GROUP-EXCHANGE-SHA256"; - reference - "RFC 4419: - Diffie-Hellman Group Exchange for the - Secure Shell (SSH) Transport Layer Protocol"; - } - - identity diffie-hellman-group1-sha1 { - base key-exchange-alg-base; - status deprecated; - description - "DIFFIE-HELLMAN-GROUP1-SHA1"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity diffie-hellman-group14-sha1 { - base key-exchange-alg-base; - status deprecated; - description - "DIFFIE-HELLMAN-GROUP14-SHA1"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity diffie-hellman-group14-sha256 { - base key-exchange-alg-base; - status deprecated; - description - "DIFFIE-HELLMAN-GROUP14-SHA256"; - reference - "RFC 8268: - More Modular Exponentiation (MODP) Diffie-Hellman (DH) - Key Exchange (KEX) Groups for Secure Shell (SSH)"; - } - - identity diffie-hellman-group15-sha512 { - base key-exchange-alg-base; - description - "DIFFIE-HELLMAN-GROUP15-SHA512"; - reference - "RFC 8268: - More Modular Exponentiation (MODP) Diffie-Hellman (DH) - Key Exchange (KEX) Groups for Secure Shell (SSH)"; - } - - identity diffie-hellman-group16-sha512 { - base key-exchange-alg-base; - description - "DIFFIE-HELLMAN-GROUP16-SHA512"; - reference - "RFC 8268: - More Modular Exponentiation (MODP) Diffie-Hellman (DH) - Key Exchange (KEX) Groups for Secure Shell (SSH)"; - } - - identity diffie-hellman-group17-sha512 { - base key-exchange-alg-base; - description - "DIFFIE-HELLMAN-GROUP17-SHA512"; - reference - "RFC 8268: - More Modular Exponentiation (MODP) Diffie-Hellman (DH) - Key Exchange (KEX) Groups for Secure Shell (SSH)"; - } - - identity diffie-hellman-group18-sha512 { - base key-exchange-alg-base; - description - "DIFFIE-HELLMAN-GROUP18-SHA512"; - reference - "RFC 8268: - More Modular Exponentiation (MODP) Diffie-Hellman (DH) - Key Exchange (KEX) Groups for Secure Shell (SSH)"; - } - - identity ecdh-sha2-nistp256 { - base key-exchange-alg-base; - status deprecated; - description - "ECDH-SHA2-NISTP256 (secp256r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-nistp384 { - base key-exchange-alg-base; - description - "ECDH-SHA2-NISTP384 (secp384r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-nistp521 { - base key-exchange-alg-base; - description - "ECDH-SHA2-NISTP521 (secp521r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.1 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.33 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.26 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.27 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.16 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.36 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.37 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdh-sha2-1.3.132.0.38 { - base key-exchange-alg-base; - description - "ECDH-SHA2-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecmqv-sha2 { - base key-exchange-alg-base; - description - "ECMQV-SHA2"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity gss-group1-sha1-nistp256 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - identity gss-group1-sha1-nistp384 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-nistp521 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.1 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.33 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.26 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.27 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.16 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.36 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.37 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-1.3.132.0.38 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-curve25519-sha256 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group1-sha1-curve448-sha512 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP1-SHA1-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-nistp256 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-nistp384 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-nistp521 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.1 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.33 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.26 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.27 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.16 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.36 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.37 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-1.3.132.0.38 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-curve25519-sha256 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha1-curve448-sha512 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GROUP14-SHA1-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-nistp256 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-nistp384 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-nistp521 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.1 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.33 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.26 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.27 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - identity gss-gex-sha1-1.3.132.0.16 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.36 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.37 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-1.3.132.0.38 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-curve25519-sha256 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-gex-sha1-curve448-sha512 { - base key-exchange-alg-base; - status deprecated; - description - "GSS-GEX-SHA1-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity rsa1024-sha1 { - base key-exchange-alg-base; - status obsolete; - description - "RSA1024-SHA1"; - reference - "RFC 4432: - RSA Key Exchange for the Secure Shell (SSH) - Transport Layer Protocol"; - } - - identity rsa2048-sha256 { - base key-exchange-alg-base; - description - "RSA2048-SHA256"; - reference - "RFC 4432: - RSA Key Exchange for the Secure Shell (SSH) - Transport Layer Protocol"; - } - - identity ext-info-s { - base key-exchange-alg-base; - description - "EXT-INFO-S"; - reference - "RFC 8308: - Extension Negotiation in the Secure Shell (SSH) Protocol"; - } - - identity ext-info-c { - base key-exchange-alg-base; - description - "EXT-INFO-C"; - reference - "RFC 8308: - Extension Negotiation in the Secure Shell (SSH) Protocol"; - } - - identity gss-group14-sha256-nistp256 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-nistp384 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-nistp521 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - identity gss-group14-sha256-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group14-sha256-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-GROUP14-SHA256-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-nistp256 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-nistp384 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-nistp521 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group15-sha512-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-GROUP15-SHA512-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-nistp256 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-nistp384 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-nistp521 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group16-sha512-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-GROUP16-SHA512-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-nistp256 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-nistp384 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-nistp521 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group17-sha512-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-GROUP17-SHA512-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-nistp256 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-nistp384 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-nistp521 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-group18-sha512-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-GROUP18-SHA512-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-nistp256 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-nistp384 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-nistp521 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp256-sha256-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-NISTP256-SHA256-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-nistp256 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-nistp384 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-nistp521 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp384-sha384-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-NISTP384-SHA384-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-nistp256 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-nistp384 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-nistp521 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-nistp521-sha512-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-NISTP521-SHA512-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-nistp256 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-nistp384 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-nistp521 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.2.840.10045.3.1.1 (nistp192, - secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - identity gss-curve25519-sha256-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve25519-sha256-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-CURVE25519-SHA256-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-nistp256 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-NISTP256 (secp256r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-nistp384 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-NISTP384 (secp384r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-nistp521 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-NISTP521 (secp521r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.1 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.2.840.10045.3.1.1 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.33 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.26 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.27 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.16 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.36 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.37 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-1.3.132.0.38 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-curve25519-sha256 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-CURVE25519-SHA256"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity gss-curve448-sha512-curve448-sha512 { - base key-exchange-alg-base; - description - "GSS-CURVE448-SHA512-CURVE448-SHA512"; - reference - "RFC 8732: - Generic Security Service Application Program Interface - (GSS-API) Key Exchange with SHA-2"; - } - - identity curve25519-sha256 { - base key-exchange-alg-base; - description - "CURVE25519-SHA256"; - reference - "RFC 8731: - Secure Shell (SSH) Key Exchange Method - Using Curve25519 and Curve448"; - } - - identity curve448-sha512 { - base key-exchange-alg-base; - description - "CURVE448-SHA512"; - reference - "RFC 8731: - Secure Shell (SSH) Key Exchange Method - Using Curve25519 and Curve448"; - } - - // Protocol-accessible Nodes - - container supported-algorithms { - config false; - description - "A container for a list of key exchange algorithms - supported by the server."; - leaf-list supported-algorithm { - type key-exchange-algorithm-ref; - description - "A key exchange algorithm supported by the server."; - } - } - -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-key-exchange-algs@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-key-exchange-algs@2024-03-16.yang new file mode 100644 index 000000000..a74de81d3 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-ssh-key-exchange-algs@2024-03-16.yang @@ -0,0 +1,2071 @@ +module iana-ssh-key-exchange-algs { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-ssh-key-exchange-algs"; + prefix sshkea; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + Email: iana@iana.org"; + + description + "This module defines enumerations for the key exchange algorithms + defined in the 'Key Exchange Method Names' sub-registry of the + 'Secure Shell (SSH) Protocol Parameters' registry maintained + by IANA. + + 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). + + The initial version of this YANG module is part of RFC EEEE + (https://www.rfc-editor.org/info/rfcEEEE); see the RFC + itself for full legal notices. + + All versions of this module are published by IANA at + https://www.iana.org/assignments/yang-parameters."; + + revision 2024-03-16 { + description + "This initial version of the module was created using + the script defined in RFC EEEE to reflect the contents + of the key exchange algorithms registry maintained by IANA."; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-key-exchange-algorithm { + type enumeration { + + enum diffie-hellman-group-exchange-sha1 { + status deprecated; + description + "Enumeration for the 'diffie-hellman-group-exchange-sha1' + algorithm. Section 4.1"; + reference + "RFC 4419: + Diffie-Hellman Group Exchange for the Secure Shell + (SSH) Transport Layer Protocol + RFC 8270: + Increase the Secure Shell Minimum Recommended Diffie- + Hellman Modulus Size to 2048 Bits"; + } + + enum diffie-hellman-group-exchange-sha256 { + description + "Enumeration for the 'diffie-hellman-group-exchange-sha256' + algorithm. Section 4.2"; + reference + "RFC 4419: + Diffie-Hellman Group Exchange for the Secure Shell + (SSH) Transport Layer Protocol + RFC 8270: + Increase the Secure Shell Minimum Recommended Diffie- + Hellman Modulus Size to 2048 Bits"; + } + + enum diffie-hellman-group1-sha1 { + status deprecated; + description + "Enumeration for the 'diffie-hellman-group1-sha1' + algorithm. Section 8.1"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum diffie-hellman-group14-sha1 { + description + "Enumeration for the 'diffie-hellman-group14-sha1' + algorithm. Section 8.2"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + enum diffie-hellman-group14-sha256 { + description + "Enumeration for the 'diffie-hellman-group14-sha256' + algorithm."; + reference + "RFC 8268: + More Modular Exponentiation (MODP) Diffie-Hellman (DH) + Key Exchange (KEX) Groups for Secure Shell (SSH)"; + } + + enum diffie-hellman-group15-sha512 { + description + "Enumeration for the 'diffie-hellman-group15-sha512' + algorithm."; + reference + "RFC 8268: + More Modular Exponentiation (MODP) Diffie-Hellman (DH) + Key Exchange (KEX) Groups for Secure Shell (SSH)"; + } + + enum diffie-hellman-group16-sha512 { + description + "Enumeration for the 'diffie-hellman-group16-sha512' + algorithm."; + reference + "RFC 8268: + More Modular Exponentiation (MODP) Diffie-Hellman (DH) + Key Exchange (KEX) Groups for Secure Shell (SSH)"; + } + + enum diffie-hellman-group17-sha512 { + description + "Enumeration for the 'diffie-hellman-group17-sha512' + algorithm."; + reference + "RFC 8268: + More Modular Exponentiation (MODP) Diffie-Hellman (DH) + Key Exchange (KEX) Groups for Secure Shell (SSH)"; + } + + enum diffie-hellman-group18-sha512 { + description + "Enumeration for the 'diffie-hellman-group18-sha512' + algorithm."; + reference + "RFC 8268: + More Modular Exponentiation (MODP) Diffie-Hellman (DH) + Key Exchange (KEX) Groups for Secure Shell (SSH)"; + } + + enum ecdh-sha2-nistp256 { + description + "Enumeration for the 'ecdh-sha2-nistp256' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-nistp384 { + description + "Enumeration for the 'ecdh-sha2-nistp384' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-nistp521 { + description + "Enumeration for the 'ecdh-sha2-nistp521' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.1 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.1' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'ecdh-sha2-1.2.840.10045.3.1.1' + algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.33 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.33' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.26 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.26' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.27 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.27' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.16 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.16' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.36 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.36' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.37 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.37' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdh-sha2-1.3.132.0.38 { + description + "Enumeration for the 'ecdh-sha2-1.3.132.0.38' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecmqv-sha2 { + description + "Enumeration for the 'ecmqv-sha2' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum gss-group1-sha1-nistp256 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-nistp256' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-nistp384 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-nistp384' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-nistp521 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-nistp521' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.1 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.1' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.2.840.10045.3.1.1 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.2.840.10045.3.1.1' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.33 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.33' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.26 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.26' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.27 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.27' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.16 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.16' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.36 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.36' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.37 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.37' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group1-sha1-1.3.132.0.38 { + status deprecated; + description + "Enumeration for the 'gss-group1-sha1-1.3.132.0.38' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-nistp256 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-nistp256' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-nistp384 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-nistp384' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-nistp521 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-nistp521' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.1 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.1' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.2.840.10045.3.1.1 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.2.840.10045.3.1.1' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.33 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.33' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.26 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.26' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.27 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.27' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.16 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.16' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.36 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.36' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.37 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.37' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha1-1.3.132.0.38 { + status deprecated; + description + "Enumeration for the 'gss-group14-sha1-1.3.132.0.38' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-nistp256 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-nistp256' algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-nistp384 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-nistp384' algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-nistp521 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-nistp521' algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.1 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.1' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.2.840.10045.3.1.1 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.2.840.10045.3.1.1' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.33 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.33' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.26 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.26' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.27 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.27' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.16 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.16' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.36 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.36' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.37 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.37' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-gex-sha1-1.3.132.0.38 { + status deprecated; + description + "Enumeration for the 'gss-gex-sha1-1.3.132.0.38' + algorithm."; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol + RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss- { + description + "Enumeration for the 'gss-' algorithm. Section 2.6"; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol"; + } + + enum rsa1024-sha1 { + status obsolete; + description + "Enumeration for the 'rsa1024-sha1' algorithm."; + reference + "RFC 4432: + RSA Key Exchange for the Secure Shell (SSH) Transport + Layer Protocol"; + } + + enum rsa2048-sha256 { + description + "Enumeration for the 'rsa2048-sha256' algorithm."; + reference + "RFC 4432: + RSA Key Exchange for the Secure Shell (SSH) Transport + Layer Protocol"; + } + + enum ext-info-s { + description + "Enumeration for the 'ext-info-s' algorithm. Section 2"; + reference + "RFC 8308: + Extension Negotiation in the Secure Shell (SSH) + Protocol"; + } + + enum ext-info-c { + description + "Enumeration for the 'ext-info-c' algorithm. Section 2"; + reference + "RFC 8308: + Extension Negotiation in the Secure Shell (SSH) + Protocol"; + } + + enum gss-group14-sha256-nistp256 { + description + "Enumeration for the 'gss-group14-sha256-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-nistp384 { + description + "Enumeration for the 'gss-group14-sha256-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-nistp521 { + description + "Enumeration for the 'gss-group14-sha256-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.1 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + group14-sha256-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.33 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.26 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.27 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.16 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.36 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.37 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group14-sha256-1.3.132.0.38 { + description + "Enumeration for the 'gss-group14-sha256-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-nistp256 { + description + "Enumeration for the 'gss-group15-sha512-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-nistp384 { + description + "Enumeration for the 'gss-group15-sha512-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-nistp521 { + description + "Enumeration for the 'gss-group15-sha512-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.1 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + group15-sha512-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.33 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.26 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.27 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.16 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.36 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.37 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group15-sha512-1.3.132.0.38 { + description + "Enumeration for the 'gss-group15-sha512-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-nistp256 { + description + "Enumeration for the 'gss-group16-sha512-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-nistp384 { + description + "Enumeration for the 'gss-group16-sha512-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-nistp521 { + description + "Enumeration for the 'gss-group16-sha512-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.1 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + group16-sha512-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.33 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.26 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.27 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.16 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.36 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.37 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group16-sha512-1.3.132.0.38 { + description + "Enumeration for the 'gss-group16-sha512-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-nistp256 { + description + "Enumeration for the 'gss-group17-sha512-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-nistp384 { + description + "Enumeration for the 'gss-group17-sha512-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-nistp521 { + description + "Enumeration for the 'gss-group17-sha512-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.1 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + group17-sha512-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.33 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.26 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.27 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.16 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.36 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.37 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group17-sha512-1.3.132.0.38 { + description + "Enumeration for the 'gss-group17-sha512-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-nistp256 { + description + "Enumeration for the 'gss-group18-sha512-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-nistp384 { + description + "Enumeration for the 'gss-group18-sha512-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-nistp521 { + description + "Enumeration for the 'gss-group18-sha512-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.1 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + group18-sha512-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.33 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.26 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.27 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.16 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.36 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.37 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-group18-sha512-1.3.132.0.38 { + description + "Enumeration for the 'gss-group18-sha512-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-nistp256 { + description + "Enumeration for the 'gss-nistp256-sha256-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-nistp384 { + description + "Enumeration for the 'gss-nistp256-sha256-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-nistp521 { + description + "Enumeration for the 'gss-nistp256-sha256-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.1 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + nistp256-sha256-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.33 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.26 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.27 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.16 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.36 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.37 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp256-sha256-1.3.132.0.38 { + description + "Enumeration for the 'gss-nistp256-sha256-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-nistp256 { + description + "Enumeration for the 'gss-nistp384-sha384-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-nistp384 { + description + "Enumeration for the 'gss-nistp384-sha384-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-nistp521 { + description + "Enumeration for the 'gss-nistp384-sha384-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.1 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + nistp384-sha384-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.33 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.26 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.27 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.16 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.36 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.37 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp384-sha384-1.3.132.0.38 { + description + "Enumeration for the 'gss-nistp384-sha384-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-nistp256 { + description + "Enumeration for the 'gss-nistp521-sha512-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-nistp384 { + description + "Enumeration for the 'gss-nistp521-sha512-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-nistp521 { + description + "Enumeration for the 'gss-nistp521-sha512-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.1 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + nistp521-sha512-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.33 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.26 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.27 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.16 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.36 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.37 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-nistp521-sha512-1.3.132.0.38 { + description + "Enumeration for the 'gss-nistp521-sha512-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-nistp256 { + description + "Enumeration for the 'gss-curve25519-sha256-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-nistp384 { + description + "Enumeration for the 'gss-curve25519-sha256-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-nistp521 { + description + "Enumeration for the 'gss-curve25519-sha256-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.1 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + curve25519-sha256-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.33 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.26 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.27 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.16 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.36 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.37 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve25519-sha256-1.3.132.0.38 { + description + "Enumeration for the 'gss-curve25519-sha256-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-nistp256 { + description + "Enumeration for the 'gss-curve448-sha512-nistp256' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-nistp384 { + description + "Enumeration for the 'gss-curve448-sha512-nistp384' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-nistp521 { + description + "Enumeration for the 'gss-curve448-sha512-nistp521' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.1 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.1' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'gss- + curve448-sha512-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.33 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.33' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.26 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.26' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.27 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.27' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.16 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.16' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.36 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.36' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.37 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.37' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum gss-curve448-sha512-1.3.132.0.38 { + description + "Enumeration for the 'gss-curve448-sha512-1.3.132.0.38' + algorithm."; + reference + "RFC 8732: + Generic Security Service Application Program Interface + (GSS-API) Key Exchange with SHA-2"; + } + + enum curve25519-sha256 { + description + "Enumeration for the 'curve25519-sha256' algorithm."; + reference + "RFC 8731: + Secure Shell (SSH) Key Exchange Method Using + Curve25519 and Curve448"; + } + + enum curve448-sha512 { + description + "Enumeration for the 'curve448-sha512' algorithm."; + reference + "RFC 8731: + Secure Shell (SSH) Key Exchange Method Using + Curve25519 and Curve448"; + } + } + description + "An enumeration for SSH key exchange algorithms."; + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-mac-algs@2022-06-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-mac-algs@2022-06-16.yang deleted file mode 100644 index 9cf3ae017..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-ssh-mac-algs@2022-06-16.yang +++ /dev/null @@ -1,162 +0,0 @@ -module iana-ssh-mac-algs { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-ssh-mac-algs"; - prefix sshma; - - organization - "Internet Assigned Numbers Authority (IANA)"; - - contact - "Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - Email: iana@iana.org"; - - description - "This module defines identities for the MAC algorithms - defined in the 'MAC Algorithm Names' sub-registry of the - 'Secure Shell (SSH) Protocol Parameters' registry maintained - by IANA. - - 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). - - The initial version of this YANG module is part of RFC EEEE - (https://www.rfc-editor.org/info/rfcEEEE); see the RFC - itself for full legal notices."; - - revision 2022-06-16 { - description - "Reflects contents of the MAC algorithms registry on - June 16, 2022."; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - // Typedefs - - typedef mac-algorithm-ref { - type identityref { - base "mac-alg-base"; - } - description - "A reference to a SSH mac algorithm identifier."; - } - - // Identities - - identity mac-alg-base { - description - "Base identity used to identify message authentication - code (MAC) algorithms."; - } - - identity hmac-sha1 { - base mac-alg-base; - description - "HMAC-SHA1"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity hmac-sha1-96 { - base mac-alg-base; - description - "HMAC-SHA1-96"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity hmac-md5 { - base mac-alg-base; - description - "HMAC-MD5"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity hmac-md5-96 { - base mac-alg-base; - description - "HMAC-MD5-96"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity none { - base mac-alg-base; - description - "NONE"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity aead-aes-128-gcm { - base mac-alg-base; - description - "AEAD_AES_128_GCM"; - reference - "RFC 5647: - AES Galois Counter Mode for the - Secure Shell Transport Layer Protocol"; - } - - identity aead-aes-256-gcm { - base mac-alg-base; - description - "AEAD_AES_256_GCM"; - reference - "RFC 5647: - AES Galois Counter Mode for the - Secure Shell Transport Layer Protocol"; - } - - identity hmac-sha2-256 { - base mac-alg-base; - description - "HMAC-SHA2-256"; - reference - "RFC 6668: - SHA-2 Data Integrity Verification for the - Secure Shell (SSH) Transport Layer Protocol"; - } - - identity hmac-sha2-512 { - base mac-alg-base; - description - "HMAC-SHA2-512"; - reference - "RFC 6668: - SHA-2 Data Integrity Verification for the - Secure Shell (SSH) Transport Layer Protocol"; - } - - // Protocol-accessible Nodes - - container supported-algorithms { - config false; - description - "A container for a list of MAC algorithms - supported by the server."; - leaf-list supported-algorithm { - type mac-algorithm-ref; - description - "A MAC algorithm supported by the server."; - } - } - -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-mac-algs@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-mac-algs@2024-03-16.yang new file mode 100644 index 000000000..1652059a7 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-ssh-mac-algs@2024-03-16.yang @@ -0,0 +1,135 @@ +module iana-ssh-mac-algs { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-ssh-mac-algs"; + prefix sshma; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + Email: iana@iana.org"; + + description + "This module defines enumerations for the MAC algorithms + defined in the 'MAC Algorithm Names' sub-registry of the + 'Secure Shell (SSH) Protocol Parameters' registry maintained + by IANA. + + 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). + + The initial version of this YANG module is part of RFC EEEE + (https://www.rfc-editor.org/info/rfcEEEE); see the RFC + itself for full legal notices. + + All versions of this module are published by IANA at + https://www.iana.org/assignments/yang-parameters."; + + revision 2024-03-16 { + description + "This initial version of the module was created using + the script defined in RFC EEEE to reflect the contents + of the mac algorithms registry maintained by IANA."; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-mac-algorithm { + type enumeration { + + enum hmac-sha1 { + description + "Enumeration for the 'hmac-sha1' algorithm. Section 6.4"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum hmac-sha1-96 { + description + "Enumeration for the 'hmac-sha1-96' algorithm. Section + 6.4"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum hmac-md5 { + description + "Enumeration for the 'hmac-md5' algorithm. Section 6.4"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum hmac-md5-96 { + description + "Enumeration for the 'hmac-md5-96' algorithm. Section 6.4"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum none { + description + "Enumeration for the 'none' algorithm. Section 6.4"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum AEAD_AES_128_GCM { + description + "Enumeration for the 'AEAD_AES_128_GCM' algorithm. Section + 6.1"; + reference + "RFC 5647: + AES Galois Counter Mode for the Secure Shell Transport + Layer Protocol"; + } + + enum AEAD_AES_256_GCM { + description + "Enumeration for the 'AEAD_AES_256_GCM' algorithm. Section + 6.2"; + reference + "RFC 5647: + AES Galois Counter Mode for the Secure Shell Transport + Layer Protocol"; + } + + enum hmac-sha2-256 { + description + "Enumeration for the 'hmac-sha2-256' algorithm. Section 2"; + reference + "RFC 6668: + SHA-2 Data Integrity Verification for the Secure Shell + (SSH) Transport Layer Protocol"; + } + + enum hmac-sha2-512 { + description + "Enumeration for the 'hmac-sha2-512' algorithm. Section 2"; + reference + "RFC 6668: + SHA-2 Data Integrity Verification for the Secure Shell + (SSH) Transport Layer Protocol"; + } + } + description + "An enumeration for SSH mac algorithms."; + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-public-key-algs@2022-06-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-public-key-algs@2022-06-16.yang deleted file mode 100644 index ae25bbc02..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-ssh-public-key-algs@2022-06-16.yang +++ /dev/null @@ -1,436 +0,0 @@ -module iana-ssh-public-key-algs { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-ssh-public-key-algs"; - prefix sshpka; - - organization - "Internet Assigned Numbers Authority (IANA)"; - contact - "Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - Email: iana@iana.org"; - - description - "This module defines identities for the public key algorithms - defined in the 'Public Key Algorithm Names' sub-registry of the - 'Secure Shell (SSH) Protocol Parameters' registry maintained - by IANA. - - 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). - - The initial version of this YANG module is part of RFC EEEE - (https://www.rfc-editor.org/info/rfcEEEE); see the RFC - itself for full legal notices."; - - revision 2022-06-16 { - description - "Reflects contents of the public key algorithms registry - on June 16, 2022."; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - // Typedefs - - typedef public-key-algorithm-ref { - type identityref { - base "public-key-alg-base"; - } - description - "A reference to a SSH public key algorithm identifier."; - } - - // Identities - identity public-key-alg-base { - description - "Base identity used to identify public key algorithms."; - } - - identity ssh-dss { - base public-key-alg-base; - description - "SSH-DSS"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity ssh-rsa { - base public-key-alg-base; - description - "SSH-RSA"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity rsa-sha2-256 { - base public-key-alg-base; - description - "RSA-SHA2-256"; - reference - "RFC 8332: - Use of RSA Keys with SHA-256 and SHA-512 - in the Secure Shell (SSH) Protocol"; - } - - identity rsa-sha2-512 { - base public-key-alg-base; - description - "RSA-SHA2-512"; - reference - "RFC 8332: - Use of RSA Keys with SHA-256 and SHA-512 - in the Secure Shell (SSH) Protocol"; - } - - identity spki-sign-rsa { - base public-key-alg-base; - description - "SPKI-SIGN-RSA"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity spki-sign-dss { - base public-key-alg-base; - description - "SPKI-SIGN-DSS"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity pgp-sign-rsa { - base public-key-alg-base; - description - "PGP-SIGN-RSA"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity pgp-sign-dss { - base public-key-alg-base; - description - "PGP-SIGN-DSS"; - reference - "RFC 4253: - The Secure Shell (SSH) Transport Layer Protocol"; - } - - identity null { - base public-key-alg-base; - description - "NULL"; - reference - "RFC 4462: - Generic Security Service Application Program Interface - (GSS-API) Authentication and Key Exchange for the - Secure Shell (SSH) Protocol"; - } - - identity ecdsa-sha2-nistp256 { - base public-key-alg-base; - status deprecated; - description - "ECDSA-SHA2-NISTP256 (secp256r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-nistp384 { - base public-key-alg-base; - description - "ECDSA-SHA2-NISTP384 (secp384r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-nistp521 { - base public-key-alg-base; - description - "ECDSA-SHA2-NISTP521 (secp521r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.1 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.2.840.10045.3.1.1 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.33 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.26 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.27 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.16 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.36 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.37 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity ecdsa-sha2-1.3.132.0.38 { - base public-key-alg-base; - description - "ECDSA-SHA2-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 5656: - Elliptic Curve Algorithm Integration in the - Secure Shell Transport Layer"; - } - - identity x509v3-ssh-dss { - base public-key-alg-base; - description - "X509V3-SSH-DSS"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ssh-rsa { - base public-key-alg-base; - description - "X509V3-SSH-RSA"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-rsa2048-sha256 { - base public-key-alg-base; - status deprecated; - description - "X509V3-RSA2048-SHA256"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-nistp256 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-NISTP256 (secp256r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-nistp384 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-NISTP384 (secp384r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-nistp521 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-NISTP521 (secp521r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.1 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.1 (nistk163, sect163k1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.2.840.10045.3.1.1 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.2.840.10045.3.1.1 (nistp192, secp192r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.33 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.33 (nistp224, secp224r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.26 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.26 (nistk233, sect233k1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.27 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.27 (nistb233, sect233r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.16 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.16 (nistk283, sect283k1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.36 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.36 (nistk409, sect409k1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.37 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.37 (nistb409, sect409r1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity x509v3-ecdsa-sha2-1.3.132.0.38 { - base public-key-alg-base; - description - "X509V3-ECDSA-SHA2-1.3.132.0.38 (nistt571, sect571k1)"; - reference - "RFC 6187: - X.509v3 Certificates for Secure Shell Authentication"; - } - - identity ssh-ed25519 { - base public-key-alg-base; - description - "SSH-ED25519"; - reference - "RFC 8709: - Ed25519 and Ed448 Public Key Algorithms for the - Secure Shell (SSH) Protocol"; - } - - identity ssh-ed448 { - base public-key-alg-base; - description - "SSH-ED448"; - reference - "RFC 8709: - Ed25519 and Ed448 Public Key Algorithms for the - Secure Shell (SSH) Protocol"; - } - - // Protocol-accessible Nodes - - container supported-algorithms { - config false; - description - "A container for a list of public key algorithms - supported by the server."; - leaf-list supported-algorithm { - type public-key-algorithm-ref; - description - "A public key algorithm supported by the server."; - } - } - -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-ssh-public-key-algs@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/iana-ssh-public-key-algs@2024-03-16.yang new file mode 100644 index 000000000..6e37f50a5 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-ssh-public-key-algs@2024-03-16.yang @@ -0,0 +1,395 @@ +module iana-ssh-public-key-algs { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-ssh-public-key-algs"; + prefix sshpka; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + Email: iana@iana.org"; + + description + "This module defines enumerations for the public key algorithms + defined in the 'Public Key Algorithm Names' sub-registry of the + 'Secure Shell (SSH) Protocol Parameters' registry maintained + by IANA. + + 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). + + The initial version of this YANG module is part of RFC EEEE + (https://www.rfc-editor.org/info/rfcEEEE); see the RFC + itself for full legal notices. + + All versions of this module are published by IANA at + https://www.iana.org/assignments/yang-parameters."; + + revision 2024-03-16 { + description + "This initial version of the module was created using + the script defined in RFC EEEE to reflect the contents + of the public key algorithms registry maintained by IANA."; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-public-key-algorithm { + type enumeration { + + enum ssh-dss { + description + "Enumeration for the 'ssh-dss' algorithm. Section 6.6"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum ssh-rsa { + description + "Enumeration for the 'ssh-rsa' algorithm. Section 6.6"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum rsa-sha2-256 { + description + "Enumeration for the 'rsa-sha2-256' algorithm. Section 3"; + reference + "RFC 8332: + Use of RSA Keys with SHA-256 and SHA-512 in the Secure + Shell (SSH) Protocol"; + } + + enum rsa-sha2-512 { + description + "Enumeration for the 'rsa-sha2-512' algorithm. Section 3"; + reference + "RFC 8332: + Use of RSA Keys with SHA-256 and SHA-512 in the Secure + Shell (SSH) Protocol"; + } + + enum spki-sign-rsa { + description + "Enumeration for the 'spki-sign-rsa' algorithm. Section + 6.6"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum spki-sign-dss { + description + "Enumeration for the 'spki-sign-dss' algorithm. Section + 6.6"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum pgp-sign-rsa { + description + "Enumeration for the 'pgp-sign-rsa' algorithm. Section + 6.6"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum pgp-sign-dss { + description + "Enumeration for the 'pgp-sign-dss' algorithm. Section + 6.6"; + reference + "RFC 4253: + The Secure Shell (SSH) Transport Layer Protocol"; + } + + enum null { + description + "Enumeration for the 'null' algorithm. Section 5"; + reference + "RFC 4462: + Generic Security Service Application Program Interface + (GSS-API) Authentication and Key Exchange for the + Secure Shell (SSH) Protocol"; + } + + enum ecdsa-sha2-nistp256 { + description + "Enumeration for the 'ecdsa-sha2-nistp256' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-nistp384 { + description + "Enumeration for the 'ecdsa-sha2-nistp384' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-nistp521 { + description + "Enumeration for the 'ecdsa-sha2-nistp521' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.1 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.1' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'ecdsa-sha2-1.2.840.10045.3.1.1' + algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.33 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.33' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.26 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.26' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.27 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.27' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.16 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.16' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.36 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.36' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.37 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.37' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum ecdsa-sha2-1.3.132.0.38 { + description + "Enumeration for the 'ecdsa-sha2-1.3.132.0.38' algorithm."; + reference + "RFC 5656: + Elliptic Curve Algorithm Integration in the Secure + Shell Transport Layer"; + } + + enum x509v3-ssh-dss { + description + "Enumeration for the 'x509v3-ssh-dss' algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ssh-rsa { + description + "Enumeration for the 'x509v3-ssh-rsa' algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-rsa2048-sha256 { + description + "Enumeration for the 'x509v3-rsa2048-sha256' algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-nistp256 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-nistp256' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-nistp384 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-nistp384' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-nistp521 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-nistp521' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.1 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.1' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.2.840.10045.3.1.1 { + description + "Enumeration for the 'x509v3-ecdsa- + sha2-1.2.840.10045.3.1.1' algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.33 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.33' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.26 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.26' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.27 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.27' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.16 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.16' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.36 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.36' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.37 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.37' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum x509v3-ecdsa-sha2-1.3.132.0.38 { + description + "Enumeration for the 'x509v3-ecdsa-sha2-1.3.132.0.38' + algorithm."; + reference + "RFC 6187: + X.509v3 Certificates for Secure Shell Authentication"; + } + + enum ssh-ed25519 { + description + "Enumeration for the 'ssh-ed25519' algorithm."; + reference + "RFC 8709: + Ed25519 and Ed448 Public Key Algorithms for the Secure + Shell (SSH) Protocol"; + } + + enum ssh-ed448 { + description + "Enumeration for the 'ssh-ed448' algorithm."; + reference + "RFC 8709: + Ed25519 and Ed448 Public Key Algorithms for the Secure + Shell (SSH) Protocol"; + } + } + description + "An enumeration for SSH public key algorithms."; + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-tls-cipher-suite-algs@2022-06-16.yang b/experimental/ietf-extracted-YANG-modules/iana-tls-cipher-suite-algs@2022-06-16.yang deleted file mode 100644 index 2b914d806..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-tls-cipher-suite-algs@2022-06-16.yang +++ /dev/null @@ -1,3777 +0,0 @@ -module iana-tls-cipher-suite-algs { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-tls-cipher-suite-algs"; - prefix tlscsa; - - organization - "Internet Assigned Numbers Authority (IANA)"; - - contact - "Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - Email: iana@iana.org"; - - description - "This module defines identities for the Cipher Suite - algorithms defined in the 'TLS Cipher Suites' sub-registry - of the 'Transport Layer Security (TLS) Parameters' registry - maintained by IANA. - - 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). - - The initial version of this YANG module is part of RFC FFFF - (https://www.rfc-editor.org/info/rfcFFFF); see the RFC - itself for full legal notices."; - - revision 2022-06-16 { - description - "Reflect contents of the public key algorithms registry - on June 16, 2022."; - reference - "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; - } - - // Typedefs - - typedef cipher-suite-algorithm-ref { - type identityref { - base "cipher-suite-alg-base"; - } - description - "A reference to a TLS cipher suite algorithm identifier."; - } - - // Identities - - identity cipher-suite-alg-base { - description - "Base identity used to identify TLS cipher suites."; - } - - identity tls-null-with-null-null { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-NULL-WITH-NULL-NULL"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-null-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-NULL-MD5"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-NULL-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-export-with-rc4-40-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-EXPORT-WITH-RC4-40-MD5"; - reference - "RFC 4346: - The TLS Protocol Version 1.1 - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-rsa-with-rc4-128-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-RC4-128-MD5"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2 - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-rsa-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-RC4-128-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2 - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-rsa-export-with-rc2-cbc-40-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-EXPORT-WITH-RC2-CBC-40-MD5"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-rsa-with-idea-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-RSA-WITH-IDEA-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-export-with-des40-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-EXPORT-WITH-DES40-CBC-SHA"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-rsa-with-des-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-RSA-WITH-DES-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-dss-export-with-des40-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-EXPORT-WITH-DES40-CBC-SHA"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-dh-dss-with-des-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-DH-DSS-WITH-DES-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-rsa-export-with-des40-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-EXPORT-WITH-DES40-CBC-SHA"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-dh-rsa-with-des-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-DH-RSA-WITH-DES-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-dss-export-with-des40-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-EXPORT-WITH-DES40-CBC-SHA"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-dhe-dss-with-des-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-DHE-DSS-WITH-DES-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-rsa-export-with-des40-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-EXPORT-WITH-DES40-CBC-SHA"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-dhe-rsa-with-des-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-DHE-RSA-WITH-DES-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-anon-export-with-rc4-40-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-EXPORT-WITH-RC4-40-MD5"; - reference - "RFC 4346: - The TLS Protocol Version 1.1 - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-dh-anon-with-rc4-128-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-RC4-128-MD5"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2 - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-dh-anon-export-with-des40-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-EXPORT-WITH-DES40-CBC-SHA"; - reference - "RFC 4346: - The TLS Protocol Version 1.1"; - } - - identity tls-dh-anon-with-des-cbc-sha { - base cipher-suite-alg-base; - status obsolete; - description - "TLS-DH-ANON-WITH-DES-CBC-SHA"; - reference - "RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS) - RFC 5469: - DES and IDEA Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-krb5-with-des-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-DES-CBC-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-RC4-128-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-krb5-with-idea-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-IDEA-CBC-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-with-des-cbc-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-DES-CBC-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-with-3des-ede-cbc-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-3DES-EDE-CBC-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-with-rc4-128-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-RC4-128-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-krb5-with-idea-cbc-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-WITH-IDEA-CBC-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-export-with-des-cbc-40-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-EXPORT-WITH-DES-CBC-40-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-export-with-rc2-cbc-40-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-EXPORT-WITH-RC2-CBC-40-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-export-with-rc4-40-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-EXPORT-WITH-RC4-40-SHA"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-krb5-export-with-des-cbc-40-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-EXPORT-WITH-DES-CBC-40-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-krb5-export-with-rc2-cbc-40-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-EXPORT-WITH-RC2-CBC-40-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS)"; - } - identity tls-krb5-export-with-rc4-40-md5 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-KRB5-EXPORT-WITH-RC4-40-MD5"; - reference - "RFC 2712: - Addition of Kerberos Cipher Suites to - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-psk-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-NULL-SHA"; - reference - "RFC 4785: - Pre-Shared Key Cipher Suites with NULL Encryption for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-NULL-SHA"; - reference - "RFC 4785: - Pre-Shared Key Cipher Suites with NULL Encryption for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-NULL-SHA"; - reference - "RFC 4785: - Pre-Shared Key Cipher Suites with NULL Encryption for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-dss-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-AES-128-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-rsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-dss-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-AES-128-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-rsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-anon-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-AES-128-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-dss-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-AES-256-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-rsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-dss-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-AES-256-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-rsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-anon-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-AES-256-CBC-SHA"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-null-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-NULL-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-aes-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-256-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-dss-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-rsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-dss-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-camellia-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-dss-with-camellia-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-CAMELLIA-128-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-rsa-with-camellia-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-CAMELLIA-128-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-dss-with-camellia-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-camellia-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-anon-with-camellia-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-CAMELLIA-128-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-dss-with-aes-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-AES-256-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-rsa-with-aes-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-AES-256-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-dss-with-aes-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-AES-256-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dhe-rsa-with-aes-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-anon-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-dh-anon-with-aes-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-AES-256-CBC-SHA256"; - reference - "RFC 5246: - The Transport Layer Security (TLS) Protocol Version 1.2"; - } - - identity tls-rsa-with-camellia-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-dss-with-camellia-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-CAMELLIA-256-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-rsa-with-camellia-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-CAMELLIA-256-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-dss-with-camellia-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-camellia-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-anon-with-camellia-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-CAMELLIA-256-CBC-SHA"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-psk-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-RC4-128-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-psk-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-128-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-256-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-RC4-128-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-dhe-psk-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-AES-128-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-AES-256-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-RC4-128-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-rsa-psk-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-AES-128-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-AES-256-CBC-SHA"; - reference - "RFC 4279: - Pre-Shared Key Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-seed-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-SEED-CBC-SHA"; - reference - "RFC 4162: - Addition of SEED Ciphersuites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-seed-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-SEED-CBC-SHA"; - reference - "RFC 4162: - Addition of SEED Ciphersuites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-seed-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-SEED-CBC-SHA"; - reference - "RFC 4162: - Addition of SEED Ciphersuites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-seed-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-SEED-CBC-SHA"; - reference - "RFC 4162: - Addition of SEED Ciphersuites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-seed-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-SEED-CBC-SHA"; - reference - "RFC 4162: - Addition of SEED Ciphersuites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-seed-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-SEED-CBC-SHA"; - reference - "RFC 4162: - Addition of SEED Ciphersuites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-rsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - description - "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - description - "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dh-rsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dh-rsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dhe-dss-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dhe-dss-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dh-dss-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dh-dss-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dh-anon-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-dh-anon-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5288: - AES-GCM Cipher Suites for TLS"; - } - - identity tls-psk-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-psk-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-dhe-psk-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - description - "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-dhe-psk-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - description - "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-psk-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-psk-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-psk-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-psk-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-psk-with-null-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-NULL-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-psk-with-null-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-NULL-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-dhe-psk-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-dhe-psk-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-dhe-psk-with-null-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-NULL-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-dhe-psk-with-null-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-NULL-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-psk-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-psk-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-psk-with-null-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-NULL-SHA256"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-psk-with-null-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-NULL-SHA384"; - reference - "RFC 5487: - Pre-Shared Key Cipher Suites for Transport Layer Security - (TLS) with SHA-256/384 and AES Galois Counter Mode"; - } - - identity tls-rsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-dss-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-rsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-dss-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-anon-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-rsa-with-camellia-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-dss-with-camellia-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-CAMELLIA-256-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-rsa-with-camellia-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-CAMELLIA-256-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-dss-with-camellia-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-camellia-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-dh-anon-with-camellia-256-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-CAMELLIA-256-CBC-SHA256"; - reference - "RFC 5932: - Camellia Cipher Suites for TLS"; - } - - identity tls-sm4-gcm-sm3 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SM4-GCM-SM3"; - reference - "RFC 8998: - ShangMi (SM) Cipher Suites for Transport Layer Security - (TLS) Protocol Version 1.3"; - } - - identity tls-sm4-ccm-sm3 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SM4-CCM-SM3"; - reference - "RFC 8998: - ShangMi (SM) Cipher Suites for Transport Layer Security - (TLS) Protocol Version 1.3"; - } - - identity tls-empty-renegotiation-info-scsv { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-EMPTY-RENEGOTIATION-INFO-SCSV"; - reference - "RFC 5746: - Transport Layer Security (TLS) - Renegotiation Indication Extension"; - } - - identity tls-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - description - "TLS-AES-128-GCM-SHA256"; - reference - "RFC 8446: - The Transport Layer Security (TLS) Protocol Version 1.3"; - } - - identity tls-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - description - "TLS-AES-256-GCM-SHA384"; - reference - "RFC 8446: - The Transport Layer Security (TLS) Protocol Version 1.3"; - } - identity tls-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - description - "TLS-CHACHA20-POLY1305-SHA256"; - reference - "RFC 8446: - The Transport Layer Security (TLS) Protocol Version 1.3"; - } - - identity tls-aes-128-ccm-sha256 { - base cipher-suite-alg-base; - description - "TLS-AES-128-CCM-SHA256"; - reference - "RFC 8446: - The Transport Layer Security (TLS) Protocol Version 1.3"; - } - - identity tls-aes-128-ccm-8-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-AES-128-CCM-8-SHA256"; - reference - "RFC 8446: - The Transport Layer Security (TLS) Protocol Version 1.3"; - } - - identity tls-fallback-scsv { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-FALLBACK-SCSV"; - reference - "RFC 7507: - TLS Fallback Signaling Cipher Suite Value (SCSV) - for Preventing Protocol Downgrade Attacks"; - } - - identity tls-ecdh-ecdsa-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-NULL-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-ecdsa-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-RC4-128-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-ecdh-ecdsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-ecdsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-ecdsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-ecdsa-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-NULL-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-ecdsa-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-ecdhe-ecdsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-ecdsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-ecdsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-rsa-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-NULL-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-rsa-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-RC4-128-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-ecdh-rsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-rsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-rsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-rsa-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-NULL-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-rsa-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-RC4-128-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-ecdhe-rsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-rsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdhe-rsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-anon-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ANON-WITH-NULL-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-anon-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ANON-WITH-RC4-128-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-ecdh-anon-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ANON-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-anon-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ANON-WITH-AES-128-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-ecdh-anon-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ANON-WITH-AES-256-CBC-SHA"; - reference - "RFC 8422: - Elliptic Curve Cryptography (ECC) Cipher Suites for - Transport Layer Security (TLS) Versions 1.2 and Earlier"; - } - - identity tls-srp-sha-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-rsa-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-RSA-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-dss-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-DSS-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-WITH-AES-128-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-rsa-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-RSA-WITH-AES-128-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-dss-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-DSS-WITH-AES-128-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-WITH-AES-256-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-rsa-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-RSA-WITH-AES-256-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-srp-sha-dss-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SRP-SHA-DSS-WITH-AES-256-CBC-SHA"; - reference - "RFC 5054: - Using SRP for TLS Authentication"; - } - - identity tls-ecdhe-ecdsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-ecdsa-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-ecdsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-ecdsa-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-rsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-rsa-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-rsa-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-rsa-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-ecdsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-ecdsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-ecdsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-ecdsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-rsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-rsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-rsa-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdh-rsa-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384"; - reference - "RFC 5289: - TLS Elliptic Curve Cipher Suites with SHA-256/384 - and AES Galois Counter Mode"; - } - - identity tls-ecdhe-psk-with-rc4-128-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-RC4-128-SHA"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS) - RFC 6347: - Datagram Transport Layer Security version 1.2"; - } - - identity tls-ecdhe-psk-with-3des-ede-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-aes-128-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-aes-256-cbc-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-aes-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-aes-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-null-sha { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-NULL-SHA"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-null-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-NULL-SHA256"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-null-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-NULL-SHA384"; - reference - "RFC 5489: - ECDHE_PSK Ciphersuites for Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - identity tls-ecdhe-rsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-aria-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-aria-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - identity tls-ecdhe-psk-with-aria-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-aria-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384"; - reference - "RFC 6209: - Addition of the ARIA Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-rsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-RSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-dss-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-DSS-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-dss-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-DSS-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dh-anon-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DH-ANON-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-ecdsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-rsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdh-rsa-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-camellia-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - identity tls-rsa-psk-with-camellia-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-camellia-128-cbc-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-camellia-256-cbc-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384"; - reference - "RFC 6367: - Addition of the Camellia Cipher Suites to - Transport Layer Security (TLS)"; - } - - identity tls-rsa-with-aes-128-ccm { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-128-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-rsa-with-aes-256-ccm { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-256-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-128-ccm { - base cipher-suite-alg-base; - description - "TLS-DHE-RSA-WITH-AES-128-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-256-ccm { - base cipher-suite-alg-base; - description - "TLS-DHE-RSA-WITH-AES-256-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-rsa-with-aes-128-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-128-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-rsa-with-aes-256-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-WITH-AES-256-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-128-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-AES-128-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-dhe-rsa-with-aes-256-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-DHE-RSA-WITH-AES-256-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-psk-with-aes-128-ccm { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-128-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-psk-with-aes-256-ccm { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-256-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-dhe-psk-with-aes-128-ccm { - base cipher-suite-alg-base; - description - "TLS-DHE-PSK-WITH-AES-128-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-dhe-psk-with-aes-256-ccm { - base cipher-suite-alg-base; - description - "TLS-DHE-PSK-WITH-AES-256-CCM"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-psk-with-aes-128-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-128-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-psk-with-aes-256-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-AES-256-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-psk-dhe-with-aes-128-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-DHE-WITH-AES-128-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-psk-dhe-with-aes-256-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-DHE-WITH-AES-256-CCM-8"; - reference - "RFC 6655: - AES-CCM Cipher Suites for TLS"; - } - - identity tls-ecdhe-ecdsa-with-aes-128-ccm { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-128-CCM"; - reference - "RFC 7251: - AES-CCM ECC Cipher Suites for TLS"; - } - - identity tls-ecdhe-ecdsa-with-aes-256-ccm { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-256-CCM"; - reference - "RFC 7251: - AES-CCM ECC Cipher Suites for TLS"; - } - - identity tls-ecdhe-ecdsa-with-aes-128-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8"; - reference - "RFC 7251: - AES-CCM ECC Cipher Suites for TLS"; - } - - identity tls-ecdhe-ecdsa-with-aes-256-ccm-8 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8"; - reference - "RFC 7251: - AES-CCM ECC Cipher Suites for TLS"; - } - - identity tls-eccpwd-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECCPWD-WITH-AES-128-GCM-SHA256"; - reference - "RFC 8492: - Secure Password Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-eccpwd-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECCPWD-WITH-AES-256-GCM-SHA384"; - reference - "RFC 8492: - Secure Password Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-eccpwd-with-aes-128-ccm-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECCPWD-WITH-AES-128-CCM-SHA256"; - reference - "RFC 8492: - Secure Password Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-eccpwd-with-aes-256-ccm-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECCPWD-WITH-AES-256-CCM-SHA384"; - reference - "RFC 8492: - Secure Password Ciphersuites for - Transport Layer Security (TLS)"; - } - - identity tls-sha256-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SHA256-SHA256"; - reference - "RFC 9150: - TLS 1.3 Authentication and Integrity-Only Cipher Suites"; - } - - identity tls-sha384-sha384 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-SHA384-SHA384"; - reference - "RFC 9150: - TLS 1.3 Authentication and Integrity-Only Cipher Suites"; - } - - identity tls-gostr341112-256-with-kuznyechik-ctr-omac { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-GOSTR341112-256-WITH-KUZNYECHIK-CTR-OMAC"; - reference - "RFC 9189: - GOST Cipher Suites for Transport Layer Security (TLS) - Protocol Version 1.2"; - } - - identity tls-gostr341112-256-with-magma-ctr-omac { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-GOSTR341112-256-WITH-MAGMA-CTR-OMAC"; - reference - "RFC 9189: - GOST Cipher Suites for Transport Layer Security (TLS) - Protocol Version 1.2"; - } - - identity tls-gostr341112-256-with-28147-cnt-imit { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-GOSTR341112-256-WITH-28147-CNT-IMIT"; - reference - "RFC 9189: - GOST Cipher Suites for Transport Layer Security (TLS) - Protocol Version 1.2"; - } - - identity tls-ecdhe-rsa-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-ecdsa-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-rsa-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - description - "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-psk-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-PSK-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - identity tls-ecdhe-psk-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-PSK-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-dhe-psk-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - description - "TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-rsa-psk-with-chacha20-poly1305-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256"; - reference - "RFC 7905: - ChaCha20-Poly1305 Cipher Suites for - Transport Layer Security (TLS)"; - } - - identity tls-ecdhe-psk-with-aes-128-gcm-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-PSK-WITH-AES-128-GCM-SHA256"; - reference - "RFC 8442: - ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites"; - } - - identity tls-ecdhe-psk-with-aes-256-gcm-sha384 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-PSK-WITH-AES-256-GCM-SHA384"; - reference - "RFC 8442: - ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites"; - } - identity tls-ecdhe-psk-with-aes-128-ccm-8-sha256 { - base cipher-suite-alg-base; - status deprecated; - description - "TLS-ECDHE-PSK-WITH-AES-128-CCM-8-SHA256"; - reference - "RFC 8442: - ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites"; - } - - identity tls-ecdhe-psk-with-aes-128-ccm-sha256 { - base cipher-suite-alg-base; - description - "TLS-ECDHE-PSK-WITH-AES-128-CCM-SHA256"; - reference - "RFC 8442: - ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites"; - } - - // Protocol-accessible Nodes - - container supported-algorithms { - config false; - description - "A container for a list of cipher suite algorithms supported - by the server."; - leaf-list supported-algorithm { - type cipher-suite-algorithm-ref; - description - "A cipher suite algorithm supported by the server."; - } - } - -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-tls-cipher-suite-algs@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/iana-tls-cipher-suite-algs@2024-03-16.yang new file mode 100644 index 000000000..3abe2a8d8 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-tls-cipher-suite-algs@2024-03-16.yang @@ -0,0 +1,3551 @@ +module iana-tls-cipher-suite-algs { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-tls-cipher-suite-algs"; + prefix tlscsa; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + Email: iana@iana.org"; + + description + "This module defines enumerations for the Cipher Suite + algorithms defined in the 'TLS Cipher Suites' sub-registry + of the 'Transport Layer Security (TLS) Parameters' registry + maintained by IANA. + + 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). + + The initial version of this YANG module is part of RFC FFFF + (https://www.rfc-editor.org/info/rfcFFFF); see the RFC + itself for full legal notices. + + All versions of this module are published by IANA at + https://www.iana.org/assignments/yang-parameters."; + + revision 2024-03-16 { + description + "This initial version of the module was created using + the script defined in RFC FFFF to reflect the contents + of the cipher-suite algorithms registry maintained by IANA."; + reference + "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; + } + + typedef tls-cipher-suite-algorithm { + type enumeration { + enum TLS_NULL_WITH_NULL_NULL { + status deprecated; + description + "Enumeration for the 'TLS_NULL_WITH_NULL_NULL' algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_NULL_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_NULL_MD5' algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_NULL_SHA' algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_EXPORT_WITH_RC4_40_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_EXPORT_WITH_RC4_40_MD5' + algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version 1.1 + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_RSA_WITH_RC4_128_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_RC4_128_MD5' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version 1.2 + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_RSA_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version 1.2 + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5' + algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_RSA_WITH_IDEA_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_IDEA_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_RSA_EXPORT_WITH_DES40_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_EXPORT_WITH_DES40_CBC_SHA' + algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_RSA_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_RSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA' + algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_DH_DSS_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA' + algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_DH_RSA_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA' algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_DHE_DSS_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA' algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_DHE_RSA_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_EXPORT_WITH_RC4_40_MD5' + algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version 1.1 + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_DH_anon_WITH_RC4_128_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_RC4_128_MD5' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version 1.2 + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA' algorithm."; + reference + "RFC 4346: + The Transport Layer Security (TLS) Protocol Version + 1.1"; + } + enum TLS_DH_anon_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 8996: + Deprecating TLS 1.0 and TLS 1.1"; + } + enum TLS_DH_anon_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_KRB5_WITH_DES_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_DES_CBC_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_KRB5_WITH_IDEA_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_IDEA_CBC_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_WITH_DES_CBC_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_DES_CBC_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_WITH_3DES_EDE_CBC_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_3DES_EDE_CBC_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_WITH_RC4_128_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_RC4_128_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_KRB5_WITH_IDEA_CBC_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_WITH_IDEA_CBC_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_EXPORT_WITH_RC4_40_SHA { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_EXPORT_WITH_RC4_40_SHA' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_KRB5_EXPORT_WITH_RC4_40_MD5 { + status deprecated; + description + "Enumeration for the 'TLS_KRB5_EXPORT_WITH_RC4_40_MD5' + algorithm."; + reference + "RFC 2712: + Addition of Kerberos Cipher Suites to Transport Layer + Security (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_PSK_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_NULL_SHA' algorithm."; + reference + "RFC 4785: + Pre-Shared Key (PSK) Ciphersuites with NULL Encryption + for Transport Layer Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_NULL_SHA' + algorithm."; + reference + "RFC 4785: + Pre-Shared Key (PSK) Ciphersuites with NULL Encryption + for Transport Layer Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_NULL_SHA' + algorithm."; + reference + "RFC 4785: + Pre-Shared Key (PSK) Ciphersuites with NULL Encryption + for Transport Layer Security (TLS)"; + } + enum TLS_RSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_DSS_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_RSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_DSS_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_RSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_anon_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_DSS_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_RSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_DSS_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_RSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_anon_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_NULL_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_NULL_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_AES_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_256_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_DSS_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_RSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_CAMELLIA_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_CAMELLIA_128_CBC_SHA' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_DSS_WITH_AES_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_AES_256_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_RSA_WITH_AES_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_AES_256_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_AES_256_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_256_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_anon_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_DH_anon_WITH_AES_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_AES_256_CBC_SHA256' + algorithm."; + reference + "RFC 5246: + The Transport Layer Security (TLS) Protocol Version + 1.2"; + } + enum TLS_RSA_WITH_CAMELLIA_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_CAMELLIA_256_CBC_SHA' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_PSK_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_PSK_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_PSK_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_PSK_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_PSK_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_PSK_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_PSK_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_PSK_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 4279: + Pre-Shared Key Ciphersuites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_WITH_SEED_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_SEED_CBC_SHA' + algorithm."; + reference + "RFC 4162: + Addition of SEED Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_DSS_WITH_SEED_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_SEED_CBC_SHA' + algorithm."; + reference + "RFC 4162: + Addition of SEED Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_RSA_WITH_SEED_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_SEED_CBC_SHA' + algorithm."; + reference + "RFC 4162: + Addition of SEED Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_SEED_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_SEED_CBC_SHA' + algorithm."; + reference + "RFC 4162: + Addition of SEED Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_SEED_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_SEED_CBC_SHA' + algorithm."; + reference + "RFC 4162: + Addition of SEED Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_anon_WITH_SEED_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_SEED_CBC_SHA' + algorithm."; + reference + "RFC 4162: + Addition of SEED Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_RSA_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 { + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 { + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DH_RSA_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DH_RSA_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DH_DSS_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DH_DSS_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DH_anon_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_DH_anon_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5288: + AES Galois Counter Mode (GCM) Cipher Suites for TLS"; + } + enum TLS_PSK_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_PSK_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 { + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 { + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_PSK_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_PSK_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_256_CBC_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_PSK_WITH_NULL_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_NULL_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_PSK_WITH_NULL_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_NULL_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_256_CBC_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_DHE_PSK_WITH_NULL_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_NULL_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_DHE_PSK_WITH_NULL_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_NULL_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_AES_256_CBC_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_PSK_WITH_NULL_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_NULL_SHA256' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_PSK_WITH_NULL_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_NULL_SHA384' + algorithm."; + reference + "RFC 5487: + Pre-Shared Key Cipher Suites for TLS with SHA-256/384 + and AES Galois Counter Mode"; + } + enum TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256' + algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256' algorithm."; + reference + "RFC 5932: + Camellia Cipher Suites for TLS"; + } + enum TLS_SM4_GCM_SM3 { + status deprecated; + description + "Enumeration for the 'TLS_SM4_GCM_SM3' algorithm."; + reference + "RFC 8998: + ShangMi (SM) Cipher Suites for TLS 1.3"; + } + enum TLS_SM4_CCM_SM3 { + status deprecated; + description + "Enumeration for the 'TLS_SM4_CCM_SM3' algorithm."; + reference + "RFC 8998: + ShangMi (SM) Cipher Suites for TLS 1.3"; + } + enum TLS_EMPTY_RENEGOTIATION_INFO_SCSV { + status deprecated; + description + "Enumeration for the 'TLS_EMPTY_RENEGOTIATION_INFO_SCSV' + algorithm."; + reference + "RFC 5746: + Transport Layer Security (TLS) Renegotiation Indication + Extension"; + } + enum TLS_AES_128_GCM_SHA256 { + description + "Enumeration for the 'TLS_AES_128_GCM_SHA256' algorithm."; + reference + "RFC 8446: + The Transport Layer Security (TLS) Protocol Version + 1.3"; + } + enum TLS_AES_256_GCM_SHA384 { + description + "Enumeration for the 'TLS_AES_256_GCM_SHA384' algorithm."; + reference + "RFC 8446: + The Transport Layer Security (TLS) Protocol Version + 1.3"; + } + enum TLS_CHACHA20_POLY1305_SHA256 { + description + "Enumeration for the 'TLS_CHACHA20_POLY1305_SHA256' + algorithm."; + reference + "RFC 8446: + The Transport Layer Security (TLS) Protocol Version + 1.3"; + } + enum TLS_AES_128_CCM_SHA256 { + description + "Enumeration for the 'TLS_AES_128_CCM_SHA256' algorithm."; + reference + "RFC 8446: + The Transport Layer Security (TLS) Protocol Version + 1.3"; + } + enum TLS_AES_128_CCM_8_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_AES_128_CCM_8_SHA256' + algorithm."; + reference + "RFC 8446: + The Transport Layer Security (TLS) Protocol Version 1.3 + IESG Action: + IESG Action 2018-08-16"; + } + enum TLS_AEGIS_256_SHA512 { + status deprecated; + description + "Enumeration for the 'TLS_AEGIS_256_SHA512' algorithm."; + reference + "draft-irtf-cfrg-aegis-aead-08: + The AEGIS Family of Authenticated Encryption + Algorithms"; + } + enum TLS_AEGIS_128L_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_AEGIS_128L_SHA256' algorithm."; + reference + "draft-irtf-cfrg-aegis-aead-08: + The AEGIS Family of Authenticated Encryption + Algorithms"; + } + enum TLS_FALLBACK_SCSV { + status deprecated; + description + "Enumeration for the 'TLS_FALLBACK_SCSV' algorithm."; + reference + "RFC 7507: + TLS Fallback Signaling Cipher Suite Value (SCSV) for + Preventing Protocol Downgrade Attacks"; + } + enum TLS_ECDH_ECDSA_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_ECDSA_WITH_NULL_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_ECDSA_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_ECDSA_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and Earlier + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_ECDSA_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_NULL_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_ECDSA_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and Earlier + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA' algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_RSA_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_NULL_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_RSA_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and Earlier + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_RSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_RSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_RSA_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_RSA_WITH_NULL_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_RSA_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_RSA_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and Earlier + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_anon_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_anon_WITH_NULL_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_anon_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_anon_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and Earlier + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_anon_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_anon_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_ECDH_anon_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_anon_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 8422: + Elliptic Curve Cryptography (ECC) Cipher Suites for + Transport Layer Security (TLS) Versions 1.2 and + Earlier"; + } + enum TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA' algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the + 'TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA' algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5054: + Using the Secure Remote Password (SRP) Protocol for TLS + Authentication"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256' + algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384' + algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 { + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 { + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384' algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 5289: + TLS Elliptic Curve Cipher Suites with SHA-256/384 and + AES Galois Counter Mode (GCM)"; + } + enum TLS_ECDHE_PSK_WITH_RC4_128_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_RC4_128_SHA' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS) + RFC 6347: + Datagram Transport Layer Security Version 1.2"; + } + enum TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256' algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384' algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_NULL_SHA { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_NULL_SHA' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_NULL_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_NULL_SHA256' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_NULL_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_PSK_WITH_NULL_SHA384' + algorithm."; + reference + "RFC 5489: + ECDHE_PSK Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DH_anon_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_PSK_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_PSK_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_PSK_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_PSK_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6209: + Addition of the ARIA Cipher Suites to Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384' + algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384' algorithm."; + reference + "RFC 6367: + Addition of the Camellia Cipher Suites to Transport + Layer Security (TLS)"; + } + enum TLS_RSA_WITH_AES_128_CCM { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_128_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_WITH_AES_256_CCM { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_256_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_RSA_WITH_AES_128_CCM { + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_128_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_RSA_WITH_AES_256_CCM { + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_256_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_WITH_AES_128_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_128_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_RSA_WITH_AES_256_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_RSA_WITH_AES_256_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_RSA_WITH_AES_128_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_128_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_RSA_WITH_AES_256_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_DHE_RSA_WITH_AES_256_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_WITH_AES_128_CCM { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_128_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_WITH_AES_256_CCM { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_256_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_PSK_WITH_AES_128_CCM { + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_128_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_DHE_PSK_WITH_AES_256_CCM { + description + "Enumeration for the 'TLS_DHE_PSK_WITH_AES_256_CCM' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_WITH_AES_128_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_128_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_WITH_AES_256_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_WITH_AES_256_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_DHE_WITH_AES_128_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_DHE_WITH_AES_128_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_PSK_DHE_WITH_AES_256_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_PSK_DHE_WITH_AES_256_CCM_8' + algorithm."; + reference + "RFC 6655: + AES-CCM Cipher Suites for Transport Layer Security + (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_128_CCM { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_AES_128_CCM' + algorithm."; + reference + "RFC 7251: + AES-CCM Elliptic Curve Cryptography (ECC) Cipher Suites + for TLS"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_256_CCM { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_AES_256_CCM' + algorithm."; + reference + "RFC 7251: + AES-CCM Elliptic Curve Cryptography (ECC) Cipher Suites + for TLS"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8' + algorithm."; + reference + "RFC 7251: + AES-CCM Elliptic Curve Cryptography (ECC) Cipher Suites + for TLS"; + } + enum TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 { + status deprecated; + description + "Enumeration for the 'TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8' + algorithm."; + reference + "RFC 7251: + AES-CCM Elliptic Curve Cryptography (ECC) Cipher Suites + for TLS"; + } + enum TLS_ECCPWD_WITH_AES_128_GCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_ECCPWD_WITH_AES_128_GCM_SHA256' + algorithm."; + reference + "RFC 8492: + Secure Password Ciphersuites for Transport Layer + Security (TLS)"; + } + enum TLS_ECCPWD_WITH_AES_256_GCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_ECCPWD_WITH_AES_256_GCM_SHA384' + algorithm."; + reference + "RFC 8492: + Secure Password Ciphersuites for Transport Layer + Security (TLS)"; + } + enum TLS_ECCPWD_WITH_AES_128_CCM_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_ECCPWD_WITH_AES_128_CCM_SHA256' + algorithm."; + reference + "RFC 8492: + Secure Password Ciphersuites for Transport Layer + Security (TLS)"; + } + enum TLS_ECCPWD_WITH_AES_256_CCM_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_ECCPWD_WITH_AES_256_CCM_SHA384' + algorithm."; + reference + "RFC 8492: + Secure Password Ciphersuites for Transport Layer + Security (TLS)"; + } + enum TLS_SHA256_SHA256 { + status deprecated; + description + "Enumeration for the 'TLS_SHA256_SHA256' algorithm."; + reference + "RFC 9150: + TLS 1.3 Authentication and Integrity-Only Cipher + Suites"; + } + enum TLS_SHA384_SHA384 { + status deprecated; + description + "Enumeration for the 'TLS_SHA384_SHA384' algorithm."; + reference + "RFC 9150: + TLS 1.3 Authentication and Integrity-Only Cipher + Suites"; + } + enum TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC { + status deprecated; + description + "Enumeration for the + 'TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC' + algorithm."; + reference + "RFC 9189: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.2"; + } + enum TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC { + status deprecated; + description + "Enumeration for the + 'TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC' algorithm."; + reference + "RFC 9189: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.2"; + } + enum TLS_GOSTR341112_256_WITH_28147_CNT_IMIT { + status deprecated; + description + "Enumeration for the + 'TLS_GOSTR341112_256_WITH_28147_CNT_IMIT' algorithm."; + reference + "RFC 9189: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.2"; + } + enum TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L { + status deprecated; + description + "Enumeration for the + 'TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L' algorithm."; + reference + "RFC 9367: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.3"; + } + enum TLS_GOSTR341112_256_WITH_MAGMA_MGM_L { + status deprecated; + description + "Enumeration for the 'TLS_GOSTR341112_256_WITH_MAGMA_MGM_L' + algorithm."; + reference + "RFC 9367: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.3"; + } + enum TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S { + status deprecated; + description + "Enumeration for the + 'TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S' algorithm."; + reference + "RFC 9367: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.3"; + } + enum TLS_GOSTR341112_256_WITH_MAGMA_MGM_S { + status deprecated; + description + "Enumeration for the 'TLS_GOSTR341112_256_WITH_MAGMA_MGM_S' + algorithm."; + reference + "RFC 9367: + GOST Cipher Suites for Transport Layer Security (TLS) + Protocol Version 1.3"; + } + enum TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256' algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256' + algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 { + description + "Enumeration for the + 'TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256' algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_PSK_WITH_CHACHA20_POLY1305_SHA256' algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256' algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 { + description + "Enumeration for the + 'TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256' algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256' algorithm."; + reference + "RFC 7905: + ChaCha20-Poly1305 Cipher Suites for Transport Layer + Security (TLS)"; + } + enum TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256' algorithm."; + reference + "RFC 8442: + ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for TLS + 1.2 and DTLS 1.2"; + } + enum TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 { + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384' algorithm."; + reference + "RFC 8442: + ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for TLS + 1.2 and DTLS 1.2"; + } + enum TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 { + status deprecated; + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256' algorithm."; + reference + "RFC 8442: + ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for TLS + 1.2 and DTLS 1.2"; + } + enum TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 { + description + "Enumeration for the + 'TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256' algorithm."; + reference + "RFC 8442: + ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for TLS + 1.2 and DTLS 1.2"; + } + } + description + "An enumeration for TLS cipher-suite algorithms."; + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang b/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang index e1a0dbed1..16c0bf223 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang @@ -18,7 +18,7 @@ module iana-tls-profile { description "This module contains YANG definition for the (D)TLS profile. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -28,8 +28,16 @@ module iana-tls-profile { Relating to IETF Documents (http://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; + All revisions of IETF and IANA published modules can be found + at the YANG Parameters registry + (https://www.iana.org/assignments/yang-parameters). + + The initial version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices. + + // RFC Ed.: replace the IANA_TLS-PROFILE_URL and remove this note + The latest version of this YANG module is available at + ."; revision 2022-10-10 { description @@ -45,7 +53,6 @@ module iana-tls-profile { "Extension type in the TLS ExtensionType Values registry as defined in Section 7 of RFC8447."; } - typedef supported-group { type uint16; description @@ -79,21 +86,13 @@ module iana-tls-profile { description "Certificate compression algorithm in TLS Certificate Compression Algorithm IDs registry as defined in - Section 7.3 of ietf-tls-certificate-compression"; + Section 7.3 of RFC8879."; } typedef cipher-algorithm { - type uint8; - description - "AEAD encryption algorithm in TLS Cipher Suites registry - as discussed in Section 11 of RFC8446."; - } - - typedef hash-algorithm { - type uint8; + type uint16; description - "Hash algorithm used with HMAC-based Extract-and-Expand Key - Derivation Function (HKDF) in TLS Cipher Suites registry + "Cipher suite in TLS Cipher Suites registry as discussed in Section 11 of RFC8446."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-common@2023-11-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-common@2023-11-13.yang index a87b712ca..055e35b91 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-common@2023-11-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-common@2023-11-13.yang @@ -47,10 +47,10 @@ module ietf-ac-common { Author: Bo Wu "; description - "This YANG module defines a YANG model common to attachment - circuits. + "This YANG module defines a common attachment circuit (AC) + YANG model. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -60,14 +60,32 @@ module ietf-ac-common { Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC xxx; see the + This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision 2023-11-13 { description "Initial revision."; reference - "RFC xxxx: A Common YANG Data Model for Attachment Circuits"; + "RFC XXXX: A Common YANG Data Model for Attachment Circuits"; + } + + /****************************Features************************/ + + feature layer2-ac { + description + "Indicates support of Layer 2 ACs."; + } + + feature layer3-ac { + description + "Indicates support of Layer 3 ACs."; + } + + feature server-assigned-reference { + description + "This feature indicates support for server-generated references + and use of such references to access related resources."; } /****************************Identities************************/ @@ -195,6 +213,155 @@ module ietf-ac-common { "Identifies the secondary attachment circuit."; } + /* BGP Capability Identities. */ + + identity bgp-capability { + description + "Base identity for a BGP capability."; + reference + "RFC 5492: Capabilities Advertisement with BGP-4"; + } + + identity mp-bgp { + base bgp-capability; + description + "Multi-protocol extensions to BGP."; + reference + "RFC 4760: Multiprotocol Extentions for BGP-4"; + } + + identity route-refresh { + base bgp-capability; + description + "Route refresh capability."; + reference + "RFC 2918: Route Refresh Capability for BGP-4."; + } + + identity graceful-restart { + base bgp-capability; + description + "Graceful restart capability."; + reference + "RFC 4724: Graceful Restart Mechanism for BGP"; + } + + identity add-paths { + base bgp-capability; + description + "A capability that allows the advertisement of multiple + paths for the same address prefix without the new paths + implicitly replacing any previous ones."; + reference + "RFC 7911: Advertisement of Multiple Paths in BGP"; + } + + identity ebgp-role { + base bgp-capability; + description + "A capability that allows the advertisement of the BGP + role when establising a session."; + reference + "RFC 9234: Route Leak Prevention and Detection Using + Roles in UPDATE and OPEN Messages, Section 4.1"; + } + + // AC Type + + identity role { + description + "Base identity for the network role of an AC."; + } + + identity uni { + base role; + description + "User-to-Network Interface (UNI)."; + } + + identity nni { + base role; + description + "Network-to-Network Interface (NNI)."; + } + + identity public-nni { + base role; + description + "Public peering."; + } + + // More Admin status types + + identity awaiting-validation { + base vpn-common:administrative-status; + description + "This administrative status reflects that a request is + pending an adiministrator approval."; + } + + identity awaiting-processing { + base vpn-common:administrative-status; + description + "This administrative status reflects that a request was + approved and validated, but is awaiting more processing + before activation."; + } + + identity admin-prohibited { + base vpn-common:administrative-status; + description + "This administrative status reflects that a request cannot + be handled because of administrative policies."; + } + + identity rejected { + base vpn-common:administrative-status; + description + "This administrative status reflects that a request was + rejected because, e.g., there are no sufficient resources + or other reasons not covered by the other status types."; + } + + identity bgp-role { + description + "Used to indicate BGP role when establishing a BGP session."; + reference + "RFC 9234: Route Leak Prevention and Detection Using + Roles in UPDATE and OPEN Messages, Section 4"; + } + + identity provider { + base bgp-role; + description + "The local AS is a transit provider of the remote AS."; + } + + identity client { + base bgp-role; + description + "The local AS is a transit provider of the remote AS."; + } + + identity rs { + base bgp-role; + description + "The local AS is a Route Server (RS)."; + } + + identity rs-client { + base bgp-role; + description + "The local AS is a client of an RS and the RS is the + remote AS."; + } + + identity peer { + base bgp-role; + description + "The local and remote ASes have a peering relationship."; + } + /****************************Typedefs************************/ typedef predefined-next-hop { @@ -215,29 +382,63 @@ module ietf-ac-common { } /************************Reusable groupings********************/ + /**** Service Status ****/ + + grouping service-status { + description + "Service status grouping."; + container status { + description + "Service status."; + container admin-status { + description + "Administrative service status."; + leaf status { + type identityref { + base vpn-common:administrative-status; + } + description + "Administrative service status."; + } + leaf last-change { + type yang:date-and-time; + config false; + description + "Indicates the actual date and time of the service + status change."; + } + } + container oper-status { + config false; + description + "Operational service status."; + uses vpn-common:oper-status-timestamp; + } + } + } /**** A set of profiles ****/ grouping ac-profile-cfg { description "Grouping for AC profile configuration."; - container valid-provider-identifiers { - description - "Container for valid provider profile identifiers. - The profiles only have significance within the service - provider's administrative domain."; - list encryption-profile-identifier { - key "id"; + container valid-provider-identifiers { description - "List of encryption profile identifiers."; - leaf id { - type string; + "Container for valid provider profile identifiers. + The profiles only have significance within the service + provider's administrative domain."; + list encryption-profile-identifier { + key "id"; description - "Identification of the encryption profile to be used."; + "List of encryption profile identifiers."; + leaf id { + type string; + description + "Identification of the encryption profile to be used."; + } } - } - list qos-profile-identifier { - key "id"; + list qos-profile-identifier { + key "id"; description "List of QoS profile identifiers."; leaf id { @@ -246,14 +447,15 @@ module ietf-ac-common { "Identification of the QoS profile to be used."; } } - list bfd-profile-identifier { + list failure-detection-profile-identifier { key "id"; description "List of BFD profile identifiers."; leaf id { type string; description - "Identification of the BFD profile to be used."; + "Identification of the a failure detection (e.g., BFD) + profile to be used."; } } list forwarding-profile-identifier { @@ -302,14 +504,14 @@ module ietf-ac-common { type yang:date-and-time; config false; description - "Indciates the actual date and time when the service + "Indicates the actual date and time when the service actually was enabled."; } leaf actual-stop { type yang:date-and-time; config false; description - "Indciates the actual date and time when the service + "Indicates the actual date and time when the service actually was disabled."; } } @@ -335,7 +537,6 @@ module ietf-ac-common { "VLAN identifier."; } } - // priority-tagged grouping priority-tagged { @@ -363,14 +564,16 @@ module ietf-ac-common { "Tag type."; } leaf svlan-id { - type uint16; - mandatory true; + type uint16 { + range "1..4094"; + } description "Service VLAN (S-VLAN) identifier."; } leaf cvlan-id { - type uint16; - mandatory true; + type uint16 { + range "1..4094"; + } description "Customer VLAN (C-VLAN) identifier."; } @@ -427,7 +630,6 @@ module ietf-ac-common { "VXLAN termination parameters."; leaf vni-id { type uint32; - mandatory true; description "VXLAN Network Identifier (VNI)."; } @@ -459,7 +661,7 @@ module ietf-ac-common { "Selects the tunnel termination type for an AC."; } container pseudowire { - when "derived-from-or-self(../type, 'pseudowire')" { + when "derived-from-or-self(../type, 'ac-common:pseudowire')" { description "Only applies when the Layer 2 service type is 'pseudowire'."; @@ -469,7 +671,7 @@ module ietf-ac-common { uses pseudowire; } container vpls { - when "derived-from-or-self(../type, 'vpls')" { + when "derived-from-or-self(../type, 'ac-common:vpls')" { description "Only applies when the Layer 2 service type is 'vpls'."; } @@ -478,7 +680,7 @@ module ietf-ac-common { uses vpls; } container vxlan { - when "derived-from-or-self(../type, 'vxlan')" { + when "derived-from-or-self(../type, 'ac-common:vxlan')" { description "Only applies when the Layer 2 service type is 'vxlan'."; } @@ -506,9 +708,9 @@ module ietf-ac-common { type identityref { base address-allocation-type; } - must "not(derived-from-or-self(current(), 'slaac') or " - + "derived-from-or-self(current(), " - + "'provider-dhcp-slaac'))" { + must "not(derived-from-or-self(current(), 'ac-common:slaac') " + + "or derived-from-or-self(current(), " + + "'ac-common:provider-dhcp-slaac'))" { error-message "SLAAC is only applicable to IPv6."; } description @@ -537,6 +739,7 @@ module ietf-ac-common { "Defines how IPv6 addresses are allocated to the peer site."; } } + // Basic parameters for IPv4 connection grouping ipv4-connection-basic { @@ -916,13 +1119,13 @@ module ietf-ac-common { container authentication { description "Container for BGP authentication parameters."; - leaf enable { + leaf enabled { type boolean; description "Enables or disables authentication."; } container keying-material { - when "../enable = 'true'"; + when "../enabled = 'true'"; description "Container for describing how a BGP routing session is to be secured on an AC."; @@ -995,13 +1198,13 @@ module ietf-ac-common { container authentication { description "Container for OSPF authentication parameters."; - leaf enable { + leaf enabled { type boolean; description "Enables or disables authentication."; } container keying-material { - when "../enable = 'true'"; + when "../enabled = 'true'"; description "Container for describing how an OSPF session is to be secured for this AC."; @@ -1049,13 +1252,13 @@ module ietf-ac-common { container authentication { description "Container for IS-IS authentication parameters."; - leaf enable { + leaf enabled { type boolean; description "Enables or disables authentication."; } container keying-material { - when "../enable = 'true'"; + when "../enabled = 'true'"; description "Container for describing how an IS-IS session is secured over an AC."; @@ -1103,13 +1306,13 @@ module ietf-ac-common { container authentication { description "Container for RIP authentication parameters."; - leaf enable { + leaf enabled { type boolean; description "Enables or disables authentication."; } container keying-material { - when "../enable = 'true'"; + when "../enabled = 'true'"; description "Container for describing how a RIP session is to be secured on this AC."; @@ -1154,7 +1357,6 @@ module ietf-ac-common { "Identifies a BGP peer-group configured on the local system."; leaf local-as { type inet:as-number; - config false; description "Indicates a local AS Number (ASN). This ASN is exposed to a customer so that it knows which ASN to use @@ -1175,16 +1377,26 @@ module ietf-ac-common { 'dual-stack' means that both IPv4 and IPv6 will be activated."; } + leaf role { + type identityref { + base ac-common:bgp-role; + } + description + "Specifies the BGP role (provider, customer, peer, etc.)."; + reference + "RFC 9234: Route Leak Prevention and Detection Using + Roles in UPDATE and OPEN Messages, Section 4"; + } } grouping bgp-peer-group-with-name { description "Identifies a BGP peer-group configured on the local system - - identified by a peer-group name"; + identified by a peer-group name."; leaf name { type string; description - "Name of the BGP peer-group"; + "Name of the BGP peer-group."; } uses bgp-peer-group-without-name; } @@ -1245,7 +1457,7 @@ module ietf-ac-common { leaf lan { type inet:ipv4-prefix; description - "LAN prefixes."; + "LAN prefix."; } leaf lan-tag { type string; @@ -1279,7 +1491,7 @@ module ietf-ac-common { description "List of LAN prefixes for the site."; uses ipv4-static-rtg-entry; - uses vpn-common:service-status; + uses ac-common:service-status; } } @@ -1322,15 +1534,15 @@ module ietf-ac-common { description "List of LAN prefixes for the site."; uses ipv6-static-rtg-entry; - uses vpn-common:service-status; + uses ac-common:service-status; } } - // OAM: maintain or remove? + // OAM grouping bfd { description - "Container for BFD."; + "A grouping for basic BFD."; leaf holdtime { type uint32; units "milliseconds"; @@ -1347,6 +1559,30 @@ module ietf-ac-common { } } + // redundancy + + grouping redundancy-group { + description + "A grouping for redundancy group."; + list group { + key "group-id"; + description + "List of group-ids."; + leaf group-id { + type string; + description + "Indicates the group-id to which the AC belongs."; + } + leaf precedence { + type identityref { + base ac-common:precedence-type; + } + description + "Defines redundancy of an AC."; + } + } + } + // QoS grouping bandwidth-parameters { @@ -1401,7 +1637,7 @@ module ietf-ac-common { } } - grouping bandwidth-per-type{ + grouping bandwidth-per-type { description "Grouping for bandwidth per type."; list bandwidth { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-glue@2023-11-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-glue@2023-11-13.yang index 745b27ddb..5489dd2a2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-glue@2023-11-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-glue@2023-11-13.yang @@ -27,13 +27,15 @@ module ietf-ac-glue { import ietf-ac-svc { prefix ac-svc; reference - "RFC SSSS: YANG Service Data Models for Attachment Circuits"; + "RFC SSSS: YANG Data Models for Bearers and 'Attachment + Circuits'-as-a-Service (ACaaS)"; } import ietf-ac-ntw { prefix ac-ntw; reference "RFC NNNN: A Network YANG Data Model for Attachment Circuits"; } + organization "IETF OPSAWG (Operations and Management Area Working Group)"; contact @@ -52,7 +54,7 @@ module ietf-ac-glue { "This YANG module defines a YANG model for augmenting the LxSM and the LxNM with attachment circuit references. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -85,8 +87,8 @@ module ietf-ac-glue { leaf ac-svc-ref { type ac-svc:attachment-circuit-reference; description - "A reference to the AC as exposed at the service that - was provisionned using the ACaaS module."; + "A reference to the AC as exposed at the service that was + provisioned using the ACaaS module."; } } @@ -96,14 +98,14 @@ module ietf-ac-glue { leaf ac-svc-ref { type ac-svc:attachment-circuit-reference; description - "A reference to the AC as exposed at the service that - was provisionned using the ACaaS module."; + "A reference to the AC as exposed at the service that was + provisioned using the ACaaS module."; } - leaf ac-ntw-ref { - type ac-ntw:attachment-circuit-reference; + container ac-ntw-ref { description - "A reference to the AC that was provisionned - using the AC network module."; + "A reference to the AC that was provisioned using the AC + network module."; + uses ac-ntw:attachment-circuit-reference; } } @@ -113,8 +115,8 @@ module ietf-ac-glue { leaf-list ac-svc-ref { type ac-svc:attachment-circuit-reference; description - "A reference to the AC as exposed at the service that - was provisionned using the ACaaS module."; + "A reference to the AC as exposed at the service that was + provisioned using the ACaaS module."; } } @@ -124,14 +126,15 @@ module ietf-ac-glue { leaf-list ac-svc-ref { type ac-svc:attachment-circuit-reference; description - "A reference to the AC as exposed at the service that - was provisionned using the ACaaS module."; + "A reference to the AC as exposed at the service that was + provisioned using the ACaaS module."; } - leaf-list ac-ntw-ref { - type ac-ntw:attachment-circuit-reference; + list ac-ntw-ref { + key "ac-ref"; description - "A reference to the AC that was provisionned - using the AC network module."; + "A reference to the AC that was provisioned using the AC + network module."; + uses ac-ntw:attachment-circuit-reference; } } @@ -139,9 +142,10 @@ module ietf-ac-glue { + "/l2vpn-svc:sites/l2vpn-svc:site" + "/l2vpn-svc:site-network-accesses" { description - "Augments VPN site network access with AC provisioning - details."; - + "Augments VPN site network accesses with AC provisioning + details. Concretely, it binds a site to a set of + attachment circuits with Layer 2 properties that were + created using the ACaaS module."; uses ac-svc-ref; } @@ -151,9 +155,13 @@ module ietf-ac-glue { + "/l2vpn-svc:site-network-access" { if-feature "ac-glue"; description - "Augments VPN site network access with a reference to - a service AC."; + "Augments VPN site network access with AC provisioning + details. Concretely, it glues a 'site-network-access' + to an attachment circuit with Layer 2 properties that was + created using the ACaaS module. + The ACaaS information takes precedence over any overlapping + information that is also provided for a site network access."; uses single-ac-svc-ref; } @@ -161,8 +169,10 @@ module ietf-ac-glue { + "/l3vpn-svc:sites/l3vpn-svc:site" + "/l3vpn-svc:site-network-accesses" { description - "Augments VPN network access with AC provisioning details."; - + "Augments VPN site network accesses with AC provisioning + details. Concretely, it binds a site to a set of attachment + circuits with both Layers 2 and 3 properties that were + created using the ACaaS module."; uses ac-svc-ref; } @@ -172,9 +182,13 @@ module ietf-ac-glue { + "/l3vpn-svc:site-network-access" { if-feature "ac-glue"; description - "Augments VPN site network access with a reference to - a service AC."; + "Augments VPN site network access with AC provisioning + details. Concretely, it glues a 'site-network-access' to an + attachment circuit with both Layer 2 and Layer 3 properties + that was created using the ACaaS module. + The ACaaS information takes precedence over any overlapping + information that is also provided for a site network access."; uses single-ac-svc-ref; } @@ -182,8 +196,12 @@ module ietf-ac-glue { + "/l2nm:vpn-nodes/l2nm:vpn-node" + "/l2nm:vpn-network-accesses" { description - "Augments VPN network access with AC provisioning details."; - + "Augments VPN network accesses with both service and network + AC provisioning details. Concretely, it binds a site to (1) + a set of attachment circuits with Layer 2 properties that were + created using the ACaaS module and (2) a set of attachment + circuits with Layer 2 properties that were provisioned using + the AC network model."; uses ac-svc-ntw-ref; } @@ -194,8 +212,15 @@ module ietf-ac-glue { if-feature "ac-glue"; description "Augments VPN network access with service and network - references to an AC."; + references to an AC. Concretely, it glues a VPN network + access to (1) an attachment circuit with Layer 2 properties + that was created using the ACaaS module and (2) an attachment + circuit with Layer 2 properties that was created using the AC + network module. + The AC service and network information takes precedence over + any overlapping information that is also provided for a VPN + network access."; uses single-ac-svc-ntw-ref; } @@ -203,8 +228,12 @@ module ietf-ac-glue { + "/l3nm:vpn-nodes/l3nm:vpn-node" + "/l3nm:vpn-network-accesses" { description - "Augments VPN network access with AC provisioning details."; - + "Augments VPN network accesses with both service and network + AC provisioning details. Concretely, it binds a site to (1) + a set of attachment circuits with both Layer 2 and Layer 3 + properties that were created using the ACaaS module and (2) + a set of attachment circuits with both Layer 2 and Layer 3 + properties that were provisioned using the AC network model."; uses ac-svc-ntw-ref; } @@ -215,8 +244,15 @@ module ietf-ac-glue { if-feature "ac-glue"; description "Augments VPN network access with service and network - references to an AC."; + references to an AC. Concretely, it glues a VPN network + access to (1) an attachment circuit with both Layer 2 and + Layer 3 properties that was created using the ACaaS module + and (2) an attachment circuit with both Layer 2 and Layer 3 + properties that was created using the AC network module. + The AC service and network information takes precedence over + any overlapping information that is also provided for a VPN + network access."; uses single-ac-svc-ntw-ref; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2023-11-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang similarity index 82% rename from experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2023-11-13.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang index 5ca3c3941..7d23dae9d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2023-11-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang @@ -49,7 +49,7 @@ module ietf-ac-ntw { import ietf-sap-ntw { prefix sap; reference - "RFC SSSS: A YANG Network Model for Service Attachment + "RFC 9408: A YANG Network Model for Service Attachment Points (SAPs)"; } import ietf-ac-common { @@ -60,8 +60,10 @@ module ietf-ac-ntw { import ietf-ac-svc { prefix ac-svc; reference - "RFC SSSS: YANG Service Data Models for Attachment Circuits"; + "RFC SSSS: YANG Data Models for Bearers and 'Attachment + Circuits'-as-a-Service (ACaaS)"; } + organization "IETF OPSAWG (Operations and Management Area Working Group)"; contact @@ -82,7 +84,7 @@ module ietf-ac-ntw { "This YANG module defines a YANG network model for the management of attachment circuits. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -95,96 +97,141 @@ module ietf-ac-ntw { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-11-13 { + revision 2024-05-15 { description "Initial revision."; reference "RFC XXXX: A YANG Network Data Model for Attachment Circuits"; } - // L2 connection groupings + // References - /* A set of typedefs to ease referencing cross-modules */ + /* A set of groupings to ease referencing cross-modules */ - typedef attachment-circuit-reference { - type leafref { - path "/nw:networks/nw:network/nw:node/ac-ntw:ac/ac-ntw:name"; - } + grouping attachment-circuit-reference { description - "Defines a reference to an attachment circuit. The reference - be used also by other modules."; + "This grouping can be used to reference an attachment circuit + in a specific node."; + leaf ac-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]/nw:node[nw:node-id=current()/../" + + "node-ref]/ac-ntw:ac/ac-ntw:name"; + require-instance false; + } + description + "A type for an absolute reference to an attachment circuit."; + } + uses nw:node-ref; } - typedef ac-profile-reference { - type leafref { - path "/nw:networks/nw:network/ac-profile/name"; - } + grouping ac-profile-reference { description - "Defines a reference to an attachment circuit profile that - can be used, including, by other modules."; + "This grouping can be used to reference an attachment circuit + profile."; + leaf ac-profile-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]/ac-ntw:ac-profile/ac-ntw:name"; + require-instance false; + } + description + "A type for an absolute reference to an attachment circuit."; + } + uses nw:network-ref; } - typedef encryption-profile-reference { - type leafref { - path - "/nw:networks/nw:network" + grouping encryption-profile-reference { + description + "This grouping can be used to reference encryption + profile."; + leaf encryption-profile-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]" + "/ac-ntw:specific-provisioning-profiles" + "/ac-ntw:valid-provider-identifiers" + "/ac-ntw:encryption-profile-identifier/ac-ntw:id"; + require-instance false; + } + description + "A type for an absolute reference to an encryption profile."; } - description - "Defines a type to an encryption profile for referencing - purposes."; + uses nw:network-ref; } - typedef qos-profile-reference { - type leafref { - path - "/nw:networks/nw:network" + grouping qos-profile-reference { + description + "This grouping can be used to reference a QoS profile."; + leaf qos-profile-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]" + "/ac-ntw:specific-provisioning-profiles" + "/ac-ntw:valid-provider-identifiers" + "/ac-ntw:qos-profile-identifier/ac-ntw:id"; + require-instance false; + } + description + "Type for an absolute reference to a QoS profile."; } - description - "Defines a type to a QoS profile for referencing purposes."; + uses nw:network-ref; } - typedef bfd-profile-reference { - type leafref { - path - "/nw:networks/nw:network" + grouping failure-detection-profile-reference { + description + "This grouping can be used to reference a failure detection + profile."; + leaf failure-detection-profile-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]" + "/ac-ntw:specific-provisioning-profiles" + "/ac-ntw:valid-provider-identifiers" - + "/ac-ntw:bfd-profile-identifier/ac-ntw:id"; + + "/ac-ntw:failure-detection-profile-identifier/ac-ntw:id"; + require-instance false; + } + description + "Type for an absolute reference to a failure detection + profile."; } - description - "Defines a type to a BFD profile for referencing purposes."; + uses nw:network-ref; } - typedef forwarding-profile-reference { - type leafref { - path - "/nw:networks/nw:network" + grouping forwarding-profile-reference { + description + "This grouping can be used to reference a forwarding profile."; + leaf forwarding-profile-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]" + "/ac-ntw:specific-provisioning-profiles" + "/ac-ntw:valid-provider-identifiers" + "/ac-ntw:forwarding-profile-identifier/ac-ntw:id"; + require-instance false; + } + description + "A type for an absolute reference to a forwarding profile."; } - description - "Defines a type to a forwarding profile for referencing - purposes."; + uses nw:network-ref; } - typedef routing-profile-reference { - type leafref { - path - "/nw:networks/nw:network" + grouping routing-profile-reference { + description + "This grouping can be used to reference a routing profile."; + leaf routing-profile-ref { + type leafref { + path "/nw:networks/nw:network[nw:network-id=current()/../" + + "network-ref]" + "/ac-ntw:specific-provisioning-profiles" + "/ac-ntw:valid-provider-identifiers" + "/ac-ntw:routing-profile-identifier/ac-ntw:id"; + require-instance false; + } + description + "A type for an absolute reference to a routing profile."; } - description - "Defines a type to a routing profile for referencing - purposes."; + uses nw:network-ref; } // L2 conenction @@ -412,7 +459,7 @@ module ietf-ac-ntw { A reference may be a local bridge domain."; } leaf bearer-reference { - if-feature "vpn-common:bearer-reference"; + if-feature "ac-common:server-assigned-reference"; type string; description "This is an internal reference for the service provider to @@ -446,6 +493,7 @@ module ietf-ac-ntw { } // IPv4 connection groupings + grouping ipv4-connection { description "IPv4-specific parameters."; @@ -582,6 +630,7 @@ module ietf-ac-ntw { description "An IPv4 address of the customer side."; } + uses failure-detection-profile-reference; } } } @@ -723,6 +772,7 @@ module ietf-ac-ntw { description "An IPv6 address of the customer side."; } + uses failure-detection-profile-reference; } } } @@ -787,6 +837,13 @@ module ietf-ac-ntw { 'dual-stack' means that both IPv4 and IPv6 will be activated."; } + leaf role { + type identityref { + base ac-common:bgp-role; + } + description + "Specifies the BGP role (provider, customer, peer, etc.)."; + } leaf multihop { type uint8; description @@ -825,8 +882,8 @@ module ietf-ac-ntw { If set, the default routes are advertised to a peer."; } leaf site-of-origin { - when "../address-family = 'vpn-common:ipv4' " - + "or 'vpn-common:dual-stack'" { + when "derived-from-or-self(../address-family, " + + "'vpn-common:ipv4' or 'vpn-common:dual-stack')" { description "Only applies if IPv4 is activated."; } @@ -841,8 +898,8 @@ module ietf-ac-ntw { Section 7"; } leaf ipv6-site-of-origin { - when "../address-family = 'vpn-common:ipv6' " - + "or 'vpn-common:dual-stack'" { + when "derived-from-or-self(../address-family, " + + "'vpn-common:ipv6' or 'vpn-common:dual-stack')" { description "Only applies if IPv6 is activated."; } @@ -867,7 +924,7 @@ module ietf-ac-ntw { description "Indicates the address family."; } - leaf enable { + leaf enabled { type boolean; description "Enables the redistribution of connected routes."; @@ -968,6 +1025,81 @@ module ietf-ac-ntw { Section 4.2"; } } + list capability { + key "address-family"; + description + "Customized set of BGP capabilities per address family."; + leaf address-family { + type identityref { + base vpn-common:address-family; + } + description + "Indicates the address family."; + } + leaf name { + type identityref { + base ac-common:bgp-capability; + } + mandatory true; + description + "Indicates the name of BGP capability."; + } + } + } + + grouping bgp-base-peer-group { + description + "Grouping for a basic BGP peer group."; + leaf name { + type string; + description + "Name of the BGP peer-group"; + } + uses bgp-base; + } + + grouping bgp-base-peer-group-list { + description + "Grouping for a list of basic BGP peer groups."; + list peer-group { + key "name"; + description + "List of BGP peer groups uniquely identified by a name."; + uses bgp-base-peer-group; + } + } + + grouping bgp-peer-group { + description + "Grouping for BGP peer group."; + leaf name { + type string; + description + "Name of the BGP peer-group"; + } + leaf local-address { + type union { + type inet:ip-address; + type if:interface-ref; + } + description + "Sets the local IP address to use for the BGP + transport session. This may be expressed as either + an IP address or a reference to an interface."; + } + uses bgp-base; + uses ac-common:bgp-authentication; + } + + grouping bgp-peer-group-list { + description + "Grouping for a list of BGP peer groups."; + list peer-group { + key "name"; + description + "List of BGP peer groups uniquely identified by a name."; + uses bgp-peer-group; + } } // RIP base parameters @@ -1063,9 +1195,14 @@ module ietf-ac-ntw { description "Only applies when the protocol is BGP."; } + if-feature "vpn-common:rtg-bgp"; description "Configuration specific to BGP."; - uses bgp-base; + container peer-groups { + description + "Lists a set of BGP peer groups."; + uses bgp-base-peer-group-list; + } } container ospf { when "derived-from-or-self(../type, " @@ -1073,6 +1210,7 @@ module ietf-ac-ntw { description "Only applies when the protocol is OSPF."; } + if-feature "vpn-common:rtg-ospf"; description "Configuration specific to OSPF."; uses ac-common:ospf-basic; @@ -1084,6 +1222,14 @@ module ietf-ac-ntw { "Maximum number of allowed Link State Advertisements (LSAs) that the OSPF instance will accept."; } + leaf passive { + type boolean; + description + "Enables when set to true a passive interface. It is + active when set to false. A passive interface's prefix + will be advertised, but no neighbor adjacencies will be + formed on the interface."; + } } container isis { when "derived-from-or-self(../type, " @@ -1091,6 +1237,7 @@ module ietf-ac-ntw { description "Only applies when the protocol is IS-IS."; } + if-feature "vpn-common:rtg-isis"; description "Configuration specific to IS-IS."; uses ac-common:isis-basic; @@ -1105,26 +1252,23 @@ module ietf-ac-ntw { and Layer 3 VPNs"; } leaf metric { - type uint16; + type uint32 { + range "0 .. 16777215"; + } description "Metric of the AC. It is used in the routing state calculation and path selection."; } - leaf mode { - type enumeration { - enum active { - description - "The interface sends or receives IS-IS protocol - control packets."; - } - enum passive { - description - "Suppresses the sending of IS-IS updates through the - specified interface."; - } - } + leaf passive { + type boolean; description - "IS-IS interface mode type."; + "When set to false, the interface is active. In such + mode, the interface sends or receives IS-IS protocol + control packets. + + When set to true, the interface is passive. That is, + it suppresses the sending of IS-IS updates through the + specified interface."; } } container rip { @@ -1133,6 +1277,7 @@ module ietf-ac-ntw { description "Only applies when the protocol is RIP."; } + if-feature "vpn-common:rtg-rip"; description "Configuration specific to RIP routing."; uses rip-base; @@ -1144,10 +1289,11 @@ module ietf-ac-ntw { "Only applies when the protocol is the Virtual Router Redundancy Protocol (VRRP)."; } + if-feature "vpn-common:rtg-vrrp"; description "Configuration specific to VRRP."; reference - "RFC 5798: Virtual Router Redundancy Protocol (VRRP) + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6"; leaf address-family { type identityref { @@ -1166,6 +1312,7 @@ module ietf-ac-ntw { } } } + grouping routing { description "Defines routing protocols."; @@ -1185,15 +1332,11 @@ module ietf-ac-ntw { description "Type of routing protocol."; } - list routing-profiles { - key "id"; + list routing-profile { + key "routing-profile-ref"; description "Routing profiles."; - leaf id { - type routing-profile-reference; - description - "Routing profile to be used."; - } + uses routing-profile-reference; leaf type { type identityref { base vpn-common:ie-type; @@ -1214,45 +1357,35 @@ module ietf-ac-ntw { container cascaded-lan-prefixes { description "LAN prefixes from the customer."; - list ipv4-lan-prefixes { + list ipv4-lan-prefix { if-feature "vpn-common:ipv4"; key "lan next-hop"; description "List of LAN prefixes for the site."; uses ac-common:ipv4-static-rtg-entry; - leaf bfd-enable { - if-feature "vpn-common:bfd"; - type boolean; - description - "Enables BFD."; - } + uses bfd-routing; leaf preference { type uint32; description "Indicates the preference associated with the static route."; } - uses vpn-common:service-status; + uses ac-common:service-status; } - list ipv6-lan-prefixes { + list ipv6-lan-prefix { if-feature "vpn-common:ipv6"; key "lan next-hop"; description "List of LAN prefixes for the site."; - uses ac-common:ipv4-static-rtg-entry; - leaf bfd-enable { - if-feature "vpn-common:bfd"; - type boolean; - description - "Enables BFD."; - } + uses ac-common:ipv6-static-rtg-entry; + uses bfd-routing; leaf preference { type uint32; description "Indicates the preference associated with the static route."; } - uses vpn-common:service-status; + uses ac-common:service-status; } } } @@ -1262,34 +1395,13 @@ module ietf-ac-ntw { description "Only applies when the protocol is BGP."; } + if-feature "vpn-common:rtg-bgp"; description "Configuration specific to BGP."; container peer-groups { description "Configuration for BGP peer-groups"; - list peer-group { - key "name"; - description - "List of BGP peer-groups configured on the local - system - uniquely identified by peer-group name"; - leaf name { - type string; - description - "Name of the BGP peer-group"; - } - leaf local-address { - type union { - type inet:ip-address; - type if:interface-ref; - } - description - "Sets the local IP address to use for the BGP - transport session. This may be expressed as either - an IP address or a reference to an interface."; - } - uses bgp-base; - uses ac-common:bgp-authentication; - } + uses bgp-peer-group-list; } list neighbor { key "remote-address"; @@ -1320,8 +1432,9 @@ module ietf-ac-ntw { associated."; } uses bgp-base; + uses bfd-routing; uses ac-common:bgp-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } } container ospf { @@ -1330,6 +1443,7 @@ module ietf-ac-ntw { description "Only applies when the protocol is OSPF."; } + if-feature "vpn-common:rtg-ospf"; description "Configuration specific to OSPF."; uses ac-common:ospf-basic; @@ -1376,16 +1490,24 @@ module ietf-ac-ntw { "Maximum number of allowed Link State Advertisements (LSAs) that the OSPF instance will accept."; } + leaf passive { + type boolean; + description + "Enables when set to true a passive interface. It is + active when set to false. A passive interface's prefix + will be advertised, but no neighbor adjacencies will be + formed on the interface."; + } uses ac-common:ospf-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } container isis { when "derived-from-or-self(../type, " + "'vpn-common:isis-routing')" { description - "Only applies when the protocol is - IS-IS."; + "Only applies when the protocol is IS-IS."; } + if-feature "vpn-common:rtg-isis"; description "Configuration specific to IS-IS."; uses ac-common:isis-basic; @@ -1400,30 +1522,26 @@ module ietf-ac-ntw { Layer 3 VPNs"; } leaf metric { - type uint16; - description - "Metric of the PE-CE link. It is used in the routing - state calculation and path selection."; - } - leaf mode { - type enumeration { - enum active { - description - "The interface sends or receives - IS-IS protocol control packets."; - } - enum passive { - description - "Suppresses the sending of IS-IS - updates through the specified - interface."; - } + type uint32 { + range "0 .. 16777215"; } description - "IS-IS interface mode type."; + "Metric of the AC. It is used in the routing state + calculation and path selection."; + } + leaf passive { + type boolean; + description + "When set to false, the interface is active. In such + mode, the interface sends or receives IS-IS protocol + control packets. + + When set to true, the interface is passive. That is, + it suppresses the sending of IS-IS updates through the + specified interface."; } uses ac-common:isis-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } container rip { when "derived-from-or-self(../type, " @@ -1433,11 +1551,12 @@ module ietf-ac-ntw { For IPv4, the model assumes that RIP version 2 is used."; } + if-feature "vpn-common:rtg-rip"; description "Configuration specific to RIP routing."; uses rip-base; uses ac-common:rip-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } container vrrp { when "derived-from-or-self(../type, " @@ -1445,10 +1564,11 @@ module ietf-ac-ntw { description "Only applies when the protocol is the VRRP."; } + if-feature "vpn-common:rtg-vrrp"; description "Configuration specific to VRRP."; reference - "RFC 5798: Virtual Router Redundancy Protocol (VRRP) + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6"; leaf address-family { type identityref { @@ -1476,7 +1596,7 @@ module ietf-ac-ntw { "Virtual IP addresses for a single VRRP group."; reference - "RFC 5798: Virtual Router Redundancy Protocol (VRRP) + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6, Sections 1.2 and 1.3"; } @@ -1493,7 +1613,7 @@ module ietf-ac-ntw { "Controls whether the VRRP speaker should reply to ping requests."; } - uses vpn-common:service-status; + uses ac-common:service-status; } } } @@ -1551,7 +1671,6 @@ module ietf-ac-ntw { units "milliseconds"; description "Expected BFD holdtime. - The customer may impose some fixed values for the holdtime period if the provider allows the customer to use this function."; @@ -1561,6 +1680,23 @@ module ietf-ac-ntw { } } + grouping bfd-routing { + description + "Defines a basic BFD grouping for routing configuration."; + container bfd { + if-feature "vpn-common:bfd"; + description + "BFD control for this nighbor."; + leaf enabled { + type boolean; + description + "Enables BFD if set to true. BFD is disabled of set to + false."; + } + uses failure-detection-profile-reference; + } + } + // OAM grouping oam { @@ -1568,33 +1704,50 @@ module ietf-ac-ntw { "Defines the Operations, Administration, and Maintenance (OAM) mechanisms used."; container bfd { + if-feature "vpn-common:bfd"; description "Container for BFD."; - leaf profile { - type bfd-profile-reference; + list session { + key "dest-addr"; description - "Well-known service provider profile name."; - } - uses bfd; - container authentication { - presence "Enables BFD authentication"; - description - "Parameters for BFD authentication."; - leaf key-chain { - type key-chain:key-chain-ref; - description - "Name of the key chain."; - } - leaf meticulous { - type boolean; + "List of IP sessions."; + leaf dest-addr { + type inet:ip-address; + description + "IP address of the peer."; + } + leaf source-address { + type union { + type inet:ip-address; + type if:interface-ref; + } + description + "Sets the local IP address to use for the BFD + session. This may be expressed as either + an IP address or a reference to an interface."; + } + uses failure-detection-profile-reference; + uses bfd; + container authentication { + presence "Enables BFD authentication"; description - "Enables meticulous mode."; - reference - "RFC 5880: Bidirectional Forwarding Detection (BFD), - Section 6.7"; + "Parameters for BFD authentication."; + leaf key-chain { + type key-chain:key-chain-ref; + description + "Name of the key chain."; + } + leaf meticulous { + type boolean; + description + "Enables meticulous mode."; + reference + "RFC 5880: Bidirectional Forwarding Detection (BFD), + Section 6.7"; + } } + uses ac-common:service-status; } - uses vpn-common:service-status; } } @@ -1645,11 +1798,7 @@ module ietf-ac-ntw { description "Choice for the encryption profile."; case provider-profile { - leaf profile-name { - type encryption-profile-reference; - description - "Name of the provider's profile to be applied."; - } + uses encryption-profile-reference; } case customer-profile { leaf customer-key-chain { @@ -1667,17 +1816,6 @@ module ietf-ac-ntw { grouping ac-profile { description "Grouping for attachment circuit profiles."; - container l2-connection { - description - "Defines Layer 2 protocols and parameters that - are required to enable AC connectivity."; - //uses l2-connection; - } - container ip-connection { - description - "Defines IP connection parameters."; - //uses l3-connection; - } container routing-protocols { description "Defines routing protocols."; @@ -1694,7 +1832,8 @@ module ietf-ac-ntw { } } } - //AC network provisioning + + // AC network provisioning grouping ac { description @@ -1705,12 +1844,14 @@ module ietf-ac-ntw { "Associates a description with an AC."; } container l2-connection { + if-feature "ac-common:layer2-ac"; description "Defines Layer 2 protocols and parameters that are required to enable AC connectivity."; uses l2-connection-if-ref; } container ip-connection { + if-feature "ac-common:layer3-ac"; description "Defines IP connection parameters."; uses ip-connection; @@ -1748,14 +1889,10 @@ module ietf-ac-ntw { description "QoS profile configuration."; list qos-profile { - key "profile"; + key "qos-profile-ref"; description "Points to a QoS profile."; - leaf profile { - type qos-profile-reference; - description - "QoS profile to be used."; - } + uses qos-profile-reference; leaf direction { type identityref { base vpn-common:qos-profile-direction; @@ -1774,14 +1911,10 @@ module ietf-ac-ntw { description "ACL profile configuration."; list acl-profile { - key "profile"; + key "forwarding-profile-ref"; description "Points to an ACL profile."; - leaf profile { - type forwarding-profile-reference; - description - "Forwarding profile to be used."; - } + uses forwarding-profile-reference; } } } @@ -1832,46 +1965,26 @@ module ietf-ac-ntw { "A reference to the AC as exposed at the service level."; } list ac-profile { - key "profile-id"; + key "ac-profile-ref"; description "List of AC profiles."; - leaf profile-id { - type ac-profile-reference; - description - "A reference to an AC profile."; - } + uses ac-profile-reference; } - leaf ac-parent-ref { - type ac-ntw:attachment-circuit-reference; + container ac-parent-ref { description "Specifies the parent AC that is inherited by an AC. Parent ACs are used, e.g., in contexts where multiple CEs are terminating the same AC, but some specific information is required for each peer SAP."; + uses ac-ntw:attachment-circuit-reference; } leaf-list peer-sap-id { type string; description "One or more peer SAPs can be indicated."; } - list group { - key "group-id"; - description - "List of group-ids."; - leaf group-id { - type string; - description - "Indicates the group-id to which the AC belongs."; - } - leaf precedence { - type identityref { - base ac-common:precedence-type; - } - description - "Defines redundancy of an AC."; - } - } - uses vpn-common:service-status; + uses ac-common:redundancy-group; + uses ac-common:service-status; uses ac-ntw:ac; } } @@ -1884,10 +1997,11 @@ module ietf-ac-ntw { } description "Augments SAPs with AC provisioning details."; - leaf-list ac { - type ac-ntw:attachment-circuit-reference; + list ac { + key "ac-ref"; description "Specifies the ACs that are terminated by the SAP."; + uses ac-ntw:attachment-circuit-reference; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang index 436a01955..1417d9bbf 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang @@ -50,7 +50,7 @@ module ietf-ac-svc { "This YANG module defines a YANG model for exposing attachment circuits as a service (ACaaS). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -67,7 +67,8 @@ module ietf-ac-svc { description "Initial revision."; reference - "RFC XXXX: YANG Service Data Models for Attachment Circuits"; + "RFC XXXX: YANG Data Models for Bearers and 'Attachment + Circuits'-as-a-Service (ACaaS)"; } /* A set of typedefs to ease referencing cross-modules */ @@ -83,7 +84,8 @@ module ietf-ac-svc { typedef ac-group-reference { type leafref { - path "/ac-svc:attachment-circuits/ac-group-profile/name"; + path "/ac-svc:attachment-circuits/ac-svc:ac-group-profile" + + "/ac-svc:name"; } description "Defines a reference to an attachment circuit profile."; @@ -97,8 +99,7 @@ module ietf-ac-svc { + "/ac-svc:encryption-profile-identifier/ac-svc:id"; } description - "Defines a type to an encryption profile for referencing - purposes."; + "Defines a reference to an encryption profile."; } typedef qos-profile-reference { @@ -109,18 +110,19 @@ module ietf-ac-svc { + "/ac-svc:qos-profile-identifier/ac-svc:id"; } description - "Defines a type to a QoS profile for referencing purposes."; + "Defines a reference to a QoS profile."; } - typedef bfd-profile-reference { + typedef failure-detection-profile-reference { type leafref { path "/ac-svc:specific-provisioning-profiles" + "/ac-svc:valid-provider-identifiers" - + "/ac-svc:bfd-profile-identifier/ac-svc:id"; + + "/ac-svc:failure-detection-profile-identifier" + + "/ac-svc:id"; } description - "Defines a type to a BFD profile for referencing purposes."; + "Defines a reference to a BFD profile."; } typedef forwarding-profile-reference { @@ -131,8 +133,7 @@ module ietf-ac-svc { + "/ac-svc:forwarding-profile-identifier/ac-svc:id"; } description - "Defines a type to a forwarding profile for referencing - purposes."; + "Defines a reference to a forwarding profile."; } typedef routing-profile-reference { @@ -143,8 +144,7 @@ module ietf-ac-svc { + "/ac-svc:routing-profile-identifier/ac-svc:id"; } description - "Defines a type to a routing profile for referencing - purposes."; + "Defines a reference to a routing profile."; } typedef service-profile-reference { @@ -155,8 +155,7 @@ module ietf-ac-svc { + "/ac-svc:id"; } description - "Defines a type to a service profile for referencing - purposes."; + "Defines a reference to a service profile."; } /******************** Reusable groupings ********************/ @@ -269,7 +268,7 @@ module ietf-ac-svc { } } leaf bearer-reference { - if-feature "vpn-common:bearer-reference"; + if-feature "ac-common:server-assigned-reference"; type string; description "This is an internal reference for the service provider @@ -305,13 +304,35 @@ module ietf-ac-svc { if-feature "vpn-common:ipv4"; description "IPv4-specific parameters."; - uses ac-common:ipv4-connection; + uses ac-common:ipv4-connection { + augment ac-svc:allocation-type/static-addresses/address { + leaf failure-detection-profile { + if-feature "vpn-common:bfd"; + type failure-detection-profile-reference; + description + "Points to a failure detection profile."; + } + description + "Adds a failure detection profile."; + } + } } container ipv6 { if-feature "vpn-common:ipv6"; description "IPv6-specific parameters."; - uses ac-common:ipv6-connection; + uses ac-common:ipv6-connection { + augment ac-svc:allocation-type/static-addresses/address { + leaf failure-detection-profile { + if-feature "vpn-common:bfd"; + type failure-detection-profile-reference; + description + "Points to a failure detection profile."; + } + description + "Adds a failure detection profile."; + } + } } } @@ -346,8 +367,132 @@ module ietf-ac-svc { } } + // Static routing with BFD + + grouping ipv4-static-rtg-with-bfd { + description + "Configuration specific to IPv4 static routing with + BFD."; + list ipv4-lan-prefix { + if-feature "vpn-common:ipv4"; + key "lan next-hop"; + description + "List of LAN prefixes for the site."; + uses ac-common:ipv4-static-rtg-entry; + leaf failure-detection-profile { + if-feature "vpn-common:bfd"; + type failure-detection-profile-reference; + description + "Points to a failure detection profile."; + } + uses ac-common:service-status; + } + } + + grouping ipv6-static-rtg-with-bfd { + description + "Configuration specific to IPv6 static routing with + BFD."; + list ipv6-lan-prefix { + if-feature "vpn-common:ipv6"; + key "lan next-hop"; + description + "List of LAN prefixes for the site."; + uses ac-common:ipv6-static-rtg-entry; + leaf failure-detection-profile { + if-feature "vpn-common:bfd"; + type failure-detection-profile-reference; + description + "Points to a failure detection profile."; + } + uses ac-common:service-status; + } + } + // BGP Service + grouping bgp-neighbor-without-name { + description + "A grouping with generic parameters for configuring a BGP + neighbor."; + leaf remote-address { + type inet:ip-address; + description + "The remote IP address of this entry's BGP peer. This is + a customer IP address. + + If this leaf is not present, this means that the primary + customer IP address is used as remote IP address."; + } + leaf local-address { + type inet:ip-address; + description + "The provider's IP address that will be used to establish + the BGP session."; + } + uses ac-common:bgp-peer-group-without-name; + container bgp-max-prefix { + description + "A container for the maximum number of BGP prefixes + allowed in the BGP session."; + leaf max-prefix { + type uint32; + description + "Indicates the maximum number of BGP prefixes allowed + in the BGP session. + + It allows control of how many prefixes can be received + from a neighbor."; + reference + "RFC 4271: A Border Gateway Protocol 4 (BGP-4), + Section 8.2.2"; + } + } + uses ac-common:bgp-authentication; + uses ac-common:op-instructions; + uses ac-common:service-status; + } + + grouping bgp-neighbor-with-name { + description + "A grouping with generic parameters for configuring a BGP + neighbor with an identifier."; + leaf id { + type string; + description + "A neighbor identifier."; + } + uses ac-svc:bgp-neighbor-without-name; + } + + grouping bgp-neighbor-with-server-reference { + description + "A grouping with generic parameters for configuring a BGP + neighbor with a reference generated by the provider."; + leaf server-reference { + if-feature "ac-common:server-assigned-reference"; + type string; + config false; + description + "This is an internal reference for the service provider + to identify the BGP session."; + } + uses ac-svc:bgp-neighbor-without-name; + } + + grouping bgp-neighbor-with-name-server-reference { + description + "A grouping with generic parameters for configuring a BGP + neighbor with an identifier and a reference generated by + the provider."; + leaf id { + type string; + description + "A neighbor identifier."; + } + uses ac-svc:bgp-neighbor-with-server-reference; + } + grouping bgp-svc { description "Configuration specific to BGP."; @@ -364,8 +509,25 @@ module ietf-ac-svc { leaf local-address { type inet:ip-address; description - "The local IP address that will be used to establish - the BGP session."; + "The provider's local IP address that will be used to + establish the BGP session."; + } + container bgp-max-prefix { + description + "A container for the maximum number of BGP prefixes + allowed in the BGP session."; + leaf max-prefix { + type uint32; + description + "Indicates the maximum number of BGP prefixes allowed + in the BGP session. + + It allows control of how many prefixes can be received + from a neighbor."; + reference + "RFC 4271: A Border Gateway Protocol 4 (BGP-4), + Section 8.2.2"; + } } uses ac-common:bgp-authentication; } @@ -374,25 +536,7 @@ module ietf-ac-svc { key "id"; description "List of BGP neighbors."; - leaf id { - type string; - description - "A neighbor identifier."; - } - leaf remote-address { - type inet:ip-address; - description - "The remote IP address of this entry's BGP peer. - - If this leaf is not present, this means that the primary - customer IP address is used as remote IP address."; - } - leaf local-address { - type inet:ip-address; - description - "The local IP address that will be used to establish - the BGP session."; - } + uses ac-svc:bgp-neighbor-with-name-server-reference; leaf peer-group { type leafref { path "../../peer-groups/peer-group/name"; @@ -400,9 +544,12 @@ module ietf-ac-svc { description "The peer-group with which this neighbor is associated."; } - uses ac-common:bgp-peer-group-without-name; - uses ac-common:bgp-authentication; - uses vpn-common:service-status; + leaf failure-detection-profile { + if-feature "vpn-common:bfd"; + type failure-detection-profile-reference; + description + "Points to a failure detection profile."; + } } } @@ -413,7 +560,7 @@ module ietf-ac-svc { "Service configuration specific to OSPF."; uses ac-common:ospf-basic; uses ac-common:ospf-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } // IS-IS Service @@ -423,7 +570,7 @@ module ietf-ac-svc { "Service configuration specific to IS-IS."; uses ac-common:isis-basic; uses ac-common:isis-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } // RIP Service @@ -440,7 +587,7 @@ module ietf-ac-svc { are to be activated."; } uses ac-common:rip-authentication; - uses vpn-common:service-status; + uses ac-common:service-status; } // VRRP Service @@ -449,7 +596,7 @@ module ietf-ac-svc { description "Service configuration specific to VRRP."; reference - "RFC 5798: Virtual Router Redundancy Protocol (VRRP) + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6"; leaf address-family { type identityref { @@ -459,7 +606,7 @@ module ietf-ac-svc { "Indicates whether IPv4, IPv6, or both address families are to be enabled."; } - uses vpn-common:service-status; + uses ac-common:service-status; } // Basic routing parameters @@ -483,6 +630,7 @@ module ietf-ac-svc { description "Only applies when the protocol is BGP."; } + if-feature "vpn-common:rtg-bgp"; description "Configuration specific to BGP."; container peer-groups { @@ -504,6 +652,7 @@ module ietf-ac-svc { description "Only applies when the protocol is OSPF."; } + if-feature "vpn-common:rtg-ospf"; description "Configuration specific to OSPF."; uses ac-common:ospf-basic; @@ -514,6 +663,7 @@ module ietf-ac-svc { description "Only applies when the protocol is IS-IS."; } + if-feature "vpn-common:rtg-isis"; description "Configuration specific to IS-IS."; uses ac-common:isis-basic; @@ -526,6 +676,7 @@ module ietf-ac-svc { For IPv4, the model assumes that RIP version 2 is used."; } + if-feature "vpn-common:rtg-rip"; description "Configuration specific to RIP routing."; leaf address-family { @@ -544,6 +695,7 @@ module ietf-ac-svc { "Only applies when the protocol is the Virtual Router Redundancy Protocol (VRRP)."; } + if-feature "vpn-common:rtg-vrrp"; description "Configuration specific to VRRP."; leaf address-family { @@ -585,8 +737,8 @@ module ietf-ac-svc { container cascaded-lan-prefixes { description "LAN prefixes from the customer."; - uses ac-common:ipv4-static-rtg; - uses ac-common:ipv6-static-rtg; + uses ipv4-static-rtg-with-bfd; + uses ipv6-static-rtg-with-bfd; } } container bgp { @@ -595,16 +747,10 @@ module ietf-ac-svc { description "Only applies when the protocol is BGP."; } + if-feature "vpn-common:rtg-bgp"; description "Configuration specific to BGP."; - uses bgp-svc { - refine "peer-groups/peer-group/local-address" { - config false; - } - refine "neighbor/local-address" { - config false; - } - } + uses bgp-svc; } container ospf { when "derived-from-or-self(../type, " @@ -612,6 +758,7 @@ module ietf-ac-svc { description "Only applies when the protocol is OSPF."; } + if-feature "vpn-common:rtg-ospf"; description "Configuration specific to OSPF."; uses ospf-svc; @@ -622,6 +769,7 @@ module ietf-ac-svc { description "Only applies when the protocol is IS-IS."; } + if-feature "vpn-common:rtg-isis"; description "Configuration specific to IS-IS."; uses isis-svc; @@ -634,6 +782,7 @@ module ietf-ac-svc { For IPv4, the model assumes that RIP version 2 is used."; } + if-feature "vpn-common:rtg-rip"; description "Configuration specific to RIP routing."; uses rip-svc; @@ -645,6 +794,7 @@ module ietf-ac-svc { "Only applies when the protocol is the Virtual Router Redundancy Protocol (VRRP)."; } + if-feature "vpn-common:rtg-vrrp"; description "Configuration specific to VRRP."; uses vrrp-svc; @@ -752,18 +902,20 @@ module ietf-ac-svc { grouping ac-basic { description "Grouping for basic parameters for an attachment circuit."; - leaf id { + leaf name { type string; description - "An identifier of the AC."; + "A name that uniquely identifies the AC."; } container l2-connection { + if-feature "ac-common:layer2-ac"; description "Defines Layer 2 protocols and parameters that are required to enable AC connectivity."; uses l2-connection-basic; } container ip-connection { + if-feature "ac-common:layer3-ac"; description "Defines IP connection parameters."; uses ip-connection-basic; @@ -820,12 +972,14 @@ module ietf-ac-svc { "A reference to a service profile."; } container l2-connection { + if-feature "ac-common:layer2-ac"; description "Defines Layer 2 protocols and parameters that are required to enable AC connectivity."; uses l2-connection; } container ip-connection { + if-feature "ac-common:layer3-ac"; description "Defines IP connection parameters."; uses ip-connection; @@ -842,13 +996,33 @@ module ietf-ac-svc { if-feature "vpn-common:bfd"; description "Container for BFD."; - leaf profile { - type bfd-profile-reference; + list session { + key "id"; description - "Points to a BFD profile."; + "List of BFD sessions."; + leaf id { + type string; + description + "A unique identifer for the BFD session."; + } + leaf local-address { + type inet:ip-address; + description + "Provider's IP address of the BFD session."; + } + leaf remote-address { + type inet:ip-address; + description + "Customer's IP address of the BFD session."; + } + leaf profile { + type failure-detection-profile-reference; + description + "Points to a BFD profile."; + } + uses ac-common:bfd; + uses ac-common:service-status; } - uses ac-common:bfd; - uses vpn-common:service-status; } } container security { @@ -859,6 +1033,12 @@ module ietf-ac-svc { container service { description "AC-specific bandwith parameters."; + leaf mtu { + type uint32; + units "bytes"; + description + "Layer 2 MTU."; + } uses bandwidth; container qos { if-feature "vpn-common:qos"; @@ -908,6 +1088,28 @@ module ietf-ac-svc { } } + // Parent and Child ACs + + grouping ac-hierarchy { + description + "Container for parent and child AC references."; + leaf-list ac-parent-ref { + type ac-svc:attachment-circuit-reference; + description + "Specifies a parent AC that is inherited by an AC. + In contexts where dynamic terminating points are + bound to the same AC, a parent AC with stable + information is created with a set of child ACs + to track dynamic AC information."; + } + leaf-list child-ac-ref { + type ac-svc:attachment-circuit-reference; + config false; + description + "Specifies a child AC that relies upon a parent AC."; + } + } + /******************** Main AC containers ********************/ container specific-provisioning-profiles { @@ -947,6 +1149,13 @@ module ietf-ac-svc { "Diversity constraint type."; uses vpn-common:placement-constraints; } + leaf customer-name { + type string; + description + "Indicates the name of the customer that requested these + ACs."; + } + uses ac-common:op-instructions; list ac { key "name"; description @@ -970,43 +1179,25 @@ module ietf-ac-svc { requests."; } uses ac-common:op-instructions; + leaf role { + type identityref { + base ac-common:role; + } + description + "Indicates whether this AC is used as UNI, NNI, etc."; + } leaf-list peer-sap-id { type string; description "One or more peer SAPs can be indicated."; } - leaf-list ac-group-profile { + leaf-list ac-group-profile-ref { type ac-group-reference; description "A reference to an AC profile."; } - leaf ac-parent-ref { - type ac-svc:attachment-circuit-reference; - description - "Specifies the parent AC that is inherited by an AC. - In contexts where dynamic terminating points are - bound to the same AC, a parent AC with stable - inforamtion is created with a set of child AC - that trackes dynamic informaiton."; - } - list group { - key "group-id"; - description - "List of group-ids."; - leaf group-id { - type string; - description - "Indicates the group-id to which the network access - belongs."; - } - leaf precedence { - type identityref { - base ac-common:precedence-type; - } - description - "Defines redundancy of an AC."; - } - } + uses ac-hierarchy; + uses ac-common:redundancy-group; list service-ref { key "service-type service-id"; config false; @@ -1017,7 +1208,7 @@ module ietf-ac-svc { base vpn-common:service-type; } description - "Indicates the service type (e.g., L3VPN, Network Slice + "Indicates the service type (e.g., L3VPN or Network Slice Service)."; reference "RFC 9408: A YANG Network Data Model for Service @@ -1030,6 +1221,14 @@ module ietf-ac-svc { of a given type that uses the AC."; } } + leaf server-reference { + if-feature "ac-common:server-assigned-reference"; + type string; + config false; + description + "Reports an internal reference for the service provider + to identify the AC."; + } uses ac; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-acl-enh@2022-10-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-acl-enh@2024-05-16.yang similarity index 71% rename from experimental/ietf-extracted-YANG-modules/ietf-acl-enh@2022-10-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-acl-enh@2024-05-16.yang index a4b1fe56a..906addf99 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-acl-enh@2022-10-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-acl-enh@2024-05-16.yang @@ -53,13 +53,13 @@ module ietf-acl-enh { Author: Mohamed Boucadair mailto:mohamed.boucadair@orange.com Author: Samier Barguil - mailto:samier.barguilgiraldo.ext@telefonica.com + mailto:samier.barguil_giraldo@nokia.com Author: Oscar Gonzalez de Dios mailto:oscar.gonzalezdedios@telefonica.com"; description "This module contains YANG definitions for enhanced ACLs. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -72,7 +72,7 @@ module ietf-acl-enh { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2022-10-24 { + revision 2024-05-16 { description "Initial revision."; reference @@ -92,7 +92,7 @@ module ietf-acl-enh { feature match-on-isid-filter { description - "Match based on a ISID range of vlan list is supported."; + "Match based on an I-SID range of VLAN list is supported."; } feature match-on-alias { @@ -256,7 +256,6 @@ module ietf-acl-enh { description "Identity for counter name to be updated based on the ACL match actions."; - } typedef operator { @@ -276,8 +275,9 @@ module ietf-acl-enh { position 2; description "Any bit. This is a match on any of the bits in bitmask. - It evaluates to 'true' if any of the bits in the value mask - are set in the data, i.e., '(data & value) != 0'."; + It evaluates to 'true' if any of the bits in the + value mask are set in the data, i.e., + '(data & value) != 0'."; } } description @@ -315,7 +315,7 @@ module ietf-acl-enh { typedef ipv4-prefix-set-ref { type leafref { - path "/acl-enh:defined-sets/acl-enh:ipv4-prefix-sets" + path "/acl:acls/acl-enh:defined-sets/acl-enh:ipv4-prefix-sets" + "/acl-enh:prefix-set/acl-enh:name"; } description @@ -324,7 +324,7 @@ module ietf-acl-enh { typedef ipv6-prefix-set-ref { type leafref { - path "/acl-enh:defined-sets/acl-enh:ipv6-prefix-sets" + path "/acl:acls/acl-enh:defined-sets/acl-enh:ipv6-prefix-sets" + "/acl-enh:prefix-set/acl-enh:name"; } description @@ -333,7 +333,7 @@ module ietf-acl-enh { typedef port-set-ref { type leafref { - path "/acl-enh:defined-sets/acl-enh:port-sets" + path "/acl:acls/acl-enh:defined-sets/acl-enh:port-sets" + "/acl-enh:port-set/acl-enh:name"; } description @@ -342,7 +342,7 @@ module ietf-acl-enh { typedef protocol-set-ref { type leafref { - path "/acl-enh:defined-sets/acl-enh:protocol-sets" + path "/acl:acls/acl-enh:defined-sets/acl-enh:protocol-sets" + "/acl-enh:protocol-set/acl-enh:name"; } description @@ -351,8 +351,8 @@ module ietf-acl-enh { typedef icmpv4-type-set-ref { type leafref { - path "/acl-enh:defined-sets/acl-enh:icmpv4-type-sets" - + "/acl-enh:icmpv4-type-set/acl-enh:name"; + path "/acl:acls/acl-enh:defined-sets/acl-enh:icmpv4-type-sets" + + "/acl-enh:set/acl-enh:name"; } description "Defines a reference to an ICMPv4 type set."; @@ -360,8 +360,8 @@ module ietf-acl-enh { typedef icmpv6-type-set-ref { type leafref { - path "/acl-enh:defined-sets/acl-enh:icmpv6-type-sets" - + "/acl-enh:icmpv6-type-set/acl-enh:name"; + path "/acl:acls/acl-enh:defined-sets/acl-enh:icmpv6-type-sets" + + "/acl-enh:set/acl-enh:name"; } description "Defines a reference to an ICMPv6 type set."; @@ -369,7 +369,8 @@ module ietf-acl-enh { typedef alias-ref { type leafref { - path "/acl-enh:aliases/acl-enh:alias/acl-enh:name"; + path "/acl:acls/acl-enh:defined-sets/acl-enh:aliases" + + "/acl-enh:alias/acl-enh:name"; } description "Defines a reference to an alias."; @@ -378,16 +379,15 @@ module ietf-acl-enh { grouping tcp-flags { description "Operations on TCP flags."; + leaf operator { + type operator; + description + "How to interpret the TCP flags."; + } choice mode { description "Choice of how flags are indicated."; case explicit { - leaf operator { - type operator; - default "match"; - description - "How to interpret the TCP flags."; - } leaf-list explicit-tcp-flag { type identityref { base tcp-flag; @@ -406,8 +406,8 @@ module ietf-acl-enh { corresponding to the TCP data offset field are not included in any matching."; reference - "RFC 9293: Transmission Control Protocol (TCP), - Section 3.1"; + "RFC 9293: Transmission Control Protocol (TCP), + Section 3.1"; } } } @@ -429,64 +429,58 @@ module ietf-acl-enh { } } -grouping mpls-match-parameters-config { - description - "Parameters for the configuration of MPLS match rules."; - - leaf traffic-class { - type uint8 { - range "0..7"; - } + grouping mpls-match-parameters-config { description - "The value of the MPLS traffic class (TC) bits, - formerly known as the EXP bits."; - } - - leaf label-position { - type identityref { - base label-position; + "Parameters for the configuration of MPLS match rules."; + leaf traffic-class { + type uint8 { + range "0..7"; + } + description + "The value of the MPLS traffic class (TC) bits, + formerly known as the EXP bits."; } - description - "Position of the label"; - } - - leaf upper-label-range { - type rt-types:mpls-label; - description - "Match MPLS label value on the MPLS header. - The usage of this field indicated the upper - range value in the top of the stack. - This label value does not include the - encodings of Traffic Class and TTL."; - reference - "RFC 3032: MPLS Label Stack Encoding"; - } - - leaf lower-label-range { - type rt-types:mpls-label; - description - "Match MPLS label value on the MPLS header. - The usage of this field indicated the lower - range value in the top of the stack. - This label value does not include the - encodings of Traffic Class and TTL."; - reference - "RFC 3032: MPLS Label Stack Encoding"; - } - - leaf label-block-name { - type string; - description - "Reference to a label block predefiend in the - implementation."; - } - - leaf ttl-value { - type uint8; - description - "Time-to-live MPLS packet value match."; - reference - "RFC 3032: MPLS Label Stack Encoding"; + leaf label-position { + type identityref { + base label-position; + } + description + "Position of the label."; + } + leaf upper-label-range { + type rt-types:mpls-label; + description + "Match MPLS label value on the MPLS header. + The usage of this field indicated the upper + range value in the top of the stack. + This label value does not include the + encodings of Traffic Class and TTL."; + reference + "RFC 3032: MPLS Label Stack Encoding"; + } + leaf lower-label-range { + type rt-types:mpls-label; + description + "Match MPLS label value on the MPLS header. + The usage of this field indicated the lower + range value in the top of the stack. + This label value does not include the + encodings of Traffic Class and TTL."; + reference + "RFC 3032: MPLS Label Stack Encoding"; + } + leaf label-block-name { + type string; + description + "Reference to a label block predefiend in the + implementation."; + } + leaf ttl-value { + type uint8; + description + "Time-to-live MPLS packet value match."; + reference + "RFC 3032: MPLS Label Stack Encoding"; } } @@ -498,8 +492,9 @@ grouping mpls-match-parameters-config { base offset-type; } description - "Indicates the payload offset. This will indicate the position - of the data in packet to use for the match."; + "Indicates the payload offset. This will indicate + the position of the data in packet to use for + the match."; } leaf offset-end { type uint64; @@ -526,8 +521,10 @@ grouping mpls-match-parameters-config { "Specifies an alias."; leaf-list vlan { type uint16; - description - "VLAN of the alias."; + description + "VLAN of the alias."; + reference + "IEEE Std 802.1Q: Bridges and Bridged Networks"; } leaf-list prefix { type inet:ip-prefix; @@ -640,11 +637,9 @@ grouping mpls-match-parameters-config { grouping acl-complementary-actions { description "Collection of complementary ACL actions."; - container log-action { description "Container for defining log actions."; - leaf log-type { type identityref { base acl-enh:log-types; @@ -663,11 +658,9 @@ grouping mpls-match-parameters-config { "The name of the counter action."; } } - container counter-action { description "Container for defining counter actions."; - leaf counter-type { type identityref { base acl-enh:counter-type; @@ -679,17 +672,255 @@ grouping mpls-match-parameters-config { when "derived-from-or-self(../counter-type, " + "'acl-enh:counter-name')" { description - "Name for the counter or variable to update when counter-type - is 'counter-name'."; + "Name for the counter or variable to update when + 'counter-type' is 'counter-name'."; } type string; description "List of possible variables or counter names to - update based on match critieria."; + update based on match critieria."; + } + } + } + + grouping ipv4-prefix-sets { + description + "Data definitions for a list of IPv4 prefixes + prefixes which are matched as part of a policy."; + list prefix-set { + key "name"; + description + "List of the defined prefix sets."; + leaf name { + type string; + description + "Name of the prefix set -- this is used as a label to + reference the set in match conditions."; + } + leaf description { + type string; + description + "Defined Set description."; + } + leaf-list prefix { + type inet:ipv4-prefix; + description + "List of IPv4 prefixes to be used in match + conditions."; + } + } + } + + grouping ipv6-prefix-sets { + description + "Data definitions for a list of IPv6 prefixes which are + matched as part of a policy."; + list prefix-set { + key "name"; + description + "List of the defined prefix sets."; + leaf name { + type string; + description + "Name of the prefix set -- this is used as a label to + reference the set in match conditions."; + } + leaf description { + type string; + description + "A textual description of the prefix list."; + } + leaf-list prefix { + type inet:ipv6-prefix; + description + "List of IPv6 prefixes to be used in match conditions."; + } + } + } + + grouping port-sets { + description + "Data definitions for a list of ports which can + be matched in policies."; + list port-set { + key "name"; + description + "List of port set definitions."; + leaf name { + type string; + description + "Name of the port set -- this is used as a label to + reference the set in match conditions."; + } + list port { + key "id"; + description + "Port numbers along with the operator on which to + match."; + leaf id { + type string; + description + "Identifier of the list of port numbers."; + } + choice port { + description + "Choice of specifying the port number or referring to a + group of port numbers."; + container port-range-or-operator { + description + "Indicates a set of ports."; + uses packet-fields:port-range-or-operator; + } + } + } + } + } + + grouping protocol-sets { + description + "Data definitions for a list of protocols which can be + matched in policies."; + list protocol-set { + key "name"; + description + "List of protocol set definitions."; + leaf name { + type string; + description + "Name of the protocols set -- this is used as a + label to reference the set in match conditions."; + } + leaf-list protocol { + type union { + type uint8; + type string; + } + description + "Value of the protocol set."; } } } + grouping icmpv4-type-sets { + description + "Data definitions for a list of ICMPv4 types which can be + matched in policies."; + list set { + key "name"; + description + "List of ICMPv4 type set definitions."; + leaf name { + type string; + description + "Name of the ICMPv4 type set -- this is used as a label + to reference the set in match conditions."; + } + list icmpv4-type { + key "type"; + description + "Includes a list of ICMPv4 types."; + uses icmpv4-header-fields; + } + } + } + + grouping icmpv6-type-sets { + description + "Data definitions for a list of ICMPv6 types which can be + matched in policies."; + list set { + key "name"; + description + "List of ICMP type set definitions."; + leaf name { + type string; + description + "Name of the ICMPv6 type set -- this is used as a label + to reference the set in match conditions."; + } + list icmpv6-type { + key "type"; + description + "Includes a list of ICMPv6 types."; + uses icmpv6-header-fields; + } + } + } + + grouping aliases { + description + "Grpuing for a set of aliases."; + list alias { + key "name"; + description + "List of aliases."; + leaf name { + type string; + description + "The name of the alias."; + } + uses alias; + } + } + + grouping defined-sets { + description + "Predefined sets of attributes used in policy match + statements."; + container ipv4-prefix-sets { + description + "Data definitions for a list of IPv4 or IPv6 + prefixes which are matched as part of a policy."; + uses ipv4-prefix-sets; + } + container ipv6-prefix-sets { + description + "Data definitions for a list of IPv6 prefixes which are + matched as part of a policy."; + uses ipv6-prefix-sets; + } + container port-sets { + description + "Data definitions for a list of ports which can + be matched in policies."; + uses port-sets; + } + container protocol-sets { + description + "Data definitions for a list of protocols which can be + matched in policies."; + uses protocol-sets; + } + container icmpv4-type-sets { + description + "Data definitions for a list of ICMPv4 types which can be + matched in policies."; + uses icmpv4-type-sets; + } + container icmpv6-type-sets { + description + "Data definitions for a list of ICMPv6 types which can be + matched in policies."; + uses icmpv6-type-sets; + } + container aliases { + description + "Top-level container for aliases."; + uses aliases; + } + } + + augment "/acl:acls" { + description + "predefined sets."; + container defined-sets { + description + "Predefined sets of attributes used in policy match + statements."; + uses defined-sets; + } + } + augment "/acl:acls/acl:acl/acl:aces/acl:ace" + "/acl:matches" { description @@ -714,21 +945,22 @@ grouping mpls-match-parameters-config { } } choice mpls { + description + "Matches against MPLS headers, for example, label + values"; container mpls-values { if-feature "match-on-mpls"; - uses mpls-match-parameters-config; description "Provides the rule set that matches MPLS headers."; + uses mpls-match-parameters-config; } - description - "Matches against MPLS headers, for example, label values"; } } augment "/acl:acls/acl:acl/acl:aces" + "/acl:ace/acl:matches/acl:l2" { description - "Adds a match type based on MAC VLAN and ISID filters."; + "Adds a match type based on MAC VLAN and I-SID filters."; container vlan-filter { if-feature "match-on-vlan-filter"; description @@ -752,13 +984,13 @@ grouping mpls-match-parameters-config { } mandatory true; description - "Lower boundary for a vlan."; + "Lower boundary for a VLAN."; } leaf upper-vlan { type uint16; mandatory true; description - "Upper boundary for a vlan."; + "Upper boundary for a VLAN."; } } case operator { @@ -766,13 +998,15 @@ grouping mpls-match-parameters-config { type packet-fields:operator; default "eq"; description - "Operator to be applied on the vlan below."; + "Operator to be applied on the VLAN below."; } leaf-list vlan { type uint16; description "VLAN number along with the operator on which to match."; + reference + "IEEE Std 802.1Q: Bridges and Bridged Networks"; } } } @@ -780,12 +1014,12 @@ grouping mpls-match-parameters-config { container isid-filter { if-feature "match-on-isid-filter"; description - "Indicates how to handle ISID filters. + "Indicates how to handle I-SID filters. The I-component is responsible for mapping customer - Ethernet traffic to the appropriate ISID."; + Ethernet traffic to the appropriate I-SID."; choice isid-type { description - "ISID definition from range or operator."; + "I-SID definition from range or operator."; case range { leaf lower-isid { type uint16; @@ -796,13 +1030,13 @@ grouping mpls-match-parameters-config { } mandatory true; description - "Lower boundary for a ISID."; + "Lower boundary for an I-SID."; } leaf upper-isid { type uint16; mandatory true; description - "Upper boundary for a ISID."; + "Upper boundary for an I-SID."; } } case operator { @@ -810,13 +1044,15 @@ grouping mpls-match-parameters-config { type packet-fields:operator; default "eq"; description - "Operator to be applied on the ISID below."; + "Operator to be applied on the I-SID below."; } leaf-list isid { type uint16; description - "ISID number along with the operator on which to + "I-SID number along with the operator on which to match."; + reference + "IEEE 802.1ah: Provider Backbone Bridges"; } } } @@ -828,6 +1064,11 @@ grouping mpls-match-parameters-config { description "Handle non-initial and initial fragments for IPv4 packets."; container ipv4-fragment { + must 'not(../acl:flags)' { + error-message + "Either flags or fragment should be provided, but not + both."; + } description "Indicates how to handle IPv4 fragments."; uses fragment-fields; @@ -878,17 +1119,22 @@ grouping mpls-match-parameters-config { "A reference to a protocol set to match the protocol field."; } leaf extension-header { - type iana-ipv6-ext-types:ipv6-extension-header-type; - description - "IPv6 extension header value."; + type iana-ipv6-ext-types:ipv6-extension-header-type; + description + "IPv6 extension header value."; } } augment "/acl:acls/acl:acl/acl:aces" - + "/acl:ace/acl:matches/acl:l4/acl:tcp" { + + "/acl:ace/acl:matches/acl:l4/acl:tcp/acl:tcp" { description "Handles TCP flags and port sets."; container flags-bitmask { + must 'not(../acl:flags)' { + error-message + "Either flags or flags-bitmask should be provided, but not + both."; + } description "Indicates how to handle TCP flags."; uses tcp-flags; @@ -906,7 +1152,7 @@ grouping mpls-match-parameters-config { } augment "/acl:acls/acl:acl/acl:aces" - + "/acl:ace/acl:matches/acl:l4/acl:udp" { + + "/acl:ace/acl:matches/acl:l4/acl:udp/acl:udp" { description "Handle UDP port sets."; leaf source-udp-port-set { @@ -922,7 +1168,7 @@ grouping mpls-match-parameters-config { } augment "/acl:acls/acl:acl/acl:aces" - + "/acl:ace/acl:matches/acl:l4/acl:icmp" { + + "/acl:ace/acl:matches/acl:l4/acl:icmp/acl:icmp" { description "Handle ICMP type sets."; leaf icmpv4-set { @@ -943,9 +1189,7 @@ grouping mpls-match-parameters-config { + "/acl:ace/acl:actions" { description "Complementary actions including Rate-limit action."; - uses acl-complementary-actions; - leaf rate-limit { when "../acl:forwarding = 'acl:accept'" { description @@ -959,184 +1203,4 @@ grouping mpls-match-parameters-config { "Indicates a rate-limit for the matched traffic."; } } - - container defined-sets { - description - "Predefined sets of attributes used in policy match - statements."; - container ipv4-prefix-sets { - description - "Data definitions for a list of IPv4 or IPv6 - prefixes which are matched as part of a policy."; - list prefix-set { - key "name"; - description - "List of the defined prefix sets."; - leaf name { - type string; - description - "Name of the prefix set -- this is used as a label to - reference the set in match conditions."; - } - leaf description { - type string; - description - "Defined Set description."; - } - leaf-list prefix { - type inet:ipv4-prefix; - description - "List of IPv4 prefixes to be used in match - conditions."; - } - } - } - container ipv6-prefix-sets { - description - "Data definitions for a list of IPv6 prefixes which are - matched as part of a policy."; - list prefix-set { - key "name"; - description - "List of the defined prefix sets."; - leaf name { - type string; - description - "Name of the prefix set -- this is used as a label to - reference the set in match conditions."; - } - leaf description { - type string; - description - "A textual description of the prefix list."; - } - leaf-list prefix { - type inet:ipv6-prefix; - description - "List of IPv6 prefixes to be used in match conditions."; - } - } - } - container port-sets { - description - "Data definitions for a list of ports which can - be matched in policies."; - list port-set { - key "name"; - description - "List of port set definitions."; - leaf name { - type string; - description - "Name of the port set -- this is used as a label to - reference the set in match conditions."; - } - list port { - key "id"; - description - "Port numbers along with the operator on which to - match."; - leaf id { - type string; - description - "Identifier of the list of port numbers."; - } - choice port { - description - "Choice of specifying the port number or referring to a - group of port numbers."; - container port-range-or-operator { - description - "Indicates a set of ports."; - uses packet-fields:port-range-or-operator; - } - } - } - } - } - container protocol-sets { - description - "Data definitions for a list of protocols which can be matched - in policies."; - list protocol-set { - key "name"; - description - "List of protocol set definitions."; - leaf name { - type string; - description - "Name of the protocols set -- this is used as a label to - reference the set in match conditions."; - } - leaf-list protocol { - type union { - type uint8; - type string; - } - description - "Value of the protocol set."; - //Check if we can reuse an IANA-maintained module - } - } - } - container icmpv4-type-sets { - description - "Data definitions for a list of ICMPv4 types which can be - matched in policies."; - list icmpv4-type-set { - key "name"; - description - "List of ICMP type set definitions."; - leaf name { - type string; - description - "Name of the ICMPv4 type set -- this is used as a label to - reference the set in match conditions."; - } - list types { - key "type"; - description - "Includes a list of ICMPv4 types."; - uses icmpv4-header-fields; - } - } - } - container icmpv6-type-sets { - description - "Data definitions for a list of ICMPv6 types which can be - matched in policies."; - list icmpv6-type-set { - key "name"; - description - "List of ICMP type set definitions."; - leaf name { - type string; - description - "Name of the ICMPv6 type set -- this is used as a label to - reference the set in match conditions."; - } - list types { - key "type"; - description - "Includes a list of ICMPv6 types."; - uses icmpv6-header-fields; - } - } - } -} - container aliases { - description - "Top-levl container for aliases."; - list alias { - key "name"; - description - "List of aliases."; - leaf name { - type string; - description - "The name of the alias."; - } - uses alias; - } - } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-acl-tls@2022-10-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-acl-tls@2022-10-10.yang index b1510a048..bd9704818 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-acl-tls@2022-10-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-acl-tls@2022-10-10.yang @@ -36,7 +36,7 @@ module ietf-acl-tls { IETF description of an access list to allow (D)TLS profile as matching criteria. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -108,7 +108,6 @@ module ietf-acl-tls { "Distinguished Name of Certificate authority as discussed in Section 4.2.4 of RFC8446."; } - augment "/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches" { if-feature "match-on-tls-dtls"; description @@ -139,21 +138,10 @@ module ietf-acl-tls { description "DTLS versions supported by the client."; } - list cipher-suite { - key "cipher hash"; - leaf cipher { - type ianatp:cipher-algorithm; - description - "AEAD encryption algorithm as defined in RFC8446."; - } - leaf hash { - type ianatp:hash-algorithm; - description - "Hash algorithm used with HKDF as - defined in RFC5869."; - } - description - "A list of Cipher Suites supported by the client."; + leaf-list cipher-suite { + type ianatp:cipher-algorithm; + description + "A list of Cipher Suites supported by the client."; } leaf-list extension-type { type ianatp:extension-type; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2023-12-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-06-13.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2023-12-13.yang rename to experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-06-13.yang index df0b4a145..695b720f3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2023-12-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-06-13.yang @@ -43,13 +43,14 @@ module ietf-adapt-subscription { Editor: Zhixiong Niu "; + description "This module extends the YANG data module defined in YANG-push to enable the subscriber's adaptive subscriptions to a publisher's event streams with various different period intervals to report updates. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -70,7 +71,7 @@ module ietf-adapt-subscription { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-12-13 { + revision 2024-06-13 { description "Initial revision"; reference @@ -86,6 +87,7 @@ module ietf-adapt-subscription { identity xpath-evaluation-unsupported { base sn:establish-subscription-error; + base sn:modify-subscription-error; description "Unable to parse the xpath evaluation criteria defined in 'xpath-eval-criterion' because of a syntax error or some @@ -95,7 +97,7 @@ module ietf-adapt-subscription { identity multi-xpath-criteria-conflict { base sn:establish-subscription-error; - base sn:subscription-terminated-reason; + base sn:modify-subscription-error; description "Multiple Xpath evaluation criteria represented by 'xpath-eval-criterion' are evaluated as a conflict. I.e., diff --git a/experimental/ietf-extracted-YANG-modules/ietf-altmark@2024-06-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-altmark@2024-06-19.yang new file mode 100644 index 000000000..e971ec1a9 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-altmark@2024-06-19.yang @@ -0,0 +1,460 @@ +module ietf-altmark { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-altmark"; + prefix "altmark"; + + import ietf-access-control-list { + prefix "acl"; + reference + "RFC 8519: YANG Data Model for Network Access Control + Lists (ACLs)"; + } + + import ietf-interfaces { + prefix "if"; + reference + "RFC 8343: A YANG Data Model for Interface Management"; + } + + import ietf-lime-time-types { + prefix "lime"; + reference + "RFC 8532: Generic YANG Data Model for the Management of + Operations, Administration, and Maintenance (OAM) Protocols + That Use Connectionless Communications"; + } + + organization + "IETF IPPM (IP Performance Metrics) Working Group"; + + contact + "WG Web: + WG List: + Author: thomas.graf@swisscom.com + Author: wangminxue@chinamobile.com + Author: giuseppe.fioccola@huawei.com + Author: zhoutianran@huawei.com + Author: xiao.min2@zte.com.cn + Author: guo.jun2@zte.com.cn + Author: massimo.nilo@telecomitalia.it + Author: hanliuyan@chinamobile.com"; + + description + "This YANG module specifies a vendor-independent data + model for the Alternate Marking (AltMark). + + 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) 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + revision 2024-06-19 { + description "First revision."; + reference "RFC XXXX: A YANG Data Model for Alternate-Marking"; + } + + /* + * FEATURES + */ + + feature altmark + { + description + "This feature indicated that the Alternate-Marking Method is + supported."; + reference + "RFC 9341: Alternate-Marking Method; + RFC 9342: Clustered Alternate-Marking Method"; + } + + /* + * IDENTITIES + */ + + identity filter { + description + "Base identity to represent a filter. A filter is used to + specify the flow to which the AltMark method is applied."; + } + + identity acl-filter { + base filter; + description + "Apply ACL rules to specify the flow."; + } + + identity method { + description + "Base identity to represent the method type."; + } + + identity single-marking { + base method; + description + "The AltMark Single-Marking method."; + } + + identity double-marking { + base method; + description + "The AltMark Double-Marking method."; + } + + identity protocol { + description + "Base identity to represent the protocol. It's used to + indicate the protocol for the application of the AltMark + method."; + } + + identity ipv6 { + base protocol; + description + "The AltMark method is applied to IPv6 protocol."; + reference + "RFC 9343: IPv6 Application of the Alternate-Marking Method"; + } + + identity srh { + base protocol; + description + "The AltMark method is applied to SRH."; + reference + "[I-D.fz-spring-srv6-alt-mark]: Application of the + Alternate Marking Method to the Segment Routing Header"; + } + + identity mpls { + base protocol; + description + "The AltMark method is applied to MPLS."; + reference + "[I-D.ietf-mpls-inband-pm-encapsulation]: Application of the + Alternate Marking Method to the MPLS Label Stack"; + } + + identity node-action { + description + "Base identity to represent the node actions. It's used to + indicate what action the node will take."; + } + + identity action-marking { + base node-action; + description + "It indicates that the node must mark the AltMark data field, + according to the operations described in RFC 9341 and + RFC 9342"; + } + + identity action-unmarking { + base node-action; + description + "It indicates that the node must unmark the AltMark data field, + according to the operations described in RFC 9341 and + RFC 9342"; + } + + identity action-read { + base node-action; + description + "It indicates the node only reads the AltMark data, + according to the operations described in RFC 9341 and + RFC 9342"; + } + + identity period { + description + "It indicates the AltMark Period."; + } + + identity flow-mon-id { + description + "It indicates the FlowMonID."; + } + + identity measurement-mode { + description + "It indicates the measurement mode."; + } + + identity hbh-measurement { + base measurement-mode; + description + "It indicates that hop-by-hop measurements can be enabled."; + } + + identity e2e-measurement { + base measurement-mode; + description + "It indicates that end-to-end measurements can be enabled."; + } + + identity enable-loss-measurement { + description + "It indicates that loss measurements are enabled."; + } + + identity enable-delay-measurement { + description + "It indicates that delay measurements are enabled."; + } + + /* + * TYPE DEFINITIONS + */ + + typedef altmark-filter-type { + type identityref { + base filter; + } + description + "It specifies a known type of filter."; + } + + typedef altmark-node-action { + type identityref { + base node-action; + } + description + "It specifies a node action."; + } + + typedef altmark-method-type { + type identityref { + base method; + } + description + "It specifies the AltMark method used."; + } + + typedef altmark-protocol-type { + type identityref { + base protocol; + } + description + "It specifies a known type of carrier protocol for the AltMark + data."; + } + + typedef altmark-measurement-mode { + type identityref { + base measurement-mode; + } + description + "It specifies the measurement mode."; + } + + /* + * GROUP DEFINITIONS + */ + + grouping altmark-filter { + description "A grouping for AltMark filter definition"; + + leaf filter-type { + type altmark-filter-type; + description "filter type"; + } + + leaf ace-name { + when "derived-from-or-self(../filter-type, + 'altmark:acl-filter')"; + type leafref { + path "/acl:acls/acl:acl/acl:aces/acl:ace/acl:name"; + } + description "The Access Control Entry name is used to + refer to an ACL specification."; + } + } + + grouping measurement-mode { + description + "A grouping for measurement mode."; + + leaf hbh-measurement { + type boolean; + default false; + description + "This object indicates that hop-by-hop measurements can be + enabled."; + } + + leaf e2e-measurement { + type boolean; + default false; + description + "This object indicates that end-to-end measurements can be + enabled."; + } + } + + grouping altmark-setup { + description + "A grouping for AltMark profile."; + + leaf node-action { + type altmark-node-action; + default action-read; + description + "This object indicates the action that the node needs to + take, i.e. marking/read/unmarking."; + } + + leaf period { + type uint64; + description + "It specifies the AltMark marking period."; + } + + leaf altmark-flowmonid { + type uint32; + description + "It specifies the FlowMonID. + A 20-bit flow identifier. The field is set at the marking node. + The FlowMonID can be uniformly assigned by a central controller + or algorithmically generated by the marking node. + The latter approach cannot guarantee the uniqueness of the + FlowMonID, yet the conflict probability is small due to the + large space. + FlowMonID is used to identify the flow and to correlate the + exported data of the same flow from multiple nodes and from + multiple packets."; + } + + } + + grouping altmark-admin-config { + description + "AltMark top-level administrative configuration."; + + leaf enabled { + type boolean; + default false; + description + "This object is to control the availability of configuration. + It MUST be true before anything in the + /altmark/altmark-profile can be edited. + If false, any configuration in place is not used."; + } + } + + /* + * DATA NODES + */ + + container AltMark { + description "AltMark top level container"; + + container altmark-info { + config false; + description + "Describes information such as units or timestamp format + that assists monitoring systems in the interpretation of the + AltMark data."; + + leaf timestamp-type { + type identityref { + base lime:timestamp-type; + } + description + "Type of timestamp, such as Truncated PTP or NTP."; + } + + list available-interface { + key "if-name"; + description + "A list of available interfaces that support + Alternate-Marking."; + leaf if-name { + type if:interface-ref; + description "This is a reference to the Interface name."; + } + } + } + + container altmark-profiles { + description + "Contains the AltMark profiles."; + + container admin-config { + description + "Contains all the administrative configurations related to + the AltMark functionalities"; + + uses altmark-admin-config; + } + + list altmark-profile { + if-feature altmark; + key "profile-name"; + description + "It describes the list of the AltMark profiles configured + on the node"; + leaf profile-name { + type string{ + length "1..300"; + } + description + "Unique identifier for each AltMark profile."; + } + + container filter { + uses altmark-filter; + description + "The filter which is used to indicate the flow where + the AltMark is applied."; + } + + leaf method-type { + type altmark-method-type; + description + "This item is used to indicate the AltMark method."; + } + + leaf protocol-type { + type altmark-protocol-type; + description + "This item is used to indicate the carrier protocol where + the AltMark is applied."; + } + + uses altmark-setup; + + uses measurement-mode; + + leaf enable-loss-measurement { + type boolean; + default false; + description + "If true, it indicates that loss measurements are + enabled."; + } + + leaf enable-delay-measurement { + type boolean; + default false; + description + "If true, it indicates that delay measurements are + enabled."; + } + + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-alto-stats@2023-02-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-alto-stats@2023-02-23.yang index cbfce9045..67b81ba3f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-alto-stats@2023-02-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-alto-stats@2023-02-23.yang @@ -45,6 +45,7 @@ module ietf-alto-stats { "RFC XXXX: YANG Data Models for the Application-Layer Traffic Optimization (ALTO) Protocol"; } + // Groupings grouping server-level-stats { @@ -381,6 +382,7 @@ module ietf-alto-stats { uses server-level-stats; } } + augment "/alto:alto/alto:alto-server/alto:resource" { description "Augmenting statistics and configuration parameters for diff --git a/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang index a10d9a81b..75d1a9dff 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-alto@2023-02-23.yang @@ -8,6 +8,11 @@ module ietf-alto { reference "RFC 6991: Common YANG Data Types, Section 4"; } + import ietf-truststore { + prefix ts; + reference + "RFC BBBB: A YANG Data Model for a Truststore"; + } import ietf-tcp-server { prefix tcp; reference @@ -173,6 +178,7 @@ module ietf-alto { "RFC 7285: Application-Layer Traffic Optimization (ALTO) Protocol, Section 6.1.1"; } + identity cost-mode { description "The cost mode indicates how costs should be interpreted. @@ -269,6 +275,7 @@ module ietf-alto { Incremental Updates Using Server-Sent Events (SSE)"; } + // Identities for cost mode identity numerical { @@ -332,6 +339,8 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "One-way delay."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 4.1"; } @@ -339,13 +348,16 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "Round-trip delay."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 4.2"; } - identity delay-variation { if-feature "performance-metrics"; base cost-metric; description + "Delay variation."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 4.3"; } @@ -353,6 +365,8 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "Loss rate."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 4.4"; } @@ -360,6 +374,8 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "Hop count."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 4.5"; } @@ -367,6 +383,8 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "TCP throughput."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 5.1"; } @@ -374,6 +392,8 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "Residual bandwidth."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 5.2"; } @@ -381,6 +401,8 @@ module ietf-alto { if-feature "performance-metrics"; base cost-metric; description + "Available bandwidth."; + reference "RFC 9439: ALTO Performance Cost Metrics, Section 5.3"; } @@ -509,6 +531,7 @@ module ietf-alto { } // Typedefs for referencing purposes + typedef cost-type-ref { type leafref { path "/alto:alto/alto:alto-server/alto:cost-type" @@ -549,6 +572,42 @@ module ietf-alto { "Type to reference an HTTPS client user id."; } + typedef inline-ca-cert-ref { + type leafref { + path "/alto:alto/alto:alto-server/alto:listen" + + "/alto:https/alto:tls-server-parameters" + + "/alto:client-authentication/alto:ca-certs" + + "/alto:inline-definition/alto:certificate" + + "/alto:name"; + } + description + "Type to reference a TLS CA certificate."; + } + + typedef inline-ee-cert-ref { + type leafref { + path "/alto:alto/alto:alto-server/alto:listen" + + "/alto:https/alto:tls-server-parameters" + + "/alto:client-authentication/alto:ee-certs" + + "/alto:inline-definition/alto:certificate" + + "/alto:name"; + } + description + "Type to reference a TLS EE certificate."; + } + + typedef inline-raw-public-key-ref { + type leafref { + path "/alto:alto/alto:alto-server/alto:listen" + + "/alto:https/alto:tls-server-parameters" + + "/alto:client-authentication/alto:raw-public-keys" + + "/alto:inline-definition/alto:public-key" + + "/alto:name"; + } + description + "Type to reference a raw pubic key."; + } + typedef resource-ref { type leafref { path "/alto:alto/alto:alto-server/alto:resource" @@ -557,6 +616,7 @@ module ietf-alto { description "Type to reference a resource identifier."; } + typedef role-ref { type leafref { path "/alto:alto/alto:alto-server/alto:role" @@ -850,6 +910,96 @@ module ietf-alto { } } + grouping inline-or-truststore-ca-cert-ref { + description + "Grouping for the reference of a CA certificate to + authenticate the TLS client."; + choice inline-or-truststore { + description + "Selects between inline and truststore"; + case inline { + if-feature "ts:inline-definitions-supported"; + leaf inline { + type inline-ca-cert-ref; + description + "Reference to an inline CA certificate configured by + the TLS server."; + } + description + "Reference of an inline CA certificate to authenticate + the TLS client."; + } + case central-truststore { + if-feature "ts:central-truststore-supported"; + if-feature "ts:certificates"; + uses ts:certificate-ref-grouping; + description + "Reference of a CA certificate in the truststore to + authenticate the TLS client."; + } + } + } + + grouping inline-or-truststore-ee-cert-ref { + description + "Grouping for the reference of a EE certificate to + authenticate the TLS client."; + choice inline-or-truststore { + description + "Selects between inline and truststore"; + case inline { + if-feature "ts:inline-definitions-supported"; + leaf inline { + type inline-ee-cert-ref; + description + "Reference to an inline EE certificate configured by + the TLS server."; + } + description + "Reference of an inline EE certificate to authenticate + the TLS client."; + } + case central-truststore { + if-feature "ts:central-truststore-supported"; + if-feature "ts:certificates"; + uses ts:certificate-ref-grouping; + description + "Reference of a EE certificate in the truststore to + authenticate the TLS client."; + } + } + } + + grouping inline-or-truststore-public-key-ref { + description + "Grouping for the reference of a raw public key to + authenticate the TLS client."; + choice inline-or-truststore { + description + "Selects between inline and truststore"; + case inline { + if-feature "ts:inline-definitions-supported"; + leaf inline { + type inline-raw-public-key-ref; + description + "Reference to an inline public key configured by the + TLS server."; + } + description + "Reference of an inline public key to authenticate the + TLS client."; + } + case central-truststore { + if-feature "ts:central-truststore-supported"; + if-feature "ts:public-keys"; + uses ts:public-key-ref-grouping; + description + "Reference of a raw public key in the truststore to + authenticate the TLS client."; + } + } + } + // Top-level container container alto { @@ -1011,15 +1161,58 @@ module ietf-alto { if-feature "http:client-auth-supported"; if-feature "http:local-users-supported"; description - "Parameters of the authenticated HTTPS client."; + "Parameters to identify an authenticated HTTPS + client."; leaf user-id { type https-user-id-ref; - mandatory true; description "Reference of the user-id for the authenticated HTTPS client."; } } + container tls-auth-client { + if-feature "tls:client-auth-supported"; + description + "Parameters to identify na authenticated TLS + client."; + container ca-cert { + if-feature "tls:client-auth-x509-cert"; + description + "Reference of the CA certificate to authenticate + the TLS client."; + uses inline-or-truststore-ca-cert-ref; + } + container ee-cert { + if-feature "tls:client-auth-x509-cert"; + description + "Reference of the EE certificate to authenticate + the TLS client."; + uses inline-or-truststore-ee-cert-ref; + } + container raw-public-key { + if-feature "tls:client-auth-raw-public-key"; + description + "Reference of the raw public key to authenticate + the TLS client."; + uses inline-or-truststore-public-key-ref; + } + leaf tls12-psks { + if-feature "tls:client-auth-tls12-psk"; + type empty; + description + "Identicate that the client is authenticated by + the TLS server using the configured PSKs + (pre-shared or pairwise-symmetric keys)."; + } + leaf tls13-epsks { + if-feature "tls:client-auth-tls13-epsk"; + type empty; + description + "Identicate that the client is authenticated by + the TLS 1.3 server using the configured external + PSKs (pre-shared keys)."; + } + } } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang similarity index 54% rename from experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang index 8906ba6b9..74727e3cd 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-amm@2023-06-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-amm@2024-07-03.yang @@ -1,7 +1,7 @@ module ietf-amm { - namespace "ari:/ietf-amm"; + yang-version 1.1; + namespace "ari://ietf-amm"; prefix amm; - amm:enum "0"; organization "IETF Delay Tolerant Networking (DTN) Working Group"; @@ -9,14 +9,41 @@ module ietf-amm { "WG Web: WG List: - Author: Brian Sipos + Editor: Brian Sipos "; description - "This module implements the DTN Management Architecture (DTNMA) - Application Management Model (AMM) extensions within YANG"; + "This module defines the DTN Management Architecture (DTNMA) + Application Management Model (AMM) extensions within YANG. + It also defines the base TYPEDEF objects. + + 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) 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; reference - "draft-birrane-dtn-adm"; + "draft-ietf-dtn-adm-yang"; + revision 2024-07-03 { + description + "Updated for latest ADM document."; + reference + "draft-ietf-dtn-adm-yang"; + } revision 2023-06-08 { description "Updated for latest AMM contents."; @@ -36,10 +63,9 @@ module ietf-amm { "draft-bsipos-dtn-amp-yang"; } - /**** - * This section contains extension for AMM object definitions - ****/ - // This group of extensions are for common behavior for AMM objects + /* + * This section contains extensions for common behavior of AMM objects. + */ extension enum { argument value; @@ -61,7 +87,6 @@ module ietf-amm { "The literal value default for a parameter or result. The argument is the text form of the ARI"; } - extension init-value { argument value; description @@ -77,7 +102,9 @@ module ietf-amm { The argument is the text form of the EXPR AC"; } - // This group are AMM object keywords and their parameters + /* + * This section contains extensions for AMM object definitions. + */ extension typedef { argument name; @@ -108,7 +135,6 @@ module ietf-amm { The argument to this statement is the object name. An 'init-value' substatement must be present."; } - extension ctrl { argument name; description @@ -154,16 +180,23 @@ module ietf-amm { The argument to this statement is the object name."; } - /**** - * This section contains ARI (literal and object-reference) value types. - ****/ - + /* + * This section contains extensions for defining semantic type instances. + */ extension type { argument name; description "A reference to a built-in type or prefix-qualified typedef."; } + extension display-hint { + argument ident; + description + "Reference an IDENT object which indicates how a value should be + displayed for human consumption. + The base of the IDENT SHALL be the ./IDENT/display-hint object."; + } + extension int-labels { description "Type narrowing for an INTEGER to label enum values or bit positions."; @@ -191,6 +224,21 @@ module ietf-amm { "A sequence of uniform-typed values within a 'dlist'."; } + extension umap { + description + "Type for an AM containing a set of uniform-typed key-value pairs."; + } + + extension keys { + description + "The type restriction for 'umap' keys."; + } + + extension values { + description + "The type restriction for 'umap' values."; + } + extension tblt { description "Type for a table of values with a column schema."; @@ -199,19 +247,21 @@ module ietf-amm { extension column { argument name; description - "Type for a table of values with a column schema."; + "An individual column within a 'tblt' definition."; } extension key { argument columns; description - "Names of columns composing the row key."; + "Names of columns composing the row key, separated by spaces, + within a 'tblt' definition."; } extension unique { argument columns; description - "Names of columns composing a uniqueness constraint."; + "Names of columns composing a uniqueness constraint, separated by + spaces, within a 'tblt' definition."; } extension union { @@ -219,223 +269,256 @@ module ietf-amm { "Type for a union of other types."; } - // Named type unions for literals + amm:enum 0; + amm:ident display-hint { + amm:enum 0; + description + "The base IDENT for objects usable as arguments for the + 'amm:display-hint' extension. + This object itself provides no display hint purpose."; + } + + // Named type unions amm:typedef TYPE-REF { - amm:union { - amm:type LITTYPE; - amm:type TYPEDEF-REF; - } + amm:enum 0; description "Reference to either a literal type or a typedef."; - } - amm:typedef INTEGER { amm:union { - amm:type BYTE; - amm:type UINT; - amm:type INT; - amm:type UVAST; - amm:type VAST; + amm:type "/ARITYPE/ARITYPE"; + amm:type "/ARITYPE/TYPEDEF"; } + } + amm:typedef INTEGER { + amm:enum 1; description "Any type which represents a discrete integer."; - } - amm:typedef FLOAT { amm:union { - amm:type REAL32; - amm:type REAL64; + amm:type "/ARITYPE/BYTE"; + amm:type "/ARITYPE/UINT"; + amm:type "/ARITYPE/INT"; + amm:type "/ARITYPE/UVAST"; + amm:type "/ARITYPE/VAST"; } + } + amm:typedef FLOAT { + amm:enum 2; description "Any type which represents a floating point number."; - } - amm:typedef NUMERIC { amm:union { - amm:type INTEGER; - amm:type FLOAT; + amm:type "/ARITYPE/REAL32"; + amm:type "/ARITYPE/REAL64"; } + } + amm:typedef NUMERIC { + amm:enum 3; description "Any type which can be used with numeric expressions."; + amm:union { + amm:type "./TYPEDEF/INTEGER"; + amm:type "./TYPEDEF/FLOAT"; + } } - amm:typedef TIME { + amm:typedef PRIMITIVE { + amm:enum 4; + description + "Any primitive type."; amm:union { - amm:type TP; - amm:type TD; + amm:type "/ARITYPE/NULL"; + amm:type "/ARITYPE/BOOL"; + amm:type "./TYPEDEF/NUMERIC"; + amm:type "/ARITYPE/TEXTSTR"; + amm:type "/ARITYPE/BYTESTR"; } + } + amm:typedef TIME { + amm:enum 5; description "Any type which can be used with time expressions."; - } - amm:typedef SIMPLE { amm:union { - amm:type NULL; - amm:type BOOL; - amm:type NUMERIC; - amm:type TEXTSTR; - amm:type BYTESTR; - amm:type TIME; - amm:type LABEL; - amm:type CBOR; + amm:type "/ARITYPE/TP"; + amm:type "/ARITYPE/TD"; } - description - "Any type which contains a single literal value (not complex)."; } - amm:typedef COMPLEX { + amm:typedef SIMPLE { + amm:enum 6; + description + "Any type which contains a single literal value (not nested)."; amm:union { - amm:type AC; - amm:type AM; + amm:type "./TYPEDEF/PRIMITIVE"; + amm:type "./TYPEDEF/TIME"; } - description - "A literal type which is not SIMPLE."; } - amm:typedef LITERAL { + amm:typedef NESTED { + amm:enum 7; + description + "A literal type which contains other ARI values."; amm:union { - amm:type TYPE-REF; //FIXME: is typeref a literal or something else? - amm:type SIMPLE; - amm:type COMPLEX; + amm:type "/ARITYPE/AC"; + amm:type "/ARITYPE/AM"; + amm:type "/ARITYPE/TBL"; } - description - "Any type which is represented as a literal ARI."; } amm:typedef ANY { + amm:enum 8; + description + "Any value representable by an ARI."; + // These type names are built-in amm:union { - amm:type LITERAL; - amm:type OBJECT; + amm:type "/ARITYPE/LITERAL"; + amm:type "/ARITYPE/OBJECT"; } - description - "Any type representable by an ARI."; } amm:typedef VALUE-OBJ { + amm:enum 9; + description + "A reference to an object which can produce a value."; amm:union { - amm:type CONST; - amm:type EDD; - amm:type VAR; + amm:type "/ARITYPE/CONST"; + amm:type "/ARITYPE/EDD"; + amm:type "/ARITYPE/VAR"; } + } + amm:typedef NONCE { + amm:enum 10; description - "A reference to an object which can produce a value."; + "This type union is used to correlate Agent-Manager messages."; + amm:union { + amm:type "/ARITYPE/BYTESTR"; + amm:type "/ARITYPE/UVAST"; + amm:type "/ARITYPE/NULL"; + } } // operational semantic types amm:typedef counter32 { - amm:type UINT; + amm:enum 11; description "A 32-bit counter with an arbitrary initial value that only increments. When the value reaches the upper range it wraps around to zero. At least two samples of this value need to be compared over time."; + amm:type "/ARITYPE/UINT"; } amm:typedef counter64 { - amm:type UVAST; + amm:enum 12; description "A 64-bit counter with an arbitrary initial value that only increments. When the value reaches the upper range it wraps around to zero. At least two samples of this value need to be compared over time."; + amm:type "/ARITYPE/UVAST"; } amm:typedef gauge32 { - amm:type INT; + amm:enum 13; description "A 32-bit value sampling some quantized measurement. The value can increase or decrease arbitrarily over time."; + amm:type "/ARITYPE/INT"; } amm:typedef gauge64 { - amm:type VAST; + amm:enum 14; description "A 64-bit value sampling some quantized measurement. The value can increase or decrease arbitrarily over time."; + amm:type "/ARITYPE/VAST"; } amm:typedef timestamp { - amm:type TP; + amm:enum 15; description "A time point representing the system clock at which a specific occurrence happened. The specific occurrence must be defined in the description of any node defined using this type."; + amm:type "/ARITYPE/TP"; } - // Restrictions on AC item types for specific purposes - amm:typedef EXPR-item { + // Restrictions on AC item types for Evaluation and EXPR + amm:typedef eval-tgt { + amm:enum 16; + description + "A value which can be the target of an evaluation."; amm:union { - amm:type SIMPLE; - amm:type VALUE-OBJ; - amm:type TYPEDEF; - amm:type OPER; + amm:type "./TYPEDEF/SIMPLE"; // special case of literal value result + amm:type "./TYPEDEF/VALUE-OBJ"; // produces an eval-tgt + amm:type "./TYPEDEF/EXPR"; } + } + amm:typedef EXPR-item { + amm:enum 17; description - "Each item of an EXPR list. - The value-object must be typed to contain a SIMPLE."; + "Each item of an EXPR list."; + amm:union { + amm:type "./TYPEDEF/SIMPLE"; + amm:type "./TYPEDEF/VALUE-OBJ"; // produces an eval-tgt + amm:type "./TYPEDEF/TYPE-REF"; // treated as unary operator + amm:type "/ARITYPE/LABEL"; // substitutable label + amm:type "/ARITYPE/OPER"; + } } amm:typedef EXPR { - amm:ulist { - amm:type EXPR-item; - } + amm:enum 18; description "The contents of an EXPR container."; + amm:ulist { + amm:type "./TYPEDEF/EXPR-item"; + } } - amm:typedef EXEC-item { + + // Restrictions on AC item types for Execution and MAC + amm:typedef exec-tgt { + amm:enum 19; + description + "A value which can be the target of an execution."; amm:union { - amm:type VALUE-OBJ; - amm:type CTRL; + amm:type "./TYPEDEF/exec-item"; + amm:type "./TYPEDEF/MAC"; } + } + amm:typedef exec-item { + amm:enum 20; description "A reference to an object which can be executed. - The value-object must be typed to contain a MAC."; + The value-object must be typed to contain an exec-tgt."; + amm:union { + amm:type "/ARITYPE/CTRL"; + amm:type "./TYPEDEF/VALUE-OBJ"; // produces an exec-tgt + } } amm:typedef MAC { + amm:enum 21; + description + "The contents of a MAC container are an ordered list of + executable values."; amm:ulist { - amm:type EXEC-item; + amm:type "./TYPEDEF/EXEC-item"; } - description - "The contents of a MAC container."; } - amm:typedef RPTT-item { + + // Restrictions on AC item types for Reporting and RPTT + amm:typedef rpt-tgt { + amm:enum 22; + description + "A value which can be the target of reporting."; amm:union { - amm:type VALUE-OBJ; - amm:type EXPR; + amm:type "./TYPEDEF/VALUE-OBJ"; // produces an RPTT + amm:type "./TYPEDEF/RPTT"; } + } + amm:typedef RPTT-item { + amm:enum 23; description "Each item of a RPTT. Each item references a value-producing object or contains an expression to be evaluated."; + amm:union { + amm:type "./TYPEDEF/VALUE-OBJ"; + amm:type "./TYPEDEF/EXPR"; + } } amm:typedef RPTT { - amm:ulist { - amm:type RPTT-item; - } + amm:enum 24; description "The contents of a report template, encoded as the sequence of items."; - } - amm:typedef RPT { - amm:dlist { - amm:type VALUE-OBJ { - description - "Reference to the reported object."; - } - amm:type timestamp { - description - "The generation timestamp."; - } - amm:seq { - amm:type ANY; - description - "The sequence of items in the report."; - } - } - description - "The source and contents of a report, encoded as the sequence - of values reported. - The semantics of each item are contained in the associated - source object (RPTT or CTRL)."; - } - amm:typedef TBL { - amm:dlist { - amm:type UVAST { - description - "The number of columns in the table."; - } - amm:seq { - amm:type ANY; - description - "All table values listed in row-major order."; - } + amm:ulist { + amm:type "./TYPEDEF/RPTT-item"; } - description - "The flattened contents of a table. - The semantics of each column are contained in the associated TBLT."; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-arp@2019-11-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-arp@2024-06-30.yang similarity index 80% rename from experimental/ietf-extracted-YANG-modules/ietf-arp@2019-11-04.yang rename to experimental/ietf-extracted-YANG-modules/ietf-arp@2024-06-30.yang index 1bdd23998..03b3de53d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-arp@2019-11-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-arp@2024-06-30.yang @@ -5,52 +5,57 @@ module ietf-arp { import ietf-yang-types { prefix yang; - reference "RFC 6991: Common YANG Data Types"; + reference + "RFC 6991: Common YANG Data Types"; } import ietf-interfaces { prefix if; - reference "RFC 8343: A Yang Data Model for Interface Management"; + reference + "RFC 8343: A Yang Data Model for Interface Management"; } import ietf-ip { prefix ip; - reference "RFC 8344: A Yang Data Model for IP Management"; + reference + "RFC 8344: A Yang Data Model for IP Management"; } organization "IETF Routing Area Working Group (rtgwg)"; contact - "WG Web: + "WG Web: WG List: - Author: Feng Zheng - habby.zheng@huawei.com - Editor: Bo Wu - lana.wubo@huawei.com - Editor: Robert Wilton - rwilton@cisco.com - Author: Xiaojian Ding - wjswsl@163.com"; + + Author: Feng Zheng + Editor: Bo Wu + Editor: Robert Wilton + Editor: Fan Zhang + Author: Yongqing Zhu + Author: Xiaojian Ding + WG List: + + Authors: Jeffrey Haas (jhaas@juniper.net) + Albert Fu (afu14@bloomberg.net)."; + + description + "This YANG module augments the base BFD YANG module to add + attributes related to support for BFD Encapsulated in Large + Packets. In particular, it adds a per-session parameter for the + BFD Padded PDU Size. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + revision "2024-05-28" { + description + "Initial Version."; + reference + "RFC XXXX, BFD Encapsulated in Large Packets."; + } + + feature padding { + description + "If supported, the feature allows for BFD sessions to be + configured with padded PDUs in support of BFD Encapsulated in + Large Packets."; + } + + typedef padded-pdu-size { + type uint16 { + range "24..65535"; + } + units "bytes"; + description + "The size of the padded and encapsulated BFD control packets + to be transmitted at layer 3. The BFD minimum control packet + size is 24 or 26 octets; see Section 6.8.6 of RFC 5880. + + If the configured padded PDU size is smaller than the minimum + sized packet of a given BFD session, then the minimum sized + packet for the session will be used. + + The maximum padded PDU size may be limited by the supported + interface MTU of the system."; + reference + "RFC XXXX, BFD Encapsulated in Large Packets."; + } + + grouping bfd-large-common { + description + "Common configuration and operational state for BFD + Encapsulated in Large Packets."; + reference + "RFC XXXX, BFD Encapsulated in Large Packets."; + leaf pdu-size { + if-feature "padding"; + type padded-pdu-size; + description + "If set, this configures the padded PDU size for the + Asynchronous mode BFD session. By default, no additional + padding is added to such packets."; + } + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" + + "bfd-ip-sh:sessions/bfd-ip-sh:session" { + uses bfd-large-common; + description + "Augment the 'bfd' container to add attributes related to BFD + Encapsulated in Large Packets."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh/" + + "bfd-ip-mh:session-groups/bfd-ip-mh:session-group" { + uses bfd-large-common; + description + "Augment the 'bfd' container to add attributes related to BFD + Encapsulated in Large Packets."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + + "bfd-lag:sessions/bfd-lag:session" { + uses bfd-large-common; + description + "Augment the 'bfd' container to add attributes related to BFD + Encapsulated in Large Packets."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls/" + + "bfd-mpls:session-groups/bfd-mpls:session-group" { + uses bfd-large-common; + description + "Augment the 'bfd' container to add attributes related to BFD + Encapsulated in Large Packets."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bfd-opt-auth@2024-07-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-bfd-opt-auth@2024-07-04.yang new file mode 100644 index 000000000..25b6ac9e8 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-bfd-opt-auth@2024-07-04.yang @@ -0,0 +1,193 @@ +module ietf-bfd-opt-auth { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth"; + prefix "bfdoa"; + + import ietf-routing { + prefix "rt"; + reference + "RFC 8349: A YANG Data Model for Routing Management + (NMDA version)"; + } + + import ietf-bfd { + prefix bfd; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-ip-sh { + prefix bfd-ip-sh; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-ip-mh { + prefix bfd-ip-mh; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-lag { + prefix bfd-lag; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-mpls { + prefix bfd-mpls; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-key-chain { + prefix key-chain; + reference + "RFC 8177: YANG Key Chain."; + } + + organization + "IETF BFD Working Group"; + + contact + "WG Web: + WG List: + + Authors: Mahesh Jethanandani (mjethanandani@gmail.com) + Ashesh Mishra (mishra.ashesh@gmail.com) + Ankur Saxena (ankurpsaxena@gmail.com) + Manav Bhatia (mnvbhatia@google.com)."; + + description + "This YANG module augments the base BFD YANG model to add + attributes related to BFD Optimized Authentication. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + revision "2024-07-04" { + description + "Initial Version."; + reference + "RFC XXXX: Optimizing BFD Authentication."; + } + + feature optimized-auth { + description + "When enabled, this implementation supports optimized + authentication as described in this document."; + } + + identity optimized-md5-meticulous-keyed-isaac { + base key-chain:crypto-algorithm; + description + "BFD Optimized Authentication using Meticulous Keyed MD5 as the + strong authentication and Meticulous Keyed ISAAC Keyed as the + 'optimized' authentication."; + reference + "I-D.ietf-bfd-optimizing-authentication: + Meticulous Keyed ISAAC for BFD Authentication. + I-D.ietf-bfd-secure-sequence-numbers: + Meticulous Keyed ISAAC for BFD Authentication."; + } + + identity optimized-sha1-meticulous-keyed-isaac { + base key-chain:crypto-algorithm; + description + "BFD Optimized Authentication using Meticulous Keyed SHA-1 as + the strong authentication and Meticulous Keyed ISAAC Keyed as + the 'optimized' authentication."; + reference + "I-D.ietf-bfd-optimizing-authentication: + Meticulous Keyed ISAAC for BFD Authentication. + I-D.ietf-bfd-secure-sequence-numbers: + Meticulous Keyed ISAAC for BFD Authentication."; + } + + grouping bfd-opt-auth-config { + description + "Grouping for BFD Optimized Authentication Parameters."; + leaf reauth-interval { + type uint32; + units "seconds"; + default "60"; + description + "Interval of time after which strong authentication + should be utilized to prevent an on-path-attacker attack. + Default is 1 minute. + + A value of zero means that we do not do periodic + re-authorization using strong authentication. + + This value SHOULD have jitter applied to it to avoid + self-synchronization during expensive authentication + operations."; + } + } + + augment "/rt:routing/rt:control-plane-protocols" + + "/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh" + + "/bfd-ip-sh:sessions/bfd-ip-sh:session" + + "/bfd-ip-sh:authentication" { + uses bfd-opt-auth-config; + + description + "Augment the 'authentication' container in BFD module to + add attributes related to BFD optimized authentication."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh/" + + "bfd-ip-mh:session-groups/bfd-ip-mh:session-group/" + + "bfd-ip-mh:authentication" { + uses bfd-opt-auth-config; + + description + "Augment the 'authentication' container in BFD module to + add attributes related to BFD optimized authentication."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + + "bfd-lag:sessions/bfd-lag:session/" + + "bfd-lag:authentication" { + uses bfd-opt-auth-config; + + description + "Augment the 'authentication' container in BFD module to + add attributes related to BFD optimized authentication."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls/" + + "bfd-mpls:session-groups/bfd-mpls:session-group/" + + "bfd-mpls:authentication" { + uses bfd-opt-auth-config; + + description + "Augment the 'authentication' container in BFD module to + add attributes related to BFD optimized authentication."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bfd-stability@2021-04-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-bfd-stability@2021-04-11.yang deleted file mode 100644 index 62f045f40..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-bfd-stability@2021-04-11.yang +++ /dev/null @@ -1,174 +0,0 @@ -module ietf-bfd-stability { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-stability"; - prefix "bfds"; - - import ietf-yang-types { - prefix "yang"; - reference - "RFC 6991: Common YANG Data Types"; - } - - import ietf-routing { - prefix "rt"; - reference - "RFC 8349: A YANG Data Model for Routing Management - (NMDA version)"; - } - - import ietf-bfd { - prefix bfd; - reference - "I-D.ietf-bfd-yang: YANG Data Model for Bidirectional - Forwarding Detection."; - } - - import ietf-bfd-ip-sh { - prefix bfd-ip-sh; - reference - "I-D.ietf-bfd-yang: YANG Data Model for Bidirectional - Forwarding Detection."; - } - - import ietf-bfd-ip-mh { - prefix bfd-ip-mh; - reference - "I-D.ietf-bfd-yang: YANG Data Model for Bidirectional - Forwarding Detection."; - } - - import ietf-bfd-lag { - prefix bfd-lag; - reference - "I-D.ietf-bfd-yang: YANG Data Model for Bidirectional - Forwarding Detection."; - } - - import ietf-bfd-mpls { - prefix bfd-mpls; - reference - "I-D.ietf-bfd-yang: YANG Data Model for Bidirectional - Forwarding Detection."; - } - - organization - "IETF BFD Working Group"; - - contact - "WG Web: - WG List: - - Authors: Mahesh Jethanandani (mjethanandani@gmail.com) - Ashesh Mishra (mishra.ashesh@gmail.com) - Ankur Saxena (ankurpsaxena@gmail.com) - Santosh Pallagatti (santosh.pallagati@gmail.com) - Mach Chen (mach.chen@huawei.com) - Peng Fan (fanp08@gmail.com)."; - - description - "This YANG module augments the base BFD YANG model to add - attributes related to BFD Stability. In particular it adds a - a per session count for BFD packets that are lost. - - Copyright (c) 2021 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself - for full legal notices. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here."; - - revision "2021-04-11" { - description - "Initial Version."; - reference - "RFC XXXX, BFD Stability."; - } - - augment "/rt:routing/rt:control-plane-protocols/" + - "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" + - "bfd-ip-sh:sessions/bfd-ip-sh:session/" + - "bfd-ip-sh:session-statistics" { - leaf lost-packet-count { - type yang:counter32; - description - "Number of BFD packets that were lost without bringing the - session down."; - } - description - "Augment the 'bfd' container to add attributes related to BFD - stability."; - } - - augment "/rt:routing/rt:control-plane-protocols/" + - "rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh/" + - "bfd-ip-mh:session-groups/bfd-ip-mh:session-group/" + - "bfd-ip-mh:sessions/bfd-ip-mh:session-statistics" { - leaf lost-packet-count { - type yang:counter32; - description - "Number of BFD packets that were lost without bringing the - session down."; - } - description - "Augment the 'bfd' container to add attributes related to BFD - stability."; - } - - augment "/rt:routing/rt:control-plane-protocols/" + - "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + - "bfd-lag:sessions/bfd-lag:session/bfd-lag:member-links/" + - "bfd-lag:micro-bfd-ipv4/bfd-lag:session-statistics" { - leaf lost-packet-count { - type yang:counter32; - description - "Number of BFD packets that were lost without bringing the - session down."; - } - description - "Augment the 'bfd' container to add attributes related to BFD - stability."; - } - - augment "/rt:routing/rt:control-plane-protocols/" + - "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + - "bfd-lag:sessions/bfd-lag:session/bfd-lag:member-links/" + - "bfd-lag:micro-bfd-ipv6/bfd-lag:session-statistics" { - leaf lost-packet-count { - type yang:counter32; - description - "Number of BFD packets that were lost without bringing the - session down."; - } - description - "Augment the 'bfd' container to add attributes related to BFD - stability."; - } - - augment "/rt:routing/rt:control-plane-protocols/" + - "rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls/" + - "bfd-mpls:session-groups/bfd-mpls:session-group/" + - "bfd-mpls:sessions/bfd-mpls:session-statistics" { - leaf lost-packet-count { - type yang:counter32; - description - "Number of BFD packets that were lost without bringing the - session down."; - } - description - "Augment the 'bfd' container to add attributes related to BFD - stability."; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bfd-stability@2024-07-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-bfd-stability@2024-07-05.yang new file mode 100644 index 000000000..b91c4a290 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-bfd-stability@2024-07-05.yang @@ -0,0 +1,257 @@ +module ietf-bfd-stability { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-stability"; + prefix "bfds"; + + import ietf-yang-types { + prefix "yang"; + reference + "RFC 6991: Common YANG Data Types"; + } + + import ietf-routing { + prefix "rt"; + reference + "RFC 8349: A YANG Data Model for Routing Management + (NMDA version)"; + } + + import ietf-bfd { + prefix bfd; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-ip-sh { + prefix bfd-ip-sh; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-ip-mh { + prefix bfd-ip-mh; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-lag { + prefix bfd-lag; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-bfd-mpls { + prefix bfd-mpls; + reference + "RFC 9314: YANG Data Model for Bidirectional + Forwarding Detection."; + } + + import ietf-key-chain { + prefix key-chain; + reference + "RFC 8177: YANG Key Chain."; + } + + organization + "IETF BFD Working Group"; + + contact + "WG Web: + WG List: + + Authors: Mahesh Jethanandani (mjethanandani@gmail.com) + Ashesh Mishra (mishra.ashesh@gmail.com) + Ankur Saxena (ankurpsaxena@gmail.com) + Santosh Pallagatti (santosh.pallagati@gmail.com) + Mach Chen (mach.chen@huawei.com)."; + + description + "This YANG module augments the base BFD YANG model to add + attributes related to BFD Stability. In particular it adds a + a per session count for BFD packets that are lost. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + revision "2024-07-05" { + description + "Initial Version."; + reference + "RFC XXXX: BFD Stability."; + } + + feature stability { + description + "If supported, the feature allows for BFD sessions to be + monitored for frames lost."; + } + + identity null-auth { + base key-chain:crypto-algorithm; + description + "BFD Null Auth type defined in this draft."; + reference + "RFC XXXX: BFD Stability."; + } + + grouping lost-packet-count { + leaf lost-packet-count { + if-feature "stability"; + type yang:counter64; + description + "Number of BFD packets that were lost without bringing the + session down. This counter should be present only if + stability is configured."; + } + description + "Grouping of statistics related to BFD stability."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" + + "bfd-ip-sh:sessions/bfd-ip-sh:session" { + leaf stability { + if-feature "stability"; + type boolean; + must "../bfd-ip-sh:authentication/bfd-ip-sh:meticulous = " + + "'true'"; + default false; + description + "If set to true, this enables the BFD session to monitor + for stability; i.e., to watch how many frames are getting + dropped."; + } + description + "Augment the 'bfd' container to add attributes related to BFD + stability for IP Single Hop Sessions."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh/" + + "bfd-ip-mh:session-groups/bfd-ip-mh:session-group" { + leaf stability { + if-feature "stability"; + type boolean; + must "../bfd-ip-mh:authentication/bfd-ip-mh:meticulous = " + + "'true'"; + default false; + description + "If set to true, this enables the BFD session to monitor + for stability; i.e., to watch how many frames are getting + dropped."; + } + description + "Augment the 'bfd' container to add attributes related to BFD + stability for Multi Hop Sessions."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + + "bfd-lag:sessions/bfd-lag:session" { + leaf stability { + if-feature "stability"; + type boolean; + must "../bfd-lag:authentication/bfd-lag:meticulous = " + + "'true'"; + default false; + description + "If set to true, this enables the BFD session to monitor + for stability; i.e., to watch how many frames are getting + dropped."; + } + description + "Augment the 'bfd' container to add attributes related to BFD + stability for LAG session."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls/" + + "bfd-mpls:session-groups/bfd-mpls:session-group" { + leaf stability { + if-feature "stability"; + type boolean; + must "../bfd-mpls:authentication/bfd-mpls:meticulous = " + + "'true'"; + default false; + description + "If set to true, this enables the BFD session to monitor + for stability; i.e., to watch how many frames are getting + dropped."; + } + description + "Augment the 'bfd' container to add attributes related to BFD + stability for MPLS."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" + + "bfd-ip-sh:sessions/bfd-ip-sh:session/" + + "bfd-ip-sh:session-statistics" { + uses lost-packet-count; + description + "Augment the 'bfd' container to add statistics related to BFD + stability for IP Single Hop Sessions."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh/" + + "bfd-ip-mh:session-groups/bfd-ip-mh:session-group/" + + "bfd-ip-mh:sessions/bfd-ip-mh:session-statistics" { + uses lost-packet-count; + description + "Augment the 'bfd' container to add statistics related to BFD + stability for IP Multi Hop Sessions."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + + "bfd-lag:sessions/bfd-lag:session/bfd-lag:member-links/" + + "bfd-lag:micro-bfd-ipv4/bfd-lag:session-statistics" { + uses lost-packet-count; + description + "Augment the 'bfd' container to add statistics related to BFD + stability for Micro BFD sessions for IPv4."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-lag:lag/" + + "bfd-lag:sessions/bfd-lag:session/bfd-lag:member-links/" + + "bfd-lag:micro-bfd-ipv6/bfd-lag:session-statistics" { + uses lost-packet-count; + description + "Augment the 'bfd' container to add statistics related to BFD + stability for Micro BFD sessions for IPv6."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls/" + + "bfd-mpls:session-groups/bfd-mpls:session-group/" + + "bfd-mpls:sessions/bfd-mpls:session-statistics" { + uses lost-packet-count; + description + "Augment the 'bfd' container to add statistics related to BFD + stability for MPLS sessions."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-aspa@2022-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-aspa@2022-10-18.yang index cbe6651cb..28319db6f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-aspa@2022-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-aspa@2022-10-18.yang @@ -29,6 +29,12 @@ module ietf-bgp-aspa { "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)"; } + import ietf-routing-policy { + prefix rt-pol; + reference + "RFC 9067: A YANG Data Model for Routing Policy Management."; + } + organization "IETF SIDROPS Working Group"; @@ -41,6 +47,7 @@ module ietf-bgp-aspa { This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. + Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -145,6 +152,16 @@ module ietf-bgp-aspa { description "Whether ASPA verification of BGP prefix is enabled."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which ASPA verification + is enabled."; + } description "ASPA verification of BGP prefix."; } @@ -177,11 +194,46 @@ module ietf-bgp-aspa { verification state to be taken into consideration in the best-path calculation."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which ASPA option + is enabled in BGP route selection."; + } description "ASPA option for BGP route selection."; } } + grouping export-aspa-validation-config { + description + "Export AS PATH validation of BGP prefix."; + container export-aspa-validation { + leaf enabled { + type boolean; + default "false"; + description + "When enabled allows the AS PATH validity states to be + taken into consideration in BGP export."; + } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which AS PATH validity + states are considered in BGP export."; + } + description + "Export AS PATH validation of BGP prefix."; + } + } augment "/rt:routing/rt:control-plane-protocols" + "/rt:control-plane-protocol/bgp:bgp/bgp:neighbors" + "/bgp:neighbor" { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-origin-as-validation@2022-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-origin-as-validation@2022-10-18.yang index 9b0f29ce6..3138803f9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-origin-as-validation@2022-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-origin-as-validation@2022-10-18.yang @@ -35,6 +35,12 @@ module ietf-bgp-origin-as-validation { "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)"; } + import ietf-routing-policy { + prefix rt-pol; + reference + "RFC 9067: A YANG Data Model for Routing Policy Management."; + } + organization "IETF SIDROPS Working Group"; @@ -118,6 +124,16 @@ module ietf-bgp-origin-as-validation { description "Whether origin-AS validation of BGP prefix is enabled."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which Origin AS validation + is enabled."; + } leaf redistribution-as { type inet:as-number; description @@ -159,6 +175,16 @@ module ietf-bgp-origin-as-validation { AS to be taken into consideration in the best-path calculation."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which Origin AS option + is enabled for BGP route selection."; + } description "Origin AS option for BGP route selection."; } @@ -179,6 +205,16 @@ module ietf-bgp-origin-as-validation { "RFC 8097, BGP Prefix Origin Validation State Extended Community."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which Origin Validation + State Extended Community is advertised."; + } } grouping export-origin-as-validation-config { @@ -199,6 +235,16 @@ module ietf-bgp-origin-as-validation { "When enabled allows the route with 'not-found' origin AS to be sent to the neighbor."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which Origin AS validity + states are considered in BGP export."; + } description "Export Origin AS validation of BGP prefix."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-sec@2022-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-sec@2022-10-18.yang index 886dff8ac..abfe62ace 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-sec@2022-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-sec@2022-10-18.yang @@ -29,6 +29,12 @@ module ietf-bgp-sec { "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)"; } + import ietf-routing-policy { + prefix rt-pol; + reference + "RFC 9067: A YANG Data Model for Routing Policy Management."; + } + organization "IETF SIDROPS Working Group"; @@ -106,6 +112,16 @@ module ietf-bgp-sec { description "Whether BGPsec validation of BGP prefix is enabled."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which BGPsec validation + is enabled."; + } description "BGPsec validation of BGP prefix."; } @@ -130,6 +146,16 @@ module ietf-bgp-sec { to be taken into consideration in the best-path calculation."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which BGPsec option + is enabled in BGP route selection."; + } description "BGPsec option for BGP route selection."; } @@ -146,11 +172,20 @@ module ietf-bgp-sec { "When enabled allows the BGPsec validity states to be taken into consideration in BGP export."; } + leaf eligible-prefix-policy { + type leafref { + path "/rt-pol:routing-policy/rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + } + description + "A reference to a routing policy which can be used to + restrict the prefixes for which BGPsec validity + states are considered in BGP export."; + } description "Export BGPsec validation of BGP prefix."; } } - augment "/rt:routing/rt:control-plane-protocols" + "/rt:control-plane-protocol/bgp:bgp/bgp:global" + "/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast" { @@ -233,6 +268,7 @@ module ietf-bgp-sec { "augmentation of BGPSec for IPv4 Unicast peer group"; uses export-bgpsec-validation-config; } + augment "/rt:routing/rt:control-plane-protocols" + "/rt:control-plane-protocol/bgp:bgp/bgp:peer-groups" + "/bgp:peer-group/bgp:afi-safis/bgp:afi-safi" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bier-te@2021-11-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-bier-te@2024-01-23.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-bier-te@2021-11-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bier-te@2024-01-23.yang index da042c7b0..8b739a708 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bier-te@2021-11-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bier-te@2024-01-23.yang @@ -3,6 +3,7 @@ module ietf-bier-te { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-bier-te"; + prefix bier-te; import ietf-inet-types { @@ -75,11 +76,11 @@ module ietf-bier-te { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2021-11-08 { + revision 2024-01-23 { description "Initial revision."; reference - "I-D.ietf-bier-te-arch: Tree Engineering for Bit Index + "RFC9262: Tree Engineering for Bit Index Explicit Replication (BIER-TE)"; } @@ -103,7 +104,7 @@ module ietf-bier-te { "Identity for the Tree Engineering for Bit Index Explicit Replication (BIER-TE)."; reference - "I-D.ietf-bier-te-arch: Tree Engineering for Bit Index + "RFC9262: Tree Engineering for Bit Index Explicit Replication (BIER-TE)"; } @@ -137,7 +138,7 @@ module ietf-bier-te { "The bit string which each bit represents an adjacency. It is encapsulated in BIER header."; reference - "I-D.ietf-bier-te-arch: Tree Engineering for Bit Index + "RFC9262: Tree Engineering for Bit Index Explicit Replication (BIER-TE), section 3.3. RFC8279: Multicast Using Bit Index Explicit Replication (BIER). diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bmp@2022-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-bmp@2022-10-18.yang deleted file mode 100644 index 6610188bc..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-bmp@2022-10-18.yang +++ /dev/null @@ -1,763 +0,0 @@ -module ietf-bmp { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-bmp"; - prefix bmp; - - import ietf-yang-types { - prefix yang; - } - - import ietf-inet-types { - prefix inet; - reference - "RFC 6991: Common YANG Data Types"; - } - - import ietf-bgp-types { - prefix bt; - reference - "RFC AAAA: BGP YANG module for Service Provider Network. - RFC-EDITOR: please update XXX with the RFC ID assigned - to I-D.ietf-idr-bgp-model"; - } - - import ietf-netconf-acm { - prefix nacm; - reference - "RFC 8341: Network Configuration Access Control Model"; - } - - import ietf-tcp-common { - prefix "tcpcmn"; - reference - "I-D.ietf-netconf-tcp-client-server: YANG Groupings for TCP - Clients and TCP Servers."; - } - - import ietf-network-instance { - prefix "ni"; - reference - "RFC 8529: YANG Data Model for Network Instances"; - } - - import ietf-routing-policy { - prefix "rt-pol"; - reference - "RFC 9067: A YANG Data Model for Routing Policy"; - - } - - import ietf-key-chain { - prefix key-chain; - reference - "RFC 8177: YANG Key Chain."; - } - - organization - "IETF GROW Working Group"; - contact - "WG Web: - WG List: - - Author: Camilo Cardona - - - Author: Paolo Lucente - - - Author: Thomas Graf - - Author: Benoit Claise - "; - description - "This module specifies a structure for BMP - (BGP Monitoring Protocol) configuration and monitoring. - - 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) 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 9196 - (https://www.rfc-editor.org/info/rfc9196); see the RFC itself - for full legal notices."; - - revision 2022-10-18 { - description - "initial version"; - reference - "RFC YYYY: BMP YANG Module - RFC-EDITOR: please update YYYY with this RFC ID"; - } - - identity bmp-peer-types { - description - "Enum values for multiple selecting peer's - Routing Information Bases (RIB) for configuration."; - } - - identity bmp-peer-types-all-peers { - base bmp-peer-types; - description - "This identity selects all peer's RIBs. - When used, it act as a 'default' configuration."; - } - - identity bmp-ni-types { - description "Enum values for selecting multiple Network instances - for configuration"; - } - - identity bmp-ni-types-all-ni { - base bmp-ni-types; - description "The identify is an explicit way - of selecting all network instances."; - } - - identity bmp-ni-types-global-ni { - base bmp-ni-types; - description "Selects the global network instance"; - } - - grouping bmp-tcp-options { - description - "TCP options for the connection to the station"; - leaf maximum-segment-size { - type uint16; - description - "Maximum segment size for the TCP connections."; - } - - // Taken from the bgp yang module - leaf mtu-discovery { - type boolean; - description - "Turns path mtu discovery for the TCP sessions - on (true) or off (false)."; - reference - "RFC 1191: Path MTU discovery."; - } - uses tcpcmn:tcp-common-grouping; - - // taken from the bgp yang module - leaf secure-session-enable { - type boolean; - default "false"; - description - "Does this session need to be secured?"; - } - - container secure-session { - when "../secure-session-enable = 'true'"; - description - "Container for describing how a particular BMP session - is to be secured."; - - choice authentication { - case ao { - leaf ao-keychain { - type key-chain:key-chain-ref; - description - "Reference to the key chain that will be used by - this model. Applicable for TCP-AO and TCP-MD5 - only"; - reference - "RFC 8177: YANG Key Chain."; - } - description - "Uses TCP-AO to secure the session. Parameters for - those are defined as a grouping in the TCP YANG - model."; - reference - "RFC 5925 - The TCP Authentication Option."; - } - - case md5 { - leaf md5-keychain { - type key-chain:key-chain-ref; - description - "Reference to the key chain that will be used by - this model. Applicable for TCP-AO and TCP-MD5 - only"; - reference - "RFC 8177: YANG Key Chain."; - } - description - "Uses TCP-MD5 to secure the session. Parameters for - those are defined as a grouping in the TCP YANG - model."; - reference - "RFC 5925: The TCP Authentication Option."; - } - description - "Choice of TCP authentication."; - } - } - - } - - grouping bmp-ip-connection { - description - "common elements for defining connectivity - to a BMP monitoring station"; - choice passive-or-active { - description - "Choice for active or passive connection as described - in section 3.2 of RFC 7854"; - case active { - description - "The device starts the connection to the monitoring - station"; - container active { - description - "The device starts the connection to - the monitoring station"; - leaf network-instance { - type leafref { - path "/ni:network-instances/ni:network-instance/" - + "ni:name"; - } - description - "If present, specifies the network instance - used to reach the monitoring station. - If not provided, the global network instance is used."; - } - leaf station-address { - type inet:ip-address; - mandatory true; - description - "Destination IP address of monitoring station"; - } - leaf station-port { - type inet:port-number; - mandatory true; - description - "Destination port of the station"; - } - leaf local-address { - type inet:ip-address; - mandatory true; - description - "Local IP address to source active connection"; - } - leaf local-port { - type inet:port-number; - description - "Optional Local port for active connection"; - } - - } - - } - - case passive { - description - "The device waits for the connection - in a local endpoint"; - container passive { - description - "The device waits for the connection - in a local endpoint"; - leaf network-instance { - type leafref { - path "/ni:network-instances/ni:network-instance/" - + "ni:name"; - } - description - "If present, specifies the network instance - used to reach the monitoring station. - If not provided, the global network instance is used."; - } - leaf station-address { - type inet:ip-address; - mandatory true; - description - "address of the station"; - } - leaf station-port { - type inet:port-number; - description - "Optional value identifying the origin port of - the connection, if provided it MUST match"; - } - leaf local-address { - type inet:ip-address; - mandatory true; - description - "Local IP address to wait for the connection"; - } - leaf local-port { - type inet:port-number; - mandatory true; - description - "Local port to wait for the connection"; - } - - } - } - } - } - - grouping bmp-source-configuration { - description - "Group containing some general characteristics for configuring - a BMP source"; - - container filters { - description - "Includes containers specifying filters for deciding - which routes to export to the station"; - container policy-filter { - description - "Filter routes based on a policy. - The policy SHOULD not perform any action besides - filtering routes. - The policy SHOULD only contain accept and reject - routes, and the matching conditions SHOULD only - match prefix sets."; - leaf-list export-policy { - type leafref { - path "/rt-pol:routing-policy/" - + "rt-pol:policy-definitions/" - + "rt-pol:policy-definition/rt-pol:name"; - require-instance true; - } - ordered-by user; - description - "List of policy names in sequence used to select - routes to be exported to station."; - } - leaf default-export-policy { - type rt-pol:default-policy-type; - default "accept-route"; - description - "Explicitly set a default policy if no policy - definition in the export policy chain - is satisfied."; - } - } - } - } - - grouping bmp-peer-ribs-filter { - description - "Leaves for configuring RIBs where - origin/destination peers are defined."; - - container address-families { - description - "container for lists of address-families"; - list address-family { - key "address-family-id"; - description - "List of address families. - The name of the address family, as defined - in the BGP model is used for keying."; - - // If we knew the network instance, - // we could list the AF directly from the configured - // ones, as we for instance show next for the global one. - // leaf name { - // type leafref { - // path "/rt:routing/rt:control-plane-protocols/" - // + "rt:control-plane-protocol/bgp:bgp/" - // + "bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:name"; - // } - // description - // "Name of the address family"; - // } - // However, since is not aware if we are doing global, - // and individual NT or a default, we cannot - // contraint it to this. - leaf address-family-id { - type identityref { - base bt:afi-safi-type; - } - description - "Address family id to configure"; - } - - leaf enabled { - type boolean; - default true; - description - "Enables route monitoring messages - for the address family"; - } - - container peers { - description - "Identification of peers - for which we send BMP data to the collector"; - list peer { - key "peer-id"; - description - "Identification of peers - for which we send BMP data to the collector"; - leaf peer-id { - type union { - // inet:ip-address reflects a neighbor - // but since the model is not aware of - // the ni, it doesn not know from where to get it - // e.g. if we knew were were referencing - // the global instance, we could do: - // type leafref { - // path "/rt:routing/rt:control-plane-protocols/" - // + "rt:control-plane-protocol/bgp:bgp/" - // + "bgp:neighbors/bgp:neighbor/" - // + "bgp:remote-address"; - // } - type inet:ip-address; - type bt:peer-type; - type identityref { - base bmp-peer-types; - } - } - description - "Peers can be identified by a remote-address, - by the bgp type of the peers, - or by an enum value corresponding to groups - of peers. This way an operator can - select, for example, all external peers, - all internal peers, or all peers."; - } - - leaf enabled { - type boolean; - default true; - description - "Enables routing monitoring messages - for the peer(s)."; - } - uses bmp-source-configuration; - - } - } - } - } - } - - grouping bmp-route-monitoring-sources { - description - "Route monitoring sources"; - reference "RFC7854: BGP Monitoring Protocol, Section 5."; - - container network-instances { - description - "container for lists of network-instances"; - list network-instance { - key "network-instance-id"; - description - "Network instance to monitory using BMP."; - - leaf network-instance-id { - type union { - type leafref { - path "/ni:network-instances/ni:network-instance/" - + "ni:name"; - } - type identityref { - base bmp-ni-types; - } - } - description - "Identification of a network-instance. - Network instances can be identified - directly by their path or use an identity to - identify one or a group of them - (e.g. bmp-ni-types-all-ni for all of them)"; - - } - - leaf enabled { - type boolean; - default true; - description - "Enables routing monitoring - messages for the network instance."; - } - - container adj-rib-in-pre { - description - "Configuration for the adj-rib-in pre-policy"; - reference - "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; - uses bmp-peer-ribs-filter; - } - container adj-rib-in-post { - description - "Configuration for the adj-rib-in post-policy"; - reference - "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; - uses bmp-peer-ribs-filter; - } - container local-rib { - description - "Configuration for the local-rib"; - reference - "RFC9069: Support for Local RIB in the BGP Monitoring - Protocol (BMP), Section 3."; - - container address-families { - description - "List of address families to enable for - local-rib."; - list address-family { - key "address-family-id"; - description - "Address family to enable for local-rib"; - leaf address-family-id { - type identityref { - base bt:afi-safi-type; - } - description - "Address family id to enable for local-rib"; - } - uses bmp-source-configuration; - } - } - } - container adj-rib-out-pre { - description - "Configuration for the adj-rib-out pre-policy"; - uses bmp-peer-ribs-filter; - reference - "RFC8671: Support for Adj-RIB-Out in the BGP Monitoring - Protocol (BMP) , Section 3."; - } - container adj-rib-out-post { - description - "Configuration for the adj-rib-out post-policy"; - uses bmp-peer-ribs-filter; - reference - "RFC8671: Support for Adj-RIB-Out in the BGP Monitoring - Protocol (BMP) , Section 3."; - } - } - - } - - } - - container bmp { - description - "Main level for BMP configuration "; - container monitoring-stations { - description - "Container for the list of BMP monitoring stations"; - list monitoring-station { - key "id"; - description - "Configuration for a BMP monitoring station."; - leaf id { - type string; - description - "Identification string for the monitoring station"; - } - // Connection, missing tcp tuning params - // like keep-alives, segment sizes, etc. - container connection { - description - "Connection details for the monitoring station"; - uses bmp-ip-connection; - - container tcp-options { - description - "TCP options for the connection to the monitoring - station"; - uses bmp-tcp-options; - } - - leaf initial-delay { - type uint32; - units "seconds"; - default 0; - description - "Initial delay of the connection to the station"; - } - - container backoff { - description - "Configures the backoff strategy after a connection - retry"; - reference "RFC7854 Section 3.2"; - choice backoff-options { - description - "Options for backoff strategies"; - reference "RFC7854 Section 3.2"; - case simple-exponential { - description - "Simple exponential backoff with limits."; - container simple-exponential { - description - "Simple exponential backoff with limits. - Starts with the initial backoff and doubles - the backoff of every retry until reaching the - maximum backoff"; - leaf initial-backoff { - type uint32; - units "seconds"; - default 30; - description - "Initial backoff time"; - } - leaf maximum-backoff { - type uint32; - units "seconds"; - default 720; - description - "Maximum backoff time"; - } - } - } - } - } - } - - container bmp-data { - description - "Configuration of BMP data"; - - leaf initiation-message { - type string; - description - "User defined message to append to the - initiation message"; - reference "RFC7854: BGP Monitoring Protocol, - Section 4.3 and 4.4"; - } - - container bmp-statistics-report { - presence "Enables the BMP statistics report"; - - description "Configuration of the statistics report"; - reference "RFC7854: BGP Monitoring Protocol, - Section 4.8"; - - leaf statistics-interval { - type uint32; - units "seconds"; - mandatory true; - description - "Interval for statistic report message."; - } - - } - - container bmp-route-monitoring { - description - "Configuration of the data sources for - route-monitoring messages"; - uses bmp-route-monitoring-sources; - } - } - - container session-stats { - config false; - description - "stats and operational values for the station"; - - leaf discontinuity-time { - type yang:date-and-time; - mandatory true; - description - "The time on the most recent occasion at which any - one or more of this station's counters suffered a - discontinuity. If no such discontinuities have - occurred since the last re-initialization of the - local management subsystem, then this node contains - the time the local management subsystem - re-initialized itself."; - } - - leaf established-session { - type boolean; - description - "Value indicating if the session is currently - established"; - } - leaf total-route-monitoring-messages { - type uint64; - description - "Number of route-monitoring messages sent since last - successful connection"; - } - leaf total-statistics-messages { - type uint64; - description - "Number of statistics messages sent since last - successful connection"; - } - leaf total-peer-down-messages { - type uint64; - description - "Number of peer-down messages sent since last - successful connection"; - } - leaf total-peer-up-messages { - type uint64; - description - "Number of peer-up messages sent since last successful - connection"; - } - leaf total-initiation-messages { - type uint64; - description - "Number of initiation messages sent since last - successful connection"; - } - leaf total-route-mirroring-messages { - type uint64; - description - "Number of route-mirroring messages sent since last - successful connection"; - } - } - - container actions { - nacm:default-deny-all; - description - "Container with the actions for the BMP operation"; - action session-reset { - description - "Resets the session for a station."; - output { - choice outcome { - description - "Output of the reset operation. Either a success or - failure. For the latter, the reason for the - error is provided."; - leaf success { - type empty; - description - "Reset successful"; - } - leaf failure { - type string; - description - "Reset could not be performed. - Reason is included in the field"; - } - } - } - } - } - - } - - } - - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bmp@2024-04-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-bmp@2024-04-03.yang new file mode 100644 index 000000000..f0a165613 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-bmp@2024-04-03.yang @@ -0,0 +1,1120 @@ +module ietf-bmp { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-bmp"; + prefix bmp; + + import ietf-yang-types { + prefix yang; + } + import ietf-routing { + prefix rt; + reference + "RFC 8349: A YANG Data Model for Routing Management + (NMDA Version)."; + } + import ietf-bgp { + prefix bgp; + reference + "I-D.draft-ietf-idr-bgp-model-17: + BGP YANG module for Service Provider Network."; + } + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-bgp-types { + prefix bt; + reference + "RFC AAAA: BGP YANG module for Service Provider Network. + RFC-EDITOR: please update XXX with the RFC ID assigned + to I-D.ietf-idr-bgp-model"; + } + import ietf-netconf-acm { + prefix nacm; + reference + "RFC 8341: Network Configuration Access Control Model"; + } + import ietf-tcp-common { + prefix tcpcmn; + reference + "I-D.ietf-netconf-tcp-client-server: YANG Groupings for TCP + Clients and TCP Servers."; + } + import ietf-routing-policy { + prefix rt-pol; + reference + "RFC 9067: A YANG Data Model for Routing Policy"; + } + import ietf-key-chain { + prefix key-chain; + reference + "RFC 8177: YANG Key Chain."; + } + + organization + "IETF GROW Working Group"; + contact + "WG Web: + WG List: + + Author: Camilo Cardona + + + Author: Paolo Lucente + + + Author: Thomas Graf + + + Author: Benoit Claise + "; + description + "This module specifies a structure for BMP + (BGP Monitoring Protocol) configuration and monitoring. + + 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) 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 9196 + (https://www.rfc-editor.org/info/rfc9196); see the RFC itself + for full legal notices."; + + revision 2024-04-03 { + description + "initial version"; + reference + "RFC YYYY: BMP YANG Module + RFC-EDITOR: please update YYYY with this RFC ID"; + } + + identity bmp-peer-types { + description + "Enum values for selecting peers"; + } + + identity bmp-peer-types-all-peers { + base bmp-peer-types; + description + "This identity selects all peer's RIBs. + When used, it act as a 'default' configuration."; + } + + identity bmp-ni-types { + description + "Enum values for selecting multiple Network instances + for configuration"; + } + + identity bmp-ni-types-all-ni { + base bmp-ni-types; + description + "The identify is an explicit way + of selecting all network instances."; + } + + identity bmp-ni-types-global-ni { + base bmp-ni-types; + description + "Configuring the global one"; + } + + identity bmp-ni-types-non-global-ni { + base bmp-ni-types; + description + "The identify is an explicit way + of selecting all network instances, except th e global-one."; + } + + grouping bmp-tcp-options { + description + "TCP options for the connection to the station"; + leaf maximum-segment-size { + type uint16; + description + "Maximum segment size for the TCP connections. + In the absence of this container, the system + would select the maximum segment size for this + connection"; + } + // Taken from the bgp yang module + leaf mtu-discovery { + type boolean; + default "true"; + description + "Turns path mtu discovery for the TCP sessions + on (true) or off (false)."; + reference + "RFC 1191: Path MTU discovery."; + } + uses tcpcmn:tcp-common-grouping; + // taken from the bgp yang module + leaf secure-session-enable { + type boolean; + default "false"; + description + "Does this session need to be secured?"; + } + container secure-session { + when "../secure-session-enable = 'true'"; + description + "Container for describing how a particular BMP session + is to be secured."; + choice authentication { + mandatory true; + case ao { + leaf ao-keychain { + type key-chain:key-chain-ref; + description + "Reference to the key chain that will be used by + this model. Applicable for TCP-AO and TCP-MD5 + only"; + reference + "RFC 8177: YANG Key Chain."; + } + description + "Uses TCP-AO to secure the session. Parameters for + those are defined as a grouping in the TCP YANG + model."; + reference + "RFC 5925 - The TCP Authentication Option."; + } + case md5 { + leaf md5-keychain { + type key-chain:key-chain-ref; + description + "Reference to the key chain that will be used by + this model. Applicable for TCP-AO and TCP-MD5 + only"; + reference + "RFC 8177: YANG Key Chain."; + } + description + "Uses TCP-MD5 to secure the session. Parameters for + those are defined as a grouping in the TCP YANG + model."; + reference + "RFC 5925: The TCP Authentication Option."; + } + description + "Choice of TCP authentication."; + } + } + } + + grouping bmp-ip-connection { + description + "common elements for defining connectivity + to a BMP monitoring station"; + choice passive-or-active { + mandatory true; + description + "Choice for active or passive connection as described + in section 3.2 of RFC 7854"; + case active { + description + "The device starts the connection to the monitoring + station"; + container active { + description + "The device starts the connection to + the monitoring station"; + leaf network-instance { + // TODO:This will not be supported for + // implementations not supporting schema-mount. + // Should just leave it as a string? + // type leafref { + // path "/ni:network-instances/ni:network-instance/" + // + "ni:name"; + // } + type string; + description + "If present, specifies the network instance + used to reach the monitoring station. + If not provided, the global network + instance is used."; + } + leaf station-address { + type inet:ip-address; + mandatory true; + description + "Destination IP address of monitoring station"; + } + leaf station-port { + type inet:port-number; + mandatory true; + description + "Destination port of the station"; + } + leaf local-address { + type inet:ip-address; + mandatory true; + description + "Local IP address to source active connection"; + } + leaf local-port { + type inet:port-number; + description + "Optional Local port for active connection"; + } + } + } + case passive { + description + "The device waits for the connection + in a local endpoint"; + container passive { + description + "The device waits for the connection + in a local endpoint"; + leaf network-instance { + // TODO:This will not be supported for + // implementations not supporting schema-mount. + // Should just leave it as a string? + // type leafref { + // path "/ni:network-instances/ni:network-instance/" + // + "ni:name"; + // } + type string; + description + "If present, specifies the network instance + used to reach the monitoring station. + If not provided, the global network + instance is used."; + } + leaf station-address { + type inet:ip-address; + mandatory true; + description + "address of the station"; + } + leaf station-port { + type inet:port-number; + description + "Optional value identifying the origin port of + the connection, if provided it MUST match"; + } + leaf local-address { + type inet:ip-address; + mandatory true; + description + "Local IP address to wait for the connection"; + } + leaf local-port { + type inet:port-number; + mandatory true; + description + "Local port to wait for the connection"; + } + } + } + } + } + + grouping bmp-source-configuration { + description + "Group containing some general characteristics for configuring + a BMP source"; + container filters { + description + "Includes containers specifying filters for deciding + which routes to export to the station"; + container policy-filter { + description + "Filter routes based on a policy. + The policy SHOULD NOT perform any action besides + filtering routes. + The policy SHOULD only contain accept and reject + routes, and the matching conditions SHOULD only + match prefix sets."; + leaf-list export-policy { + type leafref { + path "/rt-pol:routing-policy/" + + "rt-pol:policy-definitions/" + + "rt-pol:policy-definition/rt-pol:name"; + require-instance true; + } + ordered-by user; + description + "List of policy names in sequence used to select + routes to be exported to station."; + } + leaf default-export-policy { + type rt-pol:default-policy-type; + default "accept-route"; + description + "Explicitly set a default policy if no policy + definition in the export policy chain + is satisfied."; + } + } + } + } + grouping bmp-ni-peer-ribs-filter { + description + "Leaves for configuring RIBs where under the BGP + container."; + container address-families { + description + "container for lists of address-families"; + list address-family { + key "address-family-id"; + description + "List of address families. + The name of the address family, as defined + in the BGP model is used for keying."; + leaf address-family-id { + type identityref { + base bt:afi-safi-type; + } + description + "Address family id to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables route monitoring messages + for the address family"; + } + container peers-configurations { + description + "Every peer under the configured network instance can be + at most configured by one of the next containers. If the + peer is not covered by any, then no BMP message should + include information from/to that peer. If the peer is + covered by more than one, then the priority is: + 1. peers + 2. peer-groups + 3. peer-type + 4. bmp-peer-types + + New child containers or new bmp-peer-types instances + SHOULD provide a way of unambiguislly selecting which + configuration container should be selected for a peer in + case mutiple matches. + "; + container bmp-peer-types { + description + "Generic identification of peers to configure."; + list bmp-peer-type { + key "peer-types-bmp"; + description + "Identification of peers + for which we send BMP data to the collector + using a peer type defined using a peer-types-bmp. + For instance, to create a default for all + peers use bmp-peer-types-all-peers"; + leaf peer-types-bmp { + type identityref { + base bmp-peer-types; + } + description + "Peer type to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + } + container peer-types { + description + "Generic identification of peers to configure."; + list peer-type { + key "peer-type-id"; + description + "Identification of peers + for which we send BMP data to the collector + using BGP peer-type (e.g. internal, external) + "; + leaf peer-type-id { + type bt:peer-type; + description + "BGP Peer type to configure"; + } + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + container peer-groups { + description + "Identification of peer-groups + to configure"; + list peer-group { + key "peer-id"; + description + "Identification of peer-groups + for which we send BMP data to the collector"; + leaf peer-id { + type leafref { + path "../../../../../../../../../../../" + + "bgp:peer-groups/bgp:peer-group/" + + "bgp:name"; + } + description + "Peergroup to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer-group(s)."; + } + uses bmp-source-configuration; + } + } + container peers { + description + "Identification of peers + for which we send BMP data to the collector"; + list peer { + key "peer-id"; + description + "Identification of peers + for which we send BMP data to the collector"; + leaf peer-id { + type leafref { + path "../../../../../../../../../../../" + + "bgp:neighbors/bgp:neighbor/" + + "bgp:remote-address"; + } + description + "Peer to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + } + } + } + } + } + + grouping bmp-peer-ribs-filter { + description + "Leaves for configuring RIBs + under the main BMP container"; + container address-families { + description + "container for lists of address-families"; + list address-family { + key "address-family-id"; + description + "List of address families. + The name of the address family, as defined + in the BGP model is used for keying."; + leaf address-family-id { + type identityref { + base bt:afi-safi-type; + } + description + "Address family id to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables route monitoring messages + for the address family"; + } + container peers-configurations { + description + "Every peer under this BGP instance + can be at most configured by one of the next containers. + If the peer is not covered by any, then no BMP + message should include information from/to that peer. + If the peer is covered by more than one, then the + priority is: + 1. peer + 2. peer-groups + 3. peer-type + 4. bmp-peer-types + + New child containers or new bmp-peer-types instances + SHOULD provide a way of unambiguislly selecting which + configuration container should be selected for a peer in + case mutiple matches. + "; + container peers { + description + "Generic identification of peers to configure."; + list peer { + key "peer-id-str"; + description + "Identification of the peer. It is up to the + implementation to define what to do if no peer + matches this key."; + leaf peer-id-str { + type string; + description + "Peer to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + } + container peer-groups { + description + "Generic identification of peers to configure."; + list peer-group { + key "peer-group-id-str"; + description + "Identification of the peer-group. It is up to the + implementation to define what to do if no peer-group + with this name exists."; + leaf peer-group-id-str { + type string; + description + "Peer-group to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + } + container bmp-peer-types { + description + "Generic identification of peers to configure."; + list bmp-peer-type { + key "peer-types-bmp"; + description + "Identification of peers + for which we send BMP data to the collector + using a peer type defined using a peer-types-bmp. + For instance, to create a default for all + peers use bmp-peer-types-all-peers"; + leaf peer-types-bmp { + type identityref { + base bmp-peer-types; + } + description + "Peer type to configure"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + } + container peer-types { + description + "Generic identification of peers to configure."; + list peer-type { + key "peer-type-id"; + description + "Identification of peers + for which we send BMP data to the collector + using BGP peer-type (e.g. internal, external) + "; + leaf peer-type-id { + type bt:peer-type; + description + "BGP peer-type to configure"; + } + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring messages + for the peer(s)."; + } + uses bmp-source-configuration; + } + } + } + } + } + + grouping bmp-route-monitoring-sources { + description + "Route monitoring sources"; + reference + "RFC7854: BGP Monitoring Protocol, Section 5."; + container network-instance-configuration { + description + "This container offers various options for configuring BMP + route-monitoring messages for each network instance. + Additionally, network instances can be configured under the + bmp-data container that this module includes under the + /rt:routing/rt:control-plane-protocols/ + rt:control-plane-protocol/bgp:bgp container. + + This container also holds a way of configuring the network + instance directly. This is redundant , and unfavoured to the + configuration under the bgp container, but it might be used + for implementation not yet supporting schema-mount since + that is required for adding control-plane infromation using + the ietf-network-instance module. + + This container also provides a way of configuring + network-instances by 'bmp-ni-types'. It currently holds two + instances: bmp-ni-types-all-ni to configure all network + instances (serving as a default), and + bmp-ni-types-non-global-ni that configures all non-global + network instances: i.e. providing a default for all network + instances under the ietf-network-instance module. + + A single configuration container Network MUST + be applied to a network instance. If not containe matches a + network instance, the BMP route monitoring messages SHOULD + be disabled for that network instance. If more than one + container matches a network-instance the order of + preference is: + 1. The configuration under the BGP container + 2. The Network-instance under this container + 3. bmp-ni-types: bmp-ni-types-non-global-ni (if it matches). + 4. bmp-ni-types: bmp-ni-types-all-ni + + New identities under bmp-ni-types or augmentations of this + container in the future SHOULD provide a clear way of + selecting the configuration container for a network-instance + without ambiguity."; + list network-instance { + key "network-instance-id"; + description + "Network instance to monitory using BMP."; + leaf network-instance-id { + type union { + type identityref { + base bmp-ni-types; + } + // TODO:This will not be supported for + // implementations not supporting schema-mount. + // Should just leave it as a string to be useful without + // schema-mount?? + //type leafref { + // path "/ni:network-instances/ni:network-instance/" + // + "ni:name"; + //} + type string; + } + description + "Identification of a network-instance. + Network instances can be identified + directly by their path or use an identity to + identify one or a group of them + (e.g. bmp-ni-types-all-ni for all of them)"; + } + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring + messages for the network instance."; + } + container adj-rib-in-pre { + description + "Configuration for the adj-rib-in pre-policy"; + reference + "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; + uses bmp-peer-ribs-filter; + } + container adj-rib-in-post { + description + "Configuration for the adj-rib-in post-policy"; + reference + "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; + uses bmp-peer-ribs-filter; + } + container local-rib { + description + "Configuration for the local-rib"; + reference + "RFC9069: Support for Local RIB in the BGP Monitoring + Protocol (BMP), Section 3."; + container address-families { + description + "List of address families to enable for + local-rib."; + list address-family { + key "address-family-id"; + description + "Address family to enable for local-rib"; + leaf address-family-id { + type identityref { + base bt:afi-safi-type; + } + description + "Address family id to enable for local-rib"; + } + uses bmp-source-configuration; + } + } + } + container adj-rib-out-pre { + description + "Configuration for the adj-rib-out pre-policy"; + uses bmp-peer-ribs-filter; + reference + "RFC8671: Support for Adj-RIB-Out in the BGP Monitoring + Protocol (BMP) , Section 3."; + } + container adj-rib-out-post { + description + "Configuration for the adj-rib-out post-policy"; + uses bmp-peer-ribs-filter; + reference + "RFC8671: Support for Adj-RIB-Out in the BGP Monitoring + Protocol (BMP) , Section 3."; + } + } + } + } + + container bmp { + description + "Main level for BMP configuration "; + container bmp-monitoring-stations { + description + "Container for the list of BMP monitoring stations"; + list bmp-monitoring-station { + key "id"; + description + "Configuration for a BMP monitoring station."; + leaf id { + type string; + description + "Identification string for the monitoring station"; + } + // Connection, missing tcp tuning params + // like keep-alives, segment sizes, etc. + container connection { + description + "Connection details for the monitoring station"; + uses bmp-ip-connection; + container tcp-options { + description + "TCP options for the connection to the monitoring + station"; + uses bmp-tcp-options; + } + leaf initial-delay { + type uint32; + units "seconds"; + default "0"; + description + "Initial delay of the connection to the station"; + } + container backoff { + description + "Configures the backoff strategy after a connection + retry"; + reference + "RFC7854 Section 3.2"; + choice backoff-options { + description + "Options for backoff strategies"; + reference + "RFC7854 Section 3.2"; + case simple-exponential { + description + "Simple exponential backoff with limits."; + container simple-exponential { + description + "Simple exponential backoff with limits. + Starts with the initial backoff and doubles + the backoff of every retry until reaching the + maximum backoff"; + leaf initial-backoff { + type uint32; + units "seconds"; + default "30"; + description + "Initial backoff time"; + } + leaf maximum-backoff { + type uint32; + units "seconds"; + default "720"; + description + "Maximum backoff time"; + } + } + } + } + } + } + container bmp-data { + description + "Configuration of BMP data"; + leaf initiation-message { + type string; + description + "User defined message to append to the + initiation message"; + reference + "RFC7854: BGP Monitoring Protocol, + Section 4.3 and 4.4"; + } + container bmp-statistics-report { + presence "Enables the BMP statistics report"; + description + "Configuration of the statistics report"; + reference + "RFC7854: BGP Monitoring Protocol, + Section 4.8"; + leaf statistics-interval { + type uint32; + units "seconds"; + mandatory true; + description + "Interval for statistic report message."; + } + } + container bmp-route-monitoring { + description + "Configuration of the data sources for + route-monitoring messages"; + uses bmp-route-monitoring-sources; + } + } + container session-stats { + config false; + description + "stats and operational values for the station"; + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + description + "The time on the most recent occasion at which any + one or more of this station's counters suffered a + discontinuity. If no such discontinuities have + occurred since the last re-initialization of the + local management subsystem, then this node contains + the time the local management subsystem + re-initialized itself."; + } + leaf established-session { + type boolean; + description + "Value indicating if the session is currently + established"; + } + leaf total-route-monitoring-messages { + type uint64; + description + "Number of route-monitoring messages sent since last + successful connection"; + } + leaf total-statistics-messages { + type uint64; + description + "Number of statistics messages sent since last + successful connection"; + } + leaf total-peer-down-messages { + type uint64; + description + "Number of peer-down messages sent since last + successful connection"; + } + leaf total-peer-up-messages { + type uint64; + description + "Number of peer-up messages sent since last successful + connection"; + } + leaf total-initiation-messages { + type uint64; + description + "Number of initiation messages sent since last + successful connection"; + } + leaf total-route-mirroring-messages { + type uint64; + description + "Number of route-mirroring messages sent since last + successful connection"; + } + } + container actions { + nacm:default-deny-all; + description + "Container with the actions for the BMP operation"; + action session-reset { + description + "Resets the session for a station."; + output { + choice outcome { + description + "Output of the reset operation. Either a success or + failure. For the latter, the reason for the + error is provided."; + leaf success { + type empty; + description + "Reset successful"; + } + leaf failure { + type string; + description + "Reset could not be performed. + Reason is included in the field"; + } + } + } + } + } + } + } + } + + // Augment the BGP module to include data for network instances + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/bgp:bgp" { + description + "Augments the BGP container under control-plane-protocol. It + can be used to configure the global BGP instance, but also the + network-instances under the module ietf-network-instance"; + container bmp-data { + description + "Container for the configuration of BMP data + related to this BGP instance"; + container bmp-monitoring-stations { + presence + "If this container exists, the network instance must be + configured using this"; + description + "Container for the configuration of BMP data + related to this BGP instance"; + list bmp-monitoring-station { + key "id"; + description + "Container for the configuration of BMP data for this + monitoring-station related to this BGP instance"; + leaf id { + // TODO: We have not been able to configure + // the schema mount to recognize this yet. + // Until we solve it, we will keep it as + //type leafref { + // path "/bmp:bmp/bmp:bmp-monitoring-stations/" + // + "bmp:bmp-monitoring-station/bmp:id"; + //} + type string; + description + "Identification string for the monitoring station"; + } + container bmp-route-monitoring { + presence "The presence of this container means the + Network instance it contains MUST + be configured using it"; + description + "Configuration of the data sources for + route-monitoring messages for this network-instance"; + leaf enabled { + type boolean; + default "true"; + description + "Enables routing monitoring + messages for the network instance."; + } + container adj-rib-in-pre { + description + "Configuration for the adj-rib-in pre-policy"; + reference + "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; + uses bmp-ni-peer-ribs-filter; + } + container adj-rib-in-post { + description + "Configuration for the adj-rib-in post-policy"; + reference + "RFC7854: BGP Monitoring Protocol (BMP), Section 2."; + uses bmp-ni-peer-ribs-filter; + } + container local-rib { + description + "Configuration for the local-rib"; + reference + "RFC9069: Support for Local RIB in the BGP Monitoring + Protocol (BMP), Section 3."; + container address-families { + description + "List of address families to enable for + local-rib."; + list address-family { + key "address-family-id"; + description + "Address family to enable for local-rib"; + leaf address-family-id { + type identityref { + base bt:afi-safi-type; + } + description + "Address family id to enable for local-rib"; + } + uses bmp-source-configuration; + } + } + } + container adj-rib-out-pre { + description + "Configuration for the adj-rib-out pre-policy"; + uses bmp-ni-peer-ribs-filter; + reference + "RFC8671: Support for Adj-RIB-Out in the BGP + Monitoring Protocol (BMP) , Section 3."; + } + container adj-rib-out-post { + description + "Configuration for the adj-rib-out post-policy"; + uses bmp-ni-peer-ribs-filter; + reference + "RFC8671: Support for Adj-RIB-Out in the BGP + Monitoring Protocol (BMP) , Section 3."; + } + } + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol-types@2023-08-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol-types@2024-07-05.yang similarity index 52% rename from experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol-types@2023-08-01.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol-types@2024-07-05.yang index 36b3bc4e0..694dd35c6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol-types@2023-08-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol-types@2024-07-05.yang @@ -10,6 +10,8 @@ module ietf-bundle-protocol-types { } import ietf-yang-types { prefix yang; + reference + "RFC 6991: Common YANG Data Types"; } organization @@ -25,25 +27,20 @@ module ietf-bundle-protocol-types { description "This module contains Bundle Protocol (RFC5050, RFC9171) 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) 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 TBD; see - the RFC itself for full legal notices."; - revision 2023-08-01 { + 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 TBD; see + the RFC itself for full legal notices."; + + revision 2024-07-05 { description "Initial revision. date TBD"; reference @@ -53,145 +50,152 @@ module ietf-bundle-protocol-types { https://www.iana.org/assignments/bundle/bundle.xhtml"; } - typedef bundle-block-types { - type enumeration { - enum unknown { - value 0; - description - "Unknown block type"; - } - enum payload-block { - value 1; - description - "Payload block type"; - } - enum authentication-block { - value 2; - description - "Authentication block type"; - } - enum payload-integrity-block { - value 3; - description - "payload integrity block type"; - } - enum previous-hop-insertion-block { - value 4; - description - "Previous hop insertion block type"; - } - enum previous-node { - value 6; - description - "Previous node type"; - } - enum bundle-age { - value 7; - description - "Bundle age type"; - } - enum metadata-extension-block { - value 8; - description - "Metadata extension type"; - } - enum extension-security-block { - value 9; - description - "Extension security block type"; - } - enum hop-count { - value 10; - description - "Hop count type"; - } - enum block-integrity { - value 11; - description - "Block integrity type"; - } - enum block-confidentialy { - value 12; - description - "Block confidentiality type"; - } - } + /* Bundle Block Types */ + identity bundle-block-types { description - "Bundle block types"; - reference - "https://www.iana.org/assignments/bundle/ - bundle.xhtml#block-types"; + "Base identity for bundle block types. The Bundle Block Types + are defined in IANA Bundle Protocol registry."; } - typedef bundle-protocol-version { - type enumeration { - enum unknown { - value 0; - description - "An unknown or unspecified version of the Bundle protocol."; - } - enum version6 { - value 6; - description - " The Bundle protocol version 6 as defined in RFC5050"; - } - enum version7 { - value 7; - description - "The Bundle protocol version 7 as defined in RFC9171"; - } - } + identity bundle-payload-block { + base bundle-block-types; description - "Bundle protocol version number"; - reference - "https://www.iana.org/assignments/bundle/ - bundle.xhtml#primary-version"; + "Bundle payload block type"; } - typedef bundle-processing-control-flag { - type enumeration { - enum unknown { - description - "Uknown control flag"; - } - enum block-replicated-every-fragment { - description - "Block must be replicated in every fragment"; - } - enum transmit-status-report-block-not-processed { - description - "Transmit status report if block can't be processed"; - } - enum delete-bundle-block-not-processed { - description - "Delete bundle if block can't be processed"; - } - enum last-block { - description - "Last block"; - } - enum discard-block-not-processed { - description - "Discard block if it can't be processed"; - } - enum block-forwarded-not-processed { - description - "Block was forwarded without being processed"; - } - enum block-contains-eid-reference { - description - "Block contains an EID-reference field"; - } - } + identity bundle-authentication-block { + base bundle-block-types; description - "Bundle processing control flags"; - reference - "https://www.iana.org/assignments/bundle/ - bundle.xhtml#block-processing-control"; + "Bundle authentication block type"; + } + + identity payload-integrity-block { + base bundle-block-types; + description + "Payload integrity block type"; + } + + identity payload-confidentiality-block { + base bundle-block-types; + description + "Payload confidentiality block type"; + } + + identity previous-hop-insertion-block { + base bundle-block-types; + description + "Previous-hop insertion block type"; + } + + identity previous-node { + base bundle-block-types; + description + "Previous node type"; + } + + identity bundle-age { + base bundle-block-types; + description + "Bundle age type"; + } + + identity metadata-extension-block { + base bundle-block-types; + description + "Metadata extension type"; + } + + identity extension-security-block { + base bundle-block-types; + description + "Extension security block type"; + } + + identity hop-count { + base bundle-block-types; + description + "Hop count type"; + } + + identity block-integrity { + base bundle-block-types; + description + "Block integrity type"; + } + + identity block-confidentially { + base bundle-block-types; + description + "Block confidentiality type"; + } + + /* Primary Bundle Protocol Version */ + identity bundle-protocol-version { + description + "Base identity for primary bundle protocol version. The + Primary Bundle Protocol Version is defined in IANA + Bundle Protocol registry."; } - /* TBD: more defs from IANA registry - */ + identity version6 { + base bundle-protocol-version; + description + "The Bundle protocol version 6 as defined in RFC5050"; + } + + identity version7 { + base bundle-protocol-version; + description + "The Bundle protocol version 7 as defined in RFC9171"; + } + + /* Block Processing Control Flags */ + identity block-processing-control-flag { + description + "Base identity for bundle processing control flags"; + } + + identity block-replicated-every-fragment { + base block-processing-control-flag; + description + "Block must be replicated in every fragment"; + } + + identity transmit-status-report-block-not-processed { + base block-processing-control-flag; + description + "Transmit status report if block can't be processed"; + } + + identity delete-bundle-block-not-processed { + base block-processing-control-flag; + description + "Delete bundle if block can't be processed"; + } + + identity last-block { + base block-processing-control-flag; + description + "Last block"; + } + + identity discard-block-not-processed { + base block-processing-control-flag; + description + "Discard block if it can't be processed"; + } + + identity block-forwarded-not-processed { + base block-processing-control-flag; + description + "Block was forwarded without being processed"; + } + + identity block-contains-eid-reference { + base block-processing-control-flag; + description + "Block contains an EID-reference field"; + } typedef convergence-layer-adapter-type { type enumeration { @@ -282,12 +286,16 @@ module ietf-bundle-protocol-types { management purposes"; } leaf version { - type bundle-protocol-version; + type identityref { + base bundle-protocol-version; + } description "Bundle protocol version"; } leaf-list processing-control-flags { - type bundle-processing-control-flag; + type identityref { + base block-processing-control-flag; + } description "List of bundle processing control flags"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol@2023-08-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol@2024-07-05.yang similarity index 82% rename from experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol@2023-08-01.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol@2024-07-05.yang index 63326fabd..f408068e6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol@2023-08-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bundle-protocol@2024-07-05.yang @@ -20,26 +20,20 @@ module ietf-bundle-protocol { description "This module contains Bundle Protocol (RFC5050, RFC9171) 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) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. - Copyright (c) 2023 IETF Trust and the persons identified as - authors of the code. All rights reserved. + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the 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). - 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 TBD; see + the RFC itself for full legal notices."; - This version of this YANG module is part of RFC TBD; see - the RFC itself for full legal notices."; - - revision 2023-08-01 { + revision 2024-07-05 { description "Initial revision. date TBD"; reference @@ -53,7 +47,9 @@ module ietf-bundle-protocol { description "A bundle protocol node"; leaf-list version { - type bundle-types:bundle-protocol-version; + type identityref { + base bundle-types:bundle-protocol-version; + } description "The list of bundle protocol versions this node supports"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-cats@2024-06-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-cats@2024-06-20.yang new file mode 100644 index 000000000..57b73def9 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-cats@2024-06-20.yang @@ -0,0 +1,426 @@ +module ietf-cats { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-cats"; + prefix ietf-cats; + + import ietf-inet-types { + prefix inet; + reference + "RFC 6991 Common YANG Data Types"; + } + + import ietf-routing-types { + prefix "rt-types"; + } + + import ietf-srv6-types { + prefix "srv6-types"; + } + + import ietf-interfaces { + prefix if; + } + + organization "IETF CATS"; + contact + "WG Web: + WG List: + "; + + description + "This module describes a YANG model for CATS. + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + + 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 + (httpstrustee.ietf.orglicense-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-20 { + description + "Initial Version"; + reference + "RFC XXXX: YANG Data Model for CATS"; + } + + typedef cs-id { + type union { + type uint32; + type inet:ipv4-address; + type inet:ipv6-address; + } + description + "This type is for CATS CS-ID."; + } + + typedef cis-id { + type union { + type uint32; + type inet:ipv4-address; + type inet:ipv6-address; + } + description + "This type is for CATS CIS-ID."; + } + + grouping service-policy-type { + description + "service policy type"; + leaf policy-type { + description "service policy type"; + type enumeration { + enum base-on-affinity { + value 0; + description "base on affinity"; + } + enum base-on-sm-only { + value 1; + description "base on service metric only"; + } + enum base-on-sm-nm { + value 2; + description "base on service metric and network + metric"; + } + } + } + } + container base { + description + "CATS base configuration."; + leaf enable { + type boolean; + description + "enable CATS" + } + leaf update-interval { + type uint32; + description + "update-interval of CATS metric"; + } + leaf entry-limits { + type uint64; + description + "CATS metric entry limit"; + } + leaf flow-limits { + type uint64; + description + "CATS flow entry limit"; + } + leaf flow-timeout { + type uint32; + description + "CATS flow timeout when no flow"; + } + container service-policy { + description + "CATS sercice policy"; + leaf cs-id { + type cs-id; + description + "cs-id"; + } + uses service-policy-type; + } + } + + container traffic-classifiers { + description + "CATS traffic-classifier feature"; + list traffic-classifier { + description + "CATS traffic-classifier feature"; + key "cs-id"; + leaf cs-id { + type cs-id; + description + "CATS CIS-ID"; + } + leaf description { + type string; + description + "description of this service, example: http"; + } + leaf server-port { + type uint16; + description + "server-port of the service."; + } + leaf protocol { + type uint16; + description + "protocol of the service."; + } + } + } + + container service-metrics { + description + "CATS service metric entry"; + list service-metric { + description + "CATS service metric entry"; + key "cs-id cis-id source-type"; + leaf cs-id { + type cs-id; + description + "CATS cs-id"; + } + leaf cis-id { + type cis-id; + description + "CATS cis-id"; + } + leaf source-type { + description + "source-type of the service-metric"; + type enumeration { + enum static { + value 0; + description "static configuration"; + } + enum bgp { + value 1; + description "bgp protocol"; + } + } + } + leaf priority { + type uint32; + description + "server priority"; + } + leaf affinity { + type uint32; + description + "server affinity"; + } + leaf location { + type inet:ip-address; + description + "server location"; + } + container service-metric { + description + "service metric"; + list metric { + description "Different types of service "; + key "metric-type"; + leaf metric-type { + description "metric type"; + type enumeration { + enum delay { + value 0; + description " Calculate the metric based on + transmission delay, where the metric value + is the delay time in milliseconds."; + } + enum service-ratio { + value 1; + description "Calculate the metric based on + business capacity, where the metric value is + the current capacity percentage."; + } + enum memory-ratio { + value 2; + description " Calculate the metric based on + memory utilization percentage, where the + metric value is the current memory + utilization percentage"; + } + + } + } + leaf metric { + type uint32; + description "metric value"; + } + } + } + } + } + + grouping mpls-label-stack { + description + "Grouping for MPLS label stack"; + + list labels { + key "index"; + description + "Stack containing MPLS labels"; + + leaf index { + type uint32; + description "A unique ID of an MPLS label in labels +list"; + } + leaf label { + type rt-types:mpls-label; + description + "MPLS label value"; + } + } + } + + grouping srv6-sid-stack { + description + "Grouping for SRv6 label stack"; + + list sids { + key "index"; + description + "Stack containing SRv6 SIDs"; + + leaf index { + type uint32; + description "A unique ID of an SRv6 sid in sid list"; + } + leaf sid { + type srv6-types:srv6-sid; + description + "SRv6 sid value"; + } + } + } + grouping path-forwarding-info { + leaf next-hop-address { + type inet:ip-address; + description "Nexthop address"; + } + leaf interface { + type if:interface-ref; + description "Outgoing interface handle"; + } + container sid-list { + description + "Outgoing sid stack"; + choice dataplanetype { + description + "Outgoing sids dataplane choice"; + case mpls { + uses mpls-label-stack; + } + case srv6 { + uses srv6-sid-stack; + } + } + } + + grouping path-forwarding-state { + description "cats Forwarding path information"; + leaf path-id { + type uint8; + description "Primary path id"; + } + uses path-forwarding-info; + } + } + + container forwarding-paths { + description + "Forwarding state of paths"; + list forwarding-path { + description "Forwarding state of paths"; + key "cs-id cis-id"; + leaf cs-id { + type cs-id; + description "CATS cs-id"; + } + leaf cis-id { + type cis-id; + description "CATS cis-id"; + } + uses service-policy-type; + leaf weight { + type uint32; + description "Path's weight for W-ECMP balancing"; + } + list forwarding-path-state { + key "path-id"; + description "Forwarding path state"; + uses path-forwarding-state; + } + } + } + + container flow-entrys { + description "flow entry"; + list flow-entry { + description "flow entry"; + key "source-address dest-address source-port dest-port +protocol"; + leaf source-address { + type inet:ip-address; + description "source address of flow"; + } + leaf dest-address { + type inet:ip-address; + description "destination address of flow"; + } + leaf source-port { + type uint16; + description "source port of flow"; + } + leaf dest-port { + type uint16; + description "destination port of flow"; + } + leaf protocol { + type uint16; + description "protocol of flow"; + } + leaf cs-id { + type cs-id; + description "CATS cs-id"; + } + leaf cis-id { + type cis-id; + description "CATS cis-id"; + } + leaf affinity { + type uint32; + description "affinity"; + } + uses path-forwarding-info; + container flow-statistics { + description "flow statistics"; + leaf pkts { + type uint64; + description "pkts"; + } + leaf octets { + type uint64; + description "octets"; + } + } + } + } + + container notify { + description "event notify"; + leaf entry-limit-reached { + type boolean; + description "entry limit reached"; + } + leaf flow-limit-reached { + type boolean; + description "flow entry limit reached"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang similarity index 92% rename from experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-07-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang index 27b6abf47..5e64c6460 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2023-07-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-coreconf@2024-03-04.yang @@ -6,6 +6,8 @@ module ietf-coreconf { import ietf-datastores { prefix ds; + reference + "RFC 8342: Network Management Datastore Architecture (NMDA)"; } import ietf-restconf { @@ -20,14 +22,17 @@ module ietf-coreconf { "IETF Core Working Group"; contact - "Michel Veillette + "WG Web: + WG List: + + Michel Veillette Alexander Pelov - + Peter van der Stok - + Andy Bierman "; @@ -36,20 +41,20 @@ module ietf-coreconf { "This module contains the different definitions required by the CORECONF protocol. - Copyright (c) 2019 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Revised BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-10 { + revision 2024-03-04 { description "Initial revision."; reference @@ -84,7 +89,6 @@ module ietf-coreconf { 'pattern' or 'require-instance' constrain is not fulfilled."; } - identity missing-element { base error-tag; description @@ -212,7 +216,7 @@ module ietf-coreconf { description "Returned by the CORECONF server to further qualify a missing-element error. This error is returned when the - CORECONF client tries to create or list instance, without all + CORECONF client tries to create a list instance, without all the 'key' specified or when the CORECONF client tries to delete a leaf listed as a 'key'."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-crypto-types@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-crypto-types@2024-03-16.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-crypto-types@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-crypto-types@2024-03-16.yang index ddabbeec5..1d8b63720 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-crypto-types@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-crypto-types@2024-03-16.yang @@ -27,7 +27,7 @@ module ietf-crypto-types { "This module defines common YANG types for cryptographic applications. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -48,7 +48,7 @@ module ietf-crypto-types { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -94,6 +94,7 @@ module ietf-crypto-types { "Indicates that the server supports the 'cms-encrypted-data-format' identity."; } + feature p10-csr-format { description "Indicates that the server implements support @@ -189,11 +190,11 @@ module ietf-crypto-types { base private-key-format; description "Indicates that the private key value is encoded as - an RSAPrivateKey (from RFC 3447), encoded using ASN.1 + an RSAPrivateKey (from RFC 8017), encoded using ASN.1 distinguished encoding rules (DER), as specified in ITU-T X.690."; reference - "RFC 3447: + "RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 ITU-T X.690: Information technology - ASN.1 encoding rules: @@ -286,6 +287,7 @@ module ietf-crypto-types { scope of this specification. This is also true when the octet string has been encrypted."; } + identity one-symmetric-key-format { if-feature "one-symmetric-key-format"; base symmetric-key-format; @@ -444,7 +446,6 @@ module ietf-crypto-types { /***************************************************/ /* Typedefs for ASN.1 structures from RFC 5280 */ /***************************************************/ - typedef x509 { type binary; description @@ -685,7 +686,6 @@ module ietf-crypto-types { /*****************/ /* Groupings */ /*****************/ - grouping encrypted-value-grouping { description "A reusable grouping for a value that has been encrypted by @@ -715,11 +715,11 @@ module ietf-crypto-types { If 'encrypted-by' points to a symmetric key, then a 'symmetrically-encrypted-value-format' based identity - MUST by set (e.g., cms-encrypted-data-format). + MUST be set (e.g., cms-encrypted-data-format). If 'encrypted-by' points to an asymmetric key, then an 'asymmetrically-encrypted-value-format' based identity - MUST by set (e.g., cms-enveloped-data-format)."; + MUST be set (e.g., cms-enveloped-data-format)."; } leaf encrypted-value { nacm:default-deny-write; @@ -736,7 +736,11 @@ module ietf-crypto-types { grouping password-grouping { description - "A password that may be encrypted."; + "A password used for authenticating to a remote system. + + The 'ianach:crypt-hash' typedef from RFC 7317 should be + used instead when needing a password to authencate a + local account."; choice password-type { nacm:default-deny-write; mandatory true; @@ -784,8 +788,8 @@ module ietf-crypto-types { mandatory true; description "Choice between key types."; - case cleartext-key { - leaf cleartext-key { + case cleartext-symmetric-key { + leaf cleartext-symmetric-key { if-feature "cleartext-symmetric-keys"; nacm:default-deny-all; type binary; @@ -795,19 +799,25 @@ module ietf-crypto-types { the value is defined by the 'key-format' field."; } } - case hidden-key { + case hidden-symmetric-key { if-feature "hidden-symmetric-keys"; - leaf hidden-key { + leaf hidden-symmetric-key { type empty; must 'not(../key-format)'; description - "A hidden key. How such keys are created is outside - the scope of this module."; + "A hidden key is not exportable, and not extractable, + and therefore, it is of type 'empty' as its value is + inaccessible via management interfaces. Though hidden + to users, such keys are not hidden to the server and + may be referenced by configuration to indicate which + key a server should use for a cryptographic operation. + How such keys are created is outside the scope of this + module."; } } - case encrypted-key { + case encrypted-symmetric-key { if-feature "encrypted-symmetric-keys"; - container encrypted-key { + container encrypted-symmetric-key { must '../key-format'; description "A container for the encrypted symmetric key value. @@ -843,11 +853,9 @@ module ietf-crypto-types { } } - grouping asymmetric-key-pair-grouping { + grouping private-key-grouping { description - "A private key and its associated public key. Implementations - SHOULD ensure that the two keys are a matching pair."; - uses public-key-grouping; + "A private key."; leaf private-key-format { nacm:default-deny-write; type identityref { @@ -884,8 +892,13 @@ module ietf-crypto-types { type empty; must 'not(../private-key-format)'; description - "A hidden key. How such keys are created is - outside the scope of this module."; + "A hidden key. It is of type 'empty' as its value is + inaccessible via management interfaces. Though hidden + to users, such keys are not hidden to the server and + and may be referenced by configuration to indicate which + key a server should use for a cryptographic operation. + How such keys are created is outside the scope of this + module."; } } case encrypted-private-key { @@ -902,6 +915,22 @@ module ietf-crypto-types { } } + grouping asymmetric-key-pair-grouping { + description + "A private key and, optionally, its associated public key. + Implementations MUST ensure that the two keys, when both + are specified, are a matching pair."; + uses public-key-grouping { + refine public-key-format { + mandatory false; + } + refine public-key { + mandatory false; + } + } + uses private-key-grouping; + } + grouping certificate-expiration-grouping { description "A notification for when a certificate is about to, or @@ -914,7 +943,11 @@ module ietf-crypto-types { send notifications is an implementation specific decision, but it is RECOMMENDED that a notification be sent once a month for 3 months, then once a week for four weeks, and - then once a day thereafter until the issue is resolved."; + then once a day thereafter until the issue is resolved. + + If the certificate's Issuer maintains a Certificate + Revocation List (CRL), the expiration notification MAY + be sent if the CRL is about to expire."; leaf expiration-date { type yang:date-and-time; mandatory true; @@ -929,7 +962,7 @@ module ietf-crypto-types { "A trust anchor certificate, and a notification for when it is about to (or already has) expire."; leaf cert-data { - nacm:default-deny-write; + nacm:default-deny-all; type trust-anchor-cert-cms; description "The binary certificate data for this certificate."; @@ -944,7 +977,7 @@ module ietf-crypto-types { SHOULD assert that, where used, the end entity certificate contains the expected public key."; leaf cert-data { - nacm:default-deny-write; + nacm:default-deny-all; type end-entity-cert-cms; description "The binary certificate data for this certificate."; @@ -966,12 +999,6 @@ module ietf-crypto-types { This action statement is only available when the associated 'public-key-format' node's value is 'subject-public-key-info-format'."; - reference - "RFC 6125: - Representation and Verification of Domain-Based - Application Service Identity within Internet Public Key - Infrastructure Using X.509 (PKIX) Certificates in the - Context of Transport Layer Security (TLS)"; input { leaf csr-format { type identityref { @@ -993,7 +1020,6 @@ module ietf-crypto-types { only needs to sign in order to generate the complete 'CertificationRequest' structure to return in the 'output'. - The 'AlgorithmIdentifier' field contained inside the 'SubjectPublicKeyInfo' field MUST be one known to be supported by the device."; @@ -1033,7 +1059,7 @@ module ietf-crypto-types { grouping asymmetric-key-pair-with-cert-grouping { description "A private/public key pair and an associated certificate. - Implementations SHOULD assert that the certificate contains + Implementations MUST assert that the certificate contains the matching public key."; uses asymmetric-key-pair-grouping; uses end-entity-cert-grouping; @@ -1043,7 +1069,7 @@ module ietf-crypto-types { grouping asymmetric-key-pair-with-certs-grouping { description "A private/public key pair and a list of associated - certificates. Implementations SHOULD assert that + certificates. Implementations MUST assert that certificates contain the matching public key."; uses asymmetric-key-pair-grouping; container certificates { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang new file mode 100644 index 000000000..4723ffc7b --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest-statistics@2024-07-02.yang @@ -0,0 +1,74 @@ +module ietf-data-collection-manifest-statistics { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-data-collection-statistics"; + prefix dcs; + + import ietf-subscribed-notifications { + prefix sn; + reference + "RFC 8639: A YANG Data Model for Subscriptions to + Event Notifications"; + } + import ietf-yang-push { + prefix yp; + reference + "RFC 8641: Subscriptions to YANG Datastores."; + } + + organization + "IETF OPSAWG (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + Author: Benoit Claise + Author: Jean Quilbeuf + Author: Diego R. Lopez + Author: Ignacio Dominguez + + Author: Thomas Graf "; + description + "This module augments subscribed notification with the + current-period statistics reporting the actual collection + period. + + 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) 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. "; + + revision 2024-07-02 { + description + "Initial revision"; + reference + "RFC xxxx: Title to be completed"; + } + + augment "/sn:subscriptions/sn:subscription" { + description + "Add extra statistics about data collection"; + leaf current-period { + when '../yp:periodic'; + type yp:centiseconds; + description + "Period during two succesive data collections, in the + current state. Might differ from the configured period + when the plaftorm might increase the period + automatically when it is overloaded."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2023-03-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2023-03-08.yang deleted file mode 100644 index f63d57f9c..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2023-03-08.yang +++ /dev/null @@ -1,291 +0,0 @@ -module ietf-data-collection-manifest { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-data-collection-manifest"; - prefix d-mf; - - import ietf-platform-manifest { - prefix p-mf; - reference - "RFC XXXX: Title to be completed"; - } - import ietf-subscribed-notifications { - prefix sn; - reference - "RFC 8639: A YANG Data Model for Subscriptions to - Event Notifications"; - } - import ietf-yang-push-modif { - prefix yp; - reference - "RFC 8641: Subscriptions to YANG Datastores. TODO fix and - used original version. This import is a modified version so that - it compiles."; - } - import ietf-yang-types { - prefix yang; - reference - "RFC 6991: Common YANG Data Types"; - } - - organization - "IETF OPSAWG (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - Author: Benoit Claise - Author: Jean Quilbeuf - Author: Diego R. Lopez - Author: Ignacio Dominguez - - Author: Thomas Grapf "; - description - "This module describes the context of data collection from a - given network element. The contents of this model must be - streamed along with the data streamed from the network - element so that the context of the data collection can - be retrieved later. - - This module must be completed with - ietf-platform-manifest - to capture the whole context of a data collection session. - - 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) 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. "; - - revision 2023-03-08 { - description - "Initial revision"; - reference - "RFC xxxx: Title to be completed"; - } - - container data-collections { - config false; - description - "Contains the configuration and statistics for the collected data, - per node in the network."; - list data-collection { - key "platform-id"; - description - "Defines the information for each collected object"; - leaf platform-id { - type leafref { - path "/p-mf:platforms/p-mf:platform/p-mf:id"; - } - description - "Id of the platform collecting the data. This id is the same - as the one in the platform manifest."; - } - container yang-push-subscriptions { - /* - * Copy-pasting here some of the contents of the "subscriptions" - * container from ietf-subscribed notification. - */ - description - "Contains the list of currently active subscriptions, i.e., - subscriptions that are currently in effect, used for - subscription management and monitoring purposes. This - includes subscriptions that have been set up via - RPC primitives as well as subscriptions that have been - established via configuration."; - list subscription { - key "id"; - description - "The identity and specific parameters of a subscription. - Subscriptions in this list can be created using a control - channel or RPC or can be established through configuration. - - If the 'kill-subscription' RPC or configuration operations - are used to delete a subscription, a - 'subscription-terminated' message is sent to any active or - suspended receivers."; - leaf id { - type sn:subscription-id; - description - "Identifier of a subscription; unique in a given - publisher."; - } - choice target { - mandatory true; - description - "Identifies the source of information against which a - subscription is being applied as well as specifics on the - subset of information desired from that source."; - case stream { - description - "An event stream filter can be applied to a - subscription. That filter should always be fully - included in the Data Collection manifest, i.e. common - filters need to be added here."; - leaf stream { - type leafref { - path "/p-mf:platforms" - + "/p-mf:platform[p-mf:id=current()/../../.." - + "/platform-id]/p-mf:yang-push-streams" - + "/p-mf:stream/p-mf:name"; - } - mandatory true; - description - "Indicates the event stream to be considered for - this subscription."; - } - uses sn:stream-filter-elements; - } - case datastore { - description - "Yang-push subscription from a datastore. - That filter should always be fully included in the - Data Collection manifest, i.e. common filters need - to be added here."; - leaf datastore { - type leafref { - path "/p-mf:platforms" - + "/p-mf:platform[p-mf:id=current()/../../.." - + "/platform-id]/p-mf:yang-library" - + "/p-mf:datastore/p-mf:name"; - } - mandatory true; - description - "Datastore from which to retrieve data."; - } - uses yp:selection-filter-types; - } - } - leaf transport { - type sn:transport; - description - "For a configured subscription, this leaf specifies the - transport used to deliver messages destined for all - receivers of that subscription."; - } - leaf encoding { - type sn:encoding; - description - "The type of encoding for notification messages. For a - dynamic subscription, if not included as part of an - 'establish-subscription' RPC, the encoding will be - populated with the encoding used by that RPC. For a - configured subscription, if not explicitly configured, - the encoding will be the default encoding for an - underlying transport."; - } - leaf purpose { - type string; - description - "Open text allowing a configuring entity to embed the - originator or other specifics of this subscription."; - } - uses sn:update-qos; - uses yp:update-policy-modifiable; - leaf current-period { - when '../periodic'; - type yp:centiseconds; - description - "Period during two succesive data collections, in the - current state. Might differ from the configured period - when the plaftorm might increase the period - automatically when it is overloaded."; - } - container receivers { - description - "Set of receivers in a subscription."; - list receiver { - key "name"; - min-elements 1; - description - "A host intended as a recipient for the notification - messages of a subscription. For configured - subscriptions, transport-specific network parameters - (or a leafref to those parameters) may be augmented to - a specific receiver in this list."; - leaf name { - type string; - description - "Identifies a unique receiver for a subscription."; - } - leaf sent-event-records { - type yang:zero-based-counter64; - config false; - description - "The number of event records sent to the receiver. - The count is initialized when a dynamic subscription - is established or when a configured receiver - transitions to the 'valid' state."; - } - leaf excluded-event-records { - type yang:zero-based-counter64; - config false; - description - "The number of event records explicitly removed via - either an event stream filter or an access control - filter so that they are not passed to a receiver. - This count is set to zero each time - 'sent-event-records' is initialized."; - } - leaf state { - type enumeration { - enum active { - value 1; - description - "The receiver is currently being sent any - applicable notification messages for the - subscription."; - } - enum suspended { - value 2; - description - "The receiver state is 'suspended', so the - publisher is currently unable to provide - notification messages for the subscription."; - } - enum connecting { - value 3; - description - "A subscription has been configured, but a - 'subscription-started' subscription state change - notification needs to be successfully received - before notification messages are sent. "; - } - enum disconnected { - value 4; - description - "A subscription has failed to send a - 'subscription-started' state change to the - receiver. Additional connection attempts are not - currently being made."; - } - } - config false; - mandatory true; - description - "Specifies the state of a subscription from the - perspective of a particular receiver. With this - information, it is possible to determine whether a - publisher is currently generating notification - messages intended for that receiver."; - } - } - } - } - } - // we could augment here with other kind of collection items - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang new file mode 100644 index 000000000..9d6c8411a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-data-collection-manifest@2024-07-02.yang @@ -0,0 +1,109 @@ +module ietf-data-collection-manifest { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-data-collection-manifest"; + prefix d-mf; + + import ietf-platform-manifest { + prefix p-mf; + reference + "RFC XXXX: Title to be completed"; + } + import ietf-data-collection-manifest-statistics { + prefix dcs; + reference + "RFC XXXX: Title to be completed"; + } + import ietf-subscribed-notifications { + prefix sn; + reference + "RFC 8639: A YANG Data Model for Subscriptions to + Event Notifications"; + } + import ietf-yang-full-embed { + prefix full; + reference + "RFC XXXX: Title to be completed"; + } + import ietf-yang-push { + prefix yp; + reference + "RFC 8641: Subscriptions to YANG Datastores. TODO fix and + used original version. This import is a modified version so that + it compiles."; + } + + organization + "IETF OPSAWG (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + Author: Benoit Claise + Author: Jean Quilbeuf + Author: Diego R. Lopez + Author: Ignacio Dominguez + + Author: Thomas Graf "; + description + "This module describes the context of data collection from a + given network element. The contents of this model must be + streamed along with the data streamed from the network + element so that the context of the data collection can + be retrieved later. + + This module must be completed with + ietf-platform-manifest + to capture the whole context of a data collection session. + + 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) 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. "; + + revision 2024-07-02 { + description + "Initial revision"; + reference + "RFC xxxx: Title to be completed"; + } + + container data-collections { + config false; + description + "Contains the configuration and statistics for the collected data, + per node in the network."; + list data-collection { + key "platform-id"; + description + "Defines the information for each collected object"; + anydata yang-push-collection { + full:embed "sn"; + full:embed "yp"; + full:embed "dcs"; + } + leaf platform-id { + type leafref { + path "/p-mf:platforms/p-mf:platform/p-mf:id"; + } + description + "Id of the platform collecting the data. This id is the same + as the one in the platform manifest."; + } + // we could augment here with other kind of collection items + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-datastores@2018-01-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-datastores@2024-04-16.yang similarity index 64% rename from experimental/ietf-extracted-YANG-modules/ietf-datastores@2018-01-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-datastores@2024-04-16.yang index 04db59f99..0ba3c3dde 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-datastores@2018-01-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-datastores@2024-04-16.yang @@ -5,7 +5,6 @@ module ietf-datastores { organization "IETF Network Modeling (NETMOD) Working Group"; - contact "WG Web: @@ -24,31 +23,43 @@ module ietf-datastores { Author: Rob Wilton - "; + + + Author: James Cumming + + Author: Robert Wills + "; description - "This YANG module defines two sets of identities for datastores. - The first identifies the datastores themselves, the second - identifies datastore properties. - Copyright (c) 2018 IETF Trust and the persons identified as - authors of the code. All rights reserved. + "This YANG module defines a set of identities for identifying + datastores. + + Copyright (c) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Revised BSD License + set forth in Section 4.c of the IETF Trust’s Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX - (http://www.rfc-editor.org/info/rfcxxxx); see the RFC itself + This version of this YANG module is part of RFC 8342 + (https://www.rfc-editor.org/info/rfc8342); and + draft-ietf-netconf-privcand. See these documents for full legal notices."; - revision 2018-01-11 { + revision 2024-04-16 { + description + "Updated to introduce private candidates"; + reference + "draft-ietf-netconf-privcand: Netconf Private Candidates"; + } + revision 2018-02-14 { description "Initial revision."; reference - "RFC XXXX: Network Management Datastore Architecture"; + "RFC 8342: Network Management Datastore Architecture (NMDA)"; } /* @@ -78,6 +89,13 @@ module ietf-datastores { description "The candidate configuration datastore."; } + + identity private-candidate { + base conventional; + description + "The private candidate configuration datastore."; + } + identity startup { base conventional; description @@ -113,5 +131,4 @@ module ietf-datastores { description "A datastore identity reference."; } - } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-defaults@2024-04-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-defaults@2024-04-03.yang new file mode 100644 index 000000000..e62e41908 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-defaults@2024-04-03.yang @@ -0,0 +1,63 @@ +module ietf-defaults { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:netconf:default:1.0"; + prefix wd; + + import ietf-yang-metadata { + prefix md; + reference + "RFC 7952: Defining and Using Metadata with YANG"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG Web: https://datatracker.ietf.org/wg/netconf + WG List: NETCONF WG list + + Authors: Per Andersson "; + + description + "This module defines the 'default' attribute in YANG + previously only defined in XML Schema in RFC 6243 Section 6. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here."; + + revision 2024-04-03 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Model for the NETCONF default attribute"; + } + + md:annotation default { + type boolean; + description + "This annotation is only relevant if the server supports the + 'report-all-tagged' defaults retrieval mode. For details see + RFC 6243."; + reference + "RFC 6243: With-defaults Capability for NETCONF"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-detnet@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-detnet@2024-02-21.yang similarity index 89% rename from experimental/ietf-extracted-YANG-modules/ietf-detnet@2023-07-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-detnet@2024-02-21.yang index d76ab0920..b3e61022a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-detnet@2023-07-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-detnet@2024-02-21.yang @@ -38,9 +38,9 @@ module ietf-detnet { import ieee802-dot1q-types { prefix dot1q-types; reference - "IEEE 802.1Qcx-2020 - IEEE Standard for Local and Metropolitan - Area Networks--Bridges and Bridged Networks Amendment 33: YANG - Data Model for Connectivity Fault Management."; + "IEEE 802.1Q-2022 - IEEE Standard for Local and Metropolitan + Area Networks--Bridges and Bridged Networks Clause 48: YANG + Data Models."; } organization @@ -70,7 +70,7 @@ module ietf-detnet { reporting. This YANG module conforms to the Network Management Datastore Architecture (NMDA). - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -85,10 +85,10 @@ module ietf-detnet { // RFC Ed.: replace XXXX with actual RFC number and remove // this note - // replace '2022-10-04' with the module publication date + // replace '2024-02-21' with the module publication date // the format is (year-month-day) - revision 2023-07-10 { + revision 2024-02-21 { description "Initial revision"; reference @@ -106,7 +106,7 @@ module ietf-detnet { identity none { base app-status; description - "This Application has no status. This identity is + "This application has no status. This identity is expected when the configuration is incomplete."; reference "RFC 9016 Section 5.8"; @@ -131,7 +131,7 @@ module ietf-detnet { identity out-of-service { base app-status; description - "Application Administratively blocked."; + "Application administratively blocked."; reference "RFC 9016 Section 5.8"; } @@ -139,7 +139,7 @@ module ietf-detnet { identity partial-failed { base app-status; description - "This is an Application with one or more Egress ready, and one + "This is an application with one or more Egress ready, and one or more Egress failed. The DetNet flow can be used if the Ingress is Ready."; reference @@ -154,7 +154,7 @@ module ietf-detnet { + "/dnet:name"; } description - "This is an Application Reference."; + "This is an application Reference."; } typedef service-sub-layer-ref { @@ -165,7 +165,7 @@ module ietf-detnet { + "/dnet:name"; } description - "This is a Service sub-layer Reference."; + "This is a service sub-layer Reference."; } typedef forwarding-sub-layer-ref { @@ -176,7 +176,7 @@ module ietf-detnet { + "/dnet:name"; } description - "This is a Forwarding sub-layer Reference."; + "This is a forwarding sub-layer Reference."; } typedef traffic-profile-ref { @@ -186,7 +186,7 @@ module ietf-detnet { + "/dnet:name"; } description - "This is a Traffic Profile Reference."; + "This is a traffic Profile Reference."; } typedef ipsec-spi { @@ -195,7 +195,7 @@ module ietf-detnet { } description "IPsec Security Parameters Index. A 32 bit value - where 0 is reserved."; + where some values are reserved."; reference "IETF RFC 4303 Encapsulating Security Payload (ESP)."; } @@ -225,7 +225,7 @@ module ietf-detnet { but a service sub-layer may combine operation types."; } - typedef forwarding-operations { + typedef mpls-fwd-operation { type enumeration { enum impose-and-forward { description @@ -388,10 +388,10 @@ module ietf-detnet { leaf protocol-next-header { type uint8; description - "Internet Protocol number. Refers to the protocol of the + "In IPv4 refers to the protocol of the payload. In IPv6, this field is known as 'next-header', - and if extension headers are present, the protocol is - present in the 'upper-layer' header."; + and identifies the type of header immediately following + the IPv6 header."; reference "RFC 791: Internet Protocol RFC 8200: Internet Protocol, Version 6 (IPv6) @@ -450,14 +450,14 @@ module ietf-detnet { description "The VLAN value of the Ethernet header."; reference - "IEEE 802.1Qcx-2020."; + "IEEE 802.1Q-2022."; } leaf pcp { type dot1q-types:priority-type; description "The priority value of the Ethernet header."; reference - "IEEE 802.1Qcx-2020."; + "IEEE 802.1Q-2022."; } } @@ -586,7 +586,7 @@ module ietf-detnet { "detnet-flow identification."; choice detnet-flow-type { description - "The Detnet flow type choices."; + "The DetNet flow type choices."; case ip-detnet-flow { uses ip-flow-id; } @@ -673,7 +673,7 @@ module ietf-detnet { "The flow type choices."; case ip { leaf next-hop-address { - type inet:ip-address-no-zone; + type inet:ip-address; description "The IP next hop case."; } @@ -681,7 +681,7 @@ module ietf-detnet { case mpls { uses rt-types:mpls-label-stack; description - "The MPLS Label stack next hop case."; + "The MPLS label stack next hop case."; } } } @@ -711,7 +711,7 @@ module ietf-detnet { "The flow types supported."; case ip { leaf next-hop-address { - type inet:ip-address-no-zone; + type inet:ip-address; description "This is the IP flow type next hop."; } @@ -749,22 +749,18 @@ module ietf-detnet { description "These are the flow type next hop choices."; case ip { - choice operation-type { + description + "Use IP data plane for forwarding."; + leaf next-hop-address { + type inet:ip-address; description - "This is the IP forwarding operation choices."; - case ip-forwarding { - leaf next-hop-address { - type inet:ip-address-no-zone; - description - "This is an IP address as a next hop."; - } - } - case mpls-over-ip-encapsulation { - uses ip-header; - } + "This is an IP address as a next hop."; } + uses ip-header; } case mpls { + description + "Use MPLS data plane for forwarding."; uses rt-types:mpls-label-stack; } } @@ -791,22 +787,18 @@ module ietf-detnet { description "These are the flow type next hop choices."; case ip { - choice operation-type { + description + "Use IP data plane for forwarding."; + leaf next-hop-address { + type inet:ip-address; description - "These are the next hop choices."; - case ip-forwarding { - leaf next-hop-address { - type inet:ip-address-no-zone; - description - "This is an IP address as a next hop."; - } - } - case mpls-over-ip-encapsulation { - uses ip-header; - } + "This is an IP address as a next hop."; } + uses ip-header; } case mpls { + description + "Use MPLS data plane for forwarding."; uses rt-types:mpls-label-stack; } } @@ -827,7 +819,8 @@ module ietf-detnet { leaf name { type string; description - "An Aggregation group ID."; + "The name of the traffic profile which is used as a + reference to this profile."; } container traffic-requirements { description @@ -835,7 +828,7 @@ module ietf-detnet { regarding bandwidth, latency, latency variation, loss, and misordering tolerance."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9"; leaf min-bandwidth { type uint64; units 'octets per second'; @@ -844,7 +837,7 @@ module ietf-detnet { guaranteed for the DetNet service. MinBandwidth is specified in octets per second."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9.1"; } leaf max-latency { type uint32; @@ -856,7 +849,7 @@ module ietf-detnet { nanoseconds. The MAX value is 4,294,967,295 nanoseconds."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9.2"; } leaf max-latency-variation { type uint32; @@ -867,7 +860,7 @@ module ietf-detnet { MaxLatencyVariation is specified as an integer number of nanoseconds."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9.3"; } leaf max-loss { type decimal64 { @@ -883,7 +876,7 @@ module ietf-detnet { the number of received packets divided by the number transmitted packets expressed as a percent."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9.4"; } leaf max-consecutive-loss-tolerance { type uint32; @@ -896,7 +889,7 @@ module ietf-detnet { maximum consecutive loss tolerance can be measured for example based on sequence number."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9.5"; } leaf max-misordering { type uint32; @@ -909,7 +902,7 @@ module ietf-detnet { maximum allowed misordering indicates that in order delivery is required, misordering cannot be tolerated."; reference - "RFC 9016 Section 4.2"; + "RFC 9016 Section 5.9.6"; } } container traffic-spec { @@ -962,7 +955,7 @@ module ietf-detnet { "RFC 9016 Section 5.5, IEEE802.1Q"; } } - leaf-list member-app { + leaf-list member-app-flow { type app-flow-ref; config false; description @@ -973,7 +966,7 @@ module ietf-detnet { "RFC XXXX: Deterministic Networking (DetNet) YANG Model Section 5"; } - leaf-list member-service { + leaf-list member-svc-sublayer { type service-sub-layer-ref; config false; description @@ -1060,29 +1053,40 @@ module ietf-detnet { "RFC 9016 Sections 4.1, 5.8"; } - leaf interface { + leaf-list interface { type if:interface-ref; description - "Interface is used for any service type when - matching all flows to the interface."; + "Interface is optional for a service type. When + matching a flow to a single interface one + interface is specified. The list allows for + matching a subset of interfaces. When more + than one interfaces is specified, these + flows are simply aggregated and the service + sub-layer is unaware of the aggregation."; } uses data-flow-spec; } //End of app-ingress container egress { description - "Route's next-hop attribute."; + "Egress DetNet application flows or a compound flow."; uses data-flow-spec; choice application-type { description "This is the application type choices."; container ethernet { description - "This is TSN unaware traffic that maps to an + "This is Ethernet or TSN traffic that maps to an interface."; - leaf interface { + leaf-list interface { type if:interface-ref; description - "This is an Ethernet or TSN interfaces."; + "This is one or more Ethernet or TSN interfaces. + If multiple interfaces are specified, this + application flow is replicated to those + interfaces. DetNet application Flow filtering + applies to the whole list of interfaces. + For fine grain flow filtering, use a single + interface per application."; } } container ip-mpls { @@ -1187,6 +1191,18 @@ module ietf-detnet { node or egress node."; uses detnet-flow-spec; } + container forwarding-sub-layer { + description + "This entry specifies one or more forwarding + sub-layers. No or minimal service sub-layer + encapsulation is allowed."; + leaf-list sub-layer { + type forwarding-sub-layer-ref; + config false; + description + "List of outgoing forwarding sub-layers."; + } + } } } container outgoing { @@ -1198,7 +1214,7 @@ module ietf-detnet { service sub-layer or aggregation type."; container forwarding-sub-layer { description - "This service sub-layer is sent to the forwarding + "This service sub-layer is sending to the forwarding sub-layers of the lower layer for DetNet service forwarding or service-to-forwarding aggregation at the ingress node or relay node. When the operation @@ -1229,7 +1245,7 @@ module ietf-detnet { } container service-sub-layer { description - "This service sub-layer is sent to the service + "This service sub-layer is sending to the service sub-layers of the lower layer for service-to-service aggregation at the ingress node or relay node. The service sub-layer encapsulates the DetNet @@ -1255,7 +1271,7 @@ module ietf-detnet { } container app-flow { description - "This service sub-layer is sent to the app-flow of + "This service sub-layer is sending to the app-flow of the upper layer for egress proxy at the egress node, and decapsulates the DetNet Control-Word and S-label for individual DetNet service. This outgoing type @@ -1267,7 +1283,7 @@ module ietf-detnet { } container service-disaggregation { description - "This service sub-layer is sent to the service + "This service sub-layer is sending to the service sub-layer of the upper layer for service-to-service disaggregation at the relay node or egress node, and decapsulates the DetNet Control-Word and A-label for @@ -1280,7 +1296,7 @@ module ietf-detnet { } container forwarding-disaggregation { description - "This service sub-layer is sent to the forwarding + "This service sub-layer is sending to the forwarding sub-layer of the upper layer for forwarding-to-service disaggregation at the relay node or egress node, and decapsulates the DetNet @@ -1301,7 +1317,7 @@ module ietf-detnet { list sub-layer { key "name"; description - "The List is one or more DetNet Traffic types."; + "The list is one or more DetNet service/forwarding types."; leaf name { type string; description @@ -1313,7 +1329,7 @@ module ietf-detnet { "The Traffic Profile for this group."; } leaf operation { - type forwarding-operations; + type mpls-fwd-operation; description "This is the forwarding operation types impose-and-forward, pop-and-forward, @@ -1369,14 +1385,14 @@ module ietf-detnet { container interface { description - "This forwarding sub-layer is sent to the interface - for send to next-hop at the ingress node or relay - node or transit node."; + "This forwarding sub-layer is sending to the + interface for send to next-hop at the ingress + node or relay node or transit node."; uses detnet-forwarding-next-hop-content; } container service-aggregation { description - "This forwarding sub-layer is sent to the service + "This forwarding sub-layer is sending to the service sub-layers of the lower layer for forwarding-to-service aggregation at the ingress node or relay node."; @@ -1394,8 +1410,8 @@ module ietf-detnet { } container forwarding-sub-layer { description - "This forwarding sub-layer is sent to the forwarding - sub-layers of the lower layer for + "This forwarding sub-layer is sending to the + forwarding sub-layers of the lower layer for forwarding-to-forwarding aggregation at the ingress node or relay node or transit node."; leaf aggregation-sub-layer { @@ -1412,7 +1428,7 @@ module ietf-detnet { } container service-sub-layer { description - "This forwarding sub-layer is sent to the service + "This forwarding sub-layer is sending to the service sub-layer of the upper layer and decapsulate the F-label for DetNet service or service-to-forwarding disaggregation at the relay node or egress node. @@ -1424,12 +1440,12 @@ module ietf-detnet { } container forwarding-disaggregation { description - "This forwarding sub-layer is sent to the forwarding - sub-layer of the upper layer and decapsulate the - F-label for forwarding-to-forwarding disaggregation - at the transit node or relay node or egress node. - This outgoing type only can be chosen when the - operation type is pop-and-lookup."; + "This forwarding sub-layer is sending to the + forwarding sub-layer of the upper layer and + decapsulate the F-label for forwarding-to-forwarding + disaggregation at the transit node or relay node or + egress node. This outgoing type only can be chosen + when the operation type is pop-and-lookup."; uses forwarding-sub-layer-group; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-diffserv@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-diffserv@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-diffserv@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-diffserv@2024-01-31.yang index 007fe2512..dc045b065 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-diffserv@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-diffserv@2024-01-31.yang @@ -47,7 +47,7 @@ module ietf-diffserv { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-distributed-notif@2023-09-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-distributed-notif@2023-09-17.yang deleted file mode 100644 index cfcc24146..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-distributed-notif@2023-09-17.yang +++ /dev/null @@ -1,91 +0,0 @@ -module ietf-distributed-notif { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-distributed-notif"; - prefix dn; - import ietf-subscribed-notifications { - prefix sn; - } - - organization "IETF NETCONF (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - - Editor: Tianran Zhou - - - Editor: Guangying Zheng - "; - - description - "Defines augmentation for ietf-subscribed-notifications to - enable the distributed publication with single subscription. - - Copyright (c) 2018 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (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-09-17 { - description - "Initial version"; - reference - "RFC XXXX: Subscription to Distributed Notifications"; - } - - grouping message-publisher-ids { - description - "Provides a reusable list of message-publisher-ids."; - - leaf-list message-publisher-id { - type uint32; - config false; - ordered-by user; - description - "Software process which created the message (e.g., - processor 1 on line card 1). This field is - used to notify the collector the working originator."; - } - } - - augment "/sn:subscriptions/sn:subscription" { - description - "This augmentation allows the Message - Publisher ID to be exposed for a subscription."; - - uses message-publisher-ids; - } - - augment "/sn:subscription-started" { - description - "This augmentation allows MSO specific parameters to be - exposed for a subscription."; - - uses message-publisher-ids; - } - - augment "/sn:subscription-modified" { - description - "This augmentation allows MSO specific parameters to be - exposed for a subscription."; - - uses message-publisher-ids; - } - - augment "/sn:establish-subscription/sn:output" { - description - "This augmentation allows MSO specific parameters to be - exposed for a subscription."; - - uses message-publisher-ids; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-distributed-notif@2024-04-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-distributed-notif@2024-04-21.yang new file mode 100644 index 000000000..fe5f4e5bc --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-distributed-notif@2024-04-21.yang @@ -0,0 +1,128 @@ +module ietf-distributed-notif { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-distributed-notif"; + prefix dn; + + import ietf-subscribed-notifications { + prefix sn; + } + import ietf-yang-push { + prefix yp; + reference + "RFC 8641: Subscription to YANG Notifications for Datastore Updates"; + } + + organization "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Authors: Guangying Zheng + + Tianran Zhou + + Thomas Graf + + Pierre Francois + + Eric Voit + "; + + description + "Defines augmentation for ietf-subscribed-notifications to + enable the distributed publication with single subscription. + + Copyright (c) 2018 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Simplified BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (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-04-21 { + description + "Initial version"; + reference + "RFC XXXX: Subscription to Distributed Notifications"; + } + + grouping message-publisher-id { + description + "Provides a reusable leaf of te message-publisher-id."; + + leaf message-publisher-id { + type uint32; + config false; + description + "Identifies the software process which publishes the + message (e.g., processor 1 on line card 1). This field + is used to notify the receiver which publisher process + published which message."; + } + } + + grouping message-publisher-ids { + description + "Provides a reusable leaf-list of message-publisher-id-list."; + leaf-list message-publisher-ids { + type uint32; + config false; + description + "Identifies the software process which publishes the + message (e.g., processor 1 on line card 1). This field + is used to notify the receiver which publisher processes + are going to publish."; + } + } + + augment "/sn:subscriptions/sn:subscription" { + description + "This augmentation allows the Message + Publisher ID to be exposed for a subscription."; + + uses message-publisher-ids; + } + + augment "/sn:subscription-started" { + description + "This augmentation adds the Message Publisher ID to the + subscription-started subscription change notifications."; + + uses message-publisher-ids; + } + + augment "/sn:subscription-modified" { + description + "This augmentation adds the Message Publisher ID to the + subscription-modified subscription change notifications."; + + uses message-publisher-ids; + } + + augment "/sn:establish-subscription/sn:output" { + description + "This augmentation adds the Message Publisher ID to the + dynamic establish-subscription output."; + + uses message-publisher-ids; + } + augment "/yp:push-update" { + description + "This augmentation adds the Message Publisher ID in the + push-update notification."; + uses message-publisher-id; + } + augment "/yp:push-change-update" { + description + "This augmentation adds the Message Publisher ID in the + push-change-update notification."; + uses message-publisher-id; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent-acl@2024-07-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent-acl@2024-07-03.yang new file mode 100644 index 000000000..d5d163567 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent-acl@2024-07-03.yang @@ -0,0 +1,300 @@ +module ietf-dtnma-agent-acl { + yang-version 1.1; + namespace "ari://ietf-dtnma-agent-acl"; + prefix acl; + + import ietf-amm { + prefix amm; + } + import ietf-dtnma-agent { + prefix da; + } + + organization + "IETF Delay Tolerant Networking (DTN) Working Group"; + contact + "WG Web: + WG List: + + Editor: Brian Sipos + "; + description + "This module implements the DTN Management Architecture (DTNMA) + Agent Access Control List (ACL) functionality. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + reference + "draft-ietf-dtn-adm-yang"; + + revision 2024-07-03 { + description + "Updated for latest ADM document."; + reference + "draft-ietf-dtn-adm-yang"; + } + revision 2023-12-12 { + description + "Initial version for latest AMM document"; + reference + "draft-birrane-dtn-adm"; + } + amm:enum 2; + amm:typedef tag { + amm:enum 0; + description + "Datatype for access control list tags"; + amm:type "./TYPEDEF/permissions"; + } + amm:typedef permissions { + amm:enum 1; + amm:type "/ARITYPE/BYTE" { + amm:int-labels { + bit tag-read { + position 0; + description + "Permission bit for Read"; + } + bit tag-write { + position 1; + description + "Permission bit for Write"; + } + bit tag-execute { + position 2; + description + "Permission bit for Execute/Evaluate"; + } + } + } + } + amm:typedef entry-id { + amm:enum 2; + description + "The identifier for an entry in any access control table."; + amm:type "/ARITYPE/UVAST"; + } + amm:typedef optional-entry-id { + amm:enum 3; + description + "An optional entry identifier (or a null value)."; + amm:union { + amm:type "./TYPEDEF/entry-id"; + amm:type "/ARITYPE/null"; + } + } + amm:typedef result { + amm:enum 4; + amm:type "/ARITYPE/INT" { + amm:int-labels { + enum success { + value 0; + description + "Execution was successful"; + } + enum error-generic { + value 1; + description + "Generic execution failure"; + } + enum error-permission-denied { + value 2; + description + "Manager does not have permission"; + } + } + } + } + + // Default access permission + amm:var default-access { + amm:enum 1; + description + "The default permission for any object if no specific access are + present in the ./EDD/access-list table."; + amm:type "./TYPEDEF/tag"; + } + + // Access control table and modifier controls + amm:edd access-list { + amm:enum 2; + description + "List the current group--object access."; + amm:tblt { + amm:key "id"; + amm:column id { + amm:type "./TYPEDEF/entry-id"; + } + amm:column group { + description + "A cross-reference to the group getting access, or null to match all groups."; + amm:type "./TYPEDEF/optional-entry-id"; + } + amm:column object-pattern { + description + "A pattern for objects being accessed, which may match all objects."; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:column tag { + description + "A pattern for objects being accessed, which may match all objects."; + amm:type "./TYPEDEF/tag"; + } + } + } + amm:ctrl ensure-access { + amm:enum 3; + description + "Ensures that an access control permission is set for the given group and ARI pattern."; + amm:parameter group { + description + "Identify the group being assigned the permission"; + amm:type "./TYPEDEF/optional-entry-id"; + } + amm:parameter object-pattern { + description + "ARI pattern to determine which objects shall be assigned the permission"; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:parameter tag { + description + "Permission tag value to set"; + amm:default "0"; + amm:type "./TYPEDEF/tag"; + } + amm:result error-code { + description + "If non-zero, an indicator of an error."; + amm:type "./TYPEDEF/result"; + } + } + amm:ctrl discard-access { + amm:enum 4; + description + "Discard any permissions for the given group and ARI pattern."; + amm:parameter group { + description + "Identify the group"; + amm:type "./TYPEDEF/optional-entry-id"; + } + amm:parameter object-pattern { + description + "ARI pattern"; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:result error-code { + description + "If non-zero, an indicator of an error."; + amm:type "./TYPEDEF/result"; + } + } + + // + // Group management + // + amm:typedef transport-endpoint-pattern { + amm:enum 5; + amm:type "/ARITYPE/IDENT" { + amm:base "//ietf-dtnma-agent/IDENT/transport-endpoint-pattern"; + } + } + amm:edd current-group-id { + amm:enum 3; + description + "Get the group ID for the current execution context, which may be + the implicit Agent group ID zero."; + amm:type "./TYPEDEF/entry-id"; + } + amm:edd group-list { + amm:enum 4; + description + "Get the defined access control groups."; + amm:tblt { + amm:key "id"; + amm:column id { + description + "The unique identifier for a group. + The agent itself has implicit group ID zero."; + amm:type "./TYPEDEF/entry-id"; + } + amm:column name { + description + "The human-friendly name of the group."; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:column members { + description + "The list of members of the group, identified by matching transport endpoint."; + amm:ulist { + amm:type "./TYPEDEF/transport-endpoint-pattern"; + } + } + } + } + amm:ctrl ensure-group { + amm:enum 5; + description + "Ensure that after the control completes a group exists with the given information"; + amm:parameter id { + description + "Uniquely identify the group"; + amm:type "./TYPEDEF/entry-id"; + } + amm:parameter name { + description + "Name of the group"; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:result error-code { + description + "If non-zero, an indicator of an error."; + amm:type "./TYPEDEF/result"; + } + } + amm:ctrl ensure-group-members { + amm:enum 7; + description + "Ensure that the membership of a group has a specific set of endpoint patterns."; + amm:parameter id { + description + "Uniquely identify the group"; + amm:type "./TYPEDEF/entry-id"; + } + amm:parameter members { + amm:ulist { + amm:type "./TYPEDEF/transport-endpoint-pattern"; + } + } + amm:result error-code { + description + "If non-zero, an indicator of an error."; + amm:type "./TYPEDEF/result"; + } + } + amm:ctrl discard-group { + amm:enum 6; + description + "Discard any group with the given ID."; + amm:parameter group { + description + "Uniquely identify the group"; + amm:type "./TYPEDEF/entry-id"; + } + amm:result error-code { + description + "If non-zero, an indicator of an error."; + amm:type "./TYPEDEF/result"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang deleted file mode 100644 index 67e1b7605..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2023-06-08.yang +++ /dev/null @@ -1,348 +0,0 @@ -module ietf-dtnma-agent { - namespace "ari:/ietf-dtnma-agent"; - prefix da; - amm:enum "0"; - - import ietf-amm { - prefix amm; - } - - organization - "IETF Delay Tolerant Networking (DTN) Working Group"; - contact - "WG Web: - WG List: - - Editor: Brian Sipos - "; - description - "This module implements the DTN Management Architecture (DTNMA) - Agent core functionality."; - reference - "draft-birrane-dtn-adm"; - - revision 2023-06-08 { - description - "Updated for latest AMM contents."; - reference - "draft-birrane-dtn-adm"; - } - - feature rules { - description - "Conforming to this feature enables time-based and - state-based autonomy rules."; - } - - amm:edd amp_version { - amm:type TEXTSTR; - description - "The version of AMP which this agent supports."; - } - amm:edd capability { - amm:tblt { - amm:key "adm_name"; - amm:column adm_name { - amm:type amm:LABEL; - description - "The module name of the ADM"; - } - amm:column revision { - amm:type amm:TEXTSTR; - description - "The specific revision the agent supports."; - } - amm:column features { - amm:ulist { - amm:type amm:LABEL; - } - description - "The features of the ADM which the agent supports."; - } - } - description - "A table to indicate the ADM capability of the sending agent."; - } - amm:const hello { - amm:type amm:RPTT; - amm:init-value "(../EDD/amp_version,../EDD/capability)"; - description - "A report template to indicate the presence of an agent - on a network."; - } - - // MAC helper controls - amm:ctrl if_then_else { - amm:parameter condition { - amm:type amm:EXPR; - description - "The condition to evaluate."; - } - amm:parameter on_truthy { - amm:type amm:EXEC-REF; - description - "The object to execute when the condition is truthy."; - } - amm:parameter on_falsy { - amm:union { - amm:type amm:NULL; - amm:type amm:EXEC-REF; - } - amm:default "null"; - description - "An optional execution when the condition is falsey."; - } - description - "Evaluate an expression and follow one of two branches of - further evaluation."; - } - amm:ctrl catch { - amm:parameter try { - amm:type amm:EXEC-REF; - description - "The object to execute."; - } - amm:parameter on_failure { - amm:union { - amm:type amm:NULL; - amm:type amm:EXEC-REF; - } - amm:default "null"; - description - "An optional execution after failure."; - } - description - "Attempt to execute an object, and if there is some failure catch it - and execute an alternative object."; - } - amm:ctrl inspect { - amm:parameter ref { - amm:type amm:VALUE-REF; - description - "An object to produce a value from."; - } - amm:result val { - amm:type amm:ANY; - description - "The produced value."; - } - description - "Produce a result value to inspect the agent state. - This does not perform any EXPR evaluation or RPTT handling."; - } - amm:ctrl report_on { - amm:parameter rptt { - amm:type amm:RPTT; - } - description - "Generate a report on an object without needing to define an object. - The parameter is a single RPTT list that would be produced by an object. - If used for more than one-shot diagnostics, defining a RPTT - (e.g. in a VAR) is more efficient because the RPTT item would not - be present in the report."; - } - - grouping obj-list-params { - amm:parameter include_adm { - amm:type amm:BOOL; - amm:default "false"; - description - "If true, listings will include objects from ADMs"; - } - description - "Common parameters for object listing"; - } - - amm:edd typedef_list { - uses obj-list-params; - amm:tblt { - amm:key "obj"; - amm:column obj { - amm:type amm:TYPEDEF-REF; - } - } - description - "A table of TYPEDEF within the agent."; - } - - // Objects related to VAR handling - amm:edd var_list { - uses obj-list-params; - amm:tblt { - amm:key "obj"; - amm:column obj { - amm:type amm:VAR-REF; - } - amm:column type { - amm:type amm:TYPE-REF; - } - } - description - "A table of VAR within the agent."; - } - amm:ctrl var_present { - amm:parameter obj { - amm:type amm:VAR-REF; - description - "A reference to a VAR within an ODM only."; - } - amm:parameter type { - amm:type amm:TYPE-REF; - description - "The type for the VAR object."; - } - amm:parameter init { - amm:union { - amm:type amm:NULL; - amm:type amm:EXPR; - } - amm:default "null"; - description - "An optional initializer expression."; - } - description - "Ensure a specific VAR is present."; - } - amm:ctrl var_absent { - amm:parameter obj { - amm:type amm:VAR-REF; - description - "A reference to a VAR within an ODM only."; - } - description - "Ensure a specific VAR is not present."; - } - - // Objects related to SBR handling - amm:edd sbr_list { - if-feature "rules"; - amm:tblt { - amm:key "obj"; - amm:column obj { - amm:type amm:SBR-REF; - } - amm:column action { - amm:type amm:MAC; - description - "The execution when this rule triggers."; - } - amm:column start_time { - amm:type amm:TIME; - } - amm:column condition { - amm:type amm:EXPR; - } - amm:column min_interval { - amm:type TD; - } - amm:column max_count { - amm:type UVAST; - } - } - } - amm:edd tbr_list { - if-feature "rules"; - amm:tblt { - amm:key "obj"; - amm:column obj { - amm:type amm:OBJ-REF; - } - amm:column action { - amm:type amm:MAC; - description - "The execution when this rule triggers."; - } - amm:column start_time { - amm:type amm:TIME; - } - amm:column period { - amm:type TD; - } - amm:column max_count { - amm:type UVAST; - } - } - } - - grouping numeric-unary-operands { - amm:operand val { - amm:type amm:NUMERIC; - description - "The single value."; - } - } - - grouping numeric-binary-operands { - amm:operand left { - amm:type amm:NUMERIC; - description - "The left-side operand."; - } - amm:operand right { - amm:type amm:NUMERIC; - description - "The left-side operand."; - } - } - - grouping numeric-unary-result { - amm:result val { - amm:type amm:NUMERIC; - description - "The single value."; - } - } - - amm:oper negate { - uses numeric-unary-operands; - uses numeric-unary-result; - description - "Negate a value. - This is equivalent to multiplying by -1 but a shorter - expression."; - } - amm:oper add { - uses numeric-binary-operands; - uses numeric-unary-result; - description - "Add two numeric values. - The operands are cast to the least compatible numeric type - before the arithmetic."; - } - - // amm:oper sub - // amm:oper multiply - // amm:oper divide - // amm:oper add - // amm:oper bit_not - // amm:oper bit_and - // amm:oper bit_or - // amm:oper bit_xor - // amm:oper bool_not - // amm:oper bool_and - // amm:oper bool_or - // amm:oper bool_xor - // amm:oper compare_eq - // amm:oper compare_ne - // amm:oper compare_gt - // amm:oper compare_ge - amm:oper compare_lt { - uses numeric-binary-operands; - uses numeric-unary-result; - description - "Compare two operands by value. - The result is true if the left value is less than the right. - The operands are cast to the least compatible numeric type - before the comparison."; - } - amm:oper compare_le { - uses numeric-binary-operands; - uses numeric-unary-result; - description - "Compare two operands by value. - The result is true if the left value is less than or - equal to the right. - The operands are cast to the least compatible numeric type - before the comparison."; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang new file mode 100644 index 000000000..1c2830069 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-dtnma-agent@2024-07-03.yang @@ -0,0 +1,752 @@ +module ietf-dtnma-agent { + yang-version 1.1; + namespace "ari://ietf-dtnma-agent"; + prefix da; + + import ietf-amm { + prefix amm; + } + + organization + "IETF Delay Tolerant Networking (DTN) Working Group"; + contact + "WG Web: + WG List: + + Editor: Brian Sipos + "; + description + "This module implements the DTN Management Architecture (DTNMA) + Agent core functionality. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + reference + "draft-ietf-dtn-adm-yang"; + + revision 2024-07-03 { + description + "Updated for latest ADM document."; + reference + "draft-ietf-dtn-adm-yang"; + } + revision 2023-06-08 { + description + "Updated for latest AMM contents."; + reference + "draft-birrane-dtn-adm"; + } + + feature rules { + description + "Conforming to this feature enables time-based and + state-based autonomy rules."; + } + + grouping obj-list-params { + description + "Common parameters for object listing"; + amm:parameter include-adm { + description + "If true, listings will include objects from ADMs"; + amm:default "false"; + amm:type "/ARITYPE/BOOL"; + } + } + + grouping any-binary-operands { + description + "Any-value bianry operands"; + amm:operand left { + description + "The left-side operand."; + amm:type "//ietf-amm/TYPEDEF/ANY"; + } + amm:operand right { + description + "The left-side operand."; + amm:type "//ietf-amm/TYPEDEF/ANY"; + } + } + + grouping numeric-unary-operands { + description + "Numeric unary operand"; + amm:operand val { + description + "The single value."; + amm:type "//ietf-amm/TYPEDEF/NUMERIC"; + } + } + + grouping numeric-binary-operands { + description + "Numeric bianry operands"; + amm:operand left { + description + "The left-side operand."; + amm:type "//ietf-amm/TYPEDEF/NUMERIC"; + } + amm:operand right { + description + "The left-side operand."; + amm:type "//ietf-amm/TYPEDEF/NUMERIC"; + } + } + + grouping numeric-unary-result { + description + "Numeric result"; + amm:result result { + description + "The single value."; + amm:type "//ietf-amm/TYPEDEF/NUMERIC"; + } + } + + grouping integer-unary-operands { + description + "Integer unary operand"; + amm:operand val { + description + "The single value."; + amm:type "//ietf-amm/TYPEDEF/INTEGER"; + } + } + + grouping integer-binary-operands { + description + "Integer bianry operands"; + amm:operand left { + description + "The left-side operand."; + amm:type "//ietf-amm/TYPEDEF/INTEGER"; + } + amm:operand right { + description + "The left-side operand."; + amm:type "//ietf-amm/TYPEDEF/INTEGER"; + } + } + + grouping integer-unary-result { + description + "Integer result"; + amm:result result { + description + "The single value."; + amm:type "//ietf-amm/TYPEDEF/INTEGER"; + } + } + + grouping bool-unary-operands { + description + "Boolean unary operand"; + amm:operand val { + description + "The single value."; + amm:type "/ARITYPE/BOOL"; + } + } + + grouping bool-binary-operands { + description + "Boolean bianry operands"; + amm:operand left { + description + "The left-side operand."; + amm:type "/ARITYPE/BOOL"; + } + amm:operand right { + description + "The left-side operand."; + amm:type "/ARITYPE/BOOL"; + } + } + grouping bool-unary-result { + description + "Boolean result"; + amm:result result { + description + "The single value."; + amm:type "/ARITYPE/BOOL"; + } + } + + amm:enum 1; + amm:edd sw-vendor { + amm:enum 0; + description + "The vendor for this Agent implementation."; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:edd sw-version { + amm:enum 1; + description + "The version for this Agent implementation."; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:edd capability { + amm:enum 2; + description + "A table to indicate the ADM capability of the sending agent."; + amm:tblt { + amm:key "adm-name"; + amm:column adm-name { + description + "The module name of the ADM"; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:column enum { + description + "The module enumeration of the ADM"; + amm:type "/ARITYPE/VAST"; + } + amm:column revision { + description + "The specific revision the agent supports."; + amm:type "/ARITYPE/TEXTSTR"; + } + amm:column features { + description + "The features of the ADM which the agent supports."; + amm:ulist { + amm:type "/ARITYPE/TEXTSTR"; + } + } + } + } + amm:const hello { + amm:enum 0; + description + "A report template to indicate the presence of an agent + on a network."; + amm:init-value "/AC/(./EDD/sw-vendor,./EDD/sw-version,./EDD/capability)"; + amm:type "//ietf-amm/TYPEDEF/RPTT"; + } + + // Messaging counters + amm:edd num-msg-rx { + amm:enum 3; + amm:type "//ietf-amm/TYPEDEF/counter64"; + } + amm:edd num-msg-rx-failed { + amm:enum 4; + amm:type "//ietf-amm/TYPEDEF/counter64"; + } + amm:edd num-msg-tx { + amm:enum 5; + amm:type "//ietf-amm/TYPEDEF/counter64"; + } + + // Execution counters and states + amm:edd num-exec-started { + amm:enum 6; + amm:type "//ietf-amm/TYPEDEF/counter64"; + } + amm:edd num-exec-succeeded { + amm:enum 7; + amm:type "//ietf-amm/TYPEDEF/counter64"; + } + amm:edd num-exec-failed { + amm:enum 8; + amm:type "//ietf-amm/TYPEDEF/counter64"; + } + amm:edd exec-running { + amm:enum 9; + amm:tblt { + amm:key "pid"; + amm:column pid { + amm:type "/ARITYPE/UVAST"; + } + amm:column target { + amm:type "//ietf-amm/TYPEDEF/ANY"; + } + amm:column state { + amm:type "/ARITYPE/BYTE" { + amm:int-labels { + enum waiting { + value 0; + description + "The execution is waiting on a condition or timer to continue."; + } + enum running { + value 1; + description + "The execution is currently running."; + } + } + } + } + } + } + + // MAC helper controls + amm:ctrl if-then-else { + amm:enum 0; + description + "Evaluate an expression and follow one of two branches of + further evaluation."; + amm:parameter condition { + description + "The condition to evaluate."; + amm:type "//ietf-amm/TYPEDEF/eval-tgt"; + } + amm:parameter on-truthy { + description + "The object to execute when the condition is truthy."; + amm:default "null"; + amm:union { + amm:type "//ietf-amm/TYPEDEF/exec-tgt"; + amm:type "/ARITYPE/NULL"; + } + } + amm:parameter on-falsy { + description + "An optional execution when the condition is falsey."; + amm:default "null"; + amm:union { + amm:type "//ietf-amm/TYPEDEF/exec-tgt"; + amm:type "/ARITYPE/NULL"; + } + } + amm:result branch { + description + "Indication of which branch was executed."; + amm:type "/ARITYPE/BOOL"; + } + } + amm:ctrl catch { + amm:enum 1; + description + "Attempt to execute a target, and if there is some failure catch it + and execute an alternative target."; + amm:parameter try { + description + "The object to execute."; + amm:type "//ietf-amm/TYPEDEF/exec-tgt"; + } + amm:parameter on-failure { + description + "An optional execution after failure."; + amm:default "null"; + amm:union { + amm:type "//ietf-amm/TYPEDEF/exec-tgt"; + amm:type "/ARITYPE/NULL"; + } + } + amm:result try-success { + description + "True if the try target succeeded without exception."; + amm:type "/ARITYPE/BOOL"; + } + } + amm:ctrl wait-for { + amm:enum 2; + description + "This control causes the execution to pause for a given amount of time. + This is intended to be used within a macro to separate controls + in time."; + amm:parameter duration { + amm:type "/ARITYPE/TD"; + } + } + amm:ctrl wait-until { + amm:enum 3; + description + "This control causes the execution to pause until a specific absolute + time point. + This is intended to be used within a macro to separate controls + in time or as a first macro item to delay execution after the time + of reception."; + amm:parameter time { + amm:type "/ARITYPE/TP"; + } + } + amm:ctrl wait-cond { + amm:enum 4; + description + "This control causes the execution to pause until a condition expression + evaluates to truthy. + This is intended to be used within a macro to separate controls + in time or as a first macro item to delay execution until the + condition is met."; + amm:parameter condition { + amm:type "//ietf-amm/TYPEDEF/eval-tgt"; + } + } + + // Value production and reporting + amm:ctrl inspect { + amm:enum 5; + description + "Produce a result value to inspect the agent state. + This does not perform any EXPR evaluation or RPTT handling."; + amm:parameter ref { + description + "An object to produce a value from."; + amm:type "//ietf-amm/TYPEDEF/VALUE-OBJ"; + } + amm:result val { + description + "The produced value."; + amm:type "//ietf-amm/TYPEDEF/ANY"; + } + } + amm:ctrl report-on { + amm:enum 6; + description + "Generate a report on an object without needing to define an object. + The parameter is a single RPTT list that would be produced by an object. + If used for more than one-shot diagnostics, defining a RPTT + (e.g. in a VAR) is more efficient because the RPTT item would not + be present in the report."; + amm:parameter rptt { + amm:type "//ietf-amm/TYPEDEF/rpt-tgt"; + } + } + + // Helpers for VAR + amm:ctrl var-reset { + amm:enum 7; + description + "Modify a VAR state to its default value."; + amm:parameter target { + description + "The VAR object to affect."; + amm:type "/ARITYPE/VAR"; + } + } + amm:ctrl var-store { + amm:enum 8; + description + "Modify a VAR state to a specific value."; + amm:parameter target { + description + "The VAR object to affect."; + amm:type "/ARITYPE/VAR"; + } + amm:parameter value { + description + "The exact value to store in the VAR."; + amm:type "//ietf-amm/TYPEDEF/ANY"; + } + } + amm:typedef hellotyp { + amm:enum 0; + amm:union { + amm:type "/ARITYPE/BYTE"; + amm:type "/ARITYPE/UINT"; + } + } + amm:edd typedef-list { + amm:enum 10; + description + "A table of TYPEDEF within the agent."; + uses obj-list-params; + amm:tblt { + amm:key "obj"; + amm:column obj { + amm:type "/ARITYPE/TYPEDEF"; + } + } + } + // Objects related to VAR handling + amm:edd var-list { + amm:enum 11; + description + "A table of VAR within the agent."; + uses obj-list-params; + amm:tblt { + amm:key "obj"; + amm:column obj { + amm:type "/ARITYPE/VAR"; + } + amm:column type { + amm:type "//ietf-amm/TYPEDEF/TYPE-REF"; + } + } + } + amm:ctrl ensure-var { + amm:enum 9; + description + "Ensure a specific VAR is present."; + amm:parameter obj { + description + "A reference to a VAR within an ODM only."; + amm:type "/ARITYPE/VAR"; + } + amm:parameter type { + description + "The type for the VAR object."; + amm:type "//ietf-amm/TYPEDEF/TYPE-REF"; + } + amm:parameter init { + description + "An optional initializer expression."; + amm:default "null"; + amm:union { + amm:type "/ARITYPE/NULL"; + amm:type "//ietf-amm/TYPEDEF/EXPR"; + } + } + } + amm:ctrl discard-var { + amm:enum 10; + description + "Discard a specific VAR if it is present."; + amm:parameter obj { + description + "A reference to a VAR within an ODM only."; + amm:type "/ARITYPE/VAR"; + } + } + + // Objects related to SBR handling + amm:edd sbr-list { + if-feature "rules"; + amm:enum 12; + amm:tblt { + amm:key "obj"; + amm:column obj { + amm:type "/ARITYPE/SBR"; + } + amm:column action { + description + "The execution when this rule triggers."; + amm:type "//ietf-amm/TYPEDEF/MAC"; + } + amm:column start-time { + amm:type "//ietf-amm/TYPEDEF/TIME"; + } + amm:column condition { + amm:type "//ietf-amm/TYPEDEF/EXPR"; + } + amm:column min-interval { + amm:type "/ARITYPE/TD"; + } + amm:column max-count { + amm:type "/ARITYPE/UVAST"; + } + } + } + amm:edd tbr-list { + if-feature "rules"; + amm:enum 13; + amm:tblt { + amm:key "obj"; + amm:column obj { + amm:type "/ARITYPE/TBR"; + } + amm:column action { + description + "The execution when this rule triggers."; + amm:type "//ietf-amm/TYPEDEF/MAC"; + } + amm:column start-time { + amm:type "//ietf-amm/TYPEDEF/TIME"; + } + amm:column period { + amm:type "/ARITYPE/TD"; + } + amm:column max-count { + amm:type "/ARITYPE/UVAST"; + } + } + } + + // Numeric operators + amm:oper negate { + amm:enum 0; + description + "Negate a value. + This is equivalent to multiplying by -1 but a shorter + expression."; + uses numeric-unary-operands; + uses numeric-unary-result; + } + amm:oper add { + amm:enum 1; + description + "Add two numeric values. + The operands are cast to the least compatible numeric type + before the arithmetic."; + uses numeric-binary-operands; + uses numeric-unary-result; + } + amm:oper sub { + amm:enum 2; + uses numeric-binary-operands; + uses numeric-unary-result; + } + amm:oper multiply { + amm:enum 3; + uses numeric-binary-operands; + uses numeric-unary-result; + } + amm:oper divide { + amm:enum 4; + uses numeric-binary-operands; + uses numeric-unary-result; + } + amm:oper remainder { + amm:enum 5; + uses numeric-binary-operands; + uses numeric-unary-result; + } + + // Bitwise operators + amm:oper bit-not { + amm:enum 6; + uses integer-unary-operands; + uses integer-unary-result; + } + amm:oper bit-and { + amm:enum 7; + uses integer-binary-operands; + uses integer-unary-result; + } + amm:oper bit-or { + amm:enum 8; + uses integer-binary-operands; + uses integer-unary-result; + } + amm:oper bit-xor { + amm:enum 9; + uses integer-binary-operands; + uses integer-unary-result; + } + + // Boolean operators + amm:oper bool-not { + amm:enum 10; + uses bool-binary-operands; + uses bool-unary-result; + } + amm:oper bool-and { + amm:enum 11; + uses bool-binary-operands; + uses bool-unary-result; + } + amm:oper bool-or { + amm:enum 12; + uses bool-binary-operands; + uses bool-unary-result; + } + amm:oper bool-xor { + amm:enum 13; + uses bool-binary-operands; + uses bool-unary-result; + } + + // Value comparison + amm:oper compare-eq { + amm:enum 14; + uses any-binary-operands; + uses bool-unary-result; + } + amm:oper compare-ne { + amm:enum 15; + uses any-binary-operands; + uses bool-unary-result; + } + + // Numeric comparison + amm:oper compare-gt { + amm:enum 16; + description + "Compare two numbers by value. + The result is true if the left value is greater than the right. + The operands are cast to the least compatible numeric type + before the comparison."; + uses numeric-binary-operands; + uses bool-unary-result; + } + amm:oper compare-ge { + amm:enum 17; + description + "Compare two numbers by value. + The result is true if the left value is greater than or equal + to the right. + The operands are cast to the least compatible numeric type + before the comparison."; + uses numeric-binary-operands; + uses bool-unary-result; + } + amm:oper compare-lt { + amm:enum 18; + description + "Compare two operands by value. + The result is true if the left value is less than the right. + The operands are cast to the least compatible numeric type + before the comparison."; + uses numeric-binary-operands; + uses bool-unary-result; + } + amm:oper compare-le { + amm:enum 19; + description + "Compare two operands by value. + The result is true if the left value is less than or + equal to the right. + The operands are cast to the least compatible numeric type + before the comparison."; + uses numeric-binary-operands; + uses bool-unary-result; + } + + // Table filtering + amm:typedef column-id { + amm:enum 1; + description + "Name or index of an individual column in a table."; + amm:union { + amm:type "/ARITYPE/UVAST"; + amm:type "/ARITYPE/TEXTSTR"; + } + } + amm:oper tbl-filter { + amm:enum 20; + description + "Filter a table first by rows and then by columns."; + amm:parameter row-match { + description + "A filter to match rows with specific cell contents. + Each key is a column to compare and each value is an expression + with LABEL values substituted by column names."; + amm:ulist { + amm:type "//ietf-amm/TYPEDEF/EXPR"; + } + } + amm:parameter columns { + description + "A filter to match rows with specific cell contents. + Each key is a column to compare and each value is an expression + with LABEL values substituted by column names."; + amm:ulist { + amm:type "./TYPEDEF/column-id"; + } + } + amm:operand in { + description + "Table to filter."; + amm:type "/ARITYPE/TBL"; + } + amm:result out { + description + "The filtered table."; + amm:type "/ARITYPE/TBL"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-energy-saving-common@2024-01-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-energy-saving-common@2024-01-23.yang new file mode 100644 index 000000000..6b3b46266 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-energy-saving-common@2024-01-23.yang @@ -0,0 +1,425 @@ +module ietf-energy-saving-common { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-energy-saving-common"; + prefix esm-common; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Types"; + } + + organization + "IETF xxx Working Group."; + contact + "WG Web: ; + WG List: + + Author: Gen Chen + + Editor: Qin Wu + + Editor: Mohamed Boucadair + + Author: Carlos Pignataro + "; + description + "This module contains a collection of YANG definitions for power + and energy management of devices. It also augments both the + network topology and inventory models. + + 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-23 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Data Models for Energy Saving Management"; + } + + feature energy-saving { + description + "Specifies support of energy saving management."; + } + + identity energy-saving-mode { + description + "Base identity for energy saving mode."; + } + identity basic { + base energy-saving-mode; + description + "Basic energy saving mode. + + In this mode, the system will shut down idle modules + and put them in a sleep mode."; + } + + identity standard { + base energy-saving-mode; + description + "Standard energy saving mode. + + In this mode, the system extends basic energy saving + mode with more advanced Lossless energy saving features, + e.g., power module schedule."; + } + + identity deep { + base energy-saving-mode; + description + "Deep energy saving mode. + + In this mode, the system extends standard energy saving + mode with more advanced system level energy saving features, + e.g., board scheduling."; + } + + identity energy-saving-method { + description + "Base identity for energy saving method."; + } + + identity zone-based-fan-speed-adjustment { + base energy-saving-method; + description + "The system collects information about the + temperatures of the service boards in the chassis + and the zones where the service boards reside. + + According to the current temperature and target + temperature of each board, the system implements + stepless speed adjustment in different zones."; + } + + identity unused-high-speed-interface-shutdown { + base energy-saving-method; + description + "When detecting an unused high-speed interface, the + system shuts down the interface to reduce power consumption + of the interface circuits. + + When the interface needs to run service, the + system will automatically wake up the interface and + restore the interface to the normal working state."; + } + + identity unused-port-shutdown { + base energy-saving-method; + description + "When detecting an unused user port, the system automatically + or manually shuts down the interface circuits and optical + module of the port to reduce port power consumption. When + detecting that the port needs to run service, the system + automatically enables the port and restores the port to the + normal running state, without affecting application of the + board."; + } + + identity unused-board-shutdown { + base energy-saving-method; + description + "When detecting an unused board, the system automatically + shuts down the power supply of the board, ensuring zero + power consumption of an unused board. + + When detecting that the board needs to run service, the system + automatically powers on the board and restores the board + to the normalrunning state, without affecting application of + the whole device."; + } + + identity dynamic-frequency-adjustment { + base energy-saving-method; + description + "When detecting that a service board is carrying a small + service load, the system automatically reduces the working + frequency of the service processing module of the board + while maintaining the service quality. In doing so, power + consumption of the service processing module is reduced. + When the service load of the board increases, the system + automatically increases the working frequency of the service + processing module to meet service needs."; + } + + identity unused-channel-shutdown { + base energy-saving-method; + description + "When an unused channel is detected, the unused channel is + closed. Dynamically open the channel when detecting that + there are services on the channel."; + } + + identity load-based-power-module-scheduling { + base energy-saving-method; + description + "Power modules intelligently schedule internal power supply + based on the power load. When the power load decreases, + some power supplies are automatically disabled. + + When the power load increases, the disabled power supplies + are enabled again. "; + } + + identity load-based-board-scheduling { + base energy-saving-method; + description + "Boards intelligently schedule internal forwarding resources + based on the service load. When the service load decreases, + some forwarding resources are automatically disabled or the + working frequency of the forwarding resources is reduced. + + When the service load increases, the disabled forwarding + resources are enabled again or the working frequency of + forwarding resources is improved. In the case of burst + traffic, packet forwarding may be delayed, but packets + will not be lost."; + } + + identity energy-saving-power-state { + description + "Base identity for power state."; + reference + "RFC 7326: Energy Management Framework"; + } + + identity off-state { + base energy-saving-power-state; + description + "Indicates that the component typically + requires a complete boot when awakened."; + reference + "RFC 7326: Energy Management Framework"; + } + + identity sleep-state { + base energy-saving-power-state; + description + "Indicates that a component with energy management support + is not functional but immediately available such as + wake up mechanism."; + reference + "RFC 7326: Energy Management Framework"; + } + + identity low-power-state { + base energy-saving-power-state; + description + "Indicates that some components with energy management + support are not available and these components can + take measures to use less energy."; + reference + "RFC 7326: Energy Management Framework"; + } + + identity full-power-state { + base energy-saving-power-state; + description + "Indicates that all components with energy management + support are available and may use maximum power."; + reference + "RFC 7326: Energy Management Framework"; + } + + typedef energy-saving-operator { + type enumeration { + enum on { + value 1; + description + "Power-on for energy saving."; + } + enum off { + value 2; + description + "Power-off for energy saving."; + } + } + description + "Energy saving operator."; + } + + grouping energy-consumption-data { + description + "Grouping for energy monitoring."; + leaf average-power { + type yang:gauge64; + units "mW"; + description + "The average consumed power."; + } + leaf saved-power { + type yang:gauge64; + units "mW"; + description + "The saved power."; + } + leaf real-power { + type yang:gauge64; + units "mW"; + description + "The actual observed consumed power."; + reference + "RFC 6988: Requirements for Energy Management"; + } + leaf actual-volts { + type int32; + units "mV"; + description + "The actual observed voltage."; + reference + "RFC 6988: Requirements for Energy Management"; + } + leaf actual-amperes { + type int32; + units "mA"; + description + "The actual observed current."; + reference + "RFC 6988: Requirements for Energy Management"; + } + leaf actual-celsius { + type int32; + units "0.01 C"; + description + "The actual observed temperature."; + } + } + + grouping energy-saving-modes { + description + "Grouping for energy saving mode and methods."; + list energy-saving-mode { + key "mode"; + description + "The energy saving mode."; + leaf mode { + type identityref { + base energy-saving-mode; + } + description + "The energy saving mode."; + } + leaf-list energy-saving-method { + type identityref { + base energy-saving-method; + } + description + "The energy saving method."; + } + } + } + + grouping power-parameters { + description + "Grouping for energy paramters."; + leaf temperature-upper-bound { + type int32; + units "0.01 C"; + description + "The upper bound overheat temperature of the component. + Upon the upper bound is exceeded, an alarm will be + triggered to indicate fatal failure."; + reference + "RFC 8632: A YANG Data Model for Alarm Management"; + } + leaf temperature-middle-bound { + type int32; + units "0.01 C"; + description + "The middle bound overheat temperature of the component. + Upon the middle bound is exceeded, an alarm will be + triggered."; + reference + "RFC 8632: A YANG Data Model for Alarm Management"; + } + leaf temperature-lower-bound { + type int32; + units "0.01 C"; + description + "The lower bound overheat temperature of the component. + Upon the lower bound is exceeded, the alarm will be + triggered."; + reference + "RFC 8632: A YANG Data Model for Alarm Management"; + } + leaf rated-power { + type yang:gauge64; + units "mW"; + description + "The rated power."; + } + leaf expected-volts { + type int32; + units "mV"; + description + "The expected volts."; + } + leaf low-volts-bound { + type int32; + units "mV"; + description + "The lower volts bound which might cause equipment + misbehavior or even damage."; + } + leaf low-volts-fatal { + type int32; + units "mV"; + description + "The lowest volts bound which might cause equipment fatal + damage."; + } + leaf high-volts-bound { + type int32; + units "mV"; + description + "The higher volts bound which should trigger an alarm."; + reference + "RFC 8632: A YANG Data Model for Alarm Management"; + } + leaf high-volts-fatal { + type int32; + units "mV"; + description + "The highest volts bound of monitoring class which + will cause fatal failure."; + } + } + + grouping energy-power-consumption-stats { + description + "Statistics data about energy and power monitoring."; + leaf total-energy-consumption { + type yang:gauge64; + units "Wh"; + description + "Accumulated energy consumption of equipment."; + } + leaf saved-energy { + type yang:gauge64; + units "Wh"; + description + "Saved energy consumption of equipment."; + } + leaf eer { + type decimal64 { + fraction-digits 18; + } + units "Gbps/Watt"; + description + "The energy efficiency rating (EER) is a metric + generally defined as a functional unit divided by + the energy used."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2021-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2021-07-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang index 0db2e477f..3dd8755b6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2021-07-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-service-oam@2024-03-04.yang @@ -26,6 +26,7 @@ module ietf-eth-service-oam { " WG List: ID-draft editor: + Chaode Yu (yuchaode@huawei.com) Haomian Zheng (zhenghaomian@huawei.com); Italo Busi (italo.busi@huawei.com); Yanlei Zheng (zhengyanlei@chinaunicom.cn); @@ -49,7 +50,7 @@ module ietf-eth-service-oam { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2021-07-10 { + revision 2024-03-04 { description "Initial version"; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2023-12-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang similarity index 80% rename from experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2023-12-15.yang rename to experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang index 0c67abdc8..c6c48d4e5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2023-12-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-service@2024-01-11.yang @@ -1,84 +1,111 @@ module ietf-eth-tran-service { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-service"; - - prefix "ethtsvc"; + prefix etht-svc; import ietf-yang-types { - prefix "yang"; - reference "RFC 6991 - Common YANG Data 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-routing-types { + prefix rt-types; + reference + "RFC 8294: Common YANG Data Types for the Routing Area"; } + import ietf-te-types { - prefix "te-types"; - reference "RFC 8776 - Traffic Engineering Common YANG 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-eth-tran-types { - prefix "etht-types"; - reference "RFC XXXX - A YANG Data Model for Transport - Network Client Signals"; + import ietf-network { + prefix nw; + reference + "RFC8345: A YANG Data Model for Network Topologies"; } - import ietf-routing-types { - prefix "rt-types"; - reference "RFC 8294 - Common YANG Data Types for the - Routing Area"; - + import ietf-network-topology { + prefix "nt"; + reference + "RFC8345: A YANG Data Model for Network Topologies"; } import ietf-te { prefix "te"; - reference "RFC YYYY - A YANG Data Model for Traffic - Engineering Tunnels and Interfaces"; + 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 List: - - ID-draft editor: - Haomian Zheng (zhenghaomian@huawei.com); - Italo Busi (italo.busi@huawei.com); - Aihua Guo (aihuaguo.ietf@gmail.com); - Anton Snitser (asnizar@cisco.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.com); - Chaode Yu (yuchaode@huawei.com); - "; + "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 - 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-12-15 { + 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 - "version -04 as an WG document"; + "Initial Version"; reference - "draft-ietf-ccamp-client-signal-yang"; + "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 @@ -106,7 +133,6 @@ module ietf-eth-tran-service { "VLAN ID value."; } } - case vlan-bundling { leaf vlan-range { type etht-types:vid-range-type; @@ -151,27 +177,24 @@ module ietf-eth-tran-service { description "A grouping which represents VLAN operations."; - leaf pop-tags { + 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)"; + 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 { @@ -179,7 +202,6 @@ module ietf-eth-tran-service { '../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 @@ -194,14 +216,11 @@ module ietf-eth-tran-service { 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; } } @@ -215,15 +234,14 @@ module ietf-eth-tran-service { 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"; + path "/etht-svc:etht-svc/etht-svc:globals/" + + "etht-svc:named-bandwidth-profiles/" + + "etht-svc:bandwidth-profile-name"; } description "Name of the bandwidth profile."; @@ -308,35 +326,32 @@ module ietf-eth-tran-service { 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. "; + "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. "; + "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. "; + "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; @@ -345,16 +360,15 @@ module ietf-eth-tran-service { 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 @@ -367,7 +381,6 @@ module ietf-eth-tran-service { uses tunnels-grouping; } } - case frame-base { list otn-tunnels { key name; @@ -376,7 +389,6 @@ module ietf-eth-tran-service { uses tunnels-grouping; } } - case mpls-tp { container pw { description @@ -385,19 +397,21 @@ module ietf-eth-tran-service { } } } - -/* - * Open issue: can we constraints it to be used only with mp services? - */ + /* + * 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"; + "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 Tunnel destination TTP"; + "Identify a split horizon group at the destination Tunnel + Termination Point (TTP)."; } } @@ -456,7 +470,6 @@ module ietf-eth-tran-service { receiving rate is below the low threshold"; } } - grouping etht-svc-instance-config { description "Configuraiton parameters for Ethernet services."; @@ -466,7 +479,6 @@ module ietf-eth-tran-service { description "Name of the ETH service."; } - leaf etht-svc-title { type string; description @@ -477,46 +489,40 @@ module ietf-eth-tran-service { 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 { + 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 { + 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 alarm-threshold { + description + "threshold configuration for the E2E client signal"; + uses alarm-threshold-grouping; } container underlay { description @@ -524,7 +530,6 @@ module ietf-eth-tran-service { ETH service. "; uses etht-svc-tunnel-parameters; } - leaf admin-status { type identityref { base te-types:tunnel-admin-state-type; @@ -539,17 +544,19 @@ module ietf-eth-tran-service { "State parameters for Ethernet services."; leaf operational-state { - type identityref { + type identityref { base te-types:tunnel-state-type; } default te-types:tunnel-state-up; - description "ETH service operational state."; + description + "ETH service operational state."; } leaf provisioning-state { type identityref { base te-types:lsp-state-type; } - description "ETH service provisioning state."; + description + "ETH service provisioning state."; } leaf creation-time { type yang:date-and-time; @@ -561,7 +568,6 @@ module ietf-eth-tran-service { description "Time of ETH service last update."; } - leaf created-by { type string; description @@ -590,79 +596,47 @@ module ietf-eth-tran-service { uses error-info-grouping; } } + grouping pm-state-grouping { + description + "Performance Monitoring (PM) state attributes"; leaf latency { - description - "latency value of the E2E Ethernet service"; type uint32; units microsecond; + description + "latency value of the E2E Ethernet service"; } } + grouping error-info-grouping { + description + "Error information parameters"; + leaf error-code { - description "error code"; type uint16; + description "error code"; } leaf error-description { - description "detail message of error"; type string; + description "detail message of error"; } leaf error-timestamp { - description "the date and time error is happened"; type yang:date-and-time; + description "the date and time error is happened"; } } - grouping alarm-shreshold-grouping { + + grouping alarm-threshold-grouping { + description + "Alarm threshold parameters."; 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; - } - } + "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 { @@ -680,49 +654,46 @@ module ietf-eth-tran-service { 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. "; + "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."; + "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. "; + "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 "; + "Indicating the underlay topology role, + e.g., hub,spoke, any-to-any "; } - container resilience { description - "Placeholder for resilience configuration, for future study. "; + "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"; -*/ + /* + 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 @@ -730,7 +701,6 @@ module ietf-eth-tran-service { } uses etht-svc-access-parameters; } - leaf service-classification-type { type identityref { base etht-types:service-classification-type; @@ -738,22 +708,18 @@ module ietf-eth-tran-service { 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 { @@ -776,25 +742,22 @@ module ietf-eth-tran-service { "; } presence "The second outermost VLAN tag exists"; - description - "Classifies traffic using the second outermost VLAN tag."; - + "Classifies traffic using the second outermost VLAN + tag."; uses vlan-classification; } } } - -/* - * Open issue: can we constraints it to be used only with mp services? - */ + /* + * 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."; @@ -831,30 +794,27 @@ module ietf-eth-tran-service { 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 @@ -865,30 +825,27 @@ module ietf-eth-tran-service { grouping pw-segment-grouping { description "Grouping used for PW configuration. "; + leaf pw-id { type string; description - "The Identifier information of pseudowire. "; + "The Identifier information of pseudowire. "; } - leaf pw-name { type string; description - "The name information of pseudowire."; + "The name information of pseudowire."; } - leaf transmit-label { type rt-types:mpls-label; description - "Transmit label information in PW. "; + "Transmit label information in PW. "; } - leaf receive-label { type rt-types:mpls-label; description - "Receive label information in PW. "; + "Receive label information in PW. "; } - leaf encapsulation-type { type identityref { base etht-types:encapsulation-type; @@ -896,7 +853,6 @@ module ietf-eth-tran-service { description "The encapsulation type, raw or tag. "; } - leaf oper-status { type identityref { base te-types:tunnel-state-type; @@ -905,25 +861,20 @@ module ietf-eth-tran-service { 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 @@ -932,10 +883,9 @@ module ietf-eth-tran-service { type string; description "Names of TP Tunnel underlay"; - } + } } } - } grouping pw-segment-named-or-value-bandwidth-profile { @@ -943,6 +893,7 @@ module ietf-eth-tran-service { "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"; @@ -951,9 +902,9 @@ module ietf-eth-tran-service { "Named bandwidth profile."; leaf bandwidth-profile-name { type leafref { - path "/ethtsvc:etht-svc/ethtsvc:globals/" - + "ethtsvc:named-bandwidth-profiles/" - + "ethtsvc:bandwidth-profile-name"; + path "/etht-svc:etht-svc/etht-svc:globals/" + + "etht-svc:named-bandwidth-profiles/" + + "etht-svc:bandwidth-profile-name"; } description "Name of the bandwidth profile."; @@ -992,4 +943,44 @@ module ietf-eth-tran-service { 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/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2023-12-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang similarity index 52% rename from experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2023-12-15.yang rename to experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang index 994fe7356..83275a7d7 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2023-12-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-eth-tran-types@2024-01-11.yang @@ -1,47 +1,57 @@ module ietf-eth-tran-types { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-eth-tran-types"; - - prefix "etht-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 (asnizar@cisco.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.com); - Chaode Yu (yuchaode@huawei.com); - "; + "WG Web: + WG List: + + Editor: Haomian Zheng + + + Editor: Aihua Guo + + + Editor: Italo Busi + + + Editor: Anton Snitser + + + Editor: Chaode Yu + "; 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-12-15 { + "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 - "version -05 as a WG draft"; + "Initial Version"; reference - "draft-ietf-ccamp-client-signal-yang"; + "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 @@ -52,138 +62,188 @@ module ietf-eth-tran-types { "ETH VLAN tag type."; } - identity c-vlan-tag-type { - base eth-vlan-tag-type; - description - "802.1Q Customer VLAN"; - } + 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 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 port-classification { + base service-classification-type; + description + "Port classification."; + } - identity vlan-classification { - base service-classification-type; - description - "VLAN classification."; - } + identity vlan-classification { + base service-classification-type; + description + "VLAN classification."; + } - identity eth-vlan-tag-classify { - description - "VLAN tag 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-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-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 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 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-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-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 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 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 rmp-svc { - base service-type; + identity lifecycle-status { description - "Ethernet rooted-multitpoint service (E-TREE, EP-TREE)."; + "Lifecycle Status."; } - identity mp2mp-svc { - base service-type; + 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 - "Ethernet multipoint-to-multitpoint service (E-LAN, EP-LAN)."; + "The role of underlay topology: e.g., hub, spoke, + any-to-any."; } - identity lifecycle-status { + identity resilience { description - "Lifecycle Status."; + "Placeholder for resilience information in data plane, + for future study. "; } - identity installed { - base lifecycle-status; + identity access-role { description - "Installed."; + "Indicating whether the access is a working or protection + access."; } - identity planned { - base lifecycle-status; + 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 - "Planned."; + "Placeholder for performance information, for future study."; } - identity pending-removal { - base lifecycle-status; + identity encapsulation-type { description - "Pending Removal."; + "Indicating how the service is encapsulated (to PW), e.g, raw or + tag. "; } /* - * Type Definitions + * Data Types */ typedef eth-tag-type { @@ -225,7 +285,6 @@ module ietf-eth-tran-types { For example: 1,10-100,50,500-1000"; } - typedef bandwidth-profile-type { type identityref { base bandwidth-profile-type; @@ -251,7 +310,7 @@ module ietf-eth-tran-types { } /* - * Grouping Definitions + * Groupings */ grouping etht-bandwidth-profiles { @@ -314,58 +373,10 @@ module ietf-eth-tran-types { } } - 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. "; - } - grouping pw-segement-bandwidth-profile-grouping { description - "bandwidth profile grouping for PW segment. "; + "bandwidth profile grouping for PW segment."; + leaf bandwidth-profile-type { type etht-types:bandwidth-profile-type; description @@ -404,51 +415,53 @@ module ietf-eth-tran-types { 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-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-restriction { + description + "Label Restriction for ethernet."; + leaf tag-type { + type etht-types:eth-tag-type; + description "VLAN tag type."; } - grouping eth-label { - description - "Label for ethernet."; - leaf vlanid { - type etht-types:vlanid; - description - "VLAN tag id."; - } + 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"; + 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."; + an Ethernet VLAN tag."; reference "IEEE 802.1ad: Provider Bridges."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-evpn-multicast@2023-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-evpn-multicast@2023-10-18.yang deleted file mode 100644 index f31a71328..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-evpn-multicast@2023-10-18.yang +++ /dev/null @@ -1,186 +0,0 @@ -module ietf-evpn-multicast { - namespace "urn:ietf:params:xml:ns:yang:ietf-evpn-multicast"; - prefix "evpn-multicast"; - - import ietf-inet-types { - prefix "inet"; - } - - import ietf-routing-types { - prefix "rt-types"; - } - - import ietf-ethernet-segment { - prefix "es"; - } - - import ietf-evpn { - prefix "evpn"; - } - - organization "ietf"; - contact "ietf"; - - description "evpn multicast"; - - revision "2023-10-18" { - description "Initial draft"; - reference ""; - } - - /* - * Features - */ - - feature evpn-igmp-proxy { - description - "Support IGMP Proxy for EVPN."; - reference - "RFC 9251"; - } - - feature evpn-mld-proxy { - description - "Support MLD Proxy for EVPN."; - reference - "RFC 9251"; - } - - /* Groupings */ - - grouping route-rd-rt-grp { - description "A grouping for a route's route distinguishers " + - "and route targets"; - list rd-rt { - key "route-distinguisher"; - leaf route-distinguisher { - type rt-types:route-distinguisher; - description "Route distinguisher"; - } - list vpn-target { - key "route-target"; - leaf route-target { - type rt-types:route-target; - description "BGP route target"; - } - description "A list of route targets"; - } - description "A list of route distinguishers and " + - "corresponding VPN route targets"; - } - } - - /* augments */ - augment "/evpn:evpn/evpn:evpn-instances/evpn:evpn-instance" { - description ""; - - leaf evpn-igmp-proxy { - if-feature "evpn-igmp-proxy"; - type boolean; - description "Trigger an IMET route update with Multicast - Flags Extended Community and IGMP proxy bit is set."; - } - leaf evpn-mld-proxy { - if-feature "evpn-mld-proxy"; - type boolean; - description "Trigger an IMET route update with Multicast - Flags Extended Community and MLD proxy bit is set."; - } - } - - augment "/evpn:evpn/evpn:evpn-instances/evpn:evpn-instance/evpn:routes" { - when "../evpn-igmp-proxy = 'true' or ../evpn-mld-proxy = 'true'" { - description - "If IGMP or MLD Proxy for EVPN is enabled, - Type6~8 route could be generated."; - } - description "Type6~8 route"; - list selective-multicast-ethernet-tag-route { - uses route-rd-rt-grp; - leaf ethernet-tag { - type uint32; - description "An ethernet tag (etag) indentifying a " + - "broadcast domain"; - } - leaf multicast-source-address { - type inet:ip-address; - description - ""; - } - leaf multicast-group-address { - type rt-types:ip-multicast-group-address; - description - "Multicast group address."; - } - leaf originator-ip-prefix { - type inet:ip-prefix; - description "originator-ip-prefix"; - } - description "SMET route (type6)"; - } - list multicast-membership-report-synch-route { - uses route-rd-rt-grp; - leaf ethernet-segment-identifier { - type es:ethernet-segment-identifier-type; - description "Ethernet segment identifier (esi)"; - } - leaf ethernet-tag { - type uint32; - description "An ethernet tag (etag) indentifying a " + - "broadcast domain"; - } - leaf multicast-source-address { - type inet:ip-address; - description - ""; - } - leaf multicast-group-address { - type rt-types:ip-multicast-group-address; - description - "Multicast group address."; - } - leaf originator-ip-prefix { - type inet:ip-prefix; - description "originator-ip-prefix"; - } - description "type7 route"; - } - list multicast-leave-synch-route { - uses route-rd-rt-grp; - leaf ethernet-segment-identifier { - type es:ethernet-segment-identifier-type; - description "Ethernet segment identifier (esi)"; - } - leaf ethernet-tag { - type uint32; - description "An ethernet tag (etag) indentifying a " + - "broadcast domain"; - } - leaf multicast-source-address { - type inet:ip-address; - description - ""; - } - leaf multicast-group-address { - type rt-types:ip-multicast-group-address; - description - "Multicast group address."; - } - leaf originator-ip-prefix { - type inet:ip-prefix; - description "originator-ip-prefix"; - } - leaf maximum-response-time { - type uint16; - units "seconds"; - description - "Query maximum response time specifies the maximum time - allowed before sending a responding report."; - reference - "Sections 4.1.1, 8.3 of RFC 3376: Internet Group - Management Protocol, Version 3"; - } - description "type8 route"; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-evpn-multicast@2024-03-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-evpn-multicast@2024-03-04.yang new file mode 100644 index 000000000..e61f7bf24 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-evpn-multicast@2024-03-04.yang @@ -0,0 +1,188 @@ +module ietf-evpn-multicast { + namespace "urn:ietf:params:xml:ns:yang:ietf-evpn-multicast"; + + prefix "evpn-multicast"; + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-routing-types { + prefix "rt-types"; + } + + import ietf-yang-types { + prefix yang; + } + + import ietf-evpn { + prefix "evpn"; + } + + organization "ietf"; + + contact "ietf"; + + description "evpn multicast"; + + revision "2024-03-04" { + description "Initial draft"; + reference ""; + } + /* + * Features + */ + + feature evpn-igmp-proxy { + description + "Support IGMP Proxy for EVPN."; + reference + "RFC 9251"; + } + + feature evpn-mld-proxy { + description + "Support MLD Proxy for EVPN."; + reference + "RFC 9251"; + } + + /* Groupings */ + + grouping route-rd-rt-grp { + description "A grouping for a route's route distinguishers " + + "and route targets"; + list rd-rt { + key "route-distinguisher"; + leaf route-distinguisher { + type rt-types:route-distinguisher; + description "Route distinguisher"; + } + list vpn-target { + key "route-target"; + leaf route-target { + type rt-types:route-target; + description "BGP route target"; + } + description "A list of route targets"; + } + description "A list of route distinguishers and " + + "corresponding VPN route targets"; + } + } + + /* augments */ + + augment "/evpn:evpn/evpn:evpn-instances/evpn:evpn-instance" { + description ""; + leaf evpn-igmp-proxy { + if-feature "evpn-igmp-proxy"; + type boolean; + description "Trigger an IMET route update with Multicast + Flags Extended Community and IGMP proxy bit is set."; + } + leaf evpn-mld-proxy { + if-feature "evpn-mld-proxy"; + type boolean; + description "Trigger an IMET route update with Multicast + Flags Extended Community and MLD proxy bit is set."; + } + } + + augment "/evpn:evpn/evpn:evpn-instances/evpn:evpn- +instance/evpn:routes" { + if-feature "evpn-igmp-proxy or evpn-mld-proxy"; + description "Type6~8 route"; + list selective-multicast-ethernet-tag-route { + uses route-rd-rt-grp; + leaf ethernet-tag { + type uint32; + description "An ethernet tag (etag) indentifying a " + + "broadcast domain"; + } + leaf multicast-source-address { + type inet:ip-address; + description + ""; + } + leaf multicast-group-address { + type rt-types:ip-multicast-group-address; + description + "Multicast group address."; + } + leaf originator-ip-prefix { + type inet:ip-prefix; + description "originator-ip-prefix"; + } + description "SMET route (type6)"; + } + list multicast-membership-report-synch-route { + uses route-rd-rt-grp; + leaf ethernet-segment-identifier { + type yang:hex-string { + length "29"; + } + description "Ethernet segment identifier (esi)"; + } + leaf ethernet-tag { + type uint32; + description "An ethernet tag (etag) indentifying a " + + "broadcast domain"; + } + leaf multicast-source-address { + type inet:ip-address; + description + ""; + } + leaf multicast-group-address { + type rt-types:ip-multicast-group-address; + description + "Multicast group address."; + } + leaf originator-ip-prefix { + type inet:ip-prefix; + description "originator-ip-prefix"; + } + description "type7 route"; + } + list multicast-leave-synch-route { + uses route-rd-rt-grp; + leaf ethernet-segment-identifier { + type yang:hex-string { + length "29"; + } + description "Ethernet segment identifier (esi)"; + } + leaf ethernet-tag { + type uint32; + description "An ethernet tag (etag) indentifying a " + + "broadcast domain"; + } + leaf multicast-source-address { + type inet:ip-address; + description + ""; + } + leaf multicast-group-address { + type rt-types:ip-multicast-group-address; + description + "Multicast group address."; + } + leaf originator-ip-prefix { + type inet:ip-prefix; + description "originator-ip-prefix"; + } + leaf maximum-response-time { + type uint16; + units "seconds"; + description + "Query maximum response time specifies the maximum time + allowed before sending a responding report."; + reference + "Sections 4.1.1, 8.3 of RFC 3376: Internet Group + Management Protocol, Version 3"; + } + description "type8 route"; + } + } + } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang index f675d4215..25432c9f4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-external-transaction-id@2022-10-20.yang @@ -3,6 +3,12 @@ module ietf-external-transaction-id { namespace "urn:ietf:params:xml:ns:yang:ietf-external-transaction-id"; prefix ext-txid; + + import ietf-yang-metadata { + prefix md; + reference + "RFC 7952: Defining and Using Metadata with YANG"; + } import ietf-yang-types { prefix yang; reference @@ -10,7 +16,7 @@ module ietf-external-transaction-id { } organization - "IETF OPSAWG Working Group"; + "IETF NETCONF Working Group"; contact "WG Web: WG List: @@ -101,6 +107,15 @@ module ietf-external-transaction-id { } } + md:annotation cilent-id { + type string; + description + "This annotation must be used in the NETCONF RPC nodes. It + contains the client-id identifying the client which is calling + the RPC. This value is used to populate the field client-id in + the configuration-change container"; + } + container external-transactions-id { config false; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang new file mode 100644 index 000000000..343e1359d --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-topology@2024-07-07.yang @@ -0,0 +1,185 @@ +module ietf-fgotn-topology { + /* TODO: FIXME */ + yang-version 1.1; + + namespace "urn:ietf:params:xml:ns:yang:ietf-fgotn-topology"; + prefix "fgotnt"; + + 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-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"; + } + + /* Note: The RFC Editor will replace YYYY with the number assigned + to the RFC once draft-ietf-ccamp-layer1-types becomes an RFC.*/ + + import ietf-otn-topology { + prefix "otnt"; + reference + "RFC ZZZZ: A YANG Data Model for Optical Transport Network + Topology"; + } + + /* Note: The RFC Editor will replace ZZZZ with the number assigned + to the RFC once draft-ietf-ccamp-otn-topo-yang becomes an RFC.*/ + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + " + ID-draft editor: + Yanxia Tan (tanyx11@chinaunicom.cn); + Yanlei Zheng (zhengyanlei@chinaunicom.cn); + Italo Busi (italo.busi@huawei.com); + Chaode Yu (yuchaode@huawei.com); + "; + + description + "This module defines a YANG data model for fgOTN-specific + extension based on existing network topology models. The model + fully conforms to the Network Management Datastore Architecture + (NMDA). + + 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."; + + // RFC Ed.: replace XXXX with actual RFC number and remove this + // note. + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + + revision 2024-07-07 { + description + "initial version"; + reference + "RFC XXXX: YANG Data Models for fine grain Optical Transport + Network"; + } + + augment "/nw:networks/nw:network/nw:node/nt:termination-point" + + "/tet:te" { + description + "specific augmentation of fgOTN termination point"; + leaf supported-fgotn-tp { + type boolean; + description + "It is used to indicate whether the TP can support fgOTN + switching capability."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te" + + "/tet:te-link-attributes/tet:max-link-bandwidth" + + "/tet:te-bandwidth/otnt:otn-bandwidth/otnt:odulist" { + description + "specific augmentation of fgOTN link on maximum link + bandwidth"; + leaf fgotn-bandwidth { + type string; + description + "It is used to indicate how much of the bandwidth has been + allocated for the usage of fgOTN."; + } + } + + augment "/nw:networks/nw:network/nt:link/tet:te" + + "/tet:te-link-attributes/tet:unreserved-bandwidth" + + "/tet:te-bandwidth/otnt:otn-bandwidth" { + description + "specific augmentation of fgOTN link on unreserved link + bandwidth"; + list fgotnlist { + key "odu-type odu-ts-number"; + description + "This structure is used to describe the unsreserved + bandwidth of fgOTN in the server ODUk"; + leaf odu-type { + type identityref { + base l1-types:odu-type; + } + description + "The granularity of server ODUk"; + } + + leaf odu-ts-number { + type uint16; + description + "The index of server ODUk channel"; + } + + leaf fgotn-bandwidth { + type string; + description + "The unsreserved bandwidth of fgOTN in this server ODUk"; + } + } + } + + augment "/nw:networks/tet:te/tet:templates/tet:link-template"+ + "/tet:te-link-attributes/tet:label-restrictions" + + "/tet:label-restriction/otnt:otn-label-range" { + description + "specific augmentation of fgOTN label"; + list fgts-range { + key "odu-type odu-ts-number"; + description + "This structure is used to describe the availability of + fgOTN timeslot in the server ODUk"; + leaf odu-type { + type identityref { + base l1-types:odu-type; + } + description + "The granularity of server ODUk"; + } + + leaf odu-ts-number { + type string; + description + "The index of server ODUk channel"; + } + + leaf fgts-reserved { + type string; + description + "The reserved fgOTN timeslot in this server ODUk"; + } + + leaf fgts-unreserved { + type string; + description + "The unreserved fgOTN timeslot in this server ODUk"; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang new file mode 100644 index 000000000..7bd4e5bec --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-fgotn-tunnel@2024-07-07.yang @@ -0,0 +1,163 @@ +module ietf-fgotn-tunnel { + /* TODO: FIXME */ + yang-version 1.1; + + namespace "urn:ietf:params:xml:ns:yang:ietf-fgotn-tunnel"; + prefix "fgotn-tnl"; + + import ietf-te { + prefix "te"; + reference + "RFC KKKK: A YANG Data Model for Traffic Engineering Tunnels, + Label Switched Paths and Interfaces"; + } + + /* Note: The RFC Editor will replace KKKK with the number assigned + to the RFC once draft-ietf-teas-yang-te becomes an RFC.*/ + + import ietf-otn-tunnel { + prefix "otn-tnl"; + reference "RFC JJJJ: OTN Tunnel YANG Model"; + } + + /* Note: The RFC Editor will replace JJJJ with the number assigned + to the RFC once draft-ietf-ccamp-otn-tunnel-model becomes + an RFC.*/ + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + " + ID-draft editor: + Yanxia Tan (tanyx11@chinaunicom.cn); + Yanlei Zheng (zhengyanlei@chinaunicom.cn); + Italo Busi (italo.busi@huawei.com); + Chaode Yu (yuchaode@huawei.com); + "; + + description + "This module defines a YANG data model for fgOTN-specific + extension based on existing network topology models. The model + fully conforms to the Network Management Datastore Architecture + (NMDA). + + 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."; + + // RFC Ed.: replace XXXX with actual RFC number and remove this + // note. + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + + revision 2024-07-07 { + description + "initial version"; + reference + "RFC XXXX: YANG Data Models for fine grain Optical Transport + Network"; + } + + /** + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + + "/te:primary-path/te:te-bandwidth/te:technology" + + "/otn-tnl:otn/otn-tnl:otn-bandwidth" { + leaf fgoduflex-bandwidth { + type string; + description + "The bandwidth of this fgOTN tunnel"; + } + } +**/ + + augment "/te:te/te:tunnels/te:tunnel/" + + "te:te-bandwidth/te:technology/otn-tnl:otn" { + description + "augmentation of fgOTN tunnel on bandwidth structure"; + leaf fgoduflex-bandwidth { + type string; + description + "Augment TE bandwidth of the fgOTN tunnel"; + } + } + + augment "/te:te/te:tunnels/te:tunnel/" + + "te:primary-paths/te:primary-path/" + + "te:explicit-route-objects/" + + "te:route-object-include-exclude/te:type/te:label/" + + "te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + "/otn-tnl:otn-label" { + description + "augmentation of fgOTN label"; + leaf fgts-numbers { + type uint16; + description + "Augment fgOTN timeslot information of this label hop"; + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + + "/te:primary-path/te:primary-reverse-path" + + "/te:explicit-route-objects" + + "/te:route-object-include-exclude/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + "/otn-tnl:otn-label" { + description + "augmentation of fgOTN label"; + leaf fgts-numbers { + type uint16; + description + "Augment fgOTN timeslot information of this label hop"; + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + + "/te:secondary-path/te:explicit-route-objects" + + "/te:route-object-include-exclude/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + "/otn-tnl:otn-label" { + description + "augmentation of fgOTN label"; + leaf fgts-numbers { + type uint16; + description + "fgOTN timeslot information of this label hop"; + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths" + + "/te:secondary-reverse-path/te:explicit-route-objects" + + "/te:route-object-include-exclude/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + "/otn-tnl:otn-label" { + description + "augmentation of fgOTN label"; + leaf fgts-numbers { + type uint16; + description + "fgOTN timeslot information of this label hop"; + } + } + + augment "/te:te/te:lsps/te:lsp/te:lsp-actual-route-information" + + "/te:lsp-actual-route-information/te:type/te:label" + + "/te:label-hop/te:te-label/te:technology/otn-tnl:otn" + + "/otn-tnl:otn-label" { + description + "augmentation of fgOTN label"; + leaf fgts-numbers { + type uint16; + description + "fgOTN timeslot information of this label hop"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-07-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-07-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang index 3cde2a582..779361438 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-07-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-flexi-grid-topology@2023-12-15.yang @@ -25,8 +25,10 @@ module ietf-flexi-grid-topology { import ietf-layer0-types { prefix "l0-types"; reference - "RFC 9093: A YANG Data Model for Layer 0 Types"; + "RFC YYYY: A YANG Data Model for Layer 0 Types"; } + /* Note: The RFC Editor will replace YYYY with the number assigned + to the RFC once draft-ietf-ccamp-rfc9093-bis becomes an RFC.*/ organization "IETF CCAMP Working Group"; @@ -51,12 +53,13 @@ module ietf-flexi-grid-topology { "; description - "This module provides a YANG data model for the routing and - wavelength assignment (RWA) Traffic Engineering (TE) - topology in flexi-grid optical networks. The YANG model - described in this document is a flexi-grid technology-specific - YANG model augmenting the generic TE topology module - (ietf-te-topology, RFC 9795) based on RFC 7698 and RFC 7699. + "This YANG module defines a topology model for flexi-grid + optical networks. The model augments the technology-agnostic + TE topology model with flexi-grid technology specific + definitions, based on RFC 7698 and RFC 7699. + + The model fully conforms to the Network Management Datastore + Architecture (NMDA). Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -76,8 +79,14 @@ module ietf-flexi-grid-topology { '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."; + reference + "RFC 7698: Framework and Requirements for GMPLS-Based Control + of Flexi-Grid Dense Wavelength Division Multiplexing + (DWDM) Networks; + RFC 7699: Generalized Labels for the Flexi-Grid in Lambda + Switch Capable (LSC) Label Switching Routers."; - revision 2023-07-06 { + revision 2023-12-15 { description "Initial Version"; reference @@ -99,7 +108,7 @@ module ietf-flexi-grid-topology { presence "Indicates the label range is a flexi-grid label range. - This container must not be present if there are other + This container MUST NOT be present if there are other presence containers or attributes indicating another type of label range."; description @@ -237,6 +246,7 @@ module ietf-flexi-grid-topology { 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/" @@ -283,7 +293,6 @@ module ietf-flexi-grid-topology { "Augment TE label range information for the TE link."; uses label-range-info; } - augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:label-restrictions/tet:label-restriction" { @@ -956,7 +965,6 @@ module ietf-flexi-grid-topology { uses l0-types:flexi-grid-label-start-end; } } - augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:connectivity-matrix/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-grp-ntw-elements@2023-10-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-grp-ntw-elements@2023-10-23.yang deleted file mode 100644 index a68d9d628..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-grp-ntw-elements@2023-10-23.yang +++ /dev/null @@ -1,59 +0,0 @@ -module ietf-grp-ntw-elements { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-grp-ntw-elements"; - prefix "grp"; - - organization - "IETF OPSA (Operations and Management Area) Working Group"; - contact - "WG Web: - WG List: - - Editor: Oscar Gonzalez de Dios - - Editor: Victor Lopez - - Editor: Mohamed Boucadair - "; - - description - "YANG model for group of network elements. - - 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 xxx; see the - RFC itself for full legal notices."; - - revision "2023-10-23" { - description "Initial revision."; - reference "RFC XXXX: An Approach to Expose 'Device Models' - -as-'Network Models'"; - } - - list grp-ntw-element { - key "grp-ne-id"; - description "List of groups of network elements."; - leaf grp-ne-id { - type string; - description "Group of network element identifier."; - } - - list ntw-element { - key "ne-id"; - description "List of network elements."; - - leaf ne-id { - type string; - description "Network element identifier."; - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-grp-ntw-elements@2024-07-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-grp-ntw-elements@2024-07-05.yang new file mode 100644 index 000000000..dc8971f5d --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-grp-ntw-elements@2024-07-05.yang @@ -0,0 +1,53 @@ +module ietf-grp-ntw-elements { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-grp-ntw-elements"; + prefix "grp"; + + organization + "IETF NETMOD Working Group"; + contact + "WG Web: + WG List: + + Editor: Oscar Gonzalez de Dios + + Editor: Victor Lopez + + Editor: Mohamed Boucadair + + Editor: Daniele Ceccarelli + "; + + description + "YANG model for group of network elements."; + + revision "2024-07-05" { + description "Initial version."; + reference + "RFC XXXX: An Approach to Expose 'Device Models' + -as-'Network Models'"; + } + list grp-ntw-elements { + key "grp-ne-id"; + description + "List of groups of network elements."; + + leaf grp-ne-id { + type string; + description + "Group of network element identifier."; + } + + list ntw-element { + key "ne-id"; + description + "List of network elements."; + + leaf ne-id { + type string; + description + "Network element identifier."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-http-client@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-http-client@2023-04-17.yang deleted file mode 100644 index 5bf0b1b78..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-http-client@2023-04-17.yang +++ /dev/null @@ -1,288 +0,0 @@ -module ietf-http-client { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-http-client"; - prefix httpc; - - import ietf-netconf-acm { - prefix nacm; - reference - "RFC 8341: Network Configuration Access Control Model"; - } - - import ietf-crypto-types { - prefix ct; - reference - "RFC AAAA: YANG Data Types and Groupings for Cryptography"; - } - - import ietf-tcp-client { - prefix tcpc; - reference - "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; - } - - import ietf-tls-client { - prefix tlsc; - reference - "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; - } - - organization - "IETF NETCONF (Network Configuration) Working Group"; - - contact - "WG Web: https://datatracker.ietf.org/wg/netconf - WG List: NETCONF WG list - Author: Kent Watsen "; - - description - "This module defines reusable groupings for HTTP clients that - can be used as a basis for specific HTTP client instances. - - 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 GGGG - (https://www.rfc-editor.org/info/rfcGGGG); 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-04-17 { - description - "Initial version"; - reference - "RFC GGGG: YANG Groupings for HTTP Clients and HTTP Servers"; - } - - // Features - - feature proxy-connect { - description - "Indicates that the server supports configuring HTTP - clients to connect to a remote HTTP server via an - HTTP proxy."; - } - - feature basic-auth { - description - "Indicates that the server supports configuring HTTP - clients to authenticate themselves to an HTTP server - using the 'basic' HTTP authentication scheme."; - reference - "RFC 7617: The 'Basic' HTTP Authentication Scheme"; - } - - feature tcp-supported { - description - "Indicates that the server supports configuring - HTTP 1.1/2.0 clients to initiate HTTP 1.1/2.0 - connections over TCP."; - reference - "RFC 9110: HTTP Semantics"; - } - - feature tls-supported { - description - "Indicates that the server supports configuring - HTTP 1.1/2.0 clients to initiate HTTP 1.1/2.0 - connections over TLS."; - reference - "RFC 9110: HTTP Semantics"; - } - - // Groupings - - grouping http-client-identity-grouping { - description - "A grouping to provide HTTP credentials used by the - client to authenticate itself to the HTTP server."; - container client-identity { - nacm:default-deny-write; - presence - "Indicates that a client identity has been configured. - This statement is present so the mandatory descendant - nodes do not imply that this node must be configured."; - description - "The identity the HTTP client should use when - authenticating itself to the HTTP server."; - choice auth-type { - mandatory true; - description - "A choice amongst available authentication types."; - case basic { - container basic { - if-feature "basic-auth"; - leaf user-id { - type string; - mandatory true; - description - "The user-id for the authenticating client."; - } - uses ct:password-grouping { - description - "The password for the authenticating client."; - } - description - "The 'basic' HTTP scheme credentials."; - reference - "RFC 7617: The 'Basic' HTTP Authentication Scheme"; - } - } - } - } - } // grouping http-client-identity-grouping - - grouping http-client-grouping { - description - "A reusable grouping for configuring a HTTP client. - - This grouping is expected to be used in conjunction with - other configurations providing, e.g., the hostname or IP - address and port number the client initiates connections - to. - - Note that this grouping uses fairly typical descendant - node names such that a stack of 'uses' statements will - have name conflicts. It is intended that the consuming - data model will resolve the issue (e.g., by wrapping - the 'uses' statement in a container called - 'http-client-parameters'). This model purposely does - not do this itself so as to provide maximum flexibility - to consuming models."; - - uses http-client-identity-grouping; - - container proxy-connect { - nacm:default-deny-write; - if-feature "proxy-connect"; - presence - "Indicates that a proxy server connections have been - configured. This statement is present so the mandatory - descendant nodes do not imply that this node must be - configured."; - description - "Configures the proxy server the HTTP-client is to - connect thru."; - choice proxy-type { - mandatory true; - description - "Choice amongst proxy server types."; - case http { - container http-proxy { - description - "Container for HTTP Proxy (Web Proxy) server - configuration parameters."; - container tcp-client-parameters { - description - "A wrapper around the TCP parameters to avoid - name collisions."; - uses tcpc:tcp-client-grouping; - } - container http-client-parameters { - description - "A wrapper around the HTTP parameters to avoid - name collisions."; - uses http-client-identity-grouping; - } - } - } - case https { - container https-proxy { - description - "Container for HTTPS Proxy (Secure Web Proxy) server - configuration parameters."; - container tcp-client-parameters { - description - "A wrapper around the TCP parameters to avoid - name collisions."; - uses tcpc:tcp-client-grouping; - } - container tls-client-parameters { - description - "A wrapper around the TLS parameters to avoid - name collisions."; - uses tlsc:tls-client-grouping; - } - container http-client-parameters { - description - "A wrapper around the HTTP parameters to avoid - name collisions."; - uses http-client-identity-grouping; - } - } - } - } - } - } // grouping http-client-grouping - - grouping http-client-stack-grouping { - description - "A grouping that defines common HTTP-based protocol stacks."; - choice transport { - mandatory true; - description - "Choice amongst various transports type. TCP, with and - without TLS are defined here, with 'feature' statements - so that they may be disabled. Other transports MAY be - augmented in as 'case' statements by future efforts."; - case tcp { - if-feature "tcp-supported"; - container tcp { - description - "Container for TCP-based HTTP protocols."; - container tcp-client-parameters { - description - "A wrapper around the TCP parameters to avoid - name collisions."; - uses tcpc:tcp-client-grouping; - } - container http-client-parameters { - description - "A wrapper around the HTTP parameters to avoid - name collisions."; - uses http-client-grouping; - } - } - } - case tls { - if-feature "tls-supported"; - container tls { - description - "Container for TLS-based HTTP protocols."; - container tcp-client-parameters { - description - "A wrapper around the TCP parameters to avoid - name collisions."; - uses tcpc:tcp-client-grouping; - } - container tls-client-parameters { - description - "A wrapper around the TLS parameters to avoid - name collisions."; - uses tlsc:tls-client-grouping; - } - container http-client-parameters { - description - "A wrapper around the HTTP parameters to avoid - name collisions."; - uses http-client-grouping; - } - } - } - } - } // http-client-stack-grouping - -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-07-08.yang new file mode 100644 index 000000000..5e7650baa --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-07-08.yang @@ -0,0 +1,136 @@ +module ietf-http-client { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-http-client"; + prefix httpc; + + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + + import ietf-netconf-acm { + prefix nacm; + reference + "RFC 8341: Network Configuration Access Control Model"; + } + + import ietf-tls-client { + prefix tlsc; + reference + "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG Web: https://datatracker.ietf.org/wg/netconf + WG List: NETCONF WG list + Author: Kent Watsen "; + + description + "This module defines reusable groupings for HTTP clients that + can be used as a basis for specific HTTP client instances. + + 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 GGGG + (https://www.rfc-editor.org/info/rfcGGGG); 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-07-08 { + description + "Initial version"; + reference + "RFC GGGG: YANG Groupings for HTTP Clients and HTTP Servers"; + } + + // Features + + feature proxy-connect { + description + "Indicates that the server supports configuring HTTP + clients to connect to a remote HTTP server via a + proxy, per Section 9.3.6 of RFC 9110."; + reference + "RFC 9110: HTTP Semantics"; + } + + feature tls-supported { + description + "Indicates that the server supports configuring + HTTP client certificates."; + reference + "RFC 9110: HTTP Semantics"; + } + + // Groupings + + grouping http-client-grouping { + description + "A reusable grouping for configuring an HTTP client."; + + leaf uri { + nacm:default-deny-all; + type inet:uri; + mandatory true; + description + "The URI the client uses. + + As described by RFC 3986, URIs encode: + - scheme: e.g., https + - userinfo: e.g., user@pass + - host: e.g., example.com + - port: e.g., 443 + - path: e.g., /foo/bar + - query: e.g., ?query + - fragment: e.g., #fragment + "; + reference + "RFC 3986 URI Generic Syntax"; + } + leaf proxy-uri { + if-feature proxy-connect; + type inet:uri; + description + "Configures the proxy server the HTTP-client is to + connect through, per Section 9.3.6 of RFC 9110. + + As described by RFC 3986, URIs encode: + - scheme: e.g., https + - userinfo: e.g., user@pass + - host: e.g., example.com + - port: e.g., 443 + - path: e.g., /foo/bar + - query: e.g., ?query + - fragment: e.g., #fragment + "; + reference + "RFC 3986 URI Generic Syntax + RFC 9110: HTTP Semantics"; + } + container tls-client-parameters { + if-feature "tls-supported"; + description + "TLS client parameters."; + uses tlsc:tls-client-grouping; + } + } // grouping http-client-grouping + +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-http-server@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-07-08.yang similarity index 69% rename from experimental/ietf-extracted-YANG-modules/ietf-http-server@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-07-08.yang index 479b81410..c8fbc3362 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-http-server@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-07-08.yang @@ -3,6 +3,12 @@ module ietf-http-server { namespace "urn:ietf:params:xml:ns:yang:ietf-http-server"; prefix https; + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import iana-crypt-hash { prefix ianach; reference @@ -27,6 +33,12 @@ module ietf-http-server { "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; } + import ietf-udp-server { + prefix udps; + reference + "RFC JJJJ: YANG Groupings for UDP Clients and UDP Servers"; + } + organization "IETF NETCONF (Network Configuration) Working Group"; @@ -34,12 +46,11 @@ module ietf-http-server { "WG Web: https://datatracker.ietf.org/wg/netconf WG List: NETCONF WG list Author: Kent Watsen "; - description "This module defines reusable groupings for HTTP servers that can be used as a basis for specific HTTP server instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -60,7 +71,7 @@ module ietf-http-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-07-08 { description "Initial version"; reference @@ -111,6 +122,14 @@ module ietf-http-server { "RFC 9110: HTTP Semantics"; } + feature quic-supported { + description + "Indicates that the server supports configuring HTTP + servers to listen for HTTP/3 connections over QUIC."; + reference + "RFC 9114: HTTP/3"; + } + // Groupings grouping http-server-grouping { @@ -167,16 +186,29 @@ module ietf-http-server { case basic { container basic { if-feature "basic-auth"; - leaf user-id { + leaf username { type string; description - "The user-id for the authenticating client."; + "The username for the authenticating HTTP + client."; } - leaf password { - nacm:default-deny-write; - type ianach:crypt-hash; + container password { description - "The password for the authenticating client."; + "The hashed password the HTTP server uses to + authenticate this user. A user is authenticated + if the hash of the supplied password matches + this value."; + leaf hashed-password { + type ianach:crypt-hash; + description + "The password for the authenticating client."; + } + leaf last-modified { + type yang:date-and-time; + config false; + description + "Identifies when the password was last set."; + } } description "The 'basic' HTTP scheme credentials."; @@ -208,14 +240,22 @@ module ietf-http-server { "Container for TCP-based HTTP protocols."; container tcp-server-parameters { description - "A wrapper around the TCP parameters to avoid - name collisions."; - uses tcps:tcp-server-grouping; + "TCP-level server parameters to + listen for HTTP connections."; + uses tcps:tcp-server-grouping { + refine "local-bind/local-port" { + default "80"; + description + "The HTTP client will attempt to connect + to the IANA-assigned well-known port for + 'http' (80) if no value is specified."; + } + } } container http-server-parameters { description - "A wrapper around the HTTP parameters to avoid - name collisions."; + "HTTP-level server parameters to + listen for HTTP connections."; uses http-server-grouping; } } @@ -227,20 +267,50 @@ module ietf-http-server { "Container for TLS-based HTTP protocols."; container tcp-server-parameters { description - "A wrapper around the TCP parameters to avoid - name collisions."; - uses tcps:tcp-server-grouping; + "TCP-level server parameters to + listen for HTTPS connections."; + uses tcps:tcp-server-grouping { + refine "local-bind/local-port" { + default "443"; + description + "The HTTP client will attempt to connect + to the IANA-assigned well-known port for + 'https' (443) if no value is specified."; + } + } + } + container tls-server-parameters { + description + "TLS-level server parameters to + listen for HTTPS connections."; + uses tlss:tls-server-grouping; + } + container http-server-parameters { + description + "HTTP-level server parameters to + listen for HTTPS connections."; + uses http-server-grouping; + } + } + } + case quic { + if-feature "quic-supported"; + container quic { + description + "Container for the QUIC-based HTTP/3 protocol."; + container udp-server-parameters { + description + "UDP-level server parameters."; + uses udps:udp-server-grouping; } container tls-server-parameters { description - "A wrapper around the TLS parameters to avoid - name collisions."; + "TLS-level server parameters."; uses tlss:tls-server-grouping; } container http-server-parameters { description - "A wrapper around the HTTP parameters to avoid - name collisions."; + "HTTP-level server parameters."; uses http-server-grouping; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-https-notif-transport@2022-11-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-https-notif-transport@2024-02-01.yang similarity index 88% rename from experimental/ietf-extracted-YANG-modules/ietf-https-notif-transport@2022-11-03.yang rename to experimental/ietf-extracted-YANG-modules/ietf-https-notif-transport@2024-02-01.yang index 83795fdad..b404c5f2b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-https-notif-transport@2022-11-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-https-notif-transport@2024-02-01.yang @@ -18,26 +18,24 @@ module ietf-https-notif-transport { import ietf-subscribed-notif-receivers { prefix snr; reference - "RFC XXXX: An HTTPS-based Transport for - Configured Subscriptions"; + "RFC XXXX: An HTTPS-based Transport for YANG Notifications."; } import ietf-http-client { prefix httpc; reference - "RFC YYYY: YANG Groupings for HTTP Clients and HTTP Servers"; + "RFC YYYY: YANG Groupings for HTTP Clients and HTTP Servers."; } organization "IETF NETCONF Working Group"; contact - "WG Web: + "WG Web: WG List: Authors: Mahesh Jethanandani (mjethanandani at gmail dot com) Kent Watsen (kent plus ietf at watsen dot net)"; - description "This YANG module is implemented by Publishers that implement the 'ietf-subscribed-notifications' module defined in RFC 8639. @@ -46,7 +44,7 @@ module ietf-https-notif-transport { the 'choice' statement called 'transport-type' defined by the 'ietf-https-notif-transport' module defined in RFC XXXX. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject @@ -64,7 +62,7 @@ module ietf-https-notif-transport { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision "2022-11-03" { + revision "2024-02-01" { description "Initial Version."; reference @@ -121,10 +119,12 @@ module ietf-https-notif-transport { description "The cert-maps container is used by a TLS-based HTTP server to map the HTTPS client's presented X.509 - certificate to a 'local' username. If no matching and - valid cert-to-name list entry is found, the publisher - MUST close the connection, and MUST NOT send any - notifications over it."; + certificate to a 'local' username. Specifically, the + 'name' field within the module is used along with + 'specified' identity to perform the match. If no + matching and valid cert-to-name list entry is found, + the publisher MUST close the connection, and MUST + NOT send any notifications over it."; reference "RFC 7407: A YANG Data Model for SNMP Configuration."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-i2nsf-analytics-interface@2023-07-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-i2nsf-analytics-interface@2024-07-26.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-i2nsf-analytics-interface@2023-07-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-i2nsf-analytics-interface@2024-07-26.yang index 8364c6610..769a05c19 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-i2nsf-analytics-interface@2023-07-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-i2nsf-analytics-interface@2024-07-26.yang @@ -51,7 +51,7 @@ description (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. - Copyright (c) 2023 IETF Trust and the persons identified as + 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 @@ -68,7 +68,7 @@ description // RFC Ed.: replace XXXX with an actual RFC number and remove // this note. -revision "2023-07-24" { +revision "2024-07-26" { description "Initial revision."; reference "RFC XXXX: I2NSF Analytics Interface YANG Data Model"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-if-ethernet-like@2023-01-26.yang b/experimental/ietf-extracted-YANG-modules/ietf-if-ethernet-like@2023-01-26.yang index 826f6f9bd..206c56e7f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-if-ethernet-like@2023-01-26.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-if-ethernet-like@2023-01-26.yang @@ -57,6 +57,7 @@ module ietf-if-ethernet-like { This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; + revision 2023-01-26 { description "Initial revision."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-if-extensions@2023-01-26.yang b/experimental/ietf-extracted-YANG-modules/ietf-if-extensions@2023-01-26.yang index fdcb0bcc0..8cb39c284 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-if-extensions@2023-01-26.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-if-extensions@2023-01-26.yang @@ -4,7 +4,6 @@ module ietf-if-extensions { namespace "urn:ietf:params:xml:ns:yang:ietf-if-extensions"; prefix if-ext; - import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types"; @@ -387,7 +386,6 @@ module ietf-if-extensions { "All interface types that can have a configurable L2 encapsulation."; } - description "Holds the OSI layer 2 encapsulation associated with an interface."; @@ -507,6 +505,7 @@ module ietf-if-extensions { description "Augment the interface model statistics with a sub-interface demux discard counter."; + leaf in-discard-unknown-encaps { type yang:counter64; units frames; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-if-flexible-encapsulation@2023-01-26.yang b/experimental/ietf-extracted-YANG-modules/ietf-if-flexible-encapsulation@2023-01-26.yang index 72108a0c6..173c75fc5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-if-flexible-encapsulation@2023-01-26.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-if-flexible-encapsulation@2023-01-26.yang @@ -130,6 +130,7 @@ module ietf-if-flexible-encapsulation { case untagged { description "Match untagged Ethernet frames only"; + leaf untagged { type empty; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-10-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-immutable@2024-06-04.yang similarity index 85% rename from experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-10-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-immutable@2024-06-04.yang index 424f7af02..71080d5a9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-immutable@2023-10-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-immutable@2024-06-04.yang @@ -22,17 +22,13 @@ module ietf-immutable { contact "WG Web: - WG List: - Author: Qiufang Ma - Author: Qin Wu Author: Balazs Lengyel - Author: Hongwei Li "; @@ -44,7 +40,7 @@ module ietf-immutable { beforehand why certain otherwise valid configuration requests will cause the server to return an error. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -65,7 +61,7 @@ module ietf-immutable { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-10-16 { + revision 2024-06-04 { description "Initial revision."; // RFC Ed.: replace XXXX and remove this comment @@ -77,15 +73,20 @@ module ietf-immutable { type boolean; description "The 'immutable' metadata annotation indicates the - immutability of an instantiated data node. - The 'immutable' metadata annotation takes as a value 'true' - or 'false'. If the 'immutable' metadata annotation for data - node instances is not specified, the default value is the + immutability of an instantiated data node. It takes as a + value 'true' or 'false'. If the 'immutable' metadata + annotation is not specified, the default value is the same as the value of its parent node in the data tree. The default value for a top-level instance node is false if not specified."; } + feature immutable { + description + "Indicates that the server supports the 'immutable' metadata + annotation."; + } + grouping with-immutable-grouping { description "Grouping for the with-immutable parameter that augments the @@ -93,26 +94,27 @@ module ietf-immutable { leaf with-immutable { type empty; description - "If this parameter is present, the server will return the + "If this parameter is present, the server returns the 'immutable' annotation for configuration that it - internally thinks it immutable. When present, this - parameter allows the server to formally document existing - behavior on the mutability of some configuration nodes."; + internally thinks immutable."; } } augment "/ncds:get-data/ncds:input" { + if-feature "immutable"; description "Allows the server to include 'immutable' metadata annotations in its response to get-data operation."; uses with-immutable-grouping; } augment "/nc:get-config/nc:input" { + if-feature "immutable"; description "Allows the server to include 'immutable' metadata annotations in its response to get-config operation."; uses with-immutable-grouping; } augment "/nc:get/nc:input" { + if-feature "immutable"; description "Allows the server to include 'immutable' metadata annotations in its response to get operation."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang deleted file mode 100644 index 6a7d04494..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-incident@2023-05-16.yang +++ /dev/null @@ -1,423 +0,0 @@ -module ietf-incident { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-incident"; - prefix inc; - import ietf-yang-types { - prefix yang; - reference - "RFC 6991: Common YANG Data Types"; - } - - import ietf-alarms { - prefix al; - reference - "RFC 8632: A YANG Data Model for Alarm Management"; - } - - import ietf-incident-types { - prefix int; - reference - "draft-feng-opsawg-incident-management: Incident - Management for Network Services"; - } - organization - "IETF OPSAWG Working Group"; - contact - "WG Web: ; - WG List: - Author: Chong Feng - Author: Tong Hu - Author: Luis Miguel Contreras Murillo - Author : Qin Wu - Author: Chaode Yu - Author: Nigel Davis "; - - description - "This module defines the interfaces for incident management - lifecycle. - - This module is intended for the following use cases: - * incident lifecycle management: - - incident report: report incident instance to client - when an incident instance is detected. - - incident acknowledge: acknowledge an incident instance. - - incident diagnose: diagnose an incident instance. - - incident resolve: resolve an incident instance. - - 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. "; - revision 2023-05-16 { - description "remove identies and typedefs to independent yang - module. update some definitions of data model."; - reference "RFC XXX: Yang module for incident management."; - } - revision 2023-03-13 { - description "initial version"; - reference "RFC XXX: Yang module for incident management."; - } - - //groupings - grouping resources-info { - description "the grouping which defines the network - resources of a node."; - leaf node { - type int:node-ref; - description "reference to a network node."; - } - list resource { - key name; - description "the resources of a network node."; - leaf name { - type al:resource; - description "network resource name."; - } - } - } - - grouping incident-time-info { - description "the grouping defines incident time information."; - leaf raise-time { - type yang:date-and-time; - description "the time when an incident instance is raised."; - } - leaf occur-time { - type yang:date-and-time; - description "the time when an incident instance occurs. - It's the occurrence time of the first event during - incident detection."; - } - leaf clear-time { - type yang:date-and-time; - description "the time when an incident instance is - resolved."; - } - leaf ack-time { - type yang:date-and-time; - description "the time when an incident instance is - acknowledged."; - } - leaf last-updated { - type yang:date-and-time; - description "the latest time when an incident instance is - updated"; - } - } - - grouping incident-info { - description "the grouping defines the information of an - incident."; - leaf csn { - type uint64; - mandatory true; - description "The sequence number of the incident instance."; - } - leaf-list service-instance { - type string; - description "the related network service instances of - the incident instance."; - } - leaf name { - type string; - mandatory true; - description "the name of an incident."; - } - leaf type { - type enumeration { - enum fault { - description "It indicates the type of the incident - is a fault, for example an interface - fails to work."; - } - enum potential-risk { - description "It indicates the type of the incident - is a potential risk, for example high - CPU rate may cause a fault in the - future."; - } - } - mandatory true; - description "The type of an incident."; - } - leaf domain { - type identityref { - base int:incident-domain; - } - mandatory true; - description "the domain of an incident."; - } - leaf priority { - type int:incident-priority; - mandatory true; - description "the priority of an incident instance."; - } - - leaf status { - type enumeration { - enum raised { - description "an incident instance is raised."; - } - enum updated { - description "the information of an incident instance - is updated."; - } - enum cleared { - description "an incident is cleared."; - } - } - default raised; - description "The status of an incident instance."; - } - leaf ack-status { - type enumeration { - enum acknowledged { - description "The incident has been acknowledged by user."; - } - enum unacknowledged { - description "The incident hasn't been acknowledged."; - } - } - default unacknowledged; - description "the acknowledge status of an incident."; - } - leaf category { - type identityref { - base int:incident-category; - } - mandatory true; - description "The category of an incident."; - } - leaf detail { - type string; - description "detail information of this incident."; - } - leaf resolve-advice { - type string; - description "The advice to resolve this incident."; - } - container sources { - description "The source components."; - list source { - key node; - uses resources-info; - min-elements 1; - description "The source components of incident."; - } - } - - container root-causes{ - description "The root cause objects."; - list root-cause { - key node; - description "the root causes of incident."; - grouping root-cause-info { - description "The information of root cause."; - leaf cause-name { - type string; - description "the name of cause"; - } - leaf detail { - type string; - description "the detail information of the cause."; - } - } - uses resources-info { - augment resource { - description "augment root cause information."; - //if root cause object is a resource of a node - uses root-cause-info; - } - } - //if root cause object is a node - uses root-cause-info; - } - } - container root-events { - description "the root events of the incident."; - list root-event { - key "type event-id"; - description "the root event of the incident."; - leaf type { - type leafref { - path "../../../events/event/type"; - } - description "the event type."; - } - leaf event-id { - type leafref { - path "../../../events/event[type = current()/../type]" - +"/event-id"; - } - description "the event identifier, such as uuid, - sequence number, etc."; - } - } - } - container events { - description "related events."; - list event { - key "type event-id"; - description "related events."; - leaf type { - type enumeration { - enum alarm { - description "alarm type"; - } - enum inform { - description "inform type"; - } - enum KPI { - description "KPI type"; - } - enum unknown { - description "unknown type"; - } - } - description "event type."; - } - leaf event-id { - type string; - description "the event identifier, such as uuid, - sequence number, etc."; - } - choice event-type-info { - description "event type information."; - case alarm { - when "type = 'alarm'"; - container alarm { - description "alarm type event."; - leaf resource { - type leafref { - path "/al:alarms/al:alarm-list/al:alarm" - +"/al:resource"; - } - description "network resource."; - reference "RFC 8632: A YANG Data Model for Alarm - Management"; - } - leaf alarm-type-id { - type leafref { - path "/al:alarms/al:alarm-list/al:alarm" - +"[al:resource = current()/../resource]" - +"/al:alarm-type-id"; - } - description "alarm type id"; - reference "RFC 8632: A YANG Data Model for Alarm - Management"; - } - leaf alarm-type-qualifier { - type leafref { - path "/al:alarms/al:alarm-list/al:alarm" - +"[al:resource = current()/../resource]" - +"[al:alarm-type-id = current()/.." - +"/alarm-type-id]/al:alarm-type-qualifier"; - } - description "alarm type qualitifier"; - reference "RFC 8632: A YANG Data Model for Alarm - Management"; - } - } - } - case notification { - //TODO - } - case log { - //TODO - } - case KPI { - //TODO - } - case unknown { - //TODO - } - } - } - - } - - } - - //data definitions - container incidents { - config false; - description "the information of incidents."; - list incident { - key incident-id; - description "the information of incident."; - leaf incident-id { - type string; - description "the identifier of an incident instance."; - } - uses incident-info; - uses incident-time-info; - } - } - - // notifications - notification incident-notification { - description "incident notification. It will be triggered when - the incident is raised, updated or cleared."; - leaf incident-id { - type leafref { - path "/inc:incidents/inc:incident/inc:incident-id"; - } - description "the identifier of an incident instance."; - } - uses incident-info; - leaf time { - type yang:date-and-time; - description "occur time of an incident instance."; - } - } - // rpcs - rpc incident-acknowledge { - description "This rpc can be used to acknowledge the specified - incidents."; - input { - leaf-list incident-id { - type leafref { - path "/inc:incidents/inc:incident/inc:incident-id"; - } - description "the identifier of an incident instance."; - } - } - } - rpc incident-diagnose { - description "This rpc can be used to diagnose the specified - incidents. The result of diagnosis will be reported - by incident notification."; - input { - leaf-list incident-id { - type leafref { - path "/inc:incidents/inc:incident/inc:incident-id"; - } - description - "the identifier of an incident instance."; - } - } - } - - rpc incident-resolve { - description "This rpc can be used to resolve the specified - incidents. The result of resolution will be reported - by incident notification."; - input { - leaf-list incident-id { - type leafref { - path "/inc:incidents/inc:incident/inc:incident-id"; - } - description - "the identifier of an incident instance."; - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-incident@2024-06-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-incident@2024-06-06.yang new file mode 100644 index 000000000..be7288c2a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-incident@2024-06-06.yang @@ -0,0 +1,837 @@ +module ietf-incident { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-incident"; + prefix inc; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-alarms { + prefix al; + reference + "RFC 8632: A YANG Data Model for Alarm Management"; + } + import ietf-network { + prefix nw; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + import ietf-yang-structure-ext { + prefix sx; + } + organization + "IETF NMOP Working Group"; + contact + "WG Web: ; + WG List: + + Author: Chong Feng + + Author: Tong Hu + + Author: Luis Miguel Contreras Murillo + + Author : Qin Wu + + Author: Chaode Yu + + Author: Nigel Davis + "; + description + "This module defines the interfaces for incident management + lifecycle. + + This module is intended for the following use cases: + * incident lifecycle management: + - incident report: report incident instance to client + when an incident instance is detected. + - incident acknowledge: acknowledge an incident instance. + - incident diagnose: diagnose an incident instance. + - incident resolve: resolve an incident instance. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); ; see the RFC + itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. "; + + revision 2024-06-06 { + description + "Merge incident yang with incident type yang + and fix broken ref."; + reference + "RFC XXX: YANG module for network incident management."; + } + + //identities + + identity incident-domain { + description + "The abstract identity to indicate the domain of + an incident."; + } + + identity single-domain { + base incident-domain; + description + "single domain."; + } + + identity access { + base single-domain; + description + "access domain."; + } + + identity ran { + base access; + description + "radio access network domain."; + } + + identity transport { + base single-domain; + description + "transport domain."; + } + + identity otn { + base transport; + description + "optical transport network domain."; + } + + identity ip { + base single-domain; + description + "ip domain."; + } + + identity ptn { + base ip; + description + "packet transport network domain."; + } + + identity cross-domain { + base incident-domain; + description + "cross domain."; + } + + identity incident-category { + description + "The abstract identity for incident category."; + } + + identity device { + base incident-category; + description + "device category."; + } + + identity power-environment { + base device; + description + "power environment category."; + } + + identity device-hardware { + base device; + description + "hardware of device category."; + } + + identity device-software { + base device; + description + "software of device category"; + } + + identity line { + base device-hardware; + description + "line card category."; + } + + identity maintenance { + base incident-category; + description + "maintenance category."; + } + + identity network { + base incident-category; + description + "network category."; + } + + identity protocol { + base incident-category; + description + "protocol category."; + } + + identity overlay { + base incident-category; + description + "overlay category"; + } + + identity vm { + base incident-category; + description + "vm category."; + } + + identity event-type { + description + "The abstract identity for Event type"; + } + + identity alarm { + base event-type; + description + "alarm event type."; + } + + identity notif { + base event-type; + description + "Notification event type."; + } + + identity log { + base event-type; + description + "Log event type."; + } + + identity KPI { + base event-type; + description + "KPI event type."; + } + + identity unknown { + base event-type; + description + "Unknown event type."; + } + + identity incident-class { + description + "The abstract identity for Incident category."; + } + + identity problem { + base incident-class; + description + "It indicates the class of the incident is a problem + (i.e.,cause of the incident) for example an interface + fails to work."; + } + + identity sla-violation { + base incident-class; + description + "It indicates the class of the incident is a sla + violation, for example high CPU rate may cause + a fault in the future."; + } + + identity acknowledge-error { + description + "Base identity for the problem found while attempting + to fulfill an 'incident-acknowledge' RPC request."; + } + + identity diagnose-error { + description + "Base identity for the problem found while attempting + to fulfill an 'incident-diagnose' RPC request."; + } + + identity resolve-error { + description + "Base identity for the problem found while attempting + to fulfill an 'incident-resolve' RPC request."; + } + + identity repeated-acknowledge { + base acknowledge-error; + description + "The incident referred to has already been acknowledged."; + } + + identity root-cause-unlocated { + base diagnose-error; + description + "Fails to locate the root causes when performing the + diagnosis operation. The detailed reason MUST be included + in the 'description'."; + } + + identity root-cause-unresolved { + base resolve-error; + description + "Fails to resolve the root causes when performing the + resolution operation. The detailed reason MUST be included + in the 'description'"; + } + + identity permission-denied { + base diagnose-error; + base resolve-error; + description + " The permission required for performing specific + detection/resolution task is not granted."; + } + + identity operation-timeout { + base diagnose-error; + base resolve-error; + description + " The diagnosis/resolution time exceeds the preset time."; + } + + identity resource-unavailable { + base diagnose-error; + base resolve-error; + description + " The resource is unavailable to perform + the diagnosis/resolution operation."; + } + + identity cause-name { + description + "Base identity for the cause name."; + } + + //typedefs + + typedef incident-priority { + type enumeration { + enum critical { + description + "the incident MUST be handled immediately."; + } + enum high { + description + "the incident should be handled as soon as + possible."; + } + enum medium { + description + "network services are not affected, or the + services are slightly affected,but corrective + measures need to be taken."; + } + enum low { + description + "potential or imminent service-affecting + incidents are detected,but services are + not affected currently."; + } + } + description + "define the priority of incident."; + } + + typedef incident-ref { + type leafref { + path "/inc:incidents/inc:incident/inc:incident-no"; + } + description + "reference a network incident."; + } + + //groupings + + grouping root-cause-info { + description + "The information of root cause."; + leaf cause-name { + type identityref{ + base cause-name; + } + description + "the name of cause."; + } + leaf detail { + type string; + description + "the detail information of the cause."; + } + } + + grouping resources-info { + description + "the grouping which defines the network + resources of a node."; + uses nw:node-ref; + list resource { + key "name"; + description + "the resources of a network node."; + leaf name { + type al:resource; + description + "network resource name."; + } + } + } + + grouping incident-time-info { + description + "the grouping defines incident time information."; + leaf raise-time { + type yang:date-and-time; + description + "the time when an incident instance is raised."; + } + leaf occur-time { + type yang:date-and-time; + description + "the time when an incident instance occurs. + It's the occur time of the first event during + incident detection."; + } + leaf clear-time { + type yang:date-and-time; + description + "the time when an incident instance is + resolved."; + } + leaf ack-time { + type yang:date-and-time; + description + "the time when an incident instance is + acknowledged."; + } + leaf last-updated { + type yang:date-and-time; + description + "the latest time when an incident instance is + updated"; + } + } + + grouping incident-info { + description + "the grouping defines the information of an + incident."; + leaf name { + type string; + mandatory true; + description + "the name of an incident."; + } + leaf type { + type identityref { + base incident-class; + } + mandatory true; + description + "The type of an incident."; + } + leaf incident-id { + type string; + description + "The unique qualifier of an incident instance type. + This leaf is used when the 'type' leaf cannot + uniquely identify the incident instance type. Normally, + this is not the case, and this leaf is the empty string."; + } + leaf-list service-instance { + type string; + description + "the related network service instances of + the incident instance."; + } + leaf domain { + type identityref { + base incident-domain; + } + mandatory true; + description + "the domain of an incident."; + } + leaf priority { + type incident-priority; + mandatory true; + description + "the priority of an incident instance."; + } + leaf status { + type enumeration { + enum raised { + description + "an incident instance is raised."; + } + enum updated { + description + "the information of an incident instance + is updated."; + } + enum cleared { + description + "an incident is cleared."; + } + } + default "raised"; + description + "The status of an incident instance."; + } + leaf ack-status { + type enumeration { + enum acknowledged { + description + "The incident has been acknowledged by user."; + } + enum unacknowledged { + description + "The incident hasn't been acknowledged."; + } + } + default "unacknowledged"; + description + "the acknowledge status of an incident."; + } + leaf category { + type identityref { + base incident-category; + } + mandatory true; + description + "The category of an incident."; + } + leaf detail { + type string; + description + "detail information of this incident."; + } + leaf resolve-advice { + type string; + description + "The advice to resolve this incident."; + } + container sources { + description + "The source components."; + list source { + key "node-ref"; + min-elements 1; + description + "The source components of incident."; + uses resources-info; + } + } + container root-causes { + description + "The root cause objects."; + list root-cause { + key "node-ref"; + description + "the root causes of incident."; + uses resources-info { + augment "resource" { + description + "augment root cause information."; + //if root cause object is a resource of a node + uses root-cause-info; + } + } + //if root cause object is a node + uses root-cause-info; + } + } + container root-events { + description + "the root cause related events of the incident."; + list root-event { + key "type event-id"; + description + "the root cause related event of the incident."; + leaf type { + type leafref { + path "../../../events/event/type"; + } + description + "the event type."; + } + leaf event-id { + type leafref { + path "../../../events/event[type = current()/../type]" + + "/event-id"; + } + description + "the event identifier, such as uuid, + sequence number, etc."; + } + } + } + container events { + description + "related events."; + list event { + key "type event-id"; + description + "related events."; + leaf type { + type identityref { + base event-type; + } + description + "event type."; + } + leaf event-id { + type string; + description + "the event identifier, such as uuid, + sequence number, etc."; + } + choice event-type-info { + description + "event type information."; + case alarm { + when "derived-from-or-self(type, 'alarm')" { + description + "Only applies when type is alarm."; + } + container alarm { + description + "alarm type event."; + leaf resource { + type leafref { + path "/al:alarms/al:alarm-list/al:alarm" + + "/al:resource"; + } + description + "network resource."; + reference + "RFC 8632: A YANG Data Model for Alarm + Management"; + } + leaf alarm-type-id { + type leafref { + path "/al:alarms/al:alarm-list/al:alarm" + + "[al:resource = current()/../resource]" + + "/al:alarm-type-id"; + } + description + "alarm type id"; + reference + "RFC 8632: A YANG Data Model for Alarm + Management"; + } + leaf alarm-type-qualifier { + type leafref { + path "/al:alarms/al:alarm-list/al:alarm" + + "[al:resource = current()/../resource]" + + "[al:alarm-type-id = current()/.." + + "/alarm-type-id]/al:alarm-type-qualifier"; + } + description + "alarm type qualitifier"; + reference + "RFC 8632: A YANG Data Model for Alarm + Management"; + } + } + } + case notification { + //TODO + } + case log { + //TODO + } + case KPI { + //TODO + } + case unknown { + //TODO + } + } + } + } + } + + // rpcs + + rpc incident-acknowledge { + description + "This rpc can be used to acknowledge the specified + incidents."; + input { + leaf-list incident-no { + type incident-ref; + description + "the identifier of an incident instance."; + } + } + } + + rpc incident-diagnose { + description + "This rpc can be used to diagnose the specified + incidents. The result of diagnosis will be reported + by incident notification."; + input { + leaf-list incident-no { + type incident-ref; + description + "the identifier of an incident instance."; + } + } + } + + rpc incident-resolve { + description + "This rpc can be used to resolve the specified + incidents. The result of resolution will be reported + by incident notification."; + input { + leaf-list incident-no { + type incident-ref; + description + "the identifier of an incident instance."; + } + } + } + + sx:structure incident-acknowledge-error-info { + container incident-acknowledge-error-info { + description + "This structure data MAY be inserted in the RPC error + response to indicate the reason for the + incident acknowledge failure."; + leaf incident-no { + type incident-ref; + description + "Indicates the incident identifier that + fails the operation."; + } + leaf reason { + type identityref { + base acknowledge-error; + } + description + "Indicates the reason why the operation is failed."; + } + leaf description { + type string; + description + "Indicates the detailed description about the failure."; + } + } + } + sx:structure incident-diagnose-error-info { + container incident-diagnose-error-info { + description + "This structure data MAY be inserted in the RPC error + response to indicate the reason for the + incident diagnose failure."; + leaf incident-no { + type incident-ref; + description + "Indicates the incident identifier that + fails the operation."; + } + leaf reason { + type identityref { + base diagnose-error; + } + description + "Indicates the reason why the operation is failed."; + } + leaf description { + type string; + description + "Indicates the detailed description about the failure."; + } + } + } + sx:structure incident-resolve-error-info { + container incident-resolve-error-info { + description + "This structure data MAY be inserted in the RPC error + response to indicate the reason for the + incident resolution failure."; + leaf incident-no { + type incident-ref; + description + "Indicates the incident identifier that + fails the operation."; + } + leaf reason { + type identityref { + base resolve-error; + } + description + "Indicates the reason why the operation is failed."; + } + leaf description { + type string; + description + "Indicates the detailed description about the failure."; + } + } + } + + // notifications + + notification incident-notification { + description + "incident notification. It will be triggered when + the incident is raised, updated or cleared."; + leaf incident-no { + type incident-ref; + description + "the identifier of an incident instance."; + } + uses incident-info; + leaf time { + type yang:date-and-time; + description + "occur time of an incident instance."; + } + } + + //data definitions + + container incidents { + config false; + description + "the information of incidents."; + list incident { + key "name type incident-id"; + description + "the information of incident."; + leaf incident-no { + type uint64; + mandatory true; + description + "The unique sequence number of the incident instance."; + } + uses incident-info; + uses incident-time-info; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-interface-protection@2020-10-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-interface-protection@2024-03-03.yang similarity index 94% rename from experimental/ietf-extracted-YANG-modules/ietf-interface-protection@2020-10-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-interface-protection@2024-03-03.yang index b6ccdabb8..398f19546 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-interface-protection@2020-10-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-interface-protection@2024-03-03.yang @@ -24,7 +24,7 @@ module ietf-interface-protection { "This is a module for the entities in a generic interface protection mechanism. - Copyright (c) 2019 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -37,19 +37,23 @@ module ietf-interface-protection { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; -// RFC Ed.: replace XXXX with actual RFC number and remove -// this note - -// replace the revision date with the module publication date -// the format is (year-month-day) + // RFC Ed.: replace XXXX with actual RFC number and remove + // this note + // replace the revision date with the module publication date + // the format is (year-month-day) + revision 2024-03-03 { + description + "Updating reference to RFC XXXX. - pretty printing"; + reference + "RFC XXX: A YANG Data Model for Microwave Radio Link"; + } revision 2020-10-06 { description "Updating reference to RFC XXXX."; reference "RFC XXX: A YANG Data Model for Microwave Radio Link"; } - revision 2019-06-19 { description "Initial revision."; @@ -129,6 +133,64 @@ module ietf-interface-protection { description "List of protected groups of interfaces in a higher-layer interface."; + action manual-switch-working { + description + "A switch action initiated by an operator command. + It switches a normal traffic signal to the working + transport entity."; + reference + "ITU-T G.808.1"; + } + action manual-switch-protection { + description + "A switch action initiated by an operator command. + It switches a normal traffic signal to the protection + transport entity."; + reference + "ITU-T G.808.1"; + } + action forced-switch { + description + "A switch action initiated by an operator command. + It switches a normal traffic signal to the protection + transport entity and forces it to remain on that + entity even when criteria for switching back to + the original entity are fulfilled."; + reference + "ITU-T G.808.1"; + } + action lockout-of-protection { + description + "A switch action temporarily disables access to the + protection transport entity for all signals."; + reference + "ITU-T G.808.1"; + } + action freeze { + description + "A switch action temporarily prevents any switch action + to be taken and, as such, freezes the current state. + Until the freeze is cleared, additional near-end external + commands are rejected, and fault condition changes and + received Automatic Protection-Switching (APS) messages + are ignored."; + reference + "ITU-T G.808.1"; + } + action exercise { + description + "A switch action to test if the APS communication is + operating correctly. It is lower priority than any 'real' + switch request."; + reference + "ITU-T G.808.1"; + } + action clear { + description + "An action clears all switch commands."; + reference + "ITU-T G.808.1"; + } leaf name { type string; description @@ -142,7 +204,6 @@ module ietf-interface-protection { description "The type of protection architecture used, e.g., one interface protecting one or several other interfaces."; - reference "ITU-T G.808.1"; } @@ -219,64 +280,6 @@ module ietf-interface-protection { reference "ITU-T G.808.1"; } - action manual-switch-working { - description - "A switch action initiated by an operator command. - It switches a normal traffic signal to the working - transport entity."; - reference - "ITU-T G.808.1"; - } - action manual-switch-protection { - description - "A switch action initiated by an operator command. - It switches a normal traffic signal to the protection - transport entity."; - reference - "ITU-T G.808.1"; - } - action forced-switch { - description - "A switch action initiated by an operator command. - It switches a normal traffic signal to the protection - transport entity and forces it to remain on that - entity even when criteria for switching back to - the original entity are fulfilled."; - reference - "ITU-T G.808.1"; - } - action lockout-of-protection { - description - "A switch action temporarily disables access to the - protection transport entity for all signals."; - reference - "ITU-T G.808.1"; - } - action freeze { - description - "A switch action temporarily prevents any switch action - to be taken and, as such, freezes the current state. - Until the freeze is cleared, additional near-end external - commands are rejected, and fault condition changes and - received Automatic Protection-Switching (APS) messages - are ignored."; - reference - "ITU-T G.808.1"; - } - action exercise { - description - "A switch action to test if the APS communication is - operating correctly. It is lower priority than any 'real' - switch request."; - reference - "ITU-T G.808.1"; - } - action clear { - description - "An action clears all switch commands."; - reference - "ITU-T G.808.1"; - } } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-interfaces-with-symptoms@2024-06-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-interfaces-with-symptoms@2024-06-29.yang new file mode 100644 index 000000000..a1591a846 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-interfaces-with-symptoms@2024-06-29.yang @@ -0,0 +1,30 @@ +module ietf-interfaces-with-symptoms { + yang-version 1.1; + namespace "http://example.org/example-ietf-interfaces-with-symptoms"; + prefix "ifws"; + + import ietf-symptom-semantic-metadata { + prefix "sm"; + } + import ietf-interfaces { + prefix "if"; + } + + revision 2024-06-29 { + description + "Initial version"; + reference + "Example: Symptoms Annotated IETF Interface"; + } + + augment "/if:interfaces/if:interface" { + description + "Augment interfaces with symptoms"; + uses sm:symptom-group; + } + augment "/if:interfaces-state/if:interface" { + description + "Augment interfaces with symptoms"; + uses sm:symptom-group; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ioam@2023-08-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-ioam@2024-03-01.yang similarity index 89% rename from experimental/ietf-extracted-YANG-modules/ietf-ioam@2023-08-05.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ioam@2024-03-01.yang index 3ff5cd420..a69eab0b3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ioam@2023-08-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ioam@2024-03-01.yang @@ -45,7 +45,7 @@ module ietf-ioam { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. - Copyright (c) 2023 IETF Trust and the persons identified as + 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 @@ -59,8 +59,8 @@ module ietf-ioam { (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - revision 2023-08-05 { - description "First revision."; + revision 2024-03-01 { + description "Initial revision."; reference "RFC XXXX: A YANG Data Model for In-Situ OAM"; } @@ -91,6 +91,7 @@ module ietf-ioam { supported."; reference "RFC 9326: In-situ OAM Direct Exporting"; } + feature proof-of-transit { description @@ -162,6 +163,7 @@ module ietf-ioam { description "It indicates the node is to decapsulate the IOAM packet"; } + identity action-transit { base node-action; description @@ -258,6 +260,7 @@ module ietf-ioam { "It indicates presence of variable length Opaque State Snapshot field."; } + identity pot-type { description "Base identity to represent Proof of Transit (PoT) types."; @@ -395,7 +398,6 @@ module ietf-ioam { refer to an ACL specification."; } } - grouping encap-tracing { description "A grouping for the generic configuration for @@ -407,6 +409,7 @@ module ietf-ioam { leaf use-namespace { type ioam-namespace; + default default-namespace; description "It indicates the name space used for encapsulation."; } @@ -456,8 +459,9 @@ module ietf-ioam { leaf node-action { type ioam-node-action; default action-transit; - description "This indicates what action the node will take, - e.g. encapsulation."; + description + "This object indicates the action the node need to + take, e.g. encapsulation."; } uses encap-tracing { @@ -473,8 +477,9 @@ module ietf-ioam { leaf node-action { type ioam-node-action; default action-transit; - description "This indicates what action the node will take, - e.g. encapsulation."; + description + "This object indicates the action the node need to + take, e.g. encapsulation."; } uses encap-tracing { @@ -492,7 +497,7 @@ module ietf-ioam { by a central controller or algorithmically generated by the encapsulating node. The latter approach cannot guarantee the uniqueness of Flow ID, yet the conflict probability is - small due to the large Flow ID space.flow-id is used to + small due to the large Flow ID space. flow-id is used to correlate the exported data of the same flow from multiple nodes and from multiple packets."; } @@ -518,7 +523,8 @@ module ietf-ioam { type ioam-node-action; default action-transit; description - "It indicates how the node acts for this profile."; + "This object indicates the action the node need to + take, e.g. encapsulation."; } container e2e-types { @@ -531,6 +537,7 @@ module ietf-ioam { leaf use-namespace { type ioam-namespace; + default default-namespace; description "It indicates the name space used for encapsulation."; } @@ -554,7 +561,7 @@ module ietf-ioam { description "This object is to control the availability of configuration. It MUST be true before anything in the - /ioam/ioam-profiles/ioam-profile subtree can be edited. + /ioam/profiles/profile subtree can be edited. If false, any configuration in place is not used."; } } @@ -566,7 +573,7 @@ module ietf-ioam { container ioam { description "IOAM top level container"; - container ioam-info { + container info { config false; description "Describes information such as units or timestamp format that @@ -592,19 +599,19 @@ module ietf-ioam { } } - container ioam-profiles { + container admin-config { description - "Contains a list of IOAM profiles."; + "Contains all the administrative configurations related to + the IOAM functionalities and all the IOAM profiles."; - container admin-config { - description - "Contains all the administrative configurations related to - the IOAM functionalities and all the IOAM profiles."; + uses ioam-admin-config; + } - uses ioam-admin-config; - } + container profiles { + description + "Contains a list of IOAM profiles."; - list ioam-profile { + list profile { key "profile-name"; description "A list of IOAM profiles that configured on the node. @@ -636,65 +643,44 @@ module ietf-ioam { container incremental-tracing-profile { if-feature incremental-trace; + presence "Enables incremental tracing option."; description "It describes the profile for incremental tracing option."; - leaf enabled { - type boolean; - default false; - description - "When true, apply incremental tracing option to the - specified flow identified by the filter."; - } - uses ioam-incremental-tracing-profile; } container preallocated-tracing-profile { if-feature preallocated-trace; + presence "Enables preallocated tracing option."; description "It describes the profile for preallocated tracing option."; - leaf enabled { - type boolean; - default false; - description - "When true, apply preallocated tracing option to the - specified flow identified by the following filter."; - } - uses ioam-preallocated-tracing-profile; } container direct-export-profile { if-feature direct-export; + presence "Enables direct-export option."; description "It describes the profile for direct-export option"; - leaf enabled { - type boolean; - default false; - description - "When true, apply direct-export option to the - specified flow identified by the following filter."; - } - uses ioam-direct-export-profile; } container pot-profile { if-feature proof-of-transit; + presence "Enables Proof of Transit option."; description "It describes the profile for PoT option."; - leaf enabled { - type boolean; - default false; + leaf use-namespace { + type ioam-namespace; + default default-namespace; description - "When true, apply Proof of Transit option to the - specified flow identified by the following filter."; + "It indicates the namespace used for the POT types."; } leaf pot-type { @@ -707,17 +693,10 @@ module ietf-ioam { container e2e-profile { if-feature edge-to-edge; + presence "Enables edge-to-edge option."; description "It describes the profile for edge-to-edge option."; - leaf enabled { - type boolean; - default false; - description - "When true, apply edge-to-edge option to the - specified flow identified by the following filter."; - } - uses ioam-e2e-profile; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-link-attr@2023-03-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-link-attr@2023-03-06.yang index a0055c6dd..e94bdcb35 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-link-attr@2023-03-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-link-attr@2023-03-06.yang @@ -40,7 +40,6 @@ module ietf-isis-link-attr { "This YANG module defines the configuration and operational state for IS-IS application specific link attributes feature as defined in RFC 8919. - This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-l2-member-attr@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-l2-member-attr@2024-07-07.yang new file mode 100644 index 000000000..3c2406670 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-l2-member-attr@2024-07-07.yang @@ -0,0 +1,109 @@ +module ietf-isis-pics-l2-member-attr { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-isis-pics-l2-member-attr"; + prefix isis-pics-l2-mem-attr; + + import iana-isis-pics { + prefix "iana-isis-pics"; + } + + import ietf-isis-pics { + prefix "isis-pics"; + } + + organization + "IETF LSR - Link State Routing Working Group"; + contact + "WG Web: + WG List: + + Author: Yingzhen Qu + + Author: Les Ginsberg + + Author: Tony Przygienda + + Author: Yongqing Zhu + "; + + description + "The YANG module is used to query an IS-IS Protocol + Implementation Conformance Statement (PICS) of Advertising + Layer 2 Bundle Member Link Attributes in IS-IS (RFC8668). + + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + reference + "RFC XXXX: YANG Data Model for IS-IS Layer 2 Link Attributes + PICS"; + + revision 2024-07-07 { + description + "Initial Version"; + reference + "RFC XXXX: YANG Data Model for IS-IS Layer 2 Link Attributes + PICS."; + } + + container isis-pics-l2-member-attr { + when "/isis-pics:isis-pics/isis-pics:supported-isis-pics " + + "= 'iana-isis-pics:isis-pics-l2-member-attr'" { + description + "This container only exists when isis-pics-l2-member-attr + is present in the ietf-isis-pics module."; + } + config false; + description + "IS-IS Protocol Implementation Conformance Statement (PICS) of + Advertising Layer 2 Bundle Member Link Attributes."; + reference + "RFC 8668: Advertising Layer 2 Bundle Member Link Attributes + in IS-IS"; + + container l2-bundle-member-attributes-tlv-support { + presence "Support of L2 bundle member attributes tlv."; + description + "Support of L2 bundle member attributes tlv (Type 25)."; + + leaf-list shared-attribute-sub-tlv-support { + type uint8; + description + "List of sub-tlvs supported for advertising neighbor + information."; + reference + "IANA registry:IS-IS Sub-TLVs for TLVs Advertising Neighbor + Information. https://www.iana.org/assignments + /isis-tlv-codepoints/isis-tlv-codepoints.xhtml# + isis-tlv-codepoints-advertising-neighbor-information"; + } + } + } + + augment "/isis-pics:isis-pics/isis-pics:isis-pics-mptlv" + { + description + "Augment isis-pics-mptlv container with the tlvs defined + in RFC 8668."; + + leaf l2-bundle-member-attributes-support { + type isis-pics:support; + description + "MP-TLV support of L2 bundle member attributes tlv (Type 25)."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-sr-mpls@2023-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-sr-mpls@2023-10-18.yang deleted file mode 100644 index eca793ff2..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-sr-mpls@2023-10-18.yang +++ /dev/null @@ -1,174 +0,0 @@ -module ietf-isis-pics-sr-mpls { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-isis-pics-sr-mpls"; - prefix isis-pics-sr-mpls; - - import iana-isis-pics { - prefix "iana-isis-pics"; - } - - import ietf-isis-pics { - prefix "isis-pics"; - } - organization - "IETF LSR - Link State Routing Working Group"; - contact - "WG Web: - WG List: - - Author: Yingzhen Qu - - Author: Les Ginsberg - - Author: Tony Przygienda - "; - - description - "ISIS Protocol Implementation Conformance Statement (PICS) is - defined in ISO 10589. The YANG module is used to query an IS-IS - PICS of Segment Routing for MPLS data plane. - - This YANG model conforms to the Network Management - Datastore Architecture (NMDA) as described in RFC 8342. - - Copyright (c) 2023 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Revised BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself - for full legal notices. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here."; - reference - "RFC XXXX: YANG Data Model for IS-IS PICS"; - - revision 2023-10-18 { - description - "Initial Version"; - reference - "RFC XXXX: YANG Data Model for IS-IS PICS."; - } - - container isis-pics-sr-mpls { - when "/isis-pics:isis-pics/isis-pics:supported-isis-pics " - + "= 'iana-isis-pics:isis-pics-sr-mpls'" { - description - "This container only exists when isis-pics-sr-mpls is present - in the ietf-isis-pics module."; - } - description - "IS-IS Protocol Implementation Conformance Statement (PICS) of - Segment Routing on MPLS data plane."; - reference - "RFC 8667: IS-IS Extensions for Segment Routing"; - - container sr-capability-sub-tlv-support { - presence "Support of sr-capability sub-tlv."; - description - "Support of sr-capability sub-tlv."; - - leaf i-bit-support { - type isis-pics:support; - description - "support mpls-ipv4 capability."; - } - leaf v-bit-support { - type isis-pics:support; - description - "support mpls-ipv6 capability."; - } - } - - leaf prefix-sid-sub-tlv-support { - type isis-pics:support; - description - "Support of prefix-sid sub-tlv."; - } - - leaf adj-sid-sub-tlv-support { - type isis-pics:support; - description - "Support of Adjacency Segment Identifier sub-tlv."; - } - - leaf lan-adj-sid-sub-tlv-support { - type isis-pics:support; - description - "Support of LAN adj-sid sub-tlv."; - } - - leaf sid-label-tlv-support { - type isis-pics:support; - description - "Support of SID/Label sub-tlv."; - } - - leaf sid-label-binding-tlv-support { - type isis-pics:support; - description - "Support of SID/Label Binding tlv."; - } - - leaf mt-sid-label-binding-tlv-support { - type isis-pics:support; - description - "Support of Multi-Topology SID/Label Binding TLV."; - } - - container sr-algorithm-tlv-support { - presence "Support of SR-Algorithm sub-tlv."; - description - "Support of SR-Algorithm sub-tlv."; - - leaf-list algo-support { - type uint8; - description - "Supported algorithms."; - } - } - - leaf sr-lb-tlv-support { - type isis-pics:support; - description - "Support of the SR Local Block sub-tlv."; - } - - leaf srms-preference-tlv-support { - type isis-pics:support; - description - "Support of the SRMS Preference sub-tlv."; - } - } - - augment "/isis-pics:isis-pics/isis-pics:isis-pics-mptlv" - { - description - "Augment isis-pics-mptlv container with the TLVs defined - in RFC 8667."; - - leaf sid-label-binding-support { - type isis-pics:support; - description - "MP-TLV support of Segment Identifier/Label Binding TLV - (type 149)."; - } - - leaf mt-sid-label-binding-support { - type isis-pics:support; - description - "MP-TLV support of Multi-Topology Segment Identifier/Label - Binding TLV(type 150)."; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-sr-mpls@2024-07-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-sr-mpls@2024-07-03.yang new file mode 100644 index 000000000..2b5285636 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics-sr-mpls@2024-07-03.yang @@ -0,0 +1,292 @@ +module ietf-isis-pics-sr-mpls { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-isis-pics-sr-mpls"; + prefix isis-pics-sr-mpls; + + import iana-isis-pics { + prefix "iana-isis-pics"; + } + + import ietf-isis-pics { + prefix "isis-pics"; + } + + organization + "IETF LSR - Link State Routing Working Group"; + contact + "WG Web: + WG List: + + Author: Yingzhen Qu + + Author: Les Ginsberg + + Author: Tony Przygienda + + Author: Yongqing Zhu + "; + + description + "The YANG module is used to query an IS-IS Protocol + Implementation Conformance Statement (PICS) of Segment + Routing for MPLS data plane (RFC8667). + + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + reference + "RFC XXXX: YANG Data Model for IS-IS Segment Routing MPLS PICS"; + + revision 2024-07-03 { + description + "Initial Version"; + reference + "RFC XXXX: YANG Data Model for IS-IS Segment Routing MPLS PICS."; + } + + container isis-pics-sr-mpls { + when "/isis-pics:isis-pics/isis-pics:supported-isis-pics " + + "= 'iana-isis-pics:isis-pics-sr-mpls'" { + description + "This container only exists when isis-pics-sr-mpls is present + in the ietf-isis-pics module."; + } + config false; + description + "IS-IS Protocol Implementation Conformance Statement (PICS) of + Segment Routing on MPLS data plane."; + reference + "RFC 8667: IS-IS Extensions for Segment Routing"; + + container sr-capability-sub-tlv-support { + presence "Support of sr-capability sub-tlv."; + //config false; + description + "Support of sr-capability sub-tlv (Type 2)."; + + leaf i-bit-support { + type isis-pics:support; + description + "support mpls-ipv4 capability."; + } + leaf v-bit-support { + type isis-pics:support; + description + "support mpls-ipv6 capability."; + } + } + + container prefix-sid-sub-tlv-support { + presence "Support of prefix-sid sub-tlv."; + description + "Support of prefix-sid sub-tlv (Type 3)."; + + leaf tlv-135 { + type isis-pics:support; + description + "May present in TLV-135, extended IPv4 reachability."; + } + leaf tlv-235 { + type isis-pics:support; + description + "May present in TLV-235, multi-topology IPv4 reachability."; + } + leaf tlv-236 { + type isis-pics:support; + description + "May present in TLV-236, IPv6 IP reachability."; + } + leaf tlv-237 { + type isis-pics:support; + description + "May present in TLV-237, multi-topology IPv6 IP + reachability."; + } + } + + container adj-sid-sub-tlv-support { + presence "Support of adj-sid sub-tlv."; + description + "Support of adjacency segment identifier sub-tlv (Type 31)."; + + leaf tlv-22 { + type isis-pics:support; + description + "May present in TLV-22, extended IS reachability."; + } + leaf tlv-222 { + type isis-pics:support; + description + "May present in TLV-222, MT-ISN."; + } + leaf tlv-23 { + type isis-pics:support; + description + "May present in TLV-23, IS neighbor attribute."; + } + leaf tlv-223 { + type isis-pics:support; + description + "May present in TLV-223, MT IS neighbor attribute."; + } + leaf tlv-141 { + type isis-pics:support; + description + "May present in TLV-141, inter-AS reachability information."; + } + } + + container lan-adj-sid-sub-tlv-support { + presence "Support of lan-adj-sid sub-tlv."; + description + "Support of LAN adj-sid sub-tlv (Type 32)."; + + leaf tlv-22 { + type isis-pics:support; + description + "May present in TLV-22, extended IS reachability."; + } + leaf tlv-222 { + type isis-pics:support; + description + "May present in TLV-222, MT-ISN."; + } + leaf tlv-23 { + type isis-pics:support; + description + "May present in TLV-23, IS neighbor attribute."; + } + leaf tlv-223 { + type isis-pics:support; + description + "May present in TLV-223, MT IS neighbor attribute."; + } + } + + leaf sid-label-tlv-support { + type isis-pics:support; + description + "Support of sid/label sub-tlv (Type 1)."; + } + + container sid-label-binding-tlv-support { + presence "Support of sid-label-binding sub-tlv."; + description + "Support of sid/label binding tlv (Type 149)."; + + container srms { + description + "Support to advertise or receive prefix to sid/label + mapping."; + + leaf sending { + type isis-pics:support; + description + "Support to advertise SR mappings."; + } + leaf receiving { + type isis-pics:support; + description + "Support to receive and use the MS mapping advertisement."; + } + } + + leaf mirror-sid { + type isis-pics:support; + description + "Support to advertise a mirror sid indicating the ability + of a node to process traffic originally destined to + another IGP node."; + } + } + + container mt-sid-label-binding-tlv-support { + presence "Support of multi-topology sid-label-binding sub-tlv."; + description + "Support of multi-topology sid/label binding tlv (Type 150)."; + + container srms { + description + "Support to advertise or receive prefix to sid/label + mapping."; + + leaf sending { + type isis-pics:support; + description + "Support to advertise SR mappings."; + } + leaf receiving { + type isis-pics:support; + description + "Support to receive and use the MS mapping advertisement."; + } + } + + leaf mirror-sid { + type isis-pics:support; + description + "Support to advertise a mirror sid indicating the ability + of a node to process traffic originally destined to + another IGP node."; + } + } + + container sr-algorithm-tlv-support { + presence "Support of SR-Algorithm sub-tlv."; + description + "Support of SR-Algorithm sub-tlv (Type 19)."; + + leaf-list algo-support { + type uint8; + description + "Supported algorithms."; + } + } + + leaf sr-lb-tlv-support { + type isis-pics:support; + description + "Support of the SR Local Block sub-tlv (Type 22)."; + } + + leaf srms-preference-tlv-support { + type isis-pics:support; + description + "Support of the SRMS Preference sub-tlv (Type 24)."; + } + } + + augment "/isis-pics:isis-pics/isis-pics:isis-pics-mptlv" + { + description + "Augment isis-pics-mptlv container with the tlvs defined + in RFC 8667."; + + leaf sid-label-binding-support { + type isis-pics:support; + description + "MP-TLV support of sid/label binding tlv (Type 149)."; + } + + leaf mt-sid-label-binding-support { + type isis-pics:support; + description + "MP-TLV support of multi-topology sid/label + binding tlv (Type 150)."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-pics@2023-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics@2024-07-03.yang similarity index 76% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-pics@2023-10-18.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-pics@2024-07-03.yang index dad6315a9..e70fe4e38 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-pics@2023-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-pics@2024-07-03.yang @@ -13,23 +13,23 @@ module ietf-isis-pics { "WG Web: WG List: - Author: Yingzhen Qu + Author: Yingzhen Qu Author: Les Ginsberg Author: Tony Przygienda - "; + + Author: Yongqing Zhu + "; description "The YANG module is used to query an IS-IS implementation - for the conformance for the protocol implementation. A Protocol - Implementation COnformance Statement (PICS) is defined in - ISO 10589. + for Protocol Implementation Conformance Statement (PICS). This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -41,17 +41,12 @@ module ietf-isis-pics { 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. + 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."; reference "RFC XXXX: YANG Data Model for IS-IS PICS"; - revision 2023-10-18 { + revision 2024-07-03 { description "Initial Version"; reference @@ -67,6 +62,7 @@ module ietf-isis-pics { } container isis-pics { + config false; description "IS-IS Protocol Implementation Conformance Statement (PICS)."; @@ -79,6 +75,7 @@ module ietf-isis-pics { } container isis-pics-mptlv { + description "IS-IS Protocol Implementation Conformance Statement (PICS) for RFC xxxx: Multi-part TLVs in IS-IS. This container is diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-remaining-lifetime@2023-03-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-remaining-lifetime@2023-03-06.yang index d7b3bacfe..6ed4e7ea4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-remaining-lifetime@2023-03-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-remaining-lifetime@2023-03-06.yang @@ -10,7 +10,6 @@ module ietf-isis-remaining-lifetime { reference "RFC 9130: YANG Data Model for the IS-IS Protocol"; } - organization "IETF LSR - Link State Routing Working Group"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-sr-mpls@2024-01-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-sr-mpls@2024-01-22.yang new file mode 100644 index 000000000..14c06f015 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-sr-mpls@2024-01-22.yang @@ -0,0 +1,892 @@ +module ietf-isis-sr-mpls { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls"; + prefix isis-sr-mpls; + + import ietf-routing { + prefix rt; + reference + "RFC 8349 - A YANG Data Model for Routing + Management (NMDA Version)"; + } + import ietf-inet-types { + prefix inet; + reference + "RFC 6991 - Common YANG Data Types"; + } + import ietf-segment-routing-common { + prefix sr-cmn; + reference + "RFC 9020 - YANG Data Model for Segment Routing"; + } + import ietf-segment-routing-mpls { + prefix sr-mpls; + reference + "RFC 9020 - YANG Data Model for Segment Routing"; + } + import ietf-isis { + prefix isis; + reference + "RFC 9130 - YANG Data Model for IS-IS Protocol"; + } + import iana-routing-types { + prefix iana-rt-types; + reference + "RFC 8294 - Common YANG Data Types for the Routing Area"; + } + import ietf-routing-types { + prefix rt-types; + reference + "RFC 8294 - Common YANG Data Types for the Routing Area"; + } + + organization + "IETF LSR - Link State Routing Working Group"; + contact + "WG Web: + WG List: + Author: Stephane Litkowski + + Author: Yingzhen Qu + + Author: Acee Lindem + + Author: Pushpasis Sarkar + + Author: Ing-Wher Chen + + Author: Jeff Tantsura + + "; + description + "The YANG module defines the generic configuration and + operational state for Segment Routing ISIS extensions for the + MPLS data plane, which is common across all of the vendor + implementations. + + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; + reference + "RFC XXXX"; + + revision 2024-01-22 { + description + "Initial revision."; + reference + "RFC XXXX: A YANG Data Model for IS-IS Segment Routing for the + MPLS Data Plane"; + } + + /* Identities */ + + identity sr-capability { + description + "Base identity for ISIS SR-Capabilities sub-TLV flags"; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing"; + } + + identity mpls-ipv4 { + base sr-capability; + description + "If set, then the router is capable of + processing SR MPLS encapsulated IPv4 packets + on all interfaces."; + } + + identity mpls-ipv6 { + base sr-capability; + description + "If set, then the router is capable of + processing SR MPLS encapsulated IPv6 packets + on all interfaces."; + } + + identity prefix-sid-flag { + description + "Base identity for prefix SID sub-TLV flags."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, Section 2.1"; + } + + identity r-flag { + base prefix-sid-flag; + description + "Re-advertisement Flag."; + } + + identity n-flag { + base prefix-sid-flag; + description + "Node-SID Flag."; + } + + identity p-flag { + base prefix-sid-flag; + description + "No-PHP (No Penultimate Hop-Popping) Flag."; + } + + identity e-flag { + base prefix-sid-flag; + description + "Explicit NULL Flag."; + } + + identity v-flag { + base prefix-sid-flag; + description + "Value Flag."; + } + + identity l-flag { + base prefix-sid-flag; + description + "Local Flag."; + } + + identity adj-sid-flag { + description + "Base identity for Adj-SID sub-TLV flags."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, Section 2.2"; + } + + identity f-flag { + base adj-sid-flag; + description + "Address-Family flag."; + } + + identity b-flag { + base adj-sid-flag; + description + "Backup flag."; + } + + identity vi-flag { + base adj-sid-flag; + description + "Value/Index flag."; + } + + identity lo-flag { + base adj-sid-flag; + description + "Local flag."; + } + + identity s-flag { + base adj-sid-flag; + description + "Group flag."; + } + + identity pe-flag { + base adj-sid-flag; + description + "Persistent flag."; + } + + identity sid-binding-flag { + description + "Base identity for sid binding tlv flags."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, Section 2.4"; + } + + identity af-flag { + base sid-binding-flag; + description + "Address-Family flag."; + } + + identity m-flag { + base sid-binding-flag; + description + "Mirror Context flag."; + } + + identity sf-flag { + base sid-binding-flag; + description + "S flag. If set, the binding label TLV should be flooded + across the entire routing domain."; + } + + identity d-flag { + base sid-binding-flag; + description + "Leaking flag."; + } + + identity a-flag { + base sid-binding-flag; + description + "Attached flag."; + } + + /* Features */ + + feature remote-lfa-sr { + description + "Enhance rLFA to use SR path."; + reference + "RFC 8102: Remote-LFA Node Protection and Manageability"; + } + + feature ti-lfa { + description + "Topology-Independent Loop-Free Alternate (TI-LFA) + computation using segment routing."; + reference + "draft-ietf-rtgwg-segment-routing-ti-lfa - + Topology-Independent Fast Reroute using Segment Routing"; + } + + /* Groupings */ + + grouping sid-sub-tlv { + description + "SID/Label sub-TLV grouping."; + container sid-sub-tlv { + description + "Used to advertise the SID/Label associated with a + prefix or adjacency."; + leaf length { + type uint8; + description + "Length of the SID value. YANG model specification + is necessary since it dictates the semantics of the + SID."; + } + leaf sid { + type uint32; + description + "Segment Identifier (SID) - A 20 bit label or 32 bit SID. + If the length is set to 3, then the 20 rightmost bits + represent an MPLS label. If the length is set to 4, then + the value is a 32-bit index."; + } + } + } + + grouping sr-capability { + description + "SR capability grouping."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, Section 3"; + container sr-capability { + description + "Segment Routing capability."; + container sr-capability { + leaf-list sr-capability-flags { + type identityref { + base sr-capability; + } + description + "SR Capability sub-TLV flags."; + } + description + "SR Capability Flags."; + } + container global-blocks { + description + "Segment Routing Global Blocks."; + list global-block { + description + "Segment Routing Global Block."; + leaf range-size { + type uint32; + description + "The SID range."; + } + uses sid-sub-tlv; + } + } + } + } + + grouping sr-algorithm { + description + "SR algorithm grouping."; + container sr-algorithms { + description + "All SR algorithms."; + leaf-list sr-algorithm { + type identityref { + base sr-cmn:prefix-sid-algorithm; + } + description + "The Segment Routing (SR) algorithms that the router is + currently using."; + } + } + } + + grouping srlb { + description + "SR Local Block grouping."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, Section 3.3"; + container local-blocks { + description + "List of SRLBs."; + list local-block { + description + "Segment Routing Local Block."; + leaf range-size { + type rt-types:uint24; + description + "The SID range."; + } + uses sid-sub-tlv; + } + } + } + + grouping srms-preference { + description + "The SRMS preference TLV is used to advertise + a preference associated with the node that acts + as an SR Mapping Server."; + container srms-preference { + description + "SRMS Preference TLV."; + leaf preference { + type uint8; + description + "SRMS preference TLV, value from 0 to 255 with + 255 being the most preferred."; + } + } + } + + grouping adjacency-state { + description + "This grouping extends adjacency state."; + list adjacency-sid { + key "value"; + config false; + leaf value { + type uint32; + description + "Value of the Adj-SID."; + } + leaf address-family { + type iana-rt-types:address-family; + description + "Address-family associated with the + segment ID"; + } + leaf weight { + type uint8; + description + "Weight associated with + the adjacency SID."; + } + leaf protection-requested { + type boolean; + description + "Describe if the adjacency SID + must be protected."; + } + description + "List of adjacency Segment IDs."; + } + } + + grouping prefix-sid-sub-tlv { + description + "This grouping defines segment routing prefix segment identifier + (prefix-sid) sub-tlv."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, Section 2.1"; + container prefix-sid-sub-tlvs { + description + "PrefixSID sub-tlvs."; + list prefix-sid-sub-tlv { + key "sid"; + container prefix-sid-flags { + leaf-list flags { + type identityref { + base prefix-sid-flag; + } + description + "Prefix SID sub-TLV flags."; + } + description + "Describes flags associated with the + segment ID."; + } + leaf algorithm { + type identityref { + base sr-cmn:prefix-sid-algorithm; + } + description + "Algorithm to be used for path computation."; + } + leaf sid { + type uint32; + description + "Value of the prefix-SID."; + } + description + "List of prefix-sid sub-tlvs."; + } + } + } + + grouping adjacency-segment-id { + description + "This grouping defines segment routing extensions + for adjacencies."; + list sid-list { + key "sid"; + container adj-sid-flags { + leaf-list flags { + type identityref { + base adj-sid-flag; + } + description + "Adj-SID sub-TLV flags list."; + } + description + "Adj-SID sub-TLV flags."; + } + leaf weight { + type uint8; + description + "The value represents the weight of the Adj-SID + for the purpose of load balancing."; + } + leaf neighbor-id { + type isis:system-id; + description + "Describes the system ID of the neighbor + associated with the SID value. This is only + used on LAN adjacencies."; + } + leaf sid { + type uint32; + description + "Value of the Adj-SID."; + } + description + "List of segments."; + } + } + + grouping sid-binding-tlv { + leaf prefix { + type inet:ip-prefix; + description + "The prefix represents the Forwarding Equivalence + Class at the tail end of the advertised path."; + } + leaf range { + type uint16; + description + "Provides the ability to specify a range of addresses + and their associated prefix-sids."; + } + container sid-binding-flags { + leaf-list flags { + type identityref { + base sid-binding-flag; + } + description + "SID Binding TLV flags."; + } + description + "Binding TLV flags."; + } + list prefix-sid-sub-tlvs { + uses prefix-sid-sub-tlv; + description + "List of prefix-sid sub-tlvs."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, + Section 2.4.4"; + } + list sid-sub-tlvs { + uses sid-sub-tlv; + description + "List of prefix-sid sub-tlvs."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, + Section 2.4.5"; + } + uses isis:unknown-tlvs; + description + "SID/Label binding TLV, type 149."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, + Section 2.4"; + } + + /* Configuration */ + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis" { + when "derived-from-or-self(../rt:type, 'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol configuration + with segment routing for the MPLS data plane."; + uses sr-mpls:sr-control-plane; + container protocol-srgb { + if-feature "sr-mpls:protocol-srgb"; + uses sr-cmn:srgb; + description + "Per-protocol Segment Routing Global Block (SRGB)."; + reference + "RFC 8402 - Segment Routing Architecture, Section 2"; + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" { + when "derived-from-or-self(../../../rt:type, 'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol configuration + with segment routing."; + uses sr-mpls:igp-interface { + augment "segment-routing/adjacency-sid/adj-sids" { + when "../../../isis:interface-type = 'broadcast'" { + description + "This augments broadcast interface."; + } + description + "This augments LAN interface adj-sid with system-id."; + leaf neighbor-system-id { + type isis:system-id; + mandatory true; + description + "Neighbor system ID."; + } + } + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:fast-reroute/isis:lfa" { + when "derived-from-or-self(../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS interface IP FRR with TILFA."; + container ti-lfa { + if-feature "ti-lfa"; + leaf enabled { + type boolean; + default "false"; + description + "Enables TI-LFA computation."; + } + container selection-tie-breakers { + container node-protection { + presence "Presence of container enables the node + protection tie-breaker"; + leaf priority { + type uint8; + default "128"; + description + "Priority for node protection tie-breaker with + a lower priority being more preferred."; + } + description + "Enable node protection as a TI-LFA path + selection tie-breaker. A path providing node + protection will be selected over one that + doesn't provide node protection."; + } + container srlg-disjoint { + presence "Presence of container enables the SRLG + disjoint tie-breaker"; + leaf priority { + type uint8; + default "128"; + description + "Priority for SRLG disjoint tie-breaker with + a lower priority being more preferred."; + } + description + "Enable SRLG (Shared Resource Link Group) + disjoint as a TI-LFA path selection tie-breaker. + A path providing node a disjoint path for SRLG + links from the primary path will be selected over + one that doesn't provide an SRLG disjoint path."; + } + description + "Configure path selection tie-breakers and their + respective priorities for the TI-LFA computation."; + } + description + "Topology Independent Loop Free Alternate + (TI-LFA) support."; + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:fast-reroute/isis:lfa/isis:level-1" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS interface level-1 IP FRR with TILFA."; + container ti-lfa { + if-feature "ti-lfa"; + leaf enabled { + type boolean; + default "false"; + description + "Enables TI-LFA computation."; + } + description + "TI-LFA configuration."; + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:fast-reroute/isis:lfa/isis:level-2" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS IP interface level-2 FRR with TILFA."; + container ti-lfa { + if-feature "ti-lfa"; + leaf enabled { + type boolean; + default "false"; + description + "Enables TI-LFA computation."; + } + description + "TI-LFA configuration."; + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:fast-reroute/isis:lfa/isis:remote-lfa" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS remoteLFA config with + use of segment-routing path."; + leaf use-segment-routing-path { + if-feature "remote-lfa-sr"; + type boolean; + default "false"; + description + "Force remote LFA to use segment routing path instead of LDP + path. The value of this leaf is in effect only when + remote-lfa is enabled."; + } + } + + /* Operational states */ + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:adjacencies/isis:adjacency" { + when "derived-from-or-self(../../../../../rt:type, 'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol configuration + with segment routing."; + uses adjacency-state; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:router-capabilities" { + when "derived-from-or-self(../../../../../rt:type, 'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB router capability."; + uses sr-capability; + uses sr-algorithm; + uses srlb; + uses srms-preference; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:extended-is-neighbor/isis:neighbor" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB neighbor."; + uses adjacency-segment-id; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:mt-is-neighbor/isis:neighbor" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB neighbor."; + uses adjacency-segment-id; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:extended-ipv4-reachability/isis:prefixes" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB prefix."; + uses prefix-sid-sub-tlv; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:mt-extended-ipv4-reachability/isis:prefixes" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB prefix."; + uses prefix-sid-sub-tlv; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:ipv6-reachability/isis:prefixes" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB prefix."; + uses prefix-sid-sub-tlv; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:mt-ipv6-reachability/isis:prefixes" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB prefix."; + uses prefix-sid-sub-tlv; + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" { + when "derived-from-or-self(../../../../rt:type," + + "'isis:isis')" { + description + "This augments ISIS routing protocol when used"; + } + description + "This augments ISIS protocol LSDB."; + container sid-binding-tlvs { + list sid-binding-tlv { + key "prefix"; + uses sid-binding-tlv; + description + "Sid/label binding TLV, type 149."; + } + description + "List of sid/label binding TLVs."; + } + container mt-sid-binding-tlvs { + list mt-sid-binding-tlv { + key "prefix mt-id"; + uses sid-binding-tlv; + leaf mt-id { + type uint16; + description + "A 12-bit field containing the non-zero ID + of the topology."; + } + description + "Multi-Topology SID/Label binding TLV, type 150."; + reference + "RFC 8667 - IS-IS Extensions for Segment Routing, + Section 2.5"; + } + description + "List of multi-topology sid/label binding TLVs."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-09-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-02-28.yang similarity index 81% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-09-07.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-02-28.yang index 5f125d995..41bbea1ad 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-09-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-02-28.yang @@ -5,24 +5,21 @@ module ietf-isis-srv6 { prefix isis-srv6; import ietf-routing { - prefix "rt"; + prefix rt; reference "RFC8349: A YANG Data Model for Routing Management (NMDA Version)"; } - import ietf-isis { - prefix "isis"; + prefix isis; reference "RFC 9130: YANG Data Model for the IS-IS Protocol"; } - import ietf-inet-types { - prefix "inet"; + prefix inet; reference "RFC 6991:Common YANG Data Types"; } - import ietf-segment-routing { prefix sr; reference @@ -30,15 +27,14 @@ module ietf-isis-srv6 { Routing"; } import ietf-srv6-base { - prefix "srv6"; - reference "draft-ietf-spring-srv6-yang: YANG Data - Model for SRv6 Base and Static"; - + prefix srv6; + reference + "draft-ietf-spring-srv6-yang: YANG Data + Model for SRv6 Base and Static"; } organization - "IETF LSR Working Group"; - + "IETF LSR Working Group"; contact "WG Web: WG List: @@ -48,10 +44,10 @@ module ietf-isis-srv6 { Author: Dan Ye Author: Yingzhen Qu - + Author: Qiufang Ma - "; + "; description "The YANG module defines the configuration and operatioanl state for IS-IS extension to support Segment Routing over IPv6 data @@ -60,7 +56,7 @@ module ietf-isis-srv6 { This YANG model conforms to the Network Management Datastore Architecture (NDMA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -80,75 +76,76 @@ module ietf-isis-srv6 { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-09-07 { + revision 2024-02-28 { description - "Initial revision."; + "Initial revision."; reference "RFC XXXX: YANG Data Model for IS-IS SRv6"; } /* Identities */ + identity SRV6_END_FUNC_TYPE { description "Base identity type for srv6 endpoint function code points."; } identity SRV6_END_FUNC_PSP_USP_USD { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End (May support PSP, USP, USD)."; } identity SRV6_END_X_FUNC_PSP_USP_USD { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.X(May support PSP, USP, USD)"; } identity SRV6_END_T_FUNC_PSP_USP_USD { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "END (May support PSP, USP, USD)"; } identity SRV6_END_FUNC_DX6 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.DX6."; } identity SRV6_END_FUNC_DX4 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.DX4."; } identity SRV6_END_FUNC_DT6 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.DT6."; } identity SRV6_END_FUNC_DT4 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description - "End.DT4."; + "End.DT4."; } identity SRV6_END_FUNC_DT64 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.DT64."; } identity SRV6_END_FUNC_OP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "END.OP ."; } identity SRV6_END_FUNC_OTP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "END.OTP ."; } @@ -190,7 +187,6 @@ module ietf-isis-srv6 { description "Base identity for SRv6 End.X SID sub-TLV bits."; } - identity b-bit { base srv6-endx-sid-bit; description @@ -216,6 +212,7 @@ module ietf-isis-srv6 { } /* typedef */ + typedef srv6-sid-value { type inet:ipv6-address-no-zone; description @@ -223,12 +220,14 @@ module ietf-isis-srv6 { } /* Features */ + feature srv6-ti-lfa { description - "Enhance SRv6 FRR with ti-lfa support"; + "Enhance SRv6 FRR with ti-lfa support"; } /* Groupings */ + grouping srv6-sid-structures { description "This group defines SRv6 SID Structure sub-sub-TLV."; @@ -241,19 +240,16 @@ module ietf-isis-srv6 { description "SRv6 SID Locator Block length in bits."; } - leaf ln-length { type uint8; description "SRv6 SID Locator Node length in bits."; } - leaf fun-length { type uint8; description "SRv6 SID Function length in bits."; } - leaf arg-length { type uint8; description @@ -261,9 +257,10 @@ module ietf-isis-srv6 { } } } + grouping srv6-capability { description - "SRV6 capability grouping."; + "SRV6 capability grouping."; container v6-capability { description "SRv6 capability."; @@ -278,7 +275,7 @@ module ietf-isis-srv6 { } grouping srv6-endpoint-func { - description + description "This group defines srv6 endpoint function"; container endpoint-func { description @@ -293,7 +290,7 @@ module ietf-isis-srv6 { } leaf endpoint-func { type identityref { - base isis-srv6:SRV6_END_FUNC_TYPE; + base isis-srv6:SRV6_END_FUNC_TYPE; } description "The endpoint function."; @@ -308,7 +305,7 @@ module ietf-isis-srv6 { grouping srv6-end-sid { description - "SRv6 Segment Identifier(SID) with Endpoint functions."; + "SRv6 Segment Identifier(SID) with Endpoint functions."; leaf-list flags { type identityref { base srv6-end-sid-bit; @@ -316,9 +313,7 @@ module ietf-isis-srv6 { description "SRv6 end sid flags."; } - uses srv6-endpoint-func; - leaf sid { type srv6-sid-value; description @@ -327,6 +322,7 @@ module ietf-isis-srv6 { // sub-sub-tlvs uses srv6-sid-structures; } + grouping srv6-locator { description "This group defines srv6 locator tlv."; @@ -344,7 +340,6 @@ module ietf-isis-srv6 { description "Flags for SRv6 locator TLV."; } - leaf metric { type uint32; description @@ -353,9 +348,8 @@ module ietf-isis-srv6 { leaf algorithm { type uint8; description - "Associated algorithm."; + "Associated algorithm."; } - leaf loc-size { type uint8; description @@ -384,8 +378,7 @@ module ietf-isis-srv6 { grouping srv6-adjacency-sid { description - "SRv6 sid associated with an adjacency."; - + "SRv6 sid associated with an adjacency."; leaf-list func-flags { type identityref { base srv6-endx-sid-bit; @@ -393,28 +386,23 @@ module ietf-isis-srv6 { description "Flags for SRv6 end x SID."; } - leaf algorithm { type uint8; description "Associated algorithm."; } - leaf weight { type uint8; description "The value represents the weight of the End.X sid for the purpose of load balancing."; } - uses srv6-endpoint-func; - leaf sid { type srv6-sid-value; description "SRV6 sid value."; } - leaf neighbor-id { type isis:system-id; description @@ -428,9 +416,9 @@ module ietf-isis-srv6 { grouping srv6-adjacency-state { description - "This group will extend adjacency state."; + "This group will extend adjacency state."; list end-x-sid { - key value; + key "value"; config false; leaf value { type srv6-sid-value; @@ -461,15 +449,16 @@ module ietf-isis-srv6 { "Associated algorithm."; } uses srv6-endpoint-func; - description "List of End.X Segment IDs."; } } + /* Cfg */ - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis" { + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis" { when "derived-from-or-self(../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used"; @@ -477,36 +466,32 @@ module ietf-isis-srv6 { description "This augments ISIS protocol configuration with SRv6."; - - container srv6-cfg{ - leaf enable{ + container srv6-cfg { + leaf enable { type boolean; default "false"; description "Enables SRv6 protocol extensions."; } - leaf default-locator { type boolean; default "false"; description "Enable ISIS segment-routing IPv6 with default Locator."; } - leaf-list locator-name { when "../default-locator = 'false'" { description "Only applies to non default locator."; } type leafref { - path "/rt:routing/sr:segment-routing/srv6:srv6" + - "/srv6:locators/srv6:locator/srv6:name"; + path "/rt:routing/sr:segment-routing/srv6:srv6" + + "/srv6:locators/srv6:locator/srv6:name"; } description "Enable ISIS segment-routing IPv6 with specified Locator."; } - - leaf persistent-end-x-sid{ + leaf persistent-end-x-sid { type boolean; default "false"; description @@ -532,61 +517,59 @@ module ietf-isis-srv6 { "Set the route delivery delay for SRv6 avoid-microloop. Depend on SR IPv6 Enable."; } - description "Enable IS-IS avoid-microloop."; } } - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis/isis:fast-reroute"{ + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:fast-reroute" { when "derived-from-or-self(../../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used"; } description "This augments ISIS IPFRR with IPV6 TILFA."; - container srv6-ti-lfa { - - if-feature srv6-ti-lfa; + if-feature "srv6-ti-lfa"; leaf enable { type boolean; description "Enables SRv6 TI-LFA computation."; } - description "SRv6 TILFA configuration."; } } + /* Operational states */ - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis/isis:database/isis:levels/isis:lsp"+ - "/isis:router-capabilities" { - when "derived-from-or-self(../../../../../rt:type, 'isis:isis')" { + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:router-capabilities" { + when "derived-from-or-self(../../../../../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used"; } description "This augments ISIS protocol router capability."; - uses srv6-capability; - uses srv6:srv6-msd-signaled; + uses srv6-capability; + uses srv6:srv6-msd-signaled; } - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis/isis:database/isis:levels/isis:lsp"+ - "/isis:extended-is-neighbor/isis:neighbor" { - when "derived-from-or-self(../../../../../../rt:type," - + "'isis:isis')" { + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:extended-is-neighbor/isis:neighbor" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { description "This augment ISIS routing protocol when used."; } description - "This augments ISIS protocol neighbor."; + "This augments ISIS protocol neighbor."; container srv6-adjacency-sids { description "This defines svr6 end-x sids for the adjacency."; @@ -598,19 +581,20 @@ module ietf-isis-srv6 { } } } - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis/isis:database/isis:levels/isis:lsp"+ - "/isis:mt-is-neighbor/isis:neighbor" { + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" + + "/isis:mt-is-neighbor/isis:neighbor" { when "derived-from-or-self(../../../../../../rt:type," - + "'isis:isis')" { + + "'isis:isis')" { description "This augment ISIS routing protocol when used."; } description "This augments ISIS protocol neighbor."; container srv6-adjacency-sids { - description + description "This defines svr6 end-x sids for the adjacency."; list end-x-sid { key "sid"; @@ -621,18 +605,18 @@ module ietf-isis-srv6 { } } - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis/isis:database/isis:levels/isis:lsp" { + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:database/isis:levels/isis:lsp" { when "derived-from-or-self(../../../../rt:type, 'isis:isis')" { description - "This augment ISIS routing protocol when used."; + "This augment ISIS routing protocol when used."; } description - "This augments ISIS protocol LSDB."; + "This augments ISIS protocol LSDB."; container srv6-locators { description - "This defines srv6 locator tlvs."; + "This defines srv6 locator tlvs."; list locator { key "locator"; uses srv6-locator; @@ -642,19 +626,19 @@ module ietf-isis-srv6 { } } - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/isis:isis/isis:interfaces/isis:interface" + - "/isis:adjacencies/isis:adjacency" { + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:adjacencies/isis:adjacency" { when "derived-from-or-self(../../../../../rt:type," - + "'isis:isis')" { + + "'isis:isis')" { description - "This augment ISIS routing protocol when used."; + "This augment ISIS routing protocol when used."; } description "This augments ISIS protocol operational state with segment routing."; - uses srv6-adjacency-state; + uses srv6-adjacency-state; } /* Notifications */ diff --git a/experimental/ietf-extracted-YANG-modules/ietf-keystore@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-keystore@2024-03-16.yang similarity index 72% rename from experimental/ietf-extracted-YANG-modules/ietf-keystore@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-keystore@2024-03-16.yang index 8e158fabb..fd4ecb878 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-keystore@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-keystore@2024-03-16.yang @@ -17,7 +17,6 @@ module ietf-keystore { organization "IETF NETCONF (Network Configuration) Working Group"; - contact "WG Web: https://datatracker.ietf.org/wg/netconf WG List: NETCONF WG list @@ -27,7 +26,7 @@ module ietf-keystore { "This module defines a 'keystore' to centralize management of security credentials. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -48,7 +47,7 @@ module ietf-keystore { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -62,8 +61,8 @@ module ietf-keystore { feature central-keystore-supported { description "The 'central-keystore-supported' feature indicates that - the server supports the keystore (i.e., implements the - 'ietf-keystore' module)."; + the server supports the central keystore (i.e., fully + implements the 'ietf-keystore' module)."; } feature inline-definitions-supported { @@ -89,59 +88,57 @@ module ietf-keystore { /* Typedefs */ /****************/ - typedef symmetric-key-ref { + typedef central-symmetric-key-ref { type leafref { path "/ks:keystore/ks:symmetric-keys/ks:symmetric-key" + "/ks:name"; } description "This typedef enables modules to easily define a reference - to a symmetric key stored in the keystore, when this - module is implemented."; + to a symmetric key stored in the central keystore."; } - typedef asymmetric-key-ref { + typedef central-asymmetric-key-ref { type leafref { path "/ks:keystore/ks:asymmetric-keys/ks:asymmetric-key" + "/ks:name"; } description "This typedef enables modules to easily define a reference - to an asymmetric key stored in the keystore, when this - module is implemented."; + to an asymmetric key stored in the central keystore."; } /*****************/ /* Groupings */ /*****************/ - grouping encrypted-by-choice-grouping { + grouping encrypted-by-grouping { description "A grouping that defines a 'choice' statement that can be augmented into the 'encrypted-by' node, present in the 'symmetric-key-grouping' and 'asymmetric-key-pair-grouping' groupings defined in RFC AAAA, enabling references to keys - in the keystore, when this module is implemented."; - choice encrypted-by-choice { + in the central keystore."; + choice encrypted-by { nacm:default-deny-write; mandatory true; description "A choice amongst other symmetric or asymmetric keys."; - case symmetric-key-ref { + case central-symmetric-key-ref { if-feature "central-keystore-supported"; if-feature "symmetric-keys"; leaf symmetric-key-ref { - type ks:symmetric-key-ref; + type ks:central-symmetric-key-ref; description "Identifies the symmetric key used to encrypt the associated key."; } } - case asymmetric-key-ref { + case central-asymmetric-key-ref { if-feature "central-keystore-supported"; if-feature "asymmetric-keys"; leaf asymmetric-key-ref { - type ks:asymmetric-key-ref; + type ks:central-asymmetric-key-ref; description "Identifies the asymmetric key whose public key encrypted the associated key."; @@ -150,16 +147,17 @@ module ietf-keystore { } } - grouping asymmetric-key-certificate-ref-grouping { + // *-ref groupings + + grouping central-asymmetric-key-certificate-ref-grouping { description - "This grouping defines a reference to a specific certificate - associated with an asymmetric key stored in the keystore, - when this module is implemented."; + "Grouping for the reference to a certificate associated + with an asymmetric key stored in the central keystore."; leaf asymmetric-key { nacm:default-deny-write; if-feature "central-keystore-supported"; if-feature "asymmetric-keys"; - type ks:asymmetric-key-ref; + type ks:central-asymmetric-key-ref; must '../certificate'; description "A reference to an asymmetric key in the keystore."; @@ -182,14 +180,13 @@ module ietf-keystore { grouping inline-or-keystore-symmetric-key-grouping { description - "A grouping that expands to allow the symmetric key to be - either stored locally, i.e., within the using data model, - or a reference to a symmetric key stored in the keystore. - - Servers that do not 'implement' this module, and hence - 'central-keystore-supported' is not defined, SHOULD - augment in custom 'case' statements enabling references - to the alternate keystore locations."; + "A grouping for the configuration of a symmetric key. The + symmetric key may be defined inline or as a reference to + a symmetric key stored in the central keystore. + + Servers that wish to define alternate keystore locations + SHOULD augment in custom 'case' statements enabling + references to those alternate keystore locations."; choice inline-or-keystore { nacm:default-deny-write; mandatory true; @@ -204,14 +201,14 @@ module ietf-keystore { uses ct:symmetric-key-grouping; } } - case keystore { + case central-keystore { if-feature "central-keystore-supported"; if-feature "symmetric-keys"; - leaf keystore-reference { - type ks:symmetric-key-ref; + leaf central-keystore-reference { + type ks:central-symmetric-key-ref; description "A reference to an symmetric key that exists in - the keystore, when this module is implemented."; + the central keystore."; } } } @@ -219,14 +216,13 @@ module ietf-keystore { grouping inline-or-keystore-asymmetric-key-grouping { description - "A grouping that expands to allow the asymmetric key to be - either stored locally, i.e., within the using data model, - or a reference to an asymmetric key stored in the keystore. - - Servers that do not 'implement' this module, and hence - 'central-keystore-supported' is not defined, SHOULD - augment in custom 'case' statements enabling references - to the alternate keystore locations."; + "A grouping for the configuration of an asymmetric key. The + asymmetric key may be defined inline or as a reference to + an asymmetric key stored in the central keystore. + + Servers that wish to define alternate keystore locations + SHOULD augment in custom 'case' statements enabling + references to those alternate keystore locations."; choice inline-or-keystore { nacm:default-deny-write; mandatory true; @@ -241,17 +237,16 @@ module ietf-keystore { uses ct:asymmetric-key-pair-grouping; } } - case keystore { + case central-keystore { if-feature "central-keystore-supported"; if-feature "asymmetric-keys"; - leaf keystore-reference { - type ks:asymmetric-key-ref; + leaf central-keystore-reference { + type ks:central-asymmetric-key-ref; description "A reference to an asymmetric key that exists in - the keystore, when this module is implemented. The - intent is to reference just the asymmetric key - without any regard for any certificates that may - be associated with it."; + the central keystore. The intent is to reference + just the asymmetric key without any regard for + any certificates that may be associated with it."; } } } @@ -259,16 +254,15 @@ module ietf-keystore { grouping inline-or-keystore-asymmetric-key-with-certs-grouping { description - "A grouping that expands to allow an asymmetric key and - its associated certificates to be either stored locally, - i.e., within the using data model, or a reference to an - asymmetric key (and its associated certificates) stored - in the keystore. - - Servers that do not 'implement' this module, and hence - 'central-keystore-supported' is not defined, SHOULD - augment in custom 'case' statements enabling references - to the alternate keystore locations."; + "A grouping for the configuration of an asymmetric key and + its associated certificates. The asymmetric key and its + associated certificates may be defined inline or as a + reference to an asymmetric key (and its associated + certificates) in the central keystore. + + Servers that wish to define alternate keystore locations + SHOULD augment in custom 'case' statements enabling + references to those alternate keystore locations."; choice inline-or-keystore { nacm:default-deny-write; mandatory true; @@ -283,11 +277,11 @@ module ietf-keystore { uses ct:asymmetric-key-pair-with-certs-grouping; } } - case keystore { + case central-keystore { if-feature "central-keystore-supported"; if-feature "asymmetric-keys"; - leaf keystore-reference { - type ks:asymmetric-key-ref; + leaf central-keystore-reference { + type ks:central-asymmetric-key-ref; description "A reference to an asymmetric-key (and all of its associated certificates) in the keystore, when @@ -299,15 +293,15 @@ module ietf-keystore { grouping inline-or-keystore-end-entity-cert-with-key-grouping { description - "A grouping that expands to allow an end-entity certificate - (and its associated asymmetric key pair) to be either stored - locally, i.e., within the using data model, or a reference - to a specific certificate in the keystore. - - Servers that do not 'implement' this module, and hence - 'central-keystore-supported' is not defined, SHOULD - augment in custom 'case' statements enabling references - to the alternate keystore locations."; + "A grouping for the configuration of an asymmetric key and + its associated end-entity certificate. The asymmetric key + and its associated end-entity certificate may be defined + inline or as a reference to an asymmetric key (and its + associated end-entity certificate) in the central keystore. + + Servers that wish to define alternate keystore locations + SHOULD augment in custom 'case' statements enabling + references to those alternate keystore locations."; choice inline-or-keystore { nacm:default-deny-write; mandatory true; @@ -322,20 +316,21 @@ module ietf-keystore { uses ct:asymmetric-key-pair-with-cert-grouping; } } - case keystore { + case central-keystore { if-feature "central-keystore-supported"; if-feature "asymmetric-keys"; - container keystore-reference { - uses asymmetric-key-certificate-ref-grouping; + container central-keystore-reference { + uses central-asymmetric-key-certificate-ref-grouping; description "A reference to a specific certificate associated with - an asymmetric key stored in the keystore, when this - module is implemented."; + an asymmetric key stored in the central keystore."; } } } } + // the keystore grouping + grouping keystore-grouping { description "Grouping definition enables use in other contexts. If ever @@ -389,13 +384,13 @@ module ietf-keystore { a list of asymmetric keys."; nacm:default-deny-write; uses keystore-grouping { - augment "symmetric-keys/symmetric-key/key-type/encrypted-key/" - + "encrypted-key/encrypted-by" { + augment "symmetric-keys/symmetric-key/key-type/encrypted-" + + "symmetric-key/encrypted-symmetric-key/encrypted-by" { description "Augments in a choice statement enabling the encrypting key to be any other symmetric or asymmetric key in the central keystore."; - uses encrypted-by-choice-grouping; + uses encrypted-by-grouping; } augment "asymmetric-keys/asymmetric-key/private-key-type/" + "encrypted-private-key/encrypted-private-key/" @@ -404,7 +399,7 @@ module ietf-keystore { "Augments in a choice statement enabling the encrypting key to be any other symmetric or asymmetric key in the central keystore."; - uses encrypted-by-choice-grouping; + uses encrypted-by-grouping; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l1csm-te-service-mapping@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-l1csm-te-service-mapping@2024-03-17.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-l1csm-te-service-mapping@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l1csm-te-service-mapping@2024-03-17.yang index ca86d384b..ebb2a7c71 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l1csm-te-service-mapping@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l1csm-te-service-mapping@2024-03-17.yang @@ -34,7 +34,7 @@ module ietf-l1csm-te-service-mapping { Layer 1 Connectivity Service Module (L1CSM) to the TE and Virtual Network (VN). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -47,7 +47,7 @@ module ietf-l1csm-te-service-mapping { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l2nm-te-service-mapping@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-l2nm-te-service-mapping@2024-03-17.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-l2nm-te-service-mapping@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l2nm-te-service-mapping@2024-03-17.yang index 917a98393..3dd4e3ada 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l2nm-te-service-mapping@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l2nm-te-service-mapping@2024-03-17.yang @@ -33,7 +33,7 @@ module ietf-l2nm-te-service-mapping { "This module contains a YANG module for the mapping of Layer 2 Network Model (L2NM) to the TE and Virtual Network (VN). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -45,7 +45,7 @@ module ietf-l2nm-te-service-mapping { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l2sm-te-service-mapping@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-l2sm-te-service-mapping@2024-03-17.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-l2sm-te-service-mapping@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l2sm-te-service-mapping@2024-03-17.yang index 362700432..a66eb65fa 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l2sm-te-service-mapping@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l2sm-te-service-mapping@2024-03-17.yang @@ -35,7 +35,7 @@ module ietf-l2sm-te-service-mapping { Virtual Private Network (L2VPN) Service Delivery to the TE and Virtual Network (VN). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -48,7 +48,7 @@ module ietf-l2sm-te-service-mapping { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang index 49632feac..65b722ccf 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3-isis-topology@2022-09-21.yang @@ -28,14 +28,8 @@ module ietf-l3-isis-topology { "RFC 9130: YANG Data Model for the IS-IS Protocols"; } - import ietf-inet-types { - prefix "inet"; - reference - "RFC 6991: Common YANG Data Types"; - } - organization - "IETF OPSA (Operations and Management Area) Working Group"; + "IETF NMOP (Network Management Operations) Working Group"; contact "WG Web: WG List: @@ -54,6 +48,7 @@ module ietf-l3-isis-topology { 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 @@ -86,6 +81,8 @@ module ietf-l3-isis-topology { grouping isis-link-attributes { description "Identifies the IS-IS link attributes."; container isis-link-attributes { + description + "Main Container to identify the ISIS Link Attributes"; leaf metric { type uint32 { range "0 .. 16777215"; @@ -110,6 +107,8 @@ module ietf-l3-isis-topology { uses ietf-isis:lsp-parameters; } container isis-node-attributes { + description + "Main Container to identify the ISIS Node Attributes"; leaf system-id { type ietf-isis:system-id; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3-ospf-topology@2022-03-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3-ospf-topology@2022-03-07.yang index 84186abc5..249c28bb5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3-ospf-topology@2022-03-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3-ospf-topology@2022-03-07.yang @@ -17,7 +17,7 @@ module ietf-l3-ospf-topology { } organization - "IETF OPSA (Operations and Management Area) Working Group"; + "IETF NMOP (Network Management Operations) Working Group"; contact "WG Web: WG List: @@ -32,7 +32,7 @@ module ietf-l3-ospf-topology { "This module defines a model for Layer 3 OSPF topologies. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -206,7 +206,6 @@ module ietf-l3-ospf-topology { "Introduces new network type for L3 Unicast topology"; uses ospfv2-topology-type; } - augment "/nw:networks/nw:network/nw:node/" +"l3t:l3-node-attributes" { when diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology-state@2020-05-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology-state@2024-06-08.yang similarity index 79% rename from experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology-state@2020-05-03.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology-state@2024-06-08.yang index c7c8c5915..8fa681ca9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology-state@2020-05-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology-state@2024-06-08.yang @@ -5,6 +5,8 @@ module ietf-l3-te-topology-state { import ietf-l3-te-topology { prefix "l3tet"; + reference + "RFC XXXX: YANG Data Model for Layer 3 TE Topologies"; } import ietf-network-state { prefix "nw-s"; @@ -18,6 +20,7 @@ module ietf-l3-te-topology-state { prefix "l3t-s"; reference "RFC 8346: A YANG Data Model for Layer 3 Topologies"; } + organization "IETF Traffic Engineering Architecture and Signaling (TEAS) Working Group"; @@ -48,35 +51,37 @@ module ietf-l3-te-topology-state { "YANG data model for representing operational state information of Layer 3 TE Topologies, when NMDA is not supported. - Copyright (c) 2018 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set + the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; - revision 2020-05-03 { + revision 2024-06-08 { description "Initial revision"; reference "RFC XXXX: YANG Data Model for Layer 3 TE Topologies"; } + augment "/nw-s:networks/nw-s:network/nw-s:network-types/" - + "l3t-s:l3-unicast-topology" { + + "l3t-s:l3-unicast-topology" { description "Defines the L3 TE topology type."; uses l3tet:l3-te-topology-type; } augment "/nw-s:networks/nw-s:network/" - + "l3t-s:l3-topology-attributes" { + + "l3t-s:l3-topology-attributes" { when "../nw-s:network-types/l3t-s:l3-unicast-topology/" - + "l3tet-s:l3-te" { + + "l3tet-s:l3-te" { description "Augment only for L3 TE topology"; } @@ -86,9 +91,9 @@ module ietf-l3-te-topology-state { } augment "/nw-s:networks/nw-s:network/nw-s:node/" - + "l3t-s:l3-node-attributes" { + + "l3t-s:l3-node-attributes" { when "../../nw-s:network-types/l3t-s:l3-unicast-topology/" - + "l3tet-s:l3-te" { + + "l3tet-s:l3-te" { description "Augment only for L3 TE topology"; } @@ -98,10 +103,10 @@ module ietf-l3-te-topology-state { } augment "/nw-s:networks/nw-s:network/nw-s:node/" - + "nt-s:termination-point/" - + "l3t-s:l3-termination-point-attributes" { + + "nt-s:termination-point/" + + "l3t-s:l3-termination-point-attributes" { when "../../../nw-s:network-types/l3t-s:l3-unicast-topology/" - + "l3tet-s:l3-te" { + + "l3tet-s:l3-te" { description "Augment only for L3 TE topology"; } @@ -109,11 +114,10 @@ module ietf-l3-te-topology-state { "Augment termination point configuration"; uses l3tet:l3-te-tp-attributes; } - augment "/nw-s:networks/nw-s:network/nt-s:link/" - + "l3t-s:l3-link-attributes" { + + "l3t-s:l3-link-attributes" { when "../../nw-s:network-types/l3t-s:l3-unicast-topology/" - + "l3tet-s:l3-te" { + + "l3tet-s:l3-te" { description "Augment only for L3 TE topology"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology@2020-05-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology@2024-06-08.yang similarity index 82% rename from experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology@2020-05-03.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology@2024-06-08.yang index 7177596ce..2bf5402a3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology@2020-05-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3-te-topology@2024-06-08.yang @@ -18,8 +18,8 @@ module ietf-l3-te-topology { import ietf-te-topology { prefix "tet"; reference - "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic - Engineering (TE) Topologies"; + "RFC 8795: YANG Data Model for Traffic Engineering (TE) + Topologies"; } organization @@ -52,37 +52,39 @@ module ietf-l3-te-topology { "YANG data model for representing and manipulating Layer 3 TE Topologies. - Copyright (c) 2018 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set + the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; - - revision 2020-05-03 { + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + revision 2024-06-08 { description "Initial revision"; reference "RFC XXXX: YANG Data Model for Layer 3 TE Topologies"; } + grouping l3-te-topology-type { description "Identifies the L3 TE topology type."; container l3-te { - presence "Indicates L3 TE Topology"; + presence + "Indicates L3 TE Topology"; description "Its presence identifies the L3 TE topology type."; } } augment "/nw:networks/nw:network/nw:network-types/" - + "l3t:l3-unicast-topology" { + + "l3t:l3-unicast-topology" { description "Defines the L3 TE topology type."; uses l3-te-topology-type; @@ -100,7 +102,7 @@ module ietf-l3-te-topology { augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" { when "../../nw:network-types/l3t:l3-unicast-topology/" - + "l3tet:l3-te" { + + "l3tet:l3-te" { description "Augment only for L3 TE topology"; } @@ -110,9 +112,9 @@ module ietf-l3-te-topology { } augment "/nw:networks/nw:network/nw:node/nt:termination-point/" - + "l3t:l3-termination-point-attributes" { + + "l3t:l3-termination-point-attributes" { when "../../../nw:network-types/l3t:l3-unicast-topology/" - + "l3tet:l3-te" { + + "l3tet:l3-te" { description "Augment only for L3 TE topology"; } @@ -123,7 +125,7 @@ module ietf-l3-te-topology { augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" { when "../../nw:network-types/l3t:l3-unicast-topology/" - + "l3tet:l3-te" { + + "l3tet:l3-te" { description "Augment only for L3 TE topology"; } @@ -137,8 +139,8 @@ module ietf-l3-te-topology { "L3 TE topology scope attributes"; container l3-te-topology-attributes { must "/nw:networks/nw:network" - + "[nw:network-id = current()/network-ref]/nw:network-types/" - + "tet:te-topology" { + + "[nw:network-id = current()/network-ref]/" + + "nw:network-types/tet:te-topology" { error-message "The referenced network must be a TE topology."; description @@ -155,8 +157,8 @@ module ietf-l3-te-topology { "L3 TE node scope attributes"; container l3-te-node-attributes { must "/nw:networks/nw:network" - + "[nw:network-id = current()/network-ref]/nw:network-types/" - + "tet:te-topology" { + + "[nw:network-id = current()/network-ref]/" + + "nw:network-types/tet:te-topology" { error-message "The referenced network must be a TE topology."; description @@ -167,13 +169,14 @@ module ietf-l3-te-topology { uses nw:node-ref; } // l3-te } // l3-te-node-attributes + grouping l3-te-tp-attributes { description "L3 TE termination point scope attributes"; container l3-te-tp-attributes { must "/nw:networks/nw:network" - + "[nw:network-id = current()/network-ref]/nw:network-types/" - + "tet:te-topology" { + + "[nw:network-id = current()/network-ref]/" + + "nw:network-types/tet:te-topology" { error-message "The referenced network must be a TE topology."; description @@ -190,8 +193,8 @@ module ietf-l3-te-topology { "L3 TE link scope attributes"; container l3-te-link-attributes { must "/nw:networks/nw:network" - + "[nw:network-id = current()/network-ref]/nw:network-types/" - + "tet:te-topology" { + + "[nw:network-id = current()/network-ref]/" + + "nw:network-types/tet:te-topology" { error-message "The referenced network must be a TE topology."; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3nm-te-service-mapping@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3nm-te-service-mapping@2024-03-17.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-l3nm-te-service-mapping@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l3nm-te-service-mapping@2024-03-17.yang index 2431c4fd3..37e2af1d2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3nm-te-service-mapping@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3nm-te-service-mapping@2024-03-17.yang @@ -33,7 +33,7 @@ module ietf-l3nm-te-service-mapping { "This module contains a YANG module for the mapping of Layer 3 VPNs network model to the TE and Virtual Network (VN). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -46,7 +46,7 @@ module ietf-l3nm-te-service-mapping { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-l3sm-te-service-mapping@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-l3sm-te-service-mapping@2024-03-17.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-l3sm-te-service-mapping@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-l3sm-te-service-mapping@2024-03-17.yang index 0bad5e827..c3a4cf2b9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-l3sm-te-service-mapping@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-l3sm-te-service-mapping@2024-03-17.yang @@ -32,7 +32,7 @@ module ietf-l3sm-te-service-mapping { "This module contains a YANG module for the mapping of Layer 3 Service Model (L3SM) to the TE and VN. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -45,7 +45,7 @@ module ietf-l3sm-te-service-mapping { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2023-10-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang similarity index 85% rename from experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2023-10-04.yang rename to experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang index e06e689e5..63f49ac7e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2023-10-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-layer0-types@2024-07-23.yang @@ -27,7 +27,7 @@ module ietf-layer0-types { Division Multiplexing) and DWDM (Dense Wavelength Division Multiplexing)) and flexi-grid optical networks. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -51,12 +51,13 @@ module ietf-layer0-types { // replace the revision date with the module publication date // the format is (year-month-day) - revision 2023-10-04 { + revision 2024-07-23 { description "To be updated"; reference "RFC XXXX: A YANG Data Model for Layer 0 Types"; } + revision 2021-08-13 { description "Initial version"; @@ -98,7 +99,6 @@ module ietf-layer0-types { reference "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC), Label Switching Routers, - ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: DWDM frequency grid"; } @@ -130,6 +130,12 @@ module ietf-layer0-types { base cwdm-ch-spc-type; description "20nm channel spacing"; + reference + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC) + Label Switching Routers, + + ITU-T G.694.2 (12/2003): Spectral grids for WDM applications: + CWDM wavelength grid"; } identity dwdm-ch-spc-type { @@ -147,23 +153,48 @@ module ietf-layer0-types { base dwdm-ch-spc-type; description "100 GHz channel spacing"; + reference + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC) + Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } identity dwdm-50ghz { base dwdm-ch-spc-type; description "50 GHz channel spacing"; + reference + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC) + Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } + identity dwdm-25ghz { base dwdm-ch-spc-type; description "25 GHz channel spacing"; + reference + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC) + Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } identity dwdm-12p5ghz { base dwdm-ch-spc-type; description "12.5 GHz channel spacing"; + reference + "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC) + Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } identity flexi-ch-spc-type { @@ -195,17 +226,35 @@ module ietf-layer0-types { base flexi-ncfg-type; description "6.25 GHz Nominal Central Frequency Granularity (NCFG)"; + reference + "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda + Switch Capable (LSC) Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } identity flexi-slot-width-granularity { description "Flexi-grid slot width granularity"; + reference + "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda + Switch Capable (LSC) Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } identity flexi-swg-12p5ghz { base flexi-slot-width-granularity; description "12.5 GHz slot width granularity"; + reference + "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda + Switch Capable (LSC) Label Switching Routers, + + ITU-T G.694.1 (10/2020): Spectral grids for WDM applications: + DWDM frequency grid"; } identity modulation { @@ -436,6 +485,9 @@ module ietf-layer0-types { "All the available wavelengths are numbered, and this WA (Wavelength Assignment) method chooses the available wavelength with the lowest index"; + reference + "RFC 7689: Signaling Extensions for Wavelength Switched + Optical Networks"; } identity random-wavelength-assignment { @@ -443,6 +495,9 @@ module ietf-layer0-types { description "This WA method chooses an available wavelength randomly"; + reference + "RFC 7689: Signaling Extensions for Wavelength Switched + Optical Networks"; } identity least-loaded-wavelength-assignment { @@ -451,37 +506,25 @@ module ietf-layer0-types { "This WA method selects the wavelength that has the largest residual capacity on the most loaded link along the route (in multi-fiber networks)"; + reference + "RFC 7689: Signaling Extensions for Wavelength Switched + Optical Networks"; } - identity term-type { - description - "Termination type"; - reference - "ITU-T G.709: Interfaces for the Optical Transport Network"; - } - - identity term-phys { - base term-type; - description - "Physical layer termination"; - } - - identity term-otu { - base term-type; - description - "OTU (Optical Transport Unit) termination"; - } - - identity term-odu { - base term-type; + identity lower-first-wavelength-assignment { + base wavelength-assignment; description - "ODU (Optical Data Unit) termination"; + "Allocate wavelengths in ascending order, beginning from the + lowest frequency and progressing toward the highest frequency + within the permissible frequency range."; } - identity term-opu { - base term-type; + identity upper-first-wavelength-assignment { + base wavelength-assignment; description - "OPU (Optical Payload Unit) termination"; + "Allocate wavelengths in decending order, beginning from the + highest frequency and progressing toward the lowest frequency + within the permissible frequency range."; } identity otu-type { @@ -490,70 +533,50 @@ module ietf-layer0-types { reference "ITU-T G.709: Interfaces for the Optical Transport Network"; } + identity OTU1 { base otu-type; description "OTU1 (2.66 Gb/s)"; - } - - identity OTU1e { - base otu-type; - description - "OTU1e (11.04 Gb/s)"; - } - - identity OTU1f { - base otu-type; - description - "OTU1f (11.27 Gb/s)"; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; } identity OTU2 { base otu-type; description "OTU2 (10.70 Gb/s)"; - } - - identity OTU2e { - base otu-type; - description - "OTU2e (11.09 Gb/s)"; - } - - identity OTU2f { - base otu-type; - description - "OTU2f (11.31G)"; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; } identity OTU3 { base otu-type; description "OTU3 (43.01 Gb/s)"; - } - - identity OTU3e1 { - base otu-type; - description - "OTU3e1 (44.57 Gb/s)"; - } - - identity OTU3e2 { - base otu-type; - description - "OTU3e2 (44.58 Gb/s)"; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; } identity OTU4 { base otu-type; description "OTU4 (111.80 Gb/s)"; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; } identity OTUCn { base otu-type; description "OTUCn (n x 105.25 Gb/s)"; + reference + "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical + Transport Network (OTN)"; } identity type-power-mode { @@ -574,22 +597,6 @@ module ietf-layer0-types { "all elements must use power (dBm)"; } - identity operational-mode { - description - "Base identity to be used when defining organization/vendor - specific modes. - - The format of the derived identities has to be defined by the - organization which is responsible for defining the - corresponding optical interface specification."; - reference - "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical - Impairment-aware Topology."; - } -// RFC Ed.: replace YYYY with actual RFC number and remove -// this note after draft-ietf-ccamp-optical-impairment-topology-yang -// is published as an RFC - /* * Typedefs */ @@ -682,6 +689,7 @@ module ietf-layer0-types { reference "ITU-T G.698.2 (11/2018)"; } + typedef organization-identifier { type string; description @@ -696,13 +704,11 @@ module ietf-layer0-types { // is published as an RFC typedef operational-mode { - type identityref { - base operational-mode; - } + type string; description "Identifies an organization (e.g., vendor) specific mode. - The format of these identities has to be defined by the + The format of the string has to be defined by the organization which is responsible for defining the corresponding optical interface specification."; reference @@ -721,6 +727,7 @@ module ietf-layer0-types { description "The DWDM frequency in THz, e.g., 193.112500000"; } + typedef frequency-ghz { type decimal64 { fraction-digits 6; @@ -731,13 +738,15 @@ module ietf-layer0-types { } typedef snr { - type decimal64 { - fraction-digits 2; - } + type decimal-2; units "dB@0.1nm"; description "(Optical) Signal to Noise Ratio measured over 0.1 nm resolution bandwidth"; + reference + "ITU-T G.977.1 (02/2021): Transverse compatible dense + wavelength division multiplexing applications for repeatered + optical fibre submarine cable systems"; } typedef snr-or-null { @@ -754,10 +763,12 @@ module ietf-layer0-types { typedef fiber-type { type enumeration { enum G.652 { - description "G.652 Standard Singlemode Fiber"; + description + "G.652 Standard Singlemode Fiber"; } enum G.654 { - description "G.654 Cutoff Shifted Fiber"; + description + "G.654 Cutoff Shifted Fiber"; } enum G.653 { description "G.653 Dispersion Shifted Fiber"; @@ -766,18 +777,19 @@ module ietf-layer0-types { description "G.655 Non-Zero Dispersion Shifted Fiber"; } enum G.656 { - description "G.656 Non-Zero Dispersion for Wideband - Optical Transport"; + description + "G.656 Non-Zero Dispersion for Wideband Optical Transport"; } enum G.657 { - description "G.657 Bend-Insensitive Fiber"; + description + "G.657 Bend-Insensitive Fiber"; } } description "ITU-T based fiber-types"; } - typedef decimal-2-digits { + typedef decimal-2 { type decimal64 { fraction-digits 2; } @@ -785,9 +797,9 @@ module ietf-layer0-types { "A decimal64 value with two digits."; } - typedef decimal-2-digits-or-null { + typedef decimal-2-or-null { type union { - type decimal-2-digits; + type decimal-2; type empty; } description @@ -795,8 +807,8 @@ module ietf-layer0-types { an empty value when the value is not known."; } - typedef gain-in-db { - type decimal-2-digits { + typedef power-gain { + type decimal-2 { range "0..max"; } units "dB"; @@ -804,9 +816,9 @@ module ietf-layer0-types { "The gain in dB."; } - typedef gain-in-db-or-null { + typedef power-gain-or-null { type union { - type gain-in-db; + type power-gain; type empty; } description @@ -814,8 +826,8 @@ module ietf-layer0-types { value when the power gain/loss is not known."; } - typedef loss-in-db { - type decimal-2-digits { + typedef power-loss { + type decimal-2 { range "0..max"; } units "dB"; @@ -823,9 +835,9 @@ module ietf-layer0-types { "The power attenuation in dB."; } - typedef loss-in-db-or-null { + typedef power-loss-or-null { type union { - type loss-in-db; + type power-loss; type empty; } description @@ -833,16 +845,33 @@ module ietf-layer0-types { value when the loss is not known."; } - typedef power-in-dbm { - type decimal-2-digits; + typedef power-ratio { + type decimal-2; + units "dB"; + description + "The power difference in dB."; + } + + typedef power-ratio-or-null { + type union { + type power-ratio; + type empty; + } + description + "The power difference in dB, when it is known or an empty + value when the difference is not known."; + } + + typedef power-dbm { + type decimal-2; units "dBm"; description "The power in dBm."; } - typedef power-in-dbm-or-null { + typedef power-dbm-or-null { type union { - type power-in-dbm; + type power-dbm; type empty; } description @@ -850,7 +879,7 @@ module ietf-layer0-types { power is not known."; } - typedef decimal-5-digits { + typedef decimal-5 { type decimal64 { fraction-digits 5; } @@ -858,9 +887,9 @@ module ietf-layer0-types { "A decimal64 value with five digits."; } - typedef decimal-5-digits-or-null { + typedef decimal-5-or-null { type union { - type decimal-5-digits; + type decimal-5; type empty; } description @@ -868,27 +897,52 @@ module ietf-layer0-types { or an empty value when the value is not known."; } - typedef decimal-16-digits { + typedef psd { type decimal64 { fraction-digits 16; } + units "W/Hz"; + description + "The power spectral density (PSD). + + Typical value : 3.9 E-14, resolution 0.1nW/MHz."; + reference + "ITU-T G.9700 (07/2019): Fast access to subscriber terminals + (G.fast) - Power spectral density specification"; + } + + typedef psd-or-null { + type union { + type psd; + type empty; + } description - "A decimal64 value with sixteen digits."; + "The power spectral density (PSD), when it is known or an + empty value when the PSD is not known."; } - typedef decimal-16-digits-or-null { + typedef decimal-18 { + type decimal64 { + fraction-digits 18; + } + description + "A decimal64 value with eighteen digits."; + } + + typedef decimal-18-or-null { type union { - type decimal-5-digits; + type decimal-18; type empty; } description - "A decimal64 value with sixteen digits, when the value is + "A decimal64 value with eighteen digits, when the value is known or an empty value when the value is not known."; } /* * Groupings */ + grouping wdm-label-start-end { description "The WDM label-start or label-end used to specify DWDM and @@ -1021,8 +1075,8 @@ module ietf-layer0-types { nominal central frequency for each subcarrier channel."; reference - "ITU-T Recommendation G.694.1: Spectral grids for - WDM applications: DWDM frequency grid"; + "ITU-T G.694.1 (10/2020): Spectral grids for WDM + applications: DWDM frequency grid"; } } } @@ -1053,7 +1107,7 @@ module ietf-layer0-types { uses l0-label-range-info; container flexi-grid { when "derived-from-or-self(../grid-type, - \"flexi-grid-dwdm\")" { + \"flexi-grid-dwdm\")" { description "Applicable only when the grid type is flexi-grid-dwdm."; } @@ -1089,7 +1143,6 @@ module ietf-layer0-types { Grid Dense Wavelength Division Multiplexing (DWDM) Networks"; } - leaf max-slot-width-factor { type uint16 { range "1..max"; @@ -1102,7 +1155,6 @@ module ietf-layer0-types { description "A multiplier of the slot width granularity, indicating the maximum slot width supported by an optical port. - Maximum slot width is calculated by: Maximum slot width (GHz) = max-slot-width-factor * slot-width-granularity @@ -1187,8 +1239,8 @@ module ietf-layer0-types { nominal central frequency for each subcarrier channel."; reference - "ITU-T Recommendation G.694.1: Spectral grids for - WDM applications: DWDM frequency grid"; + "ITU-T G.694.1 (10/2020): Spectral grids for WDM + applications: DWDM frequency grid"; } } } @@ -1336,7 +1388,10 @@ module ietf-layer0-types { status deprecated; list subcarrier-flexi-n { key "flexi-n"; - uses flexi-grid-frequency-slot; + status deprecated; + uses flexi-grid-frequency-slot { + status deprecated; + } description "List of subcarrier channels for flexi-grid super channel."; @@ -1400,7 +1455,6 @@ module ietf-layer0-types { Grid Dense Wavelength Division Multiplexing (DWDM) Networks"; } - leaf max-slot-width-factor { type uint16 { range "1..max"; @@ -1477,27 +1531,21 @@ module ietf-layer0-types { } } - /* supported inverse multiplexing capabilities such as - max. OTSiG:OTSi cardinality - It is a transponder attribute not transceiver - */ - - /* leaf multiplexing-cap { - type uint32; - config false; - description "supported inverse multiplexing capabilities - such as max. OTSiG:OTSi cardinality"; - } - */ - grouping transceiver-mode { description "This grouping is intended to be used for reporting the - information of a transceiver's mode. - - The compatible-modes container shall be augmented with the - proper leafrefs when used: see for example the - transceiver-capabilities grouping below."; + information of a transceiver's mode. + + The attributes for the explicit mode shall be augmented when + used with either: + - the proper leafrefs, when explicit mode templates are used; + or, + - the explicit-mode grouping, when explicit mode templates + are not used. + + The compatible-modes container shall be augmented with the + proper leafrefs when used: see for example the + transceiver-capabilities grouping below."; choice mode { mandatory true; description @@ -1506,6 +1554,7 @@ module ietf-layer0-types { case G.698.2 { uses standard-mode; uses common-standard-organizational-mode; + uses common-all-modes; } case organizational-mode { container organizational-mode { @@ -1514,7 +1563,7 @@ module ietf-layer0-types { "The set of attributes for an organizational mode"; uses organizational-mode; uses common-standard-organizational-mode; - uses common-organizational-explicit-mode; + uses common-all-modes; } // container organizational-mode } case explicit-mode { @@ -1522,8 +1571,8 @@ module ietf-layer0-types { config false; description "The set of attributes for an explicit mode"; - uses common-explicit-mode; - uses common-organizational-explicit-mode; + // uses explicit-mode; + uses common-all-modes; container compatible-modes { description "Container for all the standard and organizational @@ -1538,7 +1587,14 @@ module ietf-layer0-types { grouping transceiver-capabilities { description "This grouping is intended to be used for reporting the - capabilities of a transceiver."; + capabilities of a transceiver. + + The attributes for the explicit mode shall be augmented when + used with either: + - the proper leafrefs, when explicit mode templates are used; + or, + - the explicit-mode grouping, when explicit mode templates + are not used."; container supported-modes { presence @@ -1566,29 +1622,29 @@ module ietf-layer0-types { leafrefs."; leaf-list supported-application-codes { type leafref { - path "../../../mode-id"; + path "../../../../supported-mode/mode-id"; } must "../../../../" + "supported-mode[mode-id=current()]/" + "standard-mode" { description "The pointer is only for application codes - supported by transceiver."; + supported by transceiver."; } description "List of pointers to the application codes - supported by the transceiver's explicit mode."; + supported by the transceiver's explicit mode."; } leaf-list supported-organizational-modes { type leafref { - path "../../../mode-id"; + path "../../../../supported-mode/mode-id"; } must "../../../../" + "supported-mode[mode-id=current()]/" + "organizational-mode" { description "The pointer is only for organizational modes - supported by transceiver."; + supported by transceiver."; } description "List of pointers to the organizational modes @@ -1643,8 +1699,7 @@ module ietf-layer0-types { leaf penalty-value { type union { - type decimal64 { - fraction-digits 2; + type decimal-2 { range "0..max"; } type empty; @@ -1659,17 +1714,17 @@ module ietf-layer0-types { } } -/* - * This grouping represent the list of attributes related to - * optical impairment limits for explicit mode - * (min OSNR, max PMD, max CD, max PDL, Q-factor limit, etc.) - * In case of standard and operational mode the attributes are - * implicit - */ + grouping explicit-mode { + description + "Attributes capabilities related to explicit transceiver's + mode. + + This grouping also contains the list of attributes related to + optical impairment limits for explicit mode (min OSNR, max PMD, + max CD, max PDL, Q-factor limit, etc.). - grouping common-explicit-mode { - description "Attributes capabilities related to - explicit mode of an optical transceiver"; + In case of standard and operational mode the attributes are + implicit."; leaf line-coding-bitrate { type identityref { base line-coding; @@ -1689,7 +1744,7 @@ module ietf-layer0-types { signal."; } leaf max-diff-group-delay { - type uint32; + type decimal-2; units "ps"; config false; description @@ -1697,8 +1752,7 @@ module ietf-layer0-types { lane"; } leaf max-chromatic-dispersion { - type decimal64 { - fraction-digits 2; + type decimal-2 { range "0..max"; } units "ps/nm"; @@ -1708,33 +1762,26 @@ module ietf-layer0-types { on the receiver"; } list cd-penalty { + key cd-value; config false; description "Optional penalty associated with a given accumulated chromatic dispersion (CD) value. - This list of pair cd and penalty values can be used to + This list of pair CD and penalty values can be used to sample the function penalty = f(CD)."; leaf cd-value { - type union { - type decimal64 { - fraction-digits 2; - range "0..max"; - } - type empty; - } + type decimal-2; units "ps/nm"; config false; mandatory true; description - "The Chromatic Dispersion (CD), when the value is known - or an empty value when the value is not known."; + "The Chromatic Dispersion (CD)."; } uses penalty-value; } leaf max-polarization-mode-dispersion { - type decimal64 { - fraction-digits 2; + type decimal-2 { range "0..max"; } units "ps"; @@ -1742,34 +1789,34 @@ module ietf-layer0-types { description "Maximum acceptable accumulated polarization mode dispersion (PMD) on the receiver"; + reference + "ITU-T G.666 (02/2011): Characteristics of polarization + mode dispersion compensators and of receivers that + compensate for polarization mode dispersion"; } list pmd-penalty { + key pmd-value; config false; description "Optional penalty associated with a given accumulated polarization mode dispersion (PMD) value. - This list of pair pmd and penalty can be used to + This list of pair PMD and penalty can be used to sample the function penalty = f(PMD)."; leaf pmd-value { - type union { - type decimal64 { - fraction-digits 2; - range "0..max"; - } - type empty; + type decimal-2 { + range "0..max"; } units "ps"; config false; mandatory true; description - "The Polarization Mode Dispersion (PMD), when the value - is known or an empty value when the value is not known."; + "The Polarization Mode Dispersion (PMD)."; } uses penalty-value; } - leaf max-polarization-dependant-loss { - type loss-in-db-or-null; + leaf max-polarization-dependent-loss { + type power-loss-or-null; config false; mandatory true; description @@ -1777,20 +1824,21 @@ module ietf-layer0-types { dependent loss (PDL) on the receiver"; } list pdl-penalty { + key pdl-value; config false; description "Optional penalty associated with a given accumulated polarization dependent loss (PDL) value. - This list of pair pdl and penalty values can be used to + This list of pair PDL and penalty values can be used to sample the function PDL = f(penalty)."; leaf pdl-value { - type loss-in-db-or-null; + type power-loss; config false; mandatory true; description "Maximum acceptable accumulated polarization dependent - loss."; + loss (PDL)."; } uses penalty-value; } @@ -1814,38 +1862,41 @@ module ietf-layer0-types { level of bit-errors post-FEC needs to be expected"; } leaf rx-ref-channel-power { - type power-in-dbm; + type power-dbm; config false; description "The channel power used as reference for defining penalties and min-OSNR"; } list rx-channel-power-penalty { + key rx-channel-power-value; config false; description "Optional penalty associated with a received power - lower than rx-ref-channel-power. - This list of pair power and penalty can be used to - sample the function penalty = f(rx-channel-power)."; + lower than rx-ref-channel-power. + + This list of pair power and penalty can be used to + sample the function penalty = f(rx-channel-power)."; leaf rx-channel-power-value { - type power-in-dbm-or-null; + type power-dbm; units "dBm"; config false; mandatory true; description - "The Received Power, when the value is known or an empty - value when the value is not known."; + "The Received Power."; } uses penalty-value; } leaf min-Q-factor { - type int32; + type decimal-2; units "dB"; config false; description "min Qfactor at FEC threshold"; } leaf available-baud-rate { - type uint32; + type decimal64 { + fraction-digits 1; + } units "Bd"; config false; description @@ -1945,8 +1996,7 @@ module ietf-layer0-types { "OIF-400ZR-01.0: Implementation Agreement 400ZR"; } leaf tx-polarization-power-difference { - type decimal-2-digits; - units "dB"; + type power-ratio; config false; description "The transmitter polarization dependent power difference @@ -1956,9 +2006,7 @@ module ietf-layer0-types { "OIF-400ZR-01.0: Implementation Agreement 400ZR"; } leaf polarization-skew { - type decimal64 { - fraction-digits 2; - } + type decimal-2; units "ps"; config false; description @@ -1967,12 +2015,12 @@ module ietf-layer0-types { reference "OIF-400ZR-01.0: Implementation Agreement 400ZR"; } - } // grouping common-explicit-mode + } // grouping explicit-mode grouping common-standard-organizational-mode { description "Common attributes used by standard and organizational - modes."; + transceiver's modes."; leaf-list line-coding-bitrate { type identityref { @@ -2015,70 +2063,69 @@ module ietf-layer0-types { } } // grouping transmitter-tuning-range - grouping common-organizational-explicit-mode { - description "Common capability attributes limit range - in case of operational mode and explicit mode. - These attributes are supported separately in - case of application codes"; + grouping common-all-modes { + description + "Common attributes used by all transceiver's modes."; -/* transmitter tuning range (f_tx-min, f_tx-max) */ uses transmitter-tuning-range; - -/* supported transmitter power range [p_tx-min, p_tx_max] */ - leaf tx-channel-power-min { - type power-in-dbm; + type power-dbm; config false; description "The minimum output power of this interface"; } leaf tx-channel-power-max { - type power-in-dbm; + type power-dbm; config false; description "The maximum output power of this interface"; } - -/* supported receiver power range [p_rx-min, p_rx_max] */ - - leaf rx-channel-power-min { - type power-in-dbm; + leaf rx-channel-power-min { + type power-dbm; config false; description "The minimum input power of this interface"; } leaf rx-channel-power-max { - type power-in-dbm; + type power-dbm; config false; description "The maximum input power of this interface"; } - leaf rx-total-power-max { - type power-in-dbm; + type power-dbm; config false; - description "Maximum rx optical power for - all the channels"; + description + "Maximum rx optical power for all the channels. + + It is applicable only to multi-channel modes."; } - } // grouping common-organizational-explicit-mode + } // grouping common-all-modes + + grouping common-transceiver-param { + description + "The common parameters of an optical transceiver, + that supplement the configured mode."; -/* This grouping represent the list of configured parameters */ -/* values independent of operational mode */ + uses common-transceiver-configured-param; + uses common-transceiver-readonly-param; + } grouping common-transceiver-configured-param { - description "Capability of an optical transceiver"; + description + "The configured parameters of an optical transceiver, + that supplement the configured mode."; leaf line-coding-bitrate { type identityref { base line-coding; } - config false; description "Bit rate/line coding of the optical tributary signal. - Reporting this attribute is optional when the configured + Support of this attribute is optional when the configured mode supports only one bit rate/line coding."; reference "ITU-T G.698.2 section 7.1.2"; } leaf tx-channel-power { - type power-in-dbm-or-null; + type power-dbm-or-null; description "The current channel transmit power, when the value is known or an empty value when the value is not known. @@ -2086,30 +2133,33 @@ module ietf-layer0-types { The empty value MUST NOT be used when this attribute is configured."; } + } // grouping for configured transceiver attributes out of mode + + grouping common-transceiver-readonly-param { + description + "The common read-only parameters of an optical transceiver, + that supplement the configured mode."; + leaf rx-channel-power { - type power-in-dbm-or-null; + type power-dbm-or-null; config false; description "The current channel received power, when the value is known or an empty value when the value is not known."; } leaf rx-total-power { - type power-in-dbm-or-null; + type power-dbm-or-null; config false; description "The current total received power, when the value is known or an empty value when the value is not known."; } - } // grouping for configured attributes out of mode + } // grouping for read-only transceiver attributes out of mode grouping l0-tunnel-attributes { description "Parameters for Layer0 (WSON or Flexi-Grid) Tunnels."; - leaf bit-stuffing { - type boolean; - description - "Bit stuffing enabled/disabled."; - } + leaf wavelength-assignment { type identityref { base wavelength-assignment; @@ -2122,6 +2172,7 @@ module ietf-layer0-types { description "This grouping defines the lower and upper bounds of a frequency range (e.g., a band). + This grouping SHOULD NOT be used to define a frequency slot, which SHOULD be defined using the n and m values instead."; leaf lower-frequency { @@ -2149,7 +2200,7 @@ module ietf-layer0-types { description "Common attribute for Layer 0 path constraints to be used by Layer 0 computation."; - leaf gsnr-margin { + leaf gsnr-extra-margin { type snr { range 0..max; } @@ -2160,7 +2211,6 @@ module ietf-layer0-types { SNR (GSNR)."; } } - grouping l0-path-properties { description "Common attribute for reporting the Layer 0 computed path diff --git a/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang deleted file mode 100644 index b54b82680..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2022-10-14.yang +++ /dev/null @@ -1,1311 +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/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2024-02-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-layer1-types@2024-02-22.yang new file mode 100644 index 000000000..5269ea60a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/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/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-nc@2023-10-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-nc@2024-07-08.yang similarity index 85% rename from experimental/ietf-extracted-YANG-modules/ietf-list-pagination-nc@2023-10-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-list-pagination-nc@2024-07-08.yang index 4fc051f93..2505d2ef1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-nc@2023-10-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-nc@2024-07-08.yang @@ -17,7 +17,7 @@ module ietf-list-pagination-nc { } import ietf-list-pagination { - prefix lp; + prefix lpg; reference "RFC XXXX: List Pagination for YANG-driven Protocols"; } @@ -33,7 +33,7 @@ module ietf-list-pagination-nc { "This module augments the , , and 'rpc' statements to support list pagination. - Copyright (c) 2021 IETF Trust and the persons identified + 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 @@ -54,7 +54,7 @@ module ietf-list-pagination-nc { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-10-23 { + revision 2024-07-08 { description "Initial revision."; reference @@ -65,15 +65,14 @@ module ietf-list-pagination-nc { description "A grouping for list pagination parameters."; container list-pagination { description "List pagination parameters."; - uses lp:where-param-grouping; - uses lp:sort-by-param-grouping; - uses lp:sort-locale-collate-param-grouping; - uses lp:direction-param-grouping; - uses lp:cursor-param-grouping; - uses lp:offset-param-grouping; - uses lp:limit-param-grouping; - uses lp:snapshot-param-grouping; - uses lp:sublist-limit-param-grouping; + uses lpg:where-param-grouping; + uses lpg:sort-by-param-grouping; + uses lpg:locale-param-grouping; + uses lpg:direction-param-grouping; + uses lpg:cursor-param-grouping; + uses lpg:offset-param-grouping; + uses lpg:limit-param-grouping; + uses lpg:sublist-limit-param-grouping; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-snapshot@2024-03-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-snapshot@2024-03-01.yang new file mode 100644 index 000000000..bf74337c8 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-list-pagination-snapshot@2024-03-01.yang @@ -0,0 +1,152 @@ +module ietf-list-pagination-snapshot { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-list-pagination-snapshot"; + prefix lpgsnap; + + import ietf-datastores { + prefix ds; + reference + "RFC 8342: Network Management Datastore Architecture (NMDA)"; + } + + import ietf-netconf { + prefix nc; + reference + "RFC 6241: Network Configuration Protocol (NETCONF)"; + } + + import ietf-netconf-nmda { + prefix ncds; + reference + "RFC 8526: NETCONF Extensions to Support the + Network Management Datastore Architecture"; + } + + import ietf-system-capabilities { + prefix sysc; + reference + "RFC 9691: YANG Modules Describing Capabilities for Systems and + Datastore Update Notifications"; + } + + import ietf-list-pagination { + prefix lpg; + reference + "draft-ietf-list-pagination: List Pagination for YANG-driven + Protocols"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG Web: https://datatracker.ietf.org/wg/netconf + WG List: NETCONF WG list "; + + description + "This module is used by servers to indicate they support + snapshot pagination on 'config false' nodes of type 'list' + and 'leaf-list'. It also defines a grouping for the snapshot + parameter. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here."; + + revision 2024-03-01 { + description + "Initial revision."; + reference + "RFC XXXX: List Pagination Snapshots for YANG-driven + Protocols"; + } + + // Identities + + identity snapshot-not-supported { + base lpg:list-pagination-error; + description + "Snapshot is not supported for the target. Either it is not a + 'config false' list or leaf-list, or it is disabled."; + } + + // Groupings + + grouping snapshot-param-grouping { + description + "This grouping may be used by protocol-specific YANG modules + to define a protocol-specific query parameter."; + leaf snapshot { + type boolean; + description + "The 'snapshot' parameter indicates that the client requests + the server to take a snapshot of the 'config false' list or + leaf-list target before paginating."; + } + } + + // Protocol-accessible nodes + + augment "/nc:get/nc:input" { + description + "Allow the 'get' operation to use the 'snapshot' query + parameter for YANG list or leaf-list that is to be + retrieved."; + uses snapshot-param-grouping; + } + + augment "/nc:get-config/nc:input" { + description + "Allow the 'get-config' operation to use the 'snapshot' query + parameter for YANG list or leaf-list that is to be + retrieved."; + uses snapshot-param-grouping; + } + + augment "/ncds:get-data/ncds:input" { + description + "Allow the 'get-data' operation to use the 'snapshot' query + parameter for YANG list or leaf-list that is to be + retrieved."; + uses snapshot-param-grouping; + } + + augment + "/sysc:system-capabilities/sysc:datastore-capabilities" + + "/sysc:per-node-capabilities" { + + // Ensure the following node is only used for the + // datastore. + when "/sysc:system-capabilities/sysc:datastore-capabilities" + + "/sysc:datastore = 'ds:operational'"; + + description + "Defines some leafs that MAY be used by the server to + describe constraints imposed of the 'where' filters and + 'sort-by' parameters used in list pagination queries."; + leaf snapshot { + type empty; + description + "Indicates that snapshots are supported for the targeted + 'config false' list or leaf-list node."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-list-pagination@2023-10-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-list-pagination@2024-07-08.yang similarity index 85% rename from experimental/ietf-extracted-YANG-modules/ietf-list-pagination@2023-10-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-list-pagination@2024-07-08.yang index c49775475..2773d6e20 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-list-pagination@2023-10-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-list-pagination@2024-07-08.yang @@ -4,6 +4,12 @@ module ietf-list-pagination { "urn:ietf:params:xml:ns:yang:ietf-list-pagination"; prefix lpg; + import ietf-datastores { + prefix ds; + reference + "RFC 8342: Network Management Datastore Architecture (NMDA)"; + } + import ietf-yang-types { prefix yang; reference @@ -19,9 +25,8 @@ module ietf-list-pagination { import ietf-system-capabilities { prefix sysc; reference - "draft-ietf-netconf-notification-capabilities: - YANG Modules describing Capabilities for - Systems and Datastore Update Notifications"; + "RFC 9196: YANG Modules Describing Capabilities for Systems and + Datastore Update Notifications"; } organization @@ -38,7 +43,7 @@ module ietf-list-pagination { which 'config false' lists have constrained 'where' and 'sort-by' parameters and how they may be used, if at all. - Copyright (c) 2022 IETF Trust and the persons identified + 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 @@ -59,7 +64,7 @@ module ietf-list-pagination { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-10-23 { + revision 2024-07-08 { description "Initial revision."; reference @@ -101,25 +106,23 @@ module ietf-list-pagination { md:annotation previous { type string; description - "This annotation contains the base64 encoded value of the prev\ -ious - cursor in the pagination."; + "This annotation contains the base64 encoded value of the + previous cursor in the pagination."; } - md:annotation sort-locale-collated { + md:annotation locale { type string; description "This annotation contains the locale used when sorting. The format is a free form string but SHOULD follow the language sub-tag format defined in RFC 5646. - An example is 'sv_SE'."; - /*reference - * "RFC 5646: Tags for identifying Languages"; - *reference - * "RFC 6365: Technology Used in Internationalization in the IE\ -TF"; - */ + An example is 'sv_SE'. + + For further details see references: + RFC 5646: Tags for identifying Languages + RFC 6365: Technology Used in Internationalization in the + IETF"; } // Identities @@ -128,7 +131,6 @@ TF"; description "Base identity for list-pagination errors."; } - identity offset-out-of-range { base list-pagination-error; description @@ -143,17 +145,10 @@ TF"; list."; } - identity snapshot-not-supported { - base list-pagination-error; - description - "Snapshot is not supported for the target. Either it is not a - 'config false' list or leaf-list, or it is disabled."; - } - identity locale-unavailable { base list-pagination-error; description - "The 'sort-locale-collate' query parameter input is not a valid + "The 'locale' query parameter input is not a valid locale or the locale is not available on the system."; } @@ -188,16 +183,15 @@ TF"; } } - grouping sort-locale-collate-param-grouping { + grouping locale-param-grouping { description "The grouping may be used by protocol-specific YANG modules to define a protocol-specific query parameter."; - leaf sort-locale-collate { + leaf locale { type string; description - "The 'sort-locale-collate' parameter indicates the locale wh\ -ich - the entries in the working result-set should be collated."; + "The 'locale' parameter indicates the locale which the + entries in the working result-set should be collated."; } } @@ -209,8 +203,8 @@ ich type union { type string { // An RFC 7950 'descendant-schema-nodeid'. - pattern '([0-9a-fA-F]*:)?[0-9a-fA-F]*' - + '(/([0-9a-fA-F]*:)?[0-9a-fA-F]*)*'; + pattern '([0-9a-zA-z._-]*:)?[0-9a-zA-Z._-]*' + + '(/([0-9a-zA-Z._-]*:)?[0-9a-zA-Z._-]*)*'; } type enumeration { enum "none" { @@ -258,19 +252,6 @@ ich } } - grouping snapshot-param-grouping { - description - "This grouping may be used by protocol-specific YANG modules - to define a protocol-specific query parameter."; - leaf snapshot { - type boolean; - description - "The 'snapshot' parameter indicates that the client requests - the server to take a snapshot of the 'config false' list or - leaf-list target before paginating."; - } - } - grouping cursor-param-grouping { description "This grouping may be used by protocol-specific YANG modules @@ -362,13 +343,20 @@ ich // Protocol-accessible nodes - augment // FIXME: ensure datastore == + augment "/sysc:system-capabilities/sysc:datastore-capabilities" + "/sysc:per-node-capabilities" { + + // Ensure the following nodes are only used for the + // datastore. + when "/sysc:system-capabilities/sysc:datastore-capabilities" + + "/sysc:datastore = 'ds:operational'"; + description "Defines some leafs that MAY be used by the server to describe constraints imposed of the 'where' filters and 'sort-by' parameters used in list pagination queries."; + leaf constrained { type empty; description @@ -388,17 +376,11 @@ ich 'indexed', then it MUST NOT be used in 'where' filters or 'sort-by' parameters."; } - leaf snapshot { - type empty; - description - "Indicates that snapshots are supported for the targeted - 'config false' list or leaf-list node."; - } leaf cursor-supported { type empty; description - "Indicates that the targeted list node supports the 'cursor' - parameter."; + "Indicates that the targeted list node supports the + 'cursor' parameter."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-microwave-radio-link@2023-10-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-microwave-radio-link@2024-03-03.yang similarity index 84% rename from experimental/ietf-extracted-YANG-modules/ietf-microwave-radio-link@2023-10-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-microwave-radio-link@2024-03-03.yang index 434d8488d..b882762a2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-microwave-radio-link@2023-10-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-microwave-radio-link@2024-03-03.yang @@ -42,7 +42,7 @@ module ietf-microwave-radio-link { "This is a module for the entities in a generic microwave system. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -54,25 +54,30 @@ module ietf-microwave-radio-link { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; -// RFC Ed.: replace XXXX with actual RFC number and remove -// this note -// replace the revision date with the module publication date -// the format is (year-month-day) + // RFC Ed.: replace XXXX with actual RFC number and remove + // this note + // replace the revision date with the module publication date + // the format is (year-month-day) + revision 2024-03-03 { + description + "pretty printing"; + reference + "RFC XXX: A YANG Data Model for Microwave Radio Link"; + } revision 2023-10-06 { description "To add the summary of the changes in this revision: - - more updates related to git Issue #13 and #16. + - more updates related to git Issue #13 and #16. - - git Issue #13 and #16 and discussion updates for acm-profile + - git Issue #13 and #16 and discussion updates for acm-profile - - Updated with proposal for BCA."; + - Updated with proposal for BCA."; reference "RFC XXX: A YANG Data Model for Microwave Radio Link"; } - revision 2019-06-19 { description "Initial revision."; @@ -102,6 +107,7 @@ module ietf-microwave-radio-link { description "Indicates that the device supports TDM."; } + /* * Typedefs */ @@ -120,36 +126,36 @@ module ietf-microwave-radio-link { "acm-profile"; leaf modulation-scheme { type uint8; - description - "It is the logarithm base two of the number of points in the - transmitted constellation. E.G.: value would be 2 for 4QAM, - 10 fo 1024QAM, and 12 for 4096QAM."; + description + "It is the logarithm base two of the number of points in the + transmitted constellation. E.G.: value would be 2 for + 4QAM, 10 fo 1024QAM, and 12 for 4096QAM."; } leaf nominal-tx-capacity { type uint32; - description - "The nominal radio link capacity associated to this - acm-profile."; + description + "The nominal radio link capacity associated to this + acm-profile."; } leaf support-as-fixed-modulation { type boolean; - description - "True when the profile can be used in single - coding-modulation-mode."; + description + "True when the profile can be used in single + coding-modulation-mode."; } leaf max-tx-power { type power; - description - "The maximum transmitted power when the carrier termination is - operating this acm-profile. Used to configure transmitted - power."; + description + "The maximum transmitted power when the carrier termination + is operating this acm-profile. Used to configure + transmitted power."; } leaf min-tx-power { type power; - description - "The minimum transmitted power when the carrier termination is - operating this acm-profile. Used to configure transmitted - power."; + description + "The minimum transmitted power when the carrier termination + is operating this acm-profile. Used to configure + transmitted power."; } } @@ -739,124 +745,121 @@ module ietf-microwave-radio-link { "Maximum coding-modulation possible to use."; } list acm-profile-list { - key "profile-channel-separation-id " + - "profile-coding-modulation-id"; + key "profile-channel-separation-id " + + "profile-coding-modulation-id"; description "A list of acm-profile. Each acm-profile is identified by a channel-separation and - coding-modulation values as supported by the carrier - termination and defines the parameter's values of each - transmission acm profile. + coding-modulation values as supported by the carrier + termination and defines the parameter's values of each + transmission acm profile. Basically, the list contains all acm profiles supported by - the device. Profiles are organized into profile chains for - each different channel separation value available. The - chains are formed by the lower-acm-profile-ptr and - upper-acm-profile-ptr pointers. The sequence in the list - reflects the sequence of profiles that are operated by the - device according to the fading conditions, from the clear sky - down to the persistent rain, and vice versa. The - channel-separation and selected-cm configuration parameters - (or the selected-min-acm/selected-max-acm pair) must address - one of the profiles in the list."; - + the device. Profiles are organized into profile chains + for each different channel separation value available. The + chains are formed by the lower-acm-profile-ptr and + upper-acm-profile-ptr pointers. The sequence in the list + reflects the sequence of profiles that are operated by the + device according to the fading conditions, from the clear + sky down to the persistent rain, and vice versa. The + channel-separation and selected-cm configuration + parameters (or the selected-min-acm/selected-max-acm + pair) must address one of the profiles in the list."; leaf profile-channel-separation-id { type uint32; - description - "Uniquely identifies the acm profile (together with - 'profile-coding-modulation-id'). It could be used to allow - the configuration of the channel-separation value."; + description + "Uniquely identifies the acm profile (together with + 'profile-coding-modulation-id'). It could be used to + allow the configuration of the channel-separation + value."; } leaf profile-coding-modulation-id { type identityref { base mw-types:coding-modulation; } - description + description "Uniquely identifies the acm profile (together with - 'profile-channel-separation-id'). It could be used to allow - the configuration of the selected-cm (single mode) or - selected-min-acm/selected-max-acm (adaptive mode)."; + 'profile-channel-separation-id'). It could be used to + allow the configuration of the selected-cm (single + mode) or selected-min-acm/selected-max-acm (adaptive + mode)."; } - uses acm-profile; - container lower-acm-profile-ptr { - description - "Together with the upper-acm-profile-ptr parameters it - creates a chain of acm profiles related to a specific - channel separation value. Specifically it references the - next lower acm-profile, while upper-acm-profile-ptr - references the next higher profile. The lowest profile in - the chain, shall not instantiate this container. The - acm-profile-list can contain multiple chains related to - different channel separation values supported by the - device."; - + description + "Together with the upper-acm-profile-ptr parameters it + creates a chain of acm profiles related to a specific + channel separation value. Specifically it references + the next lower acm-profile, while upper-acm-profile-ptr + references the next higher profile. The lowest profile + in the chain, shall not instantiate this container. The + acm-profile-list can contain multiple chains related to + different channel separation values supported by the + device."; leaf profile-coding-modulation-id-ref { type leafref { path "../../../acm-profile-list" + "/profile-coding-modulation-id"; } - description + description "A reference to an acm-profile to give an order in - acm-profile-list. This is the reference to the - 'profile-coding-modulation-id' key of the next lower - acm-profile in the list respect to the current one."; + acm-profile-list. This is the reference to the + 'profile-coding-modulation-id' key of the next lower + acm-profile in the list respect to the current one."; } leaf profile-channel-separation-id-ref { type leafref { - path "../../.." - + "/acm-profile-list[profile-coding-modulation-id=" - + "current()/../profile-coding-modulation-id-ref]" - + "/profile-channel-separation-id"; + path + "../../.." + + "/acm-profile-list[profile-coding-modulation-id=" + + "current()/../profile-coding-modulation-id-ref]" + + "/profile-channel-separation-id"; } - description + description "A reference to an acm-profile to give an order in - acm-profile-list. This is the reference to the - 'profile-channel-separation-id' key of the next lower - acm-profile in the list respect to the current one."; + acm-profile-list. This is the reference to the + 'profile-channel-separation-id' key of the next lower + acm-profile in the list respect to the current one."; } } - container upper-acm-profile-ptr { - description - "Together with the lower-acm-profile-ptr parameters it - creates a chain of acm profiles related to a specific - channel separation value. Specifically it references the - next higher acm-profile, while lower-acm-profile-ptr - references the next lower profile. The highest profile in - the chain, shall not instantiate this container. The - acm-profile-list can contain multiple chains related to - different channel separation values supported by the - device."; - + description + "Together with the lower-acm-profile-ptr parameters it + creates a chain of acm profiles related to a specific + channel separation value. Specifically it references + the next higher acm-profile, while lower-acm-profile-ptr + references the next lower profile. The highest profile + in the chain, shall not instantiate this container. The + acm-profile-list can contain multiple chains related to + different channel separation values supported by the + device."; leaf profile-coding-modulation-id-ref { type leafref { path "../../../acm-profile-list" + "/profile-coding-modulation-id"; } - description + description "A reference to an acm-profile to give an order in - acm-profile-list. This is the reference to the - 'profile-coding-modulation-id' key of the next higher - acm-profile in the list respect to the current one."; + acm-profile-list. This is the reference to the + 'profile-coding-modulation-id' key of the next higher + acm-profile in the list respect to the current one."; } leaf profile-channel-separation-id-ref { type leafref { - path "../../.." - + "/acm-profile-list[profile-coding-modulation-id=" - + "current()/../profile-coding-modulation-id-ref]" - + "/profile-channel-separation-id"; + path + "../../.." + + "/acm-profile-list[profile-coding-modulation-id=" + + "current()/../profile-coding-modulation-id-ref]" + + "/profile-channel-separation-id"; } - description - "A reference to an acm-profile to give an order in - acm-profile-list. This is the reference to the - 'profile-channel-separation-id' key of the next higher - acm-profile in the list respect to the current one."; + description + "A reference to an acm-profile to give an order in + acm-profile-list. This is the reference to the + 'profile-channel-separation-id' key of the next higher + acm-profile in the list respect to the current one."; } } } } - container error-performance-statistics { config false; description @@ -915,7 +918,6 @@ module ietf-microwave-radio-link { "ITU-T G.826"; } } - container radio-performance-statistics { config false; description @@ -1014,6 +1016,7 @@ module ietf-microwave-radio-link { /* * XPIC & MIMO groups - Configuration data nodes */ + container xpic-pairs { if-feature "xpic"; description @@ -1053,7 +1056,6 @@ module ietf-microwave-radio-link { } } } - container mimo-groups { if-feature "mimo"; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-microwave-topology@2023-10-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-microwave-topology@2024-02-27.yang similarity index 63% rename from experimental/ietf-extracted-YANG-modules/ietf-microwave-topology@2023-10-19.yang rename to experimental/ietf-extracted-YANG-modules/ietf-microwave-topology@2024-02-27.yang index 737673ffb..0a823de7b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-microwave-topology@2023-10-19.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-microwave-topology@2024-02-27.yang @@ -1,90 +1,77 @@ module ietf-microwave-topology { - yang-version "1.1"; - namespace - "urn:ietf:params:xml:ns:yang:ietf-microwave-topology"; - - prefix "mwtopo"; + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-microwave-topology"; + prefix mwt; import ietf-network { - prefix "nw"; - reference "RFC 8345: A YANG Data Model for Network Topologies"; + 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"; + 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"; + prefix tet; + reference + "RFC 8795: YANG Data Model for Traffic Engineering + (TE) Topologies"; } - import ietf-microwave-types { prefix mw-types; - reference "RFC 8561"; + reference + "RFC 8561"; } organization "Internet Engineering Task Force (IETF) CCAMP WG"; contact - "WG Web: - WG List: + "WG Web: + WG List: - Editor: Jonas Ahlberg - - Editor: Scott Mansfield - - Editor: Min Ye - - Editor: Italo Busi - - Editor: Xi Li - - Editor: Daniela Spreafico - + Editor: Jonas Ahlberg + + Editor: Scott Mansfield + + Editor: Min Ye + + Editor: Italo Busi + + Editor: Xi Li + + Editor: Daniela Spreafico + "; - description "This is a module for microwave topology. - 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."; + Copyright (c) 2024 IETF Trust and the persons + identified as authors of the code. All rights reserved. - revision 2023-10-19 { - description - "last call comment resolutions."; - reference ""; - } + 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). - revision 2023-07-20 { - description - "Multi-layer fix, and a few editorials"; - reference ""; - } + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; - revision 2023-02-15 { + revision 2024-02-27 { description - "Draft to be used as a basis for the continued microwave - team discussions"; - reference ""; + "Last call comment resolutions."; + reference + ""; } grouping rlt-mode { description "This grouping provides a flexible definition of number - of bonded carriers and protecting carriers of a radio - link."; + of bonded carriers and protecting carriers of a radio + link."; leaf num-bonded-carriers { type uint32; mandatory true; @@ -100,20 +87,22 @@ module ietf-microwave-topology { } grouping microwave-radio-link-attributes { - description "Grouping used for attributes describing a microwave - radio link."; + description + "Grouping used for attributes describing a microwave + radio link."; container rlt-mode { description "This grouping provides a flexible definition of number - of bonded carriers and protecting carriers of a radio - link."; + of bonded carriers and protecting carriers of a radio + link."; uses rlt-mode; } } grouping microwave-carrier-attributes { - description "Grouping used for attributes describing a microwave - carrier."; + description + "Grouping used for attributes describing a microwave + carrier."; leaf tx-frequency { type uint32; units "kHz"; @@ -185,7 +174,8 @@ module ietf-microwave-topology { } grouping microwave-bandwidth { - description "Grouping used for microwave bandwidth."; + description + "Grouping used for microwave bandwidth."; leaf mw-bandwidth { type uint64; units "bits/seconds"; @@ -196,20 +186,21 @@ module ietf-microwave-topology { } augment "/nw:networks/nw:network/nw:network-types/" - + "tet:te-topology" { + + "tet:te-topology" { description "Augment network types to define a microwave network topology type."; container mw-topology { presence "Indicates a topology type of microwave."; - description "Microwave topology type"; + description + "Microwave topology type"; } } augment "/nw:networks/nw:network/nw:node/tet:te" - + "/tet:te-node-attributes" { - when "/nw:networks/nw:network/nw:network-types" - + "/tet:te-topology/mwtopo:mw-topology" { + + "/tet:te-node-attributes" { + when '../../../nw:network-types' + + '/tet:te-topology/mwt:mw-topology' { description "Augmentation parameters apply only for networks with a microwave network topology type."; @@ -218,14 +209,15 @@ module ietf-microwave-topology { "Augment network node to indicate a microwave node."; container mw-node { presence "Indicates a microwave node."; - description "Microwave node"; + description + "Microwave node"; } } augment "/nw:networks/nw:network/nw:node/nt:termination-point/" - + "tet:te" { + + "tet:te" { when '../../../nw:network-types/tet:te-topology/' - + 'mwtopo:mw-topology' { + + 'mwt:mw-topology' { description "Augmentation parameters apply only for networks with a microwave network topology type."; @@ -234,13 +226,14 @@ module ietf-microwave-topology { "Augmentation to add microwave technology specific characteristics to a termination point."; container mw-tp { - presence - "Denotes a microwave termination point."; - description "Specification of type of termination point."; + presence "Denotes a microwave termination point."; + description + "Specification of type of termination point."; choice mw-tp-option { - description "Selection of type of termination point."; + description + "Selection of type of termination point."; case microwave-rltp { - container "microwave-rltp" { + container microwave-rltp { presence "Denotes a microwave radio link termination point. It corresponds to a microwave RLT interface as @@ -251,11 +244,10 @@ module ietf-microwave-topology { } } case microwave-ctp { - container "microwave-ctp" { - presence - "Denotes a microwave carrier termination point. - It corresponds to a microwave CT interface as - defined in RFC 8561."; + container microwave-ctp { + presence "Denotes a microwave carrier termination point. + It corresponds to a microwave CT interface as + defined in RFC 8561."; description "Denotes and describes a microwave carrier termination point."; @@ -266,9 +258,9 @@ module ietf-microwave-topology { } augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes" { + + "tet:te-link-attributes" { when '../../../nw:network-types/tet:te-topology/' - + 'mwtopo:mw-topology' { + + 'mwt:mw-topology' { description "Augmentation parameters apply only for networks with a microwave network topology type."; @@ -278,24 +270,26 @@ module ietf-microwave-topology { characteristics to a link."; container mw-link { presence "This indicates a microwave link"; - description "Specification of type of link."; + description + "Specification of type of link."; choice mw-link-option { mandatory true; - description "Selection of type of link."; + description + "Selection of type of link."; case microwave-radio-link { - container "microwave-radio-link" { - presence - "Denotes a microwave radio link"; - uses microwave-radio-link-attributes; + container microwave-radio-link { + presence "Denotes a microwave radio link"; description "Denotes and describes a microwave radio link"; + uses microwave-radio-link-attributes; } } case microwave-carrier { - container "microwave-carrier" { + container microwave-carrier { presence "Denotes a microwave carrier"; + description + "Denotes and describes a microwave carrier"; uses microwave-carrier-attributes; - description "Denotes and describes a microwave carrier"; } } } @@ -303,17 +297,17 @@ module ietf-microwave-topology { } augment "/nw:networks/nw:network/nt:link/tet:te/" - + "tet:te-link-attributes/" - + "tet:max-link-bandwidth/" - + "tet:te-bandwidth" { + + "tet:te-link-attributes/" + + "tet:max-link-bandwidth/" + + "tet:te-bandwidth" { when '../../../../../nw:network-types/tet:te-topology/' - + 'mwtopo:mw-topology' { + + 'mwt:mw-topology' { description "Augmentation parameters apply only for networks with a microwave network topology type."; } description "Augmentation for TE bandwidth."; - uses microwave-bandwidth; + uses microwave-bandwidth; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-microwave-types@2023-10-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-microwave-types@2024-03-03.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-microwave-types@2023-10-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-microwave-types@2024-03-03.yang index 68de7cef8..dcdb7317b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-microwave-types@2023-10-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-microwave-types@2024-03-03.yang @@ -18,7 +18,7 @@ module ietf-microwave-types { "This module contains a collection of YANG data types considered generally useful for microwave interfaces. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -31,25 +31,28 @@ module ietf-microwave-types { This version of this YANG module is part of RFC 8561; see the RFC itself for full legal notices."; -// RFC Ed.: replace XXXX with actual RFC number and remove -// this note - -// replace the revision date with the module publication date -// the format is (year-month-day) + // RFC Ed.: replace XXXX with actual RFC number and remove + // this note + // replace the revision date with the module publication date + // the format is (year-month-day) + revision 2024-03-03 { + description + "pretty printing"; + reference + "RFC XXX: A YANG Data Model for Microwave Radio Link"; + } revision 2023-10-06 { description "To add the summary of the changes in this revision: + - Changed name for 8PSK. - - Changed name for 8PSK. - - - Updated for 8PSK + - Updated for 8PSK - - Updated with proposal for BCA."; + - Updated with proposal for BCA."; reference "RFC XXX: A YANG Data Model for Microwave Radio Link"; } - revision 2019-06-19 { description "Initial revision."; @@ -360,8 +363,8 @@ module ietf-microwave-types { grouping rlt-mode { description "This grouping provides a flexible definition of number - of bonded carriers and protecting carriers of a radio - link."; + of bonded carriers and protecting carriers of a radio + link."; leaf num-bonded-carriers { type uint32; mandatory true; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp-extended@2021-11-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp-extended@2021-11-11.yang index 43badbfb3..35b012278 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp-extended@2021-11-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp-extended@2021-11-11.yang @@ -56,9 +56,6 @@ module ietf-mpls-mldp-extended { Editor: Kamran Raza - Editor: Sowmya Krishnaswamy - - Editor: Xufeng Liu diff --git a/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp@2021-11-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp@2021-11-11.yang index 510f37d73..049437598 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp@2021-11-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-mpls-mldp@2021-11-11.yang @@ -43,9 +43,6 @@ module ietf-mpls-mldp { Editor: Kamran Raza - Editor: Sowmya Krishnaswamy - - Editor: Xufeng Liu diff --git a/experimental/ietf-extracted-YANG-modules/ietf-mpls-msd@2023-10-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-mpls-msd@2024-07-05.yang similarity index 62% rename from experimental/ietf-extracted-YANG-modules/ietf-mpls-msd@2023-10-22.yang rename to experimental/ietf-extracted-YANG-modules/ietf-mpls-msd@2024-07-05.yang index cafbc77e4..9396b68c2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-mpls-msd@2023-10-22.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-mpls-msd@2024-07-05.yang @@ -9,20 +9,17 @@ module ietf-mpls-msd { "RFC 8349: A YANG Data Model for Routing Management (NMDA Version)"; } - import ietf-mpls { prefix mpls; reference "RFC 8960: A YANG Data Model for MPLS Base"; } - import iana-msd-types { prefix iana-msd-types; } organization "IETF Multiprotocol Label Switching (MPLS) Working Group"; - contact "WG Web: WG List: @@ -44,7 +41,7 @@ module ietf-mpls-msd { This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -55,48 +52,49 @@ module ietf-mpls-msd { (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. + 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."; - - reference "RFC XXXX: A YANG Data Model for MPLS MSD."; - - revision 2023-10-22 { + revision 2024-07-05 { description "Initial Version"; reference - "RFC XXXX: A YANG Data Model for MPLS MSD."; + "RFC XXXX: YANG Data Model for Maximum SID Depth Types and + MPLS Maximum SID Depth"; } + grouping msd-type-value { + description + "Grouping for MSD type and value."; + leaf msd-type { + type identityref { + base iana-msd-types:msd-base-mpls; + } + description + "MSD types. The MSD type is defined in IANA IGP + MSD-Types registry."; + } + leaf msd-value { + type uint8; + description + "MSD value, in the range of 0-255. 0 represents the lack + of ability to support a SID stack of any depth."; + } + } augment "/rt:routing/mpls:mpls" { description "This module augments MPLS data model (RFC 8960) with node MSD."; - container node-msd { + container node-msds { config false; description "Maximum SID Depth (MSD) of a node."; - list node-msds { - leaf msd-type { - type identityref { - base iana-msd-types:msd-base-mpls; - } - description - "MSD types"; - } - leaf msd-value { - type uint8; - description - "MSD value, in the range of 0-255."; - } + list node-msd { + key "msd-type"; + uses msd-type-value; description - "List of different types of MSDs of the node. A type of - Node MSD is the smallest same type link MSD supported by - the node."; + "List of different types of node MSDs. For the same + type, the value of node MSD is the smallest among link MSD + values."; } } } @@ -105,23 +103,13 @@ module ietf-mpls-msd { description "This module augments MPLS data model (RFC 8960) with link MSD."; - container link-msd { + container link-msds { config false; description "Maximum SID Depth (MSD) of an interface."; - list link-msds { - leaf msd-type { - type identityref { - base iana-msd-types:msd-base-mpls; - } - description - "MSD type"; - } - leaf msd-value { - type uint8; - description - "MSD value, in the range of 0-255."; - } + list link-msd { + key "msd-type"; + uses msd-type-value; description "List of different types of MSDs on the link."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-mpls-static@2019-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-mpls-static@2024-03-01.yang similarity index 95% rename from experimental/ietf-extracted-YANG-modules/ietf-mpls-static@2019-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-mpls-static@2024-03-01.yang index a12ecd165..9a7647af0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-mpls-static@2019-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-mpls-static@2024-03-01.yang @@ -5,8 +5,9 @@ module ietf-mpls-static { import ietf-mpls { prefix "mpls"; - reference "draft-ietf-mpls-base-yang: MPLS Base YANG Data Model"; + reference "RFC8960: MPLS Base YANG Data Model"; } + import ietf-routing { prefix "rt"; reference "RFC8349: A YANG Data Model for Routing Management"; @@ -35,7 +36,7 @@ module ietf-mpls-static { WG List: Editor: Tarek Saad - + Editor: Rakesh Gandhi @@ -72,8 +73,7 @@ module ietf-mpls-static { // RFC Ed.: update the date below with the date of RFC publication // and remove this note. - - revision "2019-09-12" { + revision "2024-03-01" { description "Latest revision of MPLS Static LSP YANG module"; reference "RFC XXXX: A YANG Data Model for MPLS Static LSPs"; @@ -171,7 +171,8 @@ module ietf-mpls-static { leaf operation { type mpls:mpls-operations-type; description - "The MPLS operation to be executed on the incoming packet"; + "The MPLS operation to be executed on the incoming + packet"; } uses in-segment; uses out-segment; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-mud-tls@2022-10-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-mud-tls@2022-10-10.yang index ae16c780b..0563fa262 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-mud-tls@2022-10-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-mud-tls@2022-10-10.yang @@ -17,13 +17,12 @@ module ietf-mud-tls { Author: Konda, Tirumaleswar Reddy kondtir@gmail.com - "; description "Extension to a MUD module to indicate (D)TLS profile support. - Copyright (c) 2020 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or diff --git a/experimental/ietf-extracted-YANG-modules/ietf-nd@2024-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-nd@2024-06-27.yang new file mode 100644 index 000000000..a210357b5 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-nd@2024-06-27.yang @@ -0,0 +1,249 @@ +module ietf-nd { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-nd"; + prefix v6nd; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-interfaces { + prefix if; + reference + "RFC 8343: A Yang Data Model for Interface Management"; + } + import ietf-ip { + prefix ip; + reference + "RFC 8344: A Yang Data Model for IP Management"; + } + + organization + "IETF Routing Area Working Group (rtgwg)"; + contact + "WG Web: + WG List: + + Author: Fan Zhang + + Author: Yongqing Zhu + + Author: Bo Wu + + Author: Jiayuan Hu + "; + + description + "This YANG module defines a YANG data model to configure and + manage IPv6 address resolution based on IPv6 Neighbor + Discovery (ND) protocol and other related functions, including + proxy Neighbor Advertisement, Neighbor Unreachability + Detection (NUD), and Duplicate Address Detection (DAD). + + The model is based on YANG 1.1 as defined in RFC 7950 and + conforms to Network Management Datastore Architecture (NMDA) + as defined in RFC 8342. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + RFC4862: IPv6 Stateless Address Autoconfiguration"; + + revision 2024-06-27 { + description + "Init revision"; + reference + "RFC XXXX: YANG Data Model for IPv6 Address Resolution"; + } + + /* Data nodes */ + container nd { + description + "Global parameters for IPv6 address resolution based on IPv6 + ND"; + leaf stale-timeout { + type uint32; + units "second"; + description + "The global timeout for Neighbor Cache entry in the STALE + state."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 5.3"; + } + } + + augment "/if:interfaces/if:interface/ip:ipv6" { + description + "Augments interface configuration and state data with + parameters of IPv6 address resolution."; + container nd { + description + "Parameters of IPv6 address resolution."; + leaf dynamic-discovery { + type boolean; + default "true"; + description + "Controls whether dynamic link-layer address resolution + for IPv6 on the interface is enabled or disabled. + true - dynamic link-layer address resolution based on + IPv6 ND is enabled, + false - dynamic link-layer address resolution based on + IPv6 ND is disabled."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 7.2"; + } + leaf nud { + type boolean; + default "true"; + description + "Controls whether Neighbor Unreachability Detection (NUD) + on the interface is enabled or disabled. + true - NUD is enabled, + false - NUD is disabled."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 7.3"; + } + leaf reachable-time { + type uint32 { + range "0..3600000"; + } + units "millisecond"; + description + "The time to confirm a neighbor's reachability for NUD."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + - ReachableTime"; + } + leaf ns-interval { + type uint32; + units "milliseconds"; + description + "The interval of retransmitting Neighbor Solicitations to a + neighbor for address resolution, NUD, or DAD."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 7.3.3"; + } + leaf stale-timeout { + type uint32; + units "second"; + description + "The timeout for Neighbor Cache entry in the STALE state on + the interface."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 5.3"; + } + + container proxy-na { + description + "Parameters of proxy Neighbor Advertisements."; + leaf inter-vlan-proxy { + type boolean; + default "false"; + description + "Controls whether the router proxies for hosts in the + same subnet with different VLANs"; + } + leaf all-proxy { + type boolean; + default "false"; + description + "Controls whether the router proxies for all hosts, + that is, responds unconditionally to Neighbor + Solicitation with its own Neighbor Advertisement."; + } + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 7.2.8"; + } + + container statistics { + config false; + description + "A collection of interface-related statistics about IPv6 + ND messages."; + + leaf in-ns-pkts { + type yang:counter32; + description + "The number of received Neighbor Solicitation packets."; + } + leaf in-na-pkts { + type yang:counter32; + description + "The number of received Neighbor Advertisement packets."; + } + leaf in-rs-pkts { + type yang:counter32; + description + "The number of received Router Solicitation packets."; + } + leaf in-ra-pkts { + type yang:counter32; + description + "The number of received Router Advertisement packets."; + } + leaf out-ns-pkts { + type yang:counter32; + description + "The number of sent Neighbor Solicitation packets."; + } + leaf out-na-pkts { + type yang:counter32; + description + "The number of sent Neighbor Advertisement packets."; + } + leaf out-rs-pkts { + type yang:counter32; + description + "The number of sent Router Solicitation packets."; + } + leaf out-ra-pkts { + type yang:counter32; + description + "The number of sent Router Advertisement packets."; + } + } + } + } + + augment "/if:interfaces/if:interface/ip:ipv6/ip:neighbor" { + description + "Augments IPv6 neighbor list with parameters of IPv6 address + resolution based on IPv6 ND."; + leaf age { + type uint32; + units "milliseconds"; + config false; + description + "The time that has passed since receipt of the last + reachability confirmation for the neighbor."; + reference + "RFC4861: Neighbor Discovery for IP version 6 (IPv6) + Section 5.1"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-03-16.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-03-16.yang index 08027a281..293e14ffa 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-03-16.yang @@ -45,7 +45,7 @@ module ietf-netconf-client { "This module contains a collection of YANG definitions for configuring NETCONF clients. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -66,7 +66,7 @@ module ietf-netconf-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -139,7 +139,7 @@ module ietf-netconf-client { grouping netconf-client-initiate-stack-grouping { description "A reusable grouping for configuring a NETCONF client - 'initiate' protocol stack for a single connection."; + 'initiate' protocol stack for a single outbound connection."; choice transport { mandatory true; description @@ -148,12 +148,12 @@ module ietf-netconf-client { if-feature "ssh-initiate"; container ssh { description - "Specifies IP and SSH specific configuration + "Specifies TCP, SSH, and NETCONF configuration for the connection."; container tcp-client-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level client parameters to initiate + a NETCONF over SSH connection."; uses tcpc:tcp-client-grouping { refine "remote-port" { default "830"; @@ -167,18 +167,14 @@ module ietf-netconf-client { } container ssh-client-parameters { description - "A wrapper around the SSH client parameters to - avoid name collisions."; + "SSH-level client parameters to initiate + a NETCONF over SSH connection."; uses sshc:ssh-client-grouping; } container netconf-client-parameters { description - "A wrapper around the NETCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; + "NETCONF-level client parameters to initiate + a NETCONF over SSH connection."; uses ncc:netconf-client-grouping; } } @@ -187,12 +183,12 @@ module ietf-netconf-client { if-feature "tls-initiate"; container tls { description - "Specifies IP and TLS specific configuration + "Specifies TCP, TLS, and NETCONF configuration for the connection."; container tcp-client-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level client parameters to initiate + a NETCONF over TLS connection."; uses tcpc:tcp-client-grouping { refine "remote-port" { default "6513"; @@ -211,18 +207,14 @@ module ietf-netconf-client { authentication credentials."; } description - "A wrapper around the TLS client parameters - to avoid name collisions."; + "TLS-level client parameters to initiate + a NETCONF over TLS connection."; uses tlsc:tls-client-grouping; } container netconf-client-parameters { description - "A wrapper around the NETCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; + "NETCONF-level client parameters to initiate + a NETCONF over TLS connection."; uses ncc:netconf-client-grouping; } } @@ -233,7 +225,7 @@ module ietf-netconf-client { grouping netconf-client-listen-stack-grouping { description "A reusable grouping for configuring a NETCONF client - 'listen' protocol stack for a single connection. The + 'listen' protocol stack for listening on a single port. The 'listen' stack supports call home connections, as described in RFC 8071"; reference @@ -246,12 +238,12 @@ module ietf-netconf-client { if-feature "ssh-listen"; container ssh { description - "SSH-specific listening configuration for inbound - connections."; + "TCP, SSH, and NETCONF configuration to listen + for NETCONF over SSH Call Home connections."; container tcp-server-parameters { description - "A wrapper around the TCP server parameters - to avoid name collisions."; + "TCP-level server parameters to listen for + NETCONF over SSH Call Home connections."; uses tcps:tcp-server-grouping { refine "local-port" { default "4334"; @@ -264,18 +256,14 @@ module ietf-netconf-client { } container ssh-client-parameters { description - "A wrapper around the SSH client parameters - to avoid name collisions."; + "SSH-level client parameters to listen for + NETCONF over SSH Call Home connections."; uses sshc:ssh-client-grouping; } container netconf-client-parameters { description - "A wrapper around the NETCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; + "NETCONF-level client parameters to listen for + NETCONF over SSH Call Home connections."; uses ncc:netconf-client-grouping; } } @@ -284,12 +272,12 @@ module ietf-netconf-client { if-feature "tls-listen"; container tls { description - "TLS-specific listening configuration for inbound - connections."; + "TCP, TLS, and NETCONF configuration to listen + for NETCONF over TLS Call Home connections."; container tcp-server-parameters { description - "A wrapper around the TCP server parameters - to avoid name collisions."; + "TCP-level server parameters to listen for + NETCONF over TLS Call Home connections."; uses tcps:tcp-server-grouping { refine "local-port" { default "4335"; @@ -307,18 +295,14 @@ module ietf-netconf-client { authentication credentials."; } description - "A wrapper around the TLS client parameters - to avoid name collisions."; + "TLS-level client parameters to listen for + NETCONF over TLS Call Home connections."; uses tlsc:tls-client-grouping; } container netconf-client-parameters { description - "A wrapper around the NETCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; + "NETCONF-level client parameters to listen for + NETCONF over TLS Call Home connections."; uses ncc:netconf-client-grouping; } } @@ -544,18 +528,22 @@ module ietf-netconf-client { number of seconds. If set to zero, then the server will never drop a session because it is idle."; } - list endpoint { - key "name"; - min-elements 1; + container endpoints { description - "List of endpoints to listen for NETCONF connections."; - leaf name { - type string; + "Container for a list of endpoints."; + list endpoint { + key "name"; + min-elements 1; description - "An arbitrary name for the NETCONF listen endpoint."; + "List of endpoints to listen for NETCONF connections."; + leaf name { + type string; + description + "An arbitrary name for the NETCONF listen endpoint."; + } + uses netconf-client-listen-stack-grouping; } - uses netconf-client-listen-stack-grouping; - } // endpoint + } } // listen } // netconf-client-app-grouping diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-otlp-context@2023-07-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-otlp-context@2023-07-01.yang index f6d6ed5a6..24a8e4427 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-otlp-context@2023-07-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-otlp-context@2023-07-01.yang @@ -22,7 +22,7 @@ module ietf-netconf-otlp-context { protocol to the W3C trace-context document: https://www.w3.org/TR/2021/REC-trace-context-1-20211123 - Copyright (c) IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -40,7 +40,8 @@ module ietf-netconf-otlp-context { NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here."; + they appear in all capitals, as shown here. + "; revision 2023-07-01 { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-resolve-system@2023-11-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-resolve-system@2024-06-18.yang similarity index 62% rename from experimental/ietf-extracted-YANG-modules/ietf-netconf-resolve-system@2023-11-05.yang rename to experimental/ietf-extracted-YANG-modules/ietf-netconf-resolve-system@2024-06-18.yang index 8923db9f7..e6b25aedf 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-resolve-system@2023-11-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-resolve-system@2024-06-18.yang @@ -15,6 +15,7 @@ module ietf-netconf-resolve-system { "RFC 8526: NETCONF Extensions to Support the Network Management Datastore Architecture"; } + organization "IETF NETMOD (Network Modeling) Working Group"; contact @@ -26,14 +27,14 @@ module ietf-netconf-resolve-system { Author: Qin Wu Author: Chong Feng - "; + "; description "This module defines an extension to the NETCONF protocol that allows the NETCONF client to control whether the server is allowed to copy referenced system configuration automatically without the client doing so explicitly. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -43,8 +44,8 @@ module ietf-netconf-resolve-system { Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC HHHH - (https://www.rfc-editor.org/info/rfcHHHH); see the RFC + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', @@ -54,7 +55,7 @@ module ietf-netconf-resolve-system { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-11-05 { + revision 2024-06-18 { description "Initial version."; reference @@ -67,33 +68,46 @@ module ietf-netconf-resolve-system { leaf resolve-system { type empty; description - "When present, the server is allowed to automatically - configure referenced system configuration into the - target configuration datastore."; + "When present, and the server supports this capability, + the server MUST copy the entire referenced system + configuration, including all descendants into the target + datastore (e.g., and ) without the + client doing the copy/paste explicitly, to resolve any + references not resolved by the client. The copy operation + MUST NOT override any explicit configuration in the target + datastore."; } } augment "/nc:edit-config/nc:input" { description - "Allows the server to automatically configure - referenced system configuration to make configuration - valid."; + "Adds the 'resolve-system' parameter to the input of the + NETCONF operation."; uses resolve-system-grouping; } augment "/nc:copy-config/nc:input" { description - "Allows the server to automatically configure - referenced system configuration to make configuration - valid."; + "Adds the 'resolve-system' parameter to the input of the + NETCONF operation."; + uses resolve-system-grouping; + } + augment "/nc:validate/nc:input" { + description + "Adds the 'resolve-system' parameter to the input of the + NETCONF operation."; + uses resolve-system-grouping; + } + augment "/nc:commit/nc:input" { + description + "Adds the 'resolve-system' parameter to the input of the + NETCONF operation."; uses resolve-system-grouping; } - augment "/ncds:edit-data/ncds:input" { description - "Allows the server to automatically configure - referenced system configuration to make configuration - valid."; + "Adds the 'resolve-system' parameter to the input of the + NETCONF operation."; uses resolve-system-grouping; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-03-16.yang similarity index 89% rename from experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-03-16.yang index ddb05954a..6c2429cae 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-03-16.yang @@ -57,9 +57,8 @@ module ietf-netconf-server { "This module contains a collection of YANG definitions for configuring NETCONF servers. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -78,7 +77,7 @@ module ietf-netconf-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -194,7 +193,7 @@ module ietf-netconf-server { grouping netconf-server-listen-stack-grouping { description "A reusable grouping for configuring a NETCONF server - 'listen' protocol stack for a single connection."; + 'listen' protocol stack for listening on a single port."; choice transport { mandatory true; description @@ -203,12 +202,12 @@ module ietf-netconf-server { if-feature "ssh-listen"; container ssh { description - "SSH-specific listening configuration for inbound - connections."; + "TCP, SSH, and NETCONF configuration to listen + for NETCONF over SSH connections."; container tcp-server-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level server parameters to listen + for NETCONF over SSH connections."; uses tcps:tcp-server-grouping { refine "local-port" { default "830"; @@ -222,19 +221,19 @@ module ietf-netconf-server { } container ssh-server-parameters { description - "A wrapper around the SSH server parameters - to avoid name collisions."; + "SSH-level server parameters to listen + for NETCONF over SSH connections."; uses sshs:ssh-server-grouping; } container netconf-server-parameters { description - "A wrapper around the NETCONF server parameters - to avoid name collisions."; + "NETCONF-level server parameters to listen + for NETCONF over SSH connections."; uses ncs:netconf-server-grouping { refine "client-identity-mappings" { if-feature "sshcmn:ssh-x509-certs"; description - "Augments in an 'if-feature' statement + "Adds in an 'if-feature' statement ensuring the 'client-identity-mappings' descendant is enabled only when SSH supports X.509 certificates."; @@ -259,12 +258,12 @@ module ietf-netconf-server { if-feature "tls-listen"; container tls { description - "TLS-specific listening configuration for inbound - connections."; + "TCP, TLS, and NETCONF configuration to listen + for NETCONF over TLS connections."; container tcp-server-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level server parameters to listen + for NETCONF over TLS connections."; uses tcps:tcp-server-grouping { refine "local-port" { default "6513"; @@ -278,15 +277,15 @@ module ietf-netconf-server { } container tls-server-parameters { description - "A wrapper around the TLS server parameters to - avoid name collisions."; + "TLS-level server parameters to listen + for NETCONF over TLS connections."; uses tlss:tls-server-grouping { refine "client-authentication" { must 'ca-certs or ee-certs'; description "NETCONF/TLS servers MUST validate client certificates. This configures certificates - at the socket-level (i.e. bags), more + at the socket-level (i.e. bags). More discriminating client-certificate checks SHOULD be implemented by the application."; reference @@ -298,8 +297,8 @@ module ietf-netconf-server { } container netconf-server-parameters { description - "A wrapper around the NETCONF server parameters - to avoid name collisions."; + "NETCONF-level server parameters to listen + for NETCONF over TLS connections."; uses ncs:netconf-server-grouping { refine "client-identity-mappings/cert-to-name" { min-elements 1; @@ -316,7 +315,8 @@ module ietf-netconf-server { grouping netconf-server-callhome-stack-grouping { description "A reusable grouping for configuring a NETCONF server - 'call-home' protocol stack, for a single connection."; + 'call-home' protocol stack, for a single outbound + connection."; choice transport { mandatory true; description @@ -325,12 +325,12 @@ module ietf-netconf-server { if-feature "ssh-call-home"; container ssh { description - "Specifies SSH-specific call-home transport - configuration."; + "TCP, SSH, and NETCONF configuration to initiate + a NETCONF over SSH Call Home connection."; container tcp-client-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level client parameters to initiate a + NETCONF over SSH Call Home connection."; uses tcpc:tcp-client-grouping { refine "remote-port" { default "4334"; @@ -344,19 +344,19 @@ module ietf-netconf-server { } container ssh-server-parameters { description - "A wrapper around the SSH server parameters - to avoid name collisions."; + "SSH-level server parameters to initiate a + NETCONF over SSH Call Home connection."; uses sshs:ssh-server-grouping; } container netconf-server-parameters { description - "A wrapper around the NETCONF server parameters - to avoid name collisions."; + "NETCONF-level server parameters to initiate a + NETCONF over SSH Call Home connection."; uses ncs:netconf-server-grouping { refine "client-identity-mappings" { if-feature "sshcmn:ssh-x509-certs"; description - "Augments in an 'if-feature' statement + "Adds in an 'if-feature' statement ensuring the 'client-identity-mappings' descendant is enabled only when SSH supports X.509 certificates."; @@ -381,12 +381,12 @@ module ietf-netconf-server { if-feature "tls-call-home"; container tls { description - "Specifies TLS-specific call-home transport - configuration."; + "TCP, TLS, and NETCONF configuration to initiate + a NETCONF over TLS Call Home connection."; container tcp-client-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level client parameters to initiate a + NETCONF over TLS Call Home connection."; uses tcpc:tcp-client-grouping { refine "remote-port" { default "4335"; @@ -400,15 +400,15 @@ module ietf-netconf-server { } container tls-server-parameters { description - "A wrapper around the TLS server parameters to - avoid name collisions."; + "TLS-level server parameters to initiate a + NETCONF over TLS Call Home connection."; uses tlss:tls-server-grouping { refine "client-authentication" { must 'ca-certs or ee-certs'; description "NETCONF/TLS servers MUST validate client certificates. This configures certificates - at the socket-level (i.e. bags), more + at the socket-level (i.e. bags). More discriminating client-certificate checks SHOULD be implemented by the application."; reference @@ -420,8 +420,8 @@ module ietf-netconf-server { } container netconf-server-parameters { description - "A wrapper around the NETCONF server parameters - to avoid name collisions."; + "NETCONF-level server parameters to initiate a + NETCONF over TLS Call Home connection."; uses ncs:netconf-server-grouping { refine "client-identity-mappings/cert-to-name" { min-elements 1; @@ -459,17 +459,21 @@ module ietf-netconf-server { number of seconds. If set to zero, then the server will never drop a session because it is idle."; } - list endpoint { - key "name"; - min-elements 1; + container endpoints { description - "List of endpoints to listen for NETCONF connections."; - leaf name { - type string; + "Container for a list of endpoints."; + list endpoint { + key "name"; + min-elements 1; description - "An arbitrary name for the NETCONF listen endpoint."; + "List of endpoints to listen for NETCONF connections."; + leaf name { + type string; + description + "An arbitrary name for the NETCONF listen endpoint."; + } + uses netconf-server-listen-stack-grouping; } - uses netconf-server-listen-stack-grouping; } } container call-home { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang index e046b0041..888cdb343 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-nmda-compare@2023-05-01.yang @@ -35,7 +35,7 @@ module ietf-netconf-txid-nmda-compare { 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). @@ -43,7 +43,6 @@ module ietf-netconf-txid-nmda-compare { This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as @@ -70,6 +69,9 @@ module ietf-netconf-txid-nmda-compare { "This augmentation makes it possible for servers to return txid-values."; container most-recent { + description "The txid value returned by the server MUST be the + txid value pertaining to the target node in the source or + target datastores that is the most recent."; uses ietf-netconf-txid:txid-value-grouping; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang index fb6565914..ef5bd45d3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid-yang-push@2022-04-01.yang @@ -16,12 +16,6 @@ module ietf-netconf-txid-yang-push { "RFC 8641: Subscriptions to YANG Datastores"; } - import ietf-yang-patch { - prefix ypatch; - reference - "RFC 8072: YANG Patch Media Type"; - } - import ietf-netconf-txid { prefix ietf-netconf-txid; reference @@ -46,7 +40,7 @@ module ietf-netconf-txid-yang-push { 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). diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang index 77067a98e..d27af0347 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-txid@2023-03-01.yang @@ -38,7 +38,7 @@ module ietf-netconf-txid { 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). @@ -74,8 +74,8 @@ module ietf-netconf-txid { statement. Which YANG nodes are versioned nodes may be useful information for clients (especially during development). - Servers are not required to use this statement to declare which - nodes are versioned nodes. + Servers are not required to use this statement to declare + which nodes are versioned nodes. Example of use: @@ -101,8 +101,22 @@ module ietf-netconf-txid { description "Unique Entity-tag txid value representing a specific transaction. Could be any string that does not contain - spaces, double quotes or backslash. The txid values '?', - '!' and '=' have special meaning."; + spaces, double quotes or backslash. + + The txid values '?', '!' and '=' have special meaning: + + '?' This txid value is used by clients and is + guaranteed not to match any txid on the server. + + '!' This txid value used by servers to indicate + the node in the candidate datastore has changed + relative to the running datastore, but not yet received + a new txid value on the server. + + '=' This txid value used by servers to indicate + that contents has been pruned due to txid match + between client and server. + "; } typedef last-modified-t { @@ -116,7 +130,7 @@ module ietf-netconf-txid { enum ! { description "Txid value used by servers to indicate the node in the candidate datastore has changed - relative the running datastore, but not yet received + relative to the running datastore, but not yet received a new txid value on the server."; } enum = { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf@2011-03-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf@2024-04-16.yang similarity index 60% rename from experimental/ietf-extracted-YANG-modules/ietf-netconf@2011-03-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-netconf@2024-04-16.yang index adf1c53fd..d06212096 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf@2011-03-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf@2024-04-16.yang @@ -1,9 +1,9 @@ module ietf-netconf { // the namespace for NETCONF XML definitions is unchanged - // from RFC 4741 which this document replaces - namespace "urn:ietf:params:xml:ns:netconf:base:1.0"; + // from RFC 4741, which this document replaces + namespace "urn:ietf:params:xml:ns:netconf:base:1.0"; prefix nc; import ietf-inet-types { @@ -12,59 +12,69 @@ module ietf-netconf { organization "IETF NETCONF (Network Configuration) Working Group"; - contact "WG Web: - WG List: + WG List: WG Chair: Bert Wijnen - + WG Chair: Mehmet Ersue - + Editor: Martin Bjorklund - + Editor: Juergen Schoenwaelder - + Editor: Andy Bierman - "; + + Editor: James Cumming + + + Editor: Robert Wills + "; description "NETCONF Protocol Data Types and Protocol Operations. - Copyright (c) 2010 IETF Trust and the persons identified as - the document authors. All rights reserved. + Copyright (c) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. + Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions + to the license terms contained in, the Revised BSD License + set forth in Section 4.c of the IETF Trust’s Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - // RFC Ed.: replace XXXX with actual RFC number and remove this note + This version of this YANG module is part of RFC 6241 and + draft-ietf-netconf-privcand; see these documents for full + legal notices."; - // RFC Ed.: please update the date to the date of publication - revision 2011-03-08 { + revision 2024-04-16 { + description + "Updated to introduce private candidates"; + reference + "draft-ietf-netconf-privcand: Netconf Private Candidates"; + } + revision 2011-06-01 { description "Initial revision"; reference - "RFC XXXX: Network Configuration Protocol"; + "RFC 6241: Network Configuration Protocol"; } extension get-filter-element-attributes { description - "If this extension is present within the - an 'anyxml' statement named 'filter', which must be - conceptually defined within the RPC input section - for the 'get' and 'get-config' protocol operations, - then the following unqualified XML attribute is - supported within the 'filter' element, within - a 'get' or 'get-config' protocol operation: + "If this extension is present within an 'anyxml' + statement named 'filter', which must be conceptually + defined within the RPC input section for the + and protocol operations, then the + following unqualified XML attribute is supported + within the element, within a or + protocol operation: type : optional attribute with allowed value strings 'subtree' and 'xpath'. @@ -81,6 +91,7 @@ module ietf-netconf { } // NETCONF capabilities defined as features + feature writable-running { description "NETCONF :writable-running capability; @@ -88,7 +99,8 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.2."; + reference + "RFC 6241, Section 8.2"; } feature candidate { @@ -98,19 +110,31 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.3."; + reference + "RFC 6241, Section 8.3"; + } + + feature private-candidate { + description + "NETCONF :private-candidate capability; + If the server advertises the :private-candidate + capability for a session, then this feature must + also be enabled for that session. Otherwise, + this feature must not be enabled."; + reference + "draft-ietf-netconf-privcand"; } feature confirmed-commit { - if-feature candidate; + if-feature "candidate"; description "NETCONF :confirmed-commit:1.1 capability; If the server advertises the :confirmed-commit:1.1 capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - - reference "RFC XXXX, section 8.4."; + reference + "RFC 6241, Section 8.4"; } feature rollback-on-error { @@ -120,7 +144,8 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.5."; + reference + "RFC 6241, Section 8.5"; } feature validate { @@ -130,7 +155,8 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.6."; + reference + "RFC 6241, Section 8.6"; } feature startup { @@ -140,7 +166,8 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.7."; + reference + "RFC 6241, Section 8.7"; } feature url { @@ -150,7 +177,8 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.8."; + reference + "RFC 6241, Section 8.8"; } feature xpath { @@ -160,7 +188,8 @@ module ietf-netconf { capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled."; - reference "RFC XXXX, section 8.9."; + reference + "RFC 6241, Section 8.9"; } // NETCONF Simple Types @@ -181,125 +210,130 @@ module ietf-netconf { typedef error-tag-type { type enumeration { - enum in-use { - description - "The request requires a resource that - already is in use."; - } - enum invalid-value { - description - "The request specifies an unacceptable value for one - or more parameters."; - } - enum too-big { - description - "The request or response (that would be generated) is - too large for the implementation to handle."; - } - enum missing-attribute { - description - "An expected attribute is missing."; - } - enum bad-attribute { - description - "An attribute value is not correct; e.g., wrong type, - out of range, pattern mismatch."; - } - enum unknown-attribute { - description - "An unexpected attribute is present."; - } - enum missing-element { - description - "An expected element is missing."; - } - enum bad-element { - description - "An element value is not correct; e.g., wrong type, - out of range, pattern mismatch."; - } - enum unknown-element { - description - "An unexpected element is present."; - } - enum unknown-namespace { - description - "An unexpected namespace is present."; - } - enum access-denied { - description - "Access to the requested protocol operation, or - data model is denied because authorization failed."; - } - enum lock-denied { - description - "Access to the requested lock is denied because the - lock is currently held by another entity."; - } - enum resource-denied { - description - "Request could not be completed because of - insufficient resources."; - } - enum rollback-failed { - description - "Request to rollback some configuration change (via - rollback-on-error or discard-changes operations) was - not completed for some reason."; - - } - enum data-exists { - description - "Request could not be completed because the relevant - data model content already exists. For example, - a 'create' operation was attempted on data that - already exists."; - } - enum data-missing { - description - "Request could not be completed because the relevant - data model content does not exist. For example, - a 'delete' operation was attempted on - data that does not exist."; - } - enum operation-not-supported { - description - "Request could not be completed because the requested - operation is not supported by this implementation."; - } - enum operation-failed { - description - "Request could not be completed because the requested - operation failed for some reason not covered by - any other error condition."; - } - enum partial-operation { - description - "This error-tag is obsolete, and SHOULD NOT be sent - by servers conforming to this document."; - } - enum malformed-message { - description - "A message could not be handled because it failed to - be parsed correctly. For example, the message is not - well-formed XML or it uses an invalid character set."; - } - } - description "NETCONF Error Tag"; - reference "RFC XXXX, Appendix A."; + enum in-use { + description + "The request requires a resource that + already is in use."; + } + enum invalid-value { + description + "The request specifies an unacceptable value for one + or more parameters."; + } + enum too-big { + description + "The request or response (that would be generated) is + too large for the implementation to handle."; + } + enum missing-attribute { + description + "An expected attribute is missing."; + } + enum bad-attribute { + description + "An attribute value is not correct; e.g., wrong type, + out of range, pattern mismatch."; + } + enum unknown-attribute { + description + "An unexpected attribute is present."; + } + enum missing-element { + description + "An expected element is missing."; + } + enum bad-element { + description + "An element value is not correct; e.g., wrong type, + out of range, pattern mismatch."; + } + enum unknown-element { + description + "An unexpected element is present."; + } + enum unknown-namespace { + description + "An unexpected namespace is present."; + } + enum access-denied { + description + "Access to the requested protocol operation or + data model is denied because authorization failed."; + } + enum lock-denied { + description + "Access to the requested lock is denied because the + lock is currently held by another entity."; + } + enum resource-denied { + description + "Request could not be completed because of + insufficient resources."; + } + enum rollback-failed { + description + "Request to roll back some configuration change (via + rollback-on-error or operations) + was not completed for some reason."; + } + enum data-exists { + description + "Request could not be completed because the relevant + data model content already exists. For example, + a 'create' operation was attempted on data that + already exists."; + } + enum data-missing { + description + "Request could not be completed because the relevant + data model content does not exist. For example, + a 'delete' operation was attempted on + data that does not exist."; + } + enum operation-not-supported { + description + "Request could not be completed because the requested + operation is not supported by this implementation."; + } + enum operation-failed { + description + "Request could not be completed because the requested + operation failed for some reason not covered by + any other error condition."; + } + enum partial-operation { + description + "This error-tag is obsolete, and SHOULD NOT be sent + by servers conforming to this document."; + } + enum malformed-message { + description + "A message could not be handled because it failed to + be parsed correctly. For example, the message is not + well-formed XML or it uses an invalid character set."; + } + } + description + "NETCONF Error Tag"; + reference + "RFC 6241, Appendix A"; } typedef error-severity-type { type enumeration { enum error { - description "Error severity"; + description + "Error severity"; } enum warning { - description "Warning severity"; + description + "Warning severity"; } } - description "NETCONF Error Severity"; - reference "RFC XXXX, section 4.3."; + description + "NETCONF Error Severity"; + reference + "RFC 6241, Section 4.3"; } typedef edit-operation-type { @@ -319,7 +353,7 @@ module ietf-netconf { configuration in the configuration datastore identified by the target parameter. If no such configuration data exists in the configuration - datastore, it is created. Unlike a + datastore, it is created. Unlike a operation, which replaces the entire target configuration, only the configuration actually present in the config parameter is affected."; @@ -356,40 +390,46 @@ module ietf-netconf { } } default "merge"; - description "NETCONF 'operation' attribute values"; - reference "RFC XXXX, section 7.2."; + description + "NETCONF 'operation' attribute values"; + reference + "RFC 6241, Section 7.2"; } // NETCONF Standard Protocol Operations - rpc get-config { description "Retrieve all or part of a specified configuration."; - - reference "RFC XXXX, section 7.1."; - + reference + "RFC 6241, Section 7.1"; input { container source { description "Particular configuration to retrieve."; - choice config-source { mandatory true; description "The configuration to retrieve."; leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config source."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + source."; + } leaf running { type empty; description "The running configuration is the config source."; } leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config source. @@ -399,18 +439,16 @@ module ietf-netconf { } } } - anyxml filter { description "Subtree or XPath filter to use."; nc:get-filter-element-attributes; } } - output { anyxml data { description - "Copy of the source datastore subset which matched + "Copy of the source datastore subset that matched the filter criteria (if any). An empty data container indicates that the request did not produce any results."; } @@ -419,35 +457,39 @@ module ietf-netconf { rpc edit-config { description - "The 'edit-config' operation loads all or part of a specified + "The operation loads all or part of a specified configuration to the specified target configuration."; - reference "RFC XXXX, section 7.2."; - + reference + "RFC 6241, Section 7.2"; input { container target { description "Particular configuration to edit."; - choice config-target { mandatory true; description "The configuration target."; - leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config target."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + target."; + } leaf running { - if-feature writable-running; + if-feature "writable-running"; type empty; description "The running configuration is the config source."; } } } - leaf default-operation { type enumeration { enum merge { @@ -467,9 +509,8 @@ module ietf-netconf { description "The default operation to use."; } - leaf test-option { - if-feature validate; + if-feature "validate"; type enumeration { enum test-then-set { description @@ -479,7 +520,6 @@ module ietf-netconf { description "The server will set without a test first."; } - enum test-only { description "The server will only test and not set, even @@ -490,7 +530,6 @@ module ietf-netconf { description "The test option to use."; } - leaf error-option { type enumeration { enum stop-on-error { @@ -503,7 +542,7 @@ module ietf-netconf { } enum rollback-on-error { description - "The server will rollback on errors. + "The server will roll back on errors. This value can only be used if the 'rollback-on-error' feature is supported."; } @@ -512,20 +551,19 @@ module ietf-netconf { description "The error option to use."; } - choice edit-content { mandatory true; description - "The content for the edit operation"; + "The content for the edit operation."; anyxml config { description "Inline Config content."; } leaf url { - if-feature url; + if-feature "url"; type inet:uri; description - "URL based config content."; + "URL-based config content."; } } } @@ -535,82 +573,90 @@ module ietf-netconf { description "Create or replace an entire configuration datastore with the contents of another complete configuration datastore."; - - reference "RFC XXXX, section 7.3."; - + reference + "RFC 6241, Section 7.3"; input { container target { description "Particular configuration to copy to."; - choice config-target { mandatory true; description "The configuration target of the copy operation."; - leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config target."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + target."; + } leaf running { - if-feature writable-running; + if-feature "writable-running"; type empty; description "The running configuration is the config target. This is optional-to-implement on the server."; } leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config target."; } leaf url { - if-feature url; + if-feature "url"; type inet:uri; description "The URL-based configuration is the config target."; } } } - container source { description "Particular configuration to copy from."; - choice config-source { mandatory true; description "The configuration source for the copy operation."; - leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config source."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + source."; + } leaf running { type empty; description "The running configuration is the config source."; } leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config source."; } leaf url { - if-feature url; + if-feature "url"; type inet:uri; description "The URL-based configuration is the config source."; } anyxml config { description - "Inline Config content: 'config' element. Represents + "Inline Config content: element. Represents an entire configuration datastore, not a subset of the running datastore."; } @@ -622,27 +668,31 @@ module ietf-netconf { rpc delete-config { description "Delete a configuration datastore."; - - reference "RFC XXXX, section 7.4."; - + reference + "RFC 6241, Section 7.4"; input { container target { description "Particular configuration to delete."; - choice config-target { mandatory true; description "The configuration target to delete."; - leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config target."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + target."; + } leaf url { - if-feature url; + if-feature "url"; type inet:uri; description "The URL-based configuration is the config target."; @@ -656,32 +706,36 @@ module ietf-netconf { description "The lock operation allows the client to lock the configuration system of a device."; - - reference "RFC XXXX, section 7.5."; - + reference + "RFC 6241, Section 7.5"; input { container target { description - "Particular configuration to lock"; - + "Particular configuration to lock."; choice config-target { mandatory true; description "The configuration target to lock."; - leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config target."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + target."; + } leaf running { type empty; description "The running configuration is the config target."; } leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config target."; @@ -695,32 +749,36 @@ module ietf-netconf { description "The unlock operation is used to release a configuration lock, previously obtained with the 'lock' operation."; - - reference "RFC XXXX, section 7.6."; - + reference + "RFC 6241, Section 7.6"; input { container target { description "Particular configuration to unlock."; - choice config-target { mandatory true; description "The configuration target to unlock."; - leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config target."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + target."; + } leaf running { type empty; description "The running configuration is the config target."; } leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config target."; @@ -733,9 +791,8 @@ module ietf-netconf { rpc get { description "Retrieve running configuration and device state information."; - - reference "RFC XXXX, section 7.7."; - + reference + "RFC 6241, Section 7.7"; input { anyxml filter { description @@ -744,12 +801,11 @@ module ietf-netconf { nc:get-filter-element-attributes; } } - output { anyxml data { description "Copy of the running datastore subset and/or state - data which matched the filter criteria (if any). + data that matched the filter criteria (if any). An empty data container indicates that the request did not produce any results."; } @@ -759,16 +815,15 @@ module ietf-netconf { rpc close-session { description "Request graceful termination of a NETCONF session."; - - reference "RFC XXXX, section 7.8."; + reference + "RFC 6241, Section 7.8"; } rpc kill-session { description "Force the termination of a NETCONF session."; - - reference "RFC XXXX, section 7.9."; - + reference + "RFC 6241, Section 7.9"; input { leaf session-id { type session-id-type; @@ -780,144 +835,187 @@ module ietf-netconf { } rpc commit { - if-feature candidate; - + if-feature "candidate"; + if-feature "private-candidate"; description - "Commit the candidate configuration as the device's new - current configuration"; - - reference "RFC XXXX, section 8.3.4.1."; - + "Commit the candidate or private candidate configuration + as the device's new current configuration."; + reference + "RFC 6241, Section 8.3.4.1 and draft-ietf-netconf-privcand"; input { leaf confirmed { - if-feature confirmed-commit; + if-feature "confirmed-commit"; type empty; description "Requests a confirmed commit."; - reference "RFC XXXX, section 8.3.4.1."; + reference + "RFC 6241, Section 8.3.4.1"; } - leaf confirm-timeout { - if-feature confirmed-commit; + if-feature "confirmed-commit"; type uint32 { range "1..max"; } units "seconds"; - default "600"; // 10 minutes + default "600"; // 10 minutes description "The timeout interval for a confirmed commit."; - reference "RFC XXXX, section 8.3.4.1."; + reference + "RFC 6241, Section 8.3.4.1"; } - leaf persist { - if-feature confirmed-commit; + if-feature "confirmed-commit"; type string; description "This parameter is used to make a confirmed commit persistent. A persistent confirmed commit is not aborted - if the NETCONF session terminates. The only way to abort a - persistent confirmed commit it to let the timer expire, or - to use the cancel-commit operation. + if the NETCONF session terminates. The only way to abort + a persistent confirmed commit is to let the timer expire, + or to use the operation. The value of this parameter is a token that must be given - in the 'persist-id' parameter of commit or cancel-commit in - order to confirm or cancel the persistent confirmed commit. - + in the 'persist-id' parameter of or + operations in order to confirm or cancel + the persistent confirmed commit. The token should be a random string."; - reference "RFC XXXX, section 8.3.4.1."; + reference + "RFC 6241, Section 8.3.4.1"; } - leaf persist-id { - if-feature confirmed-commit; + if-feature "confirmed-commit"; type string; description "This parameter is given in order to commit a persistent confirmed commit. The value must be equal to the value - given in the 'persist' parameter to the commit operation. - If it does not match, the operation fails with an - 'invalid-value' error."; - reference "RFC XXXX, section 8.3.4.1."; + given in the 'persist' parameter to the + operation. If it does not match, the operation fails + with an 'invalid-value' error."; + reference + "RFC 6241, Section 8.3.4.1"; } - } } rpc discard-changes { - if-feature candidate; - + if-feature "candidate"; + if-feature "private-candidate"; description "Revert the candidate configuration to the current running configuration."; - - reference "RFC XXXX, section 8.3.4.2."; + reference + "RFC 6241, Section 8.3.4.2"; + input { + container target { + if-feature "private-candidate"; + reference "draft-ietf-netconf-privcand"; + description + "Particular configuration to discard changes from."; + choice config-target { + mandatory true; + description + "The configuration target to discard."; + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + target."; + } + } + } + } } - rpc cancel-commit { - if-feature confirmed-commit; + if-feature "confirmed-commit"; description "This operation is used to cancel an ongoing confirmed commit. If the confirmed commit is persistent, the parameter 'persist-id' must be given, and it must match the value of the 'persist' parameter."; - reference "RFC XXXX, section 8.4.4.1."; - + reference + "RFC 6241, Section 8.4.4.1"; input { leaf persist-id { type string; description "This parameter is given in order to cancel a persistent confirmed commit. The value must be equal to the value - given in the 'persist' parameter to the commit operation. - If it does not match, the operation fails with an - 'invalid-value' error."; + given in the 'persist' parameter to the + operation. If it does not match, the operation fails + with an 'invalid-value' error."; } } } - rpc validate { - if-feature validate; + rpc update { + if-feature "private-candidate"; + description + "Updates the private candidate from the running + configuration."; + reference + "draft-ietf-netconf-privcand"; + input { + leaf resolution-mode { + description + "Mode to resolve conflicts between running and + private-candidate configurations."; + default revert-on-conflict; + type enumeration { + enum revert-on-conflict; + enum ignore; + enum overwrite; + } + } + } + } + rpc validate { + if-feature "validate"; description "Validates the contents of the specified configuration."; - - reference "RFC XXXX, section 8.6.4.1."; - + reference + "RFC 6241, Section 8.6.4.1"; input { container source { description "Particular configuration to validate."; - choice config-source { mandatory true; description "The configuration source to validate."; - leaf candidate { - if-feature candidate; + if-feature "candidate"; type empty; description "The candidate configuration is the config source."; } + leaf private-candidate { + if-feature "private-candidate"; + type empty; + description + "The private candidate configuration is the config + source."; + } leaf running { type empty; description "The running configuration is the config source."; } leaf startup { - if-feature startup; + if-feature "startup"; type empty; description "The startup configuration is the config source."; } leaf url { - if-feature url; + if-feature "url"; type inet:uri; description "The URL-based configuration is the config source."; } anyxml config { description - "Inline Config content: 'config' element. Represents + "Inline Config content: element. Represents an entire configuration datastore, not a subset of the running datastore."; } @@ -925,5 +1023,4 @@ module ietf-netconf { } } } - } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-anomaly-metadata@2024-07-01.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-anomaly-metadata@2024-07-01.yang new file mode 100644 index 000000000..2aab9e990 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-anomaly-metadata@2024-07-01.yang @@ -0,0 +1,165 @@ +module ietf-network-anomaly-metadata { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-network-anomaly-metadata"; + prefix network_anomaly_metadata; + + import ietf-yang-types { + prefix yang; + reference "RFC 6991: Common YANG Data Types"; + } + + organization + "IETF NMOP Working Group"; + contact + "WG Web: + WG List: + + Authors: Vincenzo Riccobene + + Antonio Roberto + + Thomas Graf + + Wanting Du + + Alex Huang Feng + "; + description + "This module defines objects for the description of network anomalies. + Network anomalies are a collection of symptoms observed on + the network nodes. + + 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-07-01 { + description + "Initial version"; + reference + "RFCXXXX: Experiment: Network Anomaly Postmortem Lifecycle"; + } + + identity network-anomaly-state { + description + "Base identity for representing the state of the network anomaly"; + } + identity problem-forecasted { + base network-anomaly-state; + description + "A problem has been forecasted, as it is expected that + the indicated list of symptoms will impact a service + in the near future"; + } + identity problem-potential { + base network-anomaly-state; + description + "A problem has been detected with a confidence + lower than 100%. In order to confirm that this set of + symptoms are generating service impact, it requires further + validation"; + } + identity problem-confirmed { + base network-anomaly-state; + description + "After validation, the problem has been confirmed"; + } + identity discarded { + base network-anomaly-state; + description + "After validation, the network anomaly has been + discarded, as there is no evindence that it is causing an + problem"; + } + identity analysed { + base network-anomaly-state; + description + "The anomaly detection went through analysis to identify + potential ways to further improve the detection process in + for future anomalies"; + } + identity adjusted { + base network-anomaly-state; + description + "The network anomaly has been solved and analysed. + No further action is required."; + } + + container network-anomalies { + description "Container having the network anomalies"; + list network-anomaly { + key "id version"; + description "A network anomaly identified by an id, version + and state."; + leaf id { + type yang:uuid; + description + "Unique ID of the network network anomaly"; + } + leaf version { + type uint8; + description + "Version of the problem metadata object. + It allows multiple versions of the metadata to be + generated in order to support the definition of + multiple problem objects from the same source to + facilitate improvements overtime"; + } + leaf description { + type string; + mandatory "false"; + description + "Textual description of the network anomaly"; + } + container annotator { + description "Container defining the type of the annotator and the + version of the algorithm if it is an algorithm who reported the anomaly."; + choice annotator-type { + description "The type of annotator who reported the anomaly."; + mandatory "true"; + case human { + leaf human { + mandatory "true"; + type empty + } + } + case algorithm { + leaf algorithm { + mandatory "true"; + type empty + } + } + } + leaf name { + description "Name of the user annotator or the algorithm"; + mandatory "false"; + type empty; + } + } + leaf state { + type identityref { + base network-anomaly-state; + } + mandatory true; + description "State of the anomaly."; + } + list symptoms { + key "symptom_id"; + description "List of symptoms identified by the symptom_id."; + leaf symptom_id { + type yang:uuid; + description "UUID of the symptom that is part of this problem"; + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-sw-ext@2023-10-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-sw-ext@2024-04-30.yang similarity index 83% rename from experimental/ietf-extracted-YANG-modules/ietf-network-inventory-sw-ext@2023-10-19.yang rename to experimental/ietf-extracted-YANG-modules/ietf-network-inventory-sw-ext@2024-04-30.yang index 3009fb4bc..6df3a9cdb 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-sw-ext@2023-10-19.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-sw-ext@2024-04-30.yang @@ -1,12 +1,13 @@ module ietf-network-inventory-sw-ext { yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory-sw-ext"; + namespace + "urn:ietf:params:xml:ns:yang:ietf-network-inventory-sw-ext"; prefix nis; import ietf-network-inventory { - prefix ni; + prefix nwi; reference - "RFCxxxx: IETF Network Inventory"; + "RFCAAAA: A YANG Data Model for Network Inventory"; } organization @@ -16,18 +17,18 @@ module ietf-network-inventory-sw-ext { WG List: Editor: Bo Wu - + Editor: Cheng Zhou Editor: Qin Wu - + Editor: Mohamed Boucadair - "; + "; description "This YANG module defines a model for network inventory software extensions. - Copyright (c) 2023 IETF Trust and the persons + 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 @@ -46,7 +47,7 @@ module ietf-network-inventory-sw-ext { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-10-19 { + revision 2024-04-30 { description "Initial version"; reference @@ -55,13 +56,13 @@ module ietf-network-inventory-sw-ext { } identity ne-virtual { - base ni:ne-type; + base nwi:ne-type; description "A virtual network element (NE). "; } identity software-component { - base ni:non-hardware-component; + base nwi:non-hardware-component-class; description "Base identity for software components in a managed device."; @@ -81,6 +82,7 @@ module ietf-network-inventory-sw-ext { defined to be a set of software changes that are atomically installed (and uninstalled) together. "; } + identity bios { base software-component; description @@ -112,14 +114,14 @@ module ietf-network-inventory-sw-ext { description "Specific attributes applicable to Software Modules only."; } - /* Main blocks */ - augment "/ni:network-elements/ni:network-element" { + augment "/nwi:network-inventory/nwi:network-elements" + + "/nwi:network-element" { description "Augment network element (NE) attributes."; container virtual-ne-attributes { - when "derived-from-or-self(../ni:ne-type,'ne-virtual')"; + when "derived-from-or-self(../nwi:ne-type,'ne-virtual')"; description "Container for the attributes applicable only to virtual Network Elements (NEs)."; @@ -127,12 +129,13 @@ module ietf-network-inventory-sw-ext { } } - augment "/ni:network-elements/ni:network-element/ni:components/" - + "ni:component" { + augment "/nwi:network-inventory/nwi:network-elements/" + + "nwi:network-element/nwi:components/nwi:component" { description "Augment component attributes."; container software-module-specific-info { - when "derived-from-or-self(../ni:class,'software-module')"; + when + "derived-from-or-self(../nwi:class,'software-module')"; description "This container contains some attributes belong to Software Modules only."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2023-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2023-10-18.yang deleted file mode 100644 index 4ca8c86e0..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2023-10-18.yang +++ /dev/null @@ -1,375 +0,0 @@ -module ietf-network-inventory-topology { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory-topology"; - prefix nwit; - - 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 Network Inventory YANG (ivy) Working Group"; - contact - "WG Web: - WG List: - - Editor: Bo Wu - - Editor: Cheng Zhou - - Editor: Qin Wu - - Editor: Mohamed Boucadair - "; - description - "This YANG module defines XXX. - - Copyright (c) 2023 IETF Trust and the persons identified - as authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with - or without modification, is permitted pursuant to, and - subject to the license terms contained in, the Revised - BSD License set forth in Section 4.c of the IETF Trust's - Legal Provisions Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC - itself for full legal notices."; - - revision 2023-10-18 { - description - "Initial revision."; - reference - "RFC XXXX: A YANG Data Model for Network Inventory Topology"; - } - - identity node-type { - description - "Base identity for node device type."; - } - - identity switch { - base node-type; - description - "Identity for switch device."; - } - - identity router { - base node-type; - description - "Identity for router device."; - } - - identity firewall { - base node-type; - description - "Identity for Firewall device."; - } - - identity access-controller { - base node-type; - description - "Identity for WIFI access controller device."; - } - - identity access-point { - base node-type; - description - "Identity for WIFI access point device."; - } - - identity sdn-controller { - base node-type; - description - "Identity for controller."; - } - - identity server { - base node-type; - description - "Identity for computing server device."; - } - - identity vm { - base node-type; - description - "Identity for VM node."; - } - - identity camera { - base node-type; - description - "Identity for camera device."; - } - - identity printer { - base node-type; - description - "Identity for camera device."; - } - - identity cell-phone { - base node-type; - description - "Identity for mobile phone."; - } - - identity port-type { - description - "Base identity for device port type."; - } - - typedef oper-state { - type enumeration { - enum unknown { - value 1; - description - "The resource is unable to report its operational - state."; - } - enum disabled { - value 2; - description - "The resource is totally inoperable."; - } - enum enabled { - value 3; - description - "The resource is partially or fully operable."; - } - enum testing { - value 4; - description - "The resource is currently being tested and cannot - therefore report whether or not it is operational."; - } - } - description - "Represents the possible values of operational states."; - reference - "RFC 4268: Entity State MIB - EntityOperState"; - } - - /* Groupings */ - - grouping inventory-network-type { - description - "Indicates the topology type to be inventory."; - container network-inventory { - presence "Indicates Network Inventory."; - description - "The presence of the container node indicates - Network Inventory."; - } - } - - grouping system-mount-point { - container system-mount-point { - description - "Container for system configuration or state mount-point."; - } - } - - grouping inventory-node-attributes { - description - "Augment used to define attach the node configuration"; - leaf name { - type string; - description - "The name of the node."; - } - leaf node-type { - type identityref { - base node-type; - } - config false; - description - "Node type."; - } - leaf-list network-element-inventory-ref { - type leafref { - path "/nwi:network-elements" - + "/nwi:network-element/nwi:name"; - } - config false; - description - "The reference of the Network Elements (NEs) from which this - node is abstracted. For example, in the case of cluster device, - one node can abstract multiple NEs."; - } - uses system-mount-point; - leaf oper-state { - type oper-state; - config false; - description - "The operational state for this component. - Note that this node does not follow the administrative - state. An administrative state of 'down' does not - predict an operational state of 'disabled'. - Note that some implementations may not be able to - accurately report oper-state while the admin-state node - has a value other than 'unlocked'. In these cases, this - node MUST have a value of 'unknown'."; - reference - "RFC 4268: Entity State MIB - entStateOper"; - } - } - - grouping inventory-termination-point-attributes { - description - "Augment used to define attach the termination point - attributes."; - leaf tp-name { - type string; - config false; - description - "The name of the interface."; - } - leaf tp-description { - type string; - config false; - description - "A textual description of the interface."; - } - leaf tp-type { - type identityref { - base port-type; - } - config false; - description - "The port type of the interface, e.g. console port"; - } - leaf port-component-inventory-ref { - type leafref { - path "/nwi:network-elements/nwi:network-element/" - + "nwi:components/nwi:component/nwi:name"; - } - config false; - description - "The reference of the port component from which this - termination point is abstracted."; - } - leaf interface-name { - type string; - description - "Name of the interface. The name can (but does not - have to) correspond to an interface reference of a - containing node's interface, i.e., the path name of a - corresponding interface data node on the containing - node is reminiscent of data type interface-ref defined - in RFC 8343. It should be noted that data type - interface-ref of RFC 8343 cannot be used directly, - as this data type is used to reference an interface - in a datastore of a single node in the network, not - to uniquely reference interfaces across a network."; - } - uses system-mount-point; - leaf oper-state { - type oper-state; - config false; - description - "The operational state for this component. - Note that this node does not follow the administrative - state. An administrative state of 'down' does not - predict an operational state of 'disabled'. - Note that some implementations may not be able to - accurately report oper-state while the admin-state node - has a value other than 'unlocked'. In these cases, this - node MUST have a value of 'unknown'."; - reference - "RFC 4268: Entity State MIB - entStateOper"; - } - } - - grouping inventory-link-attributes { - description - "Augment used to define attach the termination point - attributes."; - leaf link-name { - type string; - config false; - description - "The name of the link."; - } - leaf cable-ref { - type leafref { - path "/nwi:cables/nwi:cable/nwi:name"; - } - config false; - description - "The reference of the cable inventory information from which - this link is abstracted."; - } - leaf link-description { - type string; - config false; - description - "A textual description of the interface."; - } - leaf link-type { - type string; - config false; - description - "The type of the link."; - } - leaf oper-state { - type oper-state; - config false; - description - "The operational state for this link."; - } - } - - /* Main blocks */ - - augment "/nw:networks/nw:network/nw:network-types" { - description - "Introduces new network type for network inventory."; - uses inventory-network-type; - } - - augment "/nw:networks/nw:network/nw:node" { - when '/nw:networks/nw:network/nw:network-types/ - nwit:network-inventory' { - description - "Augmentation parameters apply only for network inventory."; - } - description - "Configuration parameters for inventory at the node - level."; - uses inventory-node-attributes; - } - augment "/nw:networks/nw:network/nt:link" { - when '/nw:networks/nw:network/nw:network-types/ - nwit:network-inventory' { - description - "Augmentation parameters apply only for network - inventory."; - } - description - "Augments inventory topology link information."; - uses inventory-link-attributes; - } - - augment - "/nw:networks/nw:network/nw:node/nt:termination-point" { - when '/nw:networks/nw:network/nw:network-types/ - nwit:network-inventory' { - description - "Augmentation parameters apply only for network - inventory."; - } - description - "Augments inventory termination point information."; - uses inventory-termination-point-attributes; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2024-04-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2024-04-29.yang new file mode 100644 index 000000000..fc5747a06 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2024-04-29.yang @@ -0,0 +1,239 @@ +module ietf-network-inventory-topology { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-network-inventory-topology"; + prefix nwit; + + 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-network-inventory { + prefix nwi; + reference + "RFC AAAA: A YANG Data Model for Network Inventory"; + } + + organization + "IETF Network Inventory YANG (ivy) Working Group"; + contact + "WG Web: + WG List: + + Editor: Bo Wu + + Editor: Cheng Zhou + + Editor: Qin Wu + + Editor: Mohamed Boucadair + "; + description + "This YANG module defines XXX. + + Copyright (c) 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices."; + + revision 2024-04-29 { + description + "Initial revision."; + reference + "RFC XXXX: A YANG Data Model for Network Inventory Mapping + Topology"; + } + + /* Identities */ + /* Typedef */ + + typedef ne-ref { + type leafref { + path "/nwi:network-inventory/nwi:network-elements" + + "/nwi:network-element/nwi:ne-id"; + } + description + "This type is used by data models that need to reference + Network Element."; + } + + /* Groupings */ + + grouping inventory-mapping-network-type { + description + "Indicates the topology type to be Network Inventory mapping."; + container network-inventory-mapping { + presence "Indicates Network Inventory mapping topology."; + description + "The presence of the container node indicates + Network Inventory mapping."; + } + } + + grouping system-mount-point { + description + "Indicates system configuration or state mount point."; + container system-mount-point { + description + "Container for system configuration or state mount point."; + } + } + + grouping node-inventory-attributes { + description + "Network Inventory mapping node scope attributes"; + container inventory-mapping-attributes { + description + "The container node attributes of Network Inventory mapping."; + leaf node-name { + type string; + description + "The name of the node."; + } + leaf ne-ref { + type ne-ref; + config false; + description + "The reference of the Network Element (NE) from which this + node is abstracted."; + } + uses system-mount-point; + } + } + + grouping termination-point-inventory-attributes { + description + "Network Inventory mapping termination point (TP) scope + attributes"; + container inventory-mapping-attributes { + description + "The container TP attributes of Network Inventory mapping."; + leaf tp-name { + type string; + config false; + description + "The name of the TP."; + } + leaf port-component-ref { + type leafref { + path + "/nwi:network-inventory/nwi:network-elements" + + "/nwi:network-element[nwi:ne-id=current()/../../../" + + "inventory-mapping-attributes/ne-ref]/nwi:components" + + "/nwi:component/nwi:component-id"; + } + config false; + description + "The reference of the port component from which this + termination point is abstracted."; + } + leaf-list interface-name { + type string; + description + "Name of the interface. The name can (but does not + have to) correspond to an interface reference of a + containing node's interface, i.e., the path name of a + corresponding interface data node on the containing + node is reminiscent of data type interface-ref defined + in RFC 8343. It should be noted that data type + interface-ref of RFC 8343 cannot be used directly, + as this data type is used to reference an interface + in a datastore of a single node in the network, not + to uniquely reference interfaces across a network."; + } + uses system-mount-point; + } + } + + grouping link-inventory-attributes { + description + "Network Inventory mapping link scope attributes"; + container inventory-mapping-attributes { + description + "The container link attributes of network inventory mapping."; + leaf link-name { + type string; + description + "The name of the link."; + } + leaf cable-name { + type string; + config false; + description + "The reference of the cable inventory from which + this link is abstracted + Note: this will be changed based on the future inventoy + cable model."; + } + leaf link-type { + type string; + config false; + description + "The type of the link. + Note: this will be changed based on the future inventoy + cable model."; + } + } + } + + /* Main blocks */ + + augment "/nw:networks/nw:network/nw:network-types" { + description + "Introduces new network type for network inventory mapping."; + uses inventory-mapping-network-type; + } + + augment "/nw:networks/nw:network/nw:node" { + when '/nw:networks/nw:network/nw:network-types/ + nwit:network-inventory-mapping' { + description + "Augmentation parameters apply only for network inventory + mapping."; + } + description + "Configuration parameters for inventory at the node + level."; + uses node-inventory-attributes; + } + + augment "/nw:networks/nw:network/nt:link" { + when '/nw:networks/nw:network/nw:network-types/ + nwit:network-inventory-mapping' { + description + "Augmentation parameters apply only for network + inventory."; + } + description + "Augments inventory topology link information."; + uses link-inventory-attributes; + } + + augment + "/nw:networks/nw:network/nw:node/nt:termination-point" { + when '/nw:networks/nw:network/nw:network-types/ + nwit:network-inventory-mapping' { + description + "Augmentation parameters apply only for network + inventory."; + } + description + "Augments inventory termination point information."; + uses termination-point-inventory-attributes; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-10-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-10-23.yang deleted file mode 100644 index 37e5351c0..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2023-10-23.yang +++ /dev/null @@ -1,374 +0,0 @@ -module ietf-network-inventory { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory"; - prefix ni; - - import iana-hardware { - prefix ianahw; - reference - "https://www.iana.org/assignments/yang-parameters"; - } - - import ietf-yang-types { - prefix yang; - reference - "RFC6991: Common YANG Data Types."; - } - - import ietf-inet-types { - prefix inet; - reference - "RFC6991: Common YANG Data Types."; - } - - organization - "IETF IVY Working Group"; - contact - "WG Web: - WG List: - - Editor: Chaode Yu - - - Editor: Sergio Belotti - - - Editor: Jean-Francois Bouquier - - - Editor: Fabio Peruzzini - - - Editor: Phil Bedard - "; - - description - "This module defines a base model for retrieving network - inventory. - - 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."; - - // RFC Ed.: replace XXXX with actual RFC number and remove this - // note. - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. - - revision 2023-10-23 { - description - "Initial version"; - reference - "RFC XXXX: A YANG Data Model for Network Inventory."; - //RFC Editor: replace XXXX with actual RFC number, update date - //information and remove this note - } - - identity non-hardware-component-class { - description - "Base identity for non hardware components (e.g., software - components) in a managed device."; - } - - identity ne-type { - description - "Base identity for network element (NE) types."; - } - - identity ne-physical { - base ni:ne-type; - description - "A physical network element (NE). "; - } - - grouping common-entity-attributes { - description - "A set of attributes which are common to all the entities - (e.g., component, equipment room) defined in this module."; - leaf uuid { - type yang:uuid; - description - "Uniquely identifies an entity (e.g., component)."; - } - leaf name { - type string; - description - "A name for an entity (e.g., component), as specified by - a network manager, that provides a non-volatile 'handle' - for the entity and that can be modified anytime during the - entity lifetime. - - If no configured value exists, the server MAY set the value - of this node to a locally unique value in the operational - state."; - } - leaf description { - type string; - description "a textual description of inventory object"; - } - leaf alias { - type string; - description - "a alias name of inventory objects. This alias name can be - specified by network manager."; - } - } - - grouping ne-specific-info-grouping { - description - "Attributes applicable to network elements."; - leaf hardware-rev { - type string; - description - "The vendor-specific hardware revision string for the NE."; - } - leaf software-rev { - type string; - description - "The vendor-specific software revision string for the NE."; - } - leaf mfg-name { - type string; - description "The name of the manufacturer of this NE"; - } - leaf mfg-date { - type yang:date-and-time; - description "The date of manufacturing of the NE."; - } - leaf part-number { - type string; - description - "The vendor-specific model name identifier string associated - with this NE. The preferred value is the customer-visible - part number, which may be printed on the NE itself."; - } - leaf serial-number { - type string; - description - "The vendor-specific serial number string for the NE"; - } - leaf product-name { - type string; - description - "indicates the vendor-spefic device type infomation."; - } - } - - container network-elements { - description - "The top-level container for the list of network elements - within the network."; - list network-element { - key ne-id; - description - "The list of network elements within the network."; - leaf ne-id { - type string; - description - "Network Element (NE) identifier."; - } - leaf ne-type { - type identityref { - base ne-type; - } - default "ne-physical"; - description - "The type of network element (NE)."; - } - uses common-entity-attributes; - uses ne-specific-info-grouping; - container components { - description - "The top-level container for the list of components - within a network element."; - list component { - key component-id; - description - "The list of components within a network element."; - leaf component-id { - type string; - description - "Component identifier"; - } - leaf class { - type union { - type identityref { - base ianahw:hardware-class; - } - type identityref { - base non-hardware-component-class; - } - } - mandatory true; - description - "The type of the component."; - } - uses common-entity-attributes; - container child-component-ref { - description - "A placeholder for adding the reference to child - component(s): to further discuss whether to define - a child leaf-list as RFC8348 or a list of - sub-components as openconfig-platform."; - } - leaf parent-rel-pos { - type int32 { - range "0 .. 2147483647"; - } - description - "The relative position with respect to the parent - component among all the sibling components."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalParentRelPos"; - } - container parent-component-ref { - description - "A placeholder for adding the reference to parent - component(s): to further discuss whether to define - a parent attribute as RFC83458 or a - parent-component-references container as in - draft-ietf-ccamp-network-inventory-yang-02."; - } - leaf hardware-rev { - type string; - description - "The vendor-specific hardware revision string for the - component. The preferred value is the hardware - revision identifier actually printed on the component - itself (if present)."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalHardwareRev"; - } - leaf firmware-rev { - type string; - description - "The vendor-specific firmware revision string for the - component."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalFirmwareRev"; - } - leaf software-rev { - type string; - description - "The vendor-specific software revision string for the - component."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalSoftwareRev"; - } - leaf serial-num { - type string; - description - "The vendor-specific serial number string for the - component. The preferred value is the serial number - string actually printed on the component itself (if - present)."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalSerialNum"; - } - leaf mfg-name { - type string; - description - "The name of the manufacturer of this physical - component. - The preferred value is the manufacturer name string - actually printed on the component itself (if present). - - Note that comparisons between instances of the - 'model-name', 'firmware-rev', 'software-rev', and - 'serial-num' nodes are only meaningful amongst - components with the same value of 'mfg-name'. - - If the manufacturer name string associated with the - physical component is unknown to the server, then this - node is not instantiated."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalMfgName"; - } - leaf part-number { - type string; - description - "The vendor-specific model name identifier string - associated with this physical component. The preferred - value is the customer-visible part number, which may be - printed on the component itself. - - If the model name string associated with the physical - component is unknown to the server, then this node is - not instantiated."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalModelName"; - } - leaf asset-id { - type string; - description - "This node is a user-assigned asset tracking - identifier for the component. - - A server implementation MAY map this leaf to the - entPhysicalAssetID MIB object. Such an implementation - needs to use some mechanism to handle the differences - in size and characters allowed between this leaf and - entPhysicalAssetID. The definition of such a - mechanism is outside the scope of this document."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalAssetID"; - } - leaf is-fru { - type boolean; - description - "This node indicates whether or not this component is - considered a 'field-replaceable unit' by the vendor. - If this node contains the value 'true', then this - component identifies a field-replaceable unit. - For all components that are permanently contained - within a field-replaceable unit, the value 'false' - should be returned for this node."; - reference - "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU"; - } - leaf mfg-date { - type yang:date-and-time; - description - "The date of manufacturing of the managed component."; - reference - "RFC 6933: Entity MIB (Version 4) - - entPhysicalMfgDate"; - } - leaf-list uri { - type inet:uri; - description - "This node contains identification information about - the component."; - reference - "RFC 6933: Entity MIB (Version 4) - entPhysicalUris"; - } - } - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-04-09.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-04-09.yang new file mode 100644 index 000000000..467aa9635 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory@2024-04-09.yang @@ -0,0 +1,487 @@ +module ietf-network-inventory { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory"; + prefix ni; + + import iana-hardware { + prefix ianahw; + reference + "https://www.iana.org/assignments/yang-parameters"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC6991: Common YANG Data Types."; + } + import ietf-inet-types { + prefix inet; + reference + "RFC6991: Common YANG Data Types."; + } + + organization + "IETF IVY Working Group"; + contact + "WG Web: + WG List: + + Editor: Chaode Yu + + + Editor: Sergio Belotti + + + Editor: Jean-Francois Bouquier + + + Editor: Fabio Peruzzini + + + Editor: Phil Bedard + "; + description + "This module defines a base model for retrieving network + inventory. + + 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."; + + // RFC Ed.: replace XXXX with actual RFC number and remove this + // note. + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + + revision 2024-04-09 { + description + "Initial version"; + reference + "RFC XXXX: A YANG Data Model for Network Inventory."; + //RFC Editor: replace XXXX with actual RFC number, update date + //information and remove this note + } + + identity non-hardware-component-class { + description + "Base identity for non hardware components (e.g., software + components) in a managed device."; + } + + identity ne-type { + description + "Base identity for network element (NE) types."; + } + + identity ne-physical { + base ni:ne-type; + description + "A physical network element (NE). "; + } + + grouping common-entity-attributes { + description + "A set of attributes which are common to all the entities + (e.g., component, equipment room) defined in this module."; + leaf uuid { + type yang:uuid; + config false; + description + "Uniquely identifies an entity (e.g., component)."; + } + leaf name { + type string; + description + "A name for an entity (e.g., component), as specified by + a network manager, that provides a non-volatile 'handle' + for the entity and that can be modified anytime during the + entity lifetime. + + If no configured value exists, the server MAY set the value + of this node to a locally unique value in the operational + state."; + } + leaf description { + type string; + description + "a textual description of inventory object"; + } + leaf alias { + type string; + description + "a alias name of inventory objects. This alias name can be + specified by network manager."; + } + } + + grouping ne-specific-info-grouping { + description + "Attributes applicable to network elements."; + leaf hardware-rev { + type string; + config false; + description + "The vendor-specific hardware revision string for the NE."; + } + leaf software-rev { + type string; + config false; + description + "The vendor-specific software revision string for the NE."; + } + leaf-list software-patch-rev { + type string; + config false; + description + "The vendor-specific patch software revision string for the + NE."; + } + leaf mfg-name { + type string; + config false; + description + "The name of the manufacturer of this NE"; + } + leaf mfg-date { + type yang:date-and-time; + config false; + description + "The date of manufacturing of the NE."; + } + leaf serial-number { + type string; + config false; + description + "The vendor-specific serial number of the network element + instance. It is expected that vendors assign unique serial + numbers to different network element instances within the + scope of the product name."; + } + leaf product-name { + type string; + config false; + description + "The vendor-specific and human-interpretable string + describing the network element type. It is expected that + vendors assign unique product names to different NE types + within the scope of the vendor."; + } + } + + grouping component-specific-info-grouping { + description + "Provide component-specific attributes for different + components."; + container chassis-specific-info { + when "../class = 'ianahw:chassis'"; + config false; + description + "This container contains some attributes belong to + chassis only."; + uses chassis-specific-info-grouping; + } + container slot-specific-info { + when "../class = 'ianahw:container'"; + config false; + description + "This container contains some attributes belong to + slot only."; + uses slot-specific-info-grouping; + } + container board-specific-info { + when "../class = 'ianahw:module'"; + config false; + description + "This container contains some attributes belong to + board only."; + uses board-specific-info-grouping; + } + container port-specific-info { + when "../class = 'ianahw:port'"; + config false; + description + "This container contains some attributes belong to + port only."; + uses port-specific-info-grouping; + } + } + + grouping chassis-specific-info-grouping { + //To be enriched in the future. + description + "Specific attributes applicable to chassis only."; + } + + grouping slot-specific-info-grouping { + //To be enriched in the future. + description + "Specific attributes applicable to slots only."; + } + + grouping board-specific-info-grouping { + //To be enriched in the future. + description + "Specific attributes applicable to boards only."; + } + + grouping port-specific-info-grouping { + //To be enriched in the future. + description + "Specific attributes applicable to ports only."; + } + + grouping ne-info-grouping { + description + "Grouping for network elements."; + container network-elements { + description + "The top-level container for the list of network elements + within the network."; + list network-element { + key "ne-id"; + description + "The list of network elements within the network."; + leaf ne-id { + type string; + description + "Network Element (NE) identifier."; + } + leaf ne-type { + type identityref { + base ne-type; + } + default "ne-physical"; + config false; + description + "The type of network element (NE)."; + } + uses common-entity-attributes; + uses ne-specific-info-grouping; + container components { + description + "The top-level container for the list of components + within a network element."; + list component { + key "component-id"; + description + "The list of components within a network element."; + leaf component-id { + type string; + description + "Component identifier"; + } + leaf class { + type union { + type identityref { + base ianahw:hardware-class; + } + type identityref { + base non-hardware-component-class; + } + } + config false; + mandatory true; + description + "The type of the component."; + } + uses common-entity-attributes; + container child-component-ref { + config false; + description + "A placeholder for adding the reference to child + component(s): to further discuss whether to define + a child leaf-list as RFC8348 or a list of + sub-components as openconfig-platform."; + } + leaf parent-rel-pos { + type int32 { + range "0 .. 2147483647"; + } + config false; + description + "The relative position with respect to the parent + component among all the sibling components."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalParentRelPos"; + } + container parent-component-ref { + config false; + description + "A placeholder for adding the reference to parent + component(s): to further discuss whether to define + a parent attribute as RFC8348 or a + parent-component-references container as in + draft-ietf-ccamp-network-inventory-yang-02."; + } + leaf hardware-rev { + type string; + config false; + description + "The vendor-specific hardware revision string for the + component. The preferred value is the hardware + revision identifier actually printed on the + component itself (if present)."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalHardwareRev"; + } + leaf firmware-rev { + type string; + config false; + description + "The vendor-specific firmware revision string for the + component."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalFirmwareRev"; + } + leaf software-rev { + type string; + config false; + description + "The vendor-specific software revision string for the + component."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalSoftwareRev"; + } + leaf-list software-patch-rev { + type string; + config false; + description + "The vendor-specific patch software revision string + for the component."; + } + leaf serial-num { + type string; + config false; + description + "The vendor-specific serial number of the component + instance. It is expected that vendors assign unique + serial numbers to different component instances + within the scope of the part number."; + } + leaf mfg-name { + type string; + config false; + description + "The name of the manufacturer of this physical + component. + The preferred value is the manufacturer name string + actually printed on the component itself + (if present). + + Note that comparisons between instances of the + 'model-name', 'firmware-rev', 'software-rev', and + 'serial-num' nodes are only meaningful amongst + components with the same value of 'mfg-name'. + + If the manufacturer name string associated with the + physical component is unknown to the server, then + this node is not instantiated."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalMfgName"; + } + leaf part-number { + type string; + config false; + description + "The vendor-specific part number of the component + type. It is expected that vendors assign unique part + numbers to different component types within the + scope of the vendor."; + } + leaf product-name { + type string; + config false; + description + "The vendor-specific and human-interpretable string + describing the component type. It is expected that + vendors assign unique product names to different + component types within the scope of the vendor."; + } + leaf asset-id { + type string; + config false; + description + "This node is a user-assigned asset tracking + identifier for the component. + + A server implementation MAY map this leaf to the + entPhysicalAssetID MIB object. Such an + implementation needs to use some mechanism to handle + the differences in size and characters allowed + between this leaf and entPhysicalAssetID. + + The definition of such a mechanism is outside the + scope of this document."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalAssetID"; + } + leaf is-fru { + type boolean; + config false; + description + "This node indicates whether or not this component is + considered a 'field-replaceable unit' by the vendor. + If this node contains the value 'true', then this + component identifies a field-replaceable unit. + For all components that are permanently contained + within a field-replaceable unit, the value 'false' + should be returned for this node."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalIsFRU"; + } + leaf mfg-date { + type yang:date-and-time; + config false; + description + "The date of manufacturing of the managed + component."; + reference + "RFC 6933: Entity MIB (Version 4) - + entPhysicalMfgDate"; + } + leaf-list uri { + type inet:uri; + config false; + description + "This node contains identification information about + the component."; + reference + "RFC 6933: Entity MIB (Version 4) - entPhysicalUris"; + } + uses component-specific-info-grouping; + } + } + } + } + } + + container network-inventory { + description + "Top-level container for network inventory."; + uses ne-info-grouping; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-mapping@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-mapping@2024-07-05.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-network-slice-mapping@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-network-slice-mapping@2024-07-05.yang index 71cd95171..36ef34b93 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-mapping@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-mapping@2024-07-05.yang @@ -34,7 +34,7 @@ module ietf-network-slice-mapping { import ietf-nrp { prefix nrp; reference - "I-D.wdbsp-teas-nrp-yang: A YANG Data Model for Network + "I-D.ietf-teas-nrp-yang: A YANG Data Model for Network Resource Partitions (NRPs)"; } @@ -50,7 +50,7 @@ module ietf-network-slice-mapping { "This module contains a YANG module to map the IETF Network Slice with Traffic Engineering (TE) or VPN Network models. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -63,7 +63,7 @@ module ietf-network-slice-mapping { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-07-05 { description "initial version."; reference @@ -137,7 +137,7 @@ module ietf-network-slice-mapping { description "A reference to NRP name"; reference - "I-D.wdbsp-teas-nrp-yang: A YANG Data Model for + "I-D.ietf-teas-nrp-yang: A YANG Data Model for Network Resource Partitions (NRPs)"; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-10-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-10-23.yang deleted file mode 100644 index 5c54ea104..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2023-10-23.yang +++ /dev/null @@ -1,1313 +0,0 @@ -module ietf-network-slice-service { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-network-slice-service"; - prefix ietf-nss; - - import ietf-inet-types { - prefix inet; - reference - "RFC 6991: Common YANG Types"; - } - import ietf-vpn-common { - prefix vpn-common; - reference - "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3 - VPNs"; - } - 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, Section 6.2"; - } - import ietf-te-packet-types { - prefix te-packet-types; - reference - "RFC 8776: Common YANG Data Types for Traffic Engineering, - Section 5"; - } - - organization - "IETF Traffic Engineering Architecture and Signaling (TEAS) - Working Group"; - contact - "WG Web: - WG List: - - Editor: Bo Wu - - Editor: Dhruv Dhody - - Editor: Reza Rokui - - Editor: Tarek Saad - - Editor: John Mullooly - "; - description - "This YANG module defines a model for the IETF Network Slice - Service. - - 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."; - - revision 2023-10-23 { - description - "Initial revision."; - reference - "RFC XXXX: A YANG Data Model for the IETF Network Slice Service"; - } - - /* Features */ - /* Identities */ - - identity service-tag-type { - description - "Base identity for IETF Network Slice Service tag type."; - } - - identity service-tag-customer { - base service-tag-type; - description - "The IETF Network Slice Service customer ID tag type."; - } - - identity service-tag-service { - base service-tag-type; - description - "The IETF Network Slice service tag type, e.g. Layer 2 or - Layer 3 service."; - } - - identity service-tag-opaque { - base service-tag-type; - description - "The IETF Network Slice Service opaque tag type."; - } - - identity attachment-circuit-tag-type { - description - "Base identity for the attachment circuit tag type."; - } - - identity vlan-id { - base attachment-circuit-tag-type; - description - "Identity for VLAN ID tag type, e.g. dot1Q or QinQ VLAN IDs."; - } - - identity ip-mask { - base attachment-circuit-tag-type; - description - "Identity for IP mask tag type."; - } - - identity service-isolation-type { - description - "Base identity for IETF Network Slice Service isolation type."; - } - - identity service-traffic-isolation { - base service-isolation-type; - description - "Specify the requirement for separating the traffic of the - customer's IETF Network Slice Service from other services, - which may be provided by the service provider using VPN - technologies, such as L3VPN, L2VPN, EVPN, etc."; - } - - identity service-security-type { - description - "Base identity for IETF Network Slice Service security type."; - } - - identity authentication { - base service-security-type; - description - "Indicates that the Slice Service requires authentication."; - } - - identity integrity { - base service-security-type; - description - "Indicates that the Slice Service requires data integrity."; - } - - identity encryption { - base service-security-type; - description - "Indicates that the Slice Service requires data encryption."; - } - - identity point-to-point { - base vpn-common:vpn-topology; - description - "Identity for point-to-point IETF Network Slice - Service connectivity."; - } - - identity point-to-multipoint { - base vpn-common:vpn-topology; - description - "Identity for point-to-multipoint IETF Network Slice - Service connectivity."; - } - - identity multipoint-to-multipoint { - base vpn-common:vpn-topology; - description - "Identity for multipoint-to-multipoint IETF Network Slice - Service connectivity."; - } - - identity multipoint-to-point { - base vpn-common:vpn-topology; - description - "Identity for multipoint-to-point IETF Network Slice - Service connectivity."; - } - - identity sender-role { - base vpn-common:role; - description - "Indicates that an SDP is acting as a sender."; - } - - identity receiver-role { - base vpn-common:role; - description - "Indicates that an SDP is acting as a receiver."; - } - - identity service-slo-metric-type { - description - "Base identity for IETF Network Slice Service SLO metric type."; - } - - identity one-way-bandwidth { - base service-slo-metric-type; - description - "SLO bandwidth metric. Minimum guaranteed bandwidth between - two SDPs at any time and is measured unidirectionally."; - } - - identity two-way-bandwidth { - base service-slo-metric-type; - description - "SLO bandwidth metric. Minimum guaranteed bandwidth between - two SDPs at any time."; - } - - identity shared-bandwidth { - base service-slo-metric-type; - description - "The shared SLO bandwidth bound. It is the limit on the - bandwidth that can be shared amongst a group of - connectivity constructs of a Slice Service."; - } - - identity one-way-delay-maximum { - base service-slo-metric-type; - description - "The SLO objective of this metric is the upper bound of network - delay when transmitting between two SDPs."; - reference - "RFC7679: A One-Way Delay Metric for IP Performance - Metrics (IPPM)"; - } - - identity one-way-delay-percentile { - base service-slo-metric-type; - description - "The SLO objective of this metric is percentile objective of - network delay when transmitting between two SDPs. - The metric is defined in RFC7679."; - reference - "RFC7679: A One-Way Delay Metric for IP Performance - Metrics (IPPM)"; - } - - identity two-way-delay-maximum { - base service-slo-metric-type; - description - "SLO two-way delay is the upper bound of network delay when - transmitting between two SDPs"; - reference - "RFC2681: A Round-trip Delay Metric for IPPM"; - } - identity two-way-delay-percentile { - base service-slo-metric-type; - description - "The SLO objective of this metric is the percentile - objective of network delay when the traffic transmitting - between two SDPs."; - reference - "RFC2681: A Round-trip Delay Metric for IPPM"; - } - - identity one-way-delay-variation-maximum { - base service-slo-metric-type; - description - "The SLO objective of this metric is maximum bound of the - difference in the one-way delay between sequential packets - between two SDPs."; - reference - "RFC3393: IP Packet Delay Variation Metric for IP Performance - Metrics (IPPM)"; - } - - identity one-way-delay-variation-percentile { - base service-slo-metric-type; - description - "The SLO objective of this metric is the percentile objective - in the one-way delay between sequential packets between two - SDPs."; - reference - "RFC3393: IP Packet Delay Variation Metric for IP Performance - Metrics (IPPM)"; - } - - identity two-way-delay-variation-maximum { - base service-slo-metric-type; - description - "SLO two-way delay variation is the difference in the - round-trip delay between sequential packets between two SDPs."; - reference - "RFC5481: Packet Delay Variation Applicability Statement"; - } - - identity two-way-delay-variation-percentile { - base service-slo-metric-type; - description - "The SLO objective of this metric is the percentile objective - in the round-trip delay between sequential packets between - two SDPs."; - reference - "RFC5481: Packet Delay Variation Applicability Statement"; - } - - identity one-way-packet-loss { - base service-slo-metric-type; - description - "This metric type refers to the ratio of packets dropped - to packets transmitted between two SDPs in one-way - over a period of time."; - reference - "RFC7680: A One-Way Loss Metric for IP Performance - Metrics (IPPM)"; - } - - identity two-way-packet-loss { - base service-slo-metric-type; - description - "This metric type refers to the ratio of packets dropped - to packets transmitted between two SDPs in two-way - over a period of time."; - reference - "RFC7680: A One-Way Loss Metric for IP Performance - Metrics (IPPM)"; - } - - /* - * Identity for availability-type - */ - - identity availability-type { - description - "Base identity from which specific availability types are - derived."; - } - - identity level-1 { - base availability-type; - description - "Specifies the availability level 1: 99.9999%"; - } - - identity level-2 { - base availability-type; - description - "Specifies the availability level 2: 99.999%"; - } - - identity level-3 { - base availability-type; - description - "Specifies the availability level 3: 99.99%"; - } - - identity level-4 { - base availability-type; - description - "Specifies the availability level 4: 99.9%"; - } - - identity level-5 { - base availability-type; - description - "Specifies the availability level 5: 99%"; - } - - identity service-match-type { - description - "Base identity for IETF Network Slice Service traffic - match type."; - } - - identity service-phy-interface-match { - base service-match-type; - description - "Uses the physical interface as match criteria for - Slice Service traffic."; - } - - identity service-vlan-match { - base service-match-type; - description - "Uses the VLAN ID as match criteria for the Slice Service - traffic."; - } - - identity service-label-match { - base service-match-type; - description - "Uses the MPLS label as match criteria for the Slice Service - traffic."; - } - - identity service-source-ip-prefix-match { - base service-match-type; - description - "Uses source ip prefix as match criteria for the Slice Service - traffic. Examples of 'value' of this match type are - '192.0.2.0/24' and '2001:db8::1/64'."; - } - - identity service-destination-ip-prefix-match { - base service-match-type; - description - "Uses destination ip prefix as match criteria for the Slice - Service traffic. Examples of 'value' of this match type are - '203.0.113.1/32', '2001:db8::2/128'."; - } - - identity service-dscp-match { - base service-match-type; - description - "Uses DSCP field in the IP packet header as match criteria - for the Slice Service traffic."; - } - - identity service-acl-match { - base service-match-type; - description - "Uses Access Control List (ACL) as match criteria - for the Slice Service traffic."; - reference - "RFC 8519: YANG Data Model for - Network Access Control Lists (ACLs)"; - } - - identity service-any-match { - base service-match-type; - description - "Matches any Slice Service traffic."; - } - - identity slo-sle-policy-override { - description - "Base identity for SLO/SLE policy override options."; - } - - identity slo-sle-policy-full-override { - base slo-sle-policy-override; - description - "The policy of SLO/SLE(s) that is defined at a - child level override a parent SLO/SLE policy, - which means that no SLO/SLE(s) are inherited from parent - if a child SLO/SLE policy exists."; - } - identity slo-sle-policy-partial-override { - base slo-sle-policy-override; - description - "The policy of SLO/SLE(s) that is defined at a - child level updates the parent SLO/SLE policy. - For example, if a specific SLO is defined - at the child level, that specific SLO overrides the - one inherited from a parent SLO/SLE policy, while all other - SLOs in the parent SLO-SLE policy still apply."; - } - - /* Typedef */ - - typedef percentile { - type decimal64 { - fraction-digits 3; - range "0..100"; - } - description - "The percentile is a value between 0 and 100 - to 3 decimal places, e.g. 10.000, 99.900 ,99.990, etc. - For example, for a given one-way delay measurement, - if the percentile is set to 95.000 and the 95th percentile - one-way delay is 2 milliseconds, then the 95 percent of - the sample value is less than or equal to 2 milliseconds."; - } - - /* Groupings */ - - grouping service-slos { - description - "Directly measurable objectives of a Slice Service."; - container slo-policy { - description - "Contains the SLO policy."; - list metric-bound { - key "metric-type"; - description - "List of Slice Service metric bounds."; - leaf metric-type { - type identityref { - base service-slo-metric-type; - } - description - "Identifies an entry in the list of metric type - bounds for the Slice Service."; - } - leaf metric-unit { - type string; - mandatory true; - description - "The metric unit of the parameter. For example, - s, ms, ns, and so on."; - } - leaf value-description { - type string; - description - "The description of the provided value."; - } - leaf percentile-value { - type percentile; - description - "The percentile value of the metric type."; - } - leaf bound { - type uint64; - default "0"; - description - "The bound on the Slice Service connection metric. - When set to zero, this indicates an unbounded - upper limit for the specific metric-type."; - } - } - leaf availability { - type identityref { - base availability-type; - } - description - "Service availability level"; - } - leaf mtu { - type uint16; - units "bytes"; - description - "The MTU specifies the maximum length of data - packets of the Slice Service. - The value needs to be less than or equal to the - minimum MTU value of all 'attachment-circuits' - in the SDPs."; - } - } - } - - grouping service-sles { - description - "Indirectly measurable objectives of a Slice Service."; - container sle-policy { - description - "Contains the SLE policy."; - leaf-list security { - type identityref { - base service-security-type; - } - description - "The security functions that the customer requests - the operator to apply to traffic between the two SDPs."; - } - leaf-list isolation { - type identityref { - base service-isolation-type; - } - description - "The Slice Service isolation requirement."; - } - leaf max-occupancy-level { - type uint8 { - range "1..100"; - } - description - "The maximal occupancy level specifies the number of flows - to be admitted."; - } - container steering-constraints { - description - "Container for the policy of steering constraints - applicable to the Slice Service."; - container path-constraints { - description - "Container for the policy of path constraints - applicable to the Slice Service."; - } - container service-function { - description - "Container for the policy of service function - applicable to the Slice Service."; - } - } - } - } - - grouping sdp-peering { - description - "A grouping for the Slice Service SDP peering."; - container sdp-peering { - description - "Describes SDP peering attributes."; - leaf peer-sap-id { - type string; - description - "Indicates a reference to the remote endpoints of an - attachment circuit. This information can be used for - correlation purposes, such as identifying a service - attachment point (SAP) of a provider equipment when - requesting a service with CE based SDP attributes."; - reference - "RFC9408: A YANG Network Data Model for - Service Attachment Points (SAPs)"; - } - container protocols { - description - "Serves as an augmentation target. - Protocols can be augmented into this container, - e.g. BGP, static routing."; - } - } - } - - grouping sdp-attachment-circuits { - description - "Grouping for the SDP attachment circuit definition."; - container attachment-circuits { - description - "List of attachment circuits."; - list attachment-circuit { - key "id"; - description - "The IETF Network Slice Service SDP attachment circuit - related parameters."; - leaf id { - type string; - description - "Uniquely identifies an attachment circuit."; - } - leaf description { - type string; - description - "The attachment circuit's description."; - } - leaf ac-svc-name { - type string; - description - "Indicates an attachment circuit (AC) service name, - for association purposes, to refer to an AC that has been - created before the slice creation. - This node can override 'ac-svc-name' of the parent SDP."; - } - leaf ac-node-id { - type string; - description - "The attachment circuit node ID in the case of - multi-homing."; - } - leaf ac-tp-id { - type string; - description - "The termination port ID of the attachment circuit."; - } - leaf ac-ipv4-address { - type inet:ipv4-address; - description - "The IPv4 address of the AC."; - } - leaf ac-ipv4-prefix-length { - type uint8; - description - "The IPv4 subnet prefix length expressed in bits."; - } - leaf ac-ipv6-address { - type inet:ipv6-address; - description - "The IPv6 address of the AC."; - } - leaf ac-ipv6-prefix-length { - type uint8; - description - "The IPv6 subnet prefix length expressed in bits."; - } - leaf mtu { - type uint16; - units "bytes"; - description - "Maximum size of the Slice Service data packet - that can traverse an SDP."; - } - container ac-tags { - description - "Container for the attachment circuit tags."; - list ac-tags { - key "tag-type"; - description - "The attachment circuit tags list."; - leaf tag-type { - type identityref { - base attachment-circuit-tag-type; - } - description - "The attachment circuit tag type."; - } - leaf-list value { - type string; - description - "The attachment circuit tag values. For example, the - tag may indicate 'c-vlan' and 's-vlan'."; - } - } - } - uses service-qos; - uses sdp-peering; - uses vpn-common:service-status; - } - } - } - - grouping sdp-monitoring-metrics { - description - "Grouping for the SDP monitoring metrics."; - container sdp-monitoring { - config false; - description - "Container for SDP monitoring metrics."; - leaf incoming-bw-value { - type uint64; - units "bps"; - description - "Indicates the absolute value of the incoming bandwidth - at an SDP from the customer network or - from another provider's network."; - } - leaf incoming-bw-percent { - type decimal64 { - fraction-digits 5; - range "0..100"; - } - units "percent"; - mandatory true; - description - "Indicates a percentage of the incoming bandwidth - at an SDP from the customer network or - from another provider's network."; - } - leaf outgoing-bw-value { - type uint64; - units "bps"; - description - "Indicates the absolute value of the outgoing bandwidth - at an SDP towards the customer network or towards - another provider's network."; - } - leaf outgoing-bw-percent { - type decimal64 { - fraction-digits 5; - range "0..100"; - } - units "percent"; - mandatory true; - description - "Indicates a percentage of the outgoing bandwidth - at an SDP towards the customer network or towards - another provider's network."; - } - } - } - - grouping connectivity-construct-monitoring-metrics { - description - "Grouping for connectivity construct monitoring metrics."; - uses te-packet-types:one-way-performance-metrics-packet; - uses te-packet-types:two-way-performance-metrics-packet; - } - - grouping geolocation { - description - "A grouping containing a GPS location."; - container location { - description - "A container containing a GPS location."; - leaf altitude { - type int64; - units "millimeter"; - description - "Distance above the sea level."; - } - leaf latitude { - type decimal64 { - fraction-digits 8; - range "-90..90"; - } - description - "Relative position north or south on the Earth's surface."; - } - leaf longitude { - type decimal64 { - fraction-digits 8; - range "-180..180"; - } - description - "Angular distance east or west on the Earth's surface."; - } - } - } - - grouping bw-rate-limits { - description - "Bandwidth rate limits grouping."; - reference - "RFC 7640: Traffic Management Benchmarking"; - leaf cir { - type uint64; - units "bps"; - description - "Committed Information Rate. The maximum number of bits - that a port can receive or send during one-second over an - interface."; - } - leaf cbs { - type uint64; - units "bytes"; - description - "Committed Burst Size. CBS controls the bursty nature - of the traffic. Traffic that does not use the configured - CIR accumulates credits until the credits reach the - configured CBS."; - } - leaf eir { - type uint64; - units "bps"; - description - "Excess Information Rate, i.e., excess frame delivery - allowed not subject to SLA. The traffic rate can be - limited by EIR."; - } - leaf ebs { - type uint64; - units "bytes"; - description - "Excess Burst Size. The bandwidth available for burst - traffic from the EBS is subject to the amount of - bandwidth that is accumulated during periods when - traffic allocated by the EIR policy is not used."; - } - leaf pir { - type uint64; - units "bps"; - description - "Peak Information Rate, i.e., maximum frame delivery - allowed. It is equal to or less than sum of CIR and EIR."; - } - leaf pbs { - type uint64; - units "bytes"; - description - "Peak Burst Size."; - } - } - - grouping service-qos { - description - "The rate limits grouping."; - container incoming-qos-policy { - description - "The QoS policy imposed on ingress direction of the traffic , - from the customer network or from another provider's network."; - leaf qos-policy-name { - type string; - description - "The name of the QoS policy that is applied to the - attachment circuit. The name can reference a QoS - profile that is pre-provisioned on the device."; - } - container rate-limits { - description - "Container for the asymmetric traffic control."; - uses bw-rate-limits; - } - } - container outgoing-qos-policy { - description - "The QoS policy imposed on egress direction of the traffic , - towards the customer network or towards another - provider's network."; - leaf qos-policy-name { - type string; - description - "The name of the QoS policy that is applied to the - attachment circuit. The name can reference a QoS - profile that is pre-provisioned on the device."; - } - container rate-limits { - description - "The rate-limit imposed on outgoing traffic."; - uses bw-rate-limits; - } - } - } - - grouping sdp { - description - "Slice Service SDP related information"; - leaf id { - type string; - description - "Unique identifier for the referred Slice Service SDP."; - } - leaf description { - type string; - description - "Provides a description of the SDP."; - } - uses geolocation; - leaf node-id { - type string; - description - "Uniquely identifies an edge node of the SDP."; - } - leaf-list sdp-ip-address { - type inet:ip-address; - description - "IPv4 or IPv6 address of the SDP."; - } - leaf tp-ref { - type leafref { - path - "/nw:networks/nw:network[nw:network-id =current()/../../" - + "../custom-topology/network-ref]/" - + "nw:node/nt:termination-point/nt:tp-id"; - } - description - "A reference to Termination Point (TP) in the custom - topology"; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - container service-match-criteria { - description - "Describes the Slice Service match criteria."; - list match-criterion { - key "index"; - description - "List of the Slice Service traffic match criteria."; - leaf index { - type uint32; - description - "The identifier that uniquely identifies a match criteria."; - } - leaf match-type { - type identityref { - base service-match-type; - } - mandatory true; - description - "Indicates the match type of the entry in the list of - the Slice Service match criteria."; - } - leaf-list value { - type string; - description - "Provides a value for the Slice Service match criteria, - e.g. IP prefix and VLAN ID."; - } - leaf target-connection-group-id { - type leafref { - path "../../../../../ietf-nss:connection-groups" - + "/ietf-nss:connection-group" - + "/ietf-nss:id"; - } - mandatory true; - description - "Reference to the Slice Service connection group."; - } - leaf connection-group-sdp-role { - type identityref { - base vpn-common:role; - } - default "vpn-common:any-to-any-role"; - description - "Specifies the role of SDP in the connection group - When the service connection type is MP2MP, - such as hub and spoke service connection type. In addition, - this helps to create connectivity construct automatically - , rather than explicitly specifying each one."; - } - leaf target-connectivity-construct-id { - type leafref { - path "/ietf-nss:network-slice-services" - + "/ietf-nss:slice-service" - + "/ietf-nss:connection-groups" - + "/ietf-nss:connection-group[id" - + "=current()/../target-connection-group-id]" - + "/ietf-nss:connectivity-construct/ietf-nss:id"; - } - description - "Reference to a Network Slice connection construct."; - } - } - } - uses service-qos; - container sdp-peering { - description - "Describes SDP peering attributes."; - leaf-list peer-sap-id { - type string; - description - "Indicates the reference to the remote endpoints of the - attachment circuits. This information can be used for - correlation purposes, such as identifying service - attachment points (SAPs) of provider equipments when - requesting a service with CE based SDP attributes."; - } - container protocols { - description - "Serves as an augmentation target. - Protocols can be augmented into this container, - e.g. BGP, static routing."; - } - } - leaf-list ac-svc-name { - type string; - description - "Indicates the attachment circuit service name, - for association purposes, to refer to ACs that have been - created before the slice creation."; - } - uses sdp-attachment-circuits; - uses vpn-common:service-status; - uses sdp-monitoring-metrics; - } - grouping connectivity-construct { - description - "Grouping for Slice Service connectivity construct."; - list connectivity-construct { - key "id"; - description - "List of connectivity constructs."; - leaf id { - type uint32; - description - "The connectivity construct identifier."; - } - choice type { - default "p2p"; - description - "Choice for connectivity construct type."; - case p2p { - description - "P2P connectivity construct."; - leaf p2p-sender-sdp { - type leafref { - path "../../../../sdps/sdp/id"; - } - description - "Reference to a sender SDP."; - } - leaf p2p-receiver-sdp { - type leafref { - path "../../../../sdps/sdp/id"; - } - description - "Reference to a receiver SDP."; - } - } - case p2mp { - description - "P2MP connectivity construct."; - leaf p2mp-sender-sdp { - type leafref { - path "../../../../sdps/sdp/id"; - } - description - "Reference to a sender SDP."; - } - leaf-list p2mp-receiver-sdp { - type leafref { - path "../../../../sdps/sdp/id"; - } - description - "Reference to a receiver SDP."; - } - } - case a2a { - description - "A2A connectivity construct."; - list a2a-sdp { - key "sdp-id"; - description - "List of included A2A SDPs."; - leaf sdp-id { - type leafref { - path "../../../../../sdps/sdp/id"; - } - description - "Reference to an SDP."; - } - uses service-slo-sle-policy; - } - } - } - uses service-slo-sle-policy; - /* Per connectivity construct service-slo-sle-policy - * overrides the per slice service-slo-sle-policy. - */ - uses service-slo-sle-policy-override; - uses vpn-common:service-status; - container connectivity-construct-monitoring { - config false; - description - "SLO status per connectivity construct."; - uses connectivity-construct-monitoring-metrics; - } - } - } - - grouping connection-group { - description - "Grouping for Slice Service connection group."; - leaf id { - type string; - description - "The connection group identifier."; - } - leaf connectivity-type { - type identityref { - base vpn-common:vpn-topology; - } - default "vpn-common:any-to-any"; - description - "Connection group connectivity type."; - } - uses service-slo-sle-policy; - uses service-slo-sle-policy-override; - uses connectivity-construct; - /* Per connection group service-slo-sle-policy overrides - * the per slice service-slo-sle-policy. - */ - container connection-group-monitoring { - config false; - description - "SLO status per connection group."; - uses connectivity-construct-monitoring-metrics; - } - } - - grouping slice-service-template { - description - "Grouping for Slice Service templates."; - container slo-sle-templates { - description - "Contains a set of Slice Service templates."; - list slo-sle-template { - key "id"; - description - "List for SLO and SLE template identifiers."; - leaf id { - type string; - description - "Identification of the Service Level Objective (SLO) - and Service Level Expectation (SLE) template to be used. - Local administration meaning."; - } - leaf description { - type string; - description - "Describes the SLO and SLE policy template."; - } - leaf template-ref { - type leafref { - path "/ietf-nss:network-slice-services" - + "/ietf-nss:slo-sle-templates" - + "/ietf-nss:slo-sle-template" - + "/ietf-nss:id"; - } - description - "The reference to a standard template. When set it - indicates the base template over which further - SLO/SLE policy changes are made."; - } - uses service-slos; - uses service-sles; - } - } - } - - grouping service-slo-sle-policy { - description - "Slice service policy grouping."; - choice slo-sle-policy { - description - "Choice for SLO and SLE policy template. - Can be standard template or customized template."; - case standard { - description - "Standard SLO template."; - leaf slo-sle-template { - type leafref { - path "/ietf-nss:network-slice-services" - + "/ietf-nss:slo-sle-templates" - + "/ietf-nss:slo-sle-template" - + "/ietf-nss:id"; - } - description - "Standard SLO and SLE template to be used."; - } - } - case custom { - description - "Customized SLO and SLE template."; - container service-slo-sle-policy { - description - "Contains the SLO and SLE policy."; - leaf description { - type string; - description - "Describes the SLO and SLE policy."; - } - uses service-slos; - uses service-sles; - } - } - } - } - - grouping service-slo-sle-policy-override { - description - "Slice Service policy override grouping."; - leaf service-slo-sle-policy-override { - type identityref { - base slo-sle-policy-override; - } - default "ietf-nss:slo-sle-policy-full-override"; - description - "SLO/SLE policy override option."; - } - } - - /* Main IETF Network Slice Services Container */ - - container network-slice-services { - description - "Contains a list of IETF Network Slice Services"; - uses slice-service-template; - list slice-service { - key "id"; - description - "A Slice Service is identified by a service id."; - leaf id { - type string; - description - "A unique Slice Service identifier."; - } - leaf description { - type string; - description - "Textual description of the Slice Service."; - } - container service-tags { - description - "Container for the list of service tags."; - list tag-type { - key "tag-type"; - description - "The service tag list."; - leaf tag-type { - type identityref { - base service-tag-type; - } - description - "Slice service tag type."; - } - leaf-list value { - type string; - description - "The tag values, e.g. customer names when multiple - customers sharing same Slice Service in 5G scenario."; - } - } - } - uses service-slo-sle-policy; - leaf compute-only { - type empty; - description - "When present, the slice is computed. No resources are - committed or reserved in the network."; - } - uses vpn-common:service-status; - container sdps { - description - "Slice Service SDPs."; - list sdp { - key "id"; - min-elements 2; - uses sdp; - description - "List of SDPs in this Slice Service."; - } - } - container connection-groups { - description - "Contains connection groups."; - list connection-group { - key "id"; - description - "List of connection groups."; - uses connection-group; - } - } - container custom-topology { - description - "Serves as an augmentation target. - Container for custom topology, which is indicated by the - referenced topology predefined, e.g., an abstract RFC8345 - topology."; - uses nw:network-ref; - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-05-09.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-05-09.yang new file mode 100644 index 000000000..d6ccd4628 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-05-09.yang @@ -0,0 +1,1398 @@ +module ietf-network-slice-service { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-network-slice-service"; + prefix ietf-nss; + + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Types"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-geo-location { + prefix geo; + reference + "RFC 9179: A YANG Grouping for Geographic Locations"; + } + import ietf-vpn-common { + prefix vpn-common; + reference + "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3 + VPNs"; + } + 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, Section 6.2"; + } + import ietf-ac-common { + prefix ac-common; + reference + "RFC BBBB: A Common YANG Data Model for Attachment Circuits"; + } + import ietf-ac-svc { + prefix ac-svc; + reference + "RFC CCCC: YANG Data Models for Bearers and 'Attachment + Circuits'-as-a-Service (ACaaS)"; + } + import ietf-te-types { + prefix te-types; + reference + "RFC 8776: Traffic Engineering Common YANG Types"; + } + + organization + "IETF Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + contact + "WG Web: + WG List: + + Editor: Bo Wu + + Editor: Dhruv Dhody + + Editor: Reza Rokui + + Editor: Tarek Saad + + Editor: John Mullooly + "; + description + "This YANG module defines a service model for the RFC 9543 + Network Slice Service. + + 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 AAAA; see the + RFC itself for full legal notices."; + revision 2024-05-09 { + description + "Initial revision."; + reference + "RFC AAAA: A YANG Data Model for the RFC 9543 Network Slice + Service"; + } + + /* Identities */ + + identity service-tag-type { + description + "Base identity of Network Slice Service tag type, which is + used for management purposes, such as classification + (e.g., customer names) and policy constraints + (e.g., Layer 2 or Layer 3 technology realization)."; + } + + identity customer { + base service-tag-type; + description + "The Network Slice Service customer name tag type, + e.g., adding tags with 'customer name' when multiple actual + customers use a same Network Slice Service."; + } + + identity service { + base service-tag-type; + description + "The Network Slice Service tag type, which can indicate the + technical constraints used during service realization, + for example, Layer 2 or Layer 3 technologies."; + } + + identity opaque { + base service-tag-type; + description + "An opaque type, which can be used for future use, + such as filtering of services."; + } + + identity attachment-circuit-tag-type { + description + "Base identity for the attachment circuit tag type."; + } + + identity vlan-id { + base attachment-circuit-tag-type; + description + "Identity for VLAN ID tag type, 802.1Q dot1Q."; + reference + "IEEE Std 802.1Q: IEEE Standard for Local and Metropolitan + Area Networks--Bridges and Bridged + Networks"; + } + + identity cvlan-id { + base attachment-circuit-tag-type; + description + "Identity for C-VLAN ID tag type, 802.1ad QinQ VLAN IDs."; + reference + "IEEE Std 802.1ad: IEEE Standard for Local and Metropolitan + Area Networks---Virtual Bridged Local + Area Networks---Amendment 4: Provider + Bridges"; + } + + identity svlan-id { + base attachment-circuit-tag-type; + description + "Identity for S-VLAN ID tag type, 802.1ad QinQ VLAN IDs."; + reference + "IEEE Std 802.1ad: IEEE Standard for Local and Metropolitan + Area Networks---Virtual Bridged Local + Area Networks---Amendment 4: Provider + Bridges"; + } + + identity ip-address-mask { + base attachment-circuit-tag-type; + description + "Identity for IP address mask tag type."; + } + + identity service-isolation-type { + description + "Base identity for Network Slice Service isolation type."; + } + + identity traffic-isolation { + base service-isolation-type; + description + "Specify the requirement for separating the traffic of the + customer's Network Slice Service from other services, + which may be provided by the service provider using VPN + technologies, such as L3VPN, L2VPN, EVPN, etc."; + } + + identity service-security-type { + description + "Base identity for Network Slice Service security type."; + } + + identity authentication { + base service-security-type; + description + "Indicates that the Slice Service requires authentication."; + } + + identity integrity { + base service-security-type; + description + "Indicates that the Slice Service requires data integrity."; + } + + identity encryption { + base service-security-type; + description + "Indicates that the Slice Service requires data encryption."; + } + + identity point-to-point { + base vpn-common:vpn-topology; + description + "Identity for point-to-point Network Slice + Service connectivity."; + } + + identity point-to-multipoint { + base vpn-common:vpn-topology; + description + "Identity for point-to-multipoint Network Slice + Service connectivity."; + } + + identity multipoint-to-multipoint { + base vpn-common:vpn-topology; + description + "Identity for multipoint-to-multipoint Network Slice + Service connectivity."; + } + + identity multipoint-to-point { + base vpn-common:vpn-topology; + description + "Identity for multipoint-to-point Network Slice + Service connectivity."; + } + + identity sender-role { + base vpn-common:role; + description + "Indicates that an SDP is acting as a sender."; + } + + identity receiver-role { + base vpn-common:role; + description + "Indicates that an SDP is acting as a receiver."; + } + + identity service-slo-metric-type { + description + "Base identity for Network Slice Service SLO metric type."; + } + + identity one-way-bandwidth { + base service-slo-metric-type; + description + "SLO bandwidth metric. Minimum guaranteed bandwidth between + two SDPs at any time and is measured unidirectionally."; + } + + identity two-way-bandwidth { + base service-slo-metric-type; + description + "SLO bandwidth metric. Minimum guaranteed bandwidth between + two SDPs at any time."; + } + + identity shared-bandwidth { + base service-slo-metric-type; + description + "The shared SLO bandwidth bound. It is the limit on the + bandwidth that can be shared amongst a group of + connectivity constructs of a Slice Service."; + } + + identity one-way-delay-maximum { + base service-slo-metric-type; + description + "The SLO objective of this metric is the upper bound of network + delay when transmitting between two SDPs."; + reference + "RFC 7679: A One-Way Delay Metric for IP Performance + Metrics (IPPM)"; + } + + identity one-way-delay-percentile { + base service-slo-metric-type; + description + "The SLO objective of this metric is percentile objective of + network delay when transmitting between two SDPs. + The metric is defined in RFC7679."; + reference + "RFC 7679: A One-Way Delay Metric for IP Performance + Metrics (IPPM)"; + } + + identity two-way-delay-maximum { + base service-slo-metric-type; + description + "SLO two-way delay is the upper bound of network delay when + transmitting between two SDPs"; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + + identity two-way-delay-percentile { + base service-slo-metric-type; + description + "The SLO objective of this metric is the percentile + objective of network delay when the traffic transmitting + between two SDPs."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + + identity one-way-delay-variation-maximum { + base service-slo-metric-type; + description + "The SLO objective of this metric is maximum bound of the + difference in the one-way delay between sequential packets + between two SDPs."; + reference + "RFC 3393: IP Packet Delay Variation Metric for IP Performance + Metrics (IPPM)"; + } + + identity one-way-delay-variation-percentile { + base service-slo-metric-type; + description + "The SLO objective of this metric is the percentile objective + in the one-way delay between sequential packets between two + SDPs."; + reference + "RFC 3393: IP Packet Delay Variation Metric for IP Performance + Metrics (IPPM)"; + } + + identity two-way-delay-variation-maximum { + base service-slo-metric-type; + description + "SLO two-way delay variation is the difference in the + round-trip delay between sequential packets between two SDPs."; + reference + "RFC 5481: Packet Delay Variation Applicability Statement"; + } + + identity two-way-delay-variation-percentile { + base service-slo-metric-type; + description + "The SLO objective of this metric is the percentile objective + in the round-trip delay between sequential packets between + two SDPs."; + reference + "RFC 5481: Packet Delay Variation Applicability Statement"; + } + + identity one-way-packet-loss { + base service-slo-metric-type; + description + "This metric type refers to the ratio of packets dropped + to packets transmitted between two SDPs in one-way."; + reference + "RFC 7680: A One-Way Loss Metric for IP Performance + Metrics (IPPM)"; + } + + identity two-way-packet-loss { + base service-slo-metric-type; + description + "This metric type refers to the ratio of packets dropped + to packets transmitted between two SDPs in two-way."; + reference + "RFC 7680: A One-Way Loss Metric for IP Performance + Metrics (IPPM)"; + } + identity availability-type { + description + "Base identity for availability."; + } + + identity six-nines { + base availability-type; + description + "Specifies the availability level: 99.9999%"; + } + + identity five-nines { + base availability-type; + description + "Specifies the availability level: 99.999%"; + } + + identity four-nines { + base availability-type; + description + "Specifies the availability level: 99.99%"; + } + + identity three-nines { + base availability-type; + description + "Specifies the availability level: 99.9%"; + } + + identity two-nines { + base availability-type; + description + "Specifies the availability level: 99%"; + } + + identity service-match-type { + description + "Base identity for Network Slice Service traffic + match type."; + } + + identity phy-interface { + base service-match-type; + description + "Uses the physical interface as match criteria for + Slice Service traffic."; + } + + identity vlan { + base service-match-type; + description + "Uses the VLAN ID as match criteria for the Slice Service + traffic."; + } + + identity label { + base service-match-type; + description + "Uses the MPLS label as match criteria for the Slice Service + traffic."; + } + + identity source-ip-prefix { + base service-match-type; + description + "Uses source IP prefix as match criteria for the Slice Service + traffic. Examples of 'value' of this match type are + '192.0.2.0/24' and '2001:db8::1/64'."; + } + + identity destination-ip-prefix { + base service-match-type; + description + "Uses destination IP prefix as match criteria for the Slice + Service traffic. Examples of 'value' of this match type are + '203.0.113.1/32' and '2001:db8::2/128'."; + } + + identity dscp { + base service-match-type; + description + "Uses DSCP field in the IP packet header as match criteria + for the Slice Service traffic."; + } + + identity acl { + base service-match-type; + description + "Uses Access Control List (ACL) as match criteria + for the Slice Service traffic."; + reference + "RFC 8519: YANG Data Model for Network Access Control + Lists (ACLs)"; + } + + identity any { + base service-match-type; + description + "Matches any Slice Service traffic."; + } + + identity slo-sle-policy-override { + description + "Base identity for SLO/SLE policy override options."; + } + + identity full-override { + base slo-sle-policy-override; + description + "The SLO/SLE policy defined at the child level overrides a + parent SLO/SLE policy, which means that no SLO/SLEs are + inherited from parent if a child SLO/SLE policy exists."; + } + + identity partial-override { + base slo-sle-policy-override; + description + "The SLO/SLE policy defined at the child level updates the + parent SLO/SLE policy. For example, if a specific SLO is + defined at the child level, that specific SLO overrides + the one inherited from a parent SLO/SLE policy, while all + other SLOs in the parent SLO-SLE policy still apply."; + } + + /* Typedef */ + + typedef percentage { + type decimal64 { + fraction-digits 5; + range "0..100"; + } + description + "Percentage to 5 decimal places."; + } + + typedef percentile { + type decimal64 { + fraction-digits 3; + range "0..100"; + } + description + "The percentile is a value between 0 and 100 + to 3 decimal places, e.g., 10.000, 99.900 ,99.990, etc. + For example, for a given one-way delay measurement, + if the percentile is set to 95.000 and the 95th percentile + one-way delay is 2 milliseconds, then the 95 percent of + the sample value is less than or equal to 2 milliseconds."; + } + + typedef slice-template-ref { + type leafref { + path "/ietf-nss:network-slice-services" + + "/ietf-nss:slo-sle-templates" + + "/ietf-nss:slo-sle-template" + + "/ietf-nss:id"; + } + description + "This type is used by data models that need to reference + Network Slice templates."; + } + + typedef slice-service-ref { + type leafref { + path + "/ietf-nss:network-slice-services/ietf-nss:slice-service" + + "/ietf-nss:id"; + } + description + "Defines a reference to a slice service that can be used + by other modules."; + } + + /* Groupings */ + + grouping service-slos { + description + "A reusable grouping for directly measurable objectives of + a Slice Service."; + container slo-policy { + description + "Contains the SLO policy."; + list metric-bound { + key "metric-type"; + description + "List of Slice Service metric bounds."; + leaf metric-type { + type identityref { + base service-slo-metric-type; + } + description + "Identifies SLO metric type of the Slice Service."; + } + leaf metric-unit { + type string; + mandatory true; + description + "The metric unit of the parameter. For example, + for time units, where the options are hours, minutes, + seconds, milliseconds, microseconds, and nanoseconds; + for bandwidth units, where the options are bps, Kbps, + Mbps, Gbps; for the packet loss rate unit, + the options can be percentage."; + } + leaf value-description { + type string; + description + "The description of the provided value."; + } + leaf percentile-value { + type percentile; + description + "The percentile value of the metric type."; + } + leaf bound { + type uint64; + description + "The bound on the Slice Service connection metric. + When set to zero, this indicates an unbounded + upper limit for the specific metric-type."; + } + } + leaf availability { + type identityref { + base availability-type; + } + description + "Service availability level"; + } + leaf mtu { + type uint32; + units "bytes"; + description + "Specifies the maximum length of Layer 2 data + packets of the Slice Service. + If the customer sends packets that are longer than the + requested service MTU, the network may discard them + (or for IPv4, fragment them). + This service MTU takes precedence over the MTUs of + all attachment circuits (ACs). The value needs to be + less than or equal to the minimum MTU value of + all ACs in the SDPs."; + } + } + } + + grouping service-sles { + description + "A reusable grouping for indirectly measurable objectives of + a Slice Service."; + container sle-policy { + description + "Contains the SLE policy."; + leaf-list security { + type identityref { + base service-security-type; + } + description + "The security functions that the customer requests + the operator to apply to traffic between the two SDPs."; + } + leaf-list isolation { + type identityref { + base service-isolation-type; + } + description + "The Slice Service isolation requirement."; + } + leaf max-occupancy-level { + type uint8 { + range "1..100"; + } + description + "The maximal occupancy level specifies the number of flows + to be admitted and optionally a maximum number of + countable resource units (e.g., IP or MAC addresses) + a Network Slice Service can consume."; + } + container path-constraints { + description + "Container for the policy of path constraints + applicable to the Slice Service."; + container service-functions { + description + "Container for the policy of service function + applicable to the Slice Service."; + } + container diversity { + description + "Container for the policy of disjointness + applicable to the Slice Service."; + leaf diversity-type { + type te-types:te-path-disjointness; + description + "The type of disjointness on Slice Service, i.e., + across all connectivity constructs."; + } + } + } + } + } + + grouping slice-service-template { + description + "A reusable grouping for Slice Service templates."; + container slo-sle-templates { + description + "Contains a set of Slice Service templates."; + list slo-sle-template { + key "id"; + description + "List for SLO and SLE template identifiers."; + leaf id { + type string; + description + "Identification of the Service Level Objective (SLO) + and Service Level Expectation (SLE) template to be used. + Local administration meaning."; + } + leaf description { + type string; + description + "Describes the SLO and SLE policy template."; + } + leaf template-ref { + type slice-template-ref; + description + "The reference to a standard template. When set it + indicates the base template over which further + SLO/SLE policy changes are made."; + } + uses service-slos; + uses service-sles; + } + } + } + + grouping service-slo-sle-policy { + description + "Slice service policy grouping."; + choice slo-sle-policy { + description + "Choice for SLO and SLE policy template. + Can be standard template or customized template."; + case standard { + description + "Standard SLO template."; + leaf slo-sle-template { + type slice-template-ref; + description + "Standard SLO and SLE template to be used."; + } + } + case custom { + description + "Customized SLO and SLE template."; + container service-slo-sle-policy { + description + "Contains the SLO and SLE policy."; + leaf description { + type string; + description + "Describes the SLO and SLE policy."; + } + uses service-slos; + uses service-sles; + } + } + } + } + + grouping service-qos { + description + "Grouping for the Slice Service QoS policy."; + container incoming-qos-policy { + description + "The QoS policy imposed on ingress direction of the traffic , + from the customer network or from another provider's + network."; + leaf qos-policy-name { + type string; + description + "The name of the QoS policy that is applied to the + attachment circuit. The name can reference a QoS + profile that is pre-provisioned on the device."; + } + container rate-limits { + description + "Container for the asymmetric traffic control."; + uses ac-common:bandwidth-parameters; + container classes { + description + "Container for service class bandwidth control."; + list cos { + key "cos-id"; + description + "List of Class of Services."; + leaf cos-id { + type uint8; + description + "Identifier of the CoS, indicated by + a Differentiated Services Code Point + (DSCP) or a CE-CLAN CoS (802.1p) + value in the service frame."; + reference + "IEEE Std 802.1Q: Bridges and Bridged + Networks"; + } + uses ac-common:bandwidth-parameters; + } + } + } + } + container outgoing-qos-policy { + description + "The QoS policy imposed on egress direction of the traffic, + towards the customer network or towards another + provider's network."; + leaf qos-policy-name { + type string; + description + "The name of the QoS policy that is applied to the + attachment circuit. The name can reference a QoS + profile that is pre-provisioned on the device."; + } + container rate-limits { + description + "The rate-limit imposed on outgoing traffic."; + uses ac-common:bandwidth-parameters; + container classes { + description + "Container for classes."; + list cos { + key "cos-id"; + description + "List of Class of Services."; + leaf cos-id { + type uint8; + description + "Identifier of the CoS, indicated by + a Differentiated Services Code Point + (DSCP) or a CE-CLAN CoS (802.1p) + value in the service frame."; + reference + "IEEE Std 802.1Q: Bridges and Bridged + Networks"; + } + uses ac-common:bandwidth-parameters; + } + } + } + } + } + + grouping service-slo-sle-policy-override { + description + "Slice Service policy override grouping."; + leaf service-slo-sle-policy-override { + type identityref { + base slo-sle-policy-override; + } + description + "SLO/SLE policy override option."; + } + } + + grouping one-way-performance-metrics { + description + "One-way PM metrics grouping."; + leaf one-way-min-delay { + type yang:gauge64; + description + "One-way minimum delay or latency in microseconds."; + } + leaf one-way-max-delay { + type yang:gauge64; + description + "One-way maximum delay or latency in microseconds."; + reference + "RFC 7679: A One-Way Delay Metric for IP Performance + Metrics (IPPM)"; + } + leaf one-way-delay-variation { + type yang:gauge64; + description + "One-way delay variation in microseconds."; + reference + "RFC 3393: IP Packet Delay Variation Metric for IP Performance + Metrics (IPPM)"; + } + leaf one-way-packet-loss { + type percentage; + 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 { + description + "Two-way packet PM metrics grouping."; + leaf two-way-min-delay { + type yang:gauge64; + description + "Two-way minimum delay or latency in microseconds."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + leaf two-way-max-delay { + type yang:gauge64; + description + "Two-way maximum delay or latency in microseconds."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + leaf two-way-delay-variation { + type yang:gauge64; + description + "Two-way delay variation in microseconds."; + reference + "RFC 5481: Packet Delay Variation Applicability Statement"; + } + leaf two-way-packet-loss { + type percentage; + description + "The ratio of packets dropped to packets transmitted between + two endpoints."; + } + } + + grouping connectivity-construct-monitoring-metrics { + description + "Grouping for connectivity construct monitoring metrics."; + uses one-way-performance-metrics; + uses two-way-performance-metrics; + } + + /* Main Network Slice Services Container */ + + container network-slice-services { + description + "Contains a list of Network Slice Services"; + uses slice-service-template; + list slice-service { + key "id"; + description + "A Slice Service is identified by a service id."; + leaf id { + type string; + description + "A unique Slice Service identifier within an NSC."; + } + leaf description { + type string; + description + "Textual description of the Slice Service."; + } + container service-tags { + description + "Container for a list of service tags for management + purposes, such as policy constraints + (e.g., Layer 2 or Layer 3 technology realization), + classification (e.g., customer names, opaque values)."; + list tag-type { + key "tag-type"; + description + "The service tag list."; + leaf tag-type { + type identityref { + base service-tag-type; + } + description + "Slice Service tag type, e.g., realization technology + constraints, customer name, or other customer-defined + opaque types."; + } + leaf-list value { + type string; + description + "The tag values, e.g., 5G customer names when multiple + customers share the same Slice Service in 5G scenario, + or Slice realization technology (such as Layer 2 or + Layer 3)."; + } + } + } + uses service-slo-sle-policy; + leaf compute-only { + type empty; + description + "When present, this is a feasibility check. That is, no + resources are reserved in the network."; + } + uses ac-common:service-status; + container sdps { + description + "Slice Service SDPs."; + list sdp { + key "id"; + min-elements 2; + description + "List of SDPs in this Slice Service."; + leaf id { + type string; + description + "The unique identifier of the SDP within the scope of + an NSC."; + } + leaf description { + type string; + description + "Provides a description of the SDP."; + } + uses geo:geo-location; + leaf node-id { + type string; + description + "A unique identifier of an edge node of the SDP + within the scope of the NSC."; + } + leaf-list sdp-ip-address { + type inet:ip-address; + description + "IPv4 or IPv6 address of the SDP."; + } + leaf tp-ref { + type leafref { + path + "/nw:networks/nw:network[nw:network-id=" + + "current()/../../../custom-topology/network-ref]/" + + "nw:node/nt:termination-point/nt:tp-id"; + } + description + "A reference to Termination Point (TP) in the custom + topology"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + container service-match-criteria { + description + "Describes the Slice Service match criteria."; + list match-criterion { + key "index"; + description + "List of the Slice Service traffic match criteria."; + leaf index { + type uint32; + description + "The identifier of a match criteria."; + } + leaf match-type { + type identityref { + base service-match-type; + } + mandatory true; + description + "Indicates the match type of the entry in the + list of the Slice Service match criteria."; + } + leaf-list value { + type string; + description + "Provides a value for the Slice Service match + criteria, e.g., IP prefix and VLAN ID."; + } + leaf target-connection-group-id { + type leafref { + path + "../../../../../ietf-nss:connection-groups" + + "/ietf-nss:connection-group" + + "/ietf-nss:id"; + } + mandatory true; + description + "Reference to the Slice Service connection group."; + } + leaf connection-group-sdp-role { + type identityref { + base vpn-common:role; + } + default "vpn-common:any-to-any-role"; + description + "Specifies the role of SDP in the connection group + When the service connection type is MP2MP, + such as hub and spoke service connection type. + In addition, this helps to create connectivity + construct automatically, rather than explicitly + specifying each one."; + } + leaf target-connectivity-construct-id { + type leafref { + path + "../../../../../ietf-nss:connection-groups" + + "/ietf-nss:connection-group[ietf-nss:id=" + + "current()/../target-connection-group-id]" + + "/ietf-nss:connectivity-construct/ietf-nss:id"; + } + description + "Reference to a Network Slice connection + construct."; + } + } + } + uses service-qos; + container sdp-peering { + description + "Describes SDP peering attributes."; + leaf-list peer-sap-id { + type string; + description + "Indicates the reference to the remote endpoints of + the attachment circuits. This information can be used + for correlation purposes, such as identifying SAPs + of provider equipments when requesting a service with + CE based SDP attributes."; + reference + "RFC 9408: A YANG Network Data Model for Service + Attachment Points (SAPs)"; + } + container protocols { + description + "Serves as an augmentation target. + Protocols can be augmented into this container, + e.g., BGP, static routing."; + } + } + leaf-list ac-svc-ref { + type ac-svc:attachment-circuit-reference; + description + "A reference to the ACs that have been created before + the slice creation."; + reference + "RFC CCCC: YANG Data Models for Bearers and + 'Attachment Circuits'-as-a-Service (ACaaS)"; + } + leaf ce-mode { + type boolean; + description + "Indicates that SDP is on the CE."; + } + container attachment-circuits { + description + "List of attachment circuits."; + list attachment-circuit { + key "id"; + description + "The Network Slice Service SDP attachment circuit + related parameters."; + leaf id { + type string; + description + "The identifier of attachment circuit."; + } + leaf description { + type string; + description + "The attachment circuit's description."; + } + leaf ac-svc-ref { + type ac-svc:attachment-circuit-reference; + description + "A reference to the AC service that have been created before + the slice creation."; + reference + "RFC CCCC: YANG Data Models for Bearers and + 'Attachment Circuits'-as-a-Service (ACaaS)"; + } + leaf ac-node-id { + type string; + description + "The attachment circuit node ID in the case of + multi-homing."; + } + leaf ac-tp-id { + type string; + description + "The termination port ID of the + attachment circuit."; + } + leaf ac-ipv4-address { + type inet:ipv4-address; + description + "The IPv4 address of the AC."; + } + leaf ac-ipv4-prefix-length { + type uint8; + description + "The IPv4 subnet prefix length expressed in bits."; + } + leaf ac-ipv6-address { + type inet:ipv6-address; + description + "The IPv6 address of the AC."; + } + leaf ac-ipv6-prefix-length { + type uint8; + description + "The IPv6 subnet prefix length expressed in bits."; + } + leaf mtu { + type uint32; + units "bytes"; + description + "Maximum size of the Slice Service Layer 2 data + packet that can traverse an SDP."; + } + container ac-tags { + description + "Container for the attachment circuit tags."; + list ac-tag { + key "tag-type"; + description + "The attachment circuit tag list."; + leaf tag-type { + type identityref { + base attachment-circuit-tag-type; + } + description + "The attachment circuit tag type."; + } + leaf-list value { + type string; + description + "The attachment circuit tag values. + For example, the tag may indicate + multiple VLAN identifiers."; + } + } + } + uses service-qos; + container sdp-peering { + description + "Describes SDP peering attributes."; + leaf peer-sap-id { + type string; + description + "Indicates a reference to the remote endpoints + of an attachment circuit. This information can + be used for correlation purposes, such as + identifying a service attachment point (SAP) + of a provider equipment when requesting a + service with CE based SDP attributes."; + reference + "RFC 9408: A YANG Network Data Model for + Service Attachment Points (SAPs)"; + } + container protocols { + description + "Serves as an augmentation target. + Protocols can be augmented into this container, + e.g., BGP or static routing."; + } + } + uses ac-common:service-status; + } + } + uses ac-common:service-status; + container sdp-monitoring { + config false; + description + "Container for SDP monitoring metrics."; + leaf incoming-bw-value { + type yang:gauge64; + units "bps"; + description + "Indicates the absolute value of the incoming + bandwidth at an SDP from the customer network or + from another provider's network."; + } + leaf incoming-bw-percent { + type percentage; + units "percent"; + description + "Indicates a percentage of the incoming bandwidth + at an SDP from the customer network or + from another provider's network."; + } + leaf outgoing-bw-value { + type yang:gauge64; + units "bps"; + description + "Indicates the absolute value of the outgoing + bandwidth at an SDP towards the customer network or + towards another provider's network."; + } + leaf outgoing-bw-percent { + type percentage; + units "percent"; + description + "Indicates a percentage of the outgoing bandwidth + at an SDP towards the customer network or towards + another provider's network."; + } + } + } + } + container connection-groups { + description + "Contains connection groups."; + list connection-group { + key "id"; + description + "List of connection groups."; + leaf id { + type string; + description + "The connection group identifier."; + } + leaf connectivity-type { + type identityref { + base vpn-common:vpn-topology; + } + default "vpn-common:any-to-any"; + description + "Connection group connectivity type."; + } + uses service-slo-sle-policy; + /* Per connection group SLO/SLE policy + * overrides the per Slice SLO/SLE policy. + */ + uses service-slo-sle-policy-override; + list connectivity-construct { + key "id"; + description + "List of connectivity constructs."; + leaf id { + type string; + description + "The connectivity construct identifier."; + } + choice type { + default "p2p"; + description + "Choice for connectivity construct type."; + case p2p { + description + "P2P connectivity construct."; + leaf p2p-sender-sdp { + type leafref { + path "../../../../sdps/sdp/id"; + } + description + "Reference to a sender SDP."; + } + leaf p2p-receiver-sdp { + type leafref { + path "../../../../sdps/sdp/id"; + } + description + "Reference to a receiver SDP."; + } + } + case p2mp { + description + "P2MP connectivity construct."; + leaf p2mp-sender-sdp { + type leafref { + path "../../../../sdps/sdp/id"; + } + description + "Reference to a sender SDP."; + } + leaf-list p2mp-receiver-sdp { + type leafref { + path "../../../../sdps/sdp/id"; + } + description + "Reference to a receiver SDP."; + } + } + case a2a { + description + "A2A connectivity construct."; + list a2a-sdp { + key "sdp-id"; + description + "List of included A2A SDPs."; + leaf sdp-id { + type leafref { + path "../../../../../sdps/sdp/id"; + } + description + "Reference to an SDP."; + } + uses service-slo-sle-policy; + } + } + } + uses service-slo-sle-policy; + /* Per connectivity construct SLO/SLE policy + * overrides the per slice SLO/SLE policy. + */ + uses service-slo-sle-policy-override; + uses ac-common:service-status; + container connectivity-construct-monitoring { + config false; + description + "SLO status per connectivity construct."; + uses connectivity-construct-monitoring-metrics; + } + } + container connection-group-monitoring { + config false; + description + "SLO status per connection group."; + uses connectivity-construct-monitoring-metrics; + } + } + } + container custom-topology { + description + "Serves as an augmentation target. + Container for custom topology, which is indicated by the + referenced topology predefined, e.g., an abstract RFC8345 + topology."; + uses nw:network-ref; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ni-energy-saving@2024-01-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-ni-energy-saving@2024-01-23.yang new file mode 100644 index 000000000..671258128 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ni-energy-saving@2024-01-23.yang @@ -0,0 +1,121 @@ +module ietf-ni-energy-saving { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ni-energy-saving"; + prefix esm-ni; + + import ietf-energy-saving-common { + prefix esm-common; + reference + "RFC XXXX: YANG Data Models for Energy Saving Management"; + } + import ietf-network-inventory { + prefix ni; + reference + "RFC IIII: A YANG Data Model for Network Inventory"; + } + + organization + "IETF xxx Working Group."; + contact + "WG Web: ; + WG List: + + Author: Gen Chen + + Editor: Qin Wu + + Editor: Mohamed Boucadair + + Author: Carlos Pignataro + "; + description + "This module contains a collection of YANG definitions for power + and energy management of devices. It also augments both the + network topology and inventory models. + + 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-23 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Data Models for Energy Saving Management"; + } + + grouping network-element-ref { + description + "Contains the information necessary to reference a network + element."; + leaf ne-ref { + type leafref { + path "/ni:network-inventory/ni:network-elements" + + "/ni:network-element/ni:ne-id"; + require-instance false; + } + description + "Used to reference a network element."; + } + } + + grouping component-ref { + description + "Contains the information necessary to reference a component."; + leaf node-ref { + type leafref { + path "/ni:network-inventory/ni:network-elements" + + "/ni:network-element[ni:ne-id=" + + "current()/../ne-ref]/ni:components/ni:component" + + "/ni:component-id"; + require-instance false; + } + description + "Used to reference a component."; + } + uses network-element-ref; + } + + augment "/ni:network-inventory/ni:network-elements" + + "/ni:network-element" { + if-feature "esm-common:energy-saving"; + description + "Energy management static data for network element."; + container energy-management { + config false; + description + "Statistics of the energy management."; + leaf energy-monitoring-capability { + type boolean; + description + "Indicates whether monitoring can be performed."; + } + container energy-saving-modes { + description + "List of supported energy saving modes."; + uses esm-common:energy-saving-modes; + } + } + } + + augment "/ni:network-inventory/ni:network-elements" + + "/ni:network-element/ni:components/ni:component" { + if-feature "esm-common:energy-saving"; + description + "Energy management static data for component."; + container power-parameters { + config false; + description + "Power parameter monitoring."; + uses esm-common:power-parameters; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-02-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-02-07.yang new file mode 100644 index 000000000..4ff760e0f --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-02-07.yang @@ -0,0 +1,292 @@ +module ietf-ni-location { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ni-location"; + prefix nil; + + import ietf-network-inventory { + prefix nwi; + reference + "RFCXXXX: A YANG Data Model for Network Inventory"; + } + import ietf-geo-location { + prefix geo; + reference + "RFC 9179: A YANG Grouping for Geographic Locations"; + } + + organization + "IETF Network Inventory YANG (ivy) Working Group"; + contact + "WG Web: + WG List: + + Editor: Bo Wu + + Editor: Sergio Belotti + + Editor: Jean-Francois Bouquier + + Editor: Fabio Peruzzini + + Editor: Phil Bedard + "; + description + "This YANG module defines a model for Network Inventory + location. + + 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-02-07 { + description + "Initial version"; + reference + "RFC XXXX: A YANG Data Model for Network Inventory location."; + //RFC Editor: Please replace XXXX with actual RFC number, + //update date information and remove this note + } + + identity inventory-location-type { + description + "Base identity for network inventory location types."; + } + + identity site { + base inventory-location-type; + description + "Indicates site as location type."; + } + + identity room { + base inventory-location-type; + description + "Indicates equipment room as location type."; + } + + identity building { + base inventory-location-type; + description + "Indicates building as location type."; + } + + grouping locations-grouping { + description + "The grouping of the locations."; + list location { + key "id"; + description + "The list of sites within the network."; + uses nwi:common-entity-attributes; + leaf location-type { + type identityref { + base inventory-location-type; + } + description + "The type of network inventory location, e.g. + equipment room, building, or site."; + } + leaf parent { + type leafref { + path "../../location/id"; + } + description + "The name of the parent locations."; + } + leaf-list child { + type leafref { + path "../../location/id"; + } + description + "The name of the child locations."; + } + uses physical-address-grouping; + uses geo:geo-location; + } + } + + grouping physical-address-grouping { + description + "The grouping of the physical address."; + container physical-address { + description + "Top level container for the physical address."; + leaf address { + type string; + description + "Address (number and street) of the site."; + } + leaf postal-code { + type string; + description + "Postal code of the site."; + } + leaf state { + type string; + description + "State of the site. This leaf can also be + used to describe a region for a country that + does not have states."; + } + leaf city { + type string; + description + "City of the site."; + } + leaf country-code { + type string { + pattern '[A-Z]{2}'; + } + description + "Country of the site. + Expressed as ISO ALPHA-2 code."; + } + } + } + + grouping rack-grouping { + description + "The attributes of the rack."; + container racks { + description + "Top level container for the list of racks."; + list rack { + key "id"; + description + "The list of racks within an equipment room."; + uses nwi:common-entity-attributes; + container rack-location { + description + "The location information of the rack, which + comprises the name of the location, row number, and + column number."; + leaf location-ref { + type leafref { + path "/nil:locations/nil:location/nil:id"; + } + description + "Name of location where this rack is located."; + } + leaf row-number { + type uint32; + description + "Identifies the row within the equipment room where + the rack is located."; + } + leaf column-number { + type uint32; + description + "Identifies the physical location of the rack within + the column."; + } + } + leaf height { + type uint16; + units "millimeter"; + description + "Rack height."; + } + leaf width { + type uint16; + units "millimeter"; + description + "Rack width."; + } + leaf depth { + type uint16; + units "millimeter"; + description + "Rack depth."; + } + leaf max-voltage { + type uint16; + units "volt"; + description + "The maximum voltage could be supported by the rack."; + } + leaf max-allocated-power { + type uint16; + units "watts"; + description + "The maximum allocated power to the rack."; + } + list contained-chassis { + key "ne-ref component-ref"; + description + "The list of chassis within a rack."; + leaf ne-ref { + type leafref { + path "/nwi:network-elements/nwi:network-element" + + "/nwi:id"; + } + description + "The reference to the network element containing + the chassis component."; + } + leaf component-ref { + type leafref { + path "/nwi:network-elements/nwi:network-element" + + "[nwi:id=current()/../ne-ref]/nwi:components" + + "/nwi:component/nwi:id"; + } + description + "The reference to the chassis component within + the network element and contained by the rack."; + } + leaf relative-position { + type uint8; + description + "A relative position of chassis within + the rack"; + } + } + } + } + } + + grouping locations-ref-grouping { + description + "The attributes of the locations."; + container locations { + description + "The container for the location."; + leaf-list location { + type leafref { + path "/nil:locations/nil:location/nil:id"; + } + description + "The reference of the location."; + } + leaf rack { + type leafref { + path "/nil:locations/nil:racks" + + "/nil:rack/nil:id"; + } + description + "The reference to the rack."; + } + } + } + + container locations { + description + "The top-level container for the NE location information."; + uses locations-grouping; + uses rack-grouping; + } + + augment "/nwi:network-elements/nwi:network-element" { + description + "Provides location information for network inventory."; + uses locations-ref-grouping; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-nmda-compare@2021-08-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-nmda-compare@2024-04-16.yang similarity index 57% rename from experimental/ietf-extracted-YANG-modules/ietf-nmda-compare@2021-08-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-nmda-compare@2024-04-16.yang index 25a59db56..91d657dfd 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-nmda-compare@2021-08-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-nmda-compare@2024-04-16.yang @@ -1,32 +1,35 @@ module ietf-nmda-compare { - yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-nmda-compare"; - prefix cmp; import ietf-yang-types { prefix yang; - reference "RFC 6991: Common YANG Data Types"; + reference + "RFC 6991: Common YANG Data Types"; } import ietf-datastores { prefix ds; - reference "RFC 8342: Network Management Datastore - Architecture (NMDA)"; + reference + "RFC 8342: Network Management Datastore + Architecture (NMDA)"; } import ietf-yang-patch { prefix ypatch; - reference "RFC 8072: YANG Patch Media Type"; + reference + "RFC 8072: YANG Patch Media Type"; } import ietf-netconf { prefix nc; - reference "RFC6241: Network Configuration Protocol (NETCONF)"; + reference + "RFC 6241: Network Configuration Protocol (NETCONF)"; } - organization "IETF"; + organization + "IETF NETMOD (Network Modeling) Working Group"; contact - "WG Web: - WG List: + "WG Web: + WG List: Author: Alexander Clemm @@ -38,8 +41,13 @@ module ietf-nmda-compare { Author: Andy Bierman - "; + + Author: James Cumming + + + Author: Robert Wills + "; description "The YANG data model defines a new operation, , that can be used to compare NMDA datastores. @@ -49,34 +57,37 @@ module ietf-nmda-compare { 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 - draft-ietf-netmod-nmda-diff-12; see the RFC itself for full - legal notices. + This version of this YANG module is part of RFC 9144; see the + RFC itself for full legal notices."; - NOTE TO RFC EDITOR: Please replace above reference to - draft-ietf-netmod-nmda-diff-12 with RFC number when published - (i.e. RFC xxxx)."; + revision 2024-04-16 { + description + "Updated to introduce private candidates"; + reference + "draft-ietf-netconf-privcand: Netconf Private Candidates"; + } + revision 2021-12-10 { + description + "Initial revision."; + reference + "RFC 9144: Comparison of Network Management Datastore + Architecture (NMDA) Datastores"; + } - revision 2021-08-06 { + feature private-candidate { description - "Initial revision. - NOTE TO RFC EDITOR: - (1)Please replace the above revision date to - the date of RFC publication when published. - (2) Please replace the date in the file name - (ietf-nmda-compare@2021-08-06.yang) to the date of RFC - publication. - (3) Please replace the following reference to - draft-ietf-netmod-nmda-diff-12 with RFC number when published - (i.e. RFC xxxx)."; + "NETCONF :private-candidate capability; + If the server advertises the :private-candidate + capability for a session, then this feature must + also be enabled for that session. Otherwise, + this feature must not be enabled."; reference - "draft-ietf-netmod-nmda-diff-12: Comparison of NMDA - datastores"; + "draft-ietf-netconf-privcand"; } /* RPC */ @@ -100,24 +111,40 @@ module ietf-nmda-compare { description "The target datastore to be compared."; } + leaf reference-point { + reference "draft-ietf-netconf-privcand"; + if-feature "private-candidate"; + description + "When this leaf is provided and the source or + destination are the private-candidate datastore, + the comparison will either occur between the + last-update point of the private candidate or the + creation-point of the private candidate."; + default last-update; + type enumeration { + enum last-update; + enum creation-point; + } + } leaf all { type empty; description "When this leaf is provided, all data nodes are compared, whether their schema node pertains to both datastores or - not. When this leaf is omitted, a prefiltering step is + not. When this leaf is omitted, a prefiltering step is automatically applied that excludes data nodes from the comparison that can occur in only one datastore but not the other. Specifically, if one of the datastores (source or target) contains only configuration data and the other datastore is , data nodes for - which config is false are excluded from the comparison."; + the config that is false are excluded from the + comparison."; } leaf report-origin { type empty; description "When this leaf is provided, origin metadata is - included as part of RPC output. When this leaf is + included as part of RPC output. When this leaf is omitted, origin metadata in comparisons that involve is by default omitted."; } @@ -129,16 +156,18 @@ module ietf-nmda-compare { description "This parameter identifies the portions of the target datastore to retrieve."; - reference "RFC 6241, Section 6."; + reference + "RFC 6241, Section 6."; } leaf xpath-filter { - if-feature nc:xpath; + if-feature "nc:xpath"; type yang:xpath1.0; description "This parameter contains an XPath expression identifying the portions of the target datastore to retrieve."; - reference "RFC 6991: Common YANG Data Types"; + reference + "RFC 6991: Common YANG Data Types"; } } } @@ -154,7 +183,7 @@ module ietf-nmda-compare { } container differences { description - "The list of differences, encoded per RFC8072 with an + "The list of differences, encoded per RFC 8072 with an augmentation to include source values where applicable. When a datastore node in the source is not present in the target, this can be indicated either as a 'delete' @@ -163,21 +192,22 @@ module ietf-nmda-compare { uses ypatch:yang-patch { augment "yang-patch/edit" { description - "Provide the value of the source of the patch, - respectively of the comparison, in addition to - the target value, where applicable."; + "Provides the value of the source of the patch, + respectively of the source of the comparison, in + addition to the target value, where applicable."; anydata source-value { when "../operation = 'delete'" - + "or ../operation = 'merge'" - + "or ../operation = 'move'" - + "or ../operation = 'replace'" - + "or ../operation = 'remove'"; + + "or ../operation = 'merge'" + + "or ../operation = 'move'" + + "or ../operation = 'replace'" + + "or ../operation = 'remove'"; description "The anydata 'value' is only used for 'delete', 'move', 'merge', 'replace', and 'remove' operations."; } - reference "RFC 8072: YANG Patch Media Type"; + reference + "RFC 8072: YANG Patch Media Type"; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-notification-provenance@2024-02-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-notification-provenance@2024-02-28.yang new file mode 100644 index 000000000..e24750cbb --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-notification-provenance@2024-02-28.yang @@ -0,0 +1,68 @@ +module ietf-notification-provenance { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-notification-provenance"; + prefix inotifprov; + + import ietf-notification { + prefix inotif; + reference + "draft-ahuang-netconf-notif-yang: NETCONF Event Notification YANG"; + } + import ietf-yang-provenance { + prefix iyangprov; + reference + "RFC XXXX: Applying COSE Signatures for YANG Data Provenance"; + } + import ietf-yang-structure-ext { + prefix sx; + reference + "RFC 8791: YANG Data Structure Extensions"; + } + + organization "IETF OPSAWG (Operations and Management Area Working Group)"; + contact + "WG Web: + WG List: + + Authors: Alex Huang Feng + + Diego Lopez + + Antonio Pastor + + Henk Birkholz + "; + + description + "Defines a binary provenance-signature type to be used in other YANG + modules. + + 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-02-28 { + description + "First revision"; + reference + "RFC XXXX: Applying COSE Signatures for YANG Data Provenance"; + } + + sx:augment-structure "/inotif:notification" { + leaf notification-provenance { + type iyangprov:provenance-signature; + description + "COSE signature of the content of the Notification for + provenance verification."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-notification-sequencing@2023-03-25.yang b/experimental/ietf-extracted-YANG-modules/ietf-notification-sequencing@2023-03-25.yang deleted file mode 100644 index bb53dedde..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-notification-sequencing@2023-03-25.yang +++ /dev/null @@ -1,84 +0,0 @@ -module ietf-notification-sequencing { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-notification-sequencing"; - prefix inotifseq; - 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-notification { - prefix inotif; - reference - "draft-ahuang-netconf-notif-yang: NETCONF Event Notification YANG"; - } - import ietf-yang-structure-ext { - prefix sx; - reference - "RFC 8791: YANG Data Structure Extensions"; - } - - organization "IETF NETCONF (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - - Authors: Thomas Graf - - Jean Quilbeuf - - Alex Huang Feng - "; - - description - "Defines NETCONF Event Notification structure with the sysName and - the sequenceNumber. - - Copyright (c) 2023 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, is permitted pursuant to, and subject to the license - terms contained in, the Revised BSD License set forth in Section - 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see the RFC - itself for full legal notices."; - - revision 2023-03-25 { - description - "First revision"; - reference - "RFC XXXX: YANG Notifications Sequencing"; - } - - sx:augment-structure "/inotif:notification" { - leaf sysName { - type inet:host; - mandatory true; - description - "IP address or a DNS domain name from the server from which - the message was published."; - } - leaf messagePublisherId { - type uint32; - mandatory true; - description - "Identifier of the publishing process generating this notification."; - } - leaf sequenceNumber { - type yang:counter32; - mandatory true; - description - "Unique sequence number as described in [RFC3339] for each - published message."; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-notification-sequencing@2023-05-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-notification-sequencing@2023-05-29.yang new file mode 100644 index 000000000..006889e51 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-notification-sequencing@2023-05-29.yang @@ -0,0 +1,150 @@ +module ietf-notification-sequencing { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-notification-sequencing"; + prefix inotifseq; + 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-notification { + prefix inotif; + reference + "draft-ahuang-netconf-notif-yang: NETCONF Event Notification YANG"; + } + import ietf-system-capabilities { + prefix sysc; + reference + "RFC 9196: YANG Modules Describing Capabilities for + Systems and Datastore Update Notifications"; + } + import ietf-notification-capabilities { + prefix notc; + reference + "RFC 9196: YANG Modules Describing Capabilities for + Systems and Datastore Update Notifications"; + } + import ietf-yang-structure-ext { + prefix sx; + reference + "RFC 8791: YANG Data Structure Extensions"; + } + + organization "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Authors: Thomas Graf + + Jean Quilbeuf + + Alex Huang Feng + "; + + description + "Defines NETCONF Event Notification structure with the sysName and + the sequenceNumber. + + 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 2023-05-29 { + description + "First revision"; + reference + "RFC XXXX: YANG Notifications Sequencing"; + } + + feature sysname-sequence { + description + "This feature indicates that sysName and sequenceNumber are + supported in notifications."; + } + + typedef notification-support { + type bits { + bit config-changes { + description + "The publisher is capable of sending + notifications for 'config true' nodes for the + relevant scope and subscription type."; + } + bit state-changes { + description + "The publisher is capable of sending + notifications for 'config false' nodes for the + relevant scope and subscription type."; + } + } + description + "Redefition of the type 'notification-support' from + 'ietf-notification-capabilities' module to be reusable in + other YANG modules. + + Type for defining whether 'on-change' or + 'periodic' notifications are supported for all data nodes, + 'config false' data nodes, 'config true' data nodes, or + no data nodes. + + The bits config-changes or state-changes have no effect + when they are set for a datastore or for a set of nodes + that does not contain nodes with the indicated config + value. In those cases, the effect is the same as if no + support was declared. One example of this is indicating + support for state-changes for a candidate datastore that + has no effect."; + reference + "RFC XXXX: YANG Notifications Sequencing + RFC 9196: YANG Modules Describing Capabilities for + Systems and Datastore Update Notifications"; + } + + sx:augment-structure "/inotif:notification" { + leaf sysName { + type inet:host; + mandatory true; + description + "Fully-qualified domain name of the node according to + [RFC1213]. This value is usually configured on the node + by the administrator to uniquely identify the node in + the network."; + } + leaf sequenceNumber { + type yang:counter32; + mandatory true; + description + "Unique sequence number as described in [RFC3339] for each + published message."; + } + } + + augment "/sysc:system-capabilities/notc:subscription-capabilities" { + description + "Add system level capabilities"; + leaf sysname-sequence-supported { + if-feature "sysname-sequence"; + type notification-support; + description + "Specifies whether the publisher supports exporting a + sysName and a sequenceNumber in notifications."; + reference + "RFC XXXX: YANG Notifications Sequencing"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-notification@2023-07-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-notification@2023-07-23.yang deleted file mode 100644 index 5fbb858fc..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-notification@2023-07-23.yang +++ /dev/null @@ -1,67 +0,0 @@ -module ietf-notification { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:netconf:notification:1.0"; - prefix inotif; - import ietf-yang-types { - prefix yang; - reference - "RFC 6991: Common YANG Data Types"; - } - import ietf-yang-structure-ext { - prefix sx; - reference - "RFC 8791: YANG Data Structure Extensions"; - } - - organization "IETF NETCONF (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - - Authors: Alex Huang Feng - - Pierre Francois - - Thomas Graf - - Benoit Claise - "; - - description - "Defines NETCONF Event Notification structure as defined in RFC5277. - This YANG module uses the same namespace from the XML schema defined - in Section 4 of RFC5277 to be able to validate already implemented - XML encoded messages. - - Copyright (c) 2023 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, is permitted pursuant to, and subject to the license - terms contained in, the Revised BSD License set forth in Section - 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see the RFC - itself for full legal notices."; - - revision 2023-07-23 { - description - "First revision"; - reference - "RFC XXXX: NETCONF Event Notification YANG"; - } - - sx:structure notification { - leaf eventTime { - type yang:date-and-time; - mandatory true; - description - "The date and time the event was generated by the event source. - This parameter is of type dateTime and compliant to [RFC3339]. - Implementations must support time zones. - The leaf name in camel case matches the name of the XSD element - defined in Section 4 of RFC5277."; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-notification@2024-06-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-notification@2024-06-17.yang new file mode 100644 index 000000000..4a820e2e2 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-notification@2024-06-17.yang @@ -0,0 +1,73 @@ +module ietf-notification { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:netconf:notification:1.0"; + prefix inotif; + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-yang-structure-ext { + prefix sx; + reference + "RFC 8791: YANG Data Structure Extensions"; + } + + organization "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Authors: Alex Huang Feng + + Pierre Francois + + Thomas Graf + + Benoit Claise + "; + + description + "Defines NETCONF Event Notification structure as defined in + RFC5277 and RFC7950. This YANG module uses the same namespace + from the XML schema defined in Section 4 of RFC5277 to be able to + validate already implemented XML encoded messages. + + This module can be used to validate XML encoded notifications + [RFC7950], JSON encoded messages [RFC7951] and CBOR encoded + messages [RFC9254]. Refer to Section 4 of RFC XXXX for more + details. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + revision 2024-06-17 { + description + "First revision"; + reference + "RFC XXXX: NETCONF Event Notification YANG"; + } + + sx:structure notification { + leaf eventTime { + type yang:date-and-time; + mandatory true; + description + "The date and time the event was generated by the event + source. This parameter is of type dateTime and compliant + to [RFC3339]. Implementations must support time zones. + The leaf name in camel case matches the name of the XSD + element defined in Section 4 of RFC5277."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-nrp-device@2023-08-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-nrp-device@2024-07-05.yang similarity index 82% rename from experimental/ietf-extracted-YANG-modules/ietf-nrp-device@2023-08-28.yang rename to experimental/ietf-extracted-YANG-modules/ietf-nrp-device@2024-07-05.yang index a2ed9ad87..42dce93fc 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-nrp-device@2023-08-28.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-nrp-device@2024-07-05.yang @@ -8,7 +8,8 @@ module ietf-nrp-device { import ietf-network { prefix nw; reference - "RFC 8345: RFC 8345: A YANG Data Model for Network Topologies"; + "RFC 8345: A YANG Data Model for Network Topologies, + Section 6.1"; } /* Import IETF interface module */ @@ -24,8 +25,8 @@ module ietf-nrp-device { import ietf-nrp { prefix nrp; reference - "RFCXXXX: A YANG Data Model for Network Resource - Partitions (NRPs)"; + "RFCXXXX: YANG Data Models for Network Resource + Partitions (NRPs)"; } organization @@ -36,10 +37,10 @@ module ietf-nrp-device { WG List: Editor: Bo Wu - + Editor: Dhruv Dhody - + Editor: Vishnu Pavan Beeram @@ -55,7 +56,7 @@ module ietf-nrp-device { fully conforms to the Network Management Datastore Architecture (NMDA). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -74,12 +75,12 @@ module ietf-nrp-device { // RFC Ed.: update the date below with the date of RFC publication // and remove this note. - revision 2023-08-28 { + revision 2024-07-05 { description "Initial revision."; reference - "RFCXXXX: A YANG Data Model for Network Resource Partitions (NRPs) - Device"; + "RFCXXXX: YANG Data Models for Network Resource + Partitions (NRPs)"; } /* NRP device configuraiton */ @@ -90,11 +91,11 @@ module ietf-nrp-device { /* NRP Interface Configuration Data */ container interfaces { description - "Configuration data model for NRP interfaces."; + "NRP interfaces global configuration."; list interface { key "interface"; description - "NRP interfaces."; + "The list of interfaces enabled for NRP."; leaf interface { type if:interface-ref; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-nrp@2023-08-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-nrp@2024-07-05.yang similarity index 76% rename from experimental/ietf-extracted-YANG-modules/ietf-nrp@2023-08-28.yang rename to experimental/ietf-extracted-YANG-modules/ietf-nrp@2024-07-05.yang index 56310fd3c..1739a259c 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-nrp@2023-08-28.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-nrp@2024-07-05.yang @@ -6,22 +6,25 @@ module ietf-nrp { import ietf-network { prefix nw; reference - "RFC 8345: A YANG Data Model for Network Topologies"; + "RFC 8345: A YANG Data Model for Network Topologies, + Section 6.1"; } import ietf-network-topology { prefix nt; reference - "RFC 8345: A YANG Data Model for Network Topologies"; + "RFC 8345: A YANG Data Model for Network Topologies, + Section 6.2"; } 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; + import ietf-vpn-common { + prefix vpn-common; reference - "RFC 8776: Traffic Engineering Common YANG Types"; + "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3 + VPNs"; } import ietf-te-packet-types { prefix te-packet-types; @@ -37,7 +40,7 @@ module ietf-nrp { prefix acl; reference "RFC 8519: YANG Data Model for Network Access Control Lists - (ACLs)"; + (ACLs)"; } import ietf-srv6-types { prefix srv6-types; @@ -58,7 +61,6 @@ module ietf-nrp { contact "WG Web: WG List: - Editor: Bo Wu Editor: Dhruv Dhody @@ -74,9 +76,9 @@ module ietf-nrp { "; description "This YANG module defines a data model for - Network Resource Partitions (NRPs) managment. + Network Resource Partitions (NRPs) management. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -90,12 +92,12 @@ module ietf-nrp { (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - revision 2023-08-28 { + revision 2024-07-05 { description "Initial revision."; reference - "RFC XXXX: A YANG Data Model for Network Resource - Partitions (NRPs)"; + "RFC XXXX: YANG Data Models for Network Resource + Partitions (NRPs)"; } /* @@ -107,22 +109,22 @@ module ietf-nrp { "Base identity for NRP partition type."; } - identity nrp-control-plane-partition { + identity control-plane-partition { base nrp-partition-mode; description - "Identity for NRP control plane partition."; + "NRP control plane partition."; } - identity nrp-data-plane-partition { + identity data-plane-partition { base nrp-partition-mode; description - "Identity for NRP data plane partition."; + "NRP data plane partition."; } - identity nrp-hybrid-plane-partition { + identity hybrid-plane-partition { base nrp-partition-mode; description - "Identity for both control and data planes partitions of NRP."; + "Both control and data planes partitions of NRP."; } identity nrp-link-partition-type { @@ -134,7 +136,7 @@ module ietf-nrp { base nrp-link-partition-type; description "Identity for NRP virtual interface or sub-interface partition, - e.g. FlexE."; + e.g., FlexE."; } identity queue-partition { @@ -152,7 +154,7 @@ module ietf-nrp { path "/acl:acls/acl:acl/acl:name"; } description - "This type is used to reference an ACL."; + "Used to reference an ACL."; } typedef nrp-topo-filter-ref { @@ -205,6 +207,7 @@ module ietf-nrp { /* * Grouping - NRP Selector Configuration */ + grouping nrp-selector-config { description "Grouping for NRP selector configuration."; @@ -246,8 +249,9 @@ module ietf-nrp { "Any SID from the specified set of SRv6 SID can be the selector."; reference - "draft-ietf-spring-sr-for-enhanced-vpn: Segment Routing - based Virtual Transport Network (VTN) for Enhanced VPN"; + "draft-ietf-spring-sr-for-enhanced-vpn: Segment + Routing based Virtual Transport Network (VTN) for + Enhanced VPN"; } } case ipv6-destination-derived { @@ -271,22 +275,31 @@ module ietf-nrp { "Selection is done based on the specified list of ACLs."; reference "RFC 8519: YANG Data Model for Network Access Control Lists - (ACLs)"; + (ACLs)"; } } } /* - * Grouping - NRP QoS PHB profile + * Grouping - NRP QoS Per-Hop Behavior (PHB) profile */ grouping nrp-qos-phb-profile { description - "Grouping for NRP QoS PHB profile."; + "Grouping for NRP QoS Per-Hop Behavior (PHB) profile."; leaf phb-profile { - type string; + type leafref { + path "/nw:networks/nrp-policies/" + + "policy-profiles/phb-profile-identifier/id"; + } description - "PHB profile identifier."; + "PHB profile identifier, specifying the forwarding treatment + of packets belonging to a specific NRP selector, such as + bandwidth control, congestion control + (e.g., Section 3.4 of [RFC3644]). + The PHB may be standard PHB, such as Assured Forwarding (AF), + Expedited Forwarding (EF), or a customized local policy, + such as 'High', 'Low', 'Standard'."; } } @@ -301,11 +314,12 @@ module ietf-nrp { presence "Indicates NRP IGP congruency."; description "The presence of the container node describes NRP IGP - congruent, which indicates that the NRP instance uses the same - IGP topology with the specified 'multi-topology-id' - and 'algo-id'. That is, the nodes and termination point of the - NRP topology and the IGP topology are the same, while the link - attributes of the NRP are different from those of the IGP."; + congruent, which indicates that the NRP instance uses the + same IGP topology with the specified 'multi-topology-id' + and 'algo-id'. That is, the nodes and termination point of + the NRP topology and the IGP topology are the same, while + the link attributes of the NRP are different from those of + the IGP."; leaf multi-topology-id { type uint32; description @@ -324,11 +338,10 @@ module ietf-nrp { } leaf sharing { type boolean; - default "true"; description - "'true' if the the NRP IGP instance can be shared with + "'true' if the NRP IGP instance can be shared with other NRPs; - 'false' if the the NRP IGP instance is dedicated + 'false' if the NRP IGP instance is dedicated to this NRP."; } } @@ -386,7 +399,7 @@ module ietf-nrp { "Container for the base topology reference."; uses nw:network-ref; } - list links { + list link { key "link-ref"; description "A list of links with common attributes"; @@ -448,6 +461,22 @@ module ietf-nrp { container nrp-policies { description "Container for nrp policies."; + container policy-profiles { + description + "Container for profiles."; + list phb-profile-identifier { + key "id"; + description + "List of PHB profiles."; + leaf id { + type string; + description + "Uniquely identifies the PHB. + The profile only has significance within the service + provider's administrative domain"; + } + } + } list nrp-policy { key "name"; unique "nrp-id"; @@ -468,10 +497,9 @@ module ietf-nrp { type identityref { base nrp-partition-mode; } - default "nrp-hybrid-plane-partition"; description - "Indicates the resource partition mode of the NRP, such as - control plane partition, data plane partition, + "Indicates the resource partition mode of the NRP, such + as control plane partition, data plane partition, or hybrid partition."; } uses nrp-resource-reservation; @@ -501,6 +529,21 @@ module ietf-nrp { } } + // nrp-link-statistics + + grouping nrp-statistics-per-link { + description + "Statistics attributes per NRP link."; + container statistics { + config false; + description + "Statistics for NRP link."; + uses vpn-common:service-status; + uses nrp-bandwidth-metrics; + uses te-packet-types:one-way-performance-metrics-packet; + } + } + /* * Grouping - NRP node attributes */ @@ -508,7 +551,7 @@ module ietf-nrp { grouping nrp-node-attributes { description "NRP node scope attributes."; - container nrp { + container nrp-node-attributes { config false; description "Containing NRP attributes."; @@ -523,22 +566,26 @@ module ietf-nrp { grouping nrp-link-attributes { description "NRP link scope attributes."; - leaf link-partition-type { - type identityref { - base nrp-link-partition-type; - } + container nrp-link-attributes { config false; description - "Indicates the resource partition type of an NRP link."; - } - leaf bandwidth-value { - type uint64; - units "bits/second"; - config false; - description - "Bandwidth allocation for the NRP as absolute value."; + "Contains NRP link attributes."; + leaf link-partition-type { + type identityref { + base nrp-link-partition-type; + } + description + "Indicates the resource partition type of an NRP link."; + } + leaf bandwidth-value { + type uint64; + units "bits/second"; + description + "Bandwidth allocation for the NRP as absolute value."; + } + uses nrp-selector-state; + uses nrp-statistics-per-link; } - uses nrp-selector-state; } /* @@ -553,42 +600,70 @@ module ietf-nrp { units "bits/second"; description "Available bandwidth that is defined to be NRP link - bandwidth minus bandwidth utilization.."; + bandwidth minus bandwidth utilization."; } leaf one-way-utilized-bandwidth { type uint64; units "bits/second"; description "Bandwidth utilization that represents the actual - utilization of the link (i.e. as measured in the router)."; + utilization of the link (i.e., as measured in the router)."; } } - // nrp-link-statistics + /* + * Grouping - NRPs Node Attributes + */ - grouping nrp-statistics-per-link { + grouping nrps-node-attributes { description - "Statistics attributes per NRP link."; - container statistics { - config false; + "Grouping for NRPs nodes attributes."; + container nrps-node-attributes { description - "Statistics for NRP link."; - leaf admin-status { - type te-types:te-admin-status; + "Containing NRPs attributes."; + list nrp { + key "nrp-id"; + config false; description - "The administrative state of the link."; + "List of NRPs."; + leaf nrp-id { + type uint32; + description + "NRP identifier"; + } + uses nrp-node-attributes; } - leaf oper-status { - type te-types:te-oper-status; + } + } + + /* + * Grouping - NRPs Link Attributes + */ + + grouping nrps-link-attributes { + description + "Grouping for NRPs link attributes."; + container nrps-link-attributes { + config false; + description + "Contains NRPs link attributes."; + list nrp { + key "nrp-id"; + config false; description - "The current operational state of the link."; + "List of NRPs."; + leaf nrp-id { + type uint32; + description + "NRP identifier"; + } + uses nrp-link-attributes; } - uses nrp-bandwidth-metrics; - uses te-packet-types:one-way-performance-metrics-packet; } } // nrp-network-type + grouping nrp-network-type { description "Identifies the network type to be NRP."; @@ -605,7 +680,7 @@ module ietf-nrp { augment "/nw:networks" { description - "Augment networks with NRP policies."; + "Augments networks with NRP policies."; uses nrp-pol; } @@ -626,10 +701,10 @@ module ietf-nrp { augment "/nw:networks/nw:network/nw:node" { when '../nw:network-types/nrp:nrp' { description - "Augment only for NRP network topology."; + "Augments only for NRP network topology."; } description - "Augment node configuration and state."; + "Augments node with NRP state attributes."; uses nrp-node-attributes; } @@ -640,17 +715,11 @@ module ietf-nrp { augment "/nw:networks/nw:network/nt:link" { when '../nw:network-types/nrp:nrp' { description - "Augment only for NRP network topology."; + "Augments only for NRP network topology."; } description - "Augment link configuration and state."; - container nrp { - config false; - description - "Containing NRP attributes."; - uses nrp-link-attributes; - uses nrp-statistics-per-link; - } + "Augments link with NRP state attributes."; + uses nrp-link-attributes; } /* @@ -659,19 +728,8 @@ module ietf-nrp { augment "/nw:networks/nw:network/nw:node" { description - "Augment node with NRPs aware attributes."; - list nrps { - key "nrp-id"; - config false; - description - "List of NRPs."; - leaf nrp-id { - type uint32; - description - "NRP identifier"; - } - uses nrp-node-attributes; - } + "Augments node with NRP list state attributes."; + uses nrps-node-attributes; } /* @@ -680,18 +738,7 @@ module ietf-nrp { augment "/nw:networks/nw:network/nt:link" { description - "Augment link with NRPs aware attributes."; - list nrps { - key "nrp-id"; - config false; - description - "List of NRPs."; - leaf nrp-id { - type uint32; - description - "NRP identifier"; - } - uses nrp-link-attributes; - } + "Augments link with NRP list state attributes."; + uses nrps-link-attributes; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ns-topo@2023-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-ns-topo@2023-07-07.yang deleted file mode 100644 index aae506603..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-ns-topo@2023-07-07.yang +++ /dev/null @@ -1,359 +0,0 @@ -module ietf-ns-topo { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-ns-topo"; - prefix "ns-topo"; - - 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-types { - prefix "te-types"; - reference - "draft-ietf-teas-rfc8776-update-04: - Common YANG Data Types for Traffic Engineering"; - } - - import ietf-network-slice-service { - prefix "ietf-nss"; - reference - "draft-ietf-teas-ietf-network-slice-nbi-yang-05: - IETF Network Slice Service YANG Model"; - } - - organization - "IETF CCAMP Working Group"; - contact - "WG Web: - WG List: - - Editor: Xufeng Liu - - - Editor: Italo Busi - - - Editor: Aihua Guo - - - Editor: Sergio Belotti - - - Editor: Luis M. Contreras - "; - - description - "This module defines a base YANG data model for configuring - generic network slices in optical transport networks, e.g., - Optical Transport Network (OTN). - - 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."; - revision 2023-07-07 { - description "Initial revision"; - reference - "RFC XXXX: IETF Network Slice Topology YANG Data Model"; - } - - /* - * Groupings - */ - grouping ns-topo-steering-constraints { - description - "Policy grouping for specifying steering constraints for - Transport Network Slices."; - - leaf disjointness { - type te-types:te-path-disjointness; - description - "Indicate the level of disjointness for slice - resources."; - } - } - - grouping topology-ref { - description - "Grouping for network topology reference."; - leaf topology-id { - type leafref { - path "/nw:networks/nw:network/nw:network-id"; - } - description - "Relative reference to network slice topology id."; - } - uses explicit-path; - } - - grouping explicit-path { - description - "Explicit path for a connectivity matrix entry"; - - list explicit-path { - key "tp-id"; - description - "List of TPs within a network topology that form a - path."; - leaf tp-id { - type leafref { - path "/nw:networks/nw:network/nw:node"+ - "/nt:termination-point/nt:tp-id"; - } - description - "Relative reference to TP id."; - } - } - } - - /* - * Augmented data nodes - */ - /* network type augments */ - augment "/nw:networks/nw:network/nw:network-types" { - description - "Defines the Network Slice topology type."; - container network-slice { - presence "Indicates Network Slice topology"; - description - "Its presence identifies the Network Slice type."; - } - } - - /* network topology augments */ - augment "/nw:networks/nw:network" { - when "./nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description "Augment topology configuration and state."; - uses ietf-nss:service-slo-sle-policy; - } - - augment "/nw:networks/nw:network" + - "/ns-topo:slo-sle-policy" + - "/ns-topo:custom" + - "/ns-topo:service-slo-sle-policy" + - "/ns-topo:sle-policy" + - "/ns-topo:steering-constraints" { - when "../../../nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description "Augment topology configuration and state."; - uses ns-topo-steering-constraints; - } - - /* network node augments */ - augment "/nw:networks/nw:network/nw:node" { - when "../nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description "Augment node configuration and state."; - uses ietf-nss:service-slo-sle-policy; - } - - augment "/nw:networks/nw:network/nw:node" + - "/ns-topo:slo-sle-policy" + - "/ns-topo:custom" + - "/ns-topo:service-slo-sle-policy" + - "/ns-topo:sle-policy" + - "/ns-topo:steering-constraints" { - when "../../../../nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description - "Augment IETF network slice services to include steering - constraints for nodes."; - uses ns-topo-steering-constraints; - } - - /* network node's termination point augments */ - augment "/nw:networks/nw:network/nw:node" + - "/nt:termination-point" { - when "../../nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description "Augment node configuration and state."; - - uses ietf-nss:service-slo-sle-policy; - } - - /* network link augments */ - augment "/nw:networks/nw:network/nt:link" { - when "../nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description "Augment link configuration and state."; - uses ietf-nss:service-slo-sle-policy; - } - - augment "/nw:networks/nw:network/nt:link" + - "/ns-topo:slo-sle-policy" + - "/ns-topo:custom" + - "/ns-topo:service-slo-sle-policy" + - "/ns-topo:sle-policy" + - "/ns-topo:steering-constraints" { - when "../../../../nw:network-types/ns-topo:network-slice" { - description "Augment only for Network Slice topology."; - } - description - "Augment IETF network slice services to include steering - constraints for links within a resource-based transport - network slice."; - uses ns-topo-steering-constraints; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slo-sle-templates" + - "/ietf-nss:slo-sle-template" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" { - description - "Augment IETF network slice service templates with - technology-specific steering constraints."; - - uses ns-topo-steering-constraints; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" { - description - "Augment IETF network slice services to include steering - constraints for connectivity-based transport network - slices."; - - uses ns-topo-steering-constraints; - } - - /* connectivity construct augments */ - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:connection-groups" + - "/ietf-nss:connection-group" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" { - description - "Augment IETF network slice services to include steering - constraints for connectivity-constructs within a - connectivity-based transport network slice."; - uses ns-topo-steering-constraints; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:connection-groups" + - "/ietf-nss:connection-group" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" + - "/ietf-nss:path-constraints" { - description - "Add toplogy id and explicit path to the connection group"; - - uses topology-ref; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:connection-groups" + - "/ietf-nss:connection-group" + - "/ietf-nss:connectivity-construct" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" { - description - "Augment IETF network slice services to include steering - constraints for connectivity-constructs within a - connectivity-based transport network slice."; - uses ns-topo-steering-constraints; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:connection-groups" + - "/ietf-nss:connection-group" + - "/ietf-nss:connectivity-construct" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" + - "/ietf-nss:path-constraints" { - description - "Add toplogy id and explicit path to the connectivity - construct"; - - uses topology-ref; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:connection-groups" + - "/ietf-nss:connection-group" + - "/ietf-nss:connectivity-construct" + - "/ietf-nss:type" + - "/ietf-nss:a2a" + - "/ietf-nss:a2a-sdp" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" { - description - "Augment IETF network slice services to include steering - constraints for a2a connectivity-constructs within a - connectivity-based transport network slice."; - uses ns-topo-steering-constraints; - } - - augment "/ietf-nss:network-slice-services" + - "/ietf-nss:slice-service" + - "/ietf-nss:connection-groups" + - "/ietf-nss:connection-group" + - "/ietf-nss:connectivity-construct" + - "/ietf-nss:type" + - "/ietf-nss:a2a" + - "/ietf-nss:a2a-sdp" + - "/ietf-nss:slo-sle-policy" + - "/ietf-nss:custom" + - "/ietf-nss:service-slo-sle-policy" + - "/ietf-nss:sle-policy" + - "/ietf-nss:steering-constraints" + - "/ietf-nss:path-constraints" { - description - "Add toplogy id and explicit path to a2a connectivity - construct"; - - uses topology-ref; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ns-topo@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-ns-topo@2024-07-02.yang new file mode 100644 index 000000000..0b787a75e --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ns-topo@2024-07-02.yang @@ -0,0 +1,137 @@ +module ietf-ns-topo { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-ns-topo"; + prefix "ns-topo"; + + 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-network-slice-service { + prefix "ietf-nss"; + reference + "draft-ietf-teas-ietf-network-slice-nbi-yang-10: + IETF Network Slice Service YANG Model"; + } + + organization + "IETF TEAS Working Group"; + contact + "WG Web: + WG List: + + Editor: Xufeng Liu + + + Editor: Italo Busi + + + Editor: Aihua Guo + + + Editor: Sergio Belotti + + + Editor: Luis M. Contreras + "; + + description + "This module defines a base YANG data model for configuring + customer intent topologies for RFC9543 network slices. + + 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."; + + revision 2024-07-02 { + description "Initial revision"; + reference + "RFC XXXX: IETF Network Slice Topology YANG Data Model"; + } + + /* + * Augmented data nodes + */ + /* network type augments */ + augment "/nw:networks/nw:network/nw:network-types" { + description + "Defines the Network Slice topology type."; + container network-slice { + presence "Indicates a Network Slice topology"; + description + "Its presence identifies the Network Slice type."; + } + } + + /* network topology augments */ + augment "/nw:networks/nw:network" { + when "./nw:network-types/ns-topo:network-slice" { + description + "Augmentation parameters apply only for networks + of type Network Slice topology."; + } + description + "SLO and SLE for topology."; + + uses ietf-nss:service-slo-sle-policy; + } + + /* network node augments */ + augment "/nw:networks/nw:network/nw:node" { + when "../nw:network-types/ns-topo:network-slice" { + description + "Augmentation parameters apply only for networks + of type Network Slice topology."; + } + description + "SLO and SLE for nodes."; + uses ietf-nss:service-slo-sle-policy; + } + + /* network node's termination point augments */ + augment "/nw:networks/nw:network/nw:node" + + "/nt:termination-point" { + when "../../nw:network-types/ns-topo:network-slice" { + description + "Augmentation parameters apply only for networks + of type Network Slice topology."; + } + description + "SLO and SLE for termination points."; + + uses ietf-nss:service-slo-sle-policy; + } + + /* network link augments */ + augment "/nw:networks/nw:network/nt:link" { + when "../nw:network-types/ns-topo:network-slice" { + description + "Augmentation parameters apply only for networks + of type Network Slice topology."; + } + description + "SLO and SLE for links."; + + uses ietf-nss:service-slo-sle-policy; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ns-underlay-path@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-ns-underlay-path@2024-07-02.yang new file mode 100644 index 000000000..92df20a6a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ns-underlay-path@2024-07-02.yang @@ -0,0 +1,183 @@ +module ietf-ns-underlay-path { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-ns-underlay-path"; + prefix "ns-path"; + + 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-network-slice-service { + prefix "ietf-nss"; + reference + "draft-ietf-teas-ietf-network-slice-nbi-yang-05: + IETF Network Slice Service YANG Model"; + } + + organization + "IETF TEAS Working Group"; + contact + "WG Web: + WG List: + + Editor: Xufeng Liu + + + Editor: Italo Busi + + + Editor: Aihua Guo + + + Editor: Sergio Belotti + + + Editor: Luis M. Contreras + "; + + description + "This module defines a base YANG data model for configuring + the underlay path of connectivity intent over a customer + intent topology for RFC9543 network slices. + + 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."; + + revision 2024-07-02 { + description "Initial revision"; + reference + "RFC XXXX: IETF Network Slice Topology YANG Data Model"; + } + + /* + * Groupings + */ + grouping underlay-path { + description + "Underlay explicit path within a customer intent + topology."; + + container underlay-path { + description + "Defines an underlay explicit path within specific + customer intent topology."; + + uses nw:network-ref; + + list path-element { + key "index"; + description + "List of path elements."; + leaf index { + type uint32; + description + "Index of the hop within the underlay path."; + } + leaf is-strict-hop { + type boolean; + description + "Indicate whether the hop is strict or loose"; + } + choice type { + description + "Type of the hop."; + case node-hop { + leaf node-id { + type nw:node-id; + description + "Node identifier."; + } + } + case link-hop { + leaf link-id { + type nt:link-id; + description + "Link identifier."; + } + } + case tp-hop { + leaf tp-id { + type nt:tp-id; + description + "Termination Point (TP) identifier."; + } + } + } + } + } + } + + /* + * Augmented data nodes + */ + augment "/ietf-nss:network-slice-services" + + "/ietf-nss:slice-service" + + "/ietf-nss:connection-groups" + + "/ietf-nss:connection-group" + + "/ietf-nss:slo-sle-policy" + + "/ietf-nss:custom" + + "/ietf-nss:service-slo-sle-policy" + + "/ietf-nss:sle-policy" + + "/ietf-nss:path-constraints" { + description + "Underlay path for connection group."; + + uses underlay-path; + } + + augment "/ietf-nss:network-slice-services" + + "/ietf-nss:slice-service" + + "/ietf-nss:connection-groups" + + "/ietf-nss:connection-group" + + "/ietf-nss:connectivity-construct" + + "/ietf-nss:slo-sle-policy" + + "/ietf-nss:custom" + + "/ietf-nss:service-slo-sle-policy" + + "/ietf-nss:sle-policy" + + "/ietf-nss:path-constraints" { + description + "Underlay path for connectivity construct."; + + uses underlay-path; + } + + augment "/ietf-nss:network-slice-services" + + "/ietf-nss:slice-service" + + "/ietf-nss:connection-groups" + + "/ietf-nss:connection-group" + + "/ietf-nss:connectivity-construct" + + "/ietf-nss:type" + + "/ietf-nss:a2a" + + "/ietf-nss:a2a-sdp" + + "/ietf-nss:slo-sle-policy" + + "/ietf-nss:custom" + + "/ietf-nss:service-slo-sle-policy" + + "/ietf-nss:sle-policy" + + "/ietf-nss:path-constraints" { + description + "Underlay path for a2a connectivity constructs."; + + uses underlay-path; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ntw-energy-saving@2024-01-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-ntw-energy-saving@2024-01-23.yang new file mode 100644 index 000000000..7835fd8f1 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ntw-energy-saving@2024-01-23.yang @@ -0,0 +1,145 @@ +module ietf-ntw-energy-saving { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ntw-energy-saving"; + prefix esm-ntw; + + import ietf-energy-saving-common { + prefix esm-common; + reference + "RFC XXXX: YANG Data Models for Energy Saving Management"; + } + import ietf-network { + prefix nw; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Types"; + } + import iana-hardware { + prefix ianahw; + reference + "https://www.iana.org/assignments/iana-hardware/iana-hardware.xhtml"; + } + organization + "IETF XXX Working Group."; + contact + "WG Web: ; + WG List: + + Author: Gen Chen + + Editor: Qin Wu + + Editor: Mohamed Boucadair + + Author: Carlos Pignataro + "; + description + "This module contains a collection of YANG definitions for power + and energy management of devices. It also augments both the + network topology and inventory models. + + 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-23 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Data Models for Energy Saving Management"; + } + + augment "/nw:networks/nw:network/nw:node" { + if-feature "esm-common:energy-saving"; + description + "Energy monitoring data for network elements."; + container energy-power-consumption { + config false; + description + "Statistics data about energy and power monitoring."; + uses esm-common:energy-power-consumption-stats; + leaf start-time { + type yang:date-and-time; + description + "The time (in hundredths of a second) since the + network management portion of the system was last + re-initialized. It corresponds to the sysUpTime MIB object. + It specifies the start time of the energy measurement + results collection."; + reference + "RFC 3418: Management Information Base (MIB) for the + Simple Network Management Protocol (SNMP)"; + } + } + container energy-saving-modes { + description + "List of the energy saving mode."; + uses esm-common:energy-saving-modes; + } + list component { + key name; + config false; + description + "List of components."; + leaf name { + type string; + description + "The name assigned to this component. + This name is not required to be the same as + entPhysicalName."; + } + leaf class { + type identityref { + base ianahw:hardware-class; + } + mandatory true; + description + "An indication of the general hardware type of the + component."; + reference + "RFC 6933: Entity MIB (Version 4) - entPhysicalClass"; + } + container energy-monitoring { + description + "Energy monitoring data for components."; + container energy-consumption { + description + "Statistics of component about energy monitoring."; + uses esm-common:energy-consumption-data; + } + container energy-saving { + description + "Controls energy saving parameters of a component."; + leaf enabled { + type boolean; + default "true"; + description + "Controls whether the energy-saving + of the component is enabled (when set to true) + or disabled (set to false)."; + } + leaf power-state { + type identityref { + base esm-common:energy-saving-power-state; + } + description + "The device energy saving operator state."; + } + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2024-07-05.yang similarity index 58% rename from experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2024-07-05.yang index dad3bc6c5..a703864d2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2023-07-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-oam-test-sequence@2024-07-05.yang @@ -5,11 +5,13 @@ module ietf-oam-test-sequence { import ietf-oam-unitary-test { prefix "oamut"; - // Update the reference with the correct RFC number or other reference when assigned - //reference "RFCXXXX"; + // Update the reference with the correct RFC number or other + // reference when assigned + // reference "RFCXXXX"; } - import ietf-schedule { prefix "schedule"; } // reference draft-ma-opsawg-ucl-acl + // reference ietf-netmod-schedule-yang + import ietf-schedule { prefix "schedule"; } organization "IETF OPSAWG (Operations and Management Area Working Group)"; @@ -22,9 +24,10 @@ module ietf-oam-test-sequence { Author: Victor Lopez "; description - "This module defines the 'oam-unitary-test' YANG model for activation of network diagnosis procedures. + "This module defines the 'oam-unitary-test' YANG model for + activation of network diagnosis procedures. - Copyright (c) 2023 IETF Trust and the persons identified as + 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 @@ -43,15 +46,18 @@ module ietf-oam-test-sequence { // RFC Ed.: replace XXXX with actual RFC number and remove // this note. - revision "2023-07-10" { + revision "2024-07-05" { description "Initial version"; - reference "RFCXXXX"; // Update with the correct RFC number when assigned + reference "RFCXXXX"; + // Update with the correct RFC number when assigned } // Data model definition container oam-test-sequence { - description "Container for executing a sequence of ietf-oam-unitary-tests N times."; + description + "Container for executing a sequence of ietf-oam-unitary-tests + N times."; list test-sequence { key "name"; @@ -61,7 +67,6 @@ module ietf-oam-test-sequence { type string; description "Unique name for the test sequence."; } - list test-ref { key "name"; description "References to the ietf-oam-unitary-tests."; @@ -71,40 +76,54 @@ module ietf-oam-test-sequence { leaf numexecutions { type uint32; default 1; - description "Number of times the test sequence should be executed."; + description + "Number of times the test sequence should be + executed."; } } - uses schedule:period; + uses schedule:period-of-time; - uses schedule:recurrence; + uses schedule:recurrence-utc; - leaf test-squence-status { + leaf test-sequence-status { type enumeration { enum "planned" { - description "The test sequence is planned."; + description + "The test sequence is planned."; } - enum "success" { - description "All tests in the sequence were successful."; + enum "configured" { + description + "The test sequence is configured."; } - enum "failure" { - description "One or more tests in the sequence failed."; + enum "ready" { + description + "The test sequence is ready."; } enum "ongoing" { - description "The test sequence status is ongoing."; - } - enum "unknown" { - description "The test sequence status is unknown."; + description + "The test sequence status is ongoing."; } enum "stop" { - description "The test sequenceis stopped."; + description + "The test sequenceis stopped."; } - enum "finish" { - description "The test sequence is finished."; + enum "success" { + description + "All tests in the sequence were successful."; + } + enum "failure" { + description + "One or more tests in the sequence got an error."; + } + enum "error" { + description + "The test sequence status has an error."; } } - config false; - description "Status of the test sequence execution."; + + description + "Status of the test sequence execution."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2024-07-05.yang similarity index 68% rename from experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2024-07-05.yang index ac5352112..07ecd9a0a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2023-07-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-oam-unitary-test@2024-07-05.yang @@ -4,7 +4,9 @@ module ietf-oam-unitary-test { prefix "oamut"; // Import OAM models from RFCs RFC8531, RFC8532 and RFC8533 - import ietf-schedule { prefix "schedule"; } // reference draft-ma-opsawg-ucl-acl + + // reference ietf-netmod-schedule-yang + import ietf-schedule { prefix "schedule"; } organization "IETF OPSAWG (Operations and Management Area Working Group)"; @@ -17,9 +19,10 @@ module ietf-oam-unitary-test { Author: Victor Lopez "; description - "This module defines the 'ietf-oam-unitary-test' YANG model for activation of network diagnosis procedures. + "This module defines the 'ietf-oam-unitary-test' YANG model for + activation of network diagnosis procedures. - Copyright (c) 2023 IETF Trust and the persons identified as + 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 @@ -38,17 +41,19 @@ module ietf-oam-unitary-test { // RFC Ed.: replace XXXX with actual RFC number and remove // this note. - revision "2023-07-10" { + revision "2024-07-05" { description "Initial version"; reference - "RFCXXXX: A YANG Data Model for Network Diagnosis by scheduling sequences of OAM tests"; // Update with the correct RFC number when assigned + "RFCXXXX: A YANG Data Model for Network Diagnosis by Scheduling + Sequences of OAM Tests"; + // Update with the correct RFC number when assigned } grouping oam-unitary-test { description - "This grouping is defined for OAM unitary test for network diagnosis procedures."; - + "This grouping is defined for OAM unitary test for network + diagnosis procedures."; leaf name { type string; description @@ -65,44 +70,54 @@ module ietf-oam-unitary-test { container oam-unitary-tests { description - "Container for OAM unitary tests activation for network diagnosis procedures."; + "Container for OAM unitary tests activation for network + diagnosis procedures."; list oam-unitary-test { key name; description - "List of OAM unitary tests activation for network diagnosis procedures."; + "List of OAM unitary tests activation for network diagnosis + procedures."; uses oam-unitary-test; - uses schedule:period; + uses schedule:period-of-time; uses schedule:recurrence; leaf unitary-test-status { type enumeration { enum "planned" { - description "The test is planned."; + description + "The test is planned."; } enum "configure" { - description "The test is configured."; + description + "The test is configured."; } enum "ready" { - description "The test status is ready."; + description + "The test status is ready."; } enum "ongoing" { - description "The test is ongoing."; + description + "The test is ongoing."; } enum "stop" { - description "The test is stopped."; + description + "The test is stopped."; } enum "finish" { - description "The test is finished."; + description + "The test is finished."; } enum "error" { - description "The test has an error."; + description + "The test has an error."; } } - description "Status of the test."; + description + "Status of the test."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ol@2021-05-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-ol@2024-04-26.yang similarity index 51% rename from experimental/ietf-extracted-YANG-modules/ietf-ol@2021-05-21.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ol@2024-04-26.yang index 6cec9d9df..77ed35c60 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ol@2021-05-21.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ol@2024-04-26.yang @@ -5,10 +5,13 @@ module ietf-ol { import ietf-inet-types { prefix inet; + reference + "RFC 6991: Common Yang Data Types, Section 4"; } - import ietf-mud { - prefix mud; + prefix ietf-mud; + reference + "RFC 8520: Manufacturer Usage Description Specification"; } organization @@ -22,7 +25,7 @@ module ietf-ol { description "This YANG module to indicate ownership and licensing. - Copyright (c) 2021 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -34,56 +37,59 @@ module ietf-ol { 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. + 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 2021-05-21 { + revision 2024-04-26 { description "Initial proposed standard."; reference "RFC XXXX: Extension for ownership and licensing"; } - grouping ol-extension { + grouping owner-license-grouping { description - "OL extension grouping"; + "A grouping expression ownership and license information"; container ol { description "container relating to ownership and licensing."; - leaf-list owners { - type string; + list licenses { + key "owner-name"; description - "A list of owners, may be in the form of a copyright - Example: Copyright (c) Jane Smith. All rights Reserved."; - } - choice license-type { - description "Either choose a standard license type or point - to one of your own."; - case spdx-lt { - leaf spdx-tag { - type string; - description "SPDX License Identifier, as indicated at - https://spdx.org/licenses/"; + "list of licenses that may be applied."; + leaf owner-name { + type string { + length "1..128"; } + description + "name of the owner"; } - case url { - leaf license-info { - type inet:uri; - description "A URL pointing to licensing information."; + choice license-type { + description + "Either choose a standard license type or point + to one of your own."; + case spdx-lt { + leaf-list spdx-tags { + type string; + description + "SPDX License Identifier, as indicated at + https://spdx.org/licenses/"; + } + } + case url { + leaf-list license-info { + type inet:uri; + description + "A URL pointing to licensing information."; + } } } } } } - augment "/mud:mud" { + augment "/ietf-mud:mud" { description "Add extension for Ownership and licensing."; - uses ol-extension; + uses owner-license-grouping; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-on-path-telemetry@2024-06-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-on-path-telemetry@2024-06-19.yang new file mode 100644 index 000000000..3d48dcdb3 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-on-path-telemetry@2024-06-19.yang @@ -0,0 +1,726 @@ +module ietf-on-path-telemetry { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-on-path-telemetry"; + prefix "on-path-telemetry"; + + import ietf-access-control-list { + prefix acl; + reference + "RFC 8519: YANG Data Model for Network Access Control + Lists (ACLs)"; + } + + import ietf-interfaces { + prefix if; + reference + "RFC 8343: A YANG Data Model for Interface Management"; + } + import ietf-yang-types { + prefix yang; + reference + "Section 3 of RFC 6991"; + } + + organization + "IETF IPPM (IP Performance Metrics) Working Group"; + + contact + "WG Web: + WG List: + Author: giuseppe.fioccola@huawei.com + Author: zhoutianran@huawei.com"; + + description + "This YANG module specifies a vendor-independent data + model for Alternate Marking Telemetry. + + 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) 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + revision 2024-06-19 { + description "First revision."; + reference "RFC XXXX: A YANG Data Model for On-path Telemetry"; + } + + /* + * FEATURES + */ + + feature altmark + { + description + "This feature indicated that the Alternate-Marking Method is + supported."; + reference + "RFC 9341: Alternate-Marking Method; + RFC 9342: Clustered Alternate-Marking Method"; + } + + feature pathdelay + { + description + "This feature indicated that the Path Delay is + supported."; + reference + "[I-D.ietf-opsawg-ipfix-on-path-telemetry]"; + } + + feature incremental-trace + { + description + "This feature indicated that the incremental tracing option is + supported."; + reference "RFC 9197: Data Fields for In-situ OAM"; + } + + feature preallocated-trace + { + description + "This feature indicated that the preallocated tracing option is + supported."; + reference "RFC 9197: Data Fields for In-situ OAM"; + } + + feature direct-export + { + description + "This feature indicated that the direct export option is + supported."; + reference "RFC 9326: In-situ OAM Direct Exporting"; + } + + feature proof-of-transit + { + description + "This feature indicated that the proof of transit option is + supported"; + reference "RFC 9197: Data Fields for In-situ OAM"; + } + + feature edge-to-edge + { + description + "This feature indicated that the edge-to-edge option is + supported."; + reference "RFC 9197: Data Fields for In-situ OAM"; + } + + /* + * IDENTITIES + */ + + identity filter { + description + "Base identity to represent a filter. A filter is used to + specify the flow to which the On-Path Telemetry method is applied."; + } + + identity acl-filter { + base filter; + description + "Apply ACL rules to specify the flow."; + } + + identity protocol { + description + "Base identity to represent the protocol. It's used to + indicate the protocol for the application of the On-Path Telemetry + method."; + } + + identity ipv6 { + base protocol; + description + "The On-Path Telemetry method is applied to IPv6 protocol."; + reference + "RFC 9343: IPv6 Application of the Alternate-Marking Method, + RFC 9486: In-situ OAM IPv6 Options"; + } + + identity srh { + base protocol; + description + "The On-Path Telemetry method is applied to SRH."; + reference + "[I-D.fz-spring-srv6-alt-mark]: Application of the + Alternate Marking Method to the Segment Routing Header"; + } + + identity mpls { + base protocol; + description + "The On-Path Telemetry method is applied to MPLS."; + reference + "[I-D.ietf-mpls-inband-pm-encapsulation]: Application of the + Alternate Marking Method to the MPLS Label Stack"; + } + + identity nsh { + base protocol; + description + "The described IOAM data is embedded in NSH."; + reference + "RFC 9452: Network Service Header (NSH) + Encapsulation for In-situ OAM (IOAM) Data"; + } + + identity node-action { + description + "Base identity to represent the node actions. It's used to + indicate what action the node will take."; + } + + identity action-marking { + base node-action; + description + "It indicates that the node must mark the AltMark data field, + according to the operations described in RFC 9341 and + RFC 9342"; + } + + identity action-unmarking { + base node-action; + description + "It indicates that the node must unmark the AltMark data field, + according to the operations described in RFC 9341 and + RFC 9342"; + } + + identity action-read { + base node-action; + description + "It indicates the node only reads the AltMark data, + according to the operations described in RFC 9341 and + RFC 9342"; + } + + identity action-encapsulate { + base node-action; + description + "It indicates the node is to encapsulate the IOAM packet"; + } + + identity action-decapsulate { + base node-action; + description + "It indicates the node is to decapsulate the IOAM packet"; + } + + identity action-transit { + base node-action; + description + "It indicates the node is to transit the IOAM packet"; + } + + identity period { + description + "It indicates the On-Path Telemetry Period."; + } + + identity period-number { + description + "It indicates the Period Number."; + } + + identity flow-mon-id { + description + "It indicates the FlowMonID."; + } + + identity method { + description + "Base identity to represent the AltMark method type."; + } + + identity trace-data { + description + "Base identity to represent trace data."; + } + + identity pot-data { + description + "Base identity to represent POT data."; + } + + identity e2e-data { + description + "Base identity to represent E2E data."; + } + + identity characteristics { + description + "Base identity for monitoring information + characteristics"; + } + + identity acquisition-method { + base characteristics; + description + "The type of acquisition-method. It can be multiple + types at once."; + } + + identity subscription { + base acquisition-method; + description + "The acquisition-method type is subscription."; + } + + identity query { + base acquisition-method; + description + "The acquisition-method type is query."; + } + + identity emission-type { + base characteristics; + description + "The type of emission-type."; + } + + identity periodic { + base emission-type; + description + "The emission-type type is periodic."; + } + + identity on-change { + base emission-type; + description + "The emission-type type is on-change."; + } + + identity telemetry-param-type { + description + "Base identity for telemetry param types"; + } + + identity loss-measurement { + base telemetry-param-type; + description + "To specify loss counters according to RFC 9341"; + } + + identity delay-measurement { + base telemetry-param-type; + description + "To specify timestamps for delay according to RFC 9341"; + } + + /* + * TYPE DEFINITIONS + */ + + typedef telemetry-filter-type { + type identityref { + base filter; + } + description + "It specifies a known type of filter."; + } + + typedef telemetry-node-action { + type identityref { + base node-action; + } + description + "It specifies a node action."; + } + + typedef telemetry-protocol-type { + type identityref { + base protocol; + } + description + "It specifies a known type of carrier protocol for the On-path + Telemetry data."; + } + + typedef altmark-method-type { + type identityref { + base method; + } + description + "It specifies the AltMark method used."; + } + + typedef ioam-trace-data { + type identityref { + base trace-data; + } + description + "It specifies the trace data."; + } + + typedef ioam-pot-data { + type identityref { + base pot-data; + } + description + "It specifies the pot data."; + } + + typedef ioam-e2e-data { + type identityref { + base e2e-data; + } + description + "It specifies the edge-to-edge data."; + } + + /* + * GROUP DEFINITIONS + */ + + grouping timestamp { + description + "Grouping for identifying the time."; + leaf timestamp { + type yang:date-and-time; + description + "Specify the time."; + } + } + grouping characteristics { + description + "A set of characteristics of a monitoring information."; + leaf acquisition-method { + type identityref { + base acquisition-method; + } + description + "The acquisition-method for characteristics"; + } + leaf emission-type { + type identityref { + base emission-type; + } + description + "The emission-type for characteristics. This attribute is + used when the acquisition-method is a 'subscription'"; + } + } + + grouping telemetry-filter { + description "A grouping for On-path Telemetry filter definition"; + + leaf filter-type { + type telemetry-filter-type; + description "filter type"; + } + + leaf ace-name { + when "derived-from-or-self(../filter-type, + 'on-path-telemetry:acl-filter')"; + type leafref { + path "/acl:acls/acl:acl/acl:aces/acl:ace/acl:name"; + } + description "The Access Control Entry name is used to + refer to an ACL specification."; + } + } + + grouping telemetry-setup { + description + "A grouping for On-path Telemetry profile."; + + leaf node-action { + type telemetry-node-action; + description + "This object indicates the action that the node needs to + take, i.e. marking/read/unmarking/encapsulate/transit/decapsulate."; + } + + leaf period { + type uint64; + description + "It specifies the On-path Telemetry period. + It is the marking period for AltMark."; + } + + leaf period-number { + type uint64; + description + "It specifies the On-path Telemetry period number."; + } + + leaf flowmonid { + type uint32; + description + "It specifies the 20-bit FlowMonID."; + } + + leaf method-type { + type altmark-method-type; + description + "It specifies the AltMark method type."; + } + + } + + grouping loss-counters { + description + "The set of counters for RFC 9341 loss calculation."; + + leaf in-traffic-pkts { + type yang:counter64; + description + "Total inbound packets of the period according to RFC 9341"; + } + leaf out-traffic-pkts { + type yang:counter64; + description + "Total outbound packets of the period according to RFC 9341"; + } + + leaf in-traffic-bytes { + type uint64; + description + "Total inbound bytes of the period according to RFC 9341"; + } + + leaf out-traffic-bytes { + type uint64; + description + "Total outbound bytes of the period according to RFC 9341"; + } + + } + + grouping delay-timestamps { + description + "It indicates the set of timestamps for RFC 9341 delay calculation."; + + container pkts-timestamps { + description + "The list of timestamps of the period according to RFC 9341"; + + leaf pkt-timestamp { + type yang:date-and-time; + description + "To specify the timestamp of the delay packet for delay measurements"; + } + } + } + + grouping path-delay-metrics { + description + "It indicates the path delay measurements."; + + leaf path-delay-mean { + type uint32; + description + "mean path delay as per [I-D.ietf-opsawg-ipfix-on-path-telemetry]"; + } + leaf path-delay-min { + type uint32; + description + "min path delay as per [I-D.ietf-opsawg-ipfix-on-path-telemetry]"; + } + + leaf path-delay-max { + type uint32; + description + "max path delay as per [I-D.ietf-opsawg-ipfix-on-path-telemetry]"; + } + + leaf path-delay-sum { + type uint64; + description + "sum of the path delay as per [I-D.ietf-opsawg-ipfix-on-path-telemetry]"; + } + } + + grouping ioam-incremental-tracing-data { + description + "A grouping for incremental tracing data."; + + leaf incremental-tracing-data { + type ioam-trace-data; + description + "This object indicates the incremental tracing data."; + } + } + + grouping ioam-preallocated-tracing-data { + description + "A grouping for pre-allocated tracing data."; + + leaf preallocated-tracing-data { + type ioam-trace-data; + description + "This object indicates the preallocated-tracing-data."; + } + } + + grouping ioam-direct-export-tracing-data { + description + "A grouping for direct export data."; + + leaf direct-export-data { + type ioam-trace-data; + description + "This object indicates the direct export data."; + } + } + + grouping ioam-edge-to-edge-data { + description + "A grouping for edge-to-edge data."; + + leaf e2e-data { + type ioam-e2e-data; + description + "This object indicates the edge-to-edge data."; + } + } + + grouping ioam-proof-of-transit-data { + description + "A grouping for proof of transit data."; + + leaf pot-data { + type ioam-pot-data; + description + "This object indicates the proof of transit data."; + } + } + + /* + * DATA NODES + */ + + container on-path-telemetry-data { + description "On-path Telemetry top level container"; + + uses timestamp; + + uses characteristics; + + container interfaces { + description + "Contains the list of available interfaces that support + Alternate-Marking."; + + list interface { + key "if-name"; + description + "It describes the list of the interfaces activated for AltMark"; + leaf if-name { + type if:interface-ref; + description "This is a reference to the Interface name."; + } + + leaf profile-name { + type string{ + length "1..300"; + } + description + "Unique identifier for the On-path Telemetry profile."; + } + + container filter { + uses telemetry-filter; + description + "The filter which is used to indicate the flow where + the On-path Telemetry is applied."; + } + + leaf protocol-type { + type telemetry-protocol-type; + description + "This item is used to indicate the carrier protocol where + the On-path Telemetry is applied."; + } + + uses telemetry-setup; + + container altmark-loss-measurement { + if-feature altmark; + description + "It reports the loss measurement data."; + + uses loss-counters; + } + + container altmark-delay-measurement { + if-feature altmark; + description + "It reports the delay measurement data."; + + uses delay-timestamps; + } + + container path-delay { + if-feature pathdelay; + description + "It reports the path delay measurements."; + + uses path-delay-metrics; + } + + container ioam-incremental-tracing { + if-feature incremental-trace; + presence "Enables incremental tracing option."; + description + "It reports the incremental tracing option data."; + + uses ioam-incremental-tracing-data; + } + + container ioam-preallocated-tracing { + if-feature preallocated-trace; + presence "Enables preallocated tracing option."; + description + "It reports the preallocated tracing option data."; + + uses ioam-preallocated-tracing-data; + } + + container ioam-direct-export { + if-feature direct-export; + presence "Enables direct-export option."; + description + "It reports the direct-export option data"; + + uses ioam-direct-export-tracing-data; + } + + container ioam-proof-of-transit { + if-feature proof-of-transit; + presence "Enables Proof of Transit option."; + description + "It reports the PoT option data."; + + uses ioam-proof-of-transit-data; + } + + container ioam-edge-to-edge { + if-feature edge-to-edge; + presence "Enables edge-to-edge option."; + description + "It reports the edge-to-edge option data."; + + uses ioam-edge-to-edge-data; + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-10-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang similarity index 73% rename from experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-10-19.yang rename to experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang index 4ba75d5cb..4bdbe0c71 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2023-10-19.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-optical-impairment-topology@2024-05-21.yang @@ -1,9 +1,7 @@ module ietf-optical-impairment-topology { yang-version 1.1; - namespace "urn:ietf:params:xml" + ":ns:yang:ietf-optical-impairment-topology"; - prefix "oit"; import ietf-network { @@ -70,7 +68,7 @@ module ietf-optical-impairment-topology { "This module contains a collection of YANG definitions for impairment-aware optical networks. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -87,7 +85,7 @@ module ietf-optical-impairment-topology { // this note // replace the revision date with the module publication date // the format is (year-month-day) - revision 2023-10-19 { + revision 2024-05-21 { description "Initial Version"; reference @@ -108,22 +106,6 @@ module ietf-optical-impairment-topology { Linear protection"; } - // groupings - - grouping sliceable-transponder-attributes { - description - "Configuration of a sliceable transponder."; - list sliceable-transponder-list { - key "carrier-id"; - config false; - description "List of carriers"; - leaf carrier-id { - type uint32; - description "Identifier of the carrier"; - } - } - } - /* * Groupings */ @@ -143,9 +125,24 @@ module ietf-optical-impairment-topology { container operational { description "amplifier operational parameters"; list amplifier-element { + key "frequency-range-id stage-order"; description "The list of parallel amplifier elements within an - amplifier used to amplify different frequency ranges."; + amplifier used to amplify different frequency ranges. + + Two elements in the list must not have the same range + or overlapping ranges."; + leaf frequency-range-id { + type uint16; + description + "The identifier of the frequency range."; + } + leaf stage-order { + type uint8; + description + "It allows defining for each spectrum badwidth the + cascade order of each amplifier-element."; + } leaf name { type string; description @@ -153,11 +150,16 @@ module ietf-optical-impairment-topology { the vendor's specification associated with the type-variety."; } - leaf is-dynamic-gain-equalyzer { - type boolean; + leaf type-variety { + type string; description - "Indicates whether the amplifier element is a Dynamic - Gain Equalizer (DGE)."; + "String identifier of amplifier element type + referencing a specification in a separate equipment + catalog. + + This attributes applies only when the type-variety of + the amplifier is not sufficient to describe the + amplifier element type."; } container frequency-range { description @@ -165,112 +167,159 @@ module ietf-optical-impairment-topology { element."; uses l0-types:frequency-range; } - leaf actual-gain { - type l0-types:gain-in-db-or-null; - mandatory true ; - description - "The value of the gain provided by the amplification - stage of the optical amplifier."; - } - leaf tilt-target { - type l0-types:decimal-2-digits-or-null; - units "dB"; - mandatory true ; - description - "The tilt target defined between lower and upper - frequency of the amplifier frequency range."; - } - leaf out-voa { - type l0-types:loss-in-db-or-null; - mandatory true; - description - "Loss introduced by the Variable Optical Attenuator - (VOA) at the output of the amplification stage of - the amplifier, if present."; - } - leaf in-voa { - type l0-types:loss-in-db-or-null; - mandatory true; + container power-param { description - "Loss introduced by the Variable Optical Attenuator - (VOA) at the input of the amplification stage of the - amplifier, if present"; + "The optical power after the out-voa of each amplifier + element."; + choice power-param { + mandatory true; + description + "Select the mode: channel power or power spectral + density (PSD)."; + case channel-power { + leaf nominal-carrier-power { + type l0-types:power-dbm-or-null; + mandatory true; + description + "Reference channel power."; + } + } + case power-spectral-density { + leaf nominal-psd { + type l0-types:psd-or-null; + mandatory true; + description + "Reference power spectral density (PSD)."; + } + } + } + } // container power-param + leaf pdl { + type l0-types:power-loss-or-null; + description "Polarization Dependent Loss (PDL)"; } - leaf total-output-power { - type l0-types:power-in-dbm-or-null; + choice amplifier-element-type { mandatory true; description - "It represent total output power measured in the range - specified by the frequency-range. + "Identifies whether the amplifier element is an + Optical Amplifier (OA) or a Dynamic Gain Equalizer + (DGE)."; + container optical-amplifier { + description + "The attributes applicable only to amplifier + elements"; + leaf actual-gain { + type l0-types:power-gain-or-null; + mandatory true; + description + "The value of the gain provided by the + amplification stage of the optical amplifier."; + } + leaf in-voa { + type l0-types:power-loss-or-null; + description + "Loss introduced by the Variable Optical Attenuator + (VOA) at the input of the amplification stage of + the amplifier, if present"; + } + leaf out-voa { + type l0-types:power-loss-or-null; + description + "Loss introduced by the Variable Optical Attenuator + (VOA) at the output of the amplification stage of + the amplifier, if present."; + } + leaf tilt-target { + type l0-types:decimal-2-or-null; + units "dB"; + mandatory true ; + description + "The tilt target defined between lower and upper + frequency of the amplifier frequency range."; + } + leaf total-output-power { + type l0-types:power-dbm-or-null; + mandatory true; + description + "It represent total output power measured in the + range specified by the frequency-range. - Optical power is especially needed to re-compute/check - consistency of span (fiber+ concentrated loss) loss - value, with respect to loss/gain information on - elements."; - } - uses power-param; - leaf raman-direction { - type enumeration { - enum co-propagating { + Optical power is especially needed to + re-compute/check consistency of span + (fiber + concentrated loss) loss value, with + respect to loss/gain information on elements."; + } + leaf raman-direction { + type enumeration { + enum co-propagating { + description + "Co-propagating indicates that optical pump + light is injected in the same direction to the + optical signal that is amplified + (forward pump)."; + } + enum counter-propagating { + description + "Counter-propagating indicates that optical + pump light is injected in opposite direction + to the optical signal that is amplified + (backward pump)."; + } + } description - "Co-propagating indicates that optical pump light - is injected in the same direction to the optical - signal that is amplified (forward pump)."; + "The direction of injection of the raman pump."; } - enum counter-propagating { + list raman-pump { + key pump-id; description - "Counter-propagating indicates that optical pump - light is injected in opposite direction to the - optical signal that is amplified (backward pump)."; + "The list of pumps for the Raman amplifier."; + leaf pump-id { + type uint16; + description + "The identifier of a pump within an amplifier + element."; + } + leaf frequency { + type l0-types:frequency-thz; + description + "The raman pump central frequency."; + } + leaf power { + type l0-types:decimal-2-or-null; + units "Watts"; + description + "The total pump power considering a depolarized + pump at the raman pump central frequency."; + } } - } - description - "The direction of injection of the raman pump."; - } - list raman-pump { - description - "The list of pumps for the Raman amplifier."; - leaf frequency { - type l0-types:frequency-thz; - description - "The raman pump central frequency."; - } - leaf power { - type l0-types:decimal-2-digits-or-null; - units "Watts"; + } // container optical-amplifier + container dynamic-gain-equalizer { + presence + "When present it indicates that the amplifier element + is a Dynamic Gain Equalizer (DGE)"; description - "The total pump power considering a depolarized pump - at the raman pump central frequency."; - } - } - leaf pdl { - type l0-types:loss-in-db-or-null; - description "Polarization Dependent Loss (PDL)"; - } - container media-channel-groups { - description - "The top level container for the list of media channel - groups."; - list media-channel-group { - description - "The list of media channel groups"; - list media-channels { - // key "flexi-n"; + "The attributes applicable only to DEG amplifier + elements."; + list media-channel { + key "flexi-n"; description "List of media channels represented as (n,m)"; - // this grouping add both n.m values - uses l0-types:flexi-grid-frequency-slot; + uses l0-types:flexi-grid-frequency-slot { + refine flexi-m { + mandatory true; + } + } leaf delta-power { - type l0-types:gain-in-db-or-null; + type l0-types:power-ratio-or-null; description " Deviation from the reference carrier power defined for the OMS."; } } // media channels list - } // media-channel-groups list - } + } // container dynamic-gain-equalizer + } // choice amplifier-element-type } // list amplifier-element } // container operational } // container amplifier @@ -288,35 +337,38 @@ module ietf-optical-impairment-topology { description "fiber type"; } leaf length { - type l0-types:decimal-2-digits-or-null; + type l0-types:decimal-2-or-null; units km; mandatory true ; description "length of fiber"; } leaf loss-coef { - type l0-types:decimal-2-digits-or-null; + type l0-types:decimal-2-or-null; units dB/km; mandatory true ; description "loss coefficient of the fiber"; } leaf total-loss { - type l0-types:loss-in-db-or-null; - mandatory true ; + type l0-types:power-loss-or-null; description - "includes all losses: fiber loss and conn-in and - conn-out losses"; + "The measured total loss of the fiber, which includes + all possible losses: fiber loss and conn-in and conn-out + losses. + + This attribute is not present when the total loss cannot + be measured."; } leaf pmd { - type l0-types:decimal-2-digits-or-null; + type l0-types:decimal-2-or-null; units "ps"; description "pmd of the fiber"; } leaf conn-in{ - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; description "connector-in"; } leaf conn-out{ - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; description "connector-out"; } } @@ -340,16 +392,16 @@ module ietf-optical-impairment-topology { empty value when unknown."; } leaf roadm-cd { - type l0-types:decimal-5-digits-or-null; + type l0-types:decimal-5-or-null; units "ps/nm"; description "Chromatic Dispersion (CD)"; } leaf roadm-pdl { - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; description "Polarization Dependent Loss (PDL)"; } leaf roadm-inband-crosstalk { - type l0-types:decimal-2-digits-or-null; + type l0-types:decimal-2-or-null; units "dB"; description "In-band crosstalk, or coherent crosstalk, can occur in @@ -358,7 +410,7 @@ module ietf-optical-impairment-topology { or all but one blocked"; } leaf roadm-maxloss { - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; description "This is the maximum expected path loss from the ROADM ingress to the ROADM egress @@ -404,7 +456,7 @@ module ietf-optical-impairment-topology { } } leaf roadm-pmax { - type l0-types:power-in-dbm-or-null; + type l0-types:power-dbm-or-null; description "This is the maximum (per carrier) power level permitted at the add block input ports, @@ -429,7 +481,7 @@ module ietf-optical-impairment-topology { (if both are defined)."; } leaf roadm-noise-figure { - type l0-types:decimal-5-digits-or-null; + type l0-types:decimal-5-or-null; units "dB"; description "Noise Figure. If the add path contains an amplifier, @@ -474,7 +526,7 @@ module ietf-optical-impairment-topology { } } leaf roadm-minloss { - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; description "The net loss from the ROADM input, to the output of the drop block. @@ -487,7 +539,7 @@ module ietf-optical-impairment-topology { including amplifier gain ripple or uncertainty."; } leaf roadm-typloss { - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; description "The net loss from the ROADM input, to the output of the drop block. @@ -502,7 +554,7 @@ module ietf-optical-impairment-topology { expected loss."; } leaf roadm-pmin { - type l0-types:power-in-dbm-or-null; + type l0-types:power-dbm-or-null; description "If the drop path has additional loss that is added, for example, @@ -520,7 +572,7 @@ module ietf-optical-impairment-topology { detailed in section xxx of the document yyy."; } leaf roadm-pmax { - type l0-types:power-in-dbm-or-null; + type l0-types:power-dbm-or-null; description "If the drop path has additional loss that is added, for example, to hit target power levels into a @@ -536,7 +588,7 @@ module ietf-optical-impairment-topology { is detailed in section xxx of the document yyy"; } leaf roadm-ptyp { - type l0-types:power-in-dbm-or-null; + type l0-types:power-dbm-or-null; description "If the drop path has additional loss that is added, for example, to hit target power levels into a @@ -566,7 +618,7 @@ module ietf-optical-impairment-topology { the minimum value between these two should be used"; } leaf roadm-noise-figure { - type l0-types:decimal-5-digits-or-null; + type l0-types:decimal-5-or-null; units "dB"; description "Drop path Noise Figure. @@ -590,7 +642,7 @@ module ietf-optical-impairment-topology { container concentratedloss{ description "concentrated loss"; leaf loss { - type l0-types:loss-in-db-or-null; + type l0-types:power-loss-or-null; mandatory true; description "Loss introduced by the concentrated loss element."; @@ -598,40 +650,6 @@ module ietf-optical-impairment-topology { } } - grouping power-param { - description - "optical power or PSD after the ROADM or after the out-voa"; - choice power-param { - description - "select the mode: channel power or power spectral density"; - case channel-power { - when "/nw:networks/nw:network/nt:link/tet:te - /tet:te-link-attributes/OMS-attributes - /equalization-mode='carrier-power'"; - leaf nominal-carrier-power{ - type l0-types:power-in-dbm-or-null; - description - " Reference channel power. Same grouping is used for the - OMS power after the ROADM (input of the OMS) or after the - out-voa of each amplifier. "; - } - } - case power-spectral-density{ - when "/nw:networks/nw:network/nt:link/tet:te - /tet:te-link-attributes/OMS-attributes - /equalization-mode='power-spectral-density'"; - leaf nominal-power-spectral-density{ - type l0-types:decimal-16-digits-or-null; - units W/Hz ; - description - " Reference power spectral density after - the ROADM or after the out-voa. - Typical value : 3.9 E-14, resolution 0.1nW/MHz"; - } - } - } - } - grouping oms-general-optical-params { description "OMS link optical parameters"; leaf generalized-snr { @@ -651,8 +669,26 @@ module ietf-optical-impairment-topology { Reporting this value is needed to support optical impairments applications."; } - uses power-param; - } + container power-param { + description + "Optical channel power or power spectral densitity (PSD) + after the ROADM."; + leaf nominal-carrier-power { + when "derived-from-or-self(../../equalization-mode, " + + "'l0-types:carrier-power')"; + type l0-types:power-dbm-or-null; + description + "Reference channel power."; + } + leaf nominal-psd { + when "derived-from-or-self(../../equalization-mode, " + + "'l0-types:power-spectral-density')"; + type l0-types:psd-or-null; + description + " Reference power spectral density (PSD)."; + } + } // container power-param + } // grouping oms-general-optical-params grouping otsi-group { description "OTSiG definition , representing client @@ -710,26 +746,38 @@ module ietf-optical-impairment-topology { "The top level container for the list of media channel groups."; list media-channel-group { + key "otsi-group-ref"; description "The list of media channel groups"; - list media-channels { + leaf otsi-group-ref { + type leafref { + path "../../../../../../../otsis/" + + "otsi-group/otsi-group-id"; + } + description + "Reference to the OTSiG to which the OTSis carried by + this media channel group belong to."; + } + list media-channel { // key "flexi-n"; + key "media-channel-id"; + unique "flexi-n"; description "list of media channels represented as (n,m)"; + leaf media-channel-id { + type int16; + description + "The identifier of media channel within media channel + group. + It may be equal to the flexi-n attribute, when the + flexi-n attribute is present."; + } // this grouping add both n.m values uses l0-types:flexi-grid-frequency-slot; - leaf otsi-group-ref { - type leafref { - path "../../../../../../../../otsis/" + - "otsi-group/otsi-group-id"; - } - description - "Reference to the OTSiG to which the OTSis carried by - this media channel belong to."; - } list otsi-ref { + key "otsi-carrier-ref"; description "The list of references to the OTSis and their end-to-end Media Channel (e2e-MC) paths within the @@ -738,7 +786,7 @@ module ietf-optical-impairment-topology { type leafref { path "../../../../../../../../../otsis/" + "otsi-group[otsi-group-id=current()" + - "/../../otsi-group-ref]/" + + "/../../../otsi-group-ref]/" + "otsi/otsi-carrier-id" ; } description @@ -749,7 +797,7 @@ module ietf-optical-impairment-topology { type leafref { path "../../../../../../../../../otsis/" + "otsi-group[otsi-group-id=current()" + - "/../../otsi-group-ref]/" + + "/../../../otsi-group-ref]/" + "otsi[otsi-carrier-id=current()" + "/../otsi-carrier-ref]/e2e-mc-path-id"; } @@ -760,7 +808,7 @@ module ietf-optical-impairment-topology { } } leaf delta-power { - type l0-types:gain-in-db-or-null; + type l0-types:power-ratio-or-null; description " Deviation from the reference carrier power defined for the OMS."; @@ -917,7 +965,120 @@ module ietf-optical-impairment-topology { uses otsi-group; } // list of OTSiG } - } + + container templates { + config false; + description + "Templates for set of parameters which can be common to + multiple elements."; + container roadm-path-impairments { + description + "The top level container for the list of the set of + optical impairments related to ROADM paths."; + list roadm-path-impairment { + key "roadm-path-impairments-id"; + description + "The list of the set of optical impairments related to + ROADM paths."; + + leaf roadm-path-impairments-id { + type string; + description + "The identifier of the set of optical impairments + related to a ROADM path."; + } + choice impairment-type { + description "type path impairment"; + case roadm-express-path { + list roadm-express-path { + key frequency-range-id; + description + "The list of optical impairments on a ROADM express + path for different frequency ranges. + + Two elements in the list must not have the same + range or overlapping ranges."; + leaf frequency-range-id { + type uint16; + description + "The identifier of the frequency range."; + } + container frequency-range { + description + "The frequency range for which these optical + impairments apply."; + uses l0-types:frequency-range; + } + uses roadm-express-path; + } + } + case roadm-add-path { + list roadm-add-path { + key frequency-range-id; + description + "The list of optical impairments on a ROADM add + path for different frequency ranges. + + Two elements in the list must not have the same + range or overlapping ranges."; + leaf frequency-range-id { + type uint16; + description + "The identifier of a frequency range."; + } + container frequency-range { + description + "The frequency range for which these optical + impairments apply."; + uses l0-types:frequency-range; + } + uses roadm-add-path; + } + } + case roadm-drop-path { + list roadm-drop-path { + key frequency-range-id; + description + "The list of optical impairments on a ROADM add + path for different frequency ranges. + + Two elements in the list must not have the same + range or overlapping ranges."; + leaf frequency-range-id { + type uint16; + description + "The identifier of a frequency range."; + } + container frequency-range { + description + "The frequency range for which these optical + impairments apply."; + uses l0-types:frequency-range; + } + uses roadm-drop-path; + } + } + } + } // list roadm-path-impairments + } // container roadm-path-impairments + container explicit-transceiver-modes { + description + "The top level container for the list of the + transceivers' explicit modes."; + list explicit-transceiver-mode { + key explicit-transceiver-mode-id; + description + "The list of the transceivers' explicit modes."; + leaf explicit-transceiver-mode-id { + type string; + description + "The identifier of the transceivers' explicit mode."; + } + uses l0-types:explicit-mode; + } // list explicit-transceiver-mode + } // container explicit-transceiver-modes + } // container templates + } // augment network augment "/nw:networks/nw:network/nw:node" { when "../nw:network-types/tet:te-topology" + @@ -995,7 +1156,25 @@ module ietf-optical-impairment-topology { type uint32; description "transceiver identifier"; } - uses l0-types:transceiver-capabilities; + uses l0-types:transceiver-capabilities { + augment "supported-modes/supported-mode/mode/" + + "explicit-mode/explicit-mode" { + description + "Augment the explicit-mode container with the + proper leafref."; + leaf explicit-transceiver-mode-ref { + type leafref { + path "../../../../../../../../oit:templates" + + "/oit:explicit-transceiver-modes" + + "/oit:explicit-transceiver-mode" + + "/oit:explicit-transceiver-mode-id"; + } + description + "The refernce to the explicit transceiver + mode template."; + } + } + } leaf configured-mode { type union { type empty; @@ -1013,7 +1192,7 @@ module ietf-optical-impairment-topology { When not present, the configured-mode is not reported by the server."; } - uses l0-types:common-transceiver-configured-param; + uses l0-types:common-transceiver-param; container outgoing-otsi { when "../../../../../otsis" { description @@ -1124,12 +1303,11 @@ module ietf-optical-impairment-topology { when "../../../nw:network-types/tet:te-topology/" + "oit:optical-impairment-topology" { description - "This augment is only valid for Impairment with - non-sliceable transponder model"; + "This augment is only valid for Optical Impairment + topology."; } description - "Tunnel termination point augmentation for non-sliceable - transponder model."; + "Tunnel termination point augmentation for impairment data."; list ttp-transceiver { when "../../../transponders" { @@ -1162,20 +1340,6 @@ module ietf-optical-impairment-topology { } // list of transceivers } // end of augment - augment "/nw:networks/nw:network/nw:node/tet:te" - + "/tet:tunnel-termination-point" { - when "../../../nw:network-types/tet:te-topology/" - + "oit:optical-impairment-topology" { - description - "This augment is only valid for optical impairment - with sliceable transponder model"; - } - description - "Tunnel termination point augmentation for sliceable - transponder model."; - uses sliceable-transponder-attributes; - } - // Should this leaf be moved to te-topology? augment "/nw:networks/nw:network/nw:node/nt:termination-point" { when "../../nw:network-types/tet:te-topology/" @@ -1197,6 +1361,7 @@ module ietf-optical-impairment-topology { the protection type is not reported."; } } + augment "/nw:networks/nw:network/nw:node/nt:termination-point" + "/tet:te" { when "../../../nw:network-types/tet:te-topology/" @@ -1243,71 +1408,6 @@ module ietf-optical-impairment-topology { "node attributes augmentantion for optical-impairment ROADM node"; - list roadm-path-impairments { - key "roadm-path-impairments-id"; - config false; - description - "The set of optical impairments related to a ROADM path."; - - leaf roadm-path-impairments-id { - type uint32; - description "index of the ROADM path-impairment list"; - } - choice impairment-type { - description "type path impairment"; - case roadm-express-path { - list roadm-express-path { - description - "The list of optical impairments on a ROADM express - path for different frequency ranges. - - Two elements in the list must not have the same range - or overlapping ranges."; - container frequency-range { - description - "The frequency range for which these optical - impairments apply."; - uses l0-types:frequency-range; - } - uses roadm-express-path; - } - } - case roadm-add-path { - list roadm-add-path { - description - "The list of optical impairments on a ROADM add - path for different frequency ranges. - - Two elements in the list must not have the same range - or overlapping ranges."; - container frequency-range { - description - "The frequency range for which these optical - impairments apply."; - uses l0-types:frequency-range; - } - uses roadm-add-path; - } - } - case roadm-drop-path { - list roadm-drop-path { - description - "The list of optical impairments on a ROADM add - path for different frequency ranges. - - Two elements in the list must not have the same range - or overlapping ranges."; - container frequency-range { - description - "The frequency range for which these optical - impairments apply."; - uses l0-types:frequency-range; - } - uses roadm-drop-path; - } - } - } - } // list path impairments } // augmentation for optical-impairment ROADM augment "/nw:networks/nw:network/nw:node/tet:te/" @@ -1324,8 +1424,9 @@ module ietf-optical-impairment-topology { leaf roadm-path-impairments { type leafref { - path "../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id"; + path "../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id"; } config false; description @@ -1347,8 +1448,9 @@ module ietf-optical-impairment-topology { source."; leaf roadm-path-impairments { type leafref { - path "../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id"; + path "../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id"; } config false; description @@ -1368,8 +1470,9 @@ module ietf-optical-impairment-topology { "Augment default TE node connectivity matrix."; leaf roadm-path-impairments { type leafref { - path "../../roadm-path-impairments/" - + "roadm-path-impairments-id"; + path "../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id"; } config false; /*the identifier in the list */ /*"roadm-path-impairments" of ROADM optical impairment*/ @@ -1392,8 +1495,9 @@ module ietf-optical-impairment-topology { "Augment TE node connectivity matrix entry."; leaf roadm-path-impairments { type leafref { - path "../../../roadm-path-impairments/" - + "roadm-path-impairments-id"; + path "../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id"; } config false; description "pointer to the list set of ROADM optical @@ -1445,8 +1549,9 @@ module ietf-optical-impairment-topology { } leaf roadm-path-impairments { type leafref { - path "../../../../../../../tet:te/tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id"; + path "../../../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id"; } description "Pointer to ROADM optical impairments of the ROADM path @@ -1485,6 +1590,7 @@ module ietf-optical-impairment-topology { "The restricted list of the potential secondary LTPs that can be selected when the 'to' LTP of this connectivity matrix entry is selected as a working LTP. + If this list is empty, all the other LTPs that can be reached from the 'from' LTP of this connectivity matrix entry can be selected as secondary LTPs."; @@ -1499,8 +1605,9 @@ module ietf-optical-impairment-topology { } leaf roadm-path-impairments { type leafref { - path "../../../../../../../tet:te/tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id"; + path "../../../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id"; } description "Pointer to ROADM optical impairments of the ROADM path @@ -1522,8 +1629,9 @@ module ietf-optical-impairment-topology { "Augment default TTP LLC."; leaf add-path-impairments { type leafref { - path "../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } config false; description "pointer to the list set of ROADM optical @@ -1531,8 +1639,9 @@ module ietf-optical-impairment-topology { } leaf drop-path-impairments { type leafref { - path "../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } config false; description "pointer to the list set of ROADM @@ -1554,8 +1663,9 @@ module ietf-optical-impairment-topology { "Augment TTP LLC entry."; leaf add-path-impairments { type leafref { - path "../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } config false; description "pointer to the list set of ROADM optical @@ -1563,8 +1673,9 @@ module ietf-optical-impairment-topology { } leaf drop-path-impairments { type leafref { - path "../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } config false; description "pointer to the list set of ROADM optical @@ -1600,16 +1711,18 @@ module ietf-optical-impairment-topology { } leaf add-path-impairments { type leafref { - path "../../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } description "pointer to the list set of ROADM optical impairments"; } leaf drop-path-impairments { type leafref { - path "../../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } description "pointer to the list set of ROADM optical impairments"; @@ -1642,16 +1755,18 @@ module ietf-optical-impairment-topology { } leaf add-path-impairments { type leafref { - path "../../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } description "pointer to the list set of ROADM optical impairments"; } leaf drop-path-impairments { type leafref { - path "../../../../../tet:te-node-attributes/" - + "roadm-path-impairments/roadm-path-impairments-id" ; + path "../../../../../../../oit:templates" + + "/oit:roadm-path-impairments/oit:roadm-path-impairment" + + "/oit:roadm-path-impairments-id" ; } description "pointer to the list set of ROADM optical impairments"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2023-11-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2024-07-22.yang similarity index 53% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2023-11-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2024-07-22.yang index 2acc2d27a..d4f7a6ef7 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2023-11-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2024-07-22.yang @@ -4,40 +4,40 @@ module ietf-ospf-admin-tags { prefix ospf-admin-tags; import ietf-routing { - prefix "rt"; - reference "RFC 8349: A YANG Data Model for Routing - Management (NMDA Version)"; + prefix rt; + reference + "RFC 8349: A YANG Data Model for Routing + Management (NMDA Version)"; } - import ietf-ospf { prefix ospf; - reference "RFC 9129: YANG Data Model for OSPF Protocol."; + reference + "RFC 9129: YANG Data Model for the OSPF Protocol"; } - import ietf-inet-types { - prefix "inet"; - reference "RFC 6991: Common YANG Data Types"; + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; } - import ietf-ospfv3-extended-lsa { - prefix "ospfv3-e-lsa"; - reference "RFC xxxx: YANG Model for OSPFv3 Extended LSAs."; + prefix ospfv3-e-lsa; + reference + "RFC 9587: YANG Data Model for OSPFv3 Extended Link + State Advertisements (LSAs)"; } organization "IETF LSR - Link State Routing Working Group"; - contact - "WG Web: - WG List: - - Author: Yingzhen Qu - - Author: Acee Lindem - - Author: Peter Psenak - "; + "WG Web: + WG List: + Author: Yingzhen Qu + + Author: Acee Lindem + + Author: Peter Psenak + "; description "This YANG module defines the configuration and operational state for OSPF administrative tags. @@ -45,7 +45,7 @@ module ietf-ospf-admin-tags { This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -63,64 +63,83 @@ module ietf-ospf-admin-tags { '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."; + reference + "RFC XXXX"; - reference "RFC XXXX"; - - revision 2023-11-20 { + revision 2024-07-22 { description "Initial revision."; reference - "RFC XXXX: A YANG Data Model for OSPFv2 Administrative Tags."; + "RFC XXXX: Extensions to OSPF for Advertising Prefix + Administrative Tags."; } - grouping prefix-admin-tag-sub-tlvs { - description "Prefix Administrative Tag sub-TLVs."; - - container perfix-admin-tag-sub-tlvs { + grouping prefix-admin-tag-sub-tlv { + description + "Prefix Administrative Tag sub-TLVs."; + container prefix-admin-tag-sub-tlv { config false; - description "Prefix admin tag sub-TLV."; - list admin-tag-sub-tlv { - description "Prefix admin tag sub-TLV."; - leaf-list admin-tags { - type uint32; - description "32-bit administrative tag."; - } + description + "Prefix admin tag sub-TLV."; + leaf-list admin-tag { + type uint32; + description + "Administrative tags."; } } } /* Configuration */ + augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/ospf:ospf/" + "ospf:areas/ospf:area/ospf:ranges/ospf:range" { - when "derived-from-or-self(../../../../../" - + "rt:type, 'ospf:ospf')" { + when "derived-from-or-self(../../../../../" + + "rt:type, 'ospf:ospf')" { description "This augments the OSPF routing protocol area range configuration."; } description "This augments the OSPF protocol area range configuration - with Administrative Tags. The configured tags will be + with administrative tags. The configured tags will be advertised with summary prefix when it is active."; - container admin-tags { when "../ospf:advertise = 'true'"; - leaf-list tags { + leaf-list admin-tag { type uint32; description - "32-bit administrative tags."; + "Administrative tags."; } description "OSPF prefix administrative tags."; } } + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/ospf:ospf/" + + "ospf:areas/ospf:area/ospf:ranges/ospf:range" { + when "derived-from-or-self(../../../../../" + + "rt:type, 'ospf:ospf')" { + description + "This augments the OSPF routing protocol area range + configuration."; + } + description + "This augments summary route configuration with + administrative tags."; + leaf-list admin-tag { + type uint32; + description + "Administrative tags."; + } + } + augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/ospf:ospf/" + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { - when "derived-from-or-self(../../../../../" - + "rt:type, 'ospf:ospf')" { + when "derived-from-or-self(../../../../../" + + "rt:type, 'ospf:ospf')" { description "This augments the OSPF routing protocol interface configuration."; @@ -129,39 +148,55 @@ module ietf-ospf-admin-tags { "This augments the OSPF protocol interface configuration with Administrative Tags. The configured tags will be advertised with local prefixes configured for the interface."; - container admin-tags { - list tags { - key "tag"; - leaf tag { - type uint32; + container local-prefix-admin-tags { + leaf-list default-admin-tag { + type uint32; + description + "Administrative tags that will be associated with + local prefixes if the prefix is not specified explicitly. + If omitted, no admin tags are associated with local + prefixes by default."; + } + list specific-prefix-admin-tag { + key "prefix"; + leaf prefix { + type inet:ip-prefix; description - "32-bit administrative tag."; + "IPv4 or IPv6 prefix"; } - list advertise-prefixes { - key "prefix"; - leaf prefix { - type inet:ip-prefix; - description - "IPv4 or IPv6 prefix"; - } - description - "By default, the tag advertised will be advertised - for all prefixes associated with the interface. - If advertise-prefixes is specified, the tag is - only applied to interfaces prefixes in the list"; + leaf-list admin-tag { + type uint32; + description + "Administrative tags that will be associated with + the specified local prefix. If omitted, no admin tags + are associated with the specified local prefix."; } description - "List of administrative tags that are to be advertised - with prefixes associated with the interfaces. Optionally, - tag advertisement may be restricted to specific - prefixes."; + "Admin tags that are explicitly associated with + the specified prefix."; } description - "OSPF prefix administrative tags."; + "List of administrative tags that are to be advertised + with interface local prefixes."; } } + /* Local-RIB */ + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:local-rib/ospf:route/ospf:next-hops/" + + "ospf:next-hop" { + description + "This augments local-rib next-hop with administrative tags."; + leaf-list admin-tag { + type uint32; + description + "Administrative tags."; + } + } + /* Database */ + augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/ospf:area/" @@ -178,7 +213,7 @@ module ietf-ospf-admin-tags { description "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix TLV in type 9 opaque LSA."; - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } augment "/rt:routing/" @@ -197,7 +232,7 @@ module ietf-ospf-admin-tags { description "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix TLV in type 10 opaque LSA."; - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } augment "/rt:routing/" @@ -215,17 +250,17 @@ module ietf-ospf-admin-tags { description "Prefix Administrative Tag Sub-TLVs for OSPFv2 extended prefix TLV in type 11 opaque LSA."; - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" - + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" - + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" - + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" - + "ospfv3-e-lsa:e-inter-prefix-tlvs/" - + "ospfv3-e-lsa:inter-prefix-tlv" { + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" + + "ospfv3-e-lsa:e-inter-prefix-tlvs/" + + "ospfv3-e-lsa:inter-prefix-tlv" { when "derived-from-or-self(../../../../../../../../../../" + "../../rt:type, 'ospf:ospfv3')" { description @@ -234,18 +269,17 @@ module ietf-ospf-admin-tags { description "Augment OSPFv3 Inter-Area-Prefix TLV in the E-Inter-Area-Prefix LSA."; - - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" - + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" - + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" - + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" - + "ospfv3-e-lsa:e-intra-prefix-tlvs/" - + "ospfv3-e-lsa:intra-prefix-tlv" { + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" + + "ospfv3-e-lsa:e-intra-prefix-tlvs/" + + "ospfv3-e-lsa:intra-prefix-tlv" { when "/rt:routing/rt:control-plane-protocols" + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { description @@ -254,18 +288,17 @@ module ietf-ospf-admin-tags { description "Augment OSPFv3 Intra-Area-Prefix TLV in the E-Intra-Area-Prefix LSA."; - - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:database/" - + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" - + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" - + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" - + "ospfv3-e-lsa:e-external-tlvs/" - + "ospfv3-e-lsa:external-prefix-tlv" { + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:database/" + + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" + + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" + + "ospfv3-e-lsa:e-external-tlvs/" + + "ospfv3-e-lsa:external-prefix-tlv" { when "derived-from-or-self(../../../../../../../../" + "../../rt:type, 'ospf:ospfv3')" { description @@ -273,18 +306,17 @@ module ietf-ospf-admin-tags { } description "Augment OSPFv3 External-Prefix TLV in the E-AS-External-LSA."; - - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" - + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" - + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" - + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" - + "ospfv3-e-lsa:e-external-tlvs/" - + "ospfv3-e-lsa:external-prefix-tlv" { + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" + + "ospfv3-e-lsa:e-external-tlvs/" + + "ospfv3-e-lsa:external-prefix-tlv" { when "/rt:routing/rt:control-plane-protocols" + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { description @@ -292,7 +324,6 @@ module ietf-ospf-admin-tags { } description "Augment OSPFv3 External-Prefix TLV in the E-NSSA-LSA."; - - uses prefix-admin-tag-sub-tlvs; + uses prefix-admin-tag-sub-tlv; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-flex-algo@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-flex-algo@2024-07-01.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-flex-algo@2023-06-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-flex-algo@2024-07-01.yang index f7d9f498b..d6f0a0c2e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-flex-algo@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-flex-algo@2024-07-01.yang @@ -23,12 +23,14 @@ module ietf-ospf-flex-algo { import ietf-ospf { prefix "ospf"; - reference "RFC 9129 - YANG Data Model for the OSPF + reference "RFC 9129: YANG Data Model for the OSPF Protocol"; } import ietf-ospfv3-extended-lsa { prefix "ospfv3-e-lsa"; + reference "RFC 9587: YANG Data Model for OSPFv3 Extended Link + State Advertisements (LSAs)"; } import ietf-te { @@ -39,10 +41,10 @@ module ietf-ospf-flex-algo { "IETF LSR - Link State Routing Working Group"; contact "WG Web: - WG List: + WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski @@ -51,12 +53,12 @@ module ietf-ospf-flex-algo { description "The YANG module defines the configuration and operational - state for OSPF Flexible Algorithm as defined in RFC xxxx. + state for OSPF Flexible Algorithm as defined in RFC 9350. This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -77,11 +79,12 @@ module ietf-ospf-flex-algo { reference "RFC XXXX: YANG Data Model for OSPF Flexible Algorithm."; - revision 2023-06-27 { + revision 2024-07-01 { description "Initial Version"; reference - "RFC XXXX: YANG Data Model for OSPF Flexible Algorithm."; + "RFC XXXX: OSPF YANG Model Augmentations for Additional + Features - Version 1."; } /* Identities */ @@ -677,7 +680,6 @@ module ietf-ospf-flex-algo { associated with the reachability of an ASBR."; } uses ospf:unknown-tlvs; - description "OSPFv2 Extended Inter-Area (EIA-ASBR) opaque LSA."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-graceful-link-shutdown@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-graceful-link-shutdown@2024-07-01.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-graceful-link-shutdown@2023-06-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-graceful-link-shutdown@2024-07-01.yang index 9a2293288..b1bbe3da0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-graceful-link-shutdown@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-graceful-link-shutdown@2024-07-01.yang @@ -24,6 +24,8 @@ module ietf-ospf-graceful-link-shutdown { import ietf-ospfv3-extended-lsa { prefix "ospfv3-e-lsa"; + reference "RFC 9587: YANG Data Model for OSPFv3 Extended Link + State Advertisements (LSAs)"; } organization @@ -34,7 +36,7 @@ module ietf-ospf-graceful-link-shutdown { WG List: Author: Yingzhen Qu - + Author: Acee Lindem "; @@ -46,7 +48,7 @@ module ietf-ospf-graceful-link-shutdown { This YANG model conforms to the Network Management Datastore Architecture (NDMA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -61,11 +63,12 @@ module ietf-ospf-graceful-link-shutdown { reference "RFC XXXX"; - revision 2023-06-27 { + revision 2024-07-01 { description "Initial version"; reference - "RFC XXXX: A YANG Data Model for OSPF Graceful Link Shutdown."; + "RFC XXXX: OSPF YANG Model Augmentations for Additional + Features - Version 1."; } /* RFC 8379 */ @@ -111,6 +114,7 @@ module ietf-ospf-graceful-link-shutdown { description "OSPF graceful link shutdown for OSPFv2 extended link TLV in type 10 opaque LSA."; + container graceful-link-shutdown-sub-tlv { presence "Enable graceful link shutdown"; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-link-attr@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-link-attr@2026-07-01.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-link-attr@2023-06-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-link-attr@2026-07-01.yang index ea5f70c5e..c32706dfc 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-link-attr@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-link-attr@2026-07-01.yang @@ -12,12 +12,14 @@ module ietf-ospf-link-attr { import ietf-ospf { prefix "ospf"; - reference "RFC 9129 - YANG Data Model for the OSPF + reference "RFC 9129: YANG Data Model for the OSPF Protocol"; } import ietf-ospfv3-extended-lsa { prefix "ospfv3-e-lsa"; + reference "RFC 9587: YANG Data Model for OSPFv3 Extended Link + State Advertisements (LSAs)"; } organization @@ -28,7 +30,7 @@ module ietf-ospf-link-attr { WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski @@ -37,12 +39,11 @@ module ietf-ospf-link-attr { description "This YANG module defines the configuration and operational state for OSPF application specific link attributes feature - as defined in RFC xxxx. + as defined in RFC 9492. This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -63,12 +64,12 @@ module ietf-ospf-link-attr { reference "RFC XXXX"; - revision 2023-06-27 { + revision 2026-07-01 { description "Initial version"; reference - "RFC XXXX: A YANG Data Model for OSPF application-specific - link attributes."; + "RFC XXXX: OSPF YANG Model Augmentations for Additional + Features - Version 1."; } identity sabm-bit { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-lls-local-id@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-lls-local-id@2024-07-01.yang similarity index 85% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-lls-local-id@2023-06-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-lls-local-id@2024-07-01.yang index c2a29ad4e..11a5e881a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-lls-local-id@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-lls-local-id@2024-07-01.yang @@ -12,19 +12,18 @@ module ietf-ospf-lls-local-id { import ietf-ospf { prefix "ospf"; - reference "RFC 9129 - YANG Data Model for the OSPF + reference "RFC 9129: YANG Data Model for the OSPF Protocol"; } organization "IETF LSR - Link State Routing Working Group"; - contact "WG Web: WG List: Author: Yingzhen Qu - + Author: Acee Lindem "; @@ -33,7 +32,7 @@ module ietf-ospf-lls-local-id { state for OSPF Link-Local Signaling (LLS) Extensions for Local Interface ID Advertisement feature as defined in RFC 8510. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -46,13 +45,12 @@ module ietf-ospf-lls-local-id { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-06-27 { + revision 2024-07-01 { description "Initial version"; reference - "RFC XXXX: A YANG Data Model for OSPF Link-Local Signaling - (LLS) Extensions for Local Interface ID - Advertisement."; + "RFC XXXX: OSPF YANG Model Augmentations for Additional + Features - Version 1."; } augment "/rt:routing/rt:control-plane-protocols" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-msd@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-msd@2024-07-01.yang similarity index 75% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-msd@2023-06-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-msd@2024-07-01.yang index e9301c430..8b4cc3d32 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-msd@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-msd@2024-07-01.yang @@ -11,22 +11,28 @@ module ietf-ospf-msd { import ietf-ospf { prefix ospf; - reference "RFC 9129 - YANG Data Model for the OSPF + reference "RFC 9129: YANG Data Model for the OSPF Protocol"; } import ietf-ospfv3-extended-lsa { prefix ospfv3-e-lsa; + reference "RFC 9587: YANG Data Model for OSPFv3 Extended Link + State Advertisements (LSAs)"; + } + + import iana-msd-types { + prefix iana-msd-types; } organization "IETF LSR - LSR Working Group"; contact "WG Web: - WG List: + WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski @@ -42,7 +48,7 @@ module ietf-ospf-msd { This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -63,32 +69,12 @@ module ietf-ospf-msd { reference "RFC XXXX: YANG Data Model for OSPF MSD."; - revision 2023-06-27 { + revision 2024-07-01 { description "Initial Version"; - reference "RFC XXXX: YANG Data Model for OSPF MSD."; - } - - identity msd-base-type { - description - "Base identity for MSD Type"; - } - - identity base-mpls-msd { - base msd-base-type; - description - "Base MPLS Imposition MSD."; - reference - "RFC 8491: Singling MSD using IS-IS."; - } - - identity erld-msd { - base msd-base-type; - description - "ERLD-MSD is defined to advertise the ERLD."; reference - "RFC 8662: Entropy Label for Source Packet Routing in - Networking (SPRING) Tunnels"; + "RFC XXXX: OSPF YANG Model Augmentations for Additional + Features - Version 1."; } grouping node-msd-tlv { @@ -99,7 +85,7 @@ module ietf-ospf-msd { key "msd-type"; leaf msd-type { type identityref { - base msd-base-type; + base iana-msd-types:msd-base-mpls; } description "MSD-Types"; @@ -128,7 +114,7 @@ module ietf-ospf-msd { key "msd-type"; leaf msd-type { type identityref { - base msd-base-type; + base iana-msd-types:msd-base-mpls; } description "MSD-Types"; @@ -224,26 +210,6 @@ module ietf-ospf-msd { } /* link MSD sub-tlv */ - augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:areas/ospf:area/" - + "ospf:interfaces/ospf:interface/ospf:database/" - + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" - + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" - + "ospf:ospfv2/ospf:body/ospf:opaque/" - + "ospf:extended-link-opaque/ospf:extended-link-tlv" { - when "../../../../../../../../../../../../../../" - + "rt:type = 'ospf:ospfv2'" { - description - "This augmentation is only valid for OSPFv2."; - } - description - "Link MSD sub-TLV is an optional sub-TLV of OSPFv2 extended - link TLV as defined in RFC 7684 and has a type of 6."; - - uses link-msd-sub-tlv; - } - augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/" @@ -264,25 +230,6 @@ module ietf-ospf-msd { uses link-msd-sub-tlv; } - augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:database/" - + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" - + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" - + "ospf:ospfv2/ospf:body/ospf:opaque/" - + "ospf:extended-link-opaque/ospf:extended-link-tlv" { - when "../../../../../../../../../../" - + "rt:type = 'ospf:ospfv2'" { - description - "This augmentation is only valid for OSPFv2."; - } - description - "Link MSD sub-TLV is an optional sub-TLV of OSPFv2 extended - link TLV as defined in RFC 7684 and has a type of 6."; - - uses link-msd-sub-tlv; - } - augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr-mpls@2023-12-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr-mpls@2024-06-19.yang similarity index 80% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-sr-mpls@2023-12-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-sr-mpls@2024-06-19.yang index 55a0ddb53..bbd5bc2e3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr-mpls@2023-12-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr-mpls@2024-06-19.yang @@ -1,7 +1,7 @@ module ietf-ospf-sr-mpls { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-sr-mpls"; - prefix ospf-sr; + prefix ospf-sr-mpls; import ietf-inet-types { prefix inet; @@ -13,6 +13,11 @@ module ietf-ospf-sr-mpls { reference "RFC 8294 - Common YANG Data Types for the Routing Area"; } + import iana-routing-types { + prefix iana-rt-types; + reference + "RFC 8294 - Common YANG Data Types for the Routing Area"; + } import ietf-routing { prefix rt; reference @@ -37,7 +42,7 @@ module ietf-ospf-sr-mpls { import ietf-ospfv3-extended-lsa { prefix ospfv3-e-lsa; reference - "RFC XXXX - YANG Data Model for OSPFv3 Extended LSAs"; + "RFC 9587 - YANG Data Model for OSPFv3 Extended LSAs"; } organization @@ -76,6 +81,7 @@ module ietf-ospf-sr-mpls { 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. @@ -91,11 +97,12 @@ module ietf-ospf-sr-mpls { reference "RFC XXXX"; - revision 2023-12-12 { + revision 2024-06-19 { description "Initial revision."; reference - "RFC XXXX: A YANG Data Model for OSPF Segment Routing."; + "RFC XXXX: A YANG Data Model for OSPF Segment Routing for + the MPLS Data Plane"; } feature remote-lfa-sr { @@ -114,51 +121,50 @@ module ietf-ospf-sr-mpls { Topology-Independent Fast Reroute using Segment Routing"; } - identity prefix-sid-bit { + identity prefix-sid-flag { description - "Base identity for prefix SID sub-TLV bits."; + "Base identity for prefix SID sub-TLV flags."; reference "RFC 8665: OSPF Extensions for Segment Routing RFC 8666: OSPFv3 Extensions for Segment Routing"; } - identity np-bit { - base prefix-sid-bit; + identity np-flag { + base prefix-sid-flag; description "No-PHP flag."; } - identity m-bit { - base prefix-sid-bit; + identity m-flag { + base prefix-sid-flag; description "Mapping server flag."; } - - identity e-bit { - base prefix-sid-bit; + identity e-flag { + base prefix-sid-flag; description "Explicit-NULL flag."; } - identity v-bit { - base prefix-sid-bit; + identity v-flag { + base prefix-sid-flag; description "Value/Index flag."; } - identity l-bit { - base prefix-sid-bit; + identity l-flag { + base prefix-sid-flag; description "Local flag."; } - identity extended-prefix-range-bit { + identity extended-prefix-range-flag { description - "Base identity for extended prefix range TLV bits."; + "Base identity for extended prefix range TLV flags."; } - identity ia-bit { - base extended-prefix-range-bit; + identity ia-flag { + base extended-prefix-range-flag; description "Inter-Area flag. If set, advertisement is of inter-area type."; @@ -166,40 +172,40 @@ module ietf-ospf-sr-mpls { "RFC 8665: OSPF Extensions for Segment Routing"; } - identity adj-sid-bit { + identity adj-sid-flag { description - "Base identity for Adj-SID sub-TLV bits."; + "Base identity for Adj-SID sub-TLV flags."; reference "RFC 8665: OSPF Extensions for Segment Routing RFC 8666: OSPFv3 Extensions for Segment Routing"; } - identity b-bit { - base adj-sid-bit; + identity b-flag { + base adj-sid-flag; description "Backup flag."; } - identity vi-bit { - base adj-sid-bit; + identity vi-flag { + base adj-sid-flag; description "Value/Index flag."; } - identity lo-bit { - base adj-sid-bit; + identity lo-flag { + base adj-sid-flag; description "Local/Global flag."; } - identity g-bit { - base adj-sid-bit; + identity g-flag { + base adj-sid-flag; description "Group flag."; } - identity p-bit { - base adj-sid-bit; + identity p-flag { + base adj-sid-flag; description "Persistent flag."; } @@ -216,11 +222,20 @@ module ietf-ospf-sr-mpls { description "Used to advertise the SID/Label associated with a prefix or adjacency."; + leaf length { + type uint16; + description + "Length of the SID value. YANG model specification + is necessary since it dictates the semantics of the + SID."; + } leaf sid { type uint32; description "Segment Identifier (SID) - A 20 bit label or - 32 bit SID."; + 32 bit SID. If the length is set to 3, then the + 20 rightmost bits represent a label. If the length + is set to 4, then the value represents a 32-bit SID."; } } } @@ -230,7 +245,7 @@ module ietf-ospf-sr-mpls { "Prefix Segment ID (SID) sub-TLVs."; reference "RFC 8665: OSPF Extensions for Segment Routing - (Section 6)"; + (Section 5)"; container prefix-sid-sub-tlvs { description "Prefix SID sub-TLV."; @@ -238,12 +253,12 @@ module ietf-ospf-sr-mpls { description "Prefix SID sub-TLV."; container prefix-sid-flags { - leaf-list bits { + leaf-list flags { type identityref { - base prefix-sid-bit; + base prefix-sid-flag; } description - "Prefix SID Sub-TLV bits."; + "Prefix SID Sub-TLV flags."; } description "Segment Identifier (SID) Flags."; @@ -251,7 +266,10 @@ module ietf-ospf-sr-mpls { leaf mt-id { type uint8; description - "Multi-topology ID."; + "Multi-topology ID. Topologies range from 0-127 and + return of any other value would indicate an error."; + reference + "RFC 4915 - Multi-Topology (MT) Routing in OSPF"; } leaf algorithm { type identityref { @@ -263,11 +281,23 @@ module ietf-ospf-sr-mpls { leaf sid { type uint32; description - "Index or label."; + "Segment Identifier (SID) - A 20 bit label or + an index into the SID/Label space. + + If the V-Flag is set to 0 and L-Flag is set to 0: + The SID/Index/Label field is a 4-octet index defining + the offset in the SID/Label space advertised by this + router. + + If V-Flag is set to 1 and L-Flag is set to 1: The + SID/Index/Label field is a 3-octet local label where + the 20 rightmost bits are used for encoding the label + value."; } } } } + grouping ospfv2-extended-prefix-range-tlvs { description "Extended prefix range TLV grouping."; @@ -286,7 +316,7 @@ module ietf-ospf-sr-mpls { "Length of prefix in bits."; } leaf af { - type uint8; + type iana-rt-types:address-family; description "Address family for the prefix."; } @@ -297,20 +327,20 @@ module ietf-ospf-sr-mpls { advertisement."; } container extended-prefix-range-flags { - leaf-list bits { + leaf-list flags { type identityref { - base extended-prefix-range-bit; + base extended-prefix-range-flag; } description - "Extended prefix range TLV bits."; + "Extended prefix range TLV flags."; } description "Extended Prefix Range TLV flags."; } leaf prefix { - type inet:ip-prefix; + type inet:ipv4-prefix; description - "Address prefix."; + "IPv4 prefix."; } uses ospfv2-prefix-sid-sub-tlvs; uses ospf:unknown-tlvs; @@ -376,7 +406,8 @@ module ietf-ospf-sr-mpls { leaf range-size { type rt-types:uint24; description - "SID range."; + "SID range. The return of a zero value would indicate + an error."; } uses sid-sub-tlv; } @@ -401,7 +432,7 @@ module ietf-ospf-sr-mpls { type uint8; description "SRMS preference TLV, value from 0 to 255 with - with 255 being the most preferred."; + 255 being the most preferred."; } } } @@ -419,12 +450,12 @@ module ietf-ospf-sr-mpls { description "Prefix SID sub-TLV."; container ospfv3-prefix-sid-flags { - leaf-list bits { + leaf-list flags { type identityref { - base ospf-sr:prefix-sid-bit; + base prefix-sid-flag; } description - "Prefix SID sub-TLV bits."; + "Prefix SID sub-TLV flags."; } description "Segment Identifier (SID) Flags."; @@ -439,7 +470,18 @@ module ietf-ospf-sr-mpls { leaf sid { type uint32; description - "Index or label."; + "Segment Identifier (SID) - A 20 bit label or + an index into the SID/Label space. + + If the V-Flag is set to 0 and L-Flag is set to 0: + The SID/Index/Label field is a 4-octet index defining + the offset in the SID/Label space advertised by this + router. + + If V-Flag is set to 1 and L-Flag is set to 1: The + SID/Index/Label field is a 3-octet local label where + the 20 rightmost bits are used for encoding the label + value."; } } } @@ -463,20 +505,20 @@ module ietf-ospf-sr-mpls { "Length of prefix in bits."; } leaf af { - type uint8; + type iana-rt-types:address-family; description "Address family for the prefix."; } leaf range-size { type uint16; description - "Number of prefixes covered by the - advertisement."; + "Number of prefixes covered by the advertisement. + The return of a value of zero would indicate an error."; } leaf prefix { type inet:ip-prefix; description - "Address prefix."; + "IPv4 or IPv6 prefix."; } uses ospfv3-prefix-sid-sub-tlvs; uses ospf:unknown-tlvs; @@ -497,12 +539,12 @@ module ietf-ospf-sr-mpls { description "List of Adj-SID sub-TLVs."; container adj-sid-flags { - leaf-list bits { + leaf-list flags { type identityref { - base adj-sid-bit; + base adj-sid-flag; } description - "Adj-SID sub-tlv bits."; + "Adj-SID sub-tlv flags."; } description "Adj-sid sub-tlv flags."; @@ -515,7 +557,18 @@ module ietf-ospf-sr-mpls { leaf sid { type uint32; description - "Segment Identifier (SID) index/label."; + "Segment Identifier (SID) - A 20 bit label or + an index into the SID/Label space. + + If the V-Flag is set to 0 and L-Flag is set to 0: + The SID/Index/Label field is a 4-octet index defining + the offset in the SID/Label space advertised by this + router. + + If V-Flag is set to 1 and L-Flag is set to 1: The + SID/Index/Label field is a 3-octet local label where + the 20 rightmost bits are used for encoding the label + value."; } } } @@ -534,12 +587,12 @@ module ietf-ospf-sr-mpls { description "List of LAN Adj-SID sub-TLVs."; container lan-adj-sid-flags { - leaf-list bits { + leaf-list flags { type identityref { - base adj-sid-bit; + base adj-sid-flag; } description - "LAN Adj-SID sub-TLV bits."; + "LAN Adj-SID sub-TLV flags."; } description "LAN Adj-SID sub-TLV flags."; @@ -557,7 +610,18 @@ module ietf-ospf-sr-mpls { leaf sid { type uint32; description - "Segment Identifier (SID) index/label."; + "Segment Identifier (SID) - A 20 bit label or + an index into the SID/Label space. + + If the V-Flag is set to 0 and L-Flag is set to 0: + The SID/Index/Label field is a 4-octet index defining + the offset in the SID/Label space advertised by this + router. + + If V-Flag is set to 1 and L-Flag is set to 1: The + SID/Index/Label field is a 3-octet local label where + the 20 rightmost bits are used for encoding the label + value."; } } } @@ -574,7 +638,7 @@ module ietf-ospf-sr-mpls { } description "This augments the OSPF protocol configuration - with segment routing."; + with segment routing for the MPLS data plane."; uses sr-mpls:sr-control-plane; container protocol-srgb { if-feature "sr-mpls:protocol-srgb"; @@ -596,7 +660,26 @@ module ietf-ospf-sr-mpls { description "This augments the OSPF protocol interface configuration with segment routing."; - uses sr-mpls:igp-interface; + uses sr-mpls:igp-interface { + augment "segment-routing/adjacency-sid/adj-sids" { + when "((../../../ospf:interface-type = 'broadcast') or + (../../../ospf:interface-type = 'non-broadcast'))" { + description + "This augments broadcast and non-broadcast multi-access + interface."; + } + description + "This augments LAN interface adj-sid with neighbor-id."; + leaf neighbor-id { + type inet:ip-address; + mandatory true; + description + "Neighbor's Router ID, IPv4 address, or IPv6 address. + Specification is optional and, if specified, SHOULD + specify a neighbor reachable via the interface."; + } + } + } } augment "/rt:routing/rt:control-plane-protocols/" @@ -612,15 +695,16 @@ module ietf-ospf-sr-mpls { "This augments the OSPF protocol IP-FRR with TI-LFA."; container ti-lfa { if-feature "ti-lfa"; - leaf enable { + leaf enabled { type boolean; + default "false"; description "Enable TI-LFA computation."; } container selection-tie-breakers { container node-protection { presence "Presence of container enables the node - protection tie-breaker"; + protection tie-breaker."; leaf priority { type uint8; default "128"; @@ -653,11 +737,16 @@ module ietf-ospf-sr-mpls { } description "Configure path selection tie-breakers and their - respective priorities for the TI-LFA computation."; + respective priorities for the TI-LFA computation. + multiple tie-breakers and priorities configured may + be configured."; } description "Topology-Independent Loop Free Alternate (TI-LFA) support."; + reference + "draft-ietf-rtgwg-segment-routing-ti-lfa - + Topology-Independent Fast Reroute using Segment Routing"; } } @@ -796,6 +885,7 @@ module ietf-ospf-sr-mpls { in type 11 opaque LSA."; uses ospfv2-prefix-sid-sub-tlvs; } + augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/" @@ -819,12 +909,12 @@ module ietf-ospf-sr-mpls { description "List of Adj-SID sub-TLVs."; container adj-sid-flags { - leaf-list bits { + leaf-list flags { type identityref { - base adj-sid-bit; + base adj-sid-flag; } description - "Adj-SID sub-TLV bits."; + "Adj-SID sub-TLV flags."; } description "Adj-sid sub-TLV flags."; @@ -832,7 +922,10 @@ module ietf-ospf-sr-mpls { leaf mt-id { type uint8; description - "Multi-topology ID."; + "Multi-topology ID. Topologies range from 0-127 and + return of any other value would indicate an error."; + reference + "RFC 4915 - Multi-Topology (MT) Routing in OSPF"; } leaf weight { type uint8; @@ -842,7 +935,18 @@ module ietf-ospf-sr-mpls { leaf sid { type uint32; description - "Segment Identifier (SID) index/label."; + "Segment Identifier (SID) - A 20 bit label or + an index into the SID/Label space. + + If the V-Flag is set to 0 and L-Flag is set to 0: + The SID/Index/Label field is a 4-octet index defining + the offset in the SID/Label space advertised by this + router. + + If V-Flag is set to 1 and L-Flag is set to 1: The + SID/Index/Label field is a 3-octet local label where + the 20 rightmost bits are used for encoding the label + value."; } } } @@ -853,12 +957,12 @@ module ietf-ospf-sr-mpls { description "List of LAN Adj-SID sub-TLVs."; container lan-adj-sid-flags { - leaf-list bits { + leaf-list flags { type identityref { - base adj-sid-bit; + base adj-sid-flag; } description - "LAN Adj-SID sub-TLV bits."; + "LAN Adj-SID sub-TLV flags."; } description "LAN Adj-SID sub-TLV flags."; @@ -866,7 +970,10 @@ module ietf-ospf-sr-mpls { leaf mt-id { type uint8; description - "Multi-topology ID."; + "Multi-topology ID. Topologies range from 0-127 and + return of any other value would indicate an error."; + reference + "RFC 4915 - Multi-Topology (MT) Routing in OSPF"; } leaf weight { type uint8; @@ -881,12 +988,22 @@ module ietf-ospf-sr-mpls { leaf sid { type uint32; description - "Segment Identifier (SID) index/label."; + "Segment Identifier (SID) - A 20 bit label or + an index into the SID/Label space. + + If the V-Flag is set to 0 and L-Flag is set to 0: + The SID/Index/Label field is a 4-octet index defining + the offset in the SID/Label space advertised by this + router. + + If V-Flag is set to 1 and L-Flag is set to 1: The + SID/Index/Label field is a 3-octet local label where + the 20 rightmost bits are used for encoding the label + value."; } } } } - augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/ospf:area/" @@ -1086,7 +1203,8 @@ module ietf-ospf-sr-mpls { + "ospf:link-scope-lsas/ospf:link-scope-lsa/" + "ospf:version/ospf:ospfv3/ospf:ospfv3/" + "ospf:body/ospfv3-e-lsa:e-link/" - + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv" { + + "ospfv3-e-lsa:e-link-tlvs/ospfv3-e-lsa:intra-prefix-tlv/" + + "ospfv3-e-lsa:sub-tlvs" { when "derived-from(/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { description @@ -1105,7 +1223,8 @@ module ietf-ospf-sr-mpls { + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-intra-area-prefix/" + "ospfv3-e-lsa:e-intra-prefix-tlvs/" - + "ospfv3-e-lsa:intra-prefix-tlv" { + + "ospfv3-e-lsa:intra-prefix-tlv/" + + "ospfv3-e-lsa:sub-tlvs" { when "derived-from(/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { description @@ -1126,7 +1245,8 @@ module ietf-ospf-sr-mpls { + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/" + "ospfv3-e-lsa:e-inter-prefix-tlvs/" - + "ospfv3-e-lsa:inter-prefix-tlv" { + + "ospfv3-e-lsa:inter-prefix-tlv/" + + "ospfv3-e-lsa:sub-tlvs" { when "derived-from(/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { description @@ -1147,7 +1267,8 @@ module ietf-ospf-sr-mpls { + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/" + "ospfv3-e-lsa:e-external-tlvs/" - + "ospfv3-e-lsa:external-prefix-tlv" { + + "ospfv3-e-lsa:external-prefix-tlv/" + + "ospfv3-e-lsa:sub-tlvs" { when "derived-from(/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { description @@ -1165,7 +1286,8 @@ module ietf-ospf-sr-mpls { + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" + "ospfv3-e-lsa:e-external-tlvs/" - + "ospfv3-e-lsa:external-prefix-tlv" { + + "ospfv3-e-lsa:external-prefix-tlv/" + + "ospfv3-e-lsa:sub-tlvs" { when "derived-from(/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { description @@ -1184,7 +1306,8 @@ module ietf-ospf-sr-mpls { + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/" - + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { + + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv/" + + "ospfv3-e-lsa:sub-tlvs" { when "derived-from(/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rt:type, 'ospf:ospfv3')" { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2023-09-09.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-03-03.yang similarity index 86% rename from experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2023-09-09.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-03-03.yang index 97702af35..40dc7b072 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2023-09-09.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-03-03.yang @@ -5,47 +5,40 @@ module ietf-ospfv3-srv6 { prefix ospfv3-srv6; import ietf-yang-types { - prefix "yang"; + prefix yang; reference "RFC 6991: Common YANG Data Types"; } - import ietf-routing { - prefix "rt"; + prefix rt; reference "RFC 8349: A YANG Data Model for Routing Management (NMDA Version)"; } - import ietf-ospfv3-extended-lsa { - prefix "ospfv3-e-lsa"; + prefix ospfv3-e-lsa; } - import ietf-ospf { - prefix "ospf"; + prefix ospf; reference "RFC 9129: YANG Data Model for the OSPF Protocol"; } - import ietf-srv6-base { - prefix "srv6"; + prefix srv6; } - import ietf-inet-types { - prefix "inet"; + prefix inet; reference - "RFC 6991: Common YANG Data Types"; + "RFC 6991: Common YANG Data Types"; } - import ietf-segment-routing { - prefix "sr"; + prefix sr; reference - "RFC 9020: YANG Data Model for Segment Routing"; + "RFC 9020: YANG Data Model for Segment Routing"; } organization - "IETF LSR Working Group"; - + "IETF LSR Working Group"; contact "WG Web: WG List: @@ -57,11 +50,10 @@ module ietf-ospfv3-srv6 { Author: Kamran Raza Author: Yingzhen Qu - + Author: Acee Lindem "; - description "The YANG module defines the configuration and operatioanl state for OSPFv3 extensions to support Segment Routing over IPv6 data @@ -70,7 +62,7 @@ module ietf-ospfv3-srv6 { This YANG model conforms to the Network Management Datastore Architecture (NDMA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -90,7 +82,7 @@ module ietf-ospfv3-srv6 { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-09-09 { + revision 2024-03-03 { description "Initial revision."; reference @@ -98,97 +90,98 @@ module ietf-ospfv3-srv6 { } /* Identities */ + identity SRV6_END_FUNC_TYPE { description "Base identity type for srv6 endpoint function code points."; } identity SRV6_END_FUNC_NO_PSP_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End (no PSP, no USP)."; } identity SRV6_END_FUNC_PSP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End with PSP."; } identity SRV6_END_FUNC_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "END with USP."; } identity SRV6_END_FUNC_PSP_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "END with PSP & USP."; } identity SRV6_END_T_FUNC_NO_PSP_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.T (no PSP, no USP)."; } identity SRV6_END_T_FUNC_PSP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.T with PSP."; } identity SRV6_END_T_FUNC_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.T with USP."; } identity SRV6_END_T_FUNC_PSP_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.T with PSP & USP."; } identity SRV6_END_X_FUNC_NO_PSP_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.x (no PSP, no USP)."; } identity SRV6_END_X_FUNC_PSP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.x with PSP."; } identity SRV6_END_X_FUNC_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.x with USP."; } identity SRV6_END_X_FUNC_PSP_USP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.x with PSP & USP."; } identity SRV6_END_FUNC_DX6 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.DX6 function."; } identity SRV6_END_FUNC_DT6 { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "End.DT6 function."; } identity SRV6_END_FUNC_OTP { - base "SRV6_END_FUNC_TYPE"; + base SRV6_END_FUNC_TYPE; description "END.OTP."; } @@ -217,25 +210,27 @@ module ietf-ospfv3-srv6 { description "The type of the locator route."; } + identity INTRA-AREA-LOCATOR { - base "LOCATOR-ROUTE-TYPE"; + base LOCATOR-ROUTE-TYPE; description "Intra-Area"; } identity INTER-AREA-LOCATOR { - base "LOCATOR-ROUTE-TYPE"; + base LOCATOR-ROUTE-TYPE; description "Inter-Area"; } + identity AS-EXTERNAL-LOCATOR { - base "LOCATOR-ROUTE-TYPE"; + base LOCATOR-ROUTE-TYPE; description "AS External"; } identity NSSA-EXTERNAL-LOCATOR { - base "LOCATOR-ROUTE-TYPE"; + base LOCATOR-ROUTE-TYPE; description "NSSA External"; } @@ -270,7 +265,6 @@ module ietf-ospfv3-srv6 { "B-flag. Backup flag. If set, the End.X sid is eligible for protection."; } - identity s-bit { base srv6-endx-sid-bit; description @@ -299,6 +293,7 @@ module ietf-ospfv3-srv6 { } /* typedef */ + typedef srv6-sid-value { type inet:ipv6-address-no-zone; description @@ -306,6 +301,7 @@ module ietf-ospfv3-srv6 { } /* Features */ + feature srv6-ti-lfa { description "Enhance SRv6 FRR with ti-lfa @@ -313,6 +309,7 @@ module ietf-ospfv3-srv6 { } /* Groupings */ + grouping srv6-capabilities { description "SRV6 capability grouping."; @@ -371,7 +368,6 @@ module ietf-ospfv3-srv6 { description "SRv6 end sid flags."; } - uses srv6-endpoint-func; leaf sid { type srv6-sid-value; @@ -395,19 +391,16 @@ module ietf-ospfv3-srv6 { description "SRv6 SID Locator Block length in bits."; } - leaf ln-length { type uint8; description "SRv6 SID Locator Node length in bits."; } - leaf fun-length { type uint8; description "SRv6 SID Function length in bits."; } - leaf arg-length { type uint8; description @@ -419,14 +412,12 @@ module ietf-ospfv3-srv6 { grouping srv6-endx-sids { description "This group defines SRv6 SIDs Associated with Adjacencies - including SRv6 End.X SID Sub-TLV and SRv6 LAN End.X SID - Sub-TLV."; + including SRv6 End.X SID Sub-TLV and SRv6 LAN End.X SID + Sub-TLV."; container srv6-endx-sid { description "SRv6 sids associated with an adjacency."; - uses srv6-endpoint-func; - leaf-list func-flags { type identityref { base srv6-endx-sid-bit; @@ -434,33 +425,28 @@ module ietf-ospfv3-srv6 { description "Flags for SRv6 end x SID."; } - leaf algorithm { type uint8; description "Associated algorithm."; } - leaf weight { type uint8; description "8 bit field whose value represents the weight of the End.X SID for the purpose of load balancing"; } - leaf-list sid { type srv6-sid-value; description "SRV6 sid value."; } - leaf neighbor-router-id { - type yang:dotted-quad; - description - "Neighbor router ID.This is only - used on LAN adjacencies."; + type yang:dotted-quad; + description + "Neighbor router ID.This is only + used on LAN adjacencies."; } - uses srv6-sid-structures; } } @@ -478,20 +464,17 @@ module ietf-ospfv3-srv6 { description "The type of the locator route"; } - leaf algorithm { type uint8; description "Associated algorithm."; } - leaf locator-length { type uint8; description "Carries the length of the Locator prefix as number of bits (1-128)"; } - leaf-list flags { type identityref { base ospfv3-e-lsa:ospfv3-e-prefix-option; @@ -499,7 +482,6 @@ module ietf-ospfv3-srv6 { description "Flags for srv6 locator tlv."; } - leaf metric { type uint32; description @@ -515,9 +497,10 @@ module ietf-ospfv3-srv6 { } /* Cfg */ - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/ospf:ospf" { + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/ospf:ospf" { when "../rt:type = 'ospf:ospfv3'" { description "This augment OSPFv3 routing protocol when used"; @@ -525,8 +508,8 @@ module ietf-ospfv3-srv6 { description "This augments OSPFv3 protocol configuration with SRv6."; - container srv6{ - leaf enable{ + container srv6 { + leaf enable { type boolean; default "false"; description @@ -551,7 +534,7 @@ module ietf-ospfv3-srv6 { "Enable OSPFv3 segment-routing IPv6 with specified locator."; } - leaf persistent-end-x-sid{ + leaf persistent-end-x-sid { type boolean; default "false"; description @@ -560,7 +543,6 @@ module ietf-ospfv3-srv6 { description "Configuration about OSPFv3 segment-routing IPv6."; } - container micro-loop-avoidance { leaf srv6-enable { type boolean; @@ -568,7 +550,6 @@ module ietf-ospfv3-srv6 { description "Enable SRv6 avoid-microloop.Depend on SR IPv6 Enable."; } - leaf srv6-rib-update-delay { type uint16 { range "1000..10000"; @@ -579,24 +560,22 @@ module ietf-ospfv3-srv6 { "Set the route delivery delay for SRv6 avoid-microloop. Depend on SR IPv6 Enable."; } - description "Enable OSPFv3 avoid-microloop."; } } - augment "/rt:routing/" + - "rt:control-plane-protocols/rt:control-plane-protocol"+ - "/ospf:ospf/ospf:fast-reroute"{ - when "../../rt:type = 'ospf:ospfv3'"{ + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/ospf:ospf/ospf:fast-reroute" { + when "../../rt:type = 'ospf:ospfv3'" { description "This augment OSPFv3 routing protocol when used"; } description "This augments OSPFv3 IP FRR with IPV6 TILFA."; - container srv6-ti-lfa { - if-feature srv6-ti-lfa; + if-feature "srv6-ti-lfa"; leaf enable { type boolean; description @@ -608,12 +587,13 @@ module ietf-ospfv3-srv6 { } /* Database */ + augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:database/" - + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" - + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" - + "ospf:ospfv3/ospf:body" { + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:database/" + + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" + + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospfv3/ospf:body" { when "../../../../../../../rt:type = 'ospf:ospfv3'" { description "This augment OSPFv3 routing protocol when used"; @@ -628,11 +608,11 @@ module ietf-ospfv3-srv6 { } augment "/rt:routing/" - + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:database/" - + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" - + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" - + "ospf:ospfv3/ospf:body/ospf:router-information" { + + "rt:control-plane-protocols/rt:control-plane-protocol/" + + "ospf:ospf/ospf:database/" + + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" + + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospfv3/ospf:body/ospf:router-information" { when "../../../../../../../../rt:type = 'ospf:ospfv3'" { description "This augment OSPFv3 routing protocol when used"; @@ -652,7 +632,7 @@ module ietf-ospfv3-srv6 { + "ospfv3-e-lsa:e-router-tlvs/" + "ospfv3-e-lsa:link-tlv" { when "../../../../../../../../../../../../rt:type" - + "= 'ospf:ospfv3'" { + + "= 'ospf:ospfv3'" { description "This augment OSPFv3 routing protocol when used"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-slice-mpi@2022-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-slice-mpi@2024-07-07.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-otn-slice-mpi@2022-10-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-otn-slice-mpi@2024-07-07.yang index 9a9f22a92..14c84c6f5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-slice-mpi@2022-10-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-slice-mpi@2024-07-07.yang @@ -74,11 +74,11 @@ module ietf-otn-slice-mpi { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision "2022-10-12" { + revision "2024-07-07" { description "Latest revision of MPI YANG model for OTN slicing."; reference - "draft-ietf-ccamp-yang-otn-slicing-03: Framework and Data + "draft-ietf-ccamp-yang-otn-slicing-07: Framework and Data Model for OTN Network Slicing"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-slice@2023-07-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-slice@2024-07-07.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-otn-slice@2023-07-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-otn-slice@2024-07-07.yang index ab47cad75..900fecedc 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-slice@2023-07-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-slice@2024-07-07.yang @@ -75,11 +75,11 @@ module ietf-otn-slice { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision "2023-07-06" { + revision "2024-07-07" { description "Latest revision of NBI YANG model for OTN slicing."; reference - "draft-ietf-ccamp-yang-otn-slicing-05: Framework and Data + "draft-ietf-ccamp-yang-otn-slicing-07: Framework and Data Model for OTN Network Slicing"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2023-07-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2023-07-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang index 315cfc9c4..dfe8816c3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2023-07-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-topology@2024-06-21.yang @@ -5,12 +5,14 @@ module ietf-otn-topology { import ietf-network { prefix "nw"; - reference "RFC 8345: A YANG Data Model for Network Topologies"; + 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"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; } import ietf-te-topology { @@ -23,9 +25,10 @@ module ietf-otn-topology { import ietf-layer1-types { prefix "l1-types"; reference - "I-D.ietf-ccamp-layer1-types: A YANG Data Model - for Layer 1 Types"; + "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"; @@ -53,7 +56,7 @@ module ietf-otn-topology { data model. The model fully conforms to the Network Management Datastore Architecture (NMDA). - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -72,20 +75,19 @@ module ietf-otn-topology { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-07-06 { + revision 2024-06-21 { 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 } + // 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 @@ -120,14 +122,14 @@ module ietf-otn-topology { Network (OTN)-electrical layer."; description "OTN topology type"; } - description "augment network types to include OTN newtork"; + 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 network."; + description "Augment only for OTN."; } description "Augment TE node attributes."; container otn-node { @@ -141,7 +143,7 @@ module ietf-otn-topology { + "tet:te-link-attributes" { when "../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { - description "Augment only for OTN network."; + description "Augment only for OTN."; } description "Augment link configuration"; @@ -172,7 +174,7 @@ module ietf-otn-topology { } container client-svc { presence - "When present, indicates that the Link supports Costant + "When present, indicates that the Link supports Constant Bit Rate (CBR) client signals."; description "Attributes of the Link supporting CBR client signals."; @@ -191,11 +193,12 @@ module ietf-otn-topology { + "tet:te" { when "../../../nw:network-types/tet:te-topology/" + "otnt:otn-topology" { - description "Augment only for OTN network"; + description "Augment only for OTN."; } - description "OTN TP attributes config in ODU topology."; + description + "Augment link termination point (LTP) configuration."; - container otn-ltp { + container otn-link-tp { description "Attributes of the OTN Link Termination Point (LTP)."; leaf odtu-flex-type { @@ -210,7 +213,7 @@ module ietf-otn-topology { container client-svc { presence "When present, indicates that the Link Termination Point - (LTP) supports Costant Bit Rate (CBR) client signals."; + (LTP) supports Constant Bit Rate (CBR) client signals."; description "OTN LTP Service attributes."; leaf-list supported-client-signal { @@ -265,7 +268,7 @@ module ietf-otn-topology { connectivity matrices."; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -297,7 +300,7 @@ module ietf-otn-topology { connectivity matrix entry."; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -328,7 +331,7 @@ module ietf-otn-topology { connectivity matrices information source."; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -360,7 +363,7 @@ module ietf-otn-topology { connectivity matrix entry information source"; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -392,7 +395,7 @@ module ietf-otn-topology { (TTP)"; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -424,7 +427,7 @@ module ietf-otn-topology { Local Link Connectivities."; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -457,7 +460,7 @@ module ietf-otn-topology { Local Link Connectivity entry."; case otn { uses l1-types:otn-link-bandwidth { - augment otn { + augment otn-bandwidth { description "Augment OTN link bandwidth information."; leaf odtu-flex-type { @@ -467,7 +470,7 @@ module ietf-otn-topology { 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."; + Link Connectivity entry."; } } } @@ -621,6 +624,7 @@ module ietf-otn-topology { 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/" @@ -660,7 +664,6 @@ module ietf-otn-topology { } } } - augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:max-link-bandwidth/" @@ -757,7 +760,6 @@ module ietf-otn-topology { 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/" @@ -1149,6 +1151,7 @@ module ietf-otn-topology { uses l1-types:otn-label-start-end; } } + augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:connectivity-matrix/tet:to/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang index 60013a95b..6947757b9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-otn-tunnel@2023-10-12.yang @@ -44,6 +44,7 @@ module ietf-otn-tunnel { 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. @@ -92,6 +93,7 @@ module ietf-otn-tunnel { uses l1-types:otn-path-bandwidth; } } + augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" + "te:te-bandwidth/te:technology" { @@ -220,7 +222,6 @@ module ietf-otn-tunnel { of the primay path."; uses l1-types:otn-label-range-info; } - augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" + "te:path-out-segment/te:label-restrictions/" @@ -764,6 +765,7 @@ module ietf-otn-tunnel { uses l1-types:otn-label-hop; } } + augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-paths/te:secondary-path/" + "te:path-in-segment/te:label-restrictions/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-packet-discard-reporting@2024-06-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-packet-discard-reporting@2024-06-04.yang new file mode 100644 index 000000000..2cf569f61 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-packet-discard-reporting@2024-06-04.yang @@ -0,0 +1,620 @@ +module ietf-packet-discard-reporting { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting"; + prefix plr; + + import ietf-yang-structure-ext { + prefix sx; + reference + "RFC 8791: YANG Data Structure Extensions"; + } + + organization + "IETF OPSAWG (Operations and Management Area Working Group)"; + contact + "WG Web: https://datatracker.ietf.org/wg/opsawg/ + WG List: mailto:opsawg@ietf.org + Author: John Evans + + + Author: Oleksandr Pylypenko + + + Author: Jeffrey Haas + + + Author: Aviran Kadosh + + + Author: Mohamed Boucadair + "; + description + "This module defines an information model for packet discard + reporting. + + 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-06-04 { + description + "Initial revision."; + reference + "RFC XXXX: An Information Model for Packet Discard Reporting"; + } + + typedef uint48 { + type uint64 { + range "0..281474976710655"; + } + description + "48-bit unsigned integer type"; + } + + typedef uint48-or-64 { + type union { + type uint48; + type uint64; + } + description + "Union type representing either a 48-bit or 64-bit unsigned + integer. 48-bit counters are used for packet and discard + counters that increase at a lower rate, while 64-bit counters + are used for traffic byte counters that may increase more + rapidly."; + } + + /* + * Groupings + */ + + grouping basic-packets-64 { + description + "Basic grouping with 64-bit packets"; + leaf packets { + type uint64; + description + "Number of L3 packets"; + } + } + + grouping basic-packets-bytes-64 { + description + "Basic grouping with 64-bit packets and bytes"; + uses basic-packets-64; + leaf bytes { + type uint64; + description + "Number of L3 bytes"; + } + } + + grouping basic-frames-64 { + description + "Basic grouping with 64-bit frames"; + leaf frames { + type uint64; + description + "Number of L2 frames"; + } + } + + grouping basic-frames-bytes-64 { + description + "Basic grouping with 64-bit packets and bytes"; + uses basic-frames-64; + leaf bytes { + type uint64; + description + "Number of L2 bytes"; + } + } + + grouping basic-packets-48 { + description + "Basic grouping with 48-bit packets"; + leaf packets { + type uint48; + description + "Number of L3 packets"; + } + } + + grouping basic-packets-bytes-48 { + description + "Basic grouping with 48-bit packets and bytes"; + uses basic-packets-48; + leaf bytes { + type uint48; + description + "Number of L3 bytes"; + } + } + + grouping basic-frames-48 { + description + "Basic grouping with 48-bit frames"; + leaf frames { + type uint48; + description + "Number of L2 frames"; + } + } + + grouping basic-frames-bytes-48 { + description + "Basic grouping with 48-bit packets and bytes"; + uses basic-frames-48; + leaf bytes { + type uint48; + description + "Number of L2 bytes"; + } + } + + grouping l2-traffic { + description + "Layer 2 traffic counters"; + uses basic-frames-bytes-64; + } + + grouping ip { + description + "IP traffic counters"; + uses basic-packets-bytes-64; + container unicast { + description + "Unicast traffic counters"; + uses basic-packets-bytes-64; + } + container multicast { + description + "Multicast traffic counters"; + uses basic-packets-bytes-64; + } + } + + grouping l3-traffic { + description + "Layer 3 traffic counters"; + container v4 { + description + "IPv4 traffic counters"; + uses ip; + } + container v6 { + description + "IPv6 traffic counters"; + uses ip; + } + } + + grouping qos { + description + "Quality of Service (QoS) traffic counters"; + list class { + key "id"; + min-elements 1; + description + "QoS class traffic counters"; + leaf id { + type string; + description + "QoS class identifier"; + } + uses basic-packets-bytes-64; + } + } + + grouping traffic { + description + "Traffic counters"; + container l2 { + description + "Layer 2 traffic counters"; + uses l2-traffic; + } + container l3 { + description + "Layer 3 traffic counters"; + uses l3-traffic; + } + container qos { + description + "Quality of Service (QoS) traffic counters"; + uses qos; + } + } + + grouping control-plane { + description + "Control plane packet counters"; + container ingress { + description + "Control plane ingress counters"; + container traffic { + description + "Control plane ingress traffic counters"; + uses basic-packets-bytes-48; + } + container discards { + description + "Control plane ingress packet discard counters"; + uses basic-packets-bytes-48; + container policy { + description + "Number of control plane packets discarded due to policy"; + uses basic-packets-48; + } + } + } + } + + grouping errors-l2-rx { + description + "Layer 2 ingress frame errors"; + container rx { + description + "Layer 2 ingress frame error counters"; + leaf frames { + type uint48; + description + "Number of errored L2 frames"; + } + leaf crc-error { + type uint48; + description + "Number of frames received with CRC error"; + } + leaf invalid-mac { + type uint48; + description + "Number of frames received with invalid MAC address"; + } + leaf invalid-vlan { + type uint48; + description + "Number of frames received with invalid VLAN tag"; + } + leaf invalid-frame { + type uint48; + description + "Number of invalid frames received"; + } + } + } + + grouping errors-l3-rx { + description + "Layer 3 ingress packet error counters"; + container rx { + description + "Layer 3 ingress packet receive error counters"; + leaf packets { + type uint48; + description + "Number of errored L3 packets"; + } + leaf checksum-error { + type uint48; + description + "Number of packets received with checksum error"; + } + leaf mtu-exceeded { + type uint48; + description + "Number of packets received exceeding MTU"; + } + leaf invalid-packet { + type uint48; + description + "Number of invalid packets received"; + } + leaf ttl-expired { + type uint48; + description + "Number of packets received with expired TTL"; + } + } + leaf no-route { + type uint48; + description + "Number of packets with no route"; + } + leaf invalid-sid { + type uint48; + description + "Number of packets with invalid SID"; + } + leaf invalid-label { + type uint48; + description + "Number of packets with invalid label"; + } + } + + grouping errors-l3-hw { + description + "Hardware error counters"; + leaf packets { + type uint48; + description + "Number of local errored packets"; + } + leaf parity-error { + type uint48; + description + "Number of packets with parity error"; + } + } + + grouping errors-rx { + description + "Ingress error counters"; + container l2 { + description + "Layer 2 received frame error counters"; + uses errors-l2-rx; + } + container l3 { + description + "Layer 3 received packet error counters"; + uses errors-l3-rx; + } + container hardware { + description + "Hardware error counters"; + uses errors-l3-hw; + } + } + + grouping errors-l2-tx { + description + "Layer 2 transmit error counters"; + container tx { + description + "Layer 2 transmit frame error counters"; + leaf frames { + type uint48; + description + "Number of errored L2 frames during transmission"; + } + } + } + + grouping errors-l3-tx { + description + "Layer 3 transmit error counters"; + container tx { + description + "Layer 3 transmit packet error counters"; + leaf packets { + type uint48; + description + "Number of errored L3 packets during transmission"; + } + } + } + + grouping errors-tx { + description + "Egress error counters"; + container l2 { + description + "Layer 2 transmit frame error counters"; + uses errors-l2-tx; + } + container l3 { + description + "Layer 3 transmit packet error counters"; + uses errors-l3-tx; + } + } + + grouping policy-l2-rx { + description + "Layer 2 policy ingress packet discard counters"; + leaf frames { + type uint48; + description + "Number of L2 frames discarded due to policy"; + } + leaf acl { + type uint48; + description + "Number of frames discarded due to L2 ACL"; + } + } + + grouping policy-l3-rx { + description + "Layer 3 policy ingress packet discard counters"; + leaf packets { + type uint48; + description + "Number of L3 packets discarded due to policy"; + } + leaf acl { + type uint48; + description + "Number of packets discarded due to L3 ACL"; + } + container policer { + description + "Policer ingress packet discard counters"; + uses basic-packets-bytes-48; + } + leaf null-route { + type uint48; + description + "Number of packets discarded due to null route"; + } + leaf rpf { + type uint48; + description + "Number of packets discarded due to RPF check failure"; + } + leaf ddos { + type uint48; + description + "Number of packets discarded due to DDoS protection"; + } + } + + grouping policy-rx { + description + "Policy-related ingress packet discard counters"; + container l2 { + description + "Layer 2 policy ingress packet discard counters"; + uses policy-l2-rx; + } + container l3 { + description + "Layer 3 policy ingress packet discard counters"; + uses policy-l3-rx; + } + } + + grouping policy-l3-tx { + description + "Layer 3 policy egress packet discard counters"; + leaf acl { + type uint48; + description + "Number of packets discarded due to L3 egress ACL"; + } + container policer { + description + "Policer egress packet discard counters"; + uses basic-packets-bytes-48; + } + } + + grouping policy-tx { + description + "Policy-related egress packet discard counters"; + container l3 { + description + "Layer 3 policy egress packet discard counters"; + uses policy-l3-tx; + } + } + + grouping interface { + description + "Interface-level packet loss counters"; + container ingress { + description + "Ingress counters"; + container traffic { + description + "Ingress traffic counters"; + uses traffic; + } + container discards { + description + "Ingress packet discard counters"; + container l2 { + description + "Layer 2 ingress discards traffic counters"; + uses l2-traffic; + } + container l3 { + description + "Layer 3 ingress discards traffic counters"; + uses l3-traffic; + } + container errors { + description + "Ingress packet error counters"; + uses errors-rx; + } + container policy { + description + "Policy-related ingress packet discard counters"; + uses policy-rx; + } + container no-buffer { + description + "Ingress packet discard counters due to buffer unavailability"; + uses qos; + } + } + } + container egress { + description + "Egress counters"; + container traffic { + description + "Egress traffic counters"; + uses traffic; + } + container discards { + description + "Egress packet discard counters"; + container l2 { + description + "Layer 2 egress packet discard counters"; + uses l2-traffic; + } + container l3 { + description + "Layer 3 egress packet discard counters"; + uses l3-traffic; + } + container errors { + description + "Egress packet error counters"; + uses errors-tx; + } + container policy { + description + "Policy-related egress packet discard counters"; + uses policy-tx; + } + container no-buffer { + description + "Egress packet discard counters due to buffer unavailability"; + uses qos; + } + } + } + container control-plane { + description + "Control plane packet counters"; + uses control-plane; + } + } + + /* + * Main Structure + */ + + sx:structure packet-discard-reporting { + description + "Container for packet discard reporting data."; + list interface { + key "name"; + description + "List of interfaces for which packet discard reporting + data is provided."; + leaf name { + type string; + description + "Name of the interface."; + } + uses interface; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-pcep-srpolicy@2023-09-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-pcep-srpolicy@2024-03-18.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-pcep-srpolicy@2023-09-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-pcep-srpolicy@2024-03-18.yang index a4d4e638b..b3b9741a5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-pcep-srpolicy@2023-09-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-pcep-srpolicy@2024-03-18.yang @@ -40,7 +40,7 @@ module ietf-pcep-srpolicy { Communications Protocol (PCEP) YANG model with Segment Routing (SR) Policy. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -53,7 +53,7 @@ module ietf-pcep-srpolicy { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-11 { + revision 2024-03-18 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-pcep-srv6@2023-09-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-pcep-srv6@2024-03-18.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-pcep-srv6@2023-09-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-pcep-srv6@2024-03-18.yang index 9102c9c31..e8583a074 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-pcep-srv6@2023-09-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-pcep-srv6@2024-03-18.yang @@ -35,7 +35,7 @@ module ietf-pcep-srv6 { Communications Protocol (PCEP) YANG operational model with Segment Routing in IPv6 (SRv6). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -48,7 +48,7 @@ module ietf-pcep-srv6 { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-11 { + revision 2024-03-18 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-pcep-stats@2023-09-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-pcep-stats@2024-05-22.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-pcep-stats@2023-09-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-pcep-stats@2024-05-22.yang index 15975b9a6..b70f5d064 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-pcep-stats@2023-09-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-pcep-stats@2024-05-22.yang @@ -27,7 +27,7 @@ module ietf-pcep-stats { Communication Protocol (PCEP) YANG operational model with statistics, counters and telemetry data. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -40,7 +40,7 @@ module ietf-pcep-stats { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-11 { + revision 2024-05-22 { description "Initial revision."; reference @@ -748,7 +748,7 @@ module ietf-pcep-stats { leaf dup-path-key { type yang:counter32; description - "The number of duplicate attempts to expand same + "The number of duplicate attempts to expand the same path-key."; } leaf path-key-no-attempt { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-pcep@2023-09-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-pcep@2024-05-22.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-pcep@2023-09-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-pcep@2024-05-22.yang index 9a0e6104c..d0ee3dfb0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-pcep@2023-09-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-pcep@2024-05-22.yang @@ -64,7 +64,7 @@ module ietf-pcep { operational model for Path Computation Element Communication Protocol (PCEP). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -83,7 +83,7 @@ module ietf-pcep { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-09-11 { + revision 2024-05-22 { description "Initial revision."; reference @@ -122,17 +122,18 @@ module ietf-pcep { description "The role of a PCEP speaker. Takes one of the following values - - unknown(0): the role is not known. + - unknown(0): the role is not known, - pcc(1): the role is of a Path Computation - Client (PCC). + Client (PCC), - pce(2): the role is of a Path Computation - Server (PCE). + Server (PCE), - pcc-and-pce(3): the role is of both a PCC and a PCE."; reference "RFC 5440: Path Computation Element (PCE) Communication Protocol (PCEP)"; } + typedef oper-status { type enumeration { enum oper-status-up { @@ -170,17 +171,18 @@ module ietf-pcep { } description "The operational status of the PCEP entity. - Takes one of the following values - - oper-status-up(1): Active - - oper-status-down(2): Inactive - - oper-status-going-up(3): Activating - - oper-status-going-down(4): Deactivating - - oper-status-failed(5): Failed - - oper-status-failed-perm(6): Failed Permanently"; + Takes one of the following values: + - oper-status-up(1): Active, + - oper-status-down(2): Inactive, + - oper-status-going-up(3): Activating, + - oper-status-going-down(4): Deactivating, + - oper-status-failed(5): Failed, + - oper-status-failed-perm(6): Failed Permanently."; reference "RFC 5440: Path Computation Element (PCE) Communication Protocol (PCEP)"; } + typedef initiator { type enumeration { enum local { @@ -198,9 +200,9 @@ module ietf-pcep { "The initiator of the session, that is, whether the TCP connection was initiated by the local PCEP entity or the remote peer. - Takes one of the following values - - local(1): Initiated locally - - remote(2): Initiated remotely"; + Takes one of the following values: + - local(1): Initiated locally, + - remote(2): Initiated remotely."; } typedef sess-state { @@ -230,11 +232,11 @@ module ietf-pcep { "The current state of the session. The set of possible states excludes the idle state since entries do not exist in the idle state. - Takes one of the following values - - tcp-pending(1): PCEP TCPPending state - - open-wait(2): PCEP OpenWait state - - keep-wait(3): PCEP KeepWait state - - session-up(4): PCEP SessionUP state"; + Takes one of the following values: + - tcp-pending(1): PCEP TCPPending state, + - open-wait(2): PCEP OpenWait state, + - keep-wait(3): PCEP KeepWait state, + - session-up(4): PCEP SessionUP state."; reference "RFC 5440: Path Computation Element (PCE) Communication Protocol (PCEP)"; @@ -667,7 +669,7 @@ module ietf-pcep { grouping info { description "This grouping specifies all information which - maybe relevant to both PCC and PCE. + may be relevant to both PCC and PCE. This information corresponds to PCE auto-discovery information. The scope relates to either a local entity or a peer."; @@ -883,7 +885,7 @@ module ietf-pcep { if-feature "sync-opt"; type boolean; description - "Support PCE triggered re-synchronization"; + "Support PCE-triggered re-synchronization"; reference "RFC 8232: Optimizations of Label Switched Path State Synchronization Procedures for a Stateful PCE"; @@ -893,7 +895,7 @@ module ietf-pcep { if-feature "sync-opt"; type boolean; description - "PCE triggered initial synchronization"; + "PCE-triggered initial synchronization"; reference "RFC 8232: Optimizations of Label Switched Path State Synchronization Procedures for a Stateful PCE"; @@ -921,7 +923,7 @@ module ietf-pcep { description "Set to true if SR-MPLS is enabled"; } - leaf msd-limit { + leaf no-msd-limit { type boolean; default "false"; description @@ -977,7 +979,7 @@ module ietf-pcep { leaf enabled { type boolean; description - "Set to true if Stateful GMPLS is enabled"; + "Set to true if H-PCE is enabled"; } leaf stateful { if-feature "stateful"; @@ -1131,7 +1133,7 @@ module ietf-pcep { grouping notification-session-hdr { description - "This group describes common session instance specific + "This group describes common session instance-specific data for notifications."; leaf session-initiator { type leafref { @@ -1286,11 +1288,11 @@ module ietf-pcep { mandatory true; description "The role that this entity can play. - Takes one of the following values. + Takes one of the following values: - unknown(0): this PCEP Entity role is not - known. - - pcc(1): this PCEP Entity is a PCC. - - pce(2): this PCEP Entity is a PCE. + known, + - pcc(1): this PCEP Entity is a PCC, + - pce(2): this PCEP Entity is a PCE, - pcc-and-pce(3): this PCEP Entity is both a PCC and a PCE."; } @@ -1333,15 +1335,15 @@ module ietf-pcep { config false; description "The operational status of the PCEP entity. - Takes one of the following values. - - oper-status-up(1): the PCEP entity is active. - - oper-status-down(2): the PCEP entity is inactive. + Takes one of the following values: + - oper-status-up(1): the PCEP entity is active, + - oper-status-down(2): the PCEP entity is inactive, - oper-status-going-up(3): the PCEP entity is - activating. + activating, - oper-status-going-down(4): the PCEP entity is - deactivating. + deactivating, - oper-status-failed(5): the PCEP entity has - failed and will recover when possible. + failed and will recover when possible, - oper-status-failed-perm(6): the PCEP entity has failed and will not recover without operator intervention."; @@ -1535,8 +1537,8 @@ module ietf-pcep { type boolean; default "true"; description - "Whether the PCEP entity will permit negotiation of - session parameters."; + "Whether the PCEP entity will permit the negotiation + of session parameters."; } leaf max-keepalive-timer { type uint8; @@ -1584,18 +1586,11 @@ module ietf-pcep { description "The value of SyncTimer in seconds is used in the case of synchronized path computation request - using the SVEC object. Consider the case where a - PCReq message is received by a PCE that contains - the SVEC object referring to M synchronized path - computation requests. If after the expiration of - the SyncTimer all the M path computation requests - have not been, received a protocol error is + using the SVEC object. If after the expiration of + the SyncTimer all the path computation requests + have not been received, a protocol error is triggered and the PCE must cancel the whole set of path computation requests. - The aim of the SyncTimer is to avoid the storage - of unused synchronized requests should one of - them get lost for some reason (for example, a - misbehaving PCC). Zero means that the PCEP entity does not use the SyncTimer."; reference @@ -1717,7 +1712,7 @@ module ietf-pcep { + "or " + "../role = 'pcc-and-pce'" { description - "These field are applicable when the role is + "These fields are applicable when the role is PCE"; } if-feature "objective-function"; @@ -2086,13 +2081,14 @@ module ietf-pcep { uses te-types:explicit-route-hop; } } - leaf pcc-original { + leaf pcc-requester { type leafref { path "/pcep/entity/peers/peer/addr"; } description - "Reference to PCC peer address of - the original request"; + "Reference to PCC peer address that + issued the original request that led + to the creation of the path-key."; } leaf req-id { type uint32; @@ -2162,11 +2158,11 @@ module ietf-pcep { mandatory true; description "The role of the PCEP Peer. - Takes one of the following values. + Takes one of the following values: - unknown(0): this PCEP peer role is not - known. - - pcc(1): this PCEP peer is a PCC. - - pce(2): this PCEP peer is a PCE. + known, + - pcc(1): this PCEP peer is a PCC, + - pce(2): this PCEP peer is a PCE, - pcc-and-pce(3): is not allowed as PCEP peer cannot be acting as both a PCC and a PCE at the sametime."; @@ -2321,7 +2317,7 @@ module ietf-pcep { description "The value of the PCEP session ID used by the local PCEP entity in the Open message - for this session. If state is tcp-pending + for this session. If the state is tcp-pending then this is the session ID that will be used in the Open message. Otherwise, this is the session ID that was sent in the @@ -2342,7 +2338,7 @@ module ietf-pcep { + "and (. = 0)))" { error-message "Invalid remote-id"; description - "If state is TCPPending or OpenWait then + "If the state is TCPPending or OpenWait then this leaf is not used and MUST be set to zero."; } @@ -2362,8 +2358,8 @@ module ietf-pcep { + "and (. = 0)))" { error-message "Invalid Keepalive timer"; description - "This field is used if and only if state is - session-up. Otherwise, it is not used and + "This field is used if and only if the state + is session-up. Otherwise, it is not used and MUST be set to zero."; } description @@ -2421,8 +2417,8 @@ module ietf-pcep { + "(. = 0)))" { error-message "Invalid Peer DeadTimer"; description - "If state is TCPPending or OpenWait then this - leaf is not used and MUST be set to zero."; + "If the state is TCPPending or OpenWait then + this leaf is not used and MUST be set to zero."; } description "The peer's DeadTimer interval @@ -2446,8 +2442,9 @@ module ietf-pcep { error-message "Invalid Keepalive hold time remaining"; description - "If state is TCPPending or OpenWait then this - field is not used and MUST be set to zero."; + "If the state is TCPPending or OpenWait then + this field is not used and MUST be set to + zero."; } description "The Keepalive hold time remaining for this @@ -2456,9 +2453,9 @@ module ietf-pcep { leaf overloaded { type boolean; description - "If the local PCEP entity has informed the peer that - it is currently overloaded, then this is set to true. - Otherwise, it is set to false."; + "If the local PCEP entity has informed the peer + that it is currently overloaded, then this is + set to true. Otherwise, it is set to false."; reference "RFC 5440: Path Computation Element (PCE) Communication Protocol (PCEP)"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-petra@2024-07-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-petra@2024-07-05.yang new file mode 100644 index 000000000..4ce5e3814 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-petra@2024-07-05.yang @@ -0,0 +1,139 @@ +module ietf-petra { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-petra"; + prefix ietf-petra; + + import ietf-inet-types { + prefix ietf-inet-types; + } + + organization + ""; + contact + ""; + description + "Initial YANG rendition of the PETRA Energy API, v1.0.1 + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + +/* + If you have an implementation of this YANG module, you could + access it like something this over RESTCONF: + + $ curl --location --request POST \ + 'https://localhost:8008/restconf/operations/energy/query' \ + --header 'Content-Type: application/yang-data+json' \ + --user 'admin:admin' \ + --data-raw '{ + 'input' : { + 'src-ip': '10.10.10.10', + 'dst-ip': '10.20.20.20', + 'throughput': '40' + } + }' + + And if all goes well, you might receive (besides all the + HTTP headers) a reply body with something like this: + + { + 'output': { + 'success': { + 'watts-per-gigabit': '191.855', + 'carbon-intensity': '108' + } + } + } +*/ + + revision 2024-07-05 { + description + "Initial YANG rendition of the PETRA Energy API, v1.0.1"; + reference + "RFC XXXX: ..."; + } + + grouping energy-metrics-g { + description + "Grouping for query result metrics."; + leaf watts-per-gigabit { + type decimal64 { + fraction-digits 3; + } + units W/Gb; + description + "Watts consumed per Gigabit transmitted"; + } + leaf carbon-intensity { + type uint32; + units gCO2e/kWh; + description + "Grams of CO2 per kWh"; + } + } + + container energy { + description + "PETRA API top level container."; + action query { + description + "Query the network for energy consupmtion"; + input { + leaf src-ip { + type ietf-inet-types:ip-address; + mandatory true; + description + "Source IP address"; + } + leaf dst-ip { + type ietf-inet-types:ip-address; + mandatory true; + description + "Destination IP address"; + } + leaf throughput { + type uint32; + units Gb/s; + mandatory true; + description + "Throughput between source and destination + (in gigabits per second)"; + } + } + output { + choice result { + description + "Choice of which kind of result the query gave."; + container success { + description + "Successful operation"; + uses energy-metrics-g; + } + container invalid-address { + description + "Invalid source/destination IP address supplied"; + } + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2023-03-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2023-03-08.yang deleted file mode 100644 index 6b283a680..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2023-03-08.yang +++ /dev/null @@ -1,273 +0,0 @@ -module ietf-platform-manifest { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-platform-manifest"; - prefix p-mf; - - import ietf-yang-library { - prefix yanglib; - reference - "RFC8525: YANG Library"; - } - import ietf-yang-revisions { - prefix rev; - reference - "XXXX: Updated YANG Module Revision Handling"; - } - - organization - "IETF OPSAWG (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - Author: Benoit Claise - Author: Jean Quilbeuf - Author: Diego R. Lopez - Author: Ignacio Dominguez - - Author: Thomas Grapf "; - description - "This module describes the platform information to be used as - context of data collection from a given network element. The - contents of this model must be streamed along with the data - streamed from the network element so that the platform context - of the data collection can be retrieved later. - - The data content of this model should not change except on - upgrade or patching of the device. - - 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) 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. "; - - revision 2023-03-08 { - description - "Initial revision"; - reference - "RFC xxxx: Title to be completed"; - } - - // This is a copy-paste of the augments from the module - // ietf-yang-library-revisions. - // We just changed the path to which the data is added - - augment "/p-mf:platforms/p-mf:platform/p-mf:yang-library" - + "/p-mf:module-set/p-mf:module" { - description - "Add a revision label to module information"; - leaf revision-label { - type rev:revision-label; - description - "The revision label associated with this module revision. - The label MUST match the rev:revision-label value in the - specific revision of the module loaded in this module-set."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 5.2.1, Advertising revision-label"; - } - } - - augment "/p-mf:platforms/p-mf:platform/p-mf:yang-library/" - + "p-mf:module-set/p-mf:module/p-mf:submodule" { - description - "Add a revision label to submodule information"; - leaf revision-label { - type rev:revision-label; - description - "The revision label associated with this submodule revision. - The label MUST match the rev:revision-label value in the - specific revision of the submodule included by the module - loaded in this module-set."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 5.2.1, Advertising revision-label"; - } - } - - augment - "/p-mf:platforms/p-mf:platform/p-mf:yang-library/p-mf:module-set/" - + "p-mf:import-only-module" { - description - "Add a revision label to module information"; - leaf revision-label { - type rev:revision-label; - description - "The revision label associated with this module revision. - The label MUST match the rev:revision-label value in the - specific revision of the module included in this module-set."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 5.2.1, Advertising revision-label"; - } - } - - augment - "/p-mf:platforms/p-mf:platform/p-mf:yang-library/p-mf:module-set/" - + "p-mf:import-only-module/p-mf:submodule" { - description - "Add a revision label to submodule information"; - leaf revision-label { - type rev:revision-label; - description - "The revision label associated with this submodule revision. - The label MUST match the rev:label value in the specific - revision of the submodule included by the - import-only-module loaded in this module-set."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 5.2.1, Advertising revision-label"; - } - } - - augment "/p-mf:platforms/p-mf:platform/p-mf:yang-library" - + "/p-mf:schema" { - description - "Augmentations to the ietf-yang-library module to indicate how - deprecated and obsoleted nodes are handled for each datastore - schema supported by the server."; - leaf deprecated-nodes-implemented { - type boolean; - description - "If set to true, this leaf indicates that all schema nodes with - a status 'deprecated' are implemented - equivalently as if they had status 'current'; otherwise - deviations MUST be used to explicitly remove deprecated - nodes from the schema. If this leaf is absent or set to false, - then the behavior is unspecified."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 5.2.2, Reporting how deprecated and obsolete nodes - are handled"; - } - leaf obsolete-nodes-absent { - type boolean; - description - "If set to true, this leaf indicates that the server does not - implement any status 'obsolete' schema nodes. If this leaf is - absent or set to false, then the behaviour is unspecified."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 5.2.2, Reporting how deprecated and obsolete nodes - are handled"; - } - } - - container platforms { - config false; - description - "Top container including all platforms in scope. If this model is - hosted on a single device, it should contain a single entry in - the list. At the network level, it should contain an entry for - every monitored platform."; - list platform { - key "id"; - description - "Contains information about the platform that allows to identify - and understand the individual data collection information. "; - leaf id { - type string; - description - "Identifies a given platform on the network, for instance the - sysname of the plaftorm. The id has to be unique on the - network."; - } - leaf name { - type string; - description - "Model of the platform from which data is collected."; - } - leaf vendor { - type string; - description - "Organization that implements that platform."; - } - leaf vendor-pen { - type uint32; - description - "Vendor''s registered Private Enterprise Number as - described in RFC9371"; - } - leaf software-version { - type string; - description - "Name of the version of software. With respect to most network - device appliances, this will be the operating system version. - But for other YANG module implementation, this would be a - version of appliance software. Ultimately, this should - correspond to a version string that will be recognizable by - the consumers of the platform."; - } - leaf software-flavor { - type string; - description - "A variation of a specific version where YANG model support - may be different. Depending on the vendor, this could be a - license, additional software component, or a feature set."; - } - leaf os-version { - type string; - description - "Version of the operating system using this module. This is - primarily useful if the software implementing the module is - an application that requires a specific operating system - version."; - } - leaf os-type { - type string; - description - "Type of the operating system using this module. This is - primarily useful if the software implementing the module is - an application that requires a specific operating system - type."; - } - container yang-push-streams { - // copied from "streams" container of - // ietf-subscribed-notifications - config false; - description - "Contains information on the built-in event streams provided - by the platform."; - list stream { - key "name"; - description - "Identifies the built-in event streams that are supported by - the publisher."; - leaf name { - type string; - description - "A handle for a system-provided event stream made up of a - sequential set of event records, each of which is - characterized by its own domain and semantics."; - } - leaf description { - type string; - description - "A description of the event stream, including such - information as the type of event records that are - available in this event stream."; - } - } - } - container yang-library { - description - "The YANG library of the device specifying the modules - available in each of the datastores."; - uses yanglib:yang-library-parameters; - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang new file mode 100644 index 000000000..9968514f8 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2024-07-02.yang @@ -0,0 +1,146 @@ +module ietf-platform-manifest { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-platform-manifest"; + prefix p-mf; + + import ietf-yang-library { + prefix yanglib; + reference + "RFC8525: YANG Library"; + } + import ietf-yang-status-conformance { + prefix ysconf; + reference + "XXXX: Updated YANG Module Revision Handling"; + } + import ietf-yang-full-embed { + prefix full; + reference + "XXXX: YANG full embed"; + } + + organization + "IETF OPSAWG (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + Author: Benoit Claise + Author: Jean Quilbeuf + Author: Diego R. Lopez + Author: Ignacio Dominguez + + Author: Thomas Graf "; + description + "This module describes the platform information to be used as + context of data collection from a given network element. The + contents of this model must be streamed along with the data + streamed from the network element so that the platform context + of the data collection can be retrieved later. + + The data content of this model should not change except on + upgrade or patching of the device. + + 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) 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. "; + + revision 2024-07-02 { + description + "Initial revision"; + reference + "RFC xxxx: Title to be completed"; + } + + container platforms { + config false; + description + "Top container including all platforms in scope. If this model is + hosted on a single device, it should contain a single entry in + the list. At the network level, it should contain an entry for + every monitored platform."; + list platform { + key "id"; + description + "Contains information about the platform that allows to identify + and understand the individual data collection information. "; + anydata yang-library { + description + "The YANG library of the device specifying the modules + available in each of the datastores."; + full:embed "yl"; + full:embed "ysconf"; + } + leaf id { + type string; + description + "Identifies a given platform on the network, for instance the + sysname of the plaftorm. The id has to be unique on the + network."; + } + leaf name { + type string; + description + "Model of the platform from which data is collected."; + } + leaf vendor { + type string; + description + "Organization that implements that platform."; + } + leaf vendor-pen { + type uint32; + description + "Vendor''s registered Private Enterprise Number as + described in RFC9371"; + } + leaf software-version { + type string; + description + "Name of the version of software. With respect to most network + device appliances, this will be the operating system version. + But for other YANG module implementation, this would be a + version of appliance software. Ultimately, this should + correspond to a version string that will be recognizable by + the consumers of the platform."; + } + leaf software-flavor { + type string; + description + "A variation of a specific version where YANG model support + may be different. Depending on the vendor, this could be a + license, additional software component, or a feature set."; + } + leaf os-version { + type string; + description + "Version of the operating system using this module. This is + primarily useful if the software implementing the module is + an application that requires a specific operating system + version."; + } + leaf os-type { + type string; + description + "Type of the operating system using this module. This is + primarily useful if the software implementing the module is + an application that requires a specific operating system + type."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-qos-action@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-qos-action@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-qos-action@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-qos-action@2024-01-31.yang index 1e0b43780..a03572fc2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-qos-action@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-qos-action@2024-01-31.yang @@ -43,7 +43,7 @@ module ietf-qos-action { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version"; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-qos-oper@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-qos-oper@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-qos-oper@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-qos-oper@2024-01-31.yang index c46ff7ee6..9470e91b0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-qos-oper@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-qos-oper@2024-01-31.yang @@ -44,7 +44,7 @@ module ietf-qos-oper { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-queue-policy@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-queue-policy@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-queue-policy@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-queue-policy@2024-01-31.yang index 78ac3afc2..6ad6296a1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-queue-policy@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-queue-policy@2024-01-31.yang @@ -47,7 +47,7 @@ module ietf-queue-policy { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-quic-client@2024-06-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-quic-client@2024-06-30.yang new file mode 100644 index 000000000..e6ebf6c08 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-quic-client@2024-06-30.yang @@ -0,0 +1,82 @@ +module ietf-quic-client { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-quic-client"; + prefix quicc; + + import ietf-tls-client { + prefix tlsc; + reference + "RFC BBBB: YANG Groupings for TLS Clients and TLS Servers"; + } + + import ietf-tls-common { + prefix tlscmn; + reference + "RFC BBBB: YANG Groupings for TLS Clients and TLS Servers"; + } + + import ietf-udp-client { + prefix udpc; + reference + "RFC CCCC: YANG Groupings for UDP Clients and UDP Servers"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG List: NETCONF WG list + WG Web: https://datatracker.ietf.org/wg/netconf + Author: Per Andersson "; + + description + "This module defines reusable groupings for QUIC clients that + can be used as a basis for specific QUIC client instances. + + 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 AAAA + (https://www.rfc-editor.org/info/rfcAAAA); 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-30 { + description + "Initial version"; + reference + "RFC AAAA: YANG Groupings for QUIC Clients and QUIC Servers"; + } + + // Groupings + + grouping quic-client-grouping { + description + "Grouping to configure a QUIC client."; + reference + "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport"; + + uses tlsc:tls-client-grouping { + if-feature "tlscmn:tls13 and not tlscmn:tls12"; + description + "QUIC requires that TLS 1.3 (or later) is used."; + reference + "RFC 9001: Using TLS to Secure QUIC"; + } + uses udpc:udp-client-grouping; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-quic-server@2024-06-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-quic-server@2024-06-30.yang new file mode 100644 index 000000000..61fb393c7 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-quic-server@2024-06-30.yang @@ -0,0 +1,82 @@ +module ietf-quic-server { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-quic-server"; + prefix quicc; + + import ietf-tls-server { + prefix tlss; + reference + "RFC BBBB: YANG Groupings for TLS Clients and TLS Servers"; + } + + import ietf-tls-common { + prefix tlscmn; + reference + "RFC BBBB: YANG Groupings for TLS Clients and TLS Servers"; + } + + import ietf-udp-server { + prefix udps; + reference + "RFC CCCC: YANG Groupings for UDP Clients and UDP Servers"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG List: NETCONF WG list + WG Web: https://datatracker.ietf.org/wg/netconf + Author: Per Andersson "; + + description + "This module defines reusable groupings for QUIC servers that + can be used as a basis for specific QUIC server instances. + + 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 AAAA + (https://www.rfc-editor.org/info/rfcAAAA); 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-30 { + description + "Initial version"; + reference + "RFC AAAA: YANG Groupings for QUIC Clients and QUIC Servers"; + } + + // Groupings + + grouping quic-server-grouping { + description + "Grouping to configure a QUIC server."; + reference + "RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport"; + + uses tlss:tls-server-grouping { + if-feature "tlscmn:tls13 and not tlscmn:tls12"; + description + "QUIC requires that TLS 1.3 (or later) is used."; + reference + "RFC 9001: Using TLS to Secure QUIC"; + } + uses udps:udp-server-grouping; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang new file mode 100644 index 000000000..5a1288a7c --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm-types@2024-07-07.yang @@ -0,0 +1,153 @@ +module ietf-resource-pm-types { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-resource-pm-types"; + + prefix rpm-types; + + organization + "IETF CCAMP Working Group"; + contact + "WG Web: + WG List: + + Editor: Chaode Yu + + Editor: Fabio Peruzzini + + + Editor: Yanlei Zheng + + + Editor: Victor Lopez + + + Editor: Italo Busi + + + Editor: Aihua Guo + + + Editor: Xing Zhao + + + Editor: Mingshuang Jin + "; + + description + "This module defines types model for resource performance + monitoring which will be imported by ietf-resource-pm + data model. + + The model fully conforms to the Network Management + Datastore Architecture (NMDA). + + Copyright (c) 2022 IETF Trust and the persons + identified as authors of the code. All rights reserved. + + 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-07-07 { + description "Initial revision."; + + } + + identity resource-type { + description "this is the base type of all the rerource type"; + } + + identity network-element { + base resource-type; + description "NE resource type"; + } + + identity interface { + base resource-type; + description "Network interface"; + } + + identity board { + base resource-type; + description "board resource type"; + } + + identity termination-point { + base resource-type; + description "Termination point resource"; + } + + identity tunnel-termination-point { + base resource-type; + description "Tunnel termination point resource"; + } + + identity period { + description + "this is the base type of all the performace monitoring priod + type."; + } + + identity period-15-minutes { + base period; + description + "the during of monitoring task will be repeated at every 15 + minutes"; + } + + identity period-24-hours { + base period; + description + "the during of monitoring task will be repeated at every 24 + hours"; + } + + identity severity { + description + "it is used to indicate what severity alarm will be caused if + exceeds the threshold"; + } + + identity critical { + description + "critical alarm will be caused if exceeds the threshold"; + base severity; + } + + identity major { + description + "major alarm will be caused if exceeds the threshold"; + base severity; + } + + identity minor { + description + "minor alarm will be caused if exceeds the threshold"; + base severity; + } + + identity warning { + description + "only a warning will be caused if exceeds the threshold"; + base severity; + } + + identity layer-rate-type { + description + "It is used to indicate the layer rate of network element when + retrieving the pm parameters supported"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang new file mode 100644 index 000000000..1ba85e184 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-resource-pm@2024-07-07.yang @@ -0,0 +1,701 @@ +module ietf-resource-pm { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-resource-pm"; + prefix rpm; + + import ietf-yang-types { + prefix "yang"; + } + import ietf-resource-pm-types { + prefix "rpm-types"; + } + + organization + "IETF CCAMP Working Group"; + + contact + "WG Web: + WG List: + + Editor: Chaode Yu + + + Editor: Fabio Peruzzini + + + Editor: Yanlei Zheng + + + Editor: Victor Lopez + + + Editor: Italo Busi + + + Editor: Aihua Guo + + + Editor: Xing Zhao + + + Editor: Mingshuang Jin + "; + + description + "This module defines a model for resource performance + monitoring. + + 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 2024-07-07 { + description "Initial revision."; + } + + container performance-monitoring { + description + "the root node."; + + uses resource-info-grouping; + uses tca-management-grouping; + uses monitoring-tasks-grouping; + } + + grouping resource-info-grouping { + description + "grouping of resources' PM capabilities related information"; + + container resources { + description + "resources' PM capabilities related information"; + + list resource-list { + description + "list of resource instances"; + key resource; + + leaf resource { + type union { + type instance-identifier { + require-instance false; + } + type yang:object-identifier; + type string; + type yang:uuid; + } + } + + leaf resource-type { + type identityref { + base rpm-types:resource-type; + } + config false; + description + "the type of resource, such as NE, board or port"; + } + + leaf holding-time { + description + "Contains the time period in hours within which 24h PM + data records and 15min PM data records may be retrieved. + If the domain controller does not store PM data it is the + time supported in the NE"; + config false; + type uint8; + units "hour"; + } + + leaf-list indicator-name { + type string; + config false; + } + + leaf-list sub-resources { + description + "the identifier of the performace monitoring point of this + resource. If the resource is a NE, the sub-resource should + be termination point. If the resource is a termination + point contained in this NE, the sub-resource should be the + logic channel on this TP"; + config false; + type leafref { + path "../rpm:resource"; + } + } + } +} + +} + + grouping monitoring-tasks-grouping { + description + "grouping of performance monitoring task"; + container monitor-tasks { + description + "Information of PM tasks"; + + list monitor-task { + description + "monitoring task list"; + + key task-id; + uses task-instance-grouping; + } + } + } + + grouping task-instance-grouping { + description + "grouping of performance monitoring task. In this monitoring + task, the client can specify a resource to run a monitor task + and what kind of performance data need to be monitored."; + + leaf task-id { + description + "identifier of the performance task"; + type yang:uuid; + } + + leaf resource { + description + "the identifier of network resource on which the performance + monitoring task is running"; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + + leaf resource-type { + description + "the type of resource, such as NE, board or port"; + + config false; + type identityref { + base rpm-types:resource-type; + } + } + + leaf task-name { + description + "the name of monitoring task"; + + type string; + } + + leaf admin-status { + description + "it is used to control enbling/disabling PM task"; + + type enumeration { + enum enabled { + description + "it is used to enable the pm task, if the task is enabled, + the task-staus should be running"; + } + + enum disabled { + description + "it is used to disenable the pm task, if the task is + disabled, the task-staus should be suspended"; + } + } + } + + leaf task-status { + config false; + description + "the status of monitoring task."; + + type enumeration { + enum running; + + enum suspended; + + enum abnormal; + } + } + + uses task-configuration-grouping; + } + + grouping task-configuration-grouping { + description + "grouping of pm task configuration"; + + container task-cfg { + description + "Configuration of the monitoring task"; + + leaf period { + description + "it is used to indicate the interval as per monitoring + task"; + type identityref { + base rpm-types:period; + } + } + + container indicators { + description + "performance indicators"; + + list indicator { + description + "list of PM indicators to be monitored"; + + key indicator-name; + uses indicator-grouping; + } + } + } + } + + grouping indicator-grouping { + description + "grouping of a monitoring indicator instance"; + + leaf indicator-name { + description + "performance indicator's name"; + + type string; + } + + leaf indicator-value-unit { + description + "unit of indicator value"; + + type string; + } + } + + grouping tca-management-grouping { + description + "grouping of configuration and management for Threshol Crossing + Alert"; + + container tca-management { + description + "configuration and management for Threshol Crossing Alert"; + + container profiles { + description + "the TCA profile in the whole network"; + + list profile { + description + "List of TCA profile instances"; + + key "profile-id"; + uses tca-profile-grouping; + } + } + + container tcas { + description + "TCA configuration on the network resources."; + + list tca { + description + "List of TCA configuration instances"; + + key "resource"; + + leaf resource { + description + "the identifier of network resource on which threshold + is configured for TCA purpose"; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + + leaf resource-type { + description + "the type of resource, such as NE, board or termination + point"; + + config false; + + type identityref { + base rpm-types:resource-type; + } + } + + leaf admin-status { + description + "it is used to control the validity of threshold"; + type enumeration { + enum enabled { + description + "if the admin-status of TCA configuration is enabled, + the threshold is effective"; + } + + enum disabled { + description + "if the admin-status of TCA configuration is + disabled, the threshold is not effective"; + } + } + } + + uses tca-grouping; + } + } + } + } + + grouping tca-profile-grouping { + description + "grouping of TCA profile instance"; + + leaf profile-id { + description + "identifier of threshold crossing alerrt profile"; + + type yang:uuid; + } + + leaf profile-name { + description + "Name of the threshold crossing alerrt profile"; + + type string; + } + + container tca-cfg { + description + "detailed TCA configuration in a profile"; + + list tca-indicator { + description + "list of TCA configuration."; + + key "indicator-name threshold-type period severity"; + uses tca-indicator-grouping; + } + } + } + + grouping tca-indicator-grouping { + description + "grouping for detail TCA configuration"; + leaf indicator-name { + type string; + description + "name of the indicator"; + } + + leaf indicator-value { + mandatory true; + type string; + description + "treshold value of the indicator"; + } + + leaf indicator-value-unit { + mandatory true; + type string; + description + "unit of indicator's value"; + } + + leaf threshold-type { + description + "it is used to indicate the trigger/clearing condition of + alert upon the threshold"; + + type enumeration { + enum upperbound-trigger { + description + "If the performace data exceeds this threshold value, + a TCA will be triggered"; + } + enum lowerbound-trigger { + description + "if the performace data is lower than this threshold + value, a TCA will be triggered"; + } + enum upperbound-clear { + description + "If the performance data is not longer bigger than this + threshold value, the TCA triggered before will be cleared + by system automatically"; + } + enum lowerbound-clear { + description + "If the performance data is not longer lower than this + threshold value, the TCA triggered before will be cleared + by system automatically"; + } + } + } + + leaf period { + description + "it is used to indicate the interval as per monitoring task"; + + type identityref { + base rpm-types:period; + } + } + + leaf severity { + description + "it is used to indicate what severity level of alert would be + triggered if not confirms to the threashold"; + + type identityref { + base rpm-types:severity; + } + } + } + + grouping tca-grouping { + description + "grouping of TCA configuration"; + + container applied-profiles { + description + "Information of applied TCA profiles on this resource"; + + list profile { + description + "list of applied TCA profile"; + + key "profile-id"; + + leaf profile-id { + description + "identifier of the applied TCA profile"; + + type leafref { + path "../../../../../rpm:profiles/rpm:profile" + + "/rpm:profile-id"; + } + } + } + } + container tca-cfg { + description + "detailed configuration of TCA"; + list tca-indicator { + description + "list of tca indicator configuration"; + key "indicator-name threshold-type period severity"; + uses tca-indicator-grouping; + } + } + } + + rpc get-pm-data { + input { + + leaf-list resources { + description + "the identifier of resources from which performace + data is collected"; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + + leaf is-requesting-history-data { + description + "true indicate this is a request for historic data, then start-time and end-time should be assigned"; + type boolean; + } + leaf start-time { + description + "the starttime of performance data needed to be retrieved"; + + type yang:date-and-time; + } + + leaf end-time { + description + "the endtime of performance data needed to be retrieved"; + + type yang:date-and-time; + } + } + output { + container pm-data { + description + "result of historic performance data"; + + list pm-data-list { + description + "list of historic performance data"; + + key resource; + uses pm-data-instance-grouping; + } + } + } + } + + rpc clear-performance-monitoring-data { + description + "This operation clears (reset) the PM registers for a list of + Measurement Points. Within the request for each Measurement + Point, it is possible to specify the granularity (15min, 24hr, + NA) and location (nearEnd and/or farEnd and/or bidirectional) + for the PM registers that are to be reset."; + input { + + leaf-list resources { + description + "the identifier of measurement points to clear PM data"; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + } + output { + leaf-list failed-resources { + description + "the identifier of measurement points which are failed to + clear PM data. An empty list indicates that the total + request was successful."; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + } + } + + rpc get-profile-associated-resources { + input { + + leaf profile-id { + description + "the identifier of profile which the client want to + retrieve"; + + type leafref { + path "/rpm:performance-monitoring/rpm:tca-management" + + "/rpm:profiles/rpm:profile/rpm:profile-id"; + } + } + + } + output { + leaf-list resource-list { + description + "Provides the set of Resources associated with the profile + provided."; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + } + } + + grouping pm-data-instance-grouping { + description + "grouping for common attributes of performance data"; + + leaf resource { + description + "the identifier of network resource which is monitored."; + + type leafref { + path "/rpm:performance-monitoring/rpm:resources" + + "/rpm:resource-list/rpm:resource"; + } + } + + leaf-list task-id { + description + "the task id list of the tasks from which the pm data is retrieved"; + + type yang:uuid; + } + leaf collect-time { + description + "the time of this data is collected"; + + type yang:date-and-time; + } + + leaf resource-type { + description + "the type of resource, such as NE, board or port"; + + type identityref { + base rpm-types:resource-type; + } + } + + container indicator-data { + description + "grouping for historic performance data"; + + list indicator-data-list { + description + "list of historic performance data"; + key indicator-name; + + uses indicator-data-instance-grouping; + } + } + } + grouping indicator-data-instance-grouping { + description + "grouping for a performance data"; + + leaf indicator-name { + description + "name of performance data indicator"; + + type string; + } + + leaf indicator-value { + description + "value of performance data"; + + type string; + } + + leaf indicator-value-unit { + description + "unit of performance data value"; + + type string; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-07-08.yang similarity index 73% rename from experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-07-08.yang index c19225a74..d72ab7d83 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-07-08.yang @@ -9,24 +9,12 @@ module ietf-restconf-client { "RFC 6991: Common YANG Data Types"; } - import ietf-tcp-client { - prefix tcpc; - reference - "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; - } - import ietf-tcp-server { prefix tcps; reference "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers"; } - import ietf-tls-client { - prefix tlsc; - reference - "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; - } - import ietf-http-client { prefix httpc; reference @@ -45,7 +33,7 @@ module ietf-restconf-client { "This module contains a collection of YANG definitions for configuring RESTCONF clients. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -58,7 +46,6 @@ module ietf-restconf-client { This version of this YANG module is part of RFC IIII (https://www.rfc-editor.org/info/rfcIIII); 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 @@ -66,7 +53,7 @@ module ietf-restconf-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-07-08 { description "Initial version"; reference @@ -89,8 +76,9 @@ module ietf-restconf-client { description "The 'http-listen' feature indicates that the RESTCONF client supports opening a port to listen for incoming RESTCONF - server call-home connections. This feature exists as not - all RESTCONF clients may support RESTCONF call home."; + server call-home connections using HTTP. This feature + exists as not all RESTCONF clients may support RESTCONF + call home."; reference "RFC 8071: NETCONF Call Home and RESTCONF Call Home"; } @@ -99,8 +87,9 @@ module ietf-restconf-client { description "The 'https-listen' feature indicates that the RESTCONF client supports opening a port to listen for incoming RESTCONF - server call-home connections. This feature exists as not - all RESTCONF clients may support RESTCONF call home."; + server call-home connections using HTTPS. This feature + exists as not all RESTCONF clients may support RESTCONF + call home."; reference "RFC 8071: NETCONF Call Home and RESTCONF Call Home"; } @@ -119,82 +108,22 @@ module ietf-restconf-client { // Groupings - grouping restconf-client-grouping { - description - "A reusable grouping for configuring a RESTCONF client - without any consideration for how underlying transport - sessions are established. - - This grouping currently does not define any nodes. It - exists only so the model can be consistent with other - 'client-server' models."; - } - grouping restconf-client-initiate-stack-grouping { description "A reusable grouping for configuring a RESTCONF client - 'initiate' protocol stack for a single connection."; - - choice transport { - mandatory true; + 'initiate' protocol stack for a single outbound connection."; + container http-client-parameters { description - "Selects between available transports. This is a - 'choice' statement so as to support additional - transport options to be augmented in."; - case https { - if-feature "https-initiate"; - container https { - must 'tls-client-parameters/client-identity - or http-client-parameters/client-identity'; - description - "Specifies HTTPS-specific transport - configuration."; - container tcp-client-parameters { - description - "A wrapper around the TCP client parameters - to avoid name collisions."; - uses tcpc:tcp-client-grouping { - refine "remote-port" { - default "443"; - description - "The RESTCONF client will attempt to - connect to the IANA-assigned well-known - port value for 'https' (443) if no value - is specified."; - } - } - } - container tls-client-parameters { - description - "A wrapper around the TLS client parameters - to avoid name collisions."; - uses tlsc:tls-client-grouping; - } - container http-client-parameters { - description - "A wrapper around the HTTP client parameters - to avoid name collisions."; - uses httpc:http-client-grouping; - } - container restconf-client-parameters { - description - "A wrapper around the RESTCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; - uses rcc:restconf-client-grouping; - } - } - } + "HTTP-level client parameters to listen + for RESTCONF over HTTPS connections."; + uses httpc:http-client-grouping; } } // restconf-client-initiate-stack-grouping grouping restconf-client-listen-stack-grouping { description "A reusable grouping for configuring a RESTCONF client - 'listen' protocol stack for a single connection. The + 'listen' protocol stack for listening on a single port. The 'listen' stack supports call home connections, as described in RFC 8071"; reference @@ -202,15 +131,13 @@ module ietf-restconf-client { choice transport { mandatory true; description - "Selects between available transports. This is a - 'choice' statement so as to support additional - transport options to be augmented in."; + "Selects between available transports."; case http { if-feature "http-listen"; container http { description - "HTTP-specific listening configuration for inbound - connections. + "TCP, HTTP, and RESTCONF configuration to + listen for RESTCONF over HTTPS connections. This transport option is made available to support deployments where the TLS connections are terminated @@ -218,10 +145,10 @@ module ietf-restconf-client { the client."; container tcp-server-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level server parameters to listen for + RESTCONF over HTTP connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "4336"; description "The RESTCONF client will listen on the IANA- @@ -232,36 +159,24 @@ module ietf-restconf-client { } container http-client-parameters { description - "A wrapper around the HTTP client parameters - to avoid name collisions."; + "HTTP-level client parameters to listen for + RESTCONF over HTTP connections."; uses httpc:http-client-grouping; } - container restconf-client-parameters { - description - "A wrapper around the RESTCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; - uses rcc:restconf-client-grouping; - } } } case https { if-feature "https-listen"; container https { - must 'tls-client-parameters/client-identity - or http-client-parameters/client-identity'; description - "HTTPS-specific listening configuration for inbound - connections."; + "TCP, TLS, HTTP, and RESTCONF configuration to + listen for RESTCONF over HTTPS connections."; container tcp-server-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level server parameters to listen + for RESTCONF over HTTPS connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "4336"; description "The RESTCONF client will listen on the IANA- @@ -270,28 +185,12 @@ module ietf-restconf-client { } } } - container tls-client-parameters { - description - "A wrapper around the TLS client parameters - to avoid name collisions."; - uses tlsc:tls-client-grouping; - } container http-client-parameters { description - "A wrapper around the HTTP client parameters - to avoid name collisions."; + "HTTP-level client parameters to listen + for RESTCONF over HTTPS connections."; uses httpc:http-client-grouping; } - container restconf-client-parameters { - description - "A wrapper around the RESTCONF client parameters - to avoid name collisions. - - This container does not define any nodes. It - exists as a potential augmentation target by - other modules."; - uses rcc:restconf-client-grouping; - } } } } @@ -324,7 +223,7 @@ module ietf-restconf-client { } container endpoints { description - "Container for the list of endpoints."; + "Container for a list of endpoints."; list endpoint { key "name"; min-elements 1; @@ -502,6 +401,7 @@ module ietf-restconf-client { } } } // initiate + container listen { if-feature "http-listen or https-listen"; presence @@ -522,19 +422,23 @@ module ietf-restconf-client { the server will never drop a session because it is idle."; } - list endpoint { - key "name"; - min-elements 1; + container endpoints { description - "List of endpoints to listen for RESTCONF connections."; - leaf name { - type string; + "Container for a list of endpoints."; + list endpoint { + key "name"; + min-elements 1; description - "An arbitrary name for the RESTCONF listen endpoint."; + "List of endpoints to listen for RESTCONF connections."; + leaf name { + type string; + description + "An arbitrary name for the RESTCONF listen endpoint."; + } + uses restconf-client-listen-stack-grouping; } - uses restconf-client-listen-stack-grouping; } - } + } // listen } // restconf-client-app-grouping // Protocol accessible node for servers that implement this module. diff --git a/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-07-08.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-07-08.yang index 407f58c56..d2be2f2d1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-07-08.yang @@ -57,7 +57,7 @@ module ietf-restconf-server { "This module contains a collection of YANG definitions for configuring RESTCONF servers. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -78,7 +78,7 @@ module ietf-restconf-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-07-08 { description "Initial version"; reference @@ -171,19 +171,22 @@ module ietf-restconf-server { grouping restconf-server-listen-stack-grouping { description "A reusable grouping for configuring a RESTCONF server - 'listen' protocol stack for a single connection."; + 'listen' protocol stack for listening on a single port."; choice transport { mandatory true; description - "Selects between available transports. This is a - 'choice' statement so as to support additional - transport options to be augmented in."; + "Selects between available transports."; case http { if-feature "http-listen"; container http { description "Configures RESTCONF server stack assuming that - TLS-termination is handled externally."; + TLS-termination is handled externally. + + How a RESTCONF-server identifies RESTCONF-clients + authenticating using a TLS-level client-certificate + with external TLS termination is out of scope of + this document."; container external-endpoint { presence "Identifies that an external endpoint has been @@ -193,7 +196,7 @@ module ietf-restconf-server { description "Identifies contact information for the external system that terminates connections before passing - them thru to this server (e.g., a network address + them through to this server (e.g., a network address translator or a load balancer). These values have no effect on the local operation of this server, but may be used by the application when needing to @@ -202,10 +205,10 @@ module ietf-restconf-server { type inet:host; mandatory true; description - "The IP address or hostname of the external system - that terminates incoming RESTCONF client - connections before forwarding them to this - server."; + "The IP address or hostname of the external + system that terminates incoming RESTCONF + client connections before forwarding them + to this server."; } leaf port { type inet:port-number; @@ -220,10 +223,10 @@ module ietf-restconf-server { } container tcp-server-parameters { description - "A wrapper around the TCP server parameters - to avoid name collisions."; + "TCP-level server parameters to listen for + RESTCONF over HTTP connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "80"; description "The RESTCONF server will listen on the IANA- @@ -234,14 +237,14 @@ module ietf-restconf-server { } container http-server-parameters { description - "A wrapper around the HTTP server parameters - to avoid name collisions."; + "HTTP-level server parameters to listen + for RESTCONF over HTTP connections."; uses https:http-server-grouping; } container restconf-server-parameters { description - "A wrapper around the RESTCONF server parameters - to avoid name collisions."; + "RESTCONF-level server parameters to listen + for RESTCONF over HTTP connections."; uses rcs:restconf-server-grouping; } } @@ -256,10 +259,10 @@ module ietf-restconf-server { server)."; container tcp-server-parameters { description - "A wrapper around the TCP server parameters - to avoid name collisions."; + "TCP-level server parameters to listen for + RESTCONF over HTTPS connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "443"; description "The RESTCONF server will listen on the IANA- @@ -270,20 +273,20 @@ module ietf-restconf-server { } container tls-server-parameters { description - "A wrapper around the TLS server parameters - to avoid name collisions."; + "TLS-level server parameters to listen + for RESTCONF over HTTPS connections."; uses tlss:tls-server-grouping; } container http-server-parameters { description - "A wrapper around the HTTP server parameters - to avoid name collisions."; + "HTTP-level server parameters to listen + for RESTCONF over HTTPS connections."; uses https:http-server-grouping; } container restconf-server-parameters { description - "A wrapper around the RESTCONF server parameters - to avoid name collisions."; + "RESTCONF-level server parameters to listen + for RESTCONF over HTTPS connections."; uses rcs:restconf-server-grouping; } } @@ -294,23 +297,22 @@ module ietf-restconf-server { grouping restconf-server-callhome-stack-grouping { description "A reusable grouping for configuring a RESTCONF server - 'call-home' protocol stack, for a single connection."; + 'call-home' protocol stack, for a single outbound + connection."; choice transport { mandatory true; description - "Selects between available transports. This is a - 'choice' statement so as to support additional - transport options to be augmented in."; + "Selects between available transports."; case https { - if-feature "https-listen"; + if-feature "https-call-home"; container https { description "Configures RESTCONF server stack assuming that TLS-termination is handled internally."; container tcp-client-parameters { description - "A wrapper around the TCP client parameters - to avoid name collisions."; + "TCP-level client parameters to initiate a + RESTCONF over HTTPS Call Home connection."; uses tcpc:tcp-client-grouping { refine "remote-port" { default "4336"; @@ -324,20 +326,20 @@ module ietf-restconf-server { } container tls-server-parameters { description - "A wrapper around the TLS server parameters - to avoid name collisions."; + "TLS-level server parameters to initiate a + RESTCONF over HTTPS Call Home connection."; uses tlss:tls-server-grouping; } container http-server-parameters { description - "A wrapper around the HTTP server parameters - to avoid name collisions."; + "HTTP-level server parameters to initiate a + RESTCONF over HTTPS Call Home connection."; uses https:http-server-grouping; } container restconf-server-parameters { description - "A wrapper around the RESTCONF server parameters - to avoid name collisions."; + "RESTCONF-level server parameters to initiate + a RESTCONF over HTTPS Call Home connection."; uses rcs:restconf-server-grouping; } } @@ -360,17 +362,21 @@ module ietf-restconf-server { description "Configures the RESTCONF server to listen for RESTCONF client connections."; - list endpoint { - key "name"; - min-elements 1; + container endpoints { description - "List of endpoints to listen for RESTCONF connections."; - leaf name { - type string; + "Container for a list of endpoints."; + list endpoint { + key "name"; + min-elements 1; description - "An arbitrary name for the RESTCONF listen endpoint."; + "List of endpoints to listen for RESTCONF connections."; + leaf name { + type string; + description + "An arbitrary name for the RESTCONF listen endpoint."; + } + uses restconf-server-listen-stack-grouping; } - uses restconf-server-listen-stack-grouping; } } container call-home { @@ -574,6 +580,7 @@ module ietf-restconf-server { } // restconf-client } // call-home } // restconf-server-app-grouping + // Protocol accessible node for servers that implement this module. container restconf-server { if-feature central-restconf-server-supported; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rift@2023-10-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-rift@2024-07-23.yang similarity index 56% rename from experimental/ietf-extracted-YANG-modules/ietf-rift@2023-10-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-rift@2024-07-23.yang index 3d010889a..3c03fee23 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-rift@2023-10-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-rift@2024-07-23.yang @@ -72,6 +72,7 @@ module ietf-rift { // RFC Ed.: replace XXXX with actual RFC number and remove // this note + description "This YANG module defines the generic configuration and operational state for the RIFT protocol common to all @@ -91,7 +92,7 @@ module ietf-rift { capitals, as shown here. Copyright (c) 2022 IETF Trust and the persons identified - as authors of the code. All rights reserved. + 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 @@ -103,7 +104,7 @@ module ietf-rift { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-10-16 { + revision 2024-07-23 { description "Initial revision."; reference @@ -118,25 +119,33 @@ module ietf-rift { feature nonce-delta-adjust { description "Support weak nonce delta adjusting which is used in - security in section 4.4."; + security."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9."; } feature label-switching { description - "Support label switching for instance distinguishing in - section 4.3.7."; + "Support label switching for instance distinguishing."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.8.8"; } - feature tie-security { description - "Support security function described in section 4.4.3 - for the TIE exchange."; + "Support security function for the TIE exchange."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.3."; + } + + feature link-security { + description + "Support security function of link."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9."; } typedef system-id { @@ -155,7 +164,20 @@ module ietf-rift { } default "0"; description - "The value of node level."; + "The value of node level. + Clos and Fat Tree networks are topologically partially + ordered graphs and 'level' denotes the set of nodes at + the same height in such a network. + Nodes at the top level (i.e., ToF) are at the level with + the highest value and count down to the nodes + at the bottom level (i.e., leaf) with the lowest value. + In RIFT, Level 0 always indicates that a node is a leaf, + but does not have to be level 0. + Level values can be configured manually or automatically + derived."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.7."; } typedef ieee802-1as-timestamp { @@ -163,9 +185,9 @@ module ietf-rift { units "seconds"; description "Timestamp per IEEE802.1AS. It is advertised with prefix - to achieve mobility as described in section 4.3.3."; + to achieve mobility."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. Section 6.8.4. IEEE8021AS: Timing and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks"; } @@ -202,15 +224,21 @@ module ietf-rift { enum "leaf-only" { description "The node will never leave the - 'bottom of the hierarchy'."; + 'bottom of the hierarchy'. + When this value is set, the 'configured-level' + is the minimum level value."; } enum "leaf-only-and-leaf-2-leaf-procedures" { description - "This means leaf to leaf."; + "This means leaf to leaf. + When this value is set, the 'configured-level' + is the minimum level value."; } enum "top-of-fabric" { description - "The node is 'top of fabric'."; + "The node is 'top of fabric'. + When this value is set, the 'configured-level' + is the maximum level value."; } } description @@ -243,7 +271,63 @@ module ietf-rift { "The supported capabilities of this node."; } + grouping tie-type { + leaf tie-type { + type enumeration { + enum "illegal" { + description + "The illegal TIE."; + } + enum "min-tie-type" { + description + "The minimum TIE."; + } + enum "node" { + description + "The node TIE."; + } + enum "prefix" { + description + "The prefix TIE."; + } + enum "positive-disaggregation-prefix" { + description + "The positive disaggregation prefix TIE."; + } + enum "negative-disaggregation-prefix" { + description + "The negative disaggregation prefix TIE."; + } + enum "pgp-prefix" { + description + "The policy guide prefix TIE."; + } + enum "key-value" { + description + "The key value TIE."; + } + enum "external-prefix" { + description + "The external prefix TIE."; + } + enum "positive-external-disaggregation-prefix" { + description + "The positive external disaggregation prefix TIE."; + } + enum "max-tie-type" { + description + "The maximum TIE."; + } + } + description + "The types of TIE."; + } + description + "The types of TIE"; + } + grouping prefix-attribute { + leaf metric { type uint32; description @@ -275,11 +359,11 @@ module ietf-rift { Neighbor Discovery"; } description - "As described in section 4.3.3, the prefix - sequence attribute which can be advertised + "The prefix sequence attribute which can be advertised for mobility."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.8.4."; } description "The monotonic clock for mobile addresses."; @@ -289,11 +373,11 @@ module ietf-rift { description "If the value is set to 'true', it indicates if the interface is a node loopback. - According to section 4.3.10, the node's loopback - address can be injected into North and South - Prefix TIEs for node reachability."; + The node's loopback address can be injected into + North and South Prefix TIEs for node reachability."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.4."; } leaf directly-attached { type boolean; @@ -309,10 +393,49 @@ module ietf-rift { i.e. interface addresses this can describe which link the address belongs to."; } + leaf label { + type uint32; + description + "Per prefix significant label."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + } description "The attributes of the prefix."; } + grouping security { + leaf security-type { + type enumeration { + enum public { + description + "When using PKI (Public Key Infrastructure), + the public and shared key can be used to verify + the original packet exchanged with the neighbor."; + } + enum private { + description + "When using PKI (Public Key Infrastructure), + the private key can be used by the Security + fingerprint originating node to create the signature."; + } + } + description + "The security type."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9."; + } + leaf shared { + type boolean; + description + "When using PKI (Public Key Infrastructure), + if the key is shared."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9."; + } + choice auth-key-chain { description "Key chain or explicit key parameter specification"; @@ -321,14 +444,11 @@ module ietf-rift { type key-chain:key-chain-ref; description "key-chain name."; + reference + "RFC 8177: YANG Data Model for Key Chains"; } } case auth-key-explicit { - leaf key-id { - type uint32; - description - "Key Identifier"; - } leaf key { type string; description @@ -341,6 +461,8 @@ module ietf-rift { } description "Cryptographic algorithm associated with key."; + reference + "RFC 8177: YANG Data Model for Key Chains"; } } } @@ -349,13 +471,7 @@ module ietf-rift { } grouping base-node-info { - leaf name { - type string; - description - "The name of this node. It won't be used as the key of - node, just used for description."; - } - leaf level { + leaf node-level { type level; config false; description @@ -368,6 +484,11 @@ module ietf-rift { "Each node is identified via a system-id which is 64 bits wide."; } + leaf fabric-id { + type uint16; + description + "The optional id of the fabric."; + } leaf pod { type uint32 { range "1..max"; @@ -375,17 +496,18 @@ module ietf-rift { description "The identifier of the Point of Delivery (PoD). A PoD is the self-contained vertical slice of a - Clos or Fat Tree network containing normally only - level 0 and level 1 nodes. It communicates with nodes + Clos or Fat Tree network containing normally only leaf + nodes (level 0) and their immediate northbound + neighbors. It communicates with nodes in other PoDs via the spine. Making this leaf unspecified indicates that the PoD is 'undefined'."; } description - "The base information of a node."; + "The base information of a node."; } // base-node-info grouping link-capabilities { - leaf bfd { + leaf bfd-capable { type boolean; default "true"; description @@ -428,27 +550,38 @@ module ietf-rift { } grouping lie-elements { + leaf label { + if-feature label-switching; + type uint32; + description + "A locally significant, downstream assigned by + the neighbor, interface specific label which may + be advertised in its LIEs."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.8.8."; + } leaf you-are-flood-repeater { type boolean; description - "If the neighbor on this link is flooding repeater - described in section 4.2.3.9. When this value is - set to 'true', the value can be carried in exchanged - packet."; + "If the neighbor on this link is flooding repeater. + When this value is set to 'true', the value can be + carried in exchanged packet."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.3.9."; } leaf not-a-ztp-offer { type boolean; description - "As described in section 4.2.7. When this value is - set to 'true', the flag can be carried in the LIE - packet. When the value received in the LIE from - neighbor, it indicates the level on the LIE MUST - NOT be used to derive a ZTP level by the receiving - node."; + "When this value is set to 'true', the flag can be + carried in the LIE packet. When the value received + in the LIE from neighbor, it indicates the level on + the LIE MUST NOT be used to derive a ZTP level by + the receiving node."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.7."; } leaf you-are-sending-too-quickly { type boolean; @@ -504,8 +637,9 @@ module ietf-rift { } leaf bandwidth { type uint32; + units "bits"; description - "Total bits bandwith to neighbor, this will be + "Total bandwith to the neighbor, this will be normally sum of the bandwidths of all the parallel links."; } @@ -519,10 +653,16 @@ module ietf-rift { } // neighbor-node grouping neighbor { - leaf protocol-version { + leaf proto-major-ver { + type uint8; + description + "Represents protocol encoding schema major version of + this neighbor."; + } + leaf proto-minor-ver { type uint16; description - "Represents the protocol encoding schema version of + "Represents protocol encoding schema minor version of this neighbor."; } container sent-offer { @@ -569,6 +709,10 @@ module ietf-rift { the level value is not considered to be used."; } leaf removal-reason { + when "../removed-from-consideration='true'" { + description + "The level value is not considered to be used."; + } type string; description "The reason why this value is not considered to @@ -590,33 +734,48 @@ module ietf-rift { description "The attributes received from this neighbor."; } - leaf tx-flood-port { + leaf nbr-flood-port { type inet:port-number; default "915"; description "The UDP port which is used by the neighbor to flood TIEs."; } - leaf bfd-up { - type boolean; + leaf tx-flood-port { + type inet:port-number; + default "915"; description - "If the value is set to 'true', it means that the link - is protected by established BFD session."; + "The UDP port which is used by the node to flood + TIEs to the neighbor."; + } + leaf bfd-state { + type enumeration { + enum up { + description + "The link is protected by established BFD session."; + } + enum down { + description + "The link is not protected by established BFD session."; + } + } + description + "The link is protected by established BFD session or not."; } leaf outer-security-key-id { type uint8; description - "As described in section 4.4.3, the received security - key id from the neighbor."; + "The received security key id from the neighbor."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.3."; } description "The neighbor information."; } // neighbor - grouping direction-type { - leaf direction-type { + grouping link-direction-type { + leaf link-direction-type { type enumeration { enum illegal { description @@ -645,55 +804,71 @@ module ietf-rift { } description "The type of a link."; - } // direction-type + } // link-direction-type - grouping tie-header { - uses direction-type; - leaf originator { - type system-id; - description - "The originator's system-id of this TIE."; - } - - leaf tie-type { + grouping tie-direction-type { + leaf tie-direction-type { type enumeration { - enum "node" { - description - "The node TIE."; - } - enum "prefix" { - description - "The prefix TIE."; - } - enum "positive-disaggregation-prefix" { + enum illegal { description - "The positive disaggregation prefix TIE."; + "Illegal direction."; } - enum "negative-disaggregation-prefix" { + enum south { description - "The negative disaggregation prefix TIE."; + "The direction to a node one level down."; } - enum "pgp-prefix" { + enum north { description - "The policy guide prefix TIE."; + "The direction to a node one level up."; } - enum "key-value" { + enum max { description - "The key value TIE."; + "The max value of direction."; } - enum "external-prefix" { + } + config false; + description + "The direction type of a TIE."; + } + description + "The direction type of a TIE."; + } // tie-direction-type + + grouping spf-direction-type { + leaf spf-direction-type { + type enumeration { + enum n-spf { description - "The external prefix TIE."; + "A reachability calculation that is progressing + northbound, as example SPF that is using South + Node TIEs only. Normally it progresses a single + hop only and installs default routes."; } - enum "positive-external-disaggregation-prefix" { + enum s-spf { description - "The positive external disaggregation prefix TIE."; + "A reachability calculation that is progressing + southbound, as example SPF that is using North + Node TIEs only."; } } + config false; description - "The types of TIE."; + "The direction type of a SPF calculation."; + } + description + "The direction type of a SPF calculation."; + } // spf-direction-type + + grouping tie-header { + uses tie-direction-type; + leaf originator { + type system-id; + description + "The originator's system-id of this TIE."; } + uses tie-type; + leaf tie-number { type uint32; description @@ -703,10 +878,15 @@ module ietf-rift { leaf seq { type uint64; description - "As described in section 4.2.3.1, the sequence number - of a TIE."; + "The sequence number of a TIE."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.3.1."; + } + leaf size { + type uint32; + description + "The size of this TIE."; } leaf origination-time { type ieee802-1as-timestamp; @@ -717,15 +897,21 @@ module ietf-rift { } leaf origination-lifetime { type uint32; + units seconds; description "Original lifetime when the TIE was generated. This can be used on fabrics with synchronized clock to prevent lifetime modification attacks."; } + leaf remaining-lifetime { + type uint32; + units seconds; + description + "The remaining lifetime of the TIE."; + } description - "TIE is the acronym for 'Topology Information Element'. - TIEs are exchanged between RIFT nodes to describe parts + "TIEs are exchanged between RIFT nodes to describe parts of a network such as links and address prefixes. This is the TIE header information."; } // tie-header @@ -743,21 +929,31 @@ module ietf-rift { description "RIFT ( Routing in Fat Trees ) YANG model."; - container rift { - description - "RIFT configuration and state data."; + list rift { + key "name"; + leaf name { + type string; + description + "The RIFT instance's name."; + } uses base-node-info; + leaf fabric-prefix { + type inet:ip-prefix; + description + "The configured fabric prefix."; + } + leaf fabric-prefix-advertise { + type boolean; + description + "Whether the fabric-prefix can be advertised or not. + If the value is set to 'true', it means that + the fabric-prefix can be advertised to neighbors."; + } leaf configured-level { type level; description - "The configured level value of this node. - If the 'hierarchy-indications' is set to 'leaf-only' - or 'leaf-only-and-leaf-2-leaf-procedures', this - value means the leaf level. - And the combination of this value and - 'hierarchy-indications' can also be used to indicate - the maximum level value of 'top-of-fabric-level'."; + "The configured level value of this node."; } container overload { description @@ -806,22 +1002,21 @@ module ietf-rift { description "Represents protocol encoding schema minor version."; } - uses hierarchy-indications; - leaf flood-reduction { - type boolean; - description - "If the node supports flood reduction function defined - in section 4.2.3.8. If this value is set to 'true', - it means that the flood reduction function is - enabled."; - reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; - } - leaf nonce-increasing-interval { - type uint16; - units seconds; + + container node-capabilities { + uses hierarchy-indications; + leaf flood-reduction { + type boolean; + description + "If the node supports flood reduction function. + If this value is set to 'true', it means that + the flood reduction function is enabled."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.3.8."; + } description - "The configurable nonce increasing interval."; + "The node's capabilities."; } leaf maximum-nonce-delta { if-feature nonce-delta-adjust; @@ -830,20 +1025,29 @@ module ietf-rift { } description "The configurable valid nonce delta value used for - security. It is used as vulnerability window defined - in section 4.4.7. + security. It is used as vulnerability window. If the nonces in received packet exceeds the range indicated by this value, the packet MUST be discarded."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.4."; } + + leaf nonce-increasing-interval { + type uint16; + units seconds; + description + "The configurable nonce increasing interval."; + } + leaf adjusted-lifetime { type rt-types:timer-value-seconds16; units seconds; description "The adjusted lifetime may affect the TIE stability. - Be careful to change this parameter."; + Be careful to change this parameter. + This should be prohibited less than 2*purge-lifetime."; } container rx-lie-multicast-addr { leaf ipv4 { @@ -857,6 +1061,7 @@ module ietf-rift { } leaf ipv6 { type inet:ipv6-address; + default "ff02::a1f7"; description "The configurable LIE receiving IPv6 multicast address. @@ -880,7 +1085,6 @@ module ietf-rift { } leaf ipv6 { type inet:ipv6-address; - default "FF02::A1F7"; description "The configurable LIE sending IPv6 multicast address. @@ -910,38 +1114,31 @@ module ietf-rift { and neighbor."; } - leaf rx-flood-port { - type inet:port-number; - default "915"; - description - "The UDP port which can be used to receive flooded - TIEs. The default port number is 915. The value can - be set to other value associated with different - RIFT instance."; - } - leaf global-holdtime { - type rt-types:timer-value-seconds16; - units seconds; - default "3"; - description - "The holding time of LIE."; - } leaf tide-generation-interval { type rt-types:timer-value-seconds16; units seconds; - default "5"; description "The TIDE generation interval."; } - container tie-security { + list tie-security { if-feature tie-security; + key "security-type"; uses security; description - "As described in section 4.4.3, the security function - used for the TIE exchange."; + "The security function used for the TIE exchange."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.3."; + } + + leaf inner-security-key-id { + type uint8; + description + "The inner security key id for received packet checking."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.3."; } leaf algorithm-type { type enumeration { @@ -957,16 +1154,32 @@ module ietf-rift { description "The possible algorithm types."; } - leaf instance-label { - if-feature label-switching; - type uint32; + container spf-statistics { + config false; + list spf-statistics { + key "spf-direction-type"; + description + "The statistics of SPF calculation."; + uses spf-direction-type; + + leaf start-time { + type yang:date-and-time; + description + "The last SPF calculation start time."; + } + leaf end-time { + type yang:date-and-time; + description + "The last SPF calculation end time."; + } + container triggering-tie { + uses tie-header; + description + "The TIE that triggered the SPF."; + } + } description - "As per section 4.3.7, a locally significant, - downstream assigned, interface specific label may - be advertised in its LIEs. This value can be used - to distinguish among multiple RIFT instances."; - reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "The statistics of SPF calculation."; } container hal { @@ -994,6 +1207,38 @@ module ietf-rift { "List of miscabled links."; } + leaf hop-limit { + type uint8 { + range "1 | 255"; + } + default "1"; + description + "The IPv4 TTL or IPv6 HL used for LIE and TIE + sending/receiving."; + } + + leaf maximum-clock-delta { + type ieee802-1as-timestamp; + description + "The maximum drift for the timestamp comparing."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.8.4."; + } + + leaf total-num-routes-north { + type uint32; + config false; + description + "The total number of north routes."; + } + leaf total-num-routes-sourth { + type uint32; + config false; + description + "The total number of sourth routes."; + } + list interfaces { key "name"; leaf link-id { @@ -1012,6 +1257,23 @@ module ietf-rift { description "The cost from this interface to the neighbor."; } + leaf rx-flood-port { + type inet:port-number; + default "915"; + description + "The UDP port which is used to receive flooded + TIEs. The default port number is 915. The value can + be set to other value associated with different + RIFT instance."; + } + leaf holdtime { + type rt-types:timer-value-seconds16; + units seconds; + default "3"; + description + "The holding time of LIE."; + } + uses address-families; container advertised-source-addr { uses addresses; @@ -1019,42 +1281,57 @@ module ietf-rift { "The address used in the advertised LIE and TIE packets."; } - uses direction-type; + + uses link-direction-type; + + leaf broadcast-capable { + type boolean; + description + "If LIE can be received by broadcast address."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.2."; + } + + leaf allow-horizontal-link { + type boolean; + description + "If this link allow horizontal link adjacency."; + } container security { - if-feature tie-security; + if-feature link-security; uses security; description - "As described in section 4.4.3, the security - function used for this interface."; + "The security function used for this interface."; reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees"; + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.3."; } leaf security-checking { type enumeration { enum "no-checking" { description - "The security envelop does not be checked."; + "The security envelope does not be checked."; } enum "permissive" { description - "The security envelop checking is permissive."; + "The security envelope checking is permissive."; } enum "loose" { description - "The security envelop checking is loose."; + "The security envelope checking is loose."; } enum "strict" { description - "The security envelop checking is strict."; + "The security envelope checking is strict."; } } description "The possible security checking types. Only one type can be set at the same time."; } - leaf was-the-last-lie-accepted { type boolean; config false; @@ -1084,27 +1361,30 @@ module ietf-rift { } leaf state { type enumeration { - enum "OneWay" { + enum "one-way" { description - "The initial state of neighbor."; + "The initial state."; } - enum "TwoWay" { + enum "two-way" { description - "This means leaf to leaf."; + "Valid LIE received but not a Three Way LIE."; } - enum "ThreeWay" { + enum "three-way" { description - "The node is 'top of fabric'."; + "Valid Three Way LIE received."; } - enum "Multiple-Neighbors-Wait" { + enum "multiple-neighbors-wait" { description - "The node is 'top of fabric'."; + "More than two neighbors found in the same link."; } } config false; mandatory true; description - "The hierarchy indications of this node."; + "The states of LIE finite state machine."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.2.1."; } leaf number-of-flaps { type uint32; @@ -1118,24 +1398,306 @@ module ietf-rift { description "Time duration in the current state."; } + leaf last-up { + type yang:date-and-time; + config false; + description + "The last time of up."; + } + leaf last-down { + type yang:date-and-time; + config false; + description + "The last time of down."; + } + + container interface-states-statistics { + config false; + leaf intf-states-startup-time { + type uint64; + description + "The states and statistics record startup time + of the interface."; + } + leaf num-of-nbrs-3way { + type uint32; + description + "The number of neighbors which state is in 3-way."; + } + leaf num-of-nbrs-down { + type uint32; + description + "The number of neighbors which state changed to down."; + } + list nbrs-down-reasons { + key "system-id"; + leaf system-id { + type system-id; + description + "The system-id of neighbor."; + } + leaf last-down-reason { + type string; + description + "The last down reason of the neighbor."; + } + description + "The down neighbors and reasons."; + } + + leaf num-local-level-change { + type uint32; + description + "The number of local level changes."; + } + + container intf-lie-states { + leaf last-lie-sent-time { + type uint64; + description + "The time of the last LIE sent."; + } + leaf last-lie-received-time { + type uint64; + description + "The time of the last LIE received."; + } + leaf num-lie-received { + type uint32; + description + "The number of received LIEs."; + } + leaf num-lie-transmitted { + type uint32; + description + "The number of transmitted LIEs."; + } + leaf num-lie-drop-invalid-envelope { + type uint32; + description + "The number of dropped LIEs due to + invalid outer envelope."; + } + leaf num-lie-drop-invalid-nonce { + type uint32; + description + "The number of dropped LIEs due to + invalid nonce."; + } + leaf num-lie-corrupted { + type uint32; + description + "The number of corrupted LIEs received."; + } + description + "The LIE's statistics of this interface."; + } + description + "The states and statistics of this interface."; + } + + container flood-repeater-statistics { + config false; + leaf flood-repeater { + type system-id; + description + "The system-id of the current flood repeater. + If this leaf has no value, that means the neighbor + is not flood repeater."; + } + leaf num-flood-repeater-changes { + type uint32; + description + "The number of flood repeater changes."; + } + leaf last-flood-repeater-change-reason { + type string; + description + "The reason of the last flood repeater change."; + } + description + "The flood repeater statistics."; + } + + list neighbors { + key "system-id"; + config false; + uses base-node-info; + uses neighbor; + leaf local-nonce { + type uint16; + description + "The exchanged local nonce with this neighbor."; + } + leaf remote-nonce { + type uint16; + description + "The exchanged remote nonce to this neighbor."; + } + + container tie-state-statistics { + leaf transmit-queue { + type uint32; + description + "The length of TIE transmit queue."; + } + container last-queued-tie { + uses tie-header; + leaf reason-queued { + type string; + description + "The queued reason of the last queued TIE."; + } + description + "The last queued TIE for transmit."; + } + + leaf num-received-ties { + type uint32; + description + "The number of TIEs received."; + } + leaf num-transmitted-ties { + type uint32; + description + "The number of TIEs transmitted."; + } + leaf num-retransmitted-ties { + type uint32; + description + "The number of TIEs retransmitted."; + } + leaf num-flood-reduced-ties { + type uint32; + description + "The number of TIEs that were flood reduced."; + } + leaf num-received-tides { + type uint32; + description + "The number of TIDEs received."; + } + leaf num-transmitted-tides { + type uint32; + description + "The number of TIDEs transmitted."; + } + leaf num-received-tires { + type uint32; + description + "The number of TIREs received."; + } + leaf num-transmitted-tires { + type uint32; + description + "The number of TIREs transmitted."; + } + leaf num-request-locally { + type uint32; + description + "The number of TIEs requested locally."; + } + leaf num-request-remotely { + type uint32; + description + "The number of TIEs requested by the neighbor."; + } + leaf num-same-older-ties-received { + type uint32; + description + "The number of times of the same or older TIE + has been received."; + } + leaf num-seq-mismatch-pkts-received { + type uint32; + description + "The number of packets with sequence number + mismatches."; + } + + container last-sent-tie { + uses tie-header; + leaf last-tie-sent-time { + type yang:date-and-time; + description + "The time of the last TIE sent."; + } + description + "The information of the last sent TIE."; + } + + container last-recv-tie { + uses tie-header; + leaf last-tie-recv-time { + type yang:date-and-time; + description + "The time of the last TIE received."; + } + description + "The information of the last received TIE."; + } + + container largest-tie { + container largest-tie-sent { + uses tie-header; + description + "The largest TIE sent."; + } + container largest-tide-sent { + uses tie-header; + description + "The largest TIDE sent."; + } + container largest-tire-sent { + uses tie-header; + description + "The largest TIRE sent."; + } + description + "The largest sent TIE, TIDE and TIRE."; + } + + container num-tie-dropped { + leaf num-tie-outer-envelope { + type uint32; + description + "The total number of TIEs dropped due to + invalid outer envelope."; + } + leaf num-tie-inner-envelope { + type uint32; + description + "The total number of TIEs dropped due to + invalid inner envelope."; + } + leaf num-tie-nonce { + type uint32; + description + "The total number of TIEs dropped due to + invalid nonce."; + } + + description + "The total number of TIEs dropped due to + security reasons."; + } + + description + "The states and statistics of TIE, TIDE, TIRE + exchanging with this neighbor."; + } + description + "The neighbor's information."; + } description "The interface information on this node."; } // list interface - list neighbors { - key "system-id"; - config false; - uses base-node-info; - uses neighbor; - description - "The neighbor's information."; - } - container database { config false; list ties { - key "direction-type originator tie-type tie-number"; + key "tie-direction-type originator tie-type tie-number"; description "A list of TIEs (Topology Information Elements)."; uses tie-header; @@ -1188,6 +1750,21 @@ module ietf-rift { description "List of miscabled links."; } + leaf-list same-plane-tofs { + type system-id; + config false; + description + "ToFs in the same plane. Only carried by ToF. + Multiple Node TIEs can carry disjoint sets of + ToFs which MUST be joined to form a single + set."; + } + leaf fabric-id { + type uint32; + config false; + description + "The optional ID of the Fabric configured."; + } description "The node element information in this TIE."; } // node @@ -1202,73 +1779,12 @@ module ietf-rift { description "The prefix information."; } + uses tie-type; uses prefix-attribute; description "The prefix set information."; } } - container positive-disagg-prefixes { - list positive-disagg-prefixes { - key "positive-disagg-prefix"; - leaf positive-disagg-prefix { - type inet:ip-prefix; - description - "The prefix information."; - } - uses prefix-attribute; - description - "The positive disaggregation prefix information."; - } - description - "The positive disaggregation prefixes set."; - } - container negative-disagg-prefixes { - list negative-disagg-prefixes { - key "negative-disagg-prefix"; - leaf negative-disagg-prefix { - type inet:ip-prefix; - description - "The prefix information."; - } - uses prefix-attribute; - description - "The negative disaggregation prefix information."; - } - description - "The negative disaggregation prefixes set."; - } - container external-prefixes { - list external-prefixes { - key "external-prefix"; - leaf external-prefix { - type inet:ip-prefix; - description - "The prefix information."; - } - uses prefix-attribute; - description - "The external prefix information."; - } - description - "The external prefixes set."; - } - container positive-ext-disagg-prefixes { - list positive-ext-disagg-prefixes { - key "positive-ext-disagg-prefix"; - leaf positive-ext-disagg-prefix { - type inet:ip-prefix; - description - "The prefix information."; - } - uses prefix-attribute; - description - "The positive external disaggregation prefix - information."; - } - description - "The positive external disaggregation prefixes - set."; - } container key-value { leaf key { @@ -1292,9 +1808,10 @@ module ietf-rift { description "The TIEs information in database."; }// container database + description + "RIFT configuration and state data."; }//rift }//augment - /* * Notifications */ @@ -1302,25 +1819,46 @@ module ietf-rift { description "The errors notification of RIFT."; container tie-level-error { - list ties { - key "originator"; - uses tie-header; + description + "The TIE errors notification of RIFT."; + + list rift { + key "name"; + leaf name { + type string; + description + "The RIFT instance's name."; + } + list ties { + key "originator"; + uses tie-header; + description + "The level is undefined in the LIEs."; + } description - "The level is undefined in the LIEs."; + "The TIE errors set."; } - description - "The TIE errors set."; } container neighbor-error { - list neighbors { - key "system-id"; - uses base-node-info; - uses neighbor; + description + "The neighbor errors notification of RIFT."; + list rift { + key "name"; + leaf name { + type string; + description + "The RIFT instance's name."; + } + list neighbors { + key "system-id"; + uses base-node-info; + uses neighbor; + description + "The information of a neighbor."; + } description - "The information of a neighbor."; + "The neighbor errors set."; } - description - "The neighbor errors set."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rpki-rtr@2022-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-rpki-rtr@2022-10-18.yang index 18b77dd82..86344e971 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-rpki-rtr@2022-10-18.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-rpki-rtr@2022-10-18.yang @@ -2,83 +2,73 @@ module ietf-rpki-rtr { yang-version "1.1"; namespace "urn:ietf:params:xml:ns:yang:ietf-rpki-rtr"; prefix "rpki-rtr"; - import ietf-yang-types { prefix "yang"; reference "RFC 6991: Common YANG Data Types."; } - import ietf-inet-types { prefix "inet"; reference "RFC 6991: Common YANG Data Types"; } - + import ietf-routing { + prefix rt; + reference + "RFC 8349: A YANG Data Model for Routing Management + (NMDA Version)."; + } import iana-crypt-hash { prefix "ianach"; reference "RFC 7317: A YANG Data Model for System Management"; } - import ietf-ssh-client { prefix "ssh"; reference "RFC XXXX: YANG Groupings for SSH Clients and SSH Servers"; } - import ietf-interfaces { prefix "if"; reference "RFC 8343, A YANG Data Model for Interface Management."; } - import ietf-key-chain { prefix key-chain; reference "RFC 8177: YANG Key Chain."; } - organization "IETF SIDROPS Working Group"; contact "TBD"; - description "This module describes a YANG model for the Resource Public Key Infrastructure (RPKI) to Router Protocol configuration. - This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - 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."; - - reference "RFC XXXX"; - + reference "RFC 8210"; revision 2022-10-18 { description "Initial Version"; reference - "RFC XXXX, YANG Data Model for RPKI to Router Protocol"; + "RFC 8210, YANG Data Model for RPKI to Router Protocol"; } - typedef ipv4-pfx-len { type uint8 { range "0 .. 32"; @@ -86,7 +76,6 @@ module ietf-rpki-rtr { description "IPv4 Prefix Length."; } - typedef ipv6-pfx-len { type uint8 { range "0 .. 128"; @@ -94,7 +83,6 @@ module ietf-rpki-rtr { description "IPv6 Prefix Length."; } - typedef subject-key-id { type binary { length 20; @@ -102,7 +90,11 @@ module ietf-rpki-rtr { description "Subject Key Identifier."; } - + identity rpki-rtr { + base rt:routing-protocol; + description + "RPKI to Router protocol."; + } grouping records-limit { description "Limit of records that can be received from the RPKI @@ -157,7 +149,6 @@ module ietf-rpki-rtr { "Time interval for the reconnection timer."; } } - grouping aspa-overall-records { description "ASPAs received from all RPKI cache servers."; @@ -187,7 +178,6 @@ module ietf-rpki-rtr { } } } - grouping aspa-server-records { description "ASPAs received from a RPKI cache server."; @@ -212,507 +202,485 @@ module ietf-rpki-rtr { } } } - - container rpki-rtr { + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol" { + when "derived-from-or-self(rt:type, 'rpki-rtr')" { + description + "This augmentation is valid for a routing protocol + instance of RPKI to Router."; + } description - "Configuration parameters for the RPKI to Router Protocol."; - container roa-table { - config false; + "RPKI to Router protocol augmentation of ietf-routing module + control-plane-protocol."; + container rpki-rtr { description - "Table of ROAs received from all RPKI cache servers."; - container ipv4 { - config false; + "Configuration parameters for the RPKI to Router Protocol."; + container sessions { description - "Container for IPv4 ROAs table."; - container roas { - config false; + "Parameters of RPKI sessions to cache servers."; + list session { + key "server-address"; description - "ROAs received from the RPKI cache server."; - list roa { - key "prefix max-len asn server-address"; + "Each entry contains parameters for a RPKI session + identified by the 'server-address' key."; + leaf server-address { + type inet:ip-address; + mandatory true; description - "An entry of ROA."; - leaf prefix { - type inet:ipv4-prefix; - description - "The IPv4 prefix of the ROA."; - } - leaf max-len { - type ipv4-pfx-len; - description - "Denotes the longest prefix allowed. This - MUST NOT be less than the prefix length."; - } - leaf asn { - type inet:as-number; - description - "The origin AS number of the ROA."; - } - leaf server-address { - type inet:ip-address; - description - "IP address of the RPKI cache server."; - } + "The IP address of the RPKI cache server resembling + a session"; } - } - } - container ipv6 { - config false; - description - "Container for IPv6 ROAs table."; - container roas { - config false; - description - "ROAs received from the RPKI cache server."; - list roa { - key "prefix max-len asn server-address"; + leaf server-port { + type inet:port-number; description - "An entry of ROA."; - leaf prefix { - type inet:ipv6-prefix; - description - "The IPv6 prefix of the ROA."; - } - leaf max-len { - type ipv6-pfx-len; - description - "Denotes the longest prefix allowed. This - MUST NOT be less than the prefix length."; - } - leaf asn { - type inet:as-number; - description - "The origin AS number of the ROA."; - } - leaf server-address { + "The remote port for the connection + to the RPKI cache server"; + } + leaf local-address { + type union { type inet:ip-address; - description - "IP address of the RPKI cache server."; + type if:interface-ref; } - } - } - } - } - container router-key-table { - config false; - description - "Table of router keys received from all RPKI cache - servers."; - container router-keys { - config false; - description - "Router keys received from the RPKI cache server."; - list router-key { - key "ski asn key server-address"; - description - "An entry of router key."; - leaf ski { - type subject-key-id; description - "A router key's Subject Key Identifier (SKI)."; - reference - "RFC 6487: A Profile for X.509 PKIX Resource - Certificates"; + "The local IP (either IPv4 or IPv6) address to use for + the connection to the RPKI cache server. This may be + expressed as either an IP address or reference to the + name of an interface."; } - leaf asn { - type inet:as-number; + leaf local-port { + type inet:port-number; description - "The AS number of the router which the key - belongs to."; + "The local port for the connection + to the RPKI cache server"; } - leaf key { - type string; + leaf enabled { + type boolean; + default "true"; description - "A router key's subjectPublicKeyInfo value."; - reference - "RFC 8608: BGPsec Algorithms, Key Formats, and - Signature Formats"; + "Whether the RPKI cache server is enabled."; } - leaf server-address { - type inet:ip-address; + leaf preference { + type uint32; description - "IP address of the RPKI cache server."; + "The router's preference to connect to that cache. + The lower the value, the more preferred."; } - } - } - } - container aspa-table { - config false; - description - "Table of ASPAs received from all RPKI cache servers."; - container ipv4 { - config false; - description - "Container for IPv4 ASPAs table."; - uses aspa-overall-records; - } - container ipv6 { - config false; - description - "Container for IPv6 ASPAs table."; - uses aspa-overall-records; - } - } - container cache-servers { - description - "Parameters of RPKI cache servers."; - list cache-server { - key "server-address"; - description - "Each entry contains parameters for a RPKI cache server - identified by the 'server-address' key."; - leaf server-address { - type inet:ip-address; - mandatory true; - description - "The IP address of the RPKI cache server"; - } - leaf server-port { - type inet:port-number; - description - "The remote port for the connection - to the RPKI cache server"; - } - leaf local-address { - type union { - type inet:ip-address; - type if:interface-ref; - } - description - "The local IP (either IPv4 or IPv6) address to use for - the connection to the RPKI cache server. This may be - expressed as either an IP address or reference to the - name of an interface."; - } - leaf local-port { - type inet:port-number; - description - "The local port for the connection - to the RPKI cache server"; - } - leaf enabled { - type boolean; - default "true"; - description - "Whether the RPKI cache server is enabled."; - } - leaf protocol-version { - type uint32; - description - "The version number of the RPKI to Router Protocol."; - } - leaf preference { - type uint32; - description - "The router's preference to connect to that cache. - The lower the value, the more preferred."; - } - leaf description { - type string; - description - "Textual description of the RPKI cache server"; - } - leaf secure-session-enable { - type boolean; - default "false"; - description - "Whether the session is secured."; - } - container secure-session { - when "../secure-session-enable = 'true'"; - description - "Container for describing how a particular session - is to be secured."; - choice option { + leaf description { + type string; description - "Choice for session secruring methods."; - case md5 { - leaf md5-password { - type ianach:crypt-hash; + "Textual description of the RPKI cache server"; + } + leaf session-state { + type enumeration { + enum idle { description - "The password for md5 authentication."; + "The session is down."; } - description - "Uses TCP-MD5 to secure the session."; - } - case ssh { - uses ssh:ssh-client-grouping { - reference - "RFC XXXX: YANG Groupings for SSH Clients and - SSH Servers"; + enum connect { + description + "The session is waiting for the underlying + transport session to be established."; } - description - "Uses SSH to secure the session."; - } - case keychain { - leaf keychain-name { - type key-chain:key-chain-ref; + enum establish { description - "Name of key chain."; - reference - "RFC 8177: YANG Key Chain."; + "The session is up."; + } + enum ex-incr { + description + "Incremental update of ROAs in progress."; + } + enum ex-full { + description + "Full update of ROA records in progress."; } - description - "Uses key-chain to secure the session."; - } - } - } - leaf purge-time { - type uint32; - description - "Configures the time a router waits to keep data from - the RPKI cache server after the session drops."; - } - leaf refresh-time { - type uint32; - description - "Configures the time a router waits in between sending - periodic serial queries to the RPKI cache server."; - } - leaf response-time { - type uint32; - description - "Configures the time a router waits for a response - after sending a serial or reset query to the RPKI - cache server."; - } - container roa-limit { - description - "Limit of ROA records that can be received from the - RPKI cache server."; - uses records-limit; - } - container aspa-limit { - description - "Limit of ASPA records that can be received from the - RPKI cache server."; - uses records-limit; - } - leaf session-state { - type enumeration { - enum idle { - description - "The session is down."; - } - enum connect { - description - "The session is waiting for the underlying - transport session to be established."; - } - enum establish { - description - "The session is up."; } - } - config false; - description - "The session state."; - } - leaf session-id { - type uint16; - config false; - description - "When a cache server is started, it generates a - Session ID to identify the instance of the cache - and to bind it to the sequence of Serial Numbers - that cache instance will generate."; - reference - "RFC 6810, The Resource Public Key Infrastructure - (RPKI) to Router Protocol - RFC 8210, The Resource Public Key Infrastructure - (RPKI) to Router Protocol, Version 1"; - } - leaf serial-number { - type uint32; - config false; - description - "A 32-bit strictly increasing unsigned integer which - wraps from 2^32-1 to 0. It denotes the logical - version of a cache."; - reference - "RFC 6810, The Resource Public Key Infrastructure - (RPKI) to Router Protocol - RFC 8210, The Resource Public Key Infrastructure - (RPKI) to Router Protocol, Version 1"; - } - container statistics { - config false; - description - "Statistics of the RPKI cache server."; - leaf in-total-messages { - type yang:zero-based-counter64; - description - "The total number of messages received from the - RPKI cache server."; - } - leaf out-total-messages { - type yang:zero-based-counter64; - description - "The total number of messages transmitted to the - RPKI cache server."; - } - leaf ipv4-roa-records { - type yang:zero-based-counter64; + config false; description - "The number of ROAs for IPv4 prefixes received - from the RPKI cache server."; + "The session state."; } - leaf ipv6-roa-records { - type yang:zero-based-counter64; + leaf enable-authentication { + type boolean; + default "false"; description - "The number of ROAs for IPv6 prefixes received - from the RPKI cache server."; + "Whether the session is secured."; } - leaf router-key-records { - type yang:zero-based-counter64; + container authentication { + when "../enable-authentication = 'true'"; description - "The number of router keys received from the RPKI - cache server."; + "Container for describing how a particular session + is to be secured."; + choice option { + description + "Choice for session secruring methods."; + case md5 { + leaf md5-password { + type ianach:crypt-hash; + description + "The password for md5 authentication."; + } + description + "Uses TCP-MD5 to secure the session."; + } + case ssh { + uses ssh:ssh-client-grouping { + reference + "RFC XXXX: YANG Groupings for SSH Clients and + SSH Servers"; + } + description + "Uses SSH to secure the session."; + } + case tcp-ao-keychain { + leaf keychain-name { + type key-chain:key-chain-ref; + description + "Name of key chain."; + reference + "RFC 8177: YANG Key Chain."; + } + description + "Uses key-chain to secure the session."; + } + } } - leaf ipv4-aspa-records { - type yang:zero-based-counter64; + container roa-limit { description - "The number of IPv4 ASPAs received from the RPKI - cache server."; + "Limit of ROA records that can be received from the + RPKI cache server."; + uses records-limit; } - leaf ipv6-aspa-records { - type yang:zero-based-counter64; + container aspa-limit { description - "The number of IPv6 ASPAs received from the RPKI - cache server."; + "Limit of ASPA records that can be received from the + RPKI cache server."; + uses records-limit; } - } - container roa-table { - config false; - description - "Table of ROAs received from the RPKI cache server."; - container ipv4 { + container statistics { config false; description - "Container for IPv4 ROAs table."; - container roas { - config false; + "Statistics of the RPKI cache server."; + leaf total-roa-records { + type yang:zero-based-counter64; description - "ROAs received from the RPKI cache server."; - list roa { - key "prefix max-len asn"; - description - "An entry of ROA."; - leaf prefix { - type inet:ipv4-prefix; - description - "The IPv4 prefix of the ROA."; - } - leaf max-len { - type ipv4-pfx-len; - description - "Denotes the longest prefix allowed. This - MUST NOT be less than the prefix length."; - } - leaf asn { - type inet:as-number; - description - "The origin AS number of the ROA."; - } - } + "The total number of ROAs received + from the RPKI cache server."; + } + leaf ipv4-roa-records { + type yang:zero-based-counter64; + description + "The number of ROAs for IPv4 prefixes received + from the RPKI cache server."; + } + leaf ipv6-roa-records { + type yang:zero-based-counter64; + description + "The number of ROAs for IPv6 prefixes received + from the RPKI cache server."; + } + leaf router-key-records { + type yang:zero-based-counter64; + description + "The number of router keys received from the RPKI + cache server."; + } + leaf ipv4-aspa-records { + type yang:zero-based-counter64; + description + "The number of IPv4 ASPAs received from the RPKI + cache server."; + } + leaf ipv6-aspa-records { + type yang:zero-based-counter64; + description + "The number of IPv6 ASPAs received from the RPKI + cache server."; } } - container ipv6 { + container connection-data { config false; description - "Container for IPv6 ROAs table."; - container roas { - config false; + "State information relating to the connection + with the RPKI cache server."; + leaf flaps { + type uint32; description - "ROAs received from the RPKI cache server."; - list roa { - key "prefix max-len asn"; - description - "An entry of ROA."; - leaf prefix { - type inet:ipv6-prefix; - description - "The IPv6 prefix of the ROA."; - } - leaf max-len { - type ipv6-pfx-len; - description - "Denotes the longest prefix allowed. This - MUST NOT be less than the prefix length."; - } - leaf asn { - type inet:as-number; - description - "The origin AS number of the ROA."; - } - } + "Count for number of flaps observed on the + session."; + } + leaf last-session-up-down { + type yang:timestamp; + description + "This timestamp indicates the time that the + RPKI-RTR session last transitioned in or out + of the UP state. The value is the timestamp in + microseconds relative to the Unix Epoch (Jan 1, + 1970 00:00:00 UTC). The RPKI-RTR session uptime + can be computed by clients as the difference + between this value and the current time + in UTC (assuming the session is in the UP + state, per the session-state leaf)."; + reference + "RFC 6810: The Resource Public Key Infrastructure."; + } + leaf last-update-sync-timestamp { + type yang:timestamp; + description + "Time of last serial sync with cache server."; + } + leaf last-full-sync-timestamp { + type yang:timestamp; + description + "Time of last reset sync with cache server."; + } + leaf last-serial-query-timestamp { + type yang:timestamp; + description + "Time of last serial query sent to cache server."; + } + leaf last-reset-query-timestamp { + type yang:timestamp; + description + "Time of last reset query sent to cache server."; + } + leaf last-eod-received { + type yang:timestamp; + description + "Time in microseconds at which last EOD was + received."; + } + leaf last-config-change-timestamp { + type yang:timestamp; + description + "Time of last host, port, VRF or local interface + change."; + } + leaf last-error-timestamp { + type yang:timestamp; + description + "Time of sending/receiving protocol error to/from + cache server."; + } + leaf last-connection-error-timestamp { + type yang:timestamp; + description + "Time of last connection error to cache server."; + } + leaf last-connection-timestamp { + type yang:timestamp; + description + "Time of last connection to cache server."; + } + leaf error-reason { + type string; + description + "Reason for error in connection."; } } - reference - "RFC 6810, The Resource Public Key Infrastructure - (RPKI) to Router Protocol - RFC 8210, The Resource Public Key Infrastructure - (RPKI) to Router Protocol, Version 1"; - } - container router-key-table { - config false; - description - "Table of router keys received from all RPKI cache - servers."; - container router-keys { + container protocol-data { config false; description - "Router keys received from the RPKI cache server."; - list router-key { - key "ski asn key"; + "State parameters related to the RPKI to router + protocol"; + leaf protocol-version { + type uint32; description - "An entry of router key."; - leaf ski { - type subject-key-id; - description - "A router key's Subject Key Identifier (SKI)."; - reference - "RFC 6487: A Profile for X.509 PKIX Resource - Certificates"; - } - leaf asn { - type inet:as-number; - description - "The AS number of the router which the key - belongs to."; - } - leaf key { - type string; - description - "A router key's subjectPublicKeyInfo value."; - reference - "RFC 8608: BGPsec Algorithms, Key Formats, and - Signature Formats"; - } + "The version number of the RPKI to Router + Protocol."; + } + leaf refresh-time { + type yang:timestamp; + description + "Configures the time a router waits in between + sending periodic serial queries to the RPKI + cache server."; + } + leaf response-time { + type yang:timestamp; + description + "Configures the time a router waits for a response + after sending a serial or reset query to the RPKI + cache server."; + } + leaf purge-time { + type yang:timestamp; + description + "Configures the time a router waits to keep data + from the RPKI cache server after the session + drops."; + } + leaf hold-time { + type yang:timestamp; + description + "Hold-time for this session."; + } + leaf record-lifetime { + type yang:timestamp; + description + "Record-lifetime this session."; + } + leaf retry-interval { + type uint32; + description + "Number of seconds between poll error and cache + server poll"; + } + leaf expire-interval { + type uint32; + description + "Number of seconds to retain data synced from + cache server"; + } + leaf session-id { + type uint16; + config false; + description + "When a cache server is started, it generates a + Session ID to identify the instance of the cache + and to bind it to the sequence of Serial Numbers + that cache instance will generate."; + reference + "RFC 6810, The Resource Public Key Infrastructure + (RPKI) to Router Protocol + RFC 8210, The Resource Public Key Infrastructure + (RPKI) to Router Protocol, Version 1"; + } + leaf serial-full { + type uint32; + config false; + description + "A 32-bit strictly increasing unsigned integer which + wraps from 2^32-1 to 0. It denotes the logical + version of a cache. It resembles the latest full + query."; + reference + "RFC 6810, The Resource Public Key Infrastructure + (RPKI) to Router Protocol + RFC 8210, The Resource Public Key Infrastructure + (RPKI) to Router Protocol, Version 1"; + } + leaf serial-incremental { + type uint32; + config false; + description + "A 32-bit strictly increasing unsigned integer which + wraps from 2^32-1 to 0. It denotes the logical + version of a cache. It resembles the latest + incremental query."; + reference + "RFC 6810, The Resource Public Key Infrastructure + (RPKI) to Router Protocol + RFC 8210, The Resource Public Key Infrastructure + (RPKI) to Router Protocol, Version 1"; + } + leaf in-total-messages { + type yang:zero-based-counter64; + description + "The total number of messages received from the + RPKI cache server."; + } + leaf out-total-messages { + type yang:zero-based-counter64; + description + "The total number of messages transmitted to the + RPKI cache server."; } } - } - container aspa-table { - config false; - description - "Table of ASPAs received from the RPKI cache server."; - container ipv4 { + container pdu-counters { config false; description - "Container for IPv4 ASPAs table."; - uses aspa-server-records; + "Counters of PDUs that are received from cache"; + leaf serial-notify { + type yang:zero-based-counter64; + description + "Serial notify PDU count"; + } + leaf cache-response { + type yang:zero-based-counter64; + description + "Cache response PDU count"; + } + leaf ipv4-prefix { + type yang:zero-based-counter64; + description + "IPv4 prefix PDU count"; + } + leaf ipv6-prefix { + type yang:zero-based-counter64; + description + "Ipv6 prefix PDU count"; + } + leaf end-of-data { + type yang:zero-based-counter64; + description + "End of data PDU count"; + } + leaf cache-reset { + type yang:zero-based-counter64; + description + "Cache reset PDU count"; + } + leaf reset-query { + type yang:zero-based-counter64; + description + "Reset query PDU count"; + } + leaf serial-query { + type yang:zero-based-counter64; + description + "Serial query PDU count"; + } } - container ipv6 { + container error-pdu-counters { config false; description - "Container for IPv6 ASPAs table."; - uses aspa-server-records; + "Counters of error PDUs that originate from router + or cache server"; + leaf corrupt-data { + type yang:zero-based-counter64; + description + "Corrupt data PDU count"; + } + leaf internal-error { + type yang:zero-based-counter64; + description + "Internal error PDU count"; + } + leaf unsupported-protocol-version { + type yang:zero-based-counter64; + description + "Unsupported protocol version PDU count"; + } + leaf unsupported-pdu-type { + type yang:zero-based-counter64; + description + "Unsupported PDU type count"; + } + leaf unexpected-protocol-version { + type yang:zero-based-counter64; + description + "Unexpected protocol version PDU count"; + } + leaf no-data-available { + type yang:zero-based-counter64; + description + "No data available PDU count"; + } + leaf invalid-request { + type yang:zero-based-counter64; + description + "Invalid request PDU count"; + } + leaf withdrawal-unknown-record { + type yang:zero-based-counter64; + description + "Withdrawal of unknown record PDU count"; + } + leaf duplicate-announcement-received { + type yang:zero-based-counter64; + description + "Duplicate announcement received PDU count"; + } } - reference - "RFC 6810, The Resource Public Key Infrastructure - (RPKI) to Router Protocol - RFC 8210, The Resource Public Key Infrastructure - (RPKI) to Router Protocol, Version 1"; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rpki-table@2022-10-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-rpki-table@2022-10-18.yang new file mode 100644 index 000000000..199f2aa43 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-rpki-table@2022-10-18.yang @@ -0,0 +1,318 @@ +module ietf-rpki-table { + yang-version "1.1"; + namespace "urn:ietf:params:xml:ns:yang:ietf-rpki-table"; + prefix "rpki-table"; + import ietf-yang-types { + prefix "yang"; + reference + "RFC 6991: Common YANG Data Types."; + } + import ietf-inet-types { + prefix "inet"; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-routing { + prefix rt; + reference + "RFC 8349: A YANG Data Model for Routing Management + (NMDA Version)."; + } + organization + "IETF SIDROPS Working Group"; + contact + "TBD"; + description + "This module describes a YANG model for the Resource Public + Key Infrastructure (RPKI) to Router Protocol configuration. + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + 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."; + reference "RFC 8210"; + revision 2022-10-18 { + description + "Initial Version"; + reference + "RFC 8210, YANG Data Model for RPKI to Router Protocol"; + } + typedef ipv4-pfx-len { + type uint8 { + range "0 .. 32"; + } + description + "IPv4 Prefix Length."; + } + typedef ipv6-pfx-len { + type uint8 { + range "0 .. 128"; + } + description + "IPv6 Prefix Length."; + } + typedef subject-key-id { + type binary { + length 20; + } + description + "Subject Key Identifier."; + } + grouping aspa-overall-records { + description + "ASPAs received from all RPKI cache servers."; + list aspas { + key "customer-asn"; + description + "An entry of ASPA."; + leaf customer-asn { + type inet:as-number; + description + "The AS number of a customer."; + } + leaf server-address { + type inet:ip-address; + description + "IP address of the RPKI cache server."; + } + list provider-asns { + key "provider-asn"; + description + "Providers of the customer."; + leaf provider-asn { + type inet:as-number; + description + "The AS number of a provider."; + } + } + } + } + + augment "/rt:routing" { + description + "RPKI tables augmentation of ietf-routing module."; + container roa-tables { + config false; + description + "List of tables containing ROAs received from all RPKI + cache servers."; + list roa-table { + key "name"; + description + "Table of ROAs received from all RPKI cache servers."; + leaf name { + type string; + description + "Name of the ROA table."; + } + container ipv4 { + config false; + description + "Container for IPv4 ROAs table."; + container roas { + config false; + description + "ROAs received from the RPKI cache server."; + list roa { + key "prefix max-len asn source"; + description + "An entry of ROA."; + leaf prefix { + type inet:ipv4-prefix; + description + "The IPv4 prefix of the ROA."; + } + leaf max-len { + type ipv4-pfx-len; + description + "Denotes the longest prefix allowed. This + MUST NOT be less than the prefix length."; + } + leaf asn { + type inet:as-number; + description + "The origin AS number of the ROA."; + } + leaf source { + type union { + type string; + type inet:ip-address; + } + description + "String representing the source of the records + in this record-set."; + } + } + } + leaf total-records { + type yang:gauge32; + description + "Number of prefix policy records."; + } + leaf records-added { + type yang:counter64; + description + "Number of prefix policy records cumulatively added."; + } + leaf records-deleted { + type yang:counter64; + description + "Number of prefix policy records cumulatively + deleted."; + } + } + container ipv6 { + config false; + description + "Container for IPv6 ROAs table."; + container roas { + config false; + description + "ROAs received from the RPKI cache server."; + list roa { + key "prefix max-len asn source"; + description + "An entry of ROA."; + leaf prefix { + type inet:ipv6-prefix; + description + "The IPv6 prefix of the ROA."; + } + leaf max-len { + type ipv6-pfx-len; + description + "Denotes the longest prefix allowed. This + MUST NOT be less than the prefix length."; + } + leaf asn { + type inet:as-number; + description + "The origin AS number of the ROA."; + } + leaf source { + type union { + type string; + type inet:ip-address; + } + description + "Representing the source of the records in this + record-set. Either a server IP or a source file + of static records."; + } + } + } + leaf total-records { + type yang:gauge32; + description + "Number of prefix policy records."; + } + leaf records-added { + type yang:counter64; + description + "Number of prefix policy records cumulatively added."; + } + leaf records-deleted { + type yang:counter64; + description + "Number of prefix policy records cumulatively + deleted."; + } + } + } + } + container router-key-tables { + config false; + description + "List of router key table received from all RPKI cache + servers."; + list router-key-table { + key "name"; + description + "Table of router keys received from all RPKI cache + servers."; + leaf name { + type string; + description + "Name of the router-key-table."; + } + container router-keys { + config false; + description + "Router keys received from the RPKI cache server."; + list router-key { + key "ski asn key server-address"; + description + "An entry of router key."; + leaf ski { + type subject-key-id; + description + "A router key's Subject Key Identifier (SKI)."; + reference + "RFC 6487: A Profile for X.509 PKIX Resource + Certificates"; + } + leaf asn { + type inet:as-number; + description + "The AS number of the router which the key + belongs to."; + } + leaf key { + type string; + description + "A router key's subjectPublicKeyInfo value."; + reference + "RFC 8608: BGPsec Algorithms, Key Formats, and + Signature Formats"; + } + leaf server-address { + type inet:ip-address; + description + "IP address of the RPKI cache server."; + } + } + } + } + } + container aspa-tables { + config false; + description + "List of tables of ASPAs received from all RPKI cache + servers."; + list aspa-table { + key "name"; + description + "Table of ASPAs received from all RPKI cache servers."; + leaf name { + type string; + description + "Name of the ASPA-table."; + } + container ipv4 { + config false; + description + "Container for IPv4 ASPAs table."; + uses aspa-overall-records; + } + container ipv6 { + config false; + description + "Container for IPv6 ASPAs table."; + uses aspa-overall-records; + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rsvp-extended@2021-12-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-rsvp-extended@2024-02-28.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-rsvp-extended@2021-12-02.yang rename to experimental/ietf-extracted-YANG-modules/ietf-rsvp-extended@2024-02-28.yang index 08134a629..932166309 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-rsvp-extended@2021-12-02.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-rsvp-extended@2024-02-28.yang @@ -37,7 +37,7 @@ module ietf-rsvp-extended { Editor: Tarek Saad - + Editor: Rakesh Gandhi @@ -69,19 +69,13 @@ module ietf-rsvp-extended { // RFC Ed.: update the date below with the date of RFC publication // and remove this note. - revision 2021-12-02 { + revision 2024-02-28 { description "Initial version."; reference "RFCXXXX: A YANG Data Model for Resource Reservation Protocol (RSVP)"; } - - grouping graceful-restart-extended { - description - "Configuration parameters relating to RSVP Graceful-Restart."; - } - grouping authentication-extended { description "Configuration parameters relating to RSVP authentication."; @@ -90,7 +84,6 @@ module ietf-rsvp-extended { range "30..86400"; } units "seconds"; - default "30"; description "Life time for each security association."; reference @@ -100,7 +93,6 @@ module ietf-rsvp-extended { type uint32 { range "1..64"; } - default "2"; description "Window-size to limit number of out-of-order messages."; reference @@ -117,7 +109,6 @@ module ietf-rsvp-extended { type uint32 { range "1..10000"; } - default "1"; description "Number of retransmits when messages are dropped."; reference @@ -144,7 +135,6 @@ module ietf-rsvp-extended { leaf hello-interval { type uint32; units "milliseconds"; - default "9000"; description "Configure interval between successive Hello messages in milliseconds."; @@ -157,7 +147,6 @@ module ietf-rsvp-extended { type uint32 { range "1..10"; } - default "3"; description "Configure max number of consecutive missed Hello messages."; reference @@ -173,14 +162,12 @@ module ietf-rsvp-extended { leaf refresh-interval { type uint32; units "seconds"; - default "30"; description "Set interval between successive refreshes"; reference "RFC2205"; } leaf refresh-misses { type uint32; - default "9"; description "Set max number of consecutive missed messages for state expiry"; @@ -207,7 +194,6 @@ module ietf-rsvp-extended { type uint32 { range "512..65000"; } - default "1500"; description "Configure maximum size (bytes) of a single RSVP Bundle message."; @@ -216,7 +202,6 @@ module ietf-rsvp-extended { leaf ack-hold-time { type uint32; units "milliseconds"; - default "9000"; description "Configure hold time in milliseconds for sending RSVP ACK message(s)."; @@ -224,7 +209,6 @@ module ietf-rsvp-extended { } leaf ack-max-size { type uint32; - default "1500"; description "Configure max size of a single RSVP ACK message."; reference "RFC2961"; @@ -232,7 +216,6 @@ module ietf-rsvp-extended { leaf ack-retransmit-time { type uint32; units "milliseconds"; - default "500"; description "Configure min delay in milliseconds to wait for an acknowledgment before being retransmitted."; @@ -249,7 +232,6 @@ module ietf-rsvp-extended { type uint32 { range "20..65000"; } - default "1500"; description "Configure max size (bytes) of a single RSVP Srefresh message."; @@ -303,15 +285,6 @@ module ietf-rsvp-extended { /** * RSVP extensions augmentations */ - /* RSVP graceful restart*/ - - augment "/rt:routing/rt:control-plane-protocols/" - + "rt:control-plane-protocol/rsvp:rsvp/" - + "rsvp:graceful-restart" { - description - "RSVP graceful restart configuration extensions"; - uses graceful-restart-extended; - } /** * RSVP all interfaces extensions @@ -343,7 +316,6 @@ module ietf-rsvp-extended { extensions"; uses refresh-reduction-extended; } - /* RSVP hellos extension */ augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" @@ -392,7 +364,6 @@ module ietf-rsvp-extended { "RSVP refresh-reduction interface configuration extensions"; uses refresh-reduction-extended; } - /* RSVP hellos extension */ augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rsvp@2021-12-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-rsvp@2021-12-02.yang deleted file mode 100644 index 9df23f7e5..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-rsvp@2021-12-02.yang +++ /dev/null @@ -1,1001 +0,0 @@ -module ietf-rsvp { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; - - /* Replace with IANA when assigned */ - prefix rsvp; - - import ietf-interfaces { - prefix if; - reference - "RFC8343: A YANG Data Model for Interface Management"; - } - import ietf-inet-types { - prefix inet; - reference - "RFC6991: Common YANG Data Types"; - } - import ietf-yang-types { - prefix yang; - reference - "RFC6991: Common YANG Data Types"; - } - import ietf-routing { - prefix rt; - reference - "RFC8349: A YANG Data Model for Routing Management - (NMDA Version)"; - } - import ietf-key-chain { - prefix key-chain; - reference - "RFC8177: YANG Data Model for Key Chains"; - } - import ietf-netconf-acm { - prefix nacm; - reference - "RFC8341: Network Configuration Access Control Model"; - } - organization - "IETF Traffic Engineering Architecture and Signaling (TEAS) - Working Group"; - contact - "WG Web: - WG List: - - Editor: Vishnu Pavan Beeram - - - Editor: Tarek Saad - - - Editor: Rakesh Gandhi - - Editor: Xufeng Liu - - - Editor: Igor Bryskin - "; - description - "This module contains the RSVP YANG data model. - 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."; - - // RFC Ed.: replace XXXX with actual RFC number and remove this - // note. - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. - - revision 2021-12-02 { - description - "Initial version."; - reference - "RFCXXXX: A YANG Data Model for Resource Reservation Protocol - (RSVP)"; - } - - identity rsvp { - base rt:routing-protocol; - description - "RSVP protocol"; - } - - identity rsvp-session-type { - description - "Base RSVP session type"; - } - - identity rsvp-session-ip { - base rsvp-session-type; - description - "RSVP IP session type"; - } - - identity reservation-style { - description - "Base identity for reservation style."; - } - - identity reservation-wildcard-filter { - base reservation-style; - description - "Wildcard-Filter (WF) Style."; - reference - "RFC2205"; - } - - identity reservation-fixed-filter { - base reservation-style; - description - "Fixed-Filter (FF) Style."; - reference - "RFC2205"; - } - - identity reservation-shared-explicit { - base reservation-style; - description - "Shared Explicit (SE) Style."; - reference - "RFC2205"; - } - - grouping graceful-restart { - description - "RSVP graceful restart local parameters grouping."; - container graceful-restart { - description - "Graceful restart local information."; - leaf enabled { - type boolean; - default "false"; - description - "'true' if RSVP Graceful Restart is enabled. - 'false' if RSVP Graceful Restart is disabled."; - reference "RFC5495"; - } - leaf local-restart-time { - type uint32; - units "seconds"; - default "120"; - description - "Time it takes the local node to restart its RSVP-TE - component (to the point where it can exchange RSVP - Hello with its neighbors). A value of 0xffffffff - indicates that the restart of the neighbor's control plane - may occur over an indeterminate interval and that the - operation of its data plane is unaffected by control plane - failures."; - reference "RFC3473"; - } - leaf local-recovery-time { - type uint32; - units "seconds"; - default "120"; - description - "The period of time, in seconds, that the local - node requires to re-synchronize RSVP and MPLS - forwarding state with its neighbor. A value of zero (0) - indicates that MPLS forwarding state was not preserved - across a particular reboot."; - reference "RFC3473"; - } - container helper-mode { - description - "Helper mode information. In this mode, the node - resynchronizes its stored states with a neighbor whose - control plane has restarted. The helper mode term is - borrowed from RFC3623 and adopted by several vendors - vendors in their implementation of RSVP graceful - restart."; - leaf enabled { - type boolean; - default "true"; - description - "'true' if helper mode is enabled."; - } - leaf max-helper-restart-time { - type uint32; - units "seconds"; - default "20"; - description - "The maximum time the router or switch waits after it - discovers that the neighboring router has gone down - before it declares the neighbor down."; - reference "RFC5063"; - } - leaf max-helper-recovery-time { - type uint32; - units "seconds"; - default "180"; - description - "The maximum amount of time the router retains the state - of its RSVP neighbors while they undergo a graceful - restart."; - reference "RFC5063"; - } - } - } - } - grouping neighbor-graceful-restart { - description - "RSVP graceful restart neighbor parameters grouping."; - container graceful-restart { - description - "Graceful restart information."; - leaf neighbor-restart-time { - type uint32; - units "seconds"; - default "120"; - config false; - description - "Time it takes the neighbor node to restart its RSVP-TE - component (to the point where it can exchange RSVP - Hello with its neighbors). A value of 0xffffffff - indicates that the restart of the neighbor's control plane - may occur over an indeterminate interval and that the - operation of its data plane is unaffected by control plane - failures."; - reference "RFC3473"; - } - leaf neighbor-recovery-time { - type uint32; - units "seconds"; - default "120"; - config false; - description - "The period of time, in milliseconds, that the neighbor - node requires to re-synchronize RSVP and MPLS - forwarding state with its neighbor. A value of zero (0) - indicates that MPLS forwarding state was not preserved - across a particular reboot."; - reference "RFC3473"; - } - container helper-mode { - description - "Helper mode information."; - leaf neighbor-restart-time-remaining { - type uint32; - units "seconds"; - config false; - description - "Number of seconds remaining for neighbor to send Hello - message after restart."; - reference "RFC5063"; - } - leaf neighbor-recovery-time-remaining { - type uint32; - units "seconds"; - config false; - description - "Number of seconds remaining for neighbor to refresh."; - reference "RFC5063"; - } - } - // helper-mode - } - } - - grouping refresh-reduction { - description - "Top level grouping for RSVP refresh reduction parameters."; - container refresh-reduction { - description - "Top level container for RSVP refresh reduction parameters."; - leaf enabled { - type boolean; - default "true"; - description - "'true' if RSVP Refresh Reduction is enabled. - 'false' if RSVP Refresh Reduction is disabled."; - } - reference - "RFC2961 RSVP Refresh Overhead Reduction Extensions"; - } - } - - grouping authentication { - description - "Top level grouping for RSVP authentication parameters."; - container authentication { - description - "Top level container for RSVP authentication parameters."; - leaf enabled { - type boolean; - default "false"; - description - "'true' if RSVP Authentication is enabled. - 'false' if RSVP Authentication is disabled."; - } - leaf authentication-key { - type string; - default ""; - description - "An authentication key string."; - reference - "RFC2747: RSVP Cryptographic Authentication"; - } - leaf crypto-algorithm { - type identityref { - base key-chain:crypto-algorithm; - } - mandatory true; - description - "Cryptographic algorithm associated with key."; - } - } - } - - grouping hellos { - description - "Top level grouping for RSVP hellos parameters."; - container hellos { - description - "Top level container for RSVP hello parameters."; - leaf enabled { - type boolean; - default "true"; - description - "'true' if RSVP Hello is enabled. - 'false' if RSVP Hello is disabled."; - reference - "RFC3209: RSVP-TE: Extensions to RSVP for LSP Tunnels. - RFC5495: Description of the Resource Reservation Protocol - - Traffic-Engineered (RSVP-TE) Graceful Restart Procedures."; - } - } - } - - grouping session-attributes { - description - "Top level grouping for RSVP session properties."; - leaf destination-port { - type uint16; - description - "RSVP destination port."; - reference - "RFC2205"; - } - leaf protocol-id { - type uint8; - description - "The IP protocol ID."; - reference - "RFC2205, section 3.2"; - } - leaf source { - type inet:ip-address; - description - "RSVP source address."; - reference - "RFC2205"; - } - leaf destination { - type inet:ip-address; - description - "RSVP destination address."; - reference - "RFC2205"; - } - leaf session-name { - type string; - default ""; - description - "The signaled name of this RSVP session."; - } - leaf session-status { - type enumeration { - enum up { - description - "RSVP session is up."; - } - enum down { - description - "RSVP session is down."; - } - } - default "down"; - description - "Enumeration of RSVP session states."; - } - leaf session-type { - type identityref { - base rsvp-session-type; - } - mandatory "true"; - description - "RSVP session type."; - } - container psbs { - description - "Path State Block (PSB) container."; - list psb { - description - "List of Path State Blocks."; - leaf source-port { - type inet:port-number; - description - "RSVP source port."; - reference - "RFC2205"; - } - leaf expires-in { - type uint32; - units "seconds"; - default "180"; - description - "Time to expiry (in seconds)."; - } - } - } - container rsbs { - description - "Reservation State Block (RSB) container."; - list rsb { - description - "List of Reservation State Blocks."; - leaf source-port { - type inet:port-number; - description - "RSVP source port."; - reference - "RFC2205"; - } - leaf reservation-style { - type identityref { - base reservation-style; - } - mandatory "true"; - description - "RSVP reservation style."; - } - leaf expires-in { - type uint32; - units "seconds"; - default "180"; - description - "Time to expiry (in seconds)."; - } - } - } - } - - grouping neighbor-attributes { - description - "Top level grouping for RSVP neighbor properties."; - leaf address { - type inet:ip-address; - description - "Address of the RSVP neighbor."; - } - leaf epoch { - type uint32; - default "0"; - description - "Neighbor epoch."; - reference "RFC5063"; - } - leaf expiry-time { - type uint32; - units "seconds"; - default "180"; - description - "Neighbor expiry time after which the neighbor state is - purged if no states associated with it."; - } - uses neighbor-graceful-restart { - description - "Allows configuration applicable to all - neighbors"; - } - leaf hello-status { - type enumeration { - enum enabled { - description - "RSVP Hellos enabled."; - } - enum disabled { - description - "RSVP Hellos disabled."; - } - enum restarting { - description - "RSVP restarting."; - } - } - config false; - description - "RSVP Hello status."; - } - leaf interface { - type if:interface-ref; - description - "Interface where RSVP neighbor was detected."; - } - leaf neighbor-status { - type enumeration { - enum up { - description - "Neighbor state up."; - } - enum down { - description - "Neighbor state down."; - } - enum hello-disable { - description - "RSVP Hellos disabled."; - } - enum restarting { - description - "RSVP neighbor restarting."; - } - } - config false; - description - "RSVP neighbor state."; - } - leaf refresh-reduction-capable { - type boolean; - default "true"; - description - "Enables all RSVP refresh reduction message bundling, RSVP - message ID, reliable message delivery and Srefresh - messages."; - reference - "RFC2961 RSVP Refresh Overhead Reduction Extensions"; - } - leaf restart-count { - type yang:counter32; - config false; - description - "Number of times this RSVP neighbor has restarted."; - } - leaf restart-time { - type yang:date-and-time; - config false; - description - "Last restart time of the RSVP neighbor."; - reference "RFC3473"; - } - } - - grouping packet-statistics { - description - "Packet statistics grouping."; - container packets { - description - "Packet statistics container."; - leaf sent { - type yang:counter64; - description - "RSVP packet sent count."; - } - leaf received { - type yang:counter64; - description - "RSVP packet received count."; - } - } - } - - grouping message-statistics { - description - "RSVP protocol statistics grouping."; - container messages { - description - "RSVP protocol statistics container."; - leaf ack-sent { - type yang:counter64; - description - "RSVP Hello sent count."; - } - leaf ack-received { - type yang:counter64; - description - "RSVP Hello received count."; - } - leaf bundle-sent { - type yang:counter64; - description - "RSVP Bundle message sent count."; - } - leaf bundle-received { - type yang:counter64; - description - "RSVP Bundle message received count."; - } - leaf hello-sent { - type yang:counter64; - description - "RSVP Hello message sent count."; - } - leaf hello-received { - type yang:counter64; - description - "RSVP Hello message received count."; - } - leaf integrity-challenge-sent { - type yang:counter64; - description - "RSVP Integrity Challenge message sent count."; - } - leaf integrity-challenge-received { - type yang:counter64; - description - "RSVP Integrity Challenge message received count."; - } - leaf integrity-response-sent { - type yang:counter64; - description - "RSVP Integrity Response message sent count."; - } - leaf integrity-response-received { - type yang:counter64; - description - "RSVP Integrity Response message received count."; - } - leaf notify-sent { - type yang:counter64; - description - "RSVP Notify message sent count."; - } - leaf notify-received { - type yang:counter64; - description - "RSVP Notify message received count."; - } - leaf path-sent { - type yang:counter64; - description - "RSVP Path message sent count."; - } - leaf path-received { - type yang:counter64; - description - "RSVP Path message received count."; - } - leaf path-err-sent { - type yang:counter64; - description - "RSVP Path error message sent count."; - } - leaf path-err-received { - type yang:counter64; - description - "RSVP Path error message received count."; - } - leaf path-tear-sent { - type yang:counter64; - description - "RSVP Path tear message sent count."; - } - leaf path-tear-received { - type yang:counter64; - description - "RSVP Path tear message received count."; - } - leaf resv-sent { - type yang:counter64; - description - "RSVP Resv message sent count."; - } - leaf resv-received { - type yang:counter64; - description - "RSVP Resv message received count."; - } - leaf resv-confirm-sent { - type yang:counter64; - description - "RSVP Confirm message sent count."; - } - leaf resv-confirm-received { - type yang:counter64; - description - "RSVP Confirm message received count."; - } - leaf resv-err-sent { - type yang:counter64; - description - "RSVP Resv error message sent count."; - } - leaf resv-err-received { - type yang:counter64; - description - "RSVP Resv error message received count."; - } - leaf resv-tear-sent { - type yang:counter64; - description - "RSVP Resv tear message sent count."; - } - leaf resv-tear-received { - type yang:counter64; - description - "RSVP Resv tear message received count."; - } - leaf srefresh-sent { - type yang:counter64; - description - "RSVP Srefresh message sent count."; - } - leaf srefresh-received { - type yang:counter64; - description - "RSVP Srefresh message received count."; - } - leaf unknown-messages-received { - type yang:counter64; - description - "Unknown messages received count."; - } - } - } - - grouping errors-statistics { - description - "Error statistics grouping."; - container errors { - description - "Error statistics container."; - leaf authenticate { - type yang:counter64; - description - "The total number of RSVP packets received with an - authentication failure."; - } - leaf checksum { - type yang:counter64; - description - "The total number of RSVP packets received with an invalid - checksum value."; - } - leaf packet-length { - type yang:counter64; - description - "The total number of packets received with an invalid - packet length."; - } - } - } - - grouping statistics { - description - "RSVP statistic attributes."; - container statistics { - config false; - description - "RSVP statistics container."; - uses message-statistics; - uses packet-statistics; - uses errors-statistics; - } - } - - grouping intf-attributes { - description - "Top level grouping for RSVP interface properties."; - uses refresh-reduction; - uses hellos; - uses authentication; - uses statistics; - } - - augment "/rt:routing/rt:control-plane-protocols/" - + "rt:control-plane-protocol" { - when "rt:type = 'rsvp:rsvp'" { - description - "This augment is only valid when routing protocol instance - type is RSVP."; - } - description - "RSVP protocol augmentation."; - container rsvp { - presence "Enable RSVP feature"; - description - "RSVP feature container"; - container interfaces { - description - "RSVP interfaces container."; - uses intf-attributes; - list interface { - key "name"; - description - "RSVP interfaces."; - leaf name { - type if:interface-ref; - description - "RSVP interface."; - } - uses intf-attributes; - } - } - container sessions { - description - "RSVP sessions container."; - list session-ip { - key "destination protocol-id destination-port"; - config false; - description - "List of RSVP sessions."; - uses session-attributes; - } - } - container neighbors { - description - "RSVP neighbors container"; - list neighbor { - key "address"; - description - "List of RSVP neighbors"; - uses neighbor-attributes; - } - } - uses graceful-restart; - } - } - - grouping session-ref { - description - "Session reference information"; - leaf destination { - type leafref { - path "/rt:routing/rt:control-plane-protocols" - + "/rt:control-plane-protocol/rsvp:rsvp" - + "/rsvp:sessions/rsvp:session-ip/destination"; - } - mandatory true; - description - "The RSVP session destination."; - } - leaf protocol-id { - type uint8; - mandatory true; - description - "The RSVP session protocol ID."; - } - leaf destination-port { - type inet:ip-address; - mandatory true; - description - "The RSVP session destination port."; - } - } - - rpc clear-session { - nacm:default-deny-all; - description - "Clears RSVP sessions RPC"; - input { - leaf routing-protocol-instance-name { - type leafref { - path "/rt:routing/rt:control-plane-protocols/" - + "rt:control-plane-protocol/rt:name"; - } - mandatory true; - description - "Name of the RSVP protocol instance whose session - is being cleared. - - If the corresponding RSVP instance doesn't exist, - then the operation will fail with an error-tag of - 'data-missing' and an error-app-tag of - 'routing-protocol-instance-not-found'."; - } - choice filter-type { - mandatory true; - description - "Filter choice"; - case match-all { - leaf all { - type empty; - mandatory true; - description - "Match all RSVP sessions."; - } - } - case match-one { - container session-info { - description - "Specifies the specific session to invoke the operation - on."; - choice session-type { - mandatory true; - description - "The RSVP session type."; - case rsvp-session-ip { - uses session-ref; - } - } - } - } - } - } - } - - rpc clear-neighbor { - nacm:default-deny-all; - description - "RPC to clear the RSVP Hello session to a neighbor."; - input { - leaf routing-protocol-instance-name { - type leafref { - path "/rt:routing/rt:control-plane-protocols/" - + "rt:control-plane-protocol/rt:name"; - } - mandatory true; - description - "Name of the RSVP protocol instance whose session - is being cleared. - - If the corresponding RSVP instance doesn't exist, - then the operation will fail with an error-tag of - 'data-missing' and an error-app-tag of - 'routing-protocol-instance-not-found'."; - } - choice filter-type { - mandatory true; - description - "The Filter choice."; - case match-all { - leaf all { - type empty; - mandatory true; - description - "Match all RSVP neighbor sessions."; - } - } - case match-one { - leaf neighbor-address { - type leafref { - path "/rt:routing/rt:control-plane-protocols" - + "/rt:control-plane-protocol/rsvp:rsvp" - + "/rsvp:neighbors/rsvp:neighbor/address"; - } - mandatory true; - description - "Match the specific RSVP neighbor session."; - } - } - } - } - } - - rpc clear-authentication { - nacm:default-deny-all; - description - "Clears the RSVP Security Association (SA) before the - lifetime expires."; - input { - leaf routing-protocol-instance-name { - type leafref { - path "/rt:routing/rt:control-plane-protocols/" - + "rt:control-plane-protocol/rt:name"; - } - mandatory true; - description - "Name of the RSVP protocol instance whose session - is being cleared. - - If the corresponding RSVP instance doesn't exist, - then the operation will fail with an error-tag of - 'data-missing' and an error-app-tag of - 'routing-protocol-instance-not-found'."; - } - choice filter-type { - mandatory true; - description - "Filter choice"; - case match-all { - leaf all { - type empty; - mandatory true; - description - "Match all RSVP security associations."; - } - } - case match-one-interface { - leaf interface { - type if:interface-ref; - description - "Interface where RSVP security association(s) to be - detected."; - } - } - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rsvp@2024-02-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-rsvp@2024-02-28.yang new file mode 100644 index 000000000..06c6de844 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-rsvp@2024-02-28.yang @@ -0,0 +1,917 @@ +module ietf-rsvp { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; + + /* Replace with IANA when assigned */ + prefix rsvp; + + import ietf-interfaces { + prefix if; + reference + "RFC8343: A YANG Data Model for Interface Management"; + } + import ietf-inet-types { + prefix inet; + reference + "RFC6991: Common YANG Data Types"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC6991: Common YANG Data Types"; + } + import ietf-routing { + prefix rt; + reference + "RFC8349: A YANG Data Model for Routing Management + (NMDA Version)"; + } + import ietf-key-chain { + prefix key-chain; + reference + "RFC8177: YANG Data Model for Key Chains"; + } + import ietf-netconf-acm { + prefix nacm; + reference + "RFC8341: Network Configuration Access Control Model"; + } + organization + "IETF Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + contact + "WG Web: + WG List: + + Editor: Vishnu Pavan Beeram + + + Editor: Tarek Saad + + + Editor: Rakesh Gandhi + + Editor: Xufeng Liu + + + Editor: Igor Bryskin + "; + description + "This module contains the RSVP YANG data model. + 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."; + + // RFC Ed.: replace XXXX with actual RFC number and remove this + // note. + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + + revision 2024-02-28 { + description + "Initial version."; + reference + "RFCXXXX: A YANG Data Model for Resource Reservation Protocol + (RSVP)"; + } + + identity rsvp { + base rt:routing-protocol; + description + "RSVP protocol"; + } + + identity rsvp-session-type { + description + "Base RSVP session type"; + } + + identity rsvp-session-ip { + base rsvp-session-type; + description + "RSVP IP session type"; + } + + identity reservation-style { + description + "Base identity for reservation style."; + } + + identity reservation-wildcard-filter { + base reservation-style; + description + "Wildcard-Filter (WF) Style."; + reference + "RFC2205"; + } + + identity reservation-fixed-filter { + base reservation-style; + description + "Fixed-Filter (FF) Style."; + reference + "RFC2205"; + } + + identity reservation-shared-explicit { + base reservation-style; + description + "Shared Explicit (SE) Style."; + reference + "RFC2205"; + } + + grouping intf-attributes { + description + "Top level grouping for RSVP interface properties."; + container refresh-reduction { + description + "Top level container for RSVP refresh reduction parameters."; + leaf enabled { + type boolean; + default "true"; + description + "'true' if RSVP Refresh Reduction is enabled. + 'false' if RSVP Refresh Reduction is disabled."; + } + reference + "RFC2961 RSVP Refresh Overhead Reduction Extensions"; + } + container hellos { + description + "Top level container for RSVP hello parameters."; + leaf enabled { + type boolean; + default "true"; + description + "'true' if RSVP Hello is enabled. + 'false' if RSVP Hello is disabled."; + reference + "RFC3209: RSVP-TE: Extensions to RSVP for LSP Tunnels. + RFC5495: Description of the Resource Reservation Protocol - + Traffic-Engineered (RSVP-TE) Graceful Restart Procedures."; + } + } + container authentication { + description + "Top level container for RSVP authentication parameters."; + leaf enabled { + type boolean; + default "false"; + description + "'true' if RSVP Authentication is enabled. + 'false' if RSVP Authentication is disabled."; + } + leaf authentication-key { + type string; + description + "An authentication key string."; + reference + "RFC2747: RSVP Cryptographic Authentication"; + } + leaf crypto-algorithm { + type identityref { + base key-chain:crypto-algorithm; + } + description + "Cryptographic algorithm associated with key."; + } + } + container statistics { + config false; + description + "RSVP statistics container."; + container messages { + description + "RSVP protocol statistics container."; + leaf ack-sent { + type yang:counter64; + description + "RSVP Hello sent count."; + } + leaf ack-received { + type yang:counter64; + description + "RSVP Hello received count."; + } + leaf bundle-sent { + type yang:counter64; + description + "RSVP Bundle message sent count."; + } + leaf bundle-received { + type yang:counter64; + description + "RSVP Bundle message received count."; + } + leaf hello-sent { + type yang:counter64; + description + "RSVP Hello message sent count."; + } + leaf hello-received { + type yang:counter64; + description + "RSVP Hello message received count."; + } + leaf integrity-challenge-sent { + type yang:counter64; + description + "RSVP Integrity Challenge message sent count."; + } + leaf integrity-challenge-received { + type yang:counter64; + description + "RSVP Integrity Challenge message received count."; + } + leaf integrity-response-sent { + type yang:counter64; + description + "RSVP Integrity Response message sent count."; + } + leaf integrity-response-received { + type yang:counter64; + description + "RSVP Integrity Response message received count."; + } + leaf notify-sent { + type yang:counter64; + description + "RSVP Notify message sent count."; + } + leaf notify-received { + type yang:counter64; + description + "RSVP Notify message received count."; + } + leaf path-sent { + type yang:counter64; + description + "RSVP Path message sent count."; + } + leaf path-received { + type yang:counter64; + description + "RSVP Path message received count."; + } + leaf path-err-sent { + type yang:counter64; + description + "RSVP Path error message sent count."; + } + leaf path-err-received { + type yang:counter64; + description + "RSVP Path error message received count."; + } + leaf path-tear-sent { + type yang:counter64; + description + "RSVP Path tear message sent count."; + } + leaf path-tear-received { + type yang:counter64; + description + "RSVP Path tear message received count."; + } + leaf resv-sent { + type yang:counter64; + description + "RSVP Resv message sent count."; + } + leaf resv-received { + type yang:counter64; + description + "RSVP Resv message received count."; + } + leaf resv-confirm-sent { + type yang:counter64; + description + "RSVP Confirm message sent count."; + } + leaf resv-confirm-received { + type yang:counter64; + description + "RSVP Confirm message received count."; + } + leaf resv-err-sent { + type yang:counter64; + description + "RSVP Resv error message sent count."; + } + leaf resv-err-received { + type yang:counter64; + description + "RSVP Resv error message received count."; + } + leaf resv-tear-sent { + type yang:counter64; + description + "RSVP Resv tear message sent count."; + } + leaf resv-tear-received { + type yang:counter64; + description + "RSVP Resv tear message received count."; + } + leaf srefresh-sent { + type yang:counter64; + description + "RSVP Srefresh message sent count."; + } + leaf srefresh-received { + type yang:counter64; + description + "RSVP Srefresh message received count."; + } + leaf unknown-messages-received { + type yang:counter64; + description + "Unknown messages received count."; + } + } + container packets { + description + "Packet statistics container."; + leaf sent { + type yang:counter64; + description + "RSVP packet sent count."; + } + leaf received { + type yang:counter64; + description + "RSVP packet received count."; + } + } + container errors { + description + "Error statistics container."; + leaf authenticate { + type yang:counter64; + description + "The total number of RSVP packets received with an + authentication failure."; + } + leaf checksum { + type yang:counter64; + description + "The total number of RSVP packets received with an + invalid checksum value."; + } + leaf packet-length { + type yang:counter64; + description + "The total number of packets received with an invalid + packet length."; + } + } + } + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol" { + when "rt:type = 'rsvp:rsvp'" { + description + "This augment is only valid when routing protocol instance + type is RSVP."; + } + description + "RSVP protocol augmentation."; + container rsvp { + presence "Enable RSVP feature"; + description + "RSVP feature container"; + container interfaces { + description + "RSVP interfaces container."; + uses intf-attributes; + list interface { + key "name"; + description + "RSVP interfaces."; + leaf name { + type if:interface-ref; + description + "RSVP interface."; + } + uses intf-attributes; + } + } + container sessions { + description + "RSVP sessions container."; + list session-ip { + key "destination protocol-id destination-port"; + config false; + description + "List of RSVP sessions."; + leaf destination-port { + type uint16; + description + "RSVP destination port."; + reference + "RFC2205"; + } + leaf protocol-id { + type uint8; + description + "The IP protocol ID."; + reference + "RFC2205, section 3.2"; + } + leaf source { + type inet:ip-address; + description + "RSVP source address."; + reference + "RFC2205"; + } + leaf destination { + type inet:ip-address; + description + "RSVP destination address."; + reference + "RFC2205"; + } + leaf session-name { + type string; + description + "The signaled name of this RSVP session."; + } + leaf session-status { + type enumeration { + enum up { + description + "RSVP session is up."; + } + enum down { + description + "RSVP session is down."; + } + } + description + "Enumeration of RSVP session states."; + } + leaf session-type { + type identityref { + base rsvp-session-type; + } + mandatory "true"; + description + "RSVP session type."; + } + container psbs { + description + "Path State Block (PSB) container."; + list psb { + description + "List of Path State Blocks."; + leaf source-port { + type inet:port-number; + description + "RSVP source port."; + reference + "RFC2205"; + } + leaf expires-in { + type uint32; + units "seconds"; + description + "Time to expiry (in seconds)."; + } + } + } + container rsbs { + description + "Reservation State Block (RSB) container."; + list rsb { + description + "List of Reservation State Blocks."; + leaf source-port { + type inet:port-number; + description + "RSVP source port."; + reference + "RFC2205"; + } + leaf reservation-style { + type identityref { + base reservation-style; + } + description + "RSVP reservation style."; + } + leaf expires-in { + type uint32; + units "seconds"; + description + "Time to expiry (in seconds)."; + } + } + } + } + } + container neighbors { + description + "RSVP neighbors container"; + list neighbor { + key "address"; + description + "List of RSVP neighbors"; + leaf address { + type inet:ip-address; + description + "Address of the RSVP neighbor."; + } + leaf epoch { + type uint32; + description + "Neighbor epoch."; + reference "RFC2961 and RFC5063"; + } + leaf expiry-time { + type uint32; + units "seconds"; + description + "Neighbor expiry time after which the neighbor state is + purged if no states associated with it."; + } + container graceful-restart { + description + "Graceful restart information."; + leaf neighbor-restart-time { + type uint32; + units "seconds"; + config false; + description + "Time it takes the neighbor node to restart its + RSVP-TE component (to the point where it can + exchange RSVP Hello with its neighbors). A value of + 0xffffffff indicates that the restart of the + neighbor's control plane may occur over an + indeterminate interval and that the operation of its + data plane is unaffected by control plane + failures."; + reference "RFC3473"; + } + leaf neighbor-recovery-time { + type uint32; + units "seconds"; + config false; + description + "The period of time, in milliseconds, that the + neighbor node requires to re-synchronize RSVP and + MPLS forwarding state with its neighbor. A value of + zero (0) indicates that MPLS forwarding state was + not preserved across a particular reboot."; + reference "RFC3473"; + } + container helper-mode { + config false; + description + "Helper mode information."; + leaf neighbor-restart-time-remaining { + type uint32; + units "seconds"; + description + "Number of seconds remaining for neighbor to send + Hello message after restart."; + reference "RFC5063"; + } + leaf neighbor-recovery-time-remaining { + type uint32; + units "seconds"; + description + "Number of seconds remaining for neighbor to + refresh."; + reference "RFC5063"; + } + } + // helper-mode + } + leaf hello-status { + type enumeration { + enum enabled { + description + "RSVP Hellos enabled."; + } + enum disabled { + description + "RSVP Hellos disabled."; + } + enum restarting { + description + "RSVP restarting."; + } + } + config false; + description + "RSVP Hello status."; + } + leaf interface { + type if:interface-ref; + description + "Interface where RSVP neighbor was detected."; + } + leaf neighbor-status { + type enumeration { + enum up { + description + "Neighbor state up."; + } + enum down { + description + "Neighbor state down."; + } + enum hello-disable { + description + "RSVP Hellos disabled."; + } + enum restarting { + description + "RSVP neighbor restarting."; + } + } + config false; + description + "RSVP neighbor state."; + } + leaf refresh-reduction-capable { + type boolean; + default "true"; + description + "Enables all RSVP refresh reduction message bundling, + RSVP message ID, reliable message delivery and + Srefresh messages."; + reference + "RFC2961 RSVP Refresh Overhead Reduction Extensions"; + } + leaf restart-count { + type yang:counter32; + config false; + description + "Number of times this RSVP neighbor has restarted."; + } + leaf restart-time { + type yang:date-and-time; + config false; + description + "Last restart time of the RSVP neighbor."; + reference "RFC3473"; + } + } + } + container graceful-restart { + description + "Graceful restart local information."; + leaf enabled { + type boolean; + description + "'true' if RSVP Graceful Restart is enabled. + 'false' if RSVP Graceful Restart is disabled."; + reference "RFC5495"; + } + leaf local-restart-time { + type uint32; + units "seconds"; + description + "Time it takes the local node to restart its RSVP-TE + component (to the point where it can exchange RSVP + Hello with its neighbors). A value of 0xffffffff + indicates that the restart of the neighbor's control + plane may occur over an indeterminate interval and that + the operation of its data plane is unaffected by control + plane failures."; + reference "RFC3473"; + } + leaf local-recovery-time { + type uint32; + units "seconds"; + description + "The period of time, in seconds, that the local + node requires to re-synchronize RSVP and MPLS + forwarding state with its neighbor. A value of zero (0) + indicates that MPLS forwarding state was not preserved + across a particular reboot."; + reference "RFC3473"; + } + container helper-mode { + description + "Helper mode information. In this mode, the node + resynchronizes its stored states with a neighbor whose + control plane has restarted. The helper mode term is + borrowed from RFC3623 and adopted by several vendors + vendors in their implementation of RSVP graceful + restart."; + leaf enabled { + type boolean; + description + "'true' if helper mode is enabled."; + } + leaf max-helper-restart-time { + type uint32; + units "seconds"; + default "20"; + description + "The maximum time the router or switch waits after it + discovers that the neighboring router has gone down + before it declares the neighbor down."; + reference "RFC5063"; + } + leaf max-helper-recovery-time { + type uint32; + units "seconds"; + default "180"; + description + "The maximum amount of time the router retains the + state of its RSVP neighbors while they undergo a + graceful restart."; + reference "RFC5063"; + } + } + } + } + } + + grouping session-ref { + description + "Session reference information"; + leaf destination { + type leafref { + path "/rt:routing/rt:control-plane-protocols" + + "/rt:control-plane-protocol/rsvp:rsvp" + + "/rsvp:sessions/rsvp:session-ip/destination"; + } + mandatory true; + description + "The RSVP session destination."; + } + leaf protocol-id { + type uint8; + mandatory true; + description + "The RSVP session protocol ID."; + } + leaf destination-port { + type inet:ip-address; + mandatory true; + description + "The RSVP session destination port."; + } + } + rpc clear-session { + nacm:default-deny-all; + description + "Clears RSVP sessions RPC"; + input { + leaf routing-protocol-instance-name { + type leafref { + path "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/rt:name"; + } + mandatory true; + description + "Name of the RSVP protocol instance whose session + is being cleared. + + If the corresponding RSVP instance doesn't exist, + then the operation will fail with an error-tag of + 'data-missing' and an error-app-tag of + 'routing-protocol-instance-not-found'."; + } + choice filter-type { + mandatory true; + description + "Filter choice"; + case match-all { + leaf all { + type empty; + mandatory true; + description + "Match all RSVP sessions."; + } + } + case match-one { + container session-info { + description + "Specifies the specific session to invoke the operation + on."; + choice session-type { + mandatory true; + description + "The RSVP session type."; + case rsvp-session-ip { + uses session-ref; + } + } + } + } + } + } + } + + rpc clear-neighbor { + nacm:default-deny-all; + description + "RPC to clear the RSVP Hello session to a neighbor."; + input { + leaf routing-protocol-instance-name { + type leafref { + path "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/rt:name"; + } + mandatory true; + description + "Name of the RSVP protocol instance whose session + is being cleared. + + If the corresponding RSVP instance doesn't exist, + then the operation will fail with an error-tag of + 'data-missing' and an error-app-tag of + 'routing-protocol-instance-not-found'."; + } + choice filter-type { + mandatory true; + description + "The Filter choice."; + case match-all { + leaf all { + type empty; + mandatory true; + description + "Match all RSVP neighbor sessions."; + } + } + case match-one { + leaf neighbor-address { + type leafref { + path "/rt:routing/rt:control-plane-protocols" + + "/rt:control-plane-protocol/rsvp:rsvp" + + "/rsvp:neighbors/rsvp:neighbor/address"; + } + mandatory true; + description + "Match the specific RSVP neighbor session."; + } + } + } + } + } + + rpc clear-authentication { + nacm:default-deny-all; + description + "Clears the RSVP Security Association (SA) before the + lifetime expires."; + input { + leaf routing-protocol-instance-name { + type leafref { + path "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/rt:name"; + } + mandatory true; + description + "Name of the RSVP protocol instance whose session + is being cleared. + + If the corresponding RSVP instance doesn't exist, + then the operation will fail with an error-tag of + 'data-missing' and an error-app-tag of + 'routing-protocol-instance-not-found'."; + } + choice filter-type { + mandatory true; + description + "Filter choice"; + case match-all { + leaf all { + type empty; + mandatory true; + description + "Match all RSVP security associations."; + } + } + case match-one-interface { + leaf interface { + type if:interface-ref; + description + "Interface where RSVP security association(s) to be + detected."; + } + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-schc-coap@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-schc-coap@2024-07-08.yang new file mode 100644 index 000000000..6c6b9f64e --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-schc-coap@2024-07-08.yang @@ -0,0 +1,192 @@ +module ietf-schc-coap { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-schc-coap"; + prefix schc-coap; + + import ietf-schc { + prefix schc; + } + + organization + "IETF Static Context Header Compression (schc) Working Group"; + contact + "WG Web: + WG List: + Editor: Marco Tiloca + "; + description + "Copyright (c) 2021 IETF Trust and the persons identified as + authors of the code. All rights reserved. + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Simplified BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + **************************************************************** + + This module extends the ietf-schc module defined in RFC 9363 to + include the new CoAP options as defined in RFC YYYY."; + + revision 2024-07-08 { + description + "New CoAP extensions and extended OSCORE fields."; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Sections 5 and 6)"; + } + + // Field ID + + identity fid-coap-option-proxy-cri { + base "schc:fid-coap-option"; + description + "Proxy-CRI option."; + reference + "RFC XXXX Constrained Resource Identifiers"; + } + + identity fid-coap-option-proxy-scheme-number { + base "schc:fid-coap-option"; + description + "Proxy-Scheme-Number option."; + reference + "RFC XXXX Constrained Resource Identifiers"; + } + + identity fid-coap-option-hop-limit { + base "schc:fid-coap-option"; + description + "Hop Limit option to avoid infinite forwarding loops."; + reference + "RFC 8768 Constrained Application Protocol (CoAP) + Hop-Limit Option"; + } + + identity fid-coap-option-echo { + base "schc:fid-coap-option"; + description + "Echo option."; + reference + "RFC 9175 Constrained Application Protocol (CoAP): + Echo, Request-Tag, and Token Processing"; + } + + identity fid-coap-option-request-tag { + base "schc:fid-coap-option"; + description + "Request-Tag option."; + reference + "RFC 9175 Constrained Application Protocol (CoAP): + Echo, Request-Tag, and Token Processing"; + } + + identity fid-coap-option-q-block1 { + base "schc:fid-coap-option"; + description + "Q-Block1 option."; + reference + "RFC 9177 Constrained Application Protocol (CoAP) + Block-Wise Transfer Options Supporting + Robust Transmission"; + } + + identity fid-coap-option-q-block2 { + base "schc:fid-coap-option"; + description + "Q-Block2 option."; + reference + "RFC 9177 Constrained Application Protocol (CoAP) + Block-Wise Transfer Options Supporting + Robust Transmission"; + } + + identity fid-coap-option-edhoc { + base "schc:fid-coap-option"; + description + "EDHOC option."; + reference + "RFC XXXX Using Ephemeral Diffie-Hellman Over COSE (EDHOC) + with the Constrained Application Protocol (CoAP) + and Object Security for Constrained RESTful + Environments (OSCORE)"; + } + + identity fid-coap-option-oscore-x { + base "schc:fid-coap-option"; + description + "CoAP option OSCORE x field."; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Section 6.4) + RFC XXXX Key Update for OSCORE (KUDOS)"; + } + + identity fid-coap-option-oscore-nonce { + base "schc:fid-coap-option"; + description + "CoAP option OSCORE nonce field."; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Section 6.4) + RFC XXXX Key Update for OSCORE (KUDOS)"; + } + + identity fid-coap-option-oscore-y { + base "schc:fid-coap-option"; + description + "CoAP option OSCORE y field."; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Section 6.4) + RFC XXXX Key Update for OSCORE (KUDOS)"; + } + + identity fid-coap-option-oscore-oldnonce { + base "schc:fid-coap-option"; + description + "CoAP option OSCORE old_nonce field."; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Section 6.4) + RFC XXXX Key Update for OSCORE (KUDOS)"; + } + + // Function Length + + identity fl-oscore-oscore-nonce-length { + base "schc:fl-base-type"; + description + "Size in bytes of the OSCORE nonce corresponding to m+1."; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Section 6.4) + RFC XXXX Key Update for OSCORE (KUDOS)"; + } + + identity fl-oscore-oscore-oldnonce-length { + base "schc:fl-base-type"; + description + "Size in bytes of the OSCORE old_nonce corresponding to w+1. + "; + reference + "RFC YYYY Static Context Header Compression (SCHC) for the + Constrained Application Protocol (CoAP) (see + Section 6.4) + RFC XXXX Key Update for OSCORE (KUDOS)"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-schedule@2023-01-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-schedule@2023-01-19.yang deleted file mode 100644 index 7c94625a6..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-schedule@2023-01-19.yang +++ /dev/null @@ -1,534 +0,0 @@ -module ietf-schedule { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-schedule"; - prefix schedule; - - import ietf-yang-types { - prefix yang; - revision-date 2023-01-23; - reference - "RFC YYYY: Common YANG Data Types"; - } - - import ietf-system { - prefix sys; - reference - "RFC 7317: A YANG Data Model for System Management"; - } - - organization - "IETF OPSAWG Working Group"; - contact - "WG Web: - WG List: "; - description - "This YANG module defines two groupings for iCalendar (Internet - Calendaring and Scheduling Core Object Specification) data - types: period of time and recurrence rule, for representing and - exchanging calendaring and scheduling information. The YANG - module complies with Sections 3.3.9 and 3.3.10 of RFC 5545. - - Copyright (c) 2023 IETF Trust and the persons identified - as authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with - or without modification, is permitted pursuant to, and - subject to the license terms contained in, the Revised - BSD License set forth in Section 4.c of the IETF Trust's - Legal Provisions Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC - itself for full legal notices. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here."; - - revision 2023-01-19 { - description - "Initial revision."; - reference - "RFC XXXX: A YANG Data Model for Scheduling."; - } - - feature basic-recurrence-supported { - description - "Indicates that the server supports configuring a basic - scheduled recurrence."; - } - - feature icalendar-recurrence-supported { - description - "Indicates that the server supports configuring a comprehensive - scheduled icalendar recurrence"; - reference - "RFC 5545: Internet Calendaring and Scheduling Core Object - Specification (iCalendar), - Section 3.3.10 and 3.8.5"; - } - - typedef weekday { - type enumeration { - enum sunday { - value 0; - description - "Sunday of the week."; - } - enum monday { - value 1; - description - "Monday of the week."; - } - enum tuesday { - value 2; - description - "Tuesday of the week."; - } - enum wednesday { - value 3; - description - "Wednesday of the week."; - } - enum thursday { - value 4; - description - "Thursday of the week."; - } - enum friday { - value 5; - description - "Friday of the week."; - } - enum saturday { - value 6; - description - "Saturday of the week."; - } - } - description - "Seven days of the week."; - } - - typedef duration { - type string { - pattern '((\+)?|\-)P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])' - + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W'; - } - description - "Duration of the time. The format can represent nominal - durations (weeks designated by 'W' and days designated by 'D') - and accurate durations (hours:minutes:seconds follows the - designator 'T'). - - Note that this value type doesn't support the 'Y' and 'M' - designators to specify durations in terms of years and months. - - Negative durations are typically used to schedule an alarm to - trigger before an associated time."; - reference - "RFC 5545: Internet Calendaring and Scheduling Core Object - Specification (iCalendar), Sections 3.3.6 and - 3.8.6.3"; - } - - identity frequency-type { - description - "Base identity for frequency type."; - } - identity secondly { - base frequency-type; - description - "Identity for a repeating event based on an interval of - a second or more."; - } - identity minutely { - base frequency-type; - description - "Identity for a repeating event based on an interval of - a minute or more."; - } - identity hourly { - base frequency-type; - description - "Identity for a repeating event based on an interval of - an hour or more."; - } - identity daily { - base frequency-type; - description - "Identity for a repeating event based on an interval of - a day or more."; - } - identity weekly { - base frequency-type; - description - "Identity for a repeating event based on an interval of - a week or more."; - } - identity monthly { - base frequency-type; - description - "Identity for a repeating event based on an interval of - a month or more."; - } - identity yearly { - base frequency-type; - description - "Identity for a repeating event based on an interval of - a year or more."; - } - - grouping period-of-time { - description - "This grouping is defined for period of time property."; - reference - "RFC 5545: Internet Calendaring and Scheduling Core Object - Specification (iCalendar), Section 3.3.9"; - leaf period-start { - type yang:date-and-time; - description - "Period start time."; - } - leaf time-zone-identifier { - type sys:timezone-name; - description - "Indicates the identifier for the time zone in a time zone - database. This parameter MUST be specified if 'period-start' - value is neither reported in the format of UTC nor time zone - offset to UTC."; - } - choice period-type { - description - "Indicates the type of the time period. Two types are - supported."; - case explicit { - description - "A period of time is identified by its start and its end. - 'period-start' indicates the period start."; - leaf period-end { - type yang:date-and-time; - description - "Period end time. The start MUST be before the end. If a - local time without time zone offset to UTC time is - specified, it MUST use the same time zone reference as - 'period-start' parameter. If 'period-start' also uses a - local time without time zone offset to UTC, it MUST use - the time zone as specified by the - 'time-zone-identifier' parameter."; - } - } - case duration { - description - "A period of time is defined by a start and a - positive duration of time."; - leaf duration { - type duration { - pattern 'P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])' - + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W'; - } - description - "A positive duration of the time. This value is - equivalent to the format of duration type except that - the value cannot be negative."; - } - } - } - } - - grouping recurrence { - description - "A simple definition of recurrence."; - container recurrence-first { - description - "Specifies the first instance of the recurrence."; - leaf date-time-start { - type union { - type yang:date-no-zone; - type yang:date-and-time; - } - description - "Defines the first instance in the recurrence set. If it is - specified as a date-no-zone value type with no duration - specified, the recurrence's duration is taken to be one - day."; - reference - "RFC 5545: Internet Calendaring and Scheduling Core Object - Specification (iCalendar), Section 3.3.10"; - } - leaf time-zone-identifier { - type sys:timezone-name; - description - "Indicates the identifier for the time zone in a time zone - database. This parameter MUST be specified if 'start' - value is neither reported in the format of UTC nor time - zone offset to UTC."; - } - leaf duration { - type duration; - description - "When specified, it refers to the duration of - the first occurrence. The exact duration also applies to - all the recurrence instance."; - } - } - leaf frequency { - type identityref { - base frequency-type; - } - description - "This parameter is defined to identify the frequency type of - the recurrence rule."; - } - leaf interval { - type uint32; - description - "A positive integer representing at which intervals the - recurrence rule repeats. For example, within a 'daily' - recurrence rule, a value of '8' means every eight days."; - } - choice recurrence-bound { - description - "Modes to bound the recurrence rule. If no choice is - indicated, the recurrence rule is considered to repeat - forever."; - case until { - description - "This case defines a way that bounds the recurrence - rule in an inclusive manner."; - leaf until { - type union { - type yang:date-no-zone; - type yang:date-and-time; - } - description - "This parameter specifies a date-no-zone or - date-time value to bounds the recurrence. If the value - specified by this parameter is synchronized with the - specified recurrence, it becomes the last instance of - the recurrence. The value MUST have the same value type - as the value type of 'start' parameter."; - } - } - case count { - description - "This case defines the number of occurrences at which - to range-bound the recurrence."; - leaf count { - type uint32; - description - "The positive number of occurrences at which to - range-bound the recurrence."; - } - } - } - } - - grouping recurrence-with-date-times { - description - "This grouping defines an aggregate set of repeating - occurrences. The recurrence instances are defined by - the union of occurrences defined by both the - 'recurrence' and 'date-times'. Duplicate instances - are ignored."; - uses recurrence; - choice date-times-choice { - description - "Specify a list of occurrences which complement the - recurrence set defined by 'recurrence' grouping. If - it is specified as a period value, the duration of - the recurrence instance will be the one specified - by it, and not the duration defined inside the - recurrence-first parameter."; - case date-time { - description - "Specify a list of occurrences with date-and-time - values."; - leaf-list date-times { - type yang:date-and-time; - description - "Specifies a set of date-and-time values of - occurrences."; - } - } - case date { - description - "Specifies a list of occurrences with date-no-zone - values."; - leaf-list dates { - type yang:date-no-zone; - description - "Specifies a set of date-no-zone values of - occurrences."; - } - } - case period-timeticks { - description - "Specifies a list of occurrences with period span of - timeticks format."; - list period-timeticks { - key "period-start"; - description - "A list of period with timeticks formats."; - leaf period-start { - type yang:timeticks; - must - "(not(derived-from(../../frequency," - +"'schedule:secondly')) or (current() < 100)) and " - +"(not(derived-from(../../frequency," - +"'schedule:minutely')) or (current() < 6000)) and " - +"(not(derived-from(../../frequency,'schedule:hourly'))" - +" or (current() < 360000)) and " - +"(not(derived-from(../../frequency,'schedule:daily'))" - +" or (current() < 8640000)) and " - +"(not(derived-from(../../frequency,'schedule:weekly'))" - +" or (current() < 60480000)) and " - +"(not(derived-from(../../frequency," - +"'schedule:monthly')) or (current() < 267840000)) and " - +"(not(derived-from(../../frequency,'schedule:yearly'))" - +" or (current() < 3162240000))" { - error-message - "The period-start must not exceed the frequency - interval."; - } - description - "Start time of the scheduled value within one - recurrence."; - } - leaf period-end { - type yang:timeticks; - description - "End time of the scheduled value within one - recurrence."; - } - } - } - case period { - description - "Specifies a list of occurrences with period span - of date-and -time format."; - list period { - key "period-start"; - description - "A list of period with date-and-time formats."; - uses period-of-time; - } - } - } - } - - grouping icalendar-recurrence { - description - "This grouping is defined to identify properties - that contain a recurrence rule."; - reference - "RFC 5545: Internet Calendaring and Scheduling - Core Object Specification (iCalendar), - Section 3.8.5"; - - uses recurrence-with-date-times; - leaf-list bysecond { - type uint32 { - range "0..60"; - } - description - "A list of seconds within a minute."; - } - leaf-list byminute { - type uint32 { - range "0..59"; - } - description - "A list of minutes within an hour."; - } - leaf-list byhour { - type uint32 { - range "0..23"; - } - description - "Specifies a list of hours of the day."; - } - list byday { - key "weekday"; - description - "Specifies a list of days of the week."; - leaf-list direction { - when "derived-from(../../frequency, 'schedule:monthly') or " - + "(derived-from(../../frequency, 'schedule:yearly') " - + " and not(../../byyearweek))"; - type int32 { - range "-53..-1|1..53"; - } - description - "When specified, it indicates the nth occurrence of a - specific day within the monthly or yearly recurrence - rule. - For example, within a monthly rule, +1 monday represents - the first monday within the month, whereas -1 monday - represents the last monday of the month."; - } - leaf weekday { - type schedule:weekday; - description - "Corredponds to seven days of the week."; - } - } - - leaf-list bymonthday { - type int32 { - range "-31..-1|1..31"; - } - description - "Specifies a list of days of the month."; - } - leaf-list byyearday { - type int32 { - range "-366..-1|1..366"; - } - description - "Specifies a list of days of the year."; - } - leaf-list byyearweek { - when "derived-from(../frequency, 'schedule:yearly')"; - type int32 { - range "-53..-1|1..53"; - } - description - "Specifies a list of weeks of the year."; - } - leaf-list byyearmonth { - type uint32 { - range "1..12"; - } - description - "Specifies a list of months of the year."; - } - leaf-list bysetpos { - type int32 { - range "-366..-1|1..366"; - } - description - "Specifies a list of values that corresponds to the nth - occurrence within the set of recurrence instances - specified by the rule. It must only be used in conjunction - with another by the rule part."; - } - leaf workweek-start { - type schedule:weekday; - default "monday"; - description - "Specifies the day on which the workweek starts."; - } - leaf-list exception-dates { - type union { - type yang:date-no-zone; - type yang:date-and-time; - } - description - "Defines a list of exceptions for recurrence."; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-schedule@2024-04-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-schedule@2024-04-16.yang new file mode 100644 index 000000000..6dbfe886a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-schedule@2024-04-16.yang @@ -0,0 +1,812 @@ +module ietf-schedule { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-schedule"; + prefix schedule; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + + import ietf-system { + prefix sys; + reference + "RFC 7317: A YANG Data Model for System Management"; + } + + organization + "IETF NETMOD Working Group"; + contact + "WG Web: + WG List: + + Editor: Qiufang Ma + + Editor: Mohamed Boucadair + + Author: Daniel King + "; + description + "This YANG module defines a set of common types and groupings + which are applicable for scheduling purposes such as events, + policy, services, or resources based on date and time. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + revision 2024-04-16 { + description + "Initial revision."; + reference + "RFC XXXX: A Common YANG Data Model for Scheduling"; + } + + feature basic-recurrence-supported { + description + "Indicates that the server supports configuring a basic + scheduled recurrence."; + } + + feature icalendar-recurrence-supported { + description + "Indicates that the server supports configuring a comprehensive + scheduled icalendar recurrence"; + reference + "RFC 5545: Internet Calendaring and Scheduling Core Object + Specification (iCalendar), + Sections 3.3.10 and 3.8.5"; + } + + typedef weekday { + type enumeration { + enum sunday { + value 0; + description + "Sunday of the week."; + } + enum monday { + value 1; + description + "Monday of the week."; + } + enum tuesday { + value 2; + description + "Tuesday of the week."; + } + enum wednesday { + value 3; + description + "Wednesday of the week."; + } + enum thursday { + value 4; + description + "Thursday of the week."; + } + enum friday { + value 5; + description + "Friday of the week."; + } + enum saturday { + value 6; + description + "Saturday of the week."; + } + } + description + "Seven days of the week."; + } + + typedef duration { + type string { + pattern '((\+)?|\-)P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])' + + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W'; + } + description + "Duration of the time. The format can represent nominal + durations (weeks designated by 'W' and days designated by 'D') + and accurate durations (hours:minutes:seconds follows the + designator 'T'). + + Note that this value type doesn't support the 'Y' and 'M' + designators to specify durations in terms of years and months. + + Negative durations are typically used to schedule an alarm to + trigger before an associated time."; + reference + "RFC 5545: Internet Calendaring and Scheduling Core Object + Specification (iCalendar), Sections 3.3.6 and + 3.8.6.3"; + } + + identity frequency-type { + description + "Base identity for frequency type."; + } + + identity secondly { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + a second or more."; + } + + identity minutely { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + a minute or more."; + } + + identity hourly { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + an hour or more."; + } + + identity daily { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + a day or more."; + } + + identity weekly { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + a week or more."; + } + + identity monthly { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + a month or more."; + } + + identity yearly { + base frequency-type; + description + "Indicates a repeating rule based on an interval of + a year or more."; + } + + identity schedule-type { + description + "Base identity for schedule type."; + } + + identity one-shot { + base schedule-type; + description + "Indicates a one-shot schedule. That is a schedule that + will trigger an action without the duration/end time being + specified and then the schedule will disable itself."; + } + + identity period { + base schedule-type; + description + "Indicates a period-based schedule consisting either a + start and end or a start and positive duration of time."; + } + + identity recurrence { + base schedule-type; + description + "Indicates a recurrence-based schedule."; + } + + identity schedule-state { + description + "Base identity for schedule state."; + } + + identity enabled { + base schedule-state; + description + "Indicates a recurrence with an enabled state."; + } + + identity finished { + base schedule-state; + description + "Indicates a recurrence with a finished state. + The finished state indicates that the schedule has ended."; + } + + identity disabled { + base schedule-state; + description + "Indicates a recurrence with a disabled state."; + } + + identity out-of-date { + base schedule-state; + description + "Indicates a recurrence with an out-of-date state."; + } + + identity discard-action { + description + "Indicates that a schedule will be discarded."; + } + + identity warning { + base discard-action; + description + "Indicates that a warning message is generated + when a schedule is discarded."; + } + + identity error { + base discard-action; + description + "Indicates that an error message is generated + when a schedule is discarded."; + } + + identity silently-discard { + base discard-action; + description + "Indicates that an invalid schedule is silently + discarded."; + } + + grouping generic-schedule-params { + description + "Includes a set of generic parameters that are followed by + the entity that supports schedules. + + Such parameters are used as guards to prevent, e.g., stale + configuration."; + leaf description { + type string; + description + "Provides a description of the schedule."; + } + leaf time-zone-identifier { + type sys:timezone-name; + description + "Indicates the identifier for the time zone."; + } + leaf validity { + type yang:date-and-time; + description + "Specifies the date and time after which a schedule will + be considered as invalid. This parameter takes precedence + over similar attributes that are provided at the schedule + instance itself."; + } + leaf max-allowed-start { + type yang:date-and-time; + description + "Specifies the maximum scheduled start date and time. + A requested schedule whose first instance occurs after + this value cannot be accepted by the entity. Specifically, + a requested schedule will be rejected if the first + occurrence of that schedule exceeds 'max-allowed-start'."; + } + leaf min-allowed-start { + type yang:date-and-time; + description + "Specifies the minimum scheduled start date and time. + A requested schedule whose first instance occurs before + this value cannot be accepted by the entity. Specifically, + a requested schedule will be rejected if the first + occurrence of that schedule is scheduled before + 'min-allowed-start'."; + } + leaf max-allowed-end { + type yang:date-and-time; + description + "A requested schedule will be rejected if the end time of + the last occurrence exceeds 'max-allowed-end'."; + } + leaf discard-action { + type identityref { + base discard-action; + } + description + "Specifies the behavior when a schedule is discarded when + enforcing the guards in this grouping or it is received + out-of-date."; + } + } + + grouping period-of-time { + description + "This grouping is defined for period of time property."; + reference + "RFC 5545: Internet Calendaring and Scheduling Core Object + Specification (iCalendar), Section 3.3.9"; + leaf period-description { + type string; + description + "Provides a description of the period."; + } + leaf period-start { + type yang:date-and-time; + mandatory true; + description + "Period start time."; + } + leaf time-zone-identifier { + type sys:timezone-name; + description + "Indicates the identifier for the time zone in a time zone + database. This parameter MUST be specified if 'period-start' + value is neither reported in the format of UTC nor time zone + offset to UTC."; + } + choice period-type { + description + "Indicates the type of the time period. Two types are + supported."; + case explicit { + description + "A period of time is identified by its start and its end. + 'period-start' indicates the period start."; + leaf period-end { + type yang:date-and-time; + description + "Period end time. The start MUST be before the end. If a + local time without time zone offset to UTC time is + specified, it MUST use the same time zone reference as + 'period-start' parameter. If 'period-start' also uses a + local time without time zone offset to UTC, it MUST use + the time zone as specified by the + 'time-zone-identifier' parameter."; + } + } + case duration { + description + "A period of time is defined by a start and a positive + duration of time."; + leaf duration { + type duration { + pattern 'P((([0-9]+)D)?(T(0[0-9]|1[0-9]|2[0-3])' + + ':[0-5][0-9]:[0-5][0-9]))|P([0-9]+)W'; + } + description + "A positive duration of the time. This value is + equivalent to the format of duration type except that + the value cannot be negative."; + } + } + } + } + + grouping recurrence { + description + "A simple definition of recurrence."; + leaf recurrence-description { + type string; + description + "Provides a description of the recurrence."; + } + leaf frequency { + type identityref { + base frequency-type; + } + mandatory true; + description + "Specifies the frequency type of the recurrence rule."; + } + leaf interval { + type uint32; + description + "A positive integer representing at which intervals the + recurrence rule repeats. For example, within a 'daily' + recurrence rule, a value of '8' means every eight days. + The default value is '1', means every second for a + 'secondly' recurrence rule, every minute for a 'minutely' + rule, and so on."; + } + } + + grouping recurrence-utc { + description + "A simple definition of recurrence with time specified in + UTC. This grouping is intended to be machine-friendly."; + container recurrence-first { + description + "Specifies the first instance of the recurrence."; + leaf utc-start-time { + type yang:date-and-time; + description + "Defines the instant date and time of the first instance + in the recurrence set. A UTC format MUST be used."; + } + leaf duration { + type uint32; + units "seconds"; + description + "When specified, it indicates how long the first occurrence + last. Unless specified otherwise, it also applies to all + the other instances in the recurrence set."; + } + } + choice recurrence-bound { + description + "Modes to bound the recurrence rule. If no choice is + indicated, the recurrence rule is considered to repeat + forever."; + case until { + description + "This case defines a way that bounds the recurrence + rule in an inclusive manner."; + leaf utc-until { + type yang:date-and-time; + description + "This parameter specifies a date and time value to + inclusively bound the recurrence in UTC format. If + the value specified by this parameter is synchronized + with the specified recurrence, it becomes the last + instance of the recurrence."; + } + } + case count { + description + "This case defines the number of occurrences at which + to range-bound the recurrence."; + leaf count { + type uint32; + description + "The positive number of occurrences at which to + range-bound the recurrence."; + } + } + } + uses recurrence; + } + + grouping recurrence-with-time-zone { + description + "A simple definition of recurrence to specify the time + with a local time and time zone identifier. This grouping + is intended to be human-friendly."; + container recurrence-first { + description + "Specifies the first instance of the recurrence."; + leaf date-time-start { + type yang:date-and-time; + description + "Defines the instant date and time of the first instance + in the recurrence set."; + } + leaf duration { + type duration; + description + "When specified, it indicates how long the first + occurrence last. Unless specified otherwise, it also + applies to all the other instances in the recurrence + set."; + } + leaf time-zone-identifier { + type sys:timezone-name; + description + "Indicates the identifier for the time zone in a time + zone database. This parameter MUST be specified if + 'date-time-start' or 'until' value is neither + reported in the format of UTC nor time zone offset to + UTC."; + } + } + choice recurrence-bound { + description + "Modes to bound the recurrence rule. If no choice is + indicated, the recurrence rule is considered to repeat + forever."; + case until { + description + "The end of the recurrence is indicated by a specific + date-and-time value."; + leaf until { + type yang:date-and-time; + description + "Specifies a date and time value to bound the + recurrence. If the value specified by this parameter + is synchronized with the specified recurrence, it + becomes the last instance of the recurrence."; + } + } + case count { + description + "The end of the recurrence is indicated by the number + of occurrences."; + leaf count { + type uint32; + description + "The positive number of occurrences at which to + range-bound the recurrence."; + } + } + } + uses recurrence; + } + + grouping recurrence-utc-with-date-times { + description + "This grouping defines an aggregate set of repeating + occurrences with UTC time format. The recurrence instances + are specified by the occurrences defined by both the + recurrence rule and 'period-timeticks' list. Duplicate + instances are ignored."; + uses recurrence-utc; + list period-timeticks { + key "period-start"; + description + "A list of periods with timeticks formats."; + leaf period-start { + type yang:timeticks; + must + "(not(derived-from(../../frequency," + +"'schedule:secondly')) or (current() < 100)) and " + +"(not(derived-from(../../frequency," + +"'schedule:minutely')) or (current() < 6000)) and " + +"(not(derived-from(../../frequency,'schedule:hourly'))" + +" or (current() < 360000)) and " + +"(not(derived-from(../../frequency,'schedule:daily'))" + +" or (current() < 8640000)) and " + +"(not(derived-from(../../frequency,'schedule:weekly'))" + +" or (current() < 60480000)) and " + +"(not(derived-from(../../frequency," + +"'schedule:monthly')) or (current() < 267840000)) and " + +"(not(derived-from(../../frequency,'schedule:yearly'))" + +" or (current() < 3162240000))" { + error-message + "The period-start must not exceed the frequency + interval."; + } + description + "Start time of the schedule within one recurrence."; + } + leaf period-end { + type yang:timeticks; + description + "End time of the schedule within one recurrence."; + } + } + } + + grouping recurrence-time-zone-with-date-times { + description + "This grouping defines an aggregate set of repeating + occurrences with local time format and time zone specified. + The recurrence instances are specified by the occurrences + defined by both the recurrence rule and 'period' list. + Duplicate instances are ignored."; + uses recurrence-with-time-zone; + list period { + key "period-start"; + description + "A list of periods with date-and-time formats."; + uses period-of-time; + } + } + + grouping icalendar-recurrence { + description + "This grouping specifies properties of a recurrence rule."; + reference + "RFC 5545: Internet Calendaring and Scheduling Core Object + Specification (iCalendar), Section 3.8.5"; + uses recurrence-time-zone-with-date-times; + leaf-list bysecond { + type uint32 { + range "0..60"; + } + description + "Specifies a list of seconds within a minute."; + } + leaf-list byminute { + type uint32 { + range "0..59"; + } + description + "Specifies a list of minutes within an hour."; + } + leaf-list byhour { + type uint32 { + range "0..23"; + } + description + "Specifies a list of hours of the day."; + } + list byday { + key "weekday"; + description + "Specifies a list of days of the week."; + leaf-list direction { + when "derived-from(../../frequency, 'schedule:monthly') or " + + "(derived-from(../../frequency, 'schedule:yearly') " + + " and not(../../byyearweek))"; + type int32 { + range "-53..-1|1..53"; + } + description + "When specified, it indicates the nth occurrence of a + specific day within the monthly or yearly recurrence + rule. For example, within a monthly rule, +1 monday + represents the first monday within the month, whereas + -1 monday represents the last monday of the month."; + } + leaf weekday { + type schedule:weekday; + description + "Corresponds to seven days of the week."; + } + } + leaf-list bymonthday { + type int32 { + range "-31..-1|1..31"; + } + description + "Specifies a list of days of the month."; + } + leaf-list byyearday { + type int32 { + range "-366..-1|1..366"; + } + description + "Specifies a list of days of the year."; + } + leaf-list byyearweek { + when "derived-from(../frequency, 'schedule:yearly')"; + type int32 { + range "-53..-1|1..53"; + } + description + "Specifies a list of weeks of the year."; + } + leaf-list byyearmonth { + type uint32 { + range "1..12"; + } + description + "Specifies a list of months of the year."; + } + leaf-list bysetpos { + type int32 { + range "-366..-1|1..366"; + } + description + "Specifies a list of values that corresponds to the nth + occurrence within the set of recurrence instances + specified by the rule. It must only be used in conjunction + with another by the rule part."; + } + leaf workweek-start { + type schedule:weekday; + description + "Specifies the day on which the workweek starts. The + default value is 'monday'."; + } + leaf-list exception-dates { + type yang:date-and-time; + description + "Defines a list of exceptions for recurrence."; + } + } + + grouping schedule-status { + description + "This grouping defines common properties of scheduling + status."; + leaf state { + type identityref { + base schedule-state; + } + description + "Indicates the current state of the schedule."; + } + leaf version { + type uint16; + description + "Indicates the version number of the schedule."; + } + leaf schedule-type { + type identityref { + base schedule-type; + } + description + "Indicates the schedule type."; + } + leaf local-time { + type yang:date-and-time; + config false; + description + "Reports the local time as used by the entity that + hosts the schedule."; + } + leaf last-update { + type yang:date-and-time; + config false; + description + "Reports the timestamp that the schedule is last updated."; + } + leaf counter { + when "derived-from-or-self(../schedule-type, " + + "'schedule:recurrence')"; + type yang:counter32; + config false; + description + "The counter of occurrences since the schedule was enabled. + The count wraps around when it reaches the maximum value."; + } + leaf last-occurrence { + when "derived-from-or-self(../schedule-type, " + + "'schedule:recurrence')"; + type yang:date-and-time; + config false; + description + "Indicates the timestamp of last occurrence."; + } + leaf upcoming-occurrence { + when "derived-from-or-self(../schedule-type, " + + "'schedule:recurrence')" + + "and derived-from-or-self(../state, 'schedule:enabled')"; + type yang:date-and-time; + config false; + description + "Indicates the timestamp of next occurrence."; + } + leaf last-failed-occurrence { + when "derived-from-or-self(../schedule-type, " + + "'schedule:recurrence')"; + type yang:date-and-time; + config false; + description + "Indicates the timestamp of last failed action triggered by + the schedule."; + } + leaf failure-counter { + when "derived-from-or-self(../schedule-type, " + + "'schedule:recurrence')"; + type yang:counter32; + config false; + description + "Counts the number of failures while invoking the scheduled + action."; + } + } + + grouping schedule-status-with-name { + description + "This grouping defines common properties of scheduling + status."; + leaf schedule-id { + type string; + description + "The schedule identifier that uniquely identifies a + schedule within a device, controller, network, etc. + The unicity scope depends on the implementation."; + } + uses schedule-status; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-scheduler-policy@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-scheduler-policy@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-scheduler-policy@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-scheduler-policy@2024-01-31.yang index ad5dbbe4c..5eb1f1f25 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-scheduler-policy@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-scheduler-policy@2024-01-31.yang @@ -47,7 +47,7 @@ module ietf-scheduler-policy { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2021-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-service-pm@2021-07-07.yang rename to experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang index 776bf5900..78d59feb0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2021-07-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-service-pm@2024-03-04.yang @@ -22,6 +22,7 @@ module ietf-service-pm { " WG List: ID-draft editor: + Chaode Yu (yuchaode@huawei.com) Haomian Zheng (zhenghaomian@huawei.com); Italo Busi (italo.busi@huawei.com); Yanlei Zheng (zhengyanlei@chinaunicom.cn); @@ -45,7 +46,7 @@ module ietf-service-pm { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2021-07-07 { + revision 2024-03-04 { description "Initial version"; reference @@ -164,7 +165,6 @@ module ietf-service-pm { description "Current bandwidth usage of the ingress traffic."; } - identity egress-bandwidth { base performance-parameter-type; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-group@2024-05-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-group@2024-05-22.yang new file mode 100644 index 000000000..25c85252c --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-group@2024-05-22.yang @@ -0,0 +1,277 @@ +module ietf-sr-policy-group { + yang-version "1.1"; + namespace "urn:ietf:params:xml:ns:yang:ietf-sr-policy-group"; + prefix "sr-policy-group"; + + import ietf-routing { + prefix rt; + reference + "RFC 8349, A YANG Data Model for Routing Management + (NMDA Version)."; + } + organization + "IETF SPRING Working Group"; + + contact + "TBD"; + + description + "This module describes a YANG model for configuring and managing + SR Policy Groups. + + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + + 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-05-22 { + description + "Initial Version"; + reference + "draft-ietf-spring-sr-policy-yang-02, YANG Data Model for + Segment Routing Policy"; + } + + typedef dataplane-type { + description "Dataplane type of segment routing"; + type enumeration { + enum mpls { + value 1; + description "Segment-routing MPLS"; + } + enum srv6 { + value 2; + description "Segment-routing v6"; + } + } + } + + augment "/rt:routing" { + description + "SR Policy Group augmentation to the segment routing traffic + engineering model."; + container sr-policy-groups { + description + "Configuration parameters of SR Policy Group."; + list sr-policy-group { + key "group-color"; + description + "Each entry contains parameters for SR Policy Group + identifiedby the 'color' key."; + leaf group-color { + type uint32 { + range "1..4294967295"; + } + mandatory true; + description "Color associated with the policy group"; + } + leaf name { + type string { + length "1..59"; + } + description "SR Policy group name"; + } + leaf description { + type string; + description "Description of the policy group"; + } + leaf service-distinguish-method { + type enumeration { + enum DSCP-based { + value 1; + description "Distinguish service type based on DSCP + in the message"; + } + enum dot1q-based { + value 2; + description "Distinguish service type based on dot1q"; + } + enum ServiceClass-based { + value 3; + description "Distinguish service type based on service + class"; + } + enum None { + value 4; + description "Not configure service type recognition + method"; + } + } + description "Service traffic steering methods within SR + policy group"; + } + container forward-based-dscp { + description "parameters of DSCP based steering traffic + for SR policy group"; + leaf best-effort-dscp-list-v4 { + type string; + description "DSCP values for IPv4 packets matching + best-effort. It is a comma-separated list of DSCP + values. Each item can be an individual DSCP value + or a DSCP value range. Use a tilde (~) to separate + the start and end DSCP values of a range. + Example: 1,2,3,5~8."; + } + leaf best-effort-dscp-list-v6 { + type string; + description "DSCP values for IPv6 packets matching + best-effort. It is a comma-separated list of DSCP + values. Each item can be an individual DSCP value + or a DSCP value range. Use a tilde (~) to separate + the start and end DSCP values of a range. + Example: 1,2,3,5~8."; + } + leaf dscp-mismatch-drop { + type boolean; + default "false"; + description "When all DSCP values configured for + best effort forwarding and SR policy forwarding do + not match, and no default forwarding path is + specified, discard traffic."; + } + container dscp-color-mapping-entries { + description "DSCP-color mapping table"; + list mapping-entry { + key "policy-color dataplane"; + description "This table contains color-DSCP mappings + for an SRv6 policy group."; + leaf policy-color { + type uint32 { + range "1..4294967295"; + } + mandatory true; + description "Color associated with the policy + group"; + } + leaf dataplane { + type dataplane-type; + mandatory true; + description "The data plane type of the mapping + relationship between DSCP and color"; + } + leaf dscp-list { + type string; + description "DSCP values for packets matching. + It is a comma-separated list of DSCP values. + Each item can be an individual DSCP value or + a DSCP value range. Use a tilde (~) to separate + the start and end DSCP values of a range. + Example: 1,2,3,5~8."; + } + leaf is-as-default { + type boolean; + default false; + description "Whether to use the SRv6 policy + with this color as the default policy for + packets"; + } + } + } + } + container forward-based-dot1q { + description "parameters of dot1q based steering + traffic for SR policy group"; + leaf best-effort-dot1q-list { + type string; + description "Dot1q values for packets matching + best-effort. It is a comma-separated list of + dot1q values. Each item can be an individual + dot1q value or a dot1q value range. Use a + tilde (~) to separate the start and end dot1q + values of a range. Example: 1,2,3,5~8."; + } + leaf dot1q-mismatch-drop { + type boolean; + default "false"; + description "When all dot1q values configured + for best effort forwarding and SR policy + forwarding do not match, and no default + forwarding path is specified, discard traffic."; + } + container dot1q-color-mapping-entries { + description "Dot1q-color mapping table"; + list mapping-entry { + key "policy-color"; + description "This table contains color-dot1q + mappings for an SRv6 policy group."; + leaf policy-color { + type uint32 { + range "1..4294967295"; + } + mandatory true; + description "Color associated with the policy + group"; + } + leaf dot1q-list { + type string; + description "Dot1q values for packets + matching. It is a comma-separated list of + dot1q values. Each item can be an individual + dot1q value or a dot1q value range. Use a tilde + (~) to separate the start and end dot1q values + of a range. Example: 1,2,3,5~8."; + } + leaf is-as-default { + type boolean; + default false; + description "Whether to use the SRv6 policy + with this color as the default policy for + packets"; + } + } + } + container class-color-mapping-entries { + description "Serviceclass-color mapping table"; + list mapping-entry { + key "policy-color"; + description "This table contains color-serviceclass + mappings for an SRv6 policy group."; + leaf policy-color { + type uint32 { + range "1..4294967295"; + } + mandatory true; + description "Color associated with the policy + group"; + } + leaf class-list { + type string; + description "Service class values for packets + matching. It is a comma-separated list of + service class values. Each item can be an + individual service class value or a service + class value range. Use a tilde (~) to separate + the start and end service class values of + a range. Example: 1,2,3,5~8."; + } + leaf is-as-default { + type boolean; + default false; + description "Whether to use the SRv6 policy + with this color as the default policy for + packets"; + } + } + } + } + } + } // sr-policy-group + } // augment +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2019-11-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang similarity index 64% rename from experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2019-11-04.yang rename to experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang index 56a69da87..edafff23f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2019-11-04.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-sr-policy-types@2024-03-04.yang @@ -22,6 +22,8 @@ module ietf-sr-policy-types { WG List: Editor: Kamran Raza + Editor: Robert Sawaya + Editor: Zhuang Shunwan Editor: Daniel Voyer @@ -37,14 +39,39 @@ module ietf-sr-policy-types { description "This YANG module defines the essential types for the management of SR policy module. - Copyright (c) 2019 IETF Trust and the persons identified as + 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 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)."; + (http://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices."; + + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + + revision 2024-03-04 { + // RFC Editor: replace the above date 2024-03-04 with the date of + // publication and remove this note. + + description + "Alignment with SR policy architecture RFC9256"; + reference + "RFC XXXX: YANG Data Model for Segment-routing Policy Types"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + + revision "2022-03-28" { + description + "Alignment with SR policy architecture"; + reference + "draft-ietf-spring-sr-policy-yang"; + } revision "2019-11-04" { description @@ -96,7 +123,8 @@ module ietf-sr-policy-types { identity policy-down-reason { description - "Base identity for the reasons why SR policy is operationally down"; + "Base identity for the reasons why SR policy is operationally + down"; } identity policy-down-reason-admin-down { base policy-down-reason; @@ -132,7 +160,8 @@ module ietf-sr-policy-types { } identity policy-down-reason-local-label-setup-failed { base policy-down-reason; - description "Policy's local label setup (allocation/rewrite) failed"; + description "Policy's local label setup (allocation/rewrite) + failed"; } identity policy-down-reason-forwarding-rewrite-failed { base policy-down-reason; @@ -161,7 +190,8 @@ module ietf-sr-policy-types { } identity binding-sid-color-endpoint-conflict { base binding-sid-unavailable-reason; - description "Binding sid already allocated by another sr-policy with different color/endpoint"; + description "Binding sid already allocated by another sr-policy + with different color/endpoint"; } identity binding-sid-rewrite-error { base binding-sid-unavailable-reason; @@ -172,25 +202,84 @@ module ietf-sr-policy-types { description "Binding sid outside SRLB range"; } - identity path-disjointness { + identity segment-type { description - "Base identity for the type of path disjointness computation"; + "Base identity for the segment type"; } - identity path-disjointness-link { - base path-disjointness; - description "The computed path is link-disjoint with the existing path"; + identity segment-type-A { + base segment-type; + description "SR-MPLS Label"; } - identity path-disjointness-node { - base path-disjointness; - description "The computed path is node-disjoint with the existing path"; + identity segment-type-B { + base segment-type; + description "SRv6 SID"; } - identity path-disjointness-srlg { - base path-disjointness; - description "The computed path is srlg-disjoint with the existing path"; + identity segment-type-C { + base segment-type; + description "IPv4 Prefix with optional SR Algorithm"; } - identity path-disjointness-srlg-node { - base path-disjointness; - description "The computed path is node and srlg disjoint with the existing path"; + identity segment-type-D { + base segment-type; + description "IPv6 Global Prefix with optional SR Algorithm for + SR-MPLS"; + } + identity segment-type-E { + base segment-type; + description "IPv4 Prefix with Local Interface ID"; + } + identity segment-type-F { + base segment-type; + description "IPv4 Addresses for link endpoints as Local, + Remote pair"; + } + identity segment-type-G { + base segment-type; + description + "IPv6 Prefix and Interface ID for link endpoints as Local, + Remote pair for SR-MPLS"; + } + identity segment-type-H { + base segment-type; + description + "IPv6 Addresses for link endpoints as Local, + Remote pair for SR-MPLS"; + } + identity segment-type-I { + base segment-type; + description + "IPv6 Global Prefix with optional SR Algorithm for SRv6"; + } + identity segment-type-J { + base segment-type; + description + "IPv6 Prefix and Interface ID for link endpoints as Local, + Remote pair for SRv6"; + } + identity segment-type-K { + base segment-type; + description + "IPv6 Addresses for link endpoints as Local, Remote pair for + SRv6"; + } + + identity protocol-origin-type { + description "Base identity for originating protocol type"; + } + identity protocol-origin-type-pcep { + base protocol-origin-type; + description + "PCEP used as signalling mechanism for the candidate path"; + } + identity protocol-origin-type-bgp { + base protocol-origin-type; + description + "BGP used as signalling mechanism for the candidate path"; + } + identity protocol-origin-type-local { + base protocol-origin-type; + description + "CLI, Yang model via Netconf, gRPC, etc used for candidate path + instantiation"; } /* Typdefs */ @@ -251,58 +340,21 @@ module ietf-sr-policy-types { description "SR policy oper state"; } - typedef segment-type { + typedef metric-type { type enumeration { - enum segment-type-1 { - value 1; - description "SR-MPLS Label"; - } - enum segment-type-2 { - value 2; - description "SRv6 SID"; - } - enum segment-type-3 { - value 3; - description "IPv4 Prefix with optional SR Algorithm"; - } - enum segment-type-4 { - value 4; - description "IPv6 Global Prefix with optional SR Algorithm for SR-MPLS"; - } - enum segment-type-5 { - value 5; - description "IPv4 Prefix with Local Interface ID"; - } - enum segment-type-6 { - value 6; - description "IPv4 Addresses for link endpoints as Local, Remote pair"; - } - enum segment-type-7 { - value 7; - description "IPv6 Prefix and Interface ID for link endpoints as Local, - Remote pair for SR-MPLS"; - } - enum segment-type-8 { - value 8; - description "IPv6 Addresses for link endpoints as Local, Remote pair for - SR-MPLS"; - } - enum segment-type-9 { - value 9; - description "IPv6 Global Prefix with optional SR Algorithm for SRv6"; - } - enum segment-type-10 { - value 10; - description "IPv6 Prefix and Interface ID for link endpoints as Local, - Remote pair for SRv6"; - } - enum segment-type-11 { - value 11; - description "IPv6 Addresses for link endpoints as Local, Remote pair for - SRv6"; - } + enum te { value 1; description "TE metric"; } + enum igp { value 2; description "IGP metric"; } + enum latency { value 3; description "Latency metric"; } } - description "SR segment type"; + description "Metric type"; + } + + typedef margin-type { + type enumeration { + enum absolute { value 1; description "Absolute value"; } + enum relative { value 2; description "Relative value"; } + } + description "Margin type"; } typedef dataplane-type { @@ -333,25 +385,6 @@ module ietf-sr-policy-types { description "binding SID allocation mode"; } - typedef protocol-origin-type { - type enumeration { - enum pcep { - value 10; - description "PCEP used as signalling mechanism for the candidate path"; - } - enum bgp { - value 20; - description "BGP used as signalling mechanism for the candidate path"; - } - enum local { - value 30; - description "CLI, Yang model via Netconf, gRPC, etc used for candidate path instantiation"; - } - } - - description "Originating protocol type"; - } - typedef explicit-binding-sid-rule-type { type enumeration { enum enforce-srlb { @@ -370,4 +403,52 @@ module ietf-sr-policy-types { } description "Explicit binding sid rule types"; } -} // module + + typedef sid-protection-eligibility-type { + type enumeration { + enum protected-preferred { + value 1; + description "Prefer protected SID"; + } + enum protected-only { + value 2; + description "Protected SID only"; + } + enum unprotected-preferred { + value 3; + description "Prefer unprotected SID"; + } + enum unprotected-only { + value 4; + description "Unprotected SID only"; + } + } + description "Types for SID protection eligibility"; + } + + typedef node-address-type { + type inet:ipv6-address; + description "Originator node address"; + } + + typedef sid-algorithm-type { + type uint8 { + range "0..255"; + } + description "SID algorithm type"; + } + + typedef color-type { + type uint32 { + range "1..4294967295"; + } + description "SID algorithm type"; + } + + typedef name-type { + type string { + length "1..59"; + } + description "Policy name type"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang index ce5e88b2b..81ba2ebe0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-base@2022-01-14.yang @@ -54,12 +54,12 @@ module ietf-srv6-base { Editor: Jaganbabu Rajamanickam - Editor: Xufeng Liu Editor: Zhibo Hu + Editor: Iftekhar Hussain @@ -95,10 +95,13 @@ module ietf-srv6-base { 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)."; + (http://trustee.ietf.org/license-info). - reference "RFC XXXX"; + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices."; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note revision 2022-01-14 { description "Alignment with SRv6 network programming rev16"; @@ -435,7 +438,6 @@ module ietf-srv6-base { } uses path-attrs-cmn; - description "L3 information"; } uses path-out-sids-choice; @@ -484,7 +486,6 @@ module ietf-srv6-base { } description "Type of SRv6 end behavior."; } - leaf alloc-type { type srv6-types:sid-alloc-type; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2022-01-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang similarity index 92% rename from experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2022-01-14.yang rename to experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang index 05fbd904f..78fa91d19 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2022-01-14.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-static@2024-03-04.yang @@ -93,12 +93,23 @@ module ietf-srv6-static { 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)."; + (http://trustee.ietf.org/license-info). - reference "RFC XXXX"; - // RFC Editor: replace XXXX with actual RFC number and remove + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices."; + + // RFC Editor: replace XXXX with actual RFC number and remove // this note + revision 2024-03-04 { + description + "Fixed static yang warnings"; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + revision 2022-01-14 { description "Alignment with SRv6 network programming rev16"; @@ -160,7 +171,6 @@ module ietf-srv6-static { uses srv6:path-attrs-cmn; } - grouping path-attrs-v4 { description "IPv4 Path properties"; @@ -312,7 +322,7 @@ module ietf-srv6-static { } container end { - when "../end-behavior-type = 'End'" { + when "../end-behavior-type = 'srv6-types:End'" { description "This container is valid only when the user chooses End behavior (variant: no PSP, no USP)."; @@ -327,7 +337,7 @@ module ietf-srv6-static { } container end_psp { - when "../end-behavior-type = 'End_PSP'" { + when "../end-behavior-type = 'srv6-types:End_PSP'" { description "This container is valid only when the user chooses End behavior (variant: PSP only)."; @@ -342,7 +352,7 @@ module ietf-srv6-static { } container end_usp { - when "../end-behavior-type = 'End_USP'" { + when "../end-behavior-type = 'srv6-types:End_USP'" { description "This container is valid only when the user chooses End behavior (variant: USP only)."; @@ -353,11 +363,10 @@ module ietf-srv6-static { to the matched entry. This is the SRv6 instantiation of a Prefix SID (variant: USP only)"; - } container end_psp_usp { - when "../end-behavior-type = 'End_PSP_USP'" { + when "../end-behavior-type = 'srv6-types:End_PSP_USP'" { description "This container is valid only when the user chooses End behavior (variant: PSP/USP)."; @@ -370,8 +379,9 @@ module ietf-srv6-static { (variant: PSP/USP)"; } + container end_usd { - when "../end-behavior-type = 'End_USD'" { + when "../end-behavior-type = 'srv6-types:End_USD'" { description "This container is valid only when the user chooses End behavior (variant: USD only)."; @@ -385,7 +395,7 @@ module ietf-srv6-static { } container end_psp_usd { - when "../end-behavior-type = 'End_PSP_USD'" { + when "../end-behavior-type = 'srv6-types:End_PSP_USD'" { description "This container is valid only when the user chooses End behavior (variant: PSP/USD)."; @@ -400,7 +410,7 @@ module ietf-srv6-static { } container end_usp_usd { - when "../end-behavior-type = 'End_USP_USD'" { + when "../end-behavior-type = 'srv6-types:End_USP_USD'" { description "This container is valid only when the user chooses End behavior (variant: USP/USD)."; @@ -415,7 +425,7 @@ module ietf-srv6-static { } container end_psp_usp_usd { - when "../end-behavior-type = 'End_PSP_USP_IUSD'" { + when "../end-behavior-type = 'srv6-types:End_PSP_USP_USD'" { description "This container is valid only when the user chooses End behavior (variant: PSP/USP/USD)."; @@ -430,7 +440,7 @@ module ietf-srv6-static { } container end-t { - when "../end-behavior-type = 'End.T'" { + when "../end-behavior-type = 'srv6-types:End.T'" { description "This container is valid only when the user chooses End.T behavior (variant: no PSP, no USP)."; @@ -454,7 +464,7 @@ module ietf-srv6-static { } container end-t_psp { - when "../end-behavior-type = 'End.T_PSP'" { + when "../end-behavior-type = 'srv6-types:End.T_PSP'" { description "This container is valid only when the user chooses End.T behavior (variant: PSP only)."; @@ -479,7 +489,7 @@ module ietf-srv6-static { } container end-t_usp { - when "../end-behavior-type = 'End.T_USP'" { + when "../end-behavior-type = 'srv6-types:End.T_USP'" { description "This container is valid only when the user chooses End.T behavior (variant: USP only)."; @@ -503,7 +513,7 @@ module ietf-srv6-static { } container end-t_psp_usp { - when "../end-behavior-type = 'End.T_PSP_USP'" { + when "../end-behavior-type = 'srv6-types:End.T_PSP_USP'" { description "This container is valid only when the user chooses End.T behavior (variant: USP/PSP)."; @@ -527,7 +537,7 @@ module ietf-srv6-static { } container end-t_usd { - when "../end-behavior-type = 'End.T_USD'" { + when "../end-behavior-type = 'srv6-types:End.T_USD'" { description "This container is valid only when the user chooses End.T behavior (variant: USD only)."; @@ -551,7 +561,7 @@ module ietf-srv6-static { } container end-t_psp_usd { - when "../end-behavior-type = 'End.T_PSP_USD'" { + when "../end-behavior-type = 'srv6-types:End.T_PSP_USD'" { description "This container is valid only when the user chooses End.T behavior (variant: PSP/USD only)."; @@ -576,7 +586,7 @@ module ietf-srv6-static { } container end-t_usp_usd { - when "../end-behavior-type = 'End.T_USP_USD'" { + when "../end-behavior-type = 'srv6-types:End.T_USP_USD'" { description "This container is valid only when the user chooses End.T behavior (variant: USP/USD only)."; @@ -601,7 +611,7 @@ module ietf-srv6-static { } container end-t_psp_usp_usd { - when "../end-behavior-type = 'End.T_PSP_USP_USD'" { + when "../end-behavior-type = 'srv6-types:End.T_PSP_USP_USD'" { description "This container is valid only when the user chooses End.T behavior (variant: USP only)."; @@ -626,7 +636,7 @@ module ietf-srv6-static { } container end-x { - when "../end-behavior-type = 'End.X'" { + when "../end-behavior-type = 'srv6-types:End.X'" { description "This container is valid only when the user chooses End.X behavior (variant: no USP/PSP)"; @@ -648,7 +658,7 @@ module ietf-srv6-static { } container end-x_psp { - when "../end-behavior-type = 'End.X_PSP'" { + when "../end-behavior-type = 'srv6-types:End.X_PSP'" { description "This container is valid only when the user chooses End.X behavior (variant: PSP only)"; @@ -670,7 +680,7 @@ module ietf-srv6-static { } container end-x_usp { - when "../end-behavior-type = 'End.X_USP'" { + when "../end-behavior-type = 'srv6-types:End.X_USP'" { description "This container is valid only when the user chooses End.X behavior (variant: USP only)"; @@ -692,7 +702,7 @@ module ietf-srv6-static { } container end-x_psp_usp { - when "../end-behavior-type = 'End.X_PSP_USP'" { + when "../end-behavior-type = 'srv6-types:End.X_PSP_USP'" { description "This container is valid only when the user chooses End.X behavior (variant: PSP/USP)"; @@ -714,7 +724,7 @@ module ietf-srv6-static { } container end-x_usd { - when "../end-behavior-type = 'End.X_USD'" { + when "../end-behavior-type = 'srv6-types:End.X_USD'" { description "This container is valid only when the user chooses End.X behavior (variant: USD only)"; @@ -736,7 +746,7 @@ module ietf-srv6-static { } container end-x_psp_usd { - when "../end-behavior-type = 'End.X_PSP_USD'" { + when "../end-behavior-type = 'srv6-types:End.X_PSP_USD'" { description "This container is valid only when the user chooses End.X behavior (variant: PSP/USD only)"; @@ -753,11 +763,12 @@ module ietf-srv6-static { default false; description "Is Adj-SID protected?"; } + uses multi-paths-v6; } container end-x_usp_usd { - when "../end-behavior-type = 'End.X_USP_USD'" { + when "../end-behavior-type = 'srv6-types:End.X_USP_USD'" { description "This container is valid only when the user chooses End.X behavior (variant: USP/USD only)"; @@ -779,7 +790,7 @@ module ietf-srv6-static { } container end-x_psp_usp_usd { - when "../end-behavior-type = 'End.X_PSP_USP_USD'" { + when "../end-behavior-type = 'srv6-types:End.X_PSP_USP_USD'" { description "This container is valid only when the user chooses End.X behavior (variant: PSP/USP/USD only)"; @@ -801,8 +812,8 @@ module ietf-srv6-static { } container end-b6-encaps { - when "../end-behavior-type = 'End.B6.Encaps' or - ../end-behavior-type = 'End.B6.Encaps.Red'" { + when "../end-behavior-type = 'srv6-types:End.B6.Encaps' or + ../end-behavior-type = 'srv6-types:End.B6.Encaps.Red'" { description "This container is valid only when the user chooses End.B6.Encaps or End.B6.Encaps.Red behavior."; @@ -832,7 +843,7 @@ module ietf-srv6-static { } container end-bm { - when "../end-behavior-type = 'End.BM'" { + when "../end-behavior-type = 'srv6-types:End.BM'" { description "This container is valid only when the user chooses End.BM behavior."; @@ -856,7 +867,7 @@ module ietf-srv6-static { } container end-dx6 { - when "../end-behavior-type = 'End.DX6'" { + when "../end-behavior-type = 'srv6-types:End.DX6'" { description "This container is valid only when the user chooses End.DX6 behavior."; @@ -873,7 +884,7 @@ module ietf-srv6-static { } container end-dx4 { - when "../end-behavior-type = 'End.DX4'" { + when "../end-behavior-type = 'srv6-types:End.DX4'" { description "This container is valid only when the user chooses End.DX4 behavior."; @@ -891,7 +902,7 @@ module ietf-srv6-static { // TODO: Backup path of type "Lookup in table" } container end-dt6 { - when "../end-behavior-type = 'End.DT6'" { + when "../end-behavior-type = 'srv6-types:End.DT6'" { description "This container is valid only when the user chooses End.DT6 behavior."; @@ -914,7 +925,7 @@ module ietf-srv6-static { } } container end-dt4 { - when "../end-behavior-type = 'End.DT4'" { + when "../end-behavior-type = 'srv6-types:End.DT4'" { description "This container is valid only when the user chooses End.DT4 behavior."; @@ -938,7 +949,7 @@ module ietf-srv6-static { } } container end-dt46 { - when "../end-behavior-type = 'End.DT46'" { + when "../end-behavior-type = 'srv6-types:End.DT46'" { description "This container is valid only when the user chooses End.DT46 behavior."; @@ -968,7 +979,7 @@ module ietf-srv6-static { /* EVPN END behavior types */ container end-dx2 { - when "../end-behavior-type = 'End.DX2'" { + when "../end-behavior-type = 'srv6-types:End.DX2'" { description "This container is valid only when the user chooses End.DX2 behavior."; @@ -991,7 +1002,7 @@ module ietf-srv6-static { } container end-dx2v { - when "../end-behavior-type = 'End.DX2V'" { + when "../end-behavior-type = 'srv6-types:End.DX2V'" { description "This container is valid only when the user chooses End.DX2V behavior."; @@ -1016,7 +1027,7 @@ module ietf-srv6-static { } container end-dt2u { - when "../end-behavior-type = 'End.DT2U'" { + when "../end-behavior-type = 'srv6-types:End.DT2U'" { description "This container is valid only when the user chooses End.DT2U behavior."; @@ -1038,7 +1049,7 @@ module ietf-srv6-static { } container end-dt2m { - when "../end-behavior-type = 'End.DT2M'" { + when "../end-behavior-type = 'srv6-types:End.DT2M'" { description "This container is valid only when the user chooses End.DT2M behavior."; @@ -1071,7 +1082,6 @@ module ietf-srv6-static { grouping srv6-static-cfg { description "Grouping configuration and operation for SRv6 sid."; - list sid { key "function"; description "List of locally instantiated SIDs"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2022-01-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang similarity index 94% rename from experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2022-01-14.yang rename to experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang index b83b2db42..2e04d0c9f 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2022-01-14.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-srv6-types@2024-03-04.yang @@ -3,6 +3,7 @@ module ietf-srv6-types { namespace "urn:ietf:params:xml:ns:yang:ietf-srv6-types"; prefix srv6-types; + import ietf-inet-types { prefix inet; reference "RFC 6991: Common YANG Data Types"; @@ -61,12 +62,23 @@ module ietf-srv6-types { 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)."; + (http://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see the + RFC itself for full legal notices."; - reference "RFC XXXX"; // RFC Editor: replace XXXX with actual RFC number and remove // this note + revision 2024-03-04 { + description + "Renamed some of End identities"; + reference + "RFC XXXX: YANG Data Model for SRv6"; + // RFC Editor: replace XXXX with actual RFC number and remove + // this note + } + revision 2022-01-14 { description "Alignment with SRv6 net-pgm rev16"; @@ -242,6 +254,7 @@ module ietf-srv6-types { reference "RFC 8986"; } + identity End.DX4 { base srv6-endpoint-type; description @@ -331,14 +344,15 @@ module ietf-srv6-types { "RFC 8986"; } - identity End.PSP_USD { + identity End_PSP_USD { base srv6-endpoint-type; description "End function (variant: PSP and USD)."; reference "RFC 8986"; } - identity End.USP_USD { + + identity End_USP_USD { base srv6-endpoint-type; description "End function (variant: USP and USD)."; @@ -346,7 +360,7 @@ module ietf-srv6-types { "RFC 8986"; } - identity End.PSP_USP_USD { + identity End_PSP_USP_USD { base srv6-endpoint-type; description "End function (variant: PSP and USP and USD)."; @@ -491,15 +505,14 @@ module ietf-srv6-types { // RFC Editor: replace with actual RFC number and remove this note } - /* Endpoints defined under draft-ietf-dmm-srv6-mobile-uplane */ + /* Endpoints defined under RFC 9433 */ identity End.MAP { base srv6-endpoint-type; description "DMM End.MAP"; reference - "draft-ietf-dmm-srv6-mobile-uplane-17"; - // RFC Editor: replace with actual RFC number and remove this note + "RFC 9433"; } identity End.Limit { @@ -507,8 +520,7 @@ module ietf-srv6-types { description "DMM End.Limit"; reference - "draft-ietf-dmm-srv6-mobile-uplane-17"; - // RFC Editor: replace with actual RFC number and remove this note + "RFC 9433"; } identity End.M.GTP6.D { @@ -516,8 +528,7 @@ module ietf-srv6-types { description "DMM End.M.GTP6.D"; reference - "draft-ietf-dmm-srv6-mobile-uplane-17"; - // RFC Editor: replace with actual RFC number and remove this note + "RFC 9433"; } identity End.M.GTP6.Di { @@ -525,8 +536,7 @@ module ietf-srv6-types { description "DMM End.M.GTP6.Di"; reference - "draft-ietf-dmm-srv6-mobile-uplane-17"; - // RFC Editor: replace with actual RFC number and remove this note + "RFC 9433"; } identity End.M.GTP6.E { @@ -534,8 +544,7 @@ module ietf-srv6-types { description "DMM End.M.GTP6.E"; reference - "draft-ietf-dmm-srv6-mobile-uplane-05"; - // RFC Editor: replace with actual RFC number and remove this note + "RFC 9433"; } identity End.M.GTP4.E { @@ -543,8 +552,7 @@ module ietf-srv6-types { description "DMM End.M.GTP4.E"; reference - "draft-ietf-dmm-srv6-mobile-uplane-05"; - // RFC Editor: replace with actual RFC number and remove this note + "RFC 9433"; } /* DMM end */ diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ssh-client@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-ssh-client@2024-03-16.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-ssh-client@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ssh-client@2024-03-16.yang index 77c3ea52f..a33bf12a7 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ssh-client@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ssh-client@2024-03-16.yang @@ -45,7 +45,7 @@ module ietf-ssh-client { "This module defines a reusable grouping for SSH clients that can be used as a basis for specific SSH client instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -66,7 +66,7 @@ module ietf-ssh-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -85,9 +85,8 @@ module ietf-ssh-client { description "Indicates that the 'publickey' authentication type, per RFC 4252, is supported for client identification. - The 'publickey' authentication type is required by - RFC 4252, but common implementations enable it to + RFC 4252, but common implementations allow it to be disabled."; reference "RFC 4252: @@ -115,7 +114,8 @@ module ietf-ssh-client { feature client-ident-none { description "Indicates that the 'none' authentication type, per - RFC 4252, is supported for client identification."; + RFC 4252, is supported for client identification. + It is NOT RECOMMENDED to enable this feature."; reference "RFC 4252: The Secure Shell (SSH) Authentication Protocol"; @@ -169,12 +169,14 @@ module ietf-ssh-client { "RFC CCCC: A YANG Data Model for a Keystore"; uses ks:inline-or-keystore-asymmetric-key-grouping { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:ssh-public-key-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:ssh-public-key-format")'; } - refine "inline-or-keystore/keystore/keystore-reference" { - must 'derived-from-or-self(deref(.)/../ks:public-key-' - + 'format, "ct:ssh-public-key-format")'; + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference" { + must 'not(deref(.)/../ks:public-key-format) or derived-' + + 'from-or-self(deref(.)/../ks:public-key-format, ' + + '"ct:ssh-public-key-format")'; } } } @@ -203,12 +205,14 @@ module ietf-ssh-client { "RFC CCCC: A YANG Data Model for a Keystore"; uses ks:inline-or-keystore-asymmetric-key-grouping { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:ssh-public-key-format")'; + must 'not(public-key-format) or derived-from-or-self(' + + 'public-key-format, "ct:ssh-public-key-format")'; } - refine "inline-or-keystore/keystore/keystore-reference" { - must 'derived-from-or-self(deref(.)/../ks:public-key-' - + 'format, "ct:ssh-public-key-format")'; + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference" { + must 'not(deref(.)/../ks:public-key-format) or derived-' + + 'from-or-self(deref(.)/../ks:public-key-format, ' + + '"ct:ssh-public-key-format")'; } } } @@ -234,13 +238,15 @@ module ietf-ssh-client { uses ks:inline-or-keystore-end-entity-cert-with-key-grouping { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:subject-public-key-info-format")'; + must 'not(public-key-format) or derived-from-or-self(' + + 'public-key-format, "ct:subject-public-key-info-' + + 'format")'; } - refine "inline-or-keystore/keystore/keystore-reference" - + "/asymmetric-key" { - must 'derived-from-or-self(deref(.)/../ks:public-key-' - + 'format, "ct:subject-public-key-info-format")'; + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference/asymmetric-key" { + must 'not(deref(.)/../ks:public-key-format) or derived-' + + 'from-or-self(deref(.)/../ks:public-key-format, ' + + '"ct:subject-public-key-info-format")'; } } } @@ -272,8 +278,8 @@ module ietf-ssh-client { must 'derived-from-or-self(public-key-format,' + ' "ct:ssh-public-key-format")'; } - refine - "inline-or-truststore/truststore/truststore-reference" { + refine "inline-or-truststore/central-truststore/" + + "central-truststore-reference" { must 'not(deref(.)/../ts:public-key/ts:public-key-' + 'format[not(derived-from-or-self(., "ct:ssh-' + 'public-key-format"))])'; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ssh-common@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-ssh-common@2023-04-17.yang deleted file mode 100644 index d331660f6..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-ssh-common@2023-04-17.yang +++ /dev/null @@ -1,256 +0,0 @@ -module ietf-ssh-common { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-ssh-common"; - prefix sshcmn; - - import iana-ssh-encryption-algs { - prefix sshea; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - import iana-ssh-key-exchange-algs { - prefix sshkea; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - import iana-ssh-mac-algs { - prefix sshma; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - import iana-ssh-public-key-algs { - prefix sshpka; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - import ietf-crypto-types { - prefix ct; - reference - "RFC AAAA: YANG Data Types and Groupings for Cryptography"; - } - - import ietf-keystore { - prefix ks; - reference - "RFC CCCC: A YANG Data Model for a Keystore"; - } - - organization - "IETF NETCONF (Network Configuration) Working Group"; - - contact - "WG Web: https://datatracker.ietf.org/wg/netconf - WG List: NETCONF WG list - Author: Kent Watsen - Author: Gary Wu "; - - description - "This module defines a common features and groupings for - Secure Shell (SSH). - - 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 EEEE - (https://www.rfc-editor.org/info/rfcEEEE); 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-04-17 { - description - "Initial version"; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - - // Features - - feature ssh-x509-certs { - description - "X.509v3 certificates are supported for SSH."; - reference - "RFC 6187: X.509v3 Certificates for Secure Shell - Authentication"; - } - - feature transport-params { - description - "SSH transport layer parameters are configurable."; - } - - feature public-key-generation { - description - "Indicates that the server implements the - 'generate-public-key' RPC."; - } - - // Groupings - - grouping transport-params-grouping { - description - "A reusable grouping for SSH transport parameters."; - reference - "RFC 4253: The Secure Shell (SSH) Transport Layer Protocol"; - container host-key { - description - "Parameters regarding host key."; - leaf-list host-key-alg { - type identityref { - base sshpka:public-key-alg-base; - } - ordered-by user; - description - "Acceptable host key algorithms in order of decreasing - preference. - - If this leaf-list is not configured (has zero elements) - the acceptable host key algorithms are implementation- - defined."; - reference - "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; - } - } - container key-exchange { - description - "Parameters regarding key exchange."; - leaf-list key-exchange-alg { - type identityref { - base sshkea:key-exchange-alg-base; - } - ordered-by user; - description - "Acceptable key exchange algorithms in order of decreasing - preference. - - If this leaf-list is not configured (has zero elements) - the acceptable key exchange algorithms are implementation - defined."; - } - } - container encryption { - description - "Parameters regarding encryption."; - leaf-list encryption-alg { - type identityref { - base sshea:encryption-alg-base; - } - ordered-by user; - description - "Acceptable encryption algorithms in order of decreasing - preference. - - If this leaf-list is not configured (has zero elements) - the acceptable encryption algorithms are implementation - defined."; - } - } - container mac { - description - "Parameters regarding message authentication code (MAC)."; - leaf-list mac-alg { - type identityref { - base sshma:mac-alg-base; - } - ordered-by user; - description - "Acceptable MAC algorithms in order of decreasing - preference. - - If this leaf-list is not configured (has zero elements) - the acceptable MAC algorithms are implementation- - defined."; - } - } - } - - // Protocol-accessible Nodes - - rpc generate-public-key { - if-feature "public-key-generation"; - description - "Requests the device to generate an public key using - the specified key algorithm."; - input { - leaf algorithm { - type sshpka:public-key-algorithm-ref; - mandatory true; - description - "The algorithm to be used when generating the key."; - } - leaf bits { - type uint16; - description - "Specifies the number of bits in the key to create. - For RSA keys, the minimum size is 1024 bits and - the default is 3072 bits. Generally, 3072 bits is - considered sufficient. DSA keys must be exactly 1024 - bits as specified by FIPS 186-6. For ECDSA keys, the - 'bits' value determines the key length by selecting - from one of three elliptic curve sizes: 256, 384 or - 521 bits. Attempting to use bit lengths other than - these three values for ECDSA keys will fail. ECDSA-SK, - Ed25519 and Ed25519-SK keys have a fixed length and - the 'bits' value, if specified, will be ignored."; - reference - "FIPS 186-6: Digital Signature Standard (DSS)"; - } - choice private-key-encoding { - mandatory true; - description - "A choice amongst optional private key handling."; - case cleartext { - if-feature "ct:encrypted-private-keys"; - leaf cleartext { - type empty; - description - "Indicates that the private key is to be returned - as a cleartext value."; - } - } - case encrypt { - if-feature "ct:encrypted-private-keys"; - container encrypt-with { - description - "Indicates that the key is to be encrypted using - the specified symmetric or asymmetric key."; - uses ks:encrypted-by-choice-grouping; - } - } - case hide { - if-feature "ct:hidden-private-keys"; - leaf hide { - type empty; - description - "Indicates that the private key is to be hidden. - - Unlike the 'cleartext' and 'encrypt' options, the - key returned is a placeholder for an internally - stored key. See the 'Support for Built-in Keys' - section in RFC CCCC for information about hidden - keys."; - } - } - } - } - output { - uses ct:asymmetric-key-pair-grouping; - } - } // end generate-public-key - -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ssh-common@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-ssh-common@2024-03-16.yang new file mode 100644 index 000000000..cc0b9dbcd --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ssh-common@2024-03-16.yang @@ -0,0 +1,462 @@ +module ietf-ssh-common { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ssh-common"; + prefix sshcmn; + + import iana-ssh-encryption-algs { + prefix sshea; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + import iana-ssh-key-exchange-algs { + prefix sshkea; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + import iana-ssh-mac-algs { + prefix sshma; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + import iana-ssh-public-key-algs { + prefix sshpka; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + import ietf-crypto-types { + prefix ct; + reference + "RFC AAAA: YANG Data Types and Groupings for Cryptography"; + } + + import ietf-keystore { + prefix ks; + reference + "RFC CCCC: A YANG Data Model for a Keystore"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG Web: https://datatracker.ietf.org/wg/netconf + WG List: NETCONF WG list + Author: Kent Watsen + Author: Gary Wu "; + + description + "This module defines a common features and groupings for + Secure Shell (SSH). + + 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 EEEE + (https://www.rfc-editor.org/info/rfcEEEE); 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-03-16 { + description + "Initial version"; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + // Features + + feature ssh-x509-certs { + description + "X.509v3 certificates are supported for SSH."; + reference + "RFC 6187: X.509v3 Certificates for Secure Shell + Authentication"; + } + + feature transport-params { + description + "SSH transport layer parameters are configurable."; + } + + feature asymmetric-key-pair-generation { + description + "Indicates that the server implements the + 'generate-asymmetric-key-pair' RPC."; + } + + feature algorithm-discovery { + description + "Indicates that the server implements the + 'supported-algorithms' container."; + } + + // Typedefs + + typedef ssh-public-key-algorithm { + type union { + type sshpka:ssh-public-key-algorithm; + type string { + length "1..64" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + pattern ".*@.*" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + } + } + description + "A type that enables the public key algorithm to be + either an IANA-maintained public key algorithm in + the 'iana-ssh-public-key-algs' YANG module (RFC EEEE), + or a locally-defined algorithm, per Section 4.6.1 + of RFC 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers + RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-key-exchange-algorithm { + type union { + type sshkea:ssh-key-exchange-algorithm; + type string { + length "1..64" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + pattern ".*@.*" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + } + } + description + "A type that enables the key exchange algorithm to be + either an IANA-maintained key exchange algorithm in + the 'iana-ssh-key-exchange-algs' YANG module (RFC EEEE), + or a locally-defined algorithm, per Section 4.6.1 + of RFC 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers + RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-encryption-algorithm { + type union { + type sshea:ssh-encryption-algorithm; + type string { + length "1..64" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + pattern ".*@.*" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + } + } + description + "A type that enables the encryption algorithm to be + either an IANA-maintained encryption algorithm in + the 'iana-ssh-encryption-algs' YANG module (RFC EEEE), + or a locally-defined algorithm, per Section 4.6.1 + of RFC 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers + RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + typedef ssh-mac-algorithm { + type union { + type sshma:ssh-mac-algorithm; + type string { + length "1..64" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + pattern ".*@.*" { + description + "Non IANA-maintained algorithms must include the + 'at-sign' (@) in them, per Section 4.6.1 of RFC + 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers"; + } + } + } + description + "A type that enables the MAC algorithm to be + either an IANA-maintained MAC algorithm in + the 'iana-ssh-mac-algs' YANG module (RFC EEEE), + or a locally-defined algorithm, per Section 4.6.1 + of RFC 4250."; + reference + "RFC 4250: SSH Protocol Assigned Numbers + RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + + // Groupings + + grouping transport-params-grouping { + description + "A reusable grouping for SSH transport parameters."; + reference + "RFC 4253: The Secure Shell (SSH) Transport Layer Protocol"; + container host-key { + description + "Parameters regarding host key."; + leaf-list host-key-alg { + type ssh-public-key-algorithm; + ordered-by user; + description + "Acceptable host key algorithms in order of decreasing + preference. + + If this leaf-list is not configured (has zero elements) + the acceptable host key algorithms are implementation- + defined."; + reference + "RFC EEEE: YANG Groupings for SSH Clients and SSH Servers"; + } + } + container key-exchange { + description + "Parameters regarding key exchange."; + leaf-list key-exchange-alg { + type ssh-key-exchange-algorithm; + ordered-by user; + description + "Acceptable key exchange algorithms in order of decreasing + preference. + + If this leaf-list is not configured (has zero elements) + the acceptable key exchange algorithms are implementation + defined."; + } + } + container encryption { + description + "Parameters regarding encryption."; + leaf-list encryption-alg { + type ssh-encryption-algorithm; + ordered-by user; + description + "Acceptable encryption algorithms in order of decreasing + preference. + + If this leaf-list is not configured (has zero elements) + the acceptable encryption algorithms are implementation + defined."; + } + } + container mac { + description + "Parameters regarding message authentication code (MAC)."; + leaf-list mac-alg { + type ssh-mac-algorithm; + ordered-by user; + description + "Acceptable MAC algorithms in order of decreasing + preference. + + If this leaf-list is not configured (has zero elements) + the acceptable MAC algorithms are implementation- + defined."; + } + } + } + + // Protocol-accessible Nodes + + container supported-algorithms { + if-feature "algorithm-discovery"; + config false; + description + "Identifies all of the supported algorithms."; + container public-key-algorithms { + description + "A container for a list of public key algorithms + supported by the server."; + leaf-list supported-algorithm { + type ssh-public-key-algorithm; + description + "A public key algorithm supported by the server."; + } + } + container encryption-algorithms { + description + "A container for a list of encryption algorithms + supported by the server."; + leaf-list supported-algorithm { + type ssh-encryption-algorithm; + description + "An encryption algorithm supported by the server."; + } + } + container key-exchange-algorithms { + config false; + description + "A container for a list of key exchange algorithms + supported by the server."; + leaf-list supported-algorithm { + type ssh-key-exchange-algorithm; + description + "A key exchange algorithm supported by the server."; + } + } + container mac-algorithms { + config false; + description + "A container for a list of MAC algorithms + supported by the server."; + leaf-list supported-algorithm { + type ssh-mac-algorithm; + description + "A MAC algorithm supported by the server."; + } + } + } + + rpc generate-asymmetric-key-pair { + if-feature "asymmetric-key-pair-generation"; + description + "Requests the device to generate a public key using + the specified key algorithm."; + input { + leaf algorithm { + type ssh-public-key-algorithm; + mandatory true; + description + "The algorithm to be used when generating the key."; + } + leaf num-bits { + type uint16; + description + "Specifies the number of bits in the key to create. + For RSA keys, the minimum size is 1024 bits and + the default is 3072 bits. Generally, 3072 bits is + considered sufficient. DSA keys must be exactly 1024 + bits as specified by FIPS 186-6. For ECDSA keys, the + 'num-bits' value determines the key length by selecting + from one of three elliptic curve sizes: 256, 384 or + 521 bits. Attempting to use bit lengths other than + these three values for ECDSA keys will fail. ECDSA-SK, + Ed25519 and Ed25519-SK keys have a fixed length and + thus the 'num-bits' value is not specified."; + reference + "FIPS 186-6: Digital Signature Standard (DSS)"; + } + container private-key-encoding { + description + "Indicates how the private key is to be encoded."; + choice private-key-encoding { + mandatory true; + description + "A choice amongst optional private key handling."; + case cleartext { + if-feature "ct:cleartext-private-keys"; + leaf cleartext { + type empty; + description + "Indicates that the private key is to be returned + as a cleartext value."; + } + } + case encrypted { + if-feature "ct:encrypted-private-keys"; + container encrypted { + description + "Indicates that the private key is to be encrypted + using the specified symmetric or asymmetric key."; + uses ks:encrypted-by-grouping; + } + } + case hidden { + if-feature "ct:hidden-private-keys"; + leaf hidden { + type empty; + description + "Indicates that the private key is to be hidden. + + Unlike the 'cleartext' and 'encrypt' options, the + key returned is a placeholder for an internally + stored key. See the 'Support for Built-in Keys' + section in RFC CCCC for information about hidden + keys. + + It is expected that the server will instantiate + the hidden key in the same location where built-in + keys are located. Rather than return the key, + just the key's location is returned in the output."; + } + } + } + } + } + output { + choice key-or-hidden { + case key { + uses ct:asymmetric-key-pair-grouping; + } + case hidden { + leaf location { + type instance-identifier; + description + "The location to where a hidden key was created."; + } + } + description + "The output can be either a key (for cleartext and + encrypted keys) or the location to where the key + was created (for hidden keys)."; + } + } + } // end generate-asymmetric-key-pair + +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ssh-server@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-ssh-server@2024-03-16.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-ssh-server@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ssh-server@2024-03-16.yang index b5b564e72..19de8db5c 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ssh-server@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ssh-server@2024-03-16.yang @@ -3,6 +3,12 @@ module ietf-ssh-server { namespace "urn:ietf:params:xml:ns:yang:ietf-ssh-server"; prefix sshs; + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import iana-crypt-hash { prefix ianach; reference @@ -51,7 +57,7 @@ module ietf-ssh-server { "This module defines a reusable grouping for SSH servers that can be used as a basis for specific SSH server instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -72,7 +78,7 @@ module ietf-ssh-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -99,9 +105,8 @@ module ietf-ssh-server { description "Indicates that the 'publickey' authentication type, per RFC 4252, is supported for locally-defined users. - The 'publickey' authentication type is required by - RFC 4252, but common implementations enable it to + RFC 4252, but common implementations allow it to be disabled."; reference "RFC 4252: @@ -127,6 +132,7 @@ module ietf-ssh-server { "RFC 4252: The Secure Shell (SSH) Authentication Protocol"; } + feature local-user-auth-none { if-feature "local-users-supported"; description @@ -190,13 +196,14 @@ module ietf-ssh-server { "RFC CCCC: A YANG Data Model for a Keystore"; uses ks:inline-or-keystore-asymmetric-key-grouping { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:ssh-public-key-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:ssh-public-key-format")'; } - refine "inline-or-keystore/keystore/" - + "keystore-reference" { - must 'derived-from-or-self(deref(.)/../ks:public-' + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-' + 'key-format, "ct:ssh-public-key-format")'; } } @@ -212,14 +219,15 @@ module ietf-ssh-server { uses ks:inline-or-keystore-end-entity-cert-with-key-grouping{ refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:subject-public-key-info-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:subject-public-key-' + + 'info-format")'; } - refine "inline-or-keystore/keystore/keystore-reference" - + "/asymmetric-key" { - must - 'derived-from-or-self(deref(.)/../ks:public-key-' - + 'format, "ct:subject-public-key-info-format")'; + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference/asymmetric-key" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-key' + + '-format, "ct:subject-public-key-info-format")'; } } } @@ -283,19 +291,31 @@ module ietf-ssh-server { must 'derived-from-or-self(public-key-format,' + ' "ct:ssh-public-key-format")'; } - refine "inline-or-truststore/truststore/truststore-" - + "reference" { + refine "inline-or-truststore/central-truststore/" + + "central-truststore-reference" { must 'not(deref(.)/../ts:public-key/ts:public-key-' + 'format[not(derived-from-or-self(., "ct:ssh-' + 'public-key-format"))])'; } } } - leaf password { - if-feature "local-user-auth-password"; - type ianach:crypt-hash; + container password { description - "The password for this user."; + "A password the SSH server may use to authenticate + this user. A user is authenticated if the hash + of the supplied password matches this value."; + leaf hashed-password { + if-feature "local-user-auth-password"; + type ianach:crypt-hash; + description + "The password for this user."; + } + leaf last-modified { + type yang:date-and-time; + config false; + description + "Identifies when the password was last set."; + } } container hostbased { if-feature "local-user-auth-hostbased"; @@ -318,8 +338,8 @@ module ietf-ssh-server { must 'derived-from-or-self(public-key-format,' + ' "ct:ssh-public-key-format")'; } - refine "inline-or-truststore/truststore/truststore-" - + "reference" { + refine "inline-or-truststore/central-truststore/" + + "central-truststore-reference" { must 'not(deref(.)/../ts:public-key/ts:public-key-' + 'format[not(derived-from-or-self(., "ct:ssh-' + 'public-key-format"))])'; @@ -337,7 +357,7 @@ module ietf-ssh-server { Protocol."; } } - } + } // users container ca-certs { if-feature "sshcmn:ssh-x509-certs"; presence diff --git a/experimental/ietf-extracted-YANG-modules/ietf-subscribed-notif-receivers@2022-11-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-subscribed-notif-receivers@2024-02-01.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-subscribed-notif-receivers@2022-11-03.yang rename to experimental/ietf-extracted-YANG-modules/ietf-subscribed-notif-receivers@2024-02-01.yang index cbc0fd834..b3ebb8f91 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-subscribed-notif-receivers@2022-11-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-subscribed-notif-receivers@2024-02-01.yang @@ -14,7 +14,7 @@ module ietf-subscribed-notif-receivers { "IETF NETCONF Working Group"; contact - "WG Web: + "WG Web: WG List: Authors: Mahesh Jethanandani (mjethanandani at gmail dot com) @@ -38,7 +38,7 @@ module ietf-subscribed-notif-receivers { multiple configured subscriptions to send notifications to the same receiver instance. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject @@ -56,7 +56,7 @@ module ietf-subscribed-notif-receivers { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision "2022-11-03" { + revision "2024-02-01" { description "Initial Version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-symptom-semantic-metadata@2024-06-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-symptom-semantic-metadata@2024-06-29.yang new file mode 100644 index 000000000..6f5da1736 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-symptom-semantic-metadata@2024-06-29.yang @@ -0,0 +1,168 @@ +module ietf-symptom-semantic-metadata { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-symptom-semantic-metadata"; + prefix sm; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + + organization "IETF NMOP (Network Management Operations) Working Group"; + contact + "WG Web: + WG List: + + Authors: Thomas Graf + + Wanting Du + + Alex Huang Feng + + Vincenzo Riccobene + + Antonio Roberto + "; + description + "This module defines symptom objects to be used by a network + anomaly detection system. The defined objects can be used to + augment operational network collected observability data and + analytical problem data equally. Describing the observed + symptoms, confidence and concern scores and outlier patterns. + + Copyright (c) 2023 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Revised BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see the RFC + itself for full legal notices."; + + revision 2024-06-29 { + description + "Initial version"; + reference + "RFC XXX: Semantic Metadata Annotation for Network Anomaly Detection"; + } + + typedef score { + type uint8 { + range "0 .. 1"; + } + } + + grouping symptom-group { + container symptom { + leaf id { + type yang:uuid; + description + "Unique ID of the symptom type"; + } + leaf event-id { + type yang:uuid; + description "Reference to the network event this symptom is part of"; + } + leaf description { + type string; + description + "Textual description of the symptom"; + } + leaf start-time { + type yang:date-and-time; + description + "Date and time indicating the beginning of the symptom"; + } + leaf end-time { + type yang:date-and-time; + description + "Date and time indicating the end of the symptom"; + } + leaf confidence-score { + type score; + } + leaf concern-score { + type score; + } + list tags { + key "key"; + leaf key { + type "string"; + mandatory "true"; + } + leaf value { + type "string"; + mandatory "true"; + } + } + choice pattern { + mandatory "false"; + description + "Network Plane affected by the symptom"; + case drop { + leaf drop { + mandatory "true"; + type empty; + } + } + case spike { + leaf spike { + mandatory "true"; + type empty; + } + } + case mean-shift { + leaf mean-shift { + mandatory "true"; + type empty; + } + } + case seasonality-shift { + leaf seasonality-shift { + mandatory "true"; + type empty; + } + } + case trend { + leaf trend { + mandatory "true"; + type empty; + } + } + case other { + leaf other { + type string; + mandatory "true"; + description "specify the type"; + } + } + } + container annotator { + choice annotator-type { + mandatory "true"; + case human { + leaf human { + mandatory "true"; + type empty; + } + } + case algorithm { + leaf algorithm { + mandatory "true"; + type empty; + } + } + } + leaf name { + mandatory "false"; + type string; + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-syslog@2023-03-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-syslog@2023-03-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang index ba29cc070..e33c559a4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-syslog@2023-03-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang @@ -48,7 +48,7 @@ module ietf-syslog { "This module contains a collection of YANG definitions for syslog configuration. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -69,7 +69,7 @@ module ietf-syslog { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-03-06 { + revision 2024-03-21 { description "Initial Revision"; reference @@ -307,7 +307,6 @@ module ietf-syslog { reference "RFC 5424: The Syslog Protocol"; } - identity ntp { base syslog-facility; description @@ -588,6 +587,7 @@ module ietf-syslog { "RFC 5424: The Syslog Protocol"; } } + container syslog { presence "Enables logging."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-system-datastore@2023-11-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-system-datastore@2024-06-18.yang similarity index 66% rename from experimental/ietf-extracted-YANG-modules/ietf-system-datastore@2023-11-05.yang rename to experimental/ietf-extracted-YANG-modules/ietf-system-datastore@2024-06-18.yang index ee7da172d..d438f733b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-system-datastore@2023-11-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-system-datastore@2024-06-18.yang @@ -10,7 +10,7 @@ module ietf-system-datastore { } organization - "IETF NETDOD (Network Modeling) Working Group"; + "IETF NETMOD (Network Modeling) Working Group"; contact "WG Web: https://datatracker.ietf.org/wg/netmod/ WG List: NETMOD WG list @@ -20,12 +20,12 @@ module ietf-system-datastore { Author: Qin Wu Author: Chong Feng - "; + "; description "This module defines a new YANG identity that uses the ds:datastore identity defined in [RFC8342]. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -35,18 +35,11 @@ module ietf-system-datastore { Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC HHHH - (https://www.rfc-editor.org/info/rfcHHHH); see the RFC - itself for full legal notices. + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC + itself for full legal notices."; - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', - 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', - 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document - are to be interpreted as described in BCP 14 (RFC 2119) - (RFC 8174) when, and only when, they appear in all - capitals, as shown here."; - - revision 2023-11-05 { + revision 2024-06-18 { description "Initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-system-secure-tacacs@2024-05-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-system-secure-tacacs@2024-05-23.yang new file mode 100644 index 000000000..2b1467456 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-system-secure-tacacs@2024-05-23.yang @@ -0,0 +1,586 @@ +module ietf-system-secure-tacacs { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-system-secure-tacacs"; + prefix secure-tacacs; + + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-keystore { + prefix ks; + reference + "RFC CCCC: A YANG Data Model for a Keystore"; + } + import ietf-truststore { + prefix ts; + reference + "RFC BBBB: A YANG Data Model for a Truststore"; + } + import ietf-tls-client { + prefix tlsc; + reference + "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; + } + import ietf-netconf-acm { + prefix nacm; + reference + "RFC 8341: Network Configuration Access Control Model"; + } + import ietf-crypto-types { + prefix ct; + reference + "RFC AAAA: YANG Data Types and Groupings for Cryptography"; + } + import ietf-tls-common { + prefix tlscmn; + reference + "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; + } + import ietf-system { + prefix sys; + reference + "RFC 7317: A YANG Data Model for System Management"; + } + import ietf-system-tacacs-plus { + prefix sys-tcs-plus; + reference + "RFC 9105: A YANG Data Model for Terminal Access Controller + Access-Control System Plus (TACACS+)"; + } + + organization + "IETF OPSAWG (Operations and Management Area Working Group)"; + contact + "WG Web: + WG List: + + Editor: Mohamed Boucadair + "; + description + "This module provides configuration of TACACS+ over TLS + 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-05-23 { + description + "Initial revision."; + reference + "RFC XXXX: A YANG Model for Terminal Access Controller + Access-Control System Plus (TACACS+) over TLS 1.3"; + } + + typedef client-credentials-ref { + type leafref { + path "/sys:system/sys-tcs-plus:tacacs-plus" + + "/secure-tacacs:client-credentials/secure-tacacs:id"; + } + description + "Defines a type to reference client credentials."; + } + + typedef server-credentials-ref { + type leafref { + path "/sys:system/sys-tcs-plus:tacacs-plus" + + "/secure-tacacs:server-credentials/secure-tacacs:id"; + } + description + "Defines a type to reference server credentials."; + } + + grouping certificate { + description + "Specifies the client identity using a certificate."; + uses "ks:inline-or-keystore-end-entity-cert-with-key-" + + "grouping" { + refine "inline-or-keystore/inline/inline-definition" { + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:subject-public-key-' + + 'info-format")'; + } + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference/asymmetric-key" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-' + + 'key-format, "ct:subject-public-key-info-' + + 'format")'; + } + } + } + + grouping raw-private-key { + description + "Specifies the client identity using a raw private + key."; + uses ks:inline-or-keystore-asymmetric-key-grouping { + refine "inline-or-keystore/inline/inline-definition" { + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:subject-public-key-' + + 'info-format")'; + } + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-' + + 'key-format, "ct:subject-public-key-info-format")'; + } + } + } + + grouping tls13-epsk { + description + "An External Pre-Shared Key (EPSK) is established + or provisioned out-of-band, i.e., not from a TLS + connection. An EPSK is a tuple of (Base Key, + External Identity, Hash). When PSKs are provisioned + out of band, the PSK identity and the KDF hash algorithm + to be used with the PSK must also be provisioned."; + reference + "RFC 8446: The Transport Layer Security (TLS) Protocol + Version 1.3, Section 4.2.11 + RFC 9257: Guidance for External Pre-Shared Key (PSK) Usage + in TLS, Section 6 + RFC 9258: Importing External Pre-Shared Keys (PSKs) for + TLS 1.3, Section 5.1"; + uses ks:inline-or-keystore-symmetric-key-grouping; + leaf external-identity { + type string; + mandatory true; + description + "A sequence of bytes used to identify an EPSK. A label for + a pre-shared key established externally."; + reference + "RFC 8446: The Transport Layer Security (TLS) Protocol + Version 1.3, Section 4.2.11 + RFC 9257: Guidance for External Pre-Shared Key (PSK) + Usage in TLS, Section 4.1"; + } + leaf hash { + type tlscmn:epsk-supported-hash; + default "sha-256"; + description + "For externally established PSKs, the Hash algorithm must be + set when the PSK is established or default to SHA-256 if no + such algorithm is defined."; + reference + "RFC 8446: The Transport Layer Security (TLS) Protocol + Version 1.3, Section 4.2.11"; + } + leaf context { + type string; + description + "The context used to determine the EPSK, if any exists. For + example, context may include information about peer roles or + identities to mitigate Selfie-style reflection attacks."; + reference + "RFC 9258: Importing External Pre-Shared Keys (PSKs) for + TLS 1.3, Section 5.1 "; + } + leaf target-protocol { + type uint16; + description + "Specifies the protocol for which a PSK is imported for + use."; + reference + "RFC 9258: Importing External Pre-Shared Keys (PSKs) for + TLS 1.3, Section 3 "; + } + leaf target-kdf { + type uint16; + description + "The KDF for which a PSK is imported for use."; + reference + "RFC 9258: Importing External Pre-Shared Keys (PSKs) for + TLS 1.3, Section 3"; + } + } + + grouping client-identity { + description + "Identity credentials that the TLS client may present when + establishing a connection to a TLS server. When configured, + and requested by the TLS server when establishing a TLS + session, these credentials are passed in the Certificate + message."; + reference + "RFC 8446: The Transport Layer Security (TLS) Protocol + Version 1.3, Section 4.4.2"; + nacm:default-deny-write; + choice auth-type { + //default "certificate"; + //mandatory true; + description + "A choice amongst authentication types, of which one must + be enabled and selected."; + case certificate { + container certificate { + description + "Specifies the client identity using a certificate."; + uses certificate; + } + } + case raw-public-key { + if-feature "tlsc:client-ident-raw-public-key"; + container raw-private-key { + description + "Specifies the client identity using RPK."; + uses raw-private-key; + } + } + case tls13-epsk { + if-feature "tlsc:client-ident-tls13-epsk"; + container tls13-epsk { + description + "An EPSK is established or provisioned out-of-band."; + uses tls13-epsk; + } + } + } + } + + grouping client-identity-with-ref { + description + "Identity credentials that the TLS client may present when + establishing a connection to a TLS server. When configured, + and requested by the TLS server when establishing a TLS + session, these credentials are passed in the Certificate + message."; + choice ref-or-explicit { + description + "A choice between a reference of explicit configuration."; + case ref { + description + "Provides a reference."; + leaf credentials-reference { + type secure-tacacs:client-credentials-ref; + description + "Specifies the client credentials reference."; + } + } + case explicit { + description + "Explicit configuration."; + uses client-identity; + } + } + } + + grouping server-authentication { + description + "Specifies how the TLS client can authenticate TLS servers. + Any combination of credentials is additive and unordered."; + nacm:default-deny-write; + container ca-certs { + presence "Indicates that CA certificates have been configured. + This statement is present so the mandatory descendant + nodes do not imply that this node must be + configured."; + description + "A set of CA certificates used by the TLS client to + authenticate TLS server certificates. + A server certificate is authenticated if it has a valid + chain of trust to a configured CA certificate."; + reference + "RFC BBBB: A YANG Data Model for a Truststore"; + uses ts:inline-or-truststore-certs-grouping; + } + container ee-certs { + presence "Indicates that EE certificates have been configured. + This statement is present so the mandatory descendant + nodes do not imply that this node must be + configured."; + description + "A set of server certificates (i.e., end entity certificates) + used by the TLS client to authenticate certificates + presented by TLS servers. A server certificate is + authenticated if it is an exact match to a configured server + certificate."; + reference + "RFC BBBB: A YANG Data Model for a Truststore"; + uses ts:inline-or-truststore-certs-grouping; + } + container raw-public-keys { + if-feature "tlsc:server-auth-raw-public-key"; + presence "Indicates that raw public keys have been configured. + This statement is present so the mandatory descendant + nodes do not imply that this node must be + configured."; + description + "A set of raw public keys used by the TLS client to + authenticate raw public keys presented by the TLS server. + A raw public key is authenticated if it is an exact match + to a configured raw public key."; + reference + "RFC BBBB: A YANG Data Model for a Truststore"; + uses ts:inline-or-truststore-public-keys-grouping { + refine "inline-or-truststore/inline/inline-definition/" + + "public-key" { + must 'derived-from-or-self(public-key-format,' + + ' "ct:subject-public-key-info-format")'; + } + refine "inline-or-truststore/central-truststore/" + + "central-truststore-reference" { + must 'not(deref(.)/../ts:public-key/ts:public-key-' + + 'format[not(derived-from-or-self(., "ct:subject-' + + 'public-key-info-format"))])'; + } + } + } + leaf tls13-epsks { + if-feature "tlsc:server-auth-tls13-epsk"; + type empty; + description + "Indicates that the TLS client can authenticate TLS servers + using configured external PSKs."; + } + } + + grouping server-authentication-with-ref { + description + "Specifies how the TLS client can authenticate TLS servers."; + choice ref-or-explicit { + description + "A choice between a reference of explicit configuration."; + case ref { + description + "Provides a reference."; + leaf credentials-reference { + type secure-tacacs:server-credentials-ref; + description + "Specifies the server credentials reference."; + } + } + case explicit { + description + "Explicit configuration."; + uses server-authentication; + } + } + } + + grouping test-peer-aliveness { + description + "Configures the keep-alive policy to proactively test + the aliveness of the TLS server. An unresponsive TLS + server is dropped after approximately max-wait + * max-attempts seconds."; + reference + "RFC 6520: Transport Layer Security (TLS) and Datagram + Transport Layer Security (DTLS) Heartbeat + Extension"; + leaf max-wait { + type uint16 { + range "1..max"; + } + units "seconds"; + default "30"; + description + "Sets the amount of time in seconds after which if no data + has been received from the TLS server, a TLS-level message + will be sent to test the aliveness of the TLS server."; + } + leaf max-attempts { + type uint8; + default "3"; + description + "Sets the maximum number of sequential keep-alive messages + that can fail to obtain a response from the TLS server + before assuming the TLS server is no longer alive."; + } + } + + grouping hello-params { + description + "Configurable parameters for the TLS hello message."; + nacm:default-deny-write; + uses tlscmn:hello-params-grouping { + refine "tls-versions/min" { + must "not(derived-from-or-self(current(), " + + "'tlscmn:tls12'))" { + error-message + "TLS 1.2 is not supported as min TLS version"; + } + } + refine "tls-versions/max" { + must "not(derived-from-or-self(current(), " + + "'tlscmn:tls12'))" { + error-message + "TLS 1.2 is not supported as max TLS version"; + } + } + } + } + + grouping keepalives { + description + "Configures the keepalive policy for the TLS client."; + nacm:default-deny-write; + leaf peer-allowed-to-send { + type empty; + description + "Indicates that the remote TLS server is allowed to send + HeartbeatRequest messages to this TLS client."; + reference + "RFC 6520: Transport Layer Security (TLS) and Datagram + Transport Layer Security (DTLS) Heartbeat + Extension"; + } + container test-peer-aliveness { + presence "Indicates that the TLS client proactively tests the + aliveness of the remote TLS server."; + description + "Configures the keep-alive policy to proactively test the + aliveness of the TLS server. An unresponsive TLS server is + dropped after approximately max-wait * max-attempts + seconds."; + uses test-peer-aliveness; + } + } + + grouping tls-client { + description + "A grouping for configuring a TLS client without any + consideration for how an underlying TCP session is + established."; + container client-identity { + presence + "Indicates that a TLS-level client identity has been + configured. + This statement is present so the mandatory descendant do not + imply that this node must be configured."; + description + "Identity credentials the TLS client may present when + establishing a connection to a TLS server."; + //uses client-identity; + uses client-identity-with-ref; + } + container server-authentication { + must 'ca-certs or ee-certs or raw-public-keys or tls13-epsks'; + description + "Specifies how the TLS client can authenticate TLS servers."; + //uses server-authentication; + uses server-authentication-with-ref; + } + container hello-params { + if-feature "tlscmn:hello-params"; + description + "Configurable parameters for the TLS hello message."; + uses hello-params; + } + container keepalives { + if-feature "tlsc:tls-client-keepalives"; + description + "Configures the keepalive policy for the TLS client."; + uses keepalives; + } + } + + grouping tcp-server-info { + description + "A grouping for configuring the information to contact + a TCP server."; + list remote-address { + key "address"; + description + "A server instance may be reachable using multiple IP address + and port numbers. For example, use the same port number in + different address families or different port numbers in the + same address family."; + leaf address { + type inet:ip-address; + description + "The remote IP address to reach a server."; + } + leaf port-number { + type inet:port-number; + description + "The remote port number of the server."; + } + } + } + + augment "/sys:system/sys-tcs-plus:tacacs-plus" { + description + "A list of client credentials to be referenced."; + list client-credentials { + key "id"; + description + "Identity credentials the TLS client may present when + establishing a connection to a TLS server."; + nacm:default-deny-write; + leaf id { + type string; + description + "A credential identifier."; + } + uses client-identity; + } + list server-credentials { + key "id"; + description + "Identity credentials the TLS client may present when + establishing a connection to a TLS server."; + nacm:default-deny-write; + leaf id { + type string; + description + "A credential identifier."; + } + uses server-authentication; + } + } + + augment "/sys:system/sys-tcs-plus:tacacs-plus" + + "/sys-tcs-plus:server" { + description + "Adds server's domain name."; + uses tcp-server-info { + refine "remote-address/address" { + must 'not(../../sys-tcs-plus:address)' { + error-message + "Either use the list of bind points or RFC 9105 address + data node, not both."; + } + } + refine "remote-address/port-number" { + must 'not(../../sys-tcs-plus:port)' { + error-message + "Either use the list of bind points or RFC 9105 port + data node, not both."; + } + default "1234"; // to be replaced by TACACS-TLS-PORT + } + } + leaf domain-name { + type inet:domain-name; + description + "Provides a domain name of the TACACS+ server."; + } + } + + augment + "/sys:system/sys-tcs-plus:tacacs-plus/sys-tcs-plus:server" + + "/sys-tcs-plus:security" { + description + "Adds TLS case."; + case tls { + description + "TLS is used."; + uses tls-client; + //uses client-identity-with-ref; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tcg-algs@2022-03-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-tcg-algs@2022-03-23.yang index a98c7ca63..f9fa94eac 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tcg-algs@2022-03-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tcg-algs@2022-03-23.yang @@ -43,6 +43,7 @@ module ietf-tcg-algs { /*****************/ /* Features */ /*****************/ + feature tpm12 { description "This feature indicates algorithm support for the TPM 1.2 API @@ -495,7 +496,6 @@ module ietf-tcg-algs { "TCG-Algos:TCG Algorithm Registry Rev1.32 Table 3 and ISO/IEC 15946-1. ALG_ID: 0x0023"; } - identity TPM_ALG_SYMCIPHER { if-feature "tpm20"; base tpm20; @@ -688,7 +688,6 @@ module ietf-tcg-algs { "TCG-Algos:TCG Algorithm Registry Rev1.32 Table 3 and NIST SP800-38F. ALG_ID: 0x0054"; } - identity TPM_ALG_EDDSA { if-feature "tpm20"; base tpm20; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tcp-client@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tcp-client@2024-04-04.yang similarity index 90% rename from experimental/ietf-extracted-YANG-modules/ietf-tcp-client@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tcp-client@2024-04-04.yang index 95e62149b..2187637f9 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tcp-client@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tcp-client@2024-04-04.yang @@ -38,7 +38,7 @@ module ietf-tcp-client { "This module defines reusable groupings for TCP clients that can be used as a basis for specific TCP client instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -59,7 +59,7 @@ module ietf-tcp-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-04-04 { description "Initial version"; reference @@ -85,20 +85,40 @@ module ietf-tcp-client { feature proxy-connect { description - "Proxy connection configuration is configurable for - TCP clients on the server implementing this feature. - Currently supports SOCKS 4, SOCKS 4a, and SOCKS 5."; + "Indicates the TCP-client supports connecting through + TCP proxies."; + } + + feature socks4-supported { + if-feature proxy-connect; + description + "Indicates the TCP-client supports Socks4-based proxies."; reference "SOCKS Proceedings: - 1992 Usenix Security Symposium. - OpenSSH message: + 1992 Usenix Security Symposium."; + } + + feature socks4a-supported { + if-feature proxy-connect; + description + "Indicates the TCP-client supports Socks4a-based proxies."; + reference + "OpenSSH message: SOCKS 4A: A Simple Extension to SOCKS 4 Protocol - https://www.openssh.com/txt/socks4a.protocol - RFC 1928: + https://www.openssh.com/txt/socks4a.protocol."; + } + + feature socks5-supported { + if-feature proxy-connect; + description + "Indicates the TCP-client supports Socks5-based proxies."; + reference + "RFC 1928: SOCKS Protocol Version 5"; } feature socks5-gss-api { + if-feature socks5-supported; description "Indicates that the server, when acting as a TCP-client, supports authenticating to a SOCKS Version 5 proxy server @@ -108,6 +128,7 @@ module ietf-tcp-client { } feature socks5-username-password { + if-feature socks5-supported; description "Indicates that the server, when acting as a TCP-client, supports authenticating to a SOCKS Version 5 proxy server @@ -161,7 +182,7 @@ module ietf-tcp-client { connecting to the remote peer. INADDR_ANY ('0.0.0.0') or INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') MAY be used to explicitly indicate the implicit default, that the server - can bind to any IPv4 or IPv6 addresses, respectively."; + can bind to any IPv4 or IPv6 address."; } leaf local-port { if-feature "local-binding-supported"; @@ -184,6 +205,7 @@ module ietf-tcp-client { description "Selects a proxy connection protocol."; case socks4 { + if-feature socks4-supported; container socks4-parameters { leaf remote-address { type inet:ip-address; @@ -205,6 +227,7 @@ module ietf-tcp-client { } } case socks4a { + if-feature socks4a-supported; container socks4a-parameters { leaf remote-address { type inet:host; @@ -230,6 +253,7 @@ module ietf-tcp-client { } } case socks5 { + if-feature socks5-supported; container socks5-parameters { leaf remote-address { type inet:host; @@ -315,10 +339,10 @@ module ietf-tcp-client { } uses tcpcmn:tcp-common-grouping { - augment "keepalives" { + refine "keepalives" { if-feature "tcp-client-keepalives"; description - "Add an if-feature statement so that implementations + "An if-feature statement so that implementations can choose to support TCP client keepalives."; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tcp-common@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tcp-common@2024-04-04.yang similarity index 80% rename from experimental/ietf-extracted-YANG-modules/ietf-tcp-common@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tcp-common@2024-04-04.yang index 100380ff0..1b9c4f84b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tcp-common@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tcp-common@2024-04-04.yang @@ -17,8 +17,10 @@ module ietf-tcp-common { "; description - "This module defines reusable groupings for TCP commons that - can be used as a basis for specific TCP common instances. + "This module define a reusable 'grouping' that is common + to both TCP-clients and TCP-servers. This grouping statement + is used by both the 'ietf-tcp-client' and 'ietf-tcp-server' + modules. Copyright (c) 2023 IETF Trust and the persons identified as authors of the code. All rights reserved. @@ -41,7 +43,7 @@ module ietf-tcp-common { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-04-04 { description "Initial version"; reference @@ -56,6 +58,7 @@ module ietf-tcp-common { } // Groupings + grouping tcp-common-grouping { description "A reusable grouping for configuring TCP parameters common @@ -64,37 +67,37 @@ module ietf-tcp-common { container keepalives { if-feature "keepalives-supported"; presence - "Indicates that keepalives are enabled. This statement is - present so the mandatory descendant nodes do not imply that - this node must be configured."; + "Indicates that keepalives are enabled, aligning to + the requirement in Section 3.8.4 RFC 9293 that + keepalives are off by default."; description "Configures the keep-alive policy, to proactively test the aliveness of the TCP peer. An unresponsive TCP peer is - dropped after approximately (idle-time + max-probes - * probe-interval) seconds."; + dropped after approximately (idle-time + max-probes * + probe-interval) seconds. Further guidance can be found + in Section 2.1.5 of RFC DDDD."; reference - "RFC 9293: - Transmission Control Protocol (TCP), Section 3.8.4.."; + "RFC 9293: Transmission Control Protocol (TCP)"; leaf idle-time { type uint16 { range "1..max"; } units "seconds"; - mandatory true; + default 7200; description "Sets the amount of time after which if no data has been received from the TCP peer, a TCP-level probe message will be sent to test the aliveness of the TCP peer. - Two hours (7200 seconds) is safe value, per RFC 1122."; + Two hours (7200 seconds) is safe value, per RFC 9293 + Section 3.8.4."; reference - "RFC 1122: - Requirements for Internet Hosts -- Communication Layers"; + "RFC 9293: Transmission Control Protocol (TCP)"; } leaf max-probes { type uint16 { range "1..max"; } - mandatory true; + default 9; description "Sets the maximum number of sequential keep-alive probes that can fail to obtain a response from the TCP peer @@ -105,7 +108,7 @@ module ietf-tcp-common { range "1..max"; } units "seconds"; - mandatory true; + default 75; description "Sets the time interval between failed probes. The interval SHOULD be significantly longer than one second in order to diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tcp-server@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tcp-server@2024-04-04.yang similarity index 70% rename from experimental/ietf-extracted-YANG-modules/ietf-tcp-server@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tcp-server@2024-04-04.yang index 734494481..d9c29147d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tcp-server@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tcp-server@2024-04-04.yang @@ -27,11 +27,12 @@ module ietf-tcp-server { Authors: Kent Watsen Michael Scharf "; + description "This module defines reusable groupings for TCP servers that can be used as a basis for specific TCP server instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -52,7 +53,7 @@ module ietf-tcp-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-04-04 { description "Initial version"; reference @@ -83,31 +84,40 @@ module ietf-tcp-server { 'tcp-server-parameters'). This model purposely does not do this itself so as to provide maximum flexibility to consuming models."; - leaf local-address { - type inet:ip-address; - mandatory true; - description - "The local IP address to listen on for incoming - TCP client connections. INADDR_ANY (0.0.0.0) or - INADDR6_ANY (0:0:0:0:0:0:0:0 a.k.a. ::) MUST be - used when the server is to listen on all IPv4 or - IPv6 addresses, respectively."; - } - leaf local-port { - type inet:port-number; - default "0"; + list local-bind { + key local-address; + min-elements 1; description - "The local port number to listen on for incoming TCP - client connections. An invalid default value (0) - is used (instead of 'mandatory true') so that an - application level data model may 'refine' it with - an application specific default port number value."; + "A list of bind (listen) points for this server + instance. A server instance may have multiple + bind points to support, e.g., the same port in + different address families or different ports + in the same address family."; + leaf local-address { + type inet:ip-address; + description + "The local IP address to listen on for incoming + TCP client connections. To configure listening + on all IPv4 addresses the value must be '0.0.0.0' + (INADDR_ANY). To configure listening on all IPv6 + addresses the value must be '::' (INADDR6_ANY)."; + } + leaf local-port { + type inet:port-number; + default "0"; + description + "The local port number to listen on for incoming TCP + client connections. An invalid default value (0) + is used (instead of 'mandatory true') so that an + application level data model may 'refine' it with + an application specific default port number value."; + } } uses tcpcmn:tcp-common-grouping { - augment "keepalives" { + refine "keepalives" { if-feature "tcp-server-keepalives"; description - "Add an if-feature statement so that implementations + "An if-feature statement so that implementations can choose to support TCP server keepalives."; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-device@2023-06-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-device@2024-02-02.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-te-device@2023-06-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-device@2024-02-02.yang index 117de30bf..22374521e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-device@2023-06-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-device@2024-02-02.yang @@ -20,7 +20,8 @@ module ietf-te-device { import ietf-te-types { prefix te-types; reference - "RFC8776: Common YANG Data Types for Traffic Engineering."; + "draft-ietf-teas-rfc8776-update: Common YANG Data Types + for Traffic Engineering."; } import ietf-interfaces { prefix if; @@ -85,7 +86,7 @@ module ietf-te-device { // RFC Ed.: update the date below with the date of RFC publication // and remove this note. - revision 2023-06-16 { + revision 2024-02-02 { description "Initial revision for the TE device YANG module."; reference @@ -258,13 +259,13 @@ module ietf-te-device { "Configuration data model for TE interfaces."; uses te-igp-flooding-bandwidth-config; list interface { - key "interface"; + key "name"; description - "TE interfaces."; - leaf interface { + "The list of interfaces enabled for TE."; + leaf name { type if:interface-ref; description - "TE interface name."; + "The reference to interface enabled for TE."; } /* TE interface parameters */ leaf te-metric { @@ -528,7 +529,7 @@ module ietf-te-device { "downstream interface."; } container neighbor { - uses te:te-generic-node-id; + uses te-types:te-generic-node-id; description "downstream neighbor address."; } @@ -551,7 +552,7 @@ module ietf-te-device { "upstream next-hop or previous-hop address."; } container neighbor { - uses te:te-generic-node-id; + uses te-types:te-generic-node-id; description "upstream neighbor address."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang new file mode 100644 index 000000000..0c6e177c4 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-fgnm-ext@2024-07-08.yang @@ -0,0 +1,233 @@ +module ietf-te-fgnm-ext { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-fgnm-ext"; + prefix te-fgnm-ext; + + import ietf-te { + prefix "te"; + } + + import ietf-yang-types { + prefix "yang"; + } + + import ietf-te-types-fgnm-ext { + prefix "te-types-fgnm-ext"; + } + + import ietf-network { + prefix "nw"; + } + + import ietf-network-topology { + prefix "nt"; + } + + import ietf-te-topology { + prefix "tet"; + } + + organization + "IETF CCAMP Working Group"; + contact + "WG Web: + WG List: + + Editor: Chaode Yu + + Xing Zhao + + Yanxia Tan + + Nigel Davis + + Daniel King + "; + + description + "This module provide some extensions to TE topology model, based + on transport fine-grain network management requirement"; + + revision 2024-07-08 { + description + "Revision 1.0"; + reference + "draft-yu-ccamp-te-fgnm-yang-01"; + } + + augment "/te:te/te:tunnels/te:tunnel" { + leaf alias { + description + "alias of TE tunnel"; + type string; + } + + uses time-state-grouping; + + container source-endpoints { + list source-endpoint { + uses endpoint-grouping; + } + } + + container destination-endpoints { + list destination-endpoint { + uses endpoint-grouping; + } + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:restoration" { + leaf restoration-lock { + description + "a lock to control whether the restoration can take effect or + not, it is useful in the maintenance scenrios, such as in + cutover"; + type boolean; + } + + leaf restoration-reversion-lock { + description + "a lock to control whether the reversion of restoration can + take effect or not."; + type boolean; + } + + leaf scheduled-reversion-time { + description + "a time when the reversion of restoration can take effect."; + type yang:date-and-time; + } + + leaf restoration-priority { + description + "when there are multiple services need to be restored, the + higher estoration priority services can occupied the idle + resource in priority, it is used to control the restoration + sequence."; + type enumeration { + enum high; + enum medium; + enum low; + } + } + + leaf restoration-layer { + description + "the layer of topolgy prefered to be operated when restoration + is needed."; + type enumeration { + enum odu; + enum wdm; + } + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + + "/te:primary-path/te:explicit-route-objects-always" + + "/te:route-object-include-exclude/te:type" { + description + "a TTP hop"; + case ttp-hop { + uses te-types-fgnm-ext:explicit-ttp-hop; + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + + "/te:secondary-path/te:explicit-route-objects-always" + + "/te:route-object-include-exclude/te:type" { + description + "a TTP hop"; + case ttp-hop { + uses te-types-fgnm-ext:explicit-ttp-hop; + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + + "/te:primary-path/te:primary-reverse-path" + + "/te:explicit-route-objects-always" + + "/te:route-object-include-exclude/te:type" { + description + "a TTP hop"; + case ttp-hop { + uses te-types-fgnm-ext:explicit-ttp-hop; + } + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths" + + "/te:secondary-reverse-path" + + "/te:explicit-route-objects-always" + + "/te:route-object-include-exclude/te:type" { + description + "a TTP hop"; + case ttp-hop { + uses te-types-fgnm-ext:explicit-ttp-hop; + } + } + + grouping time-state-grouping { + leaf create-time { + config false; + description + "the time when the tunnel was created"; + type yang:date-and-time; + } + + leaf active-time { + config false; + description + "the lastest time when the tunnel was activated"; + type yang:date-and-time; + } + } + + grouping endpoint-grouping { + leaf node-id { + type leafref { + path "/nw:networks/nw:network/nw:node/nw:node-id"; + } + } + + choice endpoint-tp { + case ltp { + leaf tp-id { + type leafref { + path "/nw:networks/nw:network/nw:node/nt:termination-point" + + "/nt:tp-id"; + } + } + } + case ttp { + choice id-or-name { + case id { + leaf ttp-id { + type leafref { + path "/nw:networks/nw:network/nw:node/tet:te" + + "/tet:tunnel-termination-point/tet:tunnel-tp-id"; + } + } + } + + case name { + leaf ttp-name { + type leafref { + path "/nw:networks/nw:network/nw:node/tet:te" + + "/tet:tunnel-termination-point/tet:name"; + } + } + } + } + } + } + + leaf protection-role { + description + "role of this endpoint in multipoints scenario"; + type enumeration { + enum work; + enum protect; + } + } + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-07-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-07-23.yang similarity index 64% rename from experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-07-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-07-23.yang index 776e4a504..62c042855 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2023-07-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-07-23.yang @@ -3,13 +3,16 @@ module ietf-te-packet-types { namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; prefix te-packet-types; - /* Import TE generic types */ + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } import ietf-te-types { prefix te-types; reference - "RFCXXXX: Updated Common YANG Data Types for Traffic - Engineering"; + "RFC XXXX: Common YANG Data Types for Traffic Engineering"; } // RFC Editor: replace XXXX with actual RFC number // and remove this note @@ -37,12 +40,21 @@ module ietf-te-packet-types { "; 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). + data type definitions specific to Packet Traffic Enginnering + (TE). + + The model fully conforms to the Network Management Datastore + Architecture (NMDA). - Copyright (c) 2023 IETF Trust and the persons identified as + 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) 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 @@ -53,18 +65,22 @@ module ietf-te-packet-types { This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - - revision 2023-07-10 { + revision 2024-07-23 { description - "Added common TE packet identities: - - bandwidth-profile-type. - - Added common TE packet groupings: + "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: - te-packet-path-bandwidth; - - te-packet-link-bandwidth."; + - te-packet-link-bandwidth. + + This revision provides also few editorial changes."; reference - "RFC XXXX: Updated Common YANG Data Types for Traffic - Engineering"; + "RFC XXXX: Common YANG Data Types for Traffic Engineering"; } // RFC Editor: replace XXXX with actual RFC number, update date // information and remove this note @@ -89,7 +105,7 @@ module ietf-te-packet-types { "Bandwidth Profile Types"; } - identity mef-10-bwp { + identity mef-10 { base bandwidth-profile-type; description "MEF 10 Bandwidth Profile"; @@ -97,29 +113,88 @@ module ietf-te-packet-types { "MEF 10.3: Ethernet Services Attributes Phase 3"; } - identity rfc-2697-bwp { + identity rfc-2697 { base bandwidth-profile-type; description "RFC 2697 Bandwidth Profile"; reference - "RFC2697: A Single Rate Three Color Marker"; + "RFC 2697: A Single Rate Three Color Marker"; } - identity rfc-2698-bwp { + identity rfc-2698 { base bandwidth-profile-type; description "RFC 2698 Bandwidth Profile"; reference - "RFC2698: A Two Rate Three Color Marker"; + "RFC 2698: A Two Rate Three Color Marker"; } - identity rfc-4115-bwp { + identity rfc-4115 { base bandwidth-profile-type; description "RFC 4115 Bandwidth Profile"; reference - "RFC4115: A Differentiated Service Two-Rate, Three-Color - Marker with Efficient Handling of in-Profile Traffic"; + "RFC 4115: A Differentiated Service Two-Rate, Three-Color + Marker with Efficient Handling of in-Profile + Traffic"; + } + + // CHANGE NOTE: The identity link-metric-delay-variation + // below has been added in this module revision + // RFC Editor: remove the note above and this note + 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"; + } + // CHANGE NOTE: The identity link-metric-loss below has + // been added in this module revision + // RFC Editor: remove the note above and this note + 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"; + } + + // CHANGE NOTE: The identity path-metric-delay-variation + // below has been added in this module revision + // RFC Editor: remove the note above and this note + 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"; + } + + // CHANGE NOTE: The identity path-metric-loss below has + // been added in this module revision + // RFC Editor: remove the note above and this note + 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"; } /* @@ -152,7 +227,7 @@ module ietf-te-packet-types { admission control."; reference "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; + MPLS Traffic Engineering"; } typedef bc-type { @@ -163,7 +238,7 @@ module ietf-te-packet-types { "Diffserv-TE bandwidth constraints as defined in RFC 4124."; reference "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; + MPLS Traffic Engineering"; } typedef bandwidth-kbps { @@ -210,7 +285,7 @@ module ietf-te-packet-types { Model type."; reference "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering"; + MPLS Traffic Engineering"; } identity bc-model-rdm { @@ -238,8 +313,8 @@ module ietf-te-packet-types { Model type."; reference "RFC 4126: Max Allocation with Reservation Bandwidth - Constraints Model for Diffserv-aware MPLS Traffic Engineering - & Performance Comparisons"; + Constraints Model for Diffserv-aware MPLS Traffic + Engineering & Performance Comparisons"; } /* @@ -285,7 +360,7 @@ module ietf-te-packet-types { "One-way delay variation in microseconds."; reference "RFC 5481: Packet Delay Variation Applicability - Statement, Section 4.2"; + Statement, Section 4.2"; } leaf one-way-delay-variation-normality { type te-types:performance-metrics-normality; @@ -294,12 +369,12 @@ module ietf-te-packet-types { "One-way delay variation normality."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions + Extensions RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; + Extensions"; } leaf one-way-packet-loss { type decimal64 { @@ -312,7 +387,7 @@ module ietf-te-packet-types { is 0.000003%, where the maximum is 50.331642%."; reference "RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions, Section 4.4"; + Extensions, Section 4.4"; } leaf one-way-packet-loss-normality { type te-types:performance-metrics-normality; @@ -321,12 +396,12 @@ module ietf-te-packet-types { "Packet loss normality."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions + Extensions RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; + Extensions"; } description "PM one-way packet-specific augmentation for a generic PM @@ -348,12 +423,12 @@ module ietf-te-packet-types { "Two-way minimum delay or latency normality."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions + Extensions RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; + Extensions"; } leaf two-way-max-delay { type uint32 { @@ -370,12 +445,12 @@ module ietf-te-packet-types { "Two-way maximum delay or latency normality."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions + Extensions RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; + Extensions"; } leaf two-way-delay-variation { type uint32 { @@ -386,7 +461,7 @@ module ietf-te-packet-types { "Two-way delay variation in microseconds."; reference "RFC 5481: Packet Delay Variation Applicability - Statement, Section 4.2"; + Statement, Section 4.2"; } leaf two-way-delay-variation-normality { type te-types:performance-metrics-normality; @@ -395,12 +470,12 @@ module ietf-te-packet-types { "Two-way delay variation normality."; reference "RFC 7471: OSPF Traffic Engineering (TE) Metric - Extensions + Extensions RFC 7823: Performance-Based Path Selection for - Explicitly Routed Label Switched Paths (LSPs) Using - TE Metric Extensions + Explicitly Routed Label Switched Paths (LSPs) + Using TE Metric Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric - Extensions"; + Extensions"; } leaf two-way-packet-loss { type decimal64 { @@ -423,12 +498,13 @@ module ietf-te-packet-types { "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"; + "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"; } } } @@ -473,6 +549,53 @@ module ietf-te-packet-types { } } + // CHANGE NOTE: The grouping + // one-way-performance-metrics-gauge-packet has been added in + // this module revision + // RFC Editor: remove the note above and this note + grouping one-way-performance-metrics-gauge-packet { + description + "One-way packet 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; + description + "One-way minimum delay or latency in microseconds."; + } + leaf one-way-max-delay { + type yang:gauge64; + description + "One-way maximum delay or latency in microseconds."; + reference + "RFC 7679: A One-Way Delay Metric for IP Performance + Metrics (IPPM)"; + } + leaf one-way-delay-variation { + type yang:gauge64; + description + "One-way delay variation in microseconds."; + 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 PM throttle grouping."; @@ -513,6 +636,50 @@ module ietf-te-packet-types { } } + // CHANGE NOTE: The grouping + // two-way-performance-metrics-gauge-packet has been added in + // this module revision + // RFC Editor: remove the note above and this note + grouping two-way-performance-metrics-gauge-packet { + description + "Two-way packet 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; + description + "Two-way minimum delay or latency in microseconds."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + leaf two-way-max-delay { + type yang:gauge64; + description + "Two-way maximum delay or latency in microseconds."; + reference + "RFC 2681: A Round-trip Delay Metric for IPPM"; + } + leaf two-way-delay-variation { + type yang:gauge64; + description + "Two-way delay variation in microseconds."; + 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 PM threshold grouping."; @@ -549,13 +716,15 @@ module ietf-te-packet-types { "Path bandwidth for Packet. "; leaf bandwidth-profile-name { type string; - description "Name of Bandwidth Profile."; + description + "Name of Bandwidth Profile."; } leaf bandwidth-profile-type { type identityref { base bandwidth-profile-type; } - description "Type of Bandwidth Profile."; + description + "Type of Bandwidth Profile."; } leaf cir { type uint64; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-service-mapping-types@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-service-mapping-types@2024-03-17.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-te-service-mapping-types@2023-09-12.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-service-mapping-types@2024-03-17.yang index a045890d7..5d56d046e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-service-mapping-types@2023-09-12.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-service-mapping-types@2024-03-17.yang @@ -79,7 +79,7 @@ module ietf-te-service-mapping-types { "This module contains a YANG module for TE & Service mapping parameters and policies as a common grouping applicable to variuous service models (e.g., L1CSM, L2SM, L3SM, etc.) - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -92,7 +92,7 @@ module ietf-te-service-mapping-types { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-09-12 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-telemetry@2023-09-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-telemetry@2024-03-17.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-te-telemetry@2023-09-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-telemetry@2024-03-17.yang index 27fae9ccd..a14077a58 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-telemetry@2023-09-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-telemetry@2024-03-17.yang @@ -40,7 +40,7 @@ module ietf-te-telemetry { "This module describes YANG data model for performance monitoring parameters (telemetry data) for TE tunnels. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -57,7 +57,7 @@ module ietf-te-telemetry { assigned to the RFC once draft-ietf-teas-pm-telemetry- autonomics becomes an RFC.*/ - revision 2023-09-11 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang new file mode 100644 index 000000000..30a0e1b5a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-fgnm-ext@2024-07-08.yang @@ -0,0 +1,177 @@ +module ietf-te-topology-fgnm-ext { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-fgnm-ext"; + prefix tet-fgnm-ext; + + import ietf-network { + prefix "nw"; + } + + import ietf-network-topology { + prefix "nt"; + } + + import ietf-te-topology { + prefix "tet"; + } + + organization + "IETF CCAMP Working Group"; + contact + "WG Web: + WG List: + + Editor: Chaode Yu + + Xing Zhao + + Yanxia Tan + + Nigel Davis + + Daniel King + "; + + description + "This module provide some extensions to TE topology model, based + on transport fine-grain network management requirement"; + + revision 2024-07-08 { + description + "Revision 1.0"; + reference + "draft-yu-ccamp-te-fgnm-yang-01"; + } + + augment "/nw:networks/nw:network/nw:node/tet:te" { + description + "Generic fine-grain network management extensions for + te node"; + + uses node-fgnm-ext-grouping; + } + + augment "/nw:networks/nw:network/nw:node/nt:termination-point/" + + "tet:te" { + description + "Generic fine-grain network management extensions for + termination point"; + + uses tp-fgnm-ext-grouping; + } + + augment "/nw:networks/nw:network/nw:node/tet:te" + + "/tet:tunnel-termination-point" { + description + "Generic fine-grain network management extensions for + te node"; + + uses ttp-fgnm-ext-grouping; + } + + augment "/nw:networks/nw:network/nt:link/tet:te" { + description + "Generic fine-grain network management extensions for link"; + + uses link-fgnm-ext-grouping; + } + + grouping node-fgnm-ext-grouping { + choice layer-specific-extension { + case generic { + + } + } + } + + grouping tp-fgnm-ext-grouping { + choice layer-specific-extension { + case generic { + + } + } + } + + grouping ttp-fgnm-ext-grouping { + choice layer-specific-extension { + case generic { + + } + } + } + + grouping link-fgnm-ext-grouping { + choice layer-specific-extension { + case generic { + } + } + } + + rpc query-ttp-by-tps { + input { + list tp-list { + key tp-id; + leaf tp-id { + type leafref { + path "/nw:networks/nw:network/nw:node" + + "/nt:termination-point/nt:tp-id"; + } + + description "the identifier of TP to querey"; + } + } + } + + output { + leaf result { + type enumeration { + enum failed; + enum partially-successful; + enum successful; + } + + description "the result of retrieval"; + } + + list result-list { + key tp-id; + + leaf tp-id { + type leafref { + path "/nw:networks/nw:network/nw:node" + + "/nt:termination-point/nt:tp-id"; + } + description "the identifier of TP queried and returns TTPs"; + } + + list ttp-list { + leaf tunnel-tp-id { + type leafref { + path "/nw:networks/nw:network/nw:node/tet:te" + + "/tet:tunnel-termination-point/tet:tunnel-tp-id"; + } + + description "Identifier of TTP which is existing in the + topology. It is not required to return if it is not + existing in the topology."; + } + + leaf ttp-name { + type string; + description "Name of TTP. If the ttp is idle, the default + name should be provided by the server and follow the + naming pattern of TMF814."; + } + leaf using-status { + type enumeration { + enum idle; + enum bidirectional-used; + } + } + } + } + } + + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet-state@2020-07-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet-state@2020-07-03.yang deleted file mode 100644 index 995b12744..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet-state@2020-07-03.yang +++ /dev/null @@ -1,322 +0,0 @@ -module ietf-te-topology-packet-state { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-te-topology-packet-state"; - - prefix "tet-pkt-s"; - - import ietf-te-topology-packet { - prefix "tet-pkt"; - } - - import ietf-network-state { - prefix "nw-s"; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - - import ietf-network-topology-state { - prefix "nt-s"; - reference - "RFC 8345: A YANG Data Model for Network Topologies"; - } - - import ietf-te-topology-state { - prefix "tet-s"; - reference - "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic - Engineering (TE) Topologies"; - } - - import ietf-te-types { - prefix "te-types"; - reference - "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG - Types"; - } - - import ietf-te-packet-types { - prefix "te-packet-types"; - reference - "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG - Types"; - } - - organization - "Traffic Engineering Architecture and Signaling (TEAS) - Working Group"; - - contact - "WG Web: - WG List: - - Editor: Xufeng Liu - - - Editor: Igor Bryskin - - - Editor: Vishnu Pavan Beeram - - - Editor: Tarek Saad - - - Editor: Himanshu Shah - - - Editor: Oscar Gonzalez De Dios - "; - - description - "YANG data model for representing operational state information - of PSC (Packet Switching) TE Topologies, when NMDA is not - supported. - - Copyright (c) 2018 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; - - revision 2020-07-03 { - description - "Initial revision"; - reference - "RFC XXXX: YANG Data Model for Layer 3 TE Topologies"; - } - - /* - * Augmentations - */ - /* Augmentations to network-types */ - augment "/nw-s:networks/nw-s:network/nw-s:network-types/" - + "tet-s:te-topology" { - description - "Defines the packet TE topology type."; - container packet { - presence "Indicates packet TE topology."; - description - "Its presence identifies the packet TE topology type."; - } - } - - /* Augmentations to connectivity-matrix */ - augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" - + "tet-s:te-node-attributes/tet-s:connectivity-matrices" { - when "../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet" { - description - "Augment only for packet TE topology"; - } - description - "Parameters for PSC (Packet Switching) TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" - + "tet-s:te-node-attributes/tet-s:connectivity-matrices/" - + "tet-s:connectivity-matrix" { - when "../../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet" { - description - "Augment only for packet TE topology"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" - + "tet-s:information-source-entry/" - + "tet-s:connectivity-matrices" { - when "../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet" { - description - "Augment only for packet TE topology"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" - + "tet-s:information-source-entry/" - + "tet-s:connectivity-matrices/" - + "tet-s:connectivity-matrix" { - when "../../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet" { - description - "Augment only for packet TE topology"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - /* Augmentations to tunnel-termination-point */ - augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" - + "tet-s:tunnel-termination-point/" - + "tet-s:local-link-connectivities" { - when "../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet" { - description - "Augment only for packet TE topology"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" - + "tet-s:tunnel-termination-point/" - + "tet-s:local-link-connectivities/" - + "tet-s:local-link-connectivity" { - when "../../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet" { - description - "Augment only for packet TE topology"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - /* Augmentations to te-link-attributes */ - augment "/nw-s:networks/tet-s:te/tet-s:templates/" - + "tet-s:link-template/tet-s:te-link-attributes" { - when "tet-s:interface-switching-capability " - + "[tet-s:switching-capability = 'te-types:switching-psc1']" { - description - "Valid only for PSC"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" - + "tet-s:te-link-attributes" { - when "(../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet) and " - + "(tet-s:interface-switching-capability " - + "[tet-s:switching-capability = 'te-types:switching-psc1'])" { - description "Valid only for PSC"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" - + "tet-s:information-source-entry" { - when "(../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet) and " - + "(tet-s:interface-switching-capability " - + "[tet-s:switching-capability = 'te-types:switching-psc1'])" { - description "Valid only for PSC"; - } - description - "Parameters for PSC TE topology."; - uses te-packet-types:performance-metrics-attributes-packet { - if-feature tet-pkt:te-performance-metric; - } - uses - te-packet-types:performance-metrics-throttle-container-packet { - if-feature tet-pkt:te-performance-metric; - } - } - - /* Augmentations to interface-switching-capability */ - augment "/nw-s:networks/tet-s:te/tet-s:templates/" - + "tet-s:link-template/tet-s:te-link-attributes/" - + "tet-s:interface-switching-capability" { - when "tet-s:switching-capability = 'te-types:switching-psc1' " { - description "Valid only for PSC"; - } - description - "Parameters for PSC TE topology."; - uses tet-pkt:packet-switch-capable-container; - } - - augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" - + "tet-s:te-link-attributes/" - + "tet-s:interface-switching-capability" { - when "(../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet) and " - + "(tet-s:switching-capability = 'te-types:switching-psc1')" { - description "Valid only for PSC"; - } - description - "Parameters for PSC TE topology."; - uses tet-pkt:packet-switch-capable-container; - } - - augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" - + "tet-s:information-source-entry/" - + "tet-s:interface-switching-capability" { - when "(../../../../nw-s:network-types/tet-s:te-topology/" - + "tet-pkt-s:packet) and " - + "(tet-s:switching-capability = 'te-types:switching-psc1')" { - description - "Valid only for PSC"; - } - description - "Parameters for PSC TE topology."; - uses tet-pkt:packet-switch-capable-container; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet-state@2024-06-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet-state@2024-06-08.yang new file mode 100644 index 000000000..92afdf0fb --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet-state@2024-06-08.yang @@ -0,0 +1,672 @@ +module ietf-te-topology-packet-state { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-te-topology-packet-state"; + + prefix "tet-pkt-s"; + + import ietf-te-topology-packet { + prefix "tet-pkt"; + reference + "RFC XXXX: YANG Data Model for Layer 3 TE Topologies"; + } + + import ietf-network-state { + prefix "nw-s"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + import ietf-network-topology-state { + prefix "nt-s"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + import ietf-te-topology-state { + prefix "tet-s"; + reference + "RFC 8795: YANG Data Model for Traffic Engineering (TE) + Topologies"; + } + + import ietf-te-types { + prefix "te-types"; + reference + "I-D.ietf-teas-rfc8776-update: Common YANG Data Types for + Traffic Engineering"; + } + + import ietf-te-packet-types { + prefix "te-packet-types"; + reference + "I-D.ietf-teas-rfc8776-update: Common YANG Data Types for + Traffic Engineering"; + } + + organization + "Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + + contact + "WG Web: + WG List: + + Editor: Xufeng Liu + + + Editor: Igor Bryskin + + + Editor: Vishnu Pavan Beeram + + + Editor: Tarek Saad + + + Editor: Himanshu Shah + + + Editor: Oscar Gonzalez De Dios + "; + + description + "YANG data model for representing operational state information + of PSC (Packet Switching) TE Topologies, when NMDA is not + supported. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + revision 2024-06-08 { + description + "Initial revision"; + reference + "RFC XXXX: YANG Data Model for Layer 3 TE Topologies"; + } + + /* + * Augmentations + */ + /* Augmentations to network-types */ + augment "/nw-s:networks/nw-s:network/nw-s:network-types/" + + "tet-s:te-topology" { + description + "Defines the packet TE topology type."; + container packet { + presence + "Indicates packet TE topology."; + description + "Its presence identifies the packet TE topology type."; + } + } + + /* Augmentations to connectivity-matrix */ + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:te-node-attributes/tet-s:connectivity-matrices" { + when "../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augment only for packet TE topology"; + } + description + "Parameters for PSC (Packet Switching) TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:te-node-attributes/tet-s:connectivity-matrices/" + + "tet-s:connectivity-matrix" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augment only for packet TE topology"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:connectivity-matrices" { + when "../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augment only for packet TE topology"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:connectivity-matrices/" + + "tet-s:connectivity-matrix" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augment only for packet TE topology"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + /* Augmentations to tunnel-termination-point */ + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:tunnel-termination-point/" + + "tet-s:local-link-connectivities" { + when "../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augment only for packet TE topology"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:tunnel-termination-point/" + + "tet-s:local-link-connectivities/" + + "tet-s:local-link-connectivity" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augment only for packet TE topology"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + /* Augmentations to te-link-attributes */ + augment "/nw-s:networks/tet-s:te/tet-s:templates/" + + "tet-s:link-template/tet-s:te-link-attributes" { + when "tet-s:interface-switching-capability " + + "[tet-s:switching-capability = 'te-types:switching-psc1']" { + description + "Valid only for PSC"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:te-link-attributes" { + when "(../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet) and " + + "(tet-s:interface-switching-capability " + + "[tet-s:switching-capability = " + + "'te-types:switching-psc1'])" { + description + "Valid only for PSC"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:information-source-entry" { + when "(../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet) and " + + "(tet-s:interface-switching-capability " + + "[tet-s:switching-capability = " + + "'te-types:switching-psc1'])" { + description + "Valid only for PSC"; + } + description + "Parameters for PSC TE topology."; + uses te-packet-types:performance-metrics-attributes-packet { + if-feature tet-pkt:te-performance-metric; + } + uses + te-packet-types:performance-metrics-throttle-container-packet { + if-feature tet-pkt:te-performance-metric; + } + } + + /* Augmentations to interface-switching-capability */ + augment "/nw-s:networks/tet-s:te/tet-s:templates/" + + "tet-s:link-template/tet-s:te-link-attributes/" + + "tet-s:interface-switching-capability" { + when "tet-s:switching-capability = 'te-types:switching-psc1' " { + description + "Valid only for PSC"; + } + description + "Parameters for PSC TE topology."; + uses tet-pkt:packet-switch-capable-container; + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:te-link-attributes/" + + "tet-s:interface-switching-capability" { + when "(../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet) and " + + "(tet-s:switching-capability = 'te-types:switching-psc1')" { + description + "Valid only for PSC"; + } + description + "Parameters for PSC TE topology."; + uses tet-pkt:packet-switch-capable-container; + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:interface-switching-capability" { + when "(../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet) and " + + "(tet-s:switching-capability = 'te-types:switching-psc1')" { + description + "Valid only for PSC"; + } + description + "Parameters for PSC TE topology."; + uses tet-pkt:packet-switch-capable-container; + } + + /* + * Augment TE bandwidth + */ + + augment "/nw-s:networks/nw-s:network/nw-s:node/" + + "nt-s:termination-point/tet-s:te/" + + "tet-s:interface-switching-capability/" + + "tet-s:max-lsp-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum LSP TE bandwidth for the link termination + point (LTP)."; + case packet { + uses te-packet-types:te-packet-path-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:te-node-attributes/tet-s:connectivity-matrices/" + + "tet-s:path-constraints/tet-s:te-bandwidth/" + + "tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment TE bandwidth path constraints of the TE node + connectivity matrices."; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:te-node-attributes/tet-s:connectivity-matrices/" + + "tet-s:connectivity-matrix/" + + "tet-s:path-constraints/tet-s:te-bandwidth/" + + "tet-s:technology" { + when "../../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment TE bandwidth path constraints of the + connectivity matrix entry."; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:connectivity-matrices/tet-s:path-constraints/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment TE bandwidth path constraints of the TE node + connectivity matrices information source."; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:connectivity-matrices/tet-s:connectivity-matrix/" + + "tet-s:path-constraints/tet-s:te-bandwidth/" + + "tet-s:technology" { + when "../../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment TE bandwidth path constraints of the + connectivity matrix entry information source"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:tunnel-termination-point/" + + "tet-s:client-layer-adaptation/tet-s:switching-capability/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment client TE bandwidth of the tunnel termination point + (TTP)"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:tunnel-termination-point/" + + "tet-s:local-link-connectivities/tet-s:path-constraints/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment TE bandwidth path constraints for the TTP + Local Link Connectivities."; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/tet-s:te/" + + "tet-s:tunnel-termination-point/" + + "tet-s:local-link-connectivities/" + + "tet-s:local-link-connectivity/tet-s:path-constraints/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment TE bandwidth path constraints for the TTP + Local Link Connectivity entry."; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:te-link-attributes/" + + "tet-s:interface-switching-capability/" + + "tet-s:max-lsp-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum LSP TE bandwidth for the TE link."; + case packet { + uses te-packet-types:te-packet-path-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:te-link-attributes/" + + "tet-s:max-link-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum TE bandwidth for the TE link"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:te-link-attributes/" + + "tet-s:max-resv-link-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum reservable TE bandwidth for the TE link"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:te-link-attributes/" + + "tet-s:unreserved-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment unreserved TE bandwidth for the TE Link"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:interface-switching-capability/" + + "tet-s:max-lsp-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum LSP TE bandwidth for the TE link + information source"; + case packet { + uses te-packet-types:te-packet-path-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:max-link-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum TE bandwidth for the TE link + information source"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:max-resv-link-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment maximum reservable TE bandwidth for the TE link + information-source"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/nw-s:network/nt-s:link/tet-s:te/" + + "tet-s:information-source-entry/" + + "tet-s:unreserved-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + when "../../../../../nw-s:network-types/tet-s:te-topology/" + + "tet-pkt-s:packet" { + description + "Augmentation parameters apply only for networks with + Packet TE topology type."; + } + description + "Augment unreserved TE bandwidth of the TE link + information source"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/tet-s:te/tet-s:templates/" + + "tet-s:link-template/tet-s:te-link-attributes/" + + "tet-s:interface-switching-capability/" + + "tet-s:max-lsp-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + description + "Augment maximum LSP TE bandwidth of the TE link + template"; + case packet { + uses te-packet-types:te-packet-path-bandwidth; + } + } + + augment "/nw-s:networks/tet-s:te/tet-s:templates/" + + "tet-s:link-template/tet-s:te-link-attributes/" + + "tet-s:max-link-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + description + "Augment maximum TE bandwidth the TE link template"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + augment "/nw-s:networks/tet-s:te/tet-s:templates/" + + "tet-s:link-template/tet-s:te-link-attributes/" + + "tet-s:max-resv-link-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + description + "Augment maximum reservable TE bandwidth for the TE link + template."; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } + + augment "/nw-s:networks/tet-s:te/tet-s:templates/" + + "tet-s:link-template/tet-s:te-link-attributes/" + + "tet-s:unreserved-bandwidth/" + + "tet-s:te-bandwidth/tet-s:technology" { + description + "Augment unreserved TE bandwidth the TE link template"; + case packet { + uses te-packet-types:te-packet-link-bandwidth; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet@2021-07-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet@2024-06-08.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet@2021-07-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet@2024-06-08.yang index 1bc072f2a..0b8801bf7 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet@2021-07-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-packet@2024-06-08.yang @@ -25,22 +25,22 @@ module ietf-te-topology-packet { import ietf-te-topology { prefix "tet"; reference - "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic - Engineering (TE) Topologies"; + "RFC 8795: YANG Data Model for Traffic Engineering (TE) + Topologies"; } import ietf-te-types { prefix "te-types"; reference - "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG - Types"; + "I-D.ietf-teas-rfc8776-update: Common YANG Data Types for + Traffic Engineering"; } import ietf-te-packet-types { prefix "te-packet-types"; reference - "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG - Types"; + "I-D.ietf-teas-rfc8776-update: Common YANG Data Types for + Traffic Engineering"; } organization @@ -73,20 +73,21 @@ module ietf-te-topology-packet { "YANG data model for representing and manipulating PSC (Packet Switching) TE Topologies. - Copyright (c) 2018 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set + the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; - revision 2021-07-11 { + revision 2024-06-08 { description "Initial revision"; reference @@ -136,11 +137,12 @@ module ietf-te-topology-packet { */ /* Augmentations to network-types */ augment "/nw:networks/nw:network/nw:network-types/" - + "tet:te-topology" { + + "tet:te-topology" { description "Defines the packet TE topology type."; container packet { - presence "Indicates packet TE topology."; + presence + "Indicates packet TE topology."; description "Its presence identifies the packet TE topology type."; } @@ -148,9 +150,9 @@ module ietf-te-topology-packet { /* Augmentations to connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" - + "tet:te-node-attributes/tet:connectivity-matrices" { + + "tet:te-node-attributes/tet:connectivity-matrices" { when "../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet" { + + "tet-pkt:packet" { description "Augment only for packet TE topology"; } @@ -175,7 +177,7 @@ module ietf-te-topology-packet { + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:connectivity-matrix" { when "../../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet" { + + "tet-pkt:packet" { description "Augment only for packet TE topology"; } @@ -199,7 +201,7 @@ module ietf-te-topology-packet { augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices" { when "../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet" { + + "tet-pkt:packet" { description "Augment only for packet TE topology"; } @@ -218,7 +220,7 @@ module ietf-te-topology-packet { + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:connectivity-matrix" { when "../../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet" { + + "tet-pkt:packet" { description "Augment only for packet TE topology"; } @@ -238,7 +240,7 @@ module ietf-te-topology-packet { + "tet:tunnel-termination-point/" + "tet:local-link-connectivities" { when "../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet" { + + "tet-pkt:packet" { description "Augment only for packet TE topology"; } @@ -264,7 +266,7 @@ module ietf-te-topology-packet { + "tet:local-link-connectivities/" + "tet:local-link-connectivity" { when "../../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet" { + + "tet-pkt:packet" { description "Augment only for packet TE topology"; } @@ -289,7 +291,7 @@ module ietf-te-topology-packet { augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes" { when "tet:interface-switching-capability " - + "[tet:switching-capability = 'te-types:switching-psc1']" { + + "[tet:switching-capability = 'te-types:switching-psc1']" { description "Valid only for PSC"; } @@ -313,8 +315,8 @@ module ietf-te-topology-packet { augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes" { when "(../../../nw:network-types/tet:te-topology/tet-pkt:packet)" - + " and (tet:interface-switching-capability " - + "[tet:switching-capability = 'te-types:switching-psc1'])" { + + " and (tet:interface-switching-capability " + + "[tet:switching-capability = 'te-types:switching-psc1'])" { description "Valid only for PSC"; } @@ -338,8 +340,8 @@ module ietf-te-topology-packet { augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry" { when "(../../../nw:network-types/tet:te-topology/tet-pkt:packet)" - + " and (tet:interface-switching-capability " - + "[tet:switching-capability = 'te-types:switching-psc1'])" { + + " and (tet:interface-switching-capability " + + "[tet:switching-capability = 'te-types:switching-psc1'])" { description "Valid only for PSC"; } @@ -371,8 +373,8 @@ module ietf-te-topology-packet { + "tet:te-link-attributes/" + "tet:interface-switching-capability" { when "(../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet) and " - + "(tet:switching-capability = 'te-types:switching-psc1')" { + + "tet-pkt:packet) and " + + "(tet:switching-capability = 'te-types:switching-psc1')" { description "Valid only for PSC"; } @@ -385,8 +387,8 @@ module ietf-te-topology-packet { + "tet:information-source-entry/" + "tet:interface-switching-capability" { when "(../../../../nw:network-types/tet:te-topology/" - + "tet-pkt:packet) and " - + "(tet:switching-capability = 'te-types:switching-psc1')" { + + "tet-pkt:packet) and " + + "(tet:switching-capability = 'te-types:switching-psc1')" { description "Valid only for PSC"; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-topology-pwrgrp@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-pwrgrp@2024-07-08.yang new file mode 100644 index 000000000..cf7123fc3 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-topology-pwrgrp@2024-07-08.yang @@ -0,0 +1,180 @@ +module ietf-te-topology-pwrgrp { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-pwrgrp"; + prefix "tet-pg"; + + import ietf-network { + prefix "nw"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + import ietf-network-topology { + prefix "nt"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; + } + + import ietf-te-topology { + prefix "tet"; + reference + "RFC 8795: YANG Data Model for Traffic Engineering (TE) + Topologies"; + } + + import ietf-te-types { + prefix te-types; + reference + "RFC 8776: Common YANG Data Types for Traffic Engineering"; + } + + organization + "IETF Traffic Engineering Architecture and Signaling (TEAS) + Working Group."; + + contact + "WG Web: + WG List: + + Editor: Colby Barth + + + Editor: Vishnu Pavan Beeram + "; + + description + "YANG data model for representing Power-Group aware TE + topology. + + Copyright (c) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Simplified BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + revision "2024-07-08" { + description "Initial revision."; + reference + "RFC XXXX: YANG Data Model for Power-Group aware TE Topology"; + } + + /* + * Typedefs + */ + + typedef pg-ref { + type leafref { + path "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet-pg:power-groups/" + + "tet-pg:power-group/tet-pg:name"; + } + description + "This type is used to reference a Power-Group on a given node"; + } + + /* + * Groupings + */ + + grouping pg-topology-type { + description + "Identifies the Power-Group aware TE topology type."; + container pg { + presence "Indicates that the TE topology is Power-Group + aware."; + description + "Its presence identifies that the TE topology is Power-Group + aware."; + } + } // pg-topology-type + + grouping pg-node-attributes { + description + "Grouping for carrying Power-Group specific node attributes"; + container power-groups { + description + "Container for Power-Groups."; + list power-group { + key "name"; + unique "value"; + description + "List of Power-Groups."; + leaf name { + type string; + description + "A string that uniquely identifies the Power-Group on a + given node."; + } + leaf value { + type uint32; + description + "An integer that uniquely identifies the Power-Group on + a given node."; + } + leaf cost { + type decimal64 { + fraction-digits 2; + } + description + "Rating/Cost of the Power-Group."; + } + } + } + } // pg-node-attributes + + grouping pg-link-attributes { + description + "Grouping for carrying Power-Group specific link attributes"; + leaf-list power-groups { + type pg-ref; + description + "List of associated Power-Groups"; + } + leaf power-save-capable { + type boolean; + description + "Can the link be placed in power-save mode?"; + } + container power-save-bandwidth { + uses te-types:te-bandwidth; + description + "Amount of bandwidth that is currently unavailable on this + link as a result of the link being in power-save mode. If + the link is not in power-save mode, power-save-bandwidth + is zero. Units are in bytes per second."; + } + } //pg-leaf-attributes + + /* + * Augmentations + */ + + augment "/nw:networks/nw:network/nw:network-types/" + + "tet:te-topology" { + description + "Defines the Power-Group aware TE topology type."; + uses pg-topology-type; + } + + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes" { + description + "Augmentation for Power-Group specific node attributes."; + uses pg-node-attributes; + } + + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes" { + description + "Augmentation for Power-Group specific link attributes."; + uses pg-link-attributes; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-07-23.yang similarity index 72% rename from experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-07-23.yang index 85ed34180..e4430be7c 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2023-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-07-23.yang @@ -21,12 +21,14 @@ module ietf-te-types { import ietf-network { prefix "nw"; - reference "RFC 8345: A YANG Data Model for Network Topologies"; + 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"; + reference + "RFC 8345: A YANG Data Model for Network Topologies"; } organization @@ -62,7 +64,7 @@ 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) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -75,41 +77,97 @@ module ietf-te-types { This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - - revision 2023-06-27 { - description - "Added: - - base identity lsp-provisioning-error-reason; - - identity association-type-diversity; - - identity tunnel-admin-state-auto; - - identity lsp-restoration-restore-none; - - base identity path-computation-error-reason and - its derived identities; - - base identity protocol-origin-type and - its derived identities; - - base identity svec-objective-function-type and its derived - identities; - - base identity svec-metric-type and its derived identities; - - grouping encoding-and-switching-type. - - Updated: - - description of the base identity objective-function-type; - - description and reference of identity action-exercise. - - Obsoleted: - - identity of-minimize-agg-bandwidth-consumption - - identity of-minimize-load-most-loaded-link - - identity of-minimize-cost-path-set"; - reference - "RFC XXXX: Updated Common YANG Data Types for Traffic - Engineering"; + revision 2024-07-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; + - te-gen-node-id. + + This revision adds the following new groupings: + - 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"; } // RFC Editor: replace XXXX with actual RFC number, update date // information and remove this note 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"; } @@ -126,15 +184,16 @@ module ietf-te-types { 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 + Version 2 RFC 5305: IS-IS Extensions for Traffic Engineering RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; + Engineering (MPLS-TE)"; } typedef admin-groups { @@ -151,12 +210,13 @@ module ietf-te-types { 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)"; + Engineering (MPLS-TE)"; } typedef path-attribute-flags { @@ -196,8 +256,8 @@ module ietf-te-types { 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 + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; } @@ -207,9 +267,9 @@ module ietf-te-types { "SRLG type."; reference "RFC 4203: OSPF Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS) + Multi-Protocol Label Switching (GMPLS) RFC 5307: IS-IS Extensions in Support of Generalized - Multi-Protocol Label Switching (GMPLS)"; + Multi-Protocol Label Switching (GMPLS)"; } typedef te-common-status { @@ -232,7 +292,7 @@ module ietf-te-types { for a graceful shutdown for maintenance purposes."; reference "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS - Traffic Engineering Networks"; + Traffic Engineering Networks"; } enum maintenance { description @@ -283,8 +343,8 @@ module ietf-te-types { 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"; + ITU-T G.709: Interfaces for the optical transport network - + Edition 6.0 (06/2020)"; } typedef te-ds-class { @@ -295,7 +355,7 @@ module ietf-te-types { "The Differentiated Services Class-Type of traffic."; reference "RFC 4124: Protocol Extensions for Support of Diffserv-aware - MPLS Traffic Engineering, Section 4.3.1"; + MPLS Traffic Engineering, Section 4.3.1"; } typedef te-global-id { @@ -303,12 +363,14 @@ module ietf-te-types { 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 + Aggregation RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers"; } @@ -327,7 +389,7 @@ module ietf-te-types { "Enumerated type for specifying loose or strict paths."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3.3"; + Section 4.3.3"; } typedef te-link-access-type { @@ -345,7 +407,7 @@ module ietf-te-types { "Defines a type representing the access type of a TE link."; reference "RFC 3630: Traffic Engineering (TE) Extensions to OSPF - Version 2"; + Version 2"; } typedef te-label-direction { @@ -388,31 +450,41 @@ module ietf-te-types { "TE metric."; reference "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a - second MPLS Traffic Engineering (TE) Metric"; + second MPLS Traffic Engineering (TE) Metric"; } + // CHANGE NOTE: The typedef te-node-id below has been + // updated in this module revision + // RFC Editor: remove the note above and this note typedef te-node-id { - type yang:dotted-quad; + 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 as 4 octets in dotted-quad - notation. + + 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, or the - TE Router ID TLV described in Section 3.2.1 of RFC 6119. + 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 + Version 2, Section 2.4.1 RFC 5305: IS-IS Extensions for Traffic Engineering, - Section 4.3 + 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"; + Routing for OSPFv2 Protocols, Section 3"; } typedef te-oper-status { @@ -451,7 +523,8 @@ module ietf-te-types { "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"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery"; } typedef te-recovery-status { @@ -511,7 +584,8 @@ module ietf-te-types { "Defines the status of a recovery action."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS) + for Generalized Multi-Protocol Label Switching + (GMPLS) RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; } @@ -559,6 +633,7 @@ module ietf-te-types { } 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 @@ -577,14 +652,14 @@ module ietf-te-types { } 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 + Version 2 RFC 5305: IS-IS Extensions for Traffic Engineering"; } - // CHANGE NOTE: The typedef path-type below has been // added in this module revision // RFC Editor: remove the note above and this note @@ -609,8 +684,21 @@ module ietf-te-types { } description "The type of TE path, indicating whether a path is a primary, - or a reverse primary, or a secondary, or a reverse secondary - path."; + or a reverse primary, or a secondary, or a reverse secondary + path."; + } + + // CHANGE NOTE: The typedef te-gen-node-id below has been + // added in this module revision + // RFC Editor: remove the note above and this note + typedef te-gen-node-id { + type union { + type te-node-id; + type inet:ip-address; + type nw:node-id; + } + description + "Generic type that identifies a node in a TE topology."; } /* TE features */ @@ -620,8 +708,8 @@ module ietf-te-types { "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)"; + Traffic Engineering (RSVP-TE) for + Point-to-Multipoint TE Label Switched Paths (LSPs)"; } feature frr-te { @@ -637,7 +725,7 @@ module ietf-te-types { groups."; reference "RFC 7308: Extended Administrative Groups in MPLS Traffic - Engineering (MPLS-TE)"; + Engineering (MPLS-TE)"; } feature named-path-affinities { @@ -693,7 +781,7 @@ module ietf-te-types { "Local protection is desired."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.7.1"; + Section 4.7.1"; } identity se-style-desired { @@ -711,7 +799,7 @@ module ietf-te-types { "Label recording is desired."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.7.1"; + Section 4.7.1"; } identity bandwidth-protection-desired { @@ -739,8 +827,8 @@ module ietf-te-types { 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)"; + (MPLS) Traffic Engineering (TE) Loosely Routed Label + Switched Path (LSP)"; } identity soft-preemption-desired { @@ -765,13 +853,14 @@ module ietf-te-types { established LSPs."; reference "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE + RSVP-TE RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic Engineering - (RSVP-TE) + Using Resource Reservation Protocol Traffic + Engineering (RSVP-TE) RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } + identity boundary-rerouting-desired { base lsp-attributes-flags; description @@ -785,12 +874,12 @@ module ietf-te-types { select another egress boundary LSR."; reference "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE + RSVP-TE RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic Engineering - (RSVP-TE) + Using Resource Reservation Protocol Traffic + Engineering (RSVP-TE) RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity segment-based-rerouting-desired { @@ -801,12 +890,12 @@ module ietf-te-types { segment-based LSP recovery for established LSPs."; reference "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS - RSVP-TE + RSVP-TE RFC 5420: Encoding of Attributes for MPLS LSP Establishment - Using Resource Reservation Protocol Traffic Engineering - (RSVP-TE) + Using Resource Reservation Protocol + Traffic Engineering (RSVP-TE) RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity lsp-integrity-required { @@ -815,21 +904,22 @@ module ietf-te-types { "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) + 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)"; + 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 + Resource Reservation Protocol-Traffic Engineering + (RSVP-TE) Extensions RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity lsp-stitching-desired { @@ -838,9 +928,10 @@ module ietf-te-types { "Indicates that LSP stitching is desired."; reference "RFC 5150: Label Switched Path Stitching with Generalized - Multiprotocol Label Switching Traffic Engineering (GMPLS TE) + Multiprotocol Label Switching Traffic Engineering + (GMPLS TE) RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity pre-planned-lsp-flag { @@ -850,9 +941,9 @@ module ietf-te-types { control plane only."; reference "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for - Multi-Layer and Multi-Region Networks (MLN/MRN) + Multi-Layer and Multi-Region Networks (MLN/MRN) RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity non-php-behavior-flag { @@ -862,9 +953,9 @@ module ietf-te-types { for the LSP is desired."; reference "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band - Mapping for RSVP-TE Label Switched Paths + Mapping for RSVP-TE Label Switched Paths RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity oob-mapping-flag { @@ -874,9 +965,9 @@ module ietf-te-types { 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 + Mapping for RSVP-TE Label Switched Paths RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity entropy-label-capability { @@ -886,7 +977,7 @@ module ietf-te-types { reference "RFC 6790: The Use of Entropy Labels in MPLS Forwarding RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO)"; + Route Object (ERO)"; } identity oam-mep-entity-desired { @@ -896,7 +987,8 @@ module ietf-te-types { desired."; reference "RFC 7260: GMPLS RSVP-TE Extensions for Operations, - Administration, and Maintenance (OAM) Configuration"; + Administration, and Maintenance (OAM) + Configuration"; } identity oam-mip-entity-desired { @@ -906,7 +998,8 @@ module ietf-te-types { entities desired."; reference "RFC 7260: GMPLS RSVP-TE Extensions for Operations, - Administration, and Maintenance (OAM) Configuration"; + Administration, and Maintenance (OAM) + Configuration"; } identity srlg-collection-desired { @@ -915,9 +1008,9 @@ module ietf-te-types { "SRLG collection desired."; reference "RFC 7570: Label Switched Path (LSP) Attribute in the Explicit - Route Object (ERO) + Route Object (ERO) RFC 8001: RSVP-TE Extensions for Collecting Shared Risk - Link Group (SRLG) Information"; + Link Group (SRLG) Information"; } identity loopback-desired { @@ -928,7 +1021,7 @@ module ietf-te-types { used to specify the loopback state of the node."; reference "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and - Loopback"; + Loopback"; } identity p2mp-te-tree-eval-request { @@ -937,8 +1030,8 @@ module ietf-te-types { "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)"; + Point-to-Multipoint Traffic Engineering Label + Switched Paths (LSPs)"; } identity rtm-set-desired { @@ -960,7 +1053,8 @@ module ietf-te-types { "Unprotected link 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 link-protection-extra-traffic { @@ -969,7 +1063,8 @@ module ietf-te-types { "Extra-Traffic protected link type."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity link-protection-shared { @@ -978,7 +1073,8 @@ module ietf-te-types { "Shared protected link 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 link-protection-1-for-1 { @@ -987,7 +1083,8 @@ module ietf-te-types { "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"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery"; } identity link-protection-1-plus-1 { @@ -996,7 +1093,8 @@ module ietf-te-types { "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"; + Generalized Multi-Protocol Label Switching (GMPLS) + Recovery"; } identity link-protection-enhanced { @@ -1018,7 +1116,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"; } @@ -1040,7 +1139,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 { @@ -1053,7 +1152,7 @@ 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)"; } // CHANGE NOTE: The identity association-type-diversity below has @@ -1063,11 +1162,11 @@ module ietf-te-types { base association-type; description "Association Type diversity used to associate LSPs whose - paths are to be diverse from each other."; + paths are to be diverse from each other."; reference - "RFC8800: Path Computation Element Communication Protocol - (PCEP) Extension for Label Switched Path (LSP) Diversity - Constraint Signaling"; + "RFC 8800: Path Computation Element Communication Protocol + (PCEP) Extension for Label Switched Path (LSP) + Diversity Constraint Signaling"; } // CHANGE NOTE: The description of the base identity @@ -1076,7 +1175,7 @@ module ietf-te-types { // RFC Editor: remove the note above and this note identity objective-function-type { description - "Base identity for path objective function type."; + "Base identity for path objective function types."; } identity of-minimize-cost-path { @@ -1085,7 +1184,7 @@ 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 { @@ -1095,7 +1194,7 @@ 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 { @@ -1104,7 +1203,7 @@ 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)"; } // CHANGE NOTE: The identity of-minimize-agg-bandwidth-consumption @@ -1115,10 +1214,14 @@ module ietf-te-types { 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)"; } // CHANGE NOTE: The identity of-minimize-load-most-loaded-link @@ -1129,10 +1232,14 @@ module ietf-te-types { 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)"; } // CHANGE NOTE: The identity of-minimize-cost-path-set @@ -1142,10 +1249,14 @@ module ietf-te-types { 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 { @@ -1153,16 +1264,23 @@ module ietf-te-types { "Base identity for supported path computation mechanisms."; } + // CHANGE NOTE: The reference of the identity path-locally-computed + // below has been updated in this module revision + // RFC Editor: remove the note above and this note 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"; + "RFC 9522: Overview and Principles of Internet Traffic + Engineering, Section 4.4"; } + // CHANGE NOTE: The reference of the identity + // path-externally-queried below has been updated + // in this module revision + // RFC Editor: remove the note above and this note identity path-externally-queried { base path-computation-method; description @@ -1174,12 +1292,16 @@ module ietf-te-types { 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"; } + // CHANGE NOTE: The reference of the identity + // path-explicitly-defined below has been updated + // in this module revision + // RFC Editor: remove the note above and this note identity path-explicitly-defined { base path-computation-method; description @@ -1188,8 +1310,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 { @@ -1205,7 +1327,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 { @@ -1215,7 +1337,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 { @@ -1226,7 +1348,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 { @@ -1248,8 +1370,8 @@ 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 { @@ -1327,9 +1449,9 @@ module ietf-te-types { 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."; + 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 { @@ -1348,6 +1470,7 @@ module ietf-te-types { description "Tunnel's state is down."; } + identity lsp-state-type { description "Base identity for TE LSP states."; @@ -1419,7 +1542,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 { @@ -1428,7 +1551,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 { @@ -1444,6 +1567,7 @@ module ietf-te-types { description "No LSP affected by a failure is restored."; } + identity lsp-restoration-restore-any { base lsp-restoration-type; description @@ -1462,13 +1586,30 @@ module ietf-te-types { "Base identity for LSP restoration schemes."; } + // CHANGE NOTE: The identity restoration-scheme-rerouting + // below has been added in this module revision + // RFC Editor: remove the note above and this note + identity restoration-scheme-rerouting { + base restoration-scheme-type; + description + "Restoration LSP is computed after the failure detection. + + This restoration scheme is also known as + 'Full LSP Re-routing.'"; + reference + "RFC 4427: Recovery (Protection and Restoration) Terminology + for Generalized Multi-Protocol Label Switching + (GMPLS)"; + } + 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)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity restoration-scheme-precomputed { @@ -1477,7 +1618,8 @@ module ietf-te-types { "Restoration LSP is precomputed prior to the failure."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity restoration-scheme-presignaled { @@ -1486,7 +1628,8 @@ module ietf-te-types { "Restoration LSP is presignaled prior to the failure."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity lsp-protection-type { @@ -1494,7 +1637,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 { @@ -1503,25 +1647,43 @@ 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"; } + // CHANGE NOTE: The identity lsp-protection-reroute-extra + // below has been obsoleted in this module revision + // RFC Editor: remove the note above and this note 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' 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"; } - + // CHANGE NOTE: The identity lsp-protection-reroute + // below has been obsoleted in this module revision + // RFC Editor: remove the note above and this note 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-rerouting' 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"; } identity lsp-protection-1-for-n { @@ -1530,7 +1692,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"; } identity lsp-protection-1-for-1 { @@ -1539,7 +1702,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"; } identity lsp-protection-unidir-1-plus-1 { @@ -1548,7 +1712,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"; } identity lsp-protection-bidir-1-plus-1 { @@ -1557,7 +1722,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"; } identity lsp-protection-extra-traffic { @@ -1566,7 +1732,8 @@ module ietf-te-types { "Extra-Traffic LSP protection type."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity lsp-protection-state { @@ -1588,7 +1755,8 @@ module ietf-te-types { command."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity lockout-of-protection { @@ -1597,7 +1765,8 @@ module ietf-te-types { "A Loss of Protection (LoP) command is active."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity forced-switch { @@ -1606,7 +1775,8 @@ module ietf-te-types { "A forced switchover command is active."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity signal-fail { @@ -1616,7 +1786,8 @@ module ietf-te-types { or the protection path."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity signal-degrade { @@ -1626,7 +1797,8 @@ module ietf-te-types { path or the protection path."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity manual-switch { @@ -1635,7 +1807,8 @@ module ietf-te-types { "A manual switchover command is active."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity wait-to-restore { @@ -1644,7 +1817,8 @@ module ietf-te-types { "A WTR timer is running."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity do-not-revert { @@ -1654,7 +1828,8 @@ module ietf-te-types { non-revertive behavior."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity failure-of-protocol { @@ -1664,7 +1839,8 @@ module ietf-te-types { condition."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity protection-external-commands { @@ -1681,16 +1857,17 @@ module ietf-te-types { and, as such, freezes the current state."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + 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)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-lockout-of-normal { @@ -1701,7 +1878,8 @@ module ietf-te-types { to use the protection transport entity."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity clear-lockout-of-normal { @@ -1711,7 +1889,8 @@ module ietf-te-types { normal state."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-lockout-of-protection { @@ -1723,7 +1902,8 @@ module ietf-te-types { (either normal or Extra-Traffic)."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-forced-switch { @@ -1735,7 +1915,8 @@ module ietf-te-types { 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)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity action-manual-switch { @@ -1748,10 +1929,11 @@ module ietf-te-types { 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)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } - // cCHANGE NOTE: The description and reference of the + // CHANGE NOTE: The description and reference of the // identity action-exercise have been updated in this module // revision // RFC Editor: remove the note above and this note @@ -1763,8 +1945,8 @@ module ietf-te-types { correctly. It is of lower priority than any other state or command."; reference - "ITU-T G.808.1 v4.0 (05/2014): Generic protection switching - - Linear trail and subnetwork protection"; + "ITU-T G.808.1: Generic protection switching - Linear trail and + subnetwork protection - Edition 4.0 (05/2014)"; } identity clear { @@ -1775,7 +1957,8 @@ module ietf-te-types { or exercise command."; reference "RFC 4427: Recovery (Protection and Restoration) Terminology - for Generalized Multi-Protocol Label Switching (GMPLS)"; + for Generalized Multi-Protocol Label Switching + (GMPLS)"; } identity switching-capabilities { @@ -1783,7 +1966,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 { @@ -1792,7 +1975,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 { @@ -1801,7 +1984,7 @@ module ietf-te-types { "Ethernet Virtual Private Line (EVPL)."; reference "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet - Forum and G.8011 Ethernet Service Switching"; + Forum and G.8011 Ethernet Service Switching"; } identity switching-l2sc { @@ -1810,7 +1993,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 { @@ -1819,16 +2002,16 @@ 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 { 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"; + Control of Evolving G.709 Optical Transport + Networks"; } identity switching-dcsc { @@ -1837,7 +2020,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 { @@ -1846,7 +2030,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 { @@ -1855,7 +2039,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 { @@ -1863,7 +2047,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 { @@ -1872,7 +2056,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 { @@ -1881,7 +2065,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 { @@ -1890,7 +2074,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 { @@ -1899,7 +2083,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 { @@ -1908,7 +2092,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 { @@ -1917,7 +2101,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 { @@ -1926,7 +2110,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 { @@ -1935,7 +2119,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 { @@ -1944,8 +2128,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 { @@ -1954,8 +2138,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 { @@ -1964,7 +2148,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 { @@ -1972,6 +2157,7 @@ module ietf-te-types { "Base identity from which specific LSP path setup types are derived."; } + identity path-setup-static { base path-signaling-type; description @@ -2031,7 +2217,7 @@ 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 { @@ -2040,79 +2226,234 @@ module ietf-te-types { "Excludes SRLGs."; reference "RFC 4874: Exclude Routes - Extension to Resource ReserVation - Protocol-Traffic Engineering (RSVP-TE)"; + Protocol-Traffic Engineering (RSVP-TE)"; } - identity path-metric-type { + // CHANGE NOTE: The path-metric-optimization-type base identity + // has been added in this module revision + // RFC Editor: remove the note above and this note + 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; + // CHANGE NOTE: The link-path-metric-type base identity + // has been added in this module revision + // RFC Editor: remove the note above and this note + 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; - description - "Hop path metric."; - } + // CHANGE NOTE: The link-metric-type base identity + // and its derived identities + // have been added in this module revision + // RFC Editor: remove the note above and this note + identity link-metric-type { + base link-path-metric-type; + description + "Base identity for the link metric types."; + } - identity path-metric-delay-average { - base path-metric-type; - description - "Average unidirectional link delay."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; - } + 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 path-metric-delay-minimum { - base path-metric-type; - description - "Minimum unidirectional link delay."; - reference - "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; - } + 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 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 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 path-metric-optimize-includes { - base path-metric-type; - description - "A metric that optimizes the number of included resources - specified in a set."; - } + 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 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 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"; + } + + // CHANGE NOTE: The base and the description of the + // path-metric-type identity + // has been updated in this module revision + // RFC Editor: remove the note above and this note + identity path-metric-type { + base link-path-metric-type; + base path-metric-optimization-type; + description + "Base identity for the path metric types."; + } + + // CHANGE NOTE: The description and the reference of the + // path-metric-te identity have been updated + // in this module revision + // RFC Editor: remove the note above and this note + 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"; + } + + // CHANGE NOTE: The description and the reference of the + // path-metric-igp identity have been updated + // in this module revision + // RFC Editor: remove the note above and this note + 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"; + } + + // CHANGE NOTE: The description and the reference of the + // path-metric-hop identity have been updated + // in this module revision + // RFC Editor: remove the note above and this note + 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"; + } + + // CHANGE NOTE: The description and the reference of the + // path-metric-delay-average identity have been updated + // in this module revision + // RFC Editor: remove the note above and this note + identity path-metric-delay-average { + base path-metric-type; + description + "The Path Delay Metric, measured in units of + microseconds."; + reference + "RFC8233: Extensions to the Path Computation Element + Communication Protocol (PCEP) to Compute + Service-Aware Label Switched Paths (LSPs), + Section 3.1.1"; + } + + // CHANGE NOTE: The description and the reference of the + // path-metric-delay-minimum identity have been updated + // in this module revision + // RFC Editor: remove the note above and this note + identity path-metric-delay-minimum { + base path-metric-type; + description + "The Path Min Delay Metric, measured in units of + microseconds."; + reference + "RFC YYYY: Carrying SR-Algorithm information in PCE-based + Networks, Section 3.5.1"; + } + // RFC Editor: replace YYYY with actual RFC number assigned to + // [I-D.ietf-pce-sid-algo] and remove this note + + // CHANGE NOTE: The description and the reference of the + // path-metric-residual-bandwidth identity have been updated + // in this module revision + // RFC Editor: remove the note above and this note + 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)"; + } + + // CHANGE NOTE: The base of the path-metric-optimize-includes + // identity has been updated in this module revision + // RFC Editor: remove the note above and this note + identity path-metric-optimize-includes { + base path-metric-optimization-type; + description + "A metric that optimizes the number of included resources + specified in a set."; + } + + // CHANGE NOTE: The base of the path-metric-optimize-excludes + // identity has been updated in this module revision + // RFC Editor: remove the note above and this note + 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 @@ -2122,13 +2463,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 { @@ -2176,12 +2519,16 @@ module ietf-te-types { RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; } + // CHANGE NOTE: The reference of the identity + // te-optimization-criterion below has been updated + // in this module revision + // RFC Editor: remove the note above and this note 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 { @@ -2196,7 +2543,7 @@ 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 { @@ -2205,13 +2552,14 @@ 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."; } + identity srlg-ignore { base path-computation-srlg-type; description @@ -2249,212 +2597,256 @@ module ietf-te-types { base path-computation-error-reason; description "Path computation has failed because of an unspecified - reason."; + reason."; reference - "Section 7.5 of RFC5440"; + "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."; + 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. + path computation servers are unavailable. - The dependent path computation server could be - a Backward-Recursive Path Computation (BRPC) downstream - PCE or a child PCE."; + The dependent path computation server could be + a Backward-Recursive Path Computation (BRPC) downstream + PCE or a child PCE."; reference - "RFC5441, RFC8685"; + "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."; + It corresponds to bit 31 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5440; + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP) - https://www.iana.org/assignments/pcep/pcep.xhtml"; + 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."; + 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. + unknown in indicated destination domain. - It corresponds to bit 19 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 19 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC8685; + "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"; + 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. + available resource in one or more domains. - It corresponds to bit 20 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 20 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC8685; + "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"; + 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. + responsive. - It corresponds to bit 21 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 21 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC8685; + "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"; + 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. + was unknown. - It corresponds to bit 22 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 22 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC8685; + "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"; + 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. + problem. - It corresponds to bit 24 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 24 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC8306; + "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"; + 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. + Optimization (GCO) migration path found. - It corresponds to bit 26 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 26 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5557; + "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"; + 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. + found. - It corresponds to bit 25 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 25 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5557; + "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"; + 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. + (PKS) expansion failure. - It corresponds to bit 27 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 27 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5520; + "RFC 5520: Preserving Topology Confidentiality in + Inter-Domain Path Computation Using a + Path-Key-Based Mechanism - https://www.iana.org/assignments/pcep/pcep.xhtml"; + 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. + unavailable. - It corresponds to bit 28 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 28 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5441; + "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"; + 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. + unknown. - It corresponds to bit 29 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 29 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5440; + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP); - https://www.iana.org/assignments/pcep/pcep.xhtml"; + 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. + unknown. - It corresponds to bit 30 of the Flags field of the - NO-PATH-VECTOR TLV."; + It corresponds to bit 30 of the Flags field of the + NO-PATH-VECTOR TLV."; reference - "RFC5440; + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP); - https://www.iana.org/assignments/pcep/pcep.xhtml"; + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; } identity path-computation-error-no-server { base path-computation-error-reason; description "Path computation has failed because path computation - server is unavailable."; + server is unavailable."; reference - "RFC5440; + "RFC 5440: Path Computation Element (PCE) Communication + Protocol (PCEP); - https://www.iana.org/assignments/pcep/pcep.xhtml"; + https://www.iana.org/assignments/pcep + /pcep.xhtml#no-path-vector-tlv"; } // CHANGE NOTE: The base identity protocol-origin-type and @@ -2469,23 +2861,26 @@ module ietf-te-types { identity protocol-origin-api { base protocol-origin-type; description - "Protocol origin is via Application Programmable Interface - (API)."; + "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 "RFC5440"; + (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 "RFC9012"; + reference + "RFC 9012: The BGP Tunnel Encapsulation Attribute"; } // CHANGE NOTE: The base identity svec-objective-function-type @@ -2496,82 +2891,84 @@ module ietf-te-types { description "Base identity for SVEC objective function type."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "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)."; + consumption (MBC)."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "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)."; + is carrying the highest load (MLL)."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "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)."; + (MCC)."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "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)."; + transit domains (MCTD)."; reference - "RFC8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path Computation - Element (H-PCE) Architecture."; + "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)."; + links (MSL)."; reference - "RFC8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path Computation - Element (H-PCE) Architecture."; + "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)."; + Shared Risk Link Groups (SRLG) (MSS)."; reference - "RFC8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path Computation - Element (H-PCE) Architecture."; + "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)."; + nodes (MSN)."; reference - "RFC8685: Path Computation Element Communication Protocol - (PCEP) Extensions for the Hierarchical Path Computation - Element (H-PCE) Architecture."; + "RFC 8685: Path Computation Element Communication Protocol + (PCEP) Extensions for the Hierarchical Path + Computation Element (H-PCE) Architecture."; } // CHANGE NOTE: The base identity svec-metric-type and @@ -2582,44 +2979,47 @@ module ietf-te-types { description "Base identity for SVEC metric type."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol (PCEP)"; } - identity svec-metric-cumul-te { + identity svec-metric-cumulative-te { base svec-metric-type; description "Cumulative TE cost."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; } - identity svec-metric-cumul-igp { + identity svec-metric-cumulative-igp { base svec-metric-type; description "Cumulative IGP cost."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; } - identity svec-metric-cumul-hop { + identity svec-metric-cumulative-hop { base svec-metric-type; description "Cumulative Hop path metric."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "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 - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; } identity svec-metric-load-of-the-most-loaded-link { @@ -2627,8 +3027,9 @@ module ietf-te-types { description "Load of the most loaded link."; reference - "RFC5541: Encoding of Objective Functions in the Path - Computation Element Communication Protocol (PCEP)."; + "RFC 5541: Encoding of Objective Functions in the Path + Computation Element Communication Protocol + (PCEP)"; } /** @@ -2743,8 +3144,8 @@ module ietf-te-types { 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 + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; leaf one-way-delay { type uint32 { @@ -2768,8 +3169,8 @@ module ietf-te-types { 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 + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; leaf two-way-delay { type uint32 { @@ -2793,8 +3194,8 @@ module ietf-te-types { 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 + 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; @@ -2806,7 +3207,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; @@ -2870,7 +3271,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; @@ -2925,8 +3326,8 @@ module ietf-te-types { 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 + 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; @@ -2936,7 +3337,7 @@ 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; } } @@ -2957,8 +3358,8 @@ module ietf-te-types { 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 + 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 { @@ -2992,7 +3393,7 @@ module ietf-te-types { 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; @@ -3027,6 +3428,9 @@ module ietf-te-types { * TE tunnel generic groupings **/ + // CHANGE NOTE: The explicit-route-hop grouping below has been + // updated in this module revision + // RFC Editor: remove the note above and this note grouping explicit-route-hop { description "The explicit route entry grouping."; @@ -3059,9 +3463,10 @@ module ietf-te-types { "Numbered node route hop."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE + Section 4.3, EXPLICIT_ROUTE in RSVP-TE RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; } } case numbered-link-hop { @@ -3088,9 +3493,10 @@ module ietf-te-types { "Numbered link explicit route hop."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE + Section 4.3, EXPLICIT_ROUTE in RSVP-TE RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; } } case unnumbered-link-hop { @@ -3139,9 +3545,10 @@ module ietf-te-types { "Unnumbered link explicit route hop."; reference "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, - Section 4.3, EXPLICIT_ROUTE in RSVP-TE + Section 4.3, EXPLICIT_ROUTE in RSVP-TE RFC 3477: Signalling Unnumbered Links in Resource - ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; } } case as-number { @@ -3174,6 +3581,9 @@ module ietf-te-types { } } + // CHANGE NOTE: The explicit-route-hop grouping below has been + // updated in this module revision + // RFC Editor: remove the note above and this note grouping record-route-state { description "The Record Route grouping."; @@ -3212,9 +3622,9 @@ 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 @@ -3237,9 +3647,9 @@ 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 @@ -3282,15 +3692,16 @@ 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)"; + ReSerVation Protocol - Traffic Engineering + (RSVP-TE)"; } description "Unnumbered link route hop."; @@ -3307,9 +3718,9 @@ 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 @@ -3408,6 +3819,17 @@ module ietf-te-types { 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. @@ -3441,18 +3863,21 @@ 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; } } } + // CHANGE NOTE: The grouping optimization-metric-entry below has + // been updated in this module revision + // RFC Editor: remove the note above and this note grouping optimization-metric-entry { description "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 @@ -3498,7 +3923,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 { @@ -3530,6 +3956,9 @@ module ietf-te-types { } } + // CHANGE NOTE: The grouping tunnel-constraints below has + // been updated in this module revision + // RFC Editor: remove the note above and this note grouping tunnel-constraints { description "Tunnel constraints grouping that can be set on @@ -3543,13 +3972,16 @@ module ietf-te-types { uses common-constraints; } + // CHANGE NOTE: The grouping path-constraints-route-objects below + // has been updated in this module revision + // RFC Editor: remove the note above and this note 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 { + 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; @@ -3672,19 +4104,30 @@ module ietf-te-types { } } + // CHANGE NOTE: The grouping generic-path-metric-bounds below + // has been updated in this module revision + // RFC Editor: remove the note above and this note grouping generic-path-metric-bounds { description "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 @@ -3694,14 +4137,21 @@ 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 + specificied 'metric-type'. + + The unit of is interpreted in the context of the + 'metric-type' identity."; } } } } + // CHANGE NOTE: The grouping generic-path-metric-bounds below + // has been updated in this module revision + // RFC Editor: remove the note above and this note grouping generic-path-optimization { description "TE generic path optimization grouping."; @@ -3723,10 +4173,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 @@ -3735,6 +4190,7 @@ module ietf-te-types { type identityref { base path-metric-type; } + status deprecated; description "Identifies an entry in the list of tiebreakers."; } @@ -3760,6 +4216,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 { @@ -3956,7 +4421,7 @@ module ietf-te-types { grouping encoding-and-switching-type { description "Common grouping to define the LSP encoding and - switching types"; + switching types"; leaf encoding { type identityref { base te-types:lsp-encoding-types; @@ -3964,7 +4429,8 @@ module ietf-te-types { description "LSP encoding type."; reference - "RFC3945"; + "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) + Architecture"; } leaf switching-type { type identityref { @@ -3973,7 +4439,40 @@ module ietf-te-types { description "LSP switching type."; reference - "RFC3945"; + "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) + Architecture"; + } + } + + // CHANGE NOTE: The typedef te-gen-node-id below has been + // added in this module revision + // RFC Editor: remove the note above and this note + grouping te-generic-node-id { + description + "A reusable grouping for a TE generic node identifier."; + leaf id { + type te-gen-node-id; + description + "The identifier of the node. Can be represented as IP + address or dotted quad address or as an URI."; + } + 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/experimental/ietf-extracted-YANG-modules/ietf-te@2023-06-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-te@2024-02-02.yang similarity index 94% rename from experimental/ietf-extracted-YANG-modules/ietf-te@2023-06-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te@2024-02-02.yang index 50c929d69..eaa65a120 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te@2023-06-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te@2024-02-02.yang @@ -7,16 +7,11 @@ module ietf-te { prefix te; /* Import TE generic types */ - import ietf-te-types { prefix te-types; reference - "RFC8776: Common YANG Data Types for Traffic Engineering."; - } - import ietf-inet-types { - prefix inet; - reference - "RFC6991: Common YANG Data Types."; + "draft-ietf-teas-rfc8776-update: Common YANG Data Types + for Traffic Engineering."; } import ietf-yang-types { prefix yang; @@ -86,7 +81,7 @@ module ietf-te { // RFC Ed.: update the date below with the date of RFC publication // and remove this note. - revision 2023-06-16 { + revision 2024-02-02 { description "Initial revision for the TE generic YANG module."; reference @@ -97,56 +92,17 @@ module ietf-te { typedef tunnel-ref { type leafref { path "/te:te/te:tunnels/te:tunnel/te:name"; + require-instance false; } description "This type is used by data models that need to reference configured TE tunnel."; } - typedef te-gen-node-id { - type union { - type te-types:te-node-id; - type inet:ip-address; - type nw:node-id; - } - description - "Generic type that identifies a node in a TE topology."; - } - /** * TE tunnel generic groupings */ - grouping te-generic-node-id { - description - "A reusable grouping for a TE generic node identifier."; - leaf id { - type te-gen-node-id; - description - "The identifier of the node. Can be represented as IP - address or dotted quad address or as an URI."; - } - leaf type { - type enumeration { - enum ip { - description - "IP address representation of the node identifier."; - } - enum dotted-quad { - description - "Dotted quad address representation of the node - identifier."; - } - enum node-id { - description - "URI representation of the node identifier."; - } - } - description - "Type of node identifier representation."; - } - } - grouping path-common-properties { description "Common path attributes."; @@ -172,7 +128,7 @@ module ietf-te { "The path-computation server when the path is externally queried."; } - uses te-generic-node-id; + uses te-types:te-generic-node-id; description "Address of the external path computation server."; @@ -343,7 +299,7 @@ module ietf-te { leaf lsp-id { type leafref { path "/te:te/te:lsps/te:lsp[tunnel-name=" - + "current()/../tunnel-name]/te:lsp-id"; + + "current()/../tunnel-name]/te:lsp-id"; } description "The TE LSP identifier."; } @@ -480,7 +436,6 @@ module ietf-te { type identityref { base te-types:lsp-restoration-type; } - default "te-types:lsp-restoration-restore-none"; description "LSP restoration type."; } @@ -488,7 +443,6 @@ module ietf-te { type identityref { base te-types:restoration-scheme-type; } - default "te-types:restoration-scheme-preconfigured"; description "LSP restoration scheme."; } @@ -563,7 +517,7 @@ module ietf-te { "RFC4872"; } container source { - uses te-generic-node-id; + uses te-types:te-generic-node-id; description "Association source."; reference @@ -601,7 +555,7 @@ module ietf-te { "RFC4872, RFC6780"; } container source { - uses te-generic-node-id; + uses te-types:te-generic-node-id; description "Association source."; reference @@ -691,10 +645,7 @@ module ietf-te { "A tunnel entry that this tunnel can potentially depend on."; leaf name { - type leafref { - path "/te:te/te:tunnels/te:tunnel/te:name"; - require-instance false; - } + type tunnel-ref; description "Dependency tunnel name. The tunnel may not have been instantiated yet."; @@ -731,22 +682,44 @@ module ietf-te { type nt:tp-id; description "The local link termination point identifier."; + reference + "RFC8345"; } leaf local-te-link-tp-id { type te-types:te-tp-id; description "The local TE link termination point identifier."; } + leaf remote-node-id { + type nw:node-id; + description + "The remote node identifier."; + } leaf remote-link-tp-id { type nt:tp-id; description "The remote link termination point identifier."; + reference + "RFC8345"; + } + leaf remote-te-link-tp-id { + type te-types:te-tp-id; + description + "The remote TE link termination point identifier."; } leaf remote-te-node-id { type te-types:te-node-id; description "Remote TE node identifier."; } + leaf link-id { + type nt:link-id; + config false; + description + "A network topology assigned identifier to the link"; + reference + "RFC8345"; + } leaf network-id { type nw:network-id; description @@ -766,21 +739,7 @@ module ietf-te { description "Global named path constraints configuration grouping."; - uses te-types:common-path-constraints-attributes { - description - "The constraints applicable to the path. This includes: - - The path bandwidth constraint - - The path link protection type constraint - - The path setup/hold priority constraint - - path signaling type constraint - - path metric bounds constraint. The unit of path metric - bound is interpreted in the context of the metric-type. - For example for metric-type 'path-metric-loss', the bound - is multiples of the basic unit 0.000003% as described - in RFC7471 for OSPF, and RFC8570 for ISIS. - - path affinity constraints - - path SRLG constraints"; - } + uses te-types:common-path-constraints-attributes; uses te-types:generic-path-disjointness; uses te-types:path-constraints-route-objects; container path-in-segment { @@ -1028,8 +987,9 @@ module ietf-te { + "te:secondary-reverse-path/te:name"; } description - "A reference to the reverse secondary path when - co-routed with the secondary path."; + "A reference to the secondary reverse path that + may be utilized when the containing primary + reverse path is in use."; } leaf active { type boolean; @@ -1107,8 +1067,8 @@ module ietf-te { + "te:secondary-reverse-path/te:name"; } description - "A reference to the secondary reverse path that - may be utilised when the secondary path is in use."; + "A reference to the reverse secondary path when + co-routed with the secondary path."; } uses path-compute-info; uses protection-restoration-properties; @@ -1140,14 +1100,17 @@ module ietf-te { } action tunnel-action { description - "Tunnel action."; + "Action commands to manipulate the TE tunnel state."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 2.5"; input { leaf action-type { type identityref { base te-types:tunnel-action-type; } description - "Tunnel action type."; + "The action to be invoked on the TE tunnel."; } } output { @@ -1161,6 +1124,13 @@ module ietf-te { } } action protection-external-commands { + description + "Actions to manipulate the protection external + commands of the TE tunnel."; + reference + "RFC 4427: Recovery (Protection and Restoration) + Terminology for Generalized Multi-Protocol Label + Switching (GMPLS)"; input { leaf protection-external-command { type identityref { @@ -1452,7 +1422,12 @@ module ietf-te { rpc tunnels-path-compute { description - "TE tunnels RPC nodes."; + "This RPC is a generic API whose + input and output parameters are expected to be provided by + augments to this module."; + reference + "RFC 4655: A Path Computation Element (PCE)-Based + Architecture."; input { container path-compute-info { /* @@ -1477,7 +1452,10 @@ module ietf-te { rpc tunnels-actions { description - "TE tunnels actions RPC"; + "RPC that manipulates the state of a TE tunnel."; + reference + "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, + Section 2.5"; input { container tunnel-info { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-template@2023-07-26.yang b/experimental/ietf-extracted-YANG-modules/ietf-template@2023-07-26.yang index 613763180..ef84b9035 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-template@2023-07-26.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-template@2023-07-26.yang @@ -44,6 +44,10 @@ module ietf-template { 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 + (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."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang new file mode 100644 index 000000000..97b593b21 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-aggregator@2024-04-15.yang @@ -0,0 +1,215 @@ +module ietf-tlm-philatelist-aggregator { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-aggregator"; + prefix ietf-tlm-philatelist-aggregator; + + import ietf-tlm-philatelist-types { + prefix ietf-tlm-philatelist-types; + } + import ietf-tlm-philatelist-index { + prefix ietf-tlm-philatelist-index; + } + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + 'This YANG module defines the Telemetry Philatelist Aggregator. + These definitions are for Philatelist Network Controllers. + + An AGGREGATOR ensures data from one or more SOURCE(s) are + combined into a FLOW using a (sequence of) OPERATIONs (OPs) + to generate a new data set in the DESTINATION (which could + be a new collection in the same data storage system as the + SOURCE). + + +-------------+ + | AGGREGATOR | + +-------------+ + | + +------------+------------+ + v v + ___________ ___________ + / SOURCE \ /DESTINATION\ + ( PARTITION 1 ) ( PARTITION ) + |\___________/| STREAM 1 |\___________/| + | | ========> | | + | | | | + | | STREAM 2 | | + \___________/ ===##===> \___________/ + || + ___________ || + / SOURCE \ || + ( PARTITION 2 ) // + |\___________/| == + | | + | | + | | + \___________/ + + '+" + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Restructured as part of the Telemetry Philatelist framework"; + reference + "RFC XXXX: ..."; + } + + container tlm-aggregator { + description + "Root container for the Philatelist Aggregator function. + "; + container aggregations { + description + "List of aggregation operations that are applied to a set of + input telemetry streams in a TSDB Partition to form an output + stream in a different TSDB Partition. + "; + list aggregation { + key id; + description + "Each aggregation takes one or more input streams from a + TSDB Partition, an operation to apply to them, and points + to an output stream an another TSDB Partition. + "; + leaf id { + type string; + description + "The internal id of this aggregation operation. + "; + } + list input { + key source; + description + "The list of sources/input streams for the aggregation. + "; + leaf source { + type ietf-tlm-philatelist-index:partition-ref-t; + description + "The TSDB Partition (bucket, interval, segment, etc.) + that the input telemetry data is read from. + "; + } + } + leaf operation { + type leafref { + path ../../../operations/operation/id; + } + description + "The operation to apply to the input stream(s) in order + to compute the output stream. + "; + } + container output { + description + "The TSDB Partition to send the computed output to. + "; + leaf destination { + type ietf-tlm-philatelist-index:partition-ref-t; + description + "The TSDB Partition (bucket, interval, segment, etc.) + that the aggregated telemetry data is sent to. + "; + } + } + } + } + container operations { + description + "The operations that may be applied during the aggregation. + "; + list operation { + key id; + description + "Details about which operation to apply and how. + "; + leaf id { + type ietf-tlm-philatelist-types:something; + description + "The internal id of the operation to apply. + "; + } + choice op-type { + description + "A choice of basic operation types. This set of choices + may be extended by other modules agumenting the choice. + "; + container linear-sum { + description + "This operation produces the sum of the input streams. + Since the data points in the input stream are not + likely to be perfectly aligned in time, this linear-sum + operation produces a linear interpolation between each + point in the time series. + + This works well when all inputs are continuously + receiving additional data points, and when their + frequency is roughly the same. A different summing + operation should be chosen if this is not the case, + e.g. most-recent-sum. + "; + } + container linear-average { description "FIXME"; } + container linear-max { description "FIXME"; } + container linear-min { description "FIXME"; } + container rolling-average { + description "FIXME"; + leaf timespan { + type ietf-tlm-philatelist-types:something; + description "FIXME"; + } + } + container filter-age { + description "FIXME"; + leaf min-age { + type ietf-tlm-philatelist-types:something; + description "FIXME"; + } + leaf max-age { + type ietf-tlm-philatelist-types:something; + description "FIXME"; + } + } + container function { + description "FIXME"; + leaf name { + type ietf-tlm-philatelist-types:something; + description "FIXME"; + } + } + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang new file mode 100644 index 000000000..dfac7e3d2 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-assets@2024-04-15.yang @@ -0,0 +1,98 @@ +module ietf-tlm-philatelist-assets { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-assets"; + prefix ietf-tlm-philatelist-assets; + + import ietf-lmo { + prefix ietf-lmo; + } + import ietf-lmo-assets { + prefix ietf-lmo-assets; + } + import ietf-tlm-philatelist-index { + prefix ietf-tlm-philatelist-index; + } + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + "This YANG module defines the Telemetry Philatelist linkage to + DMLMO Assets. + These definitions are for Philatelist Network Controllers. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Initial revision."; + reference + "RFC XXXX: ..."; + } + + grouping asset-pointer-g { + description + "Pointer to an LMO asset. + "; + leaf pertains-to-asset-class { + type leafref { + path /ietf-lmo:lmos/ietf-lmo:lmo/ietf-lmo:lmo-class; + } + must + "derived-from-or-self(current(), 'ietf-lmo-assets:asset')"; + must "../pertains-to-asset-id"; + description + "The LMO Asset class of the asset. + "; + } + leaf pertains-to-asset-id { + type leafref { + path "/ietf-lmo:lmos/ietf-lmo:lmo"+ + "[ietf-lmo:lmo-class=current()/../pertains-to-asset-class]" + +"/ietf-lmo:inst/ietf-lmo:id"; + } + description + "The LMO Asset id (within the class) of the asset. + "; + } + } + + augment "/ietf-tlm-philatelist-index:tlm-index"+ + "/ietf-tlm-philatelist-index:partitions"+ + "/ietf-tlm-philatelist-index:partition" { + description + "By augmenting an asset pointer into the TSDB Partition Index, + controller may clarify which LMO Asset the data in the + Partition pertains to. + "; + uses asset-pointer-g; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang new file mode 100644 index 000000000..6ba653f76 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-collector@2024-04-15.yang @@ -0,0 +1,217 @@ +module ietf-tlm-philatelist-collector { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-collector"; + prefix ietf-tlm-philatelist-collector; + + import ietf-tlm-philatelist-types { + prefix ietf-tlm-philatelist-types; + } + import ietf-tlm-philatelist-dashboard { + prefix ietf-tlm-philatelist-dashboard; + } + import ietf-tlm-philatelist-index { + prefix ietf-tlm-philatelist-index; + } + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + 'This YANG module defines the Telemetry Philatelist Collector. + These definitions are for Philatelist Network Controllers. + + A Network Controller with the Collector role programs one or more + SOURCES (typically Network Elements) to generate a STREAM of + telemetry data. A SOURCE may be a Provider, or a proxy mechanism + standing in for the Provider. + The STREAM is then sent to a specific DESTINATION PARTITION + in a Time Series Database (TSDB). Partitions are also known as + buckets, intervals, segments, etc. in various implementations. + + Each STREAM consists of timestamped sensor values from each + sensor in a sensor group. + + +-------------+ + | COLLECTOR | + +-------------+ ___________ + | /DESTINATION\ + +------------------+ ( PARTITION ) + v v |\___________/| + +------------+ +------------+ STREAM 1 | | + | SOURCE | | SOURCE | =======> | | + | - sensor 1 | | - sensor 1 | | | + | - sensor 2 | | - sensor 4 | STREAM 2 | | + | - sensor 3 | | - sensor 7 | =======> | | + +------------+ +------------+ | | + \\ STREAM 3 | | + =============================> \___________/ + '+" + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Restructured as part of the Telemetry Philatelist framework"; + reference + "RFC XXXX: ..."; + } + + container tlm-collector { + description + "Root container for the Philatelist Collector function. + "; + container organizations { + description + "List of organizations that the collected data pertains to. + Data belonging to one organization will not mix with that of + another. + "; + list organization { + key name; + description + "Organization that this collection process pertains to. + "; + + leaf name { + type string; + description + "Collector's name of the organization. + "; + } + container device-groups { + description + "List of device-groups. + "; + list device-group { + key name; + description + "A device-group contains a group of similar devices + that will have collection performed in the same way. + "; + leaf name { + type string; + description + "Name of the device-group. + "; + } + leaf-list devices { + type string; + description + "Points to the devices members of this device-group. + The exact meaning of these names is implementation + specific. + "; + } + uses ietf-tlm-philatelist-dashboard:provider-g; + } + } + + container tlm-streams { + description + "List of telemetry streams pertainin to this + organization. + "; + list tlm-stream { + key id; + description + "A stream of telemetry data that is collected from a + device-group that share a particular dashboard. + "; + leaf id { + type ietf-tlm-philatelist-types:something; + description + "Identifier of the telemetry stream. + "; + } + list sources { + key "device-group dash-name"; + description + "List of sources to collect from. Each source points + to a device-group and a dashboard name to collect + from each device in the device-group. + "; + leaf device-group { + type leafref { + path ../../../../device-groups/device-group/name; + } + description + "The device-group to collect from. + "; + } + leaf dash-name { + type leafref { + path "../../../../device-groups/device-group/"+ + "dashboards/dashboard/id"; + } + description + "The name of the dashboard + "; + } + } + leaf destination { + type ietf-tlm-philatelist-index:partition-ref-t; + description + "The TSDB Partition (bucket, interval, segment, etc.) + that the collected telemetry data is sent to. + "; + } + } + } + } + } + } + + augment "/tlm-collector/organizations/organization/device-groups/"+ + "device-group/dash-items/dash-item/label/value-source" { + description + "Some additional value-sources that the collector enables + (that are not available to providers). + "; + case controller-managed-value { + leaf controller-managed-value { + type empty; + description + "The Collector will determine the label value by its + own discretion. + "; + } + } + case controller-provided-value { + leaf controller-provided-value { + type string; + description + "The Collector will determine the label value by its + own discretion, and that value is configured here. + "; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang new file mode 100644 index 000000000..96e2da86a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-dashboard@2024-04-15.yang @@ -0,0 +1,632 @@ +module ietf-tlm-philatelist-dashboard { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-dashboard"; + prefix ietf-tlm-philatelist-dashboard; + + import ietf-tlm-philatelist-types { + prefix ietf-tlm-philatelist-types; + } + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + "This YANG module defines the Telemetry Philatelist Dashboard. + + These definitions are used both by Philatelist Network + Controllers, and Philatelist Network Elements. Network Elements + that are unaware of the Philatelist framework may also be + covered when a 'proxy mechanism' for the Philatelist information + is added. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Restructured as part of the Telemetry Philatelist framework"; + reference + "RFC XXXX: ..."; + } + + identity cm-gnmi { + base ietf-tlm-philatelist-types:connection-method; + description + "Connection method identity for gNMI-based mechanisms. + "; + } + identity cm-restconf { + base ietf-tlm-philatelist-types:connection-method; + description + "Connection method identity for RESTCONF-based mechanisms. + "; + } + identity cm-netconf { + base ietf-tlm-philatelist-types:connection-method; + description + "Connection method identity for NETCONF-based mechanisms. + "; + } + identity cm-redfish { + base ietf-tlm-philatelist-types:connection-method; + description + "Connection method identity for Redfish-based mechanisms. + "; + } + identity gnmi-polling { + base cm-gnmi; + base ietf-tlm-philatelist-types:cm-polled; + description + "Connection method identity for gNMI-based polling mechanisms. + "; + } + identity restconf-get-polling { + base cm-restconf; + base ietf-tlm-philatelist-types:cm-polled; + description + "Connection method identity for RESTCONF-based polling + mechanisms. + "; + } + identity netconf-get-polling { + base cm-netconf; + base ietf-tlm-philatelist-types:cm-polled; + description + "Connection method identity for NETCONF-based polling + mechanisms. + "; + } + identity restconf-yang-push-subscription { + base cm-restconf; + description + "Connection method identity for RESTCONF-based + subscription mechanisms. + "; + } + identity netconf-yang-push-subscription { + base cm-netconf; + description + "Connection method identity for NETCONF-based + subscription mechanisms. + "; + } + identity redfish-polling { + base cm-redfish; + description + "Connection method identity for Redfish-based polling + mechanisms. + "; + } + grouping access-g { + description + "Grouping describing the basic set of access methods offered by + Philatelist servers, i.e. Network Elements. The set of access + mechanisms may be extended by servers offering additional + mechanisms. This grouping is also used by Network Controllers, + when they need to find a way to interact with the + Network Elements. + "; + + leaf method { + type identityref { + base ietf-tlm-philatelist-types:connection-method; + } + default ietf-tlm-philatelist-types:get-local-file-once; + description + "Discriminator pointing out which access mechanism is + offered. This value controls which detailed configuration + nodes will be available. + "; + } + container get-local-file-once { + when "derived-from-or-self(../method, + 'ietf-tlm-philatelist-types:get-local-file-once')"; + description + "The server itself does not offer any access mechanism for + this dashboard item. Instead, philatelist controllers will + need to read static values from a local on the controller. + How the file appears in a relevant location on the + controller is outside the scope of this specification. + The file format used MUST adhere to RFC9195 + (https://datatracker.ietf.org/doc/rfc9195/) + "; + leaf filename { + type string; + description + "The name of the file containing the static data for the + dashboard item. If the filename is not specified, the + controller should look for a file with the same name as the + connection name. + "; + } + } + container get-static-url-once { + when "derived-from-or-self(../method, + 'ietf-tlm-philatelist-types:get-static-url-once')"; + description + "The server points to a URL the controller can use to + download a file with static values for this dashboard item. + The URL may or may not be pointing to the server itself, and + could potentially even point to a URL on the controller + itself. How the static file contents pointed to by the URL + appears on the webserver is outside the scope of this + specification. + "; + leaf url { + type ietf-tlm-philatelist-types:something; + description + "The URL that the controller should read in order to + get the static data about the dashboard item. + The file format used MUST adhere to RFC9195 + (https://datatracker.ietf.org/doc/rfc9195/) + "; + } + } + container gnmi-polling { + when "derived-from-or-self(../method, 'gnmi-polling')"; + description + "The server points to a gNMI interface the controller can + poll at regular intervals to read the current sensor value + for this dashboard item. + "; + leaf encoding { + type ietf-tlm-philatelist-types:something; + description + "The encoding of the data provided by this mechanism, + such as self-describing-gpb + "; + } + leaf protocol { + type ietf-tlm-philatelist-types:something; + description + "The exact protocol parameters for this gNMI endpoint, + such as grpc no-tls + "; + } + } + container restconf-get-polling { + when "derived-from-or-self(../method, 'restconf-get-polling')"; + description "FIXME"; + leaf xxx { type string; description "FIXME"; } + } + container netconf-get-polling { + when "derived-from-or-self(../method, 'netconf-get-polling')"; + leaf xxx { type string; description "FIXME"; } + description "FIXME"; + } + container restconf-yang-push-subscription { + when "derived-from-or-self(../method, + 'restconf-yang-push-subscription')"; + leaf xxx { type string; description "FIXME"; } + description "FIXME"; + } + container netconf-yang-push-subscription { + when "derived-from-or-self(../method, + 'netconf-yang-push-subscription')"; + leaf xxx { type string; description "FIXME"; } + description "FIXME"; + } + container redfish-polling { + when "derived-from-or-self(../method, 'redfish-polling')"; + leaf xxx { type string; description "FIXME"; } + description "FIXME"; + } + leaf frequency { + when "derived-from(../method, + 'ietf-tlm-philatelist-types:cm-polled')"; + type ietf-tlm-philatelist-types:sample-frequency; + description + "The frequency with which the sensor data value collection + should happen. E.g. once per 30 minutes, once per 5 minutes, + once per 30 seconds or on-change. + "; + } + } + + grouping provider-g { + description + "Top-level provider grouping. Devices will implement + this as a config false container, or as a piece of instance + data that a controller can read. Controllers implement this + data structure as config true, configurable and readable by + the operators. + "; + container dashboards { + description + "Each device may support one or more dashboards. + Controllers can then choose the most advanced dashboard they + are aware of and interested in. A dashboard contains + a list of sensors and/or controls that a controller may find + useful for some particular use case. + "; + list dashboard { + key id; + description + "List of dashboards supported by a given device or + controller. + "; + leaf id { + type identityref { + base ietf-tlm-philatelist-types:dash-type; + } + description + "Formal dashboard id. The dashboard-items in this + dashboard are found in ../items, and what items are + available there depends on this dashboard id . + "; + } + list items { + key tsdb-path; + description + "List of dashboard items. Some of the items are sensors + which provide data to be read, some may be controls that + the controller may use. + "; + leaf tsdb-path { + type leafref { + path ../../../../dash-items/dash-item/tsdb-path; + } + description + "Path to the sensor or control item on the dashboard. + The format of the path is TSDB style, i.e. used MUST + conform to the I-D.draft-kll-yang-label-tsdb, e.g. + interfaces_interface_statistics_in_unicast_pkts + Each dashboard item may point to multiple sensors, + as in the example above, where each interface would + have a counter of incoming unicase packets. + Each dashboard item may occur in more than one + dashboard, and is therefore further desribed in + ../../../../dash-items/dash-item + "; + } + } + } + } + container dash-items { + description + "Container for all dashboard items. Each item may be part of + (referenced by) multiple dashboards. + "; + list dash-item { + key tsdb-path; + description + "Dashboard item, a sensor or control item that is part + of a dashboard, i.e. a collection of sensors and controls + relevant for a particular use case. + Each dashboard item may occur in more than one dashboard. + "; + leaf tsdb-path { + type string; + description + "Path to the sensor or control item on the dashboard. + The format of the path is TSDB style, i.e. used MUST + conform to the I-D.draft-kll-yang-label-tsdb, e.g. + interfaces_interface_statistics_in_unicast_pkts + Each dashboard item may point to multiple sensors, as in + the example above, where each interface would have + a counter of incoming unicase packets. + "; + } + leaf item-type { + type identityref { + base ietf-tlm-philatelist-types:dash-item-type; + } + mandatory true; + description + "The item type describes the type of dashboard item this + is, including if it is a sensor or contol, sitting on + the inside or outside of the parent component, the + measurement quantity (e.g. temperature) and unit + (e.g. Celsius). + + See the ietf-tlm-philatelist-types:dash-item-type for a + more detailed explanation, or if you intend to define a + new type of dashboard item. + "; + } + container accuracy { + when "derived-from(../item-type, + 'ietf-tlm-philatelist-types:sensor-type')"; + description + "The accuracy of the dasboard item (sensor). The + accuracy described using two parameters. One is the max + deviation relative to the sensor reading, the other one + is a constant deviation offset. + + Example 1: if a sensor might produce values between + 0 and 1000, and the sensor currently reports 555, but + the actual value is 531, that could be reported as a + 5% relative error with offset 0. + + Example 2: if a sensor might produce values between + 0 and 1000, and the sensor currently reports 0, but + the actual value is 2, that could be reported as a + 0% relative error with offset 2 (or some slightly + highger value, e.g. 5). + + The accuracy MUST be described such that there is a 96% + confidence that the actual value V is within the reported + value R so that: + + (measured-error) = | R - V | + (error-margin) = | R * (max-error-relative) | + + (max-error-offset) + p( (measured-error) < (error-margin) ) >= 0.96 + "; + leaf max-error-relative { + type ietf-tlm-philatelist-types:something; + description + "The part of the accuracy claim that depends on (varies + in proportion to) the reported value. + "; + } + leaf max-error-offset { + type ietf-tlm-philatelist-types:something; + description + "The part of the accuracy claim that does not depend on + (does not vary with) the reported value. + "; + } + } + list label { + key name; + description + "List of TSDB path labels. A single TSDB path often refer + to a whole collection of readable sensors. Each such + sensor is distinguished by the values associated with + labels in the path. Those labels are listed here. + + Example: interfaces_interface_statistics_in_unicast_pkts + might have one label interfaces_interface_name. Concrete + readouts going into the TSDB might have values like + + Metric: interfaces_interface_statistics_in_unicast_pkts + Value: 5432100 + Labels: + host = router-01 + interfaces_interface_name = eth0 + + As can be seen in the example, a controller might inject + labels that are not part of the tsdb-path (host), but + helps the controller keep track of the incoming data + streams. + "; + reference + I-D.draft-kll-yang-label-tsdb; + leaf name { + type string; + description + "The name of the label, in TSDB path notation. + E.g. interfaces_interface_name + "; + } + choice value-source { + description + "The source of the values associated with the labels. + Label values may be provided in several ways: + + the server may provide values in runtime, in which + case the runtime-values points to the dashboard item + to read to get the actual values. + + the controller or operator may pick one or more + values by configuration, in which case they are + listed under static-values . + + the controller may pick one or more values using some + internal mechanism of its own, in which case they + will not be visible here. + "; + leaf-list static-values { + type string; + description + "One or more values configured by the controller or + operator designating which instances of this TSDB + path to collect data about. + + Example: if the label name for this label entry is + interfaces_interface_name, this could be a configured + list of interface names to collect data about. + "; + } + leaf-list runtime-values { + type leafref { + path ../../../dash-item/tsdb-path; + } + description + "One or more dashboard items to read label values + from. + + Example: if the label name for this label entry is + interfaces_interface_name, this could point to a + dashboard item that collects the names of all + interfaces, or all interfaces relevant for a + particular purpose or customer. + "; + } + } + } + choice access-path { + description + "This is the path used by the client (Network Controller) + when asking the server (Network Element) for data. + The format of the access-path depends on the specific + access mechanism. If the access mechanism is YANG-based, + this access path would be an XPath string. If the access + mechanism is SNMP, it would be an OID. A redfish access + mechanism would use a endpoint-local URL. + The actual path may be constructed in one of several ways. + "; + leaf plain-string { + type string; + description + "The given string is used as is, without substitution + of any labels or special characters. + "; + } + leaf string-with-labels { + type string; + description + "The given string contains references of the form + + $(label_name) + + i.e. a dollar-sign, a left-parenthesis, + the name of the label - case sensitive and without + whitespace - and finally a right-parenthesis. + + This expression refers to the labels-value pairs from + + ../label/name and ../label/value-source + + The reference expression is substituted with the + label value before use. + + Example: The access path for an SNMP GET-based node + interfaces_interface_statistics_in_unicast_pkts + might have access path + + 1.3.6.1.2.1.2.2.1.11.$(interfaces_interface_num) + + which gives the final OID string + + 1.3.6.1.2.1.2.2.1.11.4711 + + if the ../label[name='interfaces_interface_num'] value + is 4711. + "; + } + leaf url-with-labels { + type string; + description + "The given string contains references of the forms + + {label_name} + {label_name:3} + {?label_name} + + etc. as defined in RFC6570. + + This expression refers to the labels-value pairs from + + ../label/name and ../label/value-source + + The reference expression is substituted with the + label value before use according to the RFC6570 rules. + + Example 1: The access path for a NETCONF get-based node + interfaces_interface_statistics_in_unicast_pkts + might have access path + + /if:interfaces/interface[name='{interfaces_interface_na + me}']/statistics/in-unicast-pkts + + Any prefixes used (as if: above) are mapped to the + corresponding namespace (NETCONF) or module name + (RESTCONF) using the ../../../prefix-mappings list. + + Example 2: The access path for a Redfish-based node + + Systems_EthernetInterfaces_EthernetInterfaceMetrics_Dro + ppedPackets + + might have access path + + /redfish/v1/Systems/VM1/EthernetInterfaces/{interfaces_ + interface_num}/EthernetInterfaceMetrics/DroppedPackets + "; + } + } + leaf access-params { + type leafref { + path ../../../accesses/access/id; + } + description + "Points to the specific access method to be used with + this dashboard item. + "; + } + } + } + container accesses { + description + "Holds a list of all the access methods that have been + defined for dashboard items on the Network Element. + "; + list access { + key id; + description + "One specific access method to be used with some dashboard + items. + "; + leaf id { + type string; + description + "Name for this access method. + "; + } + uses access-g; + } + } + container prefix-mappings { + description + "Contains the mappings for prefixes used in the access-path + to the XML namespace (NETCONF) or module name (RESTCONF). + "; + list prefix-mapping { + key prefix; + description + "List of access-path prefixes and their mapping to + namespace and module name. + "; + leaf prefix { + type string; + description + "Prefix, as used in the dash-item/access-path. + The prefix is case sensitive, and should not contain + the ending colon (:). + "; + } + leaf namespace { + type string; + description + "XML namespace corresponding to the prefix name. + Used by NETCONF-based access mechanisms. + "; + } + leaf module-name { + type string; + description + "YANG module name corresponding to the prefix name. + Used by RESTCONF-based access mechanisms. + "; + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang new file mode 100644 index 000000000..d7e414779 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-index@2024-04-15.yang @@ -0,0 +1,199 @@ +module ietf-tlm-philatelist-index { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-index"; + prefix ietf-tlm-philatelist-index; + + import ietf-tlm-philatelist-types { + prefix ietf-tlm-philatelist-types; + } + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + 'This YANG module defines the Telemetry Philatelist Index. + These definitions are for Philatelist Network Controllers. + + A Network Controller with the Collector role programs one or more + SOURCES (typically Network Elements) to generate a STREAM of + telemetry data. The STREAM is sent to a specific DESTINATION + in a Time Series Database (TSDB). + + Each STREAM consists of timestamped sensor values from each + sensor in a sensor group. + + +-------------+ + | COLLECTOR | + +-------------+ ___________ + | /DESTINATION\ + +------------------+ ( PARTITION ) + v v |\___________/| + +------------+ +------------+ STREAM 1 | | + | SOURCE | | SOURCE | =======> | | + | - sensor 1 | | - sensor 1 | | | + | - sensor 2 | | - sensor 4 | STREAM 2 | | + | - sensor 3 | | - sensor 7 | =======> | | + +------------+ +------------+ | | + \\ STREAM 3 | | + =============================> \___________/ + + '+" + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Restructured as part of the Telemetry Philatelist framework"; + reference + "RFC XXXX: ..."; + } + + typedef partition-ref-t { + type leafref { + path + "/ietf-tlm-philatelist-index:tlm-index"+ + "/ietf-tlm-philatelist-index:partitions"+ + "/ietf-tlm-philatelist-index:partition"+ + "/ietf-tlm-philatelist-index:id"; + } + description + "Pointer to a specific TSDB partition + (aka. bucket, interval, segment, etc.) + "; + } + grouping tsdb-partition-g { + description + "Grouping for identifying and connecting to a specific TSDB + partition (aka. bucket, interval, segment, etc.) + "; + leaf url { + type ietf-tlm-philatelist-types:something; + description + "The URL to use to connect to the TSDB. + "; + } + leaf organization { + type ietf-tlm-philatelist-types:something; + description + "The organization this partition belongs to. + Leaving this unset means the 'default' organization. + "; + } + leaf partition { + type ietf-tlm-philatelist-types:something; + description + "The TSDB partition (aka. bucket, interval, segment, etc.) + that the collected data is stored in. + "; + } + container impl-specific { + description + "Implementation specific key-valye pairs for establising and + maintaining the collection connections. + "; + list binding { + key key; + description + "List of key-value bindings. The meaning of these key-value + pairs is implementation dependent. + "; + leaf key { + type string; + description + "The key part of the key-value pair. + The set of key values that are defined is implementation + dependent. + "; + } + choice value-type { + description + "The value part of the key-value pair. The value part may + have several different formats, and implementations may + augment yet other formats into this choice. + "; + leaf value { + type string; + description + "The value part of the key-value pair as a simple + string value. + "; + } + leaf-list values { + type string; + ordered-by user; + description + "The value part of the key-value pair as a collection + of string values. + "; + } + leaf env-var { + type string; + description + "The value part of the key-value pair. The actual + value is provided by an operating system environment + variable. The name of that environment variable is + given by this leaf. Case sensitive. + + The set of environment variable names that are defined + is implementation dependent. + "; + } + } + } + } + } + + container tlm-index { + description + "List of TSDB Partitions referenced by this Network Controller. + "; + container partitions { + description + "Container for all the TSDB Partition access information. + "; + list partition { + key id; + description + "TSDB Partition access information for the Partitions that + this Network Controller is aware of. + "; + leaf id { + type ietf-tlm-philatelist-types:something; + description + "The Network Controller's internal identifier for this + TSDB Partition. + "; + } + uses tsdb-partition-g; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang new file mode 100644 index 000000000..c4d8a4e58 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-provider@2024-04-15.yang @@ -0,0 +1,68 @@ +module ietf-tlm-philatelist-provider { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-provider"; + prefix ietf-tlm-philatelist-provider; + + import ietf-tlm-philatelist-dashboard { + prefix ietf-tlm-philatelist-dashboard; + } + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + "This YANG module defines the Telemetry Philatelist Provider + interface. + + This module is used by Network Elements that have built-in + support for the Philatelist provider interface, or by a proxy + mechanism representing some/all of them, when not supported + directly. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Restructured as part of the Telemetry Philatelist framework"; + reference + "RFC XXXX: ..."; + } + + container tlm-provider { + description + "Container with telemetry collection dashboards for + Network Elements with built-in support for the Philatelist + collection framework. + "; + uses ietf-tlm-philatelist-dashboard:provider-g; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang new file mode 100644 index 000000000..6d6a9b8f9 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tlm-philatelist-types@2024-04-15.yang @@ -0,0 +1,175 @@ +module ietf-tlm-philatelist-types { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-tlm-philatelist-types"; + prefix ietf-tlm-philatelist-types; + + organization + "IETF OPSA (Operations and Management Area) Working Group"; + contact + "WG Web: + WG List: + Editor: Jan Lindblad + + Editor: Snezana Mitrovic + + Editor: Marisol Palmero + "; + description + "This YANG module defines base identities for quantities, + measurement units, connection methods, sensor and control types + for the Telemetry Philatelist framework. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', + 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', + 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document + are to be interpreted as described in BCP 14 (RFC 2119) + (RFC 8174) when, and only when, they appear in all + capitals, as shown here. + "; + + revision 2024-04-15 { + description + "Restructured as part of the Telemetry Philatelist framework"; + reference + "RFC XXXX: ..."; + } + + typedef something { + type string; + description + "FIXME: Used when we haven't decided the type yet + "; + } + typedef xpath { + type string; + description + "FIXME: Proper type needed + "; + } + typedef sample-frequency { + type string; + description + "FIXME: Proper type needed + "; + } + + // ========== SENSOR-CLASS ============================== + identity sensor-class { + description + "Sensor's relation to the asset it sits on. + "; + } + identity sc-input { + base sensor-class; + description + "Sensor reports input quantity of the asset it sits on. + "; + } + identity sc-output { + base sensor-class; + description + "Sensor reports output quantity of the asset it sits on. + "; + } + identity sc-allocated { + base sensor-class; + description + "Sensor reports (maximum) allocated quantity of the asset + it sits on. + "; + } + // ========== SENSOR-QUANTITY ============================== + identity sensor-quantity { + description + "Sensor's quantity being measured. + "; + } + + // ========== SENSOR-UNIT ============================== + identity sensor-unit { + description + "Sensor's unit of reporting. + "; + } + + // ========== DASH-TYPE =================================== + identity dash-type { + description + "The base identity for all dashboard types. + Dashboards are predefined collections of sensors and/or + controls that a Network Element publishes towards a Network + Controller, which uses the dashboard to find use case relevant + telemetry collection and control points. + "; + } + + // ========== DASH-ITEM-TYPE ============================== + identity dash-item-type { + description + "The base identity for an individual item on a dashboard. + This is further subdivided into controls and sensors, which + are even further subdivided into sensors measuring e.g. + temperature in Celsius. + "; + } + identity sensor-type { + base dash-item-type; + description + "Sensor's type, i.e. combination of class, quantity and unit. + Sensor class tells whether the sensor measures some quantity + on the inside or outside of the component it pertains to. + E.g. whether it is measuring the incoming our outgoing current + from a power supply. + Sensor quantity tells what the sensor is measuring. + E.g. temperature, current or number of packets + Sensor unit tells about the sensor measurement unit. + E.g. Celsius, Farenheit or Kelvin. Or energy in kWh or J. + "; + } + // ========== CONNECTION-METHOD ============================== + + identity connection-method { + description + "Base identity for all kinds of connection methods. + "; + } + identity get-local-file-once { + base connection-method; + description + "Connection method identity for the case where a file contains + the dashboard information in lieu of the Network Element + itself. + "; + } + identity get-static-url-once { + base connection-method; + description + "Connection method identity for the case where a URL contains + the dashboard information in lieu of the Network Element + itself. The URL may or may not be hosted on the Network + Element. + "; + } + identity cm-polled { + base connection-method; + description + "Connection method identity for all mechanisms that are based + on the client regularly polling the server. + "; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tls-client@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tls-client@2024-03-16.yang similarity index 83% rename from experimental/ietf-extracted-YANG-modules/ietf-tls-client@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tls-client@2024-03-16.yang index 8bcdb0178..447185b2b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tls-client@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tls-client@2024-03-16.yang @@ -40,13 +40,13 @@ module ietf-tls-client { "WG List: NETCONF WG list WG Web: https://datatracker.ietf.org/wg/netconf Author: Kent Watsen - Author: Jeff Hartley "; + Author: Jeff Hartley "; description "This module defines reusable groupings for TLS clients that can be used as a basis for specific TLS client instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -67,7 +67,7 @@ module ietf-tls-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -103,6 +103,7 @@ module ietf-tls-client { } feature client-ident-tls12-psk { + if-feature "tlscmn:tls12"; description "Indicates that the client supports identifying itself using TLS-1.2 PSKs (pre-shared or pairwise-symmetric keys)."; @@ -113,6 +114,7 @@ module ietf-tls-client { } feature client-ident-tls13-epsk { + if-feature "tlscmn:tls13"; description "Indicates that the client supports identifying itself using TLS-1.3 External PSKs (pre-shared keys)."; @@ -140,6 +142,7 @@ module ietf-tls-client { Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)"; } + feature server-auth-tls12-psk { description "Indicates that the client supports authenticating servers @@ -186,7 +189,7 @@ module ietf-tls-client { "Identity credentials the TLS client MAY present when establishing a connection to a TLS server. If not configured, then client authentication is presumed to - occur a protocol layer above TLS. When configured, + occur in a protocol layer above TLS. When configured, and requested by the TLS server when establishing a TLS session, these credentials are passed in the Certificate message defined in Section 7.4.2 of @@ -211,12 +214,14 @@ module ietf-tls-client { "ks:inline-or-keystore-end-entity-cert-with-key-" + "grouping" { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:subject-public-key-info-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:subject-public-key-' + + 'info-format")'; } - refine "inline-or-keystore/keystore/keystore-reference" - + "/asymmetric-key" { - must 'derived-from-or-self(deref(.)/../ks:public-' + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference/asymmetric-key" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-' + 'key-format, "ct:subject-public-key-info-' + 'format")'; } @@ -231,12 +236,14 @@ module ietf-tls-client { private key."; uses ks:inline-or-keystore-asymmetric-key-grouping { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:subject-public-key-info-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format, "ct:subject-public-key-' + + 'info-format")'; } - refine - "inline-or-keystore/keystore/keystore-reference" { - must 'derived-from-or-self(deref(.)/../ks:public-' + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-' + 'key-format, "ct:subject-public-key-info-' + 'format")'; } @@ -274,41 +281,39 @@ module ietf-tls-client { and the KDF hash algorithm to be used with the PSK MUST also be provisioned. - The structure of this container is designed - to satisfy the requirements of RFC 8446 - Section 4.2.11, the recommendations from I-D - ietf-tls-external-psk-guidance Section 6, - and the EPSK input fields detailed in I-D - draft-ietf-tls-external-psk-importer - Section 3.1. The base-key is based upon - ks:inline-or-keystore-symmetric-key-grouping + The structure of this container is designed to + satisfy the requirements of RFC 8446 Section + 4.2.11, the recommendations from Section 6 in + RFC 9257, and the EPSK input fields detailed in + Section 5.1 in RFC 9258. The base-key is based + upon ks:inline-or-keystore-symmetric-key-grouping in order to provide users with flexible and secure storage options."; reference "RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 - I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS - I-D.ietf-tls-external-psk-guidance: - Guidance for External PSK Usage in TLS"; + RFC 9257: Guidance for External Pre-Shared Key + (PSK) Usage in TLS + RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; uses ks:inline-or-keystore-symmetric-key-grouping; leaf external-identity { type string; mandatory true; description "As per Section 4.2.11 of RFC 8446, and Section 4.1 - of I-D. ietf-tls-external-psk-guidance: - A sequence of bytes used to identify an EPSK. A - label for a pre-shared key established externally."; + of RFC 9257, a sequence of bytes used to identify + an EPSK. A label for a pre-shared key established + externally."; reference "RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 - I-D.ietf-tls-external-psk-guidance: - Guidance for External PSK Usage in TLS"; + RFC 9257: Guidance for External Pre-Shared Key + (PSK) Usage in TLS"; } leaf hash { type tlscmn:epsk-supported-hash; - mandatory true; + default sha-256; description "As per Section 4.2.11 of RFC 8446, for externally established PSKs, the Hash algorithm MUST be set @@ -324,41 +329,38 @@ module ietf-tls-client { leaf context { type string; description - "As per Section 4.1 of I-D. - ietf-tls-external-psk-guidance: Context may include - information about peer roles or identities to - mitigate Selfie-style reflection attacks [Selfie]. - If the EPSK is a key derived from some other - protocol or sequence of protocols, context - MUST include a channel binding for the deriving - protocols [RFC5056]. The details of this binding - are protocol specific."; + "Per Section 5.1 of RFC 9258, context MUST include + the context used to determine the EPSK, if + any exists. For example, context may include + information about peer roles or identities + to mitigate Selfie-style reflection attacks. + Since the EPSK is a key derived from an external + protocol or sequence of protocols, context MUST + include a channel binding for the deriving + protocols [RFC5056]. The details of this + binding are protocol specfic and out of scope + for this document."; reference - "I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS - I-D.ietf-tls-external-psk-guidance: - Guidance for External PSK Usage in TLS"; + "RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; } leaf target-protocol { type uint16; description - "As per Section 3.1 of I-D. - ietf-tls-external-psk-guidance: - The protocol for which a PSK is imported for use."; + "As per Section 3 of RFC 9258, the protocol + for which a PSK is imported for use."; reference - "I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS"; + "RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; } leaf target-kdf { type uint16; description - "As per Section 3.1 of I-D. - ietf-tls-external-psk-guidance: - The specific Key Derivation Function (KDF) for which - a PSK is imported for use."; + "As per Section 3 of RFC 9258, the KDF for + which a PSK is imported for use."; reference - "I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS"; + "RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; } } } @@ -427,8 +429,8 @@ module ietf-tls-client { must 'derived-from-or-self(public-key-format,' + ' "ct:subject-public-key-info-format")'; } - refine "inline-or-truststore/truststore/truststore-" - + "reference" { + refine "inline-or-truststore/central-truststore/" + + "central-truststore-reference" { must 'not(deref(.)/../ts:public-key/ts:public-key-' + 'format[not(derived-from-or-self(., "ct:subject-' + 'public-key-info-format"))])'; @@ -440,7 +442,7 @@ module ietf-tls-client { type empty; description "Indicates that the TLS client can authenticate TLS servers - using configure PSKs (pre-shared or pairwise-symmetric + using configured PSKs (pre-shared or pairwise-symmetric keys). No configuration is required since the PSK value is the @@ -467,7 +469,6 @@ module ietf-tls-client { description "Configurable parameters for the TLS hello message."; } // container hello-params - container keepalives { nacm:default-deny-write; if-feature "tls-client-keepalives"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tls-common@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tls-common@2024-03-16.yang similarity index 62% rename from experimental/ietf-extracted-YANG-modules/ietf-tls-common@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tls-common@2024-03-16.yang index 5ad06f419..5b11c6bd5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tls-common@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tls-common@2024-03-16.yang @@ -28,14 +28,14 @@ module ietf-tls-common { "WG List: NETCONF WG list WG Web: https://datatracker.ietf.org/wg/netconf Author: Kent Watsen - Author: Jeff Hartley + Author: Jeff Hartley Author: Gary Wu "; description "This module defines a common features and groupings for Transport Layer Security (TLS). - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -56,7 +56,7 @@ module ietf-tls-common { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -65,29 +65,9 @@ module ietf-tls-common { // Features - feature tls10 { - status "obsolete"; - description - "TLS Protocol Version 1.0 is supported. TLS 1.0 is obsolete - and thus it is NOT RECOMMENDED to enable this feature."; - reference - "RFC 2246: The TLS Protocol Version 1.0"; - } - - feature tls11 { - status "obsolete"; - description - "TLS Protocol Version 1.1 is supported. TLS 1.1 is obsolete - and thus it is NOT RECOMMENDED to enable this feature."; - reference - "RFC 4346: The Transport Layer Security (TLS) Protocol - Version 1.1"; - } - feature tls12 { - status "deprecated"; description - "TLS Protocol Version 1.2 is supported TLS 1.2 is obsolete + "TLS Protocol Version 1.2 is supported. TLS 1.2 is obsolete and thus it is NOT RECOMMENDED to enable this feature."; reference "RFC 5246: The Transport Layer Security (TLS) Protocol @@ -107,44 +87,28 @@ module ietf-tls-common { "TLS hello message parameters are configurable."; } - feature public-key-generation { + feature algorithm-discovery { description "Indicates that the server implements the - 'generate-public-key' RPC."; + 'supported-algorithms' container."; } - // Identities - - identity tls-version-base { + feature asymmetric-key-pair-generation { description - "Base identity used to identify TLS protocol versions."; + "Indicates that the server implements the + 'generate-asymmetric-key-pair' RPC."; } - identity tls10 { - if-feature "tls10"; - base tls-version-base; - status "obsolete"; - description - "TLS Protocol Version 1.0."; - reference - "RFC 2246: The TLS Protocol Version 1.0"; - } + // Identities - identity tls11 { - if-feature "tls11"; - base tls-version-base; - status "obsolete"; + identity tls-version-base { description - "TLS Protocol Version 1.1."; - reference - "RFC 4346: The Transport Layer Security (TLS) Protocol - Version 1.1"; + "Base identity used to identify TLS protocol versions."; } identity tls12 { if-feature "tls12"; base tls-version-base; - status "deprecated"; description "TLS Protocol Version 1.2."; reference @@ -162,6 +126,8 @@ module ietf-tls-common { Protocol Version 1.3"; } + // Typedefs + typedef epsk-supported-hash { type enumeration { enum sha-256 { @@ -179,11 +145,7 @@ module ietf-tls-common { Key (EPSK)."; reference "RFC 8446: The Transport Layer Security (TLS) - Protocol Version 1.3 - I-D.ietf-tls-external-psk-importer: Importing - External PSKs for TLS - I-D.ietf-tls-external-psk-guidance: Guidance - for External PSK Usage in TLS"; + Protocol Version 1.3"; } // Groupings @@ -198,26 +160,31 @@ module ietf-tls-common { Version 1.3"; container tls-versions { description - "Parameters regarding TLS versions."; - leaf-list tls-version { + "Parameters limiting which TLS versions, amongst + those enabled by 'features', are presented during + the TLS handshake."; + leaf min { type identityref { base tls-version-base; } description - "Acceptable TLS protocol versions. - - If this leaf-list is not configured (has zero elements) - the acceptable TLS protocol versions are implementation- - defined."; + "If not specified, then there is no configured + minimum version."; + } + leaf max { + type identityref { + base tls-version-base; + } + description + "If not specified, then there is no configured + maximum version."; } } container cipher-suites { description "Parameters regarding cipher suites."; leaf-list cipher-suite { - type identityref { - base tlscsa:cipher-suite-alg-base; - } + type tlscsa:tls-cipher-suite-algorithm; ordered-by user; description "Acceptable cipher suites in order of descending @@ -235,14 +202,29 @@ module ietf-tls-common { } } // hello-params-grouping - rpc generate-public-key { - if-feature "public-key-generation"; + // Protocol-accessible Nodes + + container supported-algorithms { + if-feature "algorithm-discovery"; + config false; description - "Requests the device to generate an public key using - the specified key algorithm."; + "A container for a list of cipher suite algorithms supported + by the server."; + leaf-list supported-algorithm { + type tlscsa:tls-cipher-suite-algorithm; + description + "A cipher suite algorithm supported by the server."; + } + } + + rpc generate-asymmetric-key-pair { + if-feature "asymmetric-key-pair-generation"; + description + "Requests the device to generate an asymmetric-key-pair + key using the specified key algorithm."; input { leaf algorithm { - type tlscsa:cipher-suite-algorithm-ref; + type tlscsa:tls-cipher-suite-algorithm; mandatory true; description "The cipher suite algorithm that the generated key is @@ -251,7 +233,7 @@ module ietf-tls-common { cipher suite 'tls-rsa-with-aes-256-cbc-sha256' maps to the RSA public key."; } - leaf bits { + leaf num-bits { type uint16; description "Specifies the number of bits in the key to create. @@ -259,54 +241,73 @@ module ietf-tls-common { the default is 3072 bits. Generally, 3072 bits is considered sufficient. DSA keys must be exactly 1024 bits as specified by FIPS 186-2. For elliptical - keys, the 'bits' value determines the key length + keys, the 'num-bits' value determines the key length of the curve (e.g., 256, 384 or 521), where valid values supported by the server are conveyed via an unspecified mechanism. For some public algorithms, - the keys have a fixed length and the 'bits' value, - if specified, will be ignored."; + the keys have a fixed length and thus the 'num-bits' + value is not specified."; } - choice private-key-encoding { - default cleartext; + container private-key-encoding { description - "A choice amongst optional private key handling."; - case cleartext { - if-feature "ct:cleartext-private-keys"; - leaf cleartext { - type empty; - description - "Indicates that the private key is to be returned - as a cleartext value."; + "Indicates how the private key is to be encoded."; + choice private-key-encoding { + mandatory true; + description + "A choice amongst optional private key handling."; + case cleartext { + if-feature "ct:cleartext-private-keys"; + leaf cleartext { + type empty; + description + "Indicates that the private key is to be returned + as a cleartext value."; + } } - } - case encrypt { - if-feature "ct:encrypted-private-keys"; - container encrypt-with { - description - "Indicates that the key is to be encrypted using - the specified symmetric or asymmetric key."; - uses ks:encrypted-by-choice-grouping; + case encrypted { + if-feature "ct:encrypted-private-keys"; + container encrypted { + description + "Indicates that the key is to be encrypted using + the specified symmetric or asymmetric key."; + uses ks:encrypted-by-grouping; + } } - } - case hide { - if-feature "ct:hidden-private-keys"; - leaf hide { - type empty; - description - "Indicates that the private key is to be hidden. - - Unlike the 'cleartext' and 'encrypt' options, the - key returned is a placeholder for an internally - stored key. See the 'Support for Built-in Keys' - section in RFC CCCC for information about hidden - keys."; + case hidden { + if-feature "ct:hidden-private-keys"; + leaf hidden { + type empty; + description + "Indicates that the private key is to be hidden. + + Unlike the 'cleartext' and 'encrypt' options, the + key returned is a placeholder for an internally + stored key. See the 'Support for Built-in Keys' + section in RFC CCCC for information about hidden + keys."; + } } } } } output { - uses ct:asymmetric-key-pair-grouping; + choice key-or-hidden { + case key { + uses ct:asymmetric-key-pair-grouping; + } + case hidden { + leaf location { + type instance-identifier; + description + "The location to where a hidden key was created."; + } + } + description + "The output can be either a key (for cleartext and + encrypted keys) or the location to where the key + was created (for hidden keys)."; + } } - } // end generate-public-key + } // end generate-asymmetric-key-pair } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tls-server@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tls-server@2024-03-16.yang similarity index 83% rename from experimental/ietf-extracted-YANG-modules/ietf-tls-server@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tls-server@2024-03-16.yang index 70db15024..b7586615a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tls-server@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tls-server@2024-03-16.yang @@ -40,13 +40,13 @@ module ietf-tls-server { "WG List: NETCONF WG list WG Web: https://datatracker.ietf.org/wg/netconf Author: Kent Watsen - Author: Jeff Hartley "; + Author: Jeff Hartley "; description "This module defines reusable groupings for TLS servers that can be used as a basis for specific TLS server instances. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -67,7 +67,7 @@ module ietf-tls-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -103,6 +103,7 @@ module ietf-tls-server { } feature server-ident-tls12-psk { + if-feature "tlscmn:tls12"; description "Indicates that the server supports identifying itself using TLS-1.2 PSKs (pre-shared or pairwise-symmetric keys)."; @@ -113,6 +114,7 @@ module ietf-tls-server { } feature server-ident-tls13-epsk { + if-feature "tlscmn:tls13"; description "Indicates that the server supports identifying itself using TLS-1.3 External PSKs (pre-shared keys)."; @@ -138,7 +140,6 @@ module ietf-tls-server { Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile"; } - feature client-auth-raw-public-key { description "Indicates that the server supports authenticating clients @@ -213,14 +214,15 @@ module ietf-tls-server { "ks:inline-or-keystore-end-entity-cert-with-key-" + "grouping" { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:subject-public-key-info-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format,' + ' "ct:subject-public-' + + 'key-info-format")'; } - refine "inline-or-keystore/keystore/keystore-reference" - + "/asymmetric-key" { - must 'derived-from-or-self(deref(.)/../ks:public-' - + 'key-format, "ct:subject-public-key-info-' - + 'format")'; + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference/asymmetric-key" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-key' + + '-format, "ct:subject-public-key-info-format")'; } } } @@ -233,14 +235,15 @@ module ietf-tls-server { private key."; uses ks:inline-or-keystore-asymmetric-key-grouping { refine "inline-or-keystore/inline/inline-definition" { - must 'derived-from-or-self(public-key-format,' - + ' "ct:subject-public-key-info-format")'; + must 'not(public-key-format) or derived-from-or-self' + + '(public-key-format,' + ' "ct:subject-public-' + + 'key-info-format")'; } - refine - "inline-or-keystore/keystore/keystore-reference" { - must 'derived-from-or-self(deref(.)/../ks:public-' - + 'key-format, "ct:subject-public-key-info-' - + 'format")'; + refine "inline-or-keystore/central-keystore/" + + "central-keystore-reference" { + must 'not(deref(.)/../ks:public-key-format) or ' + + 'derived-from-or-self(deref(.)/../ks:public-key' + + '-format, "ct:subject-public-key-info-format")'; } } } @@ -252,7 +255,7 @@ module ietf-tls-server { "Specifies the server identity using a PSK (pre-shared or pairwise-symmetric key)."; uses ks:inline-or-keystore-symmetric-key-grouping; - leaf id_hint { + leaf id-hint { type string; description "The key 'psk_identity_hint' value used in the TLS @@ -276,41 +279,39 @@ module ietf-tls-server { identity and the KDF hash algorithm to be used with the PSK MUST also be provisioned. - The structure of this container is designed - to satisfy the requirements of RFC 8446 - Section 4.2.11, the recommendations from - I-D ietf-tls-external-psk-guidance Section 6, - and the EPSK input fields detailed in - I-D draft-ietf-tls-external-psk-importer - Section 3.1. The base-key is based upon - ks:inline-or-keystore-symmetric-key-grouping + The structure of this container is designed to + satisfy the requirements of RFC 8446 Section + 4.2.11, the recommendations from Section 6 in + RFC 9257, and the EPSK input fields detailed in + Section 5.1 in RFC 9258. The base-key is based + upon ks:inline-or-keystore-symmetric-key-grouping in order to provide users with flexible and secure storage options."; reference "RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 - I-D.ietf-tls-external-psk-importer: Importing - External PSKs for TLS - I-D.ietf-tls-external-psk-guidance: Guidance - for External PSK Usage in TLS"; + RFC 9257: Guidance for External Pre-Shared Key + (PSK) Usage in TLS + RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; uses ks:inline-or-keystore-symmetric-key-grouping; leaf external-identity { type string; mandatory true; description "As per Section 4.2.11 of RFC 8446, and Section 4.1 - of I-D. ietf-tls-external-psk-guidance: A sequence - of bytes used to identify an EPSK. A label for a - pre-shared key established externally."; + of RFC 9257, a sequence of bytes used to identify + an EPSK. A label for a pre-shared key established + externally."; reference "RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 - I-D.ietf-tls-external-psk-guidance: - Guidance for External PSK Usage in TLS"; + RFC 9257: Guidance for External Pre-Shared Key + (PSK) Usage in TLS"; } leaf hash { type tlscmn:epsk-supported-hash; - mandatory true; + default sha-256; description "As per Section 4.2.11 of RFC 8446, for externally established PSKs, the Hash algorithm MUST be set @@ -326,41 +327,38 @@ module ietf-tls-server { leaf context { type string; description - "As per Section 4.1 of I-D. - ietf-tls-external-psk-guidance: Context - may include information about peer roles or - identities to mitigate Selfie-style reflection - attacks [Selfie]. If the EPSK is a key derived - from some other protocol or sequence of protocols, - context MUST include a channel binding for the - deriving protocols [RFC5056]. The details of - this binding are protocol specific."; + "Per Section 5.1 of RFC 9258, context MUST include + the context used to determine the EPSK, if + any exists. For example, context may include + information about peer roles or identities + to mitigate Selfie-style reflection attacks. + Since the EPSK is a key derived from an external + protocol or sequence of protocols, context MUST + include a channel binding for the deriving + protocols [RFC5056]. The details of this + binding are protocol specfic and out of scope + for this document."; reference - "I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS - I-D.ietf-tls-external-psk-guidance: - Guidance for External PSK Usage in TLS"; + "RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; } leaf target-protocol { type uint16; description - "As per Section 3.1 of I-D. - ietf-tls-external-psk-guidance: The protocol + "As per Section 3.1 of RFC 9258, the protocol for which a PSK is imported for use."; reference - "I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS"; + "RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; } leaf target-kdf { type uint16; description - "As per Section 3.1 of I-D. - ietf-tls-external-psk-guidance: The specific Key - Derivation Function (KDF) for which a PSK is - imported for use."; + "As per Section 3 of RFC 9258, the KDF for + which a PSK is imported for use."; reference - "I-D.ietf-tls-external-psk-importer: - Importing External PSKs for TLS"; + "RFC 9258: Importing External Pre-Shared Keys + (PSKs) for TLS 1.3"; } } } @@ -435,8 +433,8 @@ module ietf-tls-server { must 'derived-from-or-self(public-key-format,' + ' "ct:subject-public-key-info-format")'; } - refine "inline-or-truststore/truststore/truststore-" - + "reference" { + refine "inline-or-truststore/central-truststore/" + + "central-truststore-reference" { must 'not(deref(.)/../ts:public-key/ts:public-key-' + 'format[not(derived-from-or-self(., "ct:subject-' + 'public-key-info-format"))])'; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-topology-filter@2022-10-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-topology-filter@2024-02-20.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-topology-filter@2022-10-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-topology-filter@2024-02-20.yang index e69f50c91..c44482018 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-topology-filter@2022-10-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-topology-filter@2024-02-20.yang @@ -34,7 +34,7 @@ module ietf-topology-filter { Editor: Tarek Saad - + Editor: Rakesh Gandhi @@ -46,7 +46,7 @@ module ietf-topology-filter { "This YANG module defines data definitions for managing topology filters. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -59,7 +59,7 @@ module ietf-topology-filter { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2022-10-24 { + revision 2024-02-20 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tpm-remote-attestation@2022-05-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-tpm-remote-attestation@2022-05-17.yang index 3d03cff0c..89b1cfff8 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tpm-remote-attestation@2022-05-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tpm-remote-attestation@2022-05-17.yang @@ -22,7 +22,7 @@ module ietf-tpm-remote-attestation { "WG Web : WG List : Author : Eric Voit - Author : Henk Birkholz + Author : Henk Birkholz Author : Michael Eckel Author : Shwetha Bhandari Author : Bill Sulzen @@ -311,12 +311,33 @@ module ietf-tpm-remote-attestation { measurements. It is supplemented by unsigned Attester information."; uses node-uptime; - leaf TPM_QUOTE2 { + leaf pcr-data { type binary; description - "Result of a TPM1.2 Quote2 operation. This includes PCRs, - signatures, locality, the provided nonce and other data which - can be further parsed to appraise the Attester."; + "The value created and signed for the quote (type TPM_PCR_INFO_SHORT), + i.e., the 'pcrData' part of a TPM1.2 Quote2 operation result."; + reference + "TPM1.2-Commands: + TPM1.2 commands rev116 July 2007, Section 16.5 + https://trustedcomputinggroup.org/wp-content/uploads + /TPM-Main-Part-3-Commands_v1.2_rev116_01032011.pdf"; + } + leaf version-info { + type binary; + description + "The version info (type TPM_CAP_VERSION_INFO), + i.e., the 'versionInfo' part of a TPM1.2 Quote2 operation result."; + reference + "TPM1.2-Commands: + TPM1.2 commands rev116 July 2007, Section 16.5 + https://trustedcomputinggroup.org/wp-content/uploads + /TPM-Main-Part-3-Commands_v1.2_rev116_01032011.pdf"; + } + leaf sig { + type binary; + description + "The signed data blob, i.e., the signature + i.e., the 'sig' part of a TPM1.2 Quote2 operation result."; reference "TPM1.2-Commands: TPM1.2 commands rev116 July 2007, Section 16.5 @@ -330,12 +351,12 @@ module ietf-tpm-remote-attestation { "Contains an instance of TPM2 style signed cryptoprocessor measurements. It is supplemented by unsigned Attester information."; - leaf TPMS_QUOTE_INFO { + leaf quote-data { type binary; mandatory true; description "A hash of the latest PCR values (and the hash algorithm used) - which have been returned from a Verifier for the selected PCRs + which have been returned from an Attester for the selected PCRs and Hash Algorithms."; reference "TPM2.0-Structures: @@ -696,7 +717,7 @@ module ietf-tpm-remote-attestation { list tpm20-attestation-response { unique "certificate-name"; description - "The binary output of TPM2b_Quote from one TPM of the + "The binary output of TPM2_Quote from one TPM of the node which identified by node-id. An TPMS_ATTEST structure including a length, encapsulated in a signature"; uses certificate-name-ref { @@ -1004,6 +1025,7 @@ module ietf-tpm-remote-attestation { associated within key within a TPM."; } leaf keystore-ref { + if-feature "ks:central-keystore-supported"; if-feature "ks:asymmetric-keys"; type leafref { path "/ks:keystore/ks:asymmetric-keys/ks:asymmetric-key" diff --git a/experimental/ietf-extracted-YANG-modules/ietf-traffic-analyzer@2023-10-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-traffic-analyzer@2024-03-04.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-traffic-analyzer@2023-10-22.yang rename to experimental/ietf-extracted-YANG-modules/ietf-traffic-analyzer@2024-03-04.yang index e5cbdca23..cbb09b95d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-traffic-analyzer@2023-10-22.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-traffic-analyzer@2024-03-04.yang @@ -26,7 +26,7 @@ module ietf-traffic-analyzer { "This module contains a collection of YANG definitions for description and management of network interconnect testers. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -39,7 +39,7 @@ module ietf-traffic-analyzer { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-10-22 { + revision 2024-03-04 { description "Initial revision."; reference @@ -47,13 +47,12 @@ module ietf-traffic-analyzer { Network Tester Management"; } - feature filter { + feature testframe-filter { description "This feature indicates that the device implements filter that can specify a subset of packets to be - analyzed when filtering is enabled."; + analyzed as testframes."; } - feature idle-octets-counter { description "This feature indicates that the device implements @@ -67,15 +66,15 @@ module ietf-traffic-analyzer { packet capture functionality."; } - identity filter { + identity testframe-filter { description - "Base filter identity."; + "Base testframe-filter identity."; } - identity ethernet { - base ntta:filter; + identity bit-field-match { + base ntta:testframe-filter; description - "Ethernet packet fields filter."; + "Bit field matching filter according to template data and mask."; } grouping statistics-data { @@ -112,18 +111,18 @@ module ietf-traffic-analyzer { } container testframe-stats { description - "Statistics for testframe packets containing + "Statistics for received testframes containing either sequence number, payload checksum, timestamp or any combination of these features."; - leaf testframe-pkts { + leaf pkts { type yang:counter64; description - "Total count of detected testframe packets."; + "Total count of detected testframes."; } leaf sequence-errors { type yang:counter64; description - "Total count of testframe packets with + "Total count of testframes with unexpected sequence number. After each sequence error the expected next sequence number is updated."; @@ -131,7 +130,7 @@ module ietf-traffic-analyzer { leaf payload-errors { type yang:counter64; description - "Total count of testframe packets with + "Total count of testframes with payload errors."; } container latency { @@ -205,7 +204,7 @@ module ietf-traffic-analyzer { leaf testframe-index { type uint64; description - "Starts capture as specified testframe index."; + "Starts capture at specified testframe index."; } } } @@ -280,8 +279,8 @@ module ietf-traffic-analyzer { "Grouping with a filter container specifying the filtering rules for processing only a specific subset of the frames."; - container filter { - if-feature "filter"; + container testframe-filter { + if-feature "testframe-filter"; presence "When present packets are filtered before analyzed according to the filter type"; @@ -290,7 +289,7 @@ module ietf-traffic-analyzer { a specific subset of the frames."; leaf type { type identityref { - base ntta:filter; + base ntta:testframe-filter; } mandatory true; description @@ -299,6 +298,7 @@ module ietf-traffic-analyzer { } } } + augment "/if:interfaces/if:interface" { description "Traffic analyzer augmentations of ietf-interfaces."; @@ -319,17 +319,24 @@ module ietf-traffic-analyzer { } augment "/if:interfaces/if:interface/ntta:traffic-analyzer/" - + "ntta:filter" { - when "derived-from-or-self(ntta:type, 'ntta:ethernet')"; + + "ntta:testframe-filter" { + when "derived-from-or-self(ntta:type, 'ntta:bit-field-match')"; description - "Ethernet frame specific filter type."; - leaf ether-type { - type uint16; + "Logical AND of masked bit fields."; + leaf mask { + type string { + pattern '([0-9A-F]{2})*'; + } + description + "Specifies bit field mask for comparison. + Non-masked bit fields are ignored."; + } + leaf data { + type string { + pattern '([0-9A-F]{2})*'; + } description - "The Ethernet Type (or Length) value - defined by IEEE 802."; - reference - "IEEE 802-2014 Clause 9.2"; + "Specify data to be matched according to the specified mask."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-traffic-generator@2023-10-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-traffic-generator@2024-03-04.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-traffic-generator@2023-10-22.yang rename to experimental/ietf-extracted-YANG-modules/ietf-traffic-generator@2024-03-04.yang index ac1263766..206499e92 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-traffic-generator@2023-10-22.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-traffic-generator@2024-03-04.yang @@ -26,7 +26,7 @@ module ietf-traffic-generator { "This module contains a collection of YANG definitions for description and management of network interconnect testers. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -39,7 +39,7 @@ module ietf-traffic-generator { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-10-22 { + revision 2024-03-04 { description "Initial revision."; reference @@ -166,13 +166,19 @@ module ietf-traffic-generator { type string { pattern '([0-9A-F]{2})*'; } - must 'string-length(.)<=(../frame-size*2)'; description "The raw frame data specified as hexadecimal string. - The specified data can be shorter then the ../frame-size - value specifying only the header or the header and the + The string length of the specified data can be + shorter then the 2*../frame-size value + specifying only the header or the header and the payload with or without the 4 byte CRC Checksum - in the case of a Ethernet frame."; + in the case of a Ethernet frame. If the frame data string + specified is longer then ../frame-size*2 the excess + of the specified frame data is trunkated. + + In multi-stream mode if frame-data leaf for one of the + streams is not specified, it is the value specified for + the closest stream that precedes it that is used."; } leaf interframe-gap { type uint32; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-traffic-map@2022-10-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-traffic-map@2024-03-04.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-traffic-map@2022-10-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-traffic-map@2024-03-04.yang index 3a7df2609..058dc23ff 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-traffic-map@2022-10-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-traffic-map@2024-03-04.yang @@ -79,7 +79,7 @@ module ietf-traffic-map { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2022-10-24 { + revision 2024-03-04 { description "initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-traffic-policy@2023-07-20.yang b/experimental/ietf-extracted-YANG-modules/ietf-traffic-policy@2024-01-31.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-traffic-policy@2023-07-20.yang rename to experimental/ietf-extracted-YANG-modules/ietf-traffic-policy@2024-01-31.yang index ea5b76fc9..9c9538b23 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-traffic-policy@2023-07-20.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-traffic-policy@2024-01-31.yang @@ -41,7 +41,7 @@ module ietf-traffic-policy { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-07-20 { + revision 2024-01-31 { description "Initial version."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang new file mode 100644 index 000000000..4742f5c09 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service-path-computation@2024-07-07.yang @@ -0,0 +1,494 @@ +module ietf-trans-client-service-path-computation { + /* TODO: FIXME */ + yang-version 1.1; + + namespace "urn:ietf:params:xml:ns:yang:ietf-trans-client-service-path-computation"; + prefix "clntsvc-cpt"; + + import ietf-trans-client-service { + prefix "clntsvc"; + reference "draft-ietf-ccamp-client-signal-yang"; + } + + import ietf-te-types { + prefix "te-types"; + reference "RFC 8776 - Traffic Engineering Common YANG Types"; + } + + import ietf-yang-types { + prefix "yang"; + reference "RFC 6991 - Common YANG Data Types"; + } + + import ietf-layer1-types { + prefix l1-types; + reference "RFC ZZZZ - A YANG Data Model for Layer 1 Types"; + } + + import ietf-layer0-types { + prefix l0-types; + } + + import ietf-te { + prefix "te"; + } + + organization + "Internet Engineering Task Force (IETF) CCAMP WG"; + contact + " + ID-draft editor: + Chaode Yu (yuchaode@huawei.com); + Sergio Belotti (sergio.belotti@nokia.com); + Italo Busi (italo.busi@huawei.com); + Aihua Guo (aihuaguo.ietf@gmail.com); + Dieter Beller (dieter.beller@nokia.com); + "; + + 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 2024-07-07 { + description + "initial version"; + reference + "draft-ybb-ccamp-service-path-computation"; + } + + container path-management { + list path { + key path-id; + + leaf path-id { + type yang:uuid; + } + + leaf creation-time { + type yang:date-and-time; + } + + leaf validity-period { + type uint8; + units "minute"; + } + + container underlay-tunnels { + list underlay-tunnel { + key index; + + leaf index { + description + "The tunnels underlay should be ordered by their + supproting relationship. The client layer tunnels + should use smaller index."; + type uint8; + } + + leaf tunnel-name { + type leafref { + path "/te:te/te:tunnels/te:tunnel/te:name"; + } + + description + "the computed result can route with some existing + TE tunnels. The tunnel-name is the identifier of + tunnel. If the tunnel is not created, this + parameter is not needed to provide."; + } + + uses te-types:te-topology-identifier; + + list computed-lsp { + key lsp-id; + leaf lsp-id { + type uint8; + } + + leaf lsp-type { + type enumeration { + enum forwarding-working; + enum forwarding-protection; + enum reverse-working; + enum reverse-protection; + } + } + + container lsp-metrics { + list lsp-metric { + key metric-type; + + leaf metric-type { + type identityref { + base te-types:path-metric-type; + } + } + + leaf metric-value { + type uint32; + } + + leaf metric-unit { + type string; + } + } + } + list lsp-route-objects { + key index; + + leaf index { + type uint8; + } + + uses hop-infomation; + + leaf server-tunnel { + type leafref { + path "../../../index"; + } + } + } + } + } + } + } + } + + rpc client-service-precompute { + input { + list request { + key "request-id"; + + leaf request-id { + type string; + } + + leaf path-count { + type uint8 { + range "1..10"; + } + } + + uses te-types:te-topology-identifier; + + container src-access-ports { + description + "Source access port of a client service."; + uses clntsvc:client-svc-access-parameters; + } + + container dst-access-ports { + description + "Destination access port of a client service."; + uses clntsvc:client-svc-access-parameters; + } + + uses tunnel-policy-grouping; + uses path-constraints; + } + } + output { + list result { + key "request-id"; + + leaf request-id { + type string; + } + + leaf result-code { + type enumeration { + enum success { + } + enum failure { + } + } + } + choice result-detail { + case failure { + uses failure-info-grouping; + } + + case success { + list computed-paths { + key path-id; + + leaf path-id { + type yang:uuid; + } + + leaf path-number { + type uint8; + description + "when the client requestes to compute multiple paths + for a service, this path-number can be used to rank + the path result, based on the path computation + policy. The path-number starts with 0 and 0 + indicates the best option. The better path's + path-number should be in lower number."; + } + } + + uses te-types:te-topology-identifier; + container src-access-ports { + description + "Source access port of a client service."; + uses clntsvc:client-svc-access-parameters; + } + + container dst-access-ports { + description + "Destination access port of a client service."; + uses clntsvc:client-svc-access-parameters; + } + + container underlay-tunnels { + list underlay-tunnel { + key index; + + description + "The server could support all the layers of tunnels + under the client signal service. If it cannot + support that, it should return its topmost layer + tunnel's path infomation"; + + leaf index { + description + "The tunnels underlay should be ordered by their + supproting relationship. The client layer tunnels + should use smaller index."; + type uint8; + } + + leaf tunnel-name { + type leafref { + path "/te:te/te:tunnels/te:tunnel/te:name"; + } + + description + "the computed result can route with some existing + TE tunnels. The tunnel-name is the identifier of + tunnel. If the tunnel is not created, this + parameter is not needed to provide."; + } + + uses te-types:te-topology-identifier; + + list computed-lsp { + key lsp-id; + + leaf lsp-id { + type uint8; + } + + leaf lsp-type { + type enumeration { + enum forwarding-working; + enum forwarding-protection; + enum reverse-working; + enum reverse-protection; + } + } + + container lsp-metrics { + list lsp-metric { + key metric-type; + + leaf metric-type { + type identityref { + base te-types:path-metric-type; + } + } + + leaf metric-value { + type uint32; + } + + leaf metric-unit { + type string; + } + } + } + + list lsp-route-objects { + key index; + + leaf index { + type uint8; + } + + uses hop-infomation; + + leaf server-tunnel { + type leafref { + path "../../../index"; + } + } + } + } + + } + } + } + } + } + } + } + + grouping hop-infomation { + leaf node-id { + type te-types:te-node-id; + description + "The identifier of a node in the TE topology."; + } + + leaf node-uri-id { + type yang:uuid; + description + "Another identifier of TE node. This uuid of node may be acquired by inventory."; + } + + leaf link-tp-id { + type te-types:te-tp-id; + description + "TE link termination point identifier, used + together with te-node-id to identify the + link termination point"; + } + + leaf ltp-uri-id { + type yang:uuid; + description + "another identifier of link TP. This uuid of TP may be acquired by inventory."; + } + + container te-label { + description + "Container that specifies TE label."; + choice technology { + description + "Data plane technology type."; + case wson { + uses l0-types:wson-label-hop; + } + case otn { + uses l1-types:otn-label-hop; + } + } + leaf direction { + type te-types:te-label-direction; + description "Label direction"; + } + } + + } + + grouping tunnel-policy-grouping { + description "Tunnel creation policy which can be also inherited by client service."; + container tunnel-policy { + uses te:protection-restoration-properties; + + leaf share-timeslot { + type boolean; + } + + uses path-policy; + } + } + + grouping failure-info-grouping { + leaf failure-reason { + type uint32; + } + leaf error-message { + type string; + } + } + + grouping path-constraints { + description ""; + + container explicit-route-exclude-objects { + list route-object-exclude-object { + key index; + uses hop-include-or-exclude-grouping; + } + } + + container explicit-route-include-objects { + list route-object-include-object { + key index; + uses hop-include-or-exclude-grouping; + } + } + } + + grouping hop-include-or-exclude-grouping { + leaf index { + type uint8; + } + + uses hop-infomation; + leaf server-tunnel-name { + type leafref { + path "/te:te/te:tunnels/te:tunnel/te:name"; + } + } + + leaf lsp-type { + type enumeration { + enum all-paths; + enum forwarding-working; + enum forwarding-protection; + enum reverse-working; + enum reverse-protection; + } + } + } + + grouping path-policy { + container optimizations { + choice algorithm { + case metric { + list optimization-metric { + key "metric-type"; + leaf metric-type { + type identityref { + base te-types:path-metric-type; + } + description "TE path metric type"; + } + leaf weight { + type uint8; + description "TE path metric normalization weight"; + } + } + } + } + + leaf lsp-type { + type enumeration { + enum all-paths; + enum forwarding-working; + enum forwarding-protection; + enum reverse-working; + enum reverse-protection; + } + } + + uses te-types:generic-path-metric-bounds; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2023-12-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2023-12-15.yang deleted file mode 100644 index 513ce26ea..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2023-12-15.yang +++ /dev/null @@ -1,311 +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 (asnizar@cisco.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.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-12-15 { - 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/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang new file mode 100644 index 000000000..4398a689a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-service@2024-01-11.yang @@ -0,0 +1,337 @@ +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/experimental/ietf-extracted-YANG-modules/ietf-trans-client-svc-types@2023-12-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-svc-types@2023-12-15.yang deleted file mode 100644 index d96f2ce36..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-trans-client-svc-types@2023-12-15.yang +++ /dev/null @@ -1,59 +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 (asnizar@cisco.com); - Francesco Lazzeri (francesco.lazzeri@ericsson.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-12-15 { - 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/experimental/ietf-extracted-YANG-modules/ietf-trans-client-svc-types@2024-01-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-trans-client-svc-types@2024-01-11.yang new file mode 100644 index 000000000..dd40c9a81 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/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/experimental/ietf-extracted-YANG-modules/ietf-truststore@2023-04-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-truststore@2024-03-16.yang similarity index 70% rename from experimental/ietf-extracted-YANG-modules/ietf-truststore@2023-04-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-truststore@2024-03-16.yang index cd0d875f1..2e156f3ab 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-truststore@2023-04-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-truststore@2024-03-16.yang @@ -22,11 +22,12 @@ module ietf-truststore { "WG Web : https://datatracker.ietf.org/wg/netconf WG List : NETCONF WG list Author : Kent Watsen "; + description "This module defines a 'truststore' to centralize management of trust anchors including certificates and public keys. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -47,7 +48,7 @@ module ietf-truststore { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-04-17 { + revision 2024-03-16 { description "Initial version"; reference @@ -70,6 +71,7 @@ module ietf-truststore { "The 'inline-definitions-supported' feature indicates that the server supports locally-defined trust anchors."; } + feature certificates { description "The 'certificates' feature indicates that the server @@ -86,68 +88,120 @@ module ietf-truststore { /* Typedefs */ /****************/ - typedef certificate-bag-ref { + typedef central-certificate-bag-ref { type leafref { path "/ts:truststore/ts:certificate-bags/" + "ts:certificate-bag/ts:name"; } description "This typedef defines a reference to a certificate bag - in the truststore, when this module is implemented."; + in the central truststore."; } - typedef certificate-ref { + typedef central-certificate-ref { type leafref { path "/ts:truststore/ts:certificate-bags/ts:certificate-bag" - + "[ts:name = current()/../ts:certificate-bag]/" + + "[ts:name = current()/../certificate-bag]/" + "ts:certificate/ts:name"; } description "This typedef defines a reference to a specific certificate - in a certificate bag in the truststore, when this module - is implemented. This typedef requires that there exist a - sibling 'leaf' node called 'certificate-bag' that SHOULD - have the typedef 'certificate-bag-ref'."; + in a certificate bag in the central truststore. This typedef + requires that there exist a sibling 'leaf' node called + 'certificate-bag' that SHOULD have the typedef + 'central-certificate-bag-ref'."; } - typedef public-key-bag-ref { + typedef central-public-key-bag-ref { type leafref { path "/ts:truststore/ts:public-key-bags/" + "ts:public-key-bag/ts:name"; } description "This typedef defines a reference to a public key bag - in the truststore, when this module is implemented."; + in the central truststore."; } - typedef public-key-ref { + typedef central-public-key-ref { type leafref { path "/ts:truststore/ts:public-key-bags/ts:public-key-bag" - + "[ts:name = current()/../ts:public-key-bag]/" + + "[ts:name = current()/../public-key-bag]/" + "ts:public-key/ts:name"; } description "This typedef defines a reference to a specific public key - in a public key bag in the truststore, when this module is - implemented. This typedef requires that there exist a - sibling 'leaf' node called 'public-key-bag' that SHOULD - have the typedef 'public-key-bag-ref'."; + in a public key bag in the truststore. This typedef + requires that there exist a sibling 'leaf' node called + 'public-key-bag' that SHOULD have the typedef + 'central-public-key-bag-ref'."; } /*****************/ /* Groupings */ /*****************/ + // *-ref groupings + + grouping central-certificate-ref-grouping { + description + "Grouping for the reference to a certificate in a + certificate-bag in the central truststore."; + leaf certificate-bag { + nacm:default-deny-write; + if-feature "central-truststore-supported"; + if-feature "certificates"; + type ts:central-certificate-bag-ref; + must "../certificate"; + description + "Reference to a certificate-bag in the truststore."; + } + leaf certificate { + nacm:default-deny-write; + if-feature "central-truststore-supported"; + if-feature "certificates"; + type ts:central-certificate-ref; + must "../certificate-bag"; + description + "Reference to a specific certificate in the + referenced certificate-bag."; + } + } + + grouping central-public-key-ref-grouping { + description + "Grouping for the reference to a public key in a + public-key-bag in the central truststore."; + leaf public-key-bag { + nacm:default-deny-write; + if-feature "central-truststore-supported"; + if-feature "public-keys"; + type ts:central-public-key-bag-ref; + description + "Reference of a public key bag in the truststore including + the certificate to authenticate the TLS client."; + } + leaf public-key { + nacm:default-deny-write; + if-feature "central-truststore-supported"; + if-feature "public-keys"; + type ts:central-public-key-ref; + description + "Reference to a specific public key in the + referenced public-key-bag."; + } + } + + // inline-or-truststore-* groupings + grouping inline-or-truststore-certs-grouping { description - "A grouping that allows the certificates to be either - configured locally, within the using data model, or be a - reference to a certificate bag stored in the truststore. + "A grouping for the configuration of a list of certificates. + The list of certificate may be defined inline or as a + reference to a certificate bag in the central truststore. - Servers that do not 'implement' this module, and hence - 'central-truststore-supported' is not defined, SHOULD - augment in custom 'case' statements enabling references - to the alternate truststore locations."; + Servers that wish to define alternate truststore locations + MUST augment in custom 'case' statements enabling + references to those alternate truststore locations."; choice inline-or-truststore { nacm:default-deny-write; mandatory true; @@ -164,7 +218,7 @@ module ietf-truststore { key "name"; min-elements 1; description - "A trust anchor certificate."; + "A trust anchor certificate or chain of certificates."; leaf name { type string; description @@ -178,14 +232,14 @@ module ietf-truststore { } } } - case truststore { + case central-truststore { if-feature "central-truststore-supported"; if-feature "certificates"; - leaf truststore-reference { - type ts:certificate-bag-ref; + leaf central-truststore-reference { + type ts:central-certificate-bag-ref; description "A reference to a certificate bag that exists in the - truststore, when this module is implemented."; + central truststore."; } } } @@ -197,10 +251,9 @@ module ietf-truststore { configured locally, within the using data model, or be a reference to a public key bag stored in the truststore. - Servers that do not 'implement' this module, and hence - 'central-truststore-supported' is not defined, SHOULD - augment in custom 'case' statements enabling references - to the alternate truststore locations."; + Servers that wish to define alternate truststore locations + SHOULD augment in custom 'case' statements enabling + references to those alternate truststore locations."; choice inline-or-truststore { nacm:default-deny-write; mandatory true; @@ -225,19 +278,21 @@ module ietf-truststore { } } } - case truststore { + case central-truststore { if-feature "central-truststore-supported"; if-feature "public-keys"; - leaf truststore-reference { - type ts:public-key-bag-ref; + leaf central-truststore-reference { + type ts:central-public-key-bag-ref; description "A reference to a bag of public keys that exists - in the truststore, when this module is implemented."; + in the central truststore."; } } } } + // the truststore grouping + grouping truststore-grouping { description "A grouping definition that enables use in other contexts. @@ -253,7 +308,7 @@ module ietf-truststore { list certificate-bag { key "name"; description - "A bag of certificates. Each bag of certificates SHOULD + "A bag of certificates. Each bag of certificates should be for a specific purpose. For instance, one bag could be used to authenticate a specific set of servers, while another could be used to authenticate a specific set of @@ -272,7 +327,7 @@ module ietf-truststore { list certificate { key "name"; description - "A trust anchor certificate."; + "A trust anchor certificate or chain of certificates."; leaf name { type string; description @@ -307,7 +362,7 @@ module ietf-truststore { type string; description "A description for this bag public keys. The - intended purpose for the bag SHOULD be described."; + intended purpose for the bag MUST be described."; } list public-key { key "name"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tvr-bundle-schedule@2023-07-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-tvr-bundle-schedule@2024-07-06.yang similarity index 69% rename from experimental/ietf-extracted-YANG-modules/ietf-tvr-bundle-schedule@2023-07-05.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tvr-bundle-schedule@2024-07-06.yang index c16b9343e..2c0dfd211 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tvr-bundle-schedule@2023-07-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tvr-bundle-schedule@2024-07-06.yang @@ -7,7 +7,10 @@ module ietf-tvr-bundle-schedule { prefix bundle; } import ietf-tvr-schedule { - prefix tvr-schedule; + prefix tvr-schd; + } + import ietf-yang-types { + prefix yang; } organization @@ -22,15 +25,14 @@ module ietf-tvr-bundle-schedule { Author: Leigh Jordan Torgerson "; - description "The YANG module defines an augmentation to the Bundle - protocol YANG mode. + protocol YANG model. This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -43,33 +45,49 @@ module ietf-tvr-bundle-schedule { This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; reference - "RFC XXXX: Contact Plan Yang Model for Time-Variant Routing of the Bundle Protocol"; + "RFC XXXX: Contact Plan YANG Model for Time-Variant Routing of + the Bundle Protocol"; - revision 2023-07-05 { + revision 2024-07-06 { description "Initial Version"; reference - "RFC XXXX: Contact Plan Yang Model for Time-Variant Routing of the Bundle Protocol."; + "RFC XXXX: Contact Plan YANG Model for Time-Variant Routing + of the Bundle Protocol."; } augment "/bundle:node/bundle:neighbors/bundle:neighbor" { container contact-schedule { description "Augment Bundle node neighbor with a contact schedule."; - uses tvr-schedule:schedule; + + uses tvr-schd:tvr-schedule { + augment "schedules/attr-value" { + description + "Augment the power state within each period."; + leaf bandwidth { + type yang:gauge64; + units "bits/second"; + description + "An estimate of the convergence layer bandwidth + in bits per second during the scheduled time."; + } + } + } + leaf bandwidth { type yang:gauge64; units "bits/second"; + default "0"; description - "An estimate of the convergence layer current bandwidth in bits - per second"; + "The convergence layer default bandwidth in bits + per second."; } } description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tvr-node@2023-10-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-tvr-node@2024-07-22.yang similarity index 54% rename from experimental/ietf-extracted-YANG-modules/ietf-tvr-node@2023-10-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tvr-node@2024-07-22.yang index 24d168dea..97fc99fd3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tvr-node@2023-10-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tvr-node@2024-07-22.yang @@ -5,6 +5,8 @@ module ietf-tvr-node { import ietf-yang-types { prefix "yang"; + reference + "RFC 6991: Common YANG Data Types"; } import ietf-tvr-schedule { @@ -29,13 +31,13 @@ module ietf-tvr-node { "; description - "The YANG module defines a schedule for changing - attributes of a single node. + "The YANG module is to configure and manage node attributes + with schedules. This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -47,17 +49,12 @@ module ietf-tvr-node { 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. + 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."; reference "RFC XXXX: YANG Data Model for Scheduled Attributes"; - revision 2023-10-11 { + revision 2024-07-22 { description "Initial Version"; reference @@ -66,39 +63,35 @@ module ietf-tvr-node { container node-schedule { description - "This container defined time variant attributes - for node's schedule."; + "This container defines a node's time variant attributes + with schedules."; - leaf router-id { + leaf node-id { type yang:dotted-quad; description - "A 32-bit number used to identify a router."; + "A 32-bit number used to identify a node."; } - list power-schedule { - key "start-date-time"; + container node-power-schedule { description "Power schedule for the node. The node's power is represented by a boolean value with 'true' indicating the node is powered on and 'false' indicating the node is powered off."; - uses tvr-schd:schedule { - augment value-default { - description - "Augment the default power state."; - leaf default-power { - type boolean; - default false; - description - "This indicates the default node power when for - time periods when no interval is defined. If - unspecified, the node is powered down by default."; - } - } - augment base-schedule/intervals/value { + + leaf power-default { + type boolean; + default false; + description + "This indicates the default node power for the time + periods when no specific power value is specified. If + unspecified, the node is powered down by default."; + } + uses tvr-schd:tvr-schedule { + augment "schedules/attr-value" { description - "Augmment the scheduled power state."; - leaf power { + "Augment the power state within each period."; + leaf power-state { type boolean; description "Indicates whether the node is powered on."; @@ -116,38 +109,56 @@ module ietf-tvr-node { description "List of interface with schedules."; leaf name { - type string; + type union { + type yang:xpath1.0; + type string; + } description "Name of the interface. - If used with the ietf-interfaces module, the name should - match the name of the interface."; + If used with the ietf-interfaces module, the xpath name + is to identify the interface."; + } + leaf default-available { + type boolean; + default false; + description + "By default, the link is not available."; + } + leaf default-bandwidth { + type yang:gauge64; + units "bits/second"; + default "0"; + description + "The default interface bandwidth in bits + per second"; } - list up-down-schedule { - key "start-date-time"; + container attribute-schedule { description - "Scheduled times that the interface is up. This is to - work with the leaf 'enabled' for the configured state - of the interface."; + "Interface attributes with schedules."; - uses tvr-schd:schedule { - augment value-default { + uses tvr-schd:tvr-schedule { + augment "schedules/attr-value" { description - "Augment default interface state."; - leaf default-available { + "Augment scheduled interface state."; + leaf available { type boolean; - default false; description - "By default, the link is not available."; + "Scheduled interface power state. This is to + work with the leaf 'enabled' for the configured + state of the interface."; } - } - augment base-schedule/intervals/value { - description - "Augment scheduled interface state."; - leaf availble { - type boolean; + leaf bandwidth { + type yang:gauge64; + units "bits/second"; + description + "The scheduled bandwidth in bits per second"; + } + leaf neighbor { + type yang:dotted-quad; description - "Link availability."; + "The node expected to be this interface's neighbor + during this time."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tvr-schedule@2023-10-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-tvr-schedule@2023-10-11.yang deleted file mode 100644 index df6ceac55..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-tvr-schedule@2023-10-11.yang +++ /dev/null @@ -1,238 +0,0 @@ -module ietf-tvr-schedule { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-tvr-schedule"; - prefix tvr-schd; - - import ietf-yang-types { - prefix "yang"; - reference - "RFC 6991: Common YANG Data Types"; - } - - organization - "IETF TVR - Time Variant Routing Working Group"; - contact - "WG Web: - WG List: - - Author: Yingzhen Qu - - Author: Acee Lindem - - Author: Marc Blanchet - - Author: Eric Kinzie - - Author: Don Fedyk - "; - - description - "The YANG module contains common YANG definitions for - time-variant schedule. - - This YANG model conforms to the Network Management - Datastore Architecture (NMDA) as described in RFC 8342. - - Copyright (c) 2023 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Revised BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself - for full legal notices. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here."; - reference - "RFC XXXX: YANG Data Model for Scheduled Attributes"; - - revision 2023-10-11 { - description - "Initial Version"; - reference - "RFC XXXX: YANG Data Model for Scheduled Attributes."; - } - - typedef recurrence-type { - type enumeration { - enum once { - description - "Repeat the scheduled action or attribute modificaton - only once"; - } - enum hourly { - description - "Repeat the scheduled action or attribute modificaiton - once per hour."; - } - enum daily { - description - "Repeat the scheduled action or attribute modificaiton - once per day."; - } - enum weekly { - description - "Repeat the scheduled action or attribute modificaiton - once per week."; - } - enum monthly { - description - "Repeat the scheduled action or attribute modificaiton - once per week."; - } - enum yearly { - description - "Repeat the scheduled action or attribute modificaiton - once per year."; - } - } - description - "Types of recurrence"; - } - - grouping schedule-lifetime { - description - "Schedule lifetime specification."; - leaf start-date-time { - type yang:date-and-time; - description - "Start time of the schedule."; - } - choice end-time { - default "infinite"; - description - "End-time setting."; - case infinite { - leaf no-end-time { - type empty; - description - "Indicates schedule lifetime end-time is infinite."; - } - } - case duration { - leaf duration { - type uint32 { - range "1..2147483646"; - } - units "seconds"; - description - "Schedule lifetime duration, in seconds"; - } - } - case end-date-time { - leaf end-date-time { - type yang:date-and-time; - description - "End time."; - } - } - } - } - - grouping base-schedule { - leaf recurrence { - type recurrence-type; - default "once"; - description - "Type of recurrence"; - } - - container value-default { - description - "Attributes default values. This container should be - augmented with one or more leafs, each of which is used - when the value is not covered by a base-schedule interval, - as well as when the schedule ends."; - } - - container base-schedule { - list intervals { - key "start-time"; - leaf start-time { - type yang:timeticks; - must "((../../../recurrence != 'hourly') or " - + "(current() < 360000)) and " - + "((../../../recurrence != 'daily') or " - + "(current() < 8640000)) and " - + "((../../../recurrence != 'monthly') or " - + "(current() < 267840000)) and " - + "((../../../recurrence != 'yearly') or " - + "(current() < 3162240000))" { - error-message - "The start-time must not exceed the recurrence - interval"; - description - "The start-time must not exceed the recurrrence - interval. For example, for a 'monthy' recurrence, the - start-time must not exceed 31 days."; - } - description - "Start time of the scheduled value within one recurrence. - The calculation of the real start time is to use - the basestarting time defined by schedule-lifetime, - recurrence, and the timeticks. For example, if a - schedule starts at 2001/1/1 8:00AM with an hourly - recurrence, and the timeticks is 180,000 (30 mins), - the start-time will be every 30 mins pass an hour - after 2001/1/1."; - } - leaf end-time { - type yang:timeticks; - must "(current() > ../start-time) and " - + "((../../../recurrence != 'hourly') or " - + "(current() < (../start-time + 360000))) and " - + "((../../../recurrence != 'daily') or " - + "(current() < (../start-time + 8640000))) and " - + "((../../../recurrence != 'monthly') or " - + "(current() < (../start-time + 267840000))) and " - + "((../../../recurrence != 'yearly') or " - + "(current() < (../start-time + 3162240000)))" { - error-message - "The end-time must be greater than the end time and - must not exceed the recurrrence interval."; - description - "The end-time must be greater than the end time and - must not exceed the recurrrence interval. For example, - for a 'daily' recurrence, the time-tick offset must - not exceed the start-time + 24 hours."; - } - description - "End time of the scheduled change. The calculation of the - end-time is the same as the start-time."; - } - container value { - description - "Attribute value(s). This container should be augmented - with attributes that apply to the current interval."; - } - description - "List of intervals for action or attribute modification. - The intervals should be contained within each recurrence. - For example, when the recurrence is set to daily, the list - of intervals should be within this daily range, e.g., the - last end-time can't be larger than 8640000 (24hours)."; - } - description - "The recurring base-schedule of the action or attribute - modification"; - } - description - "Grouping definition of base-schedule."; - } - - grouping schedule { - uses schedule-lifetime; - uses base-schedule; - description - "Complete schedule for a action or attribute modification."; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tvr-schedule@2024-07-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-tvr-schedule@2024-07-05.yang new file mode 100644 index 000000000..ff8a064a1 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-tvr-schedule@2024-07-05.yang @@ -0,0 +1,96 @@ +module ietf-tvr-schedule { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-tvr-schedule"; + prefix tvr-schd; + + import ietf-schedule { + prefix "schedule"; + reference + "RFC XXXX: A Common YANG Data Model for Scheduling"; + } + + organization + "IETF TVR - Time Variant Routing Working Group"; + contact + "WG Web: + WG List: + + Author: Yingzhen Qu + + Author: Acee Lindem + + Author: Marc Blanchet + + Author: Eric Kinzie + + Author: Don Fedyk + "; + + description + "The YANG module contains common YANG definitions for + time-variant schedule. + + This YANG model conforms to the Network Management + Datastore Architecture (NMDA) as described in RFC 8342. + + 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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices."; + + reference + "RFC XXXX: YANG Data Model for Scheduled Attributes"; + + revision 2024-07-05 { + description + "Initial Version"; + reference + "RFC XXXX: YANG Data Model for Scheduled Attributes."; + } + + grouping tvr-schedule { + list schedules { + key schedule-id; + leaf schedule-id { + type uint32; + description + "Identifies the schedule."; + } + choice schedule-type { + description + "Choice of schedule type."; + case period { + description + "A schedule with a single instance."; + uses schedule:period-of-time; + } + case recurrence { + description + "A schedule with recurrence. The time is defined in UTC + format."; + uses schedule:recurrence-utc; + } + } + + container attr-value { + description + "Attribute value(s). This container should be augmented + with attributes that apply to the current interval."; + } + description + "list of schedules."; + } + description + "A common grouping definition of schedules."; + } + +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-tvr-topology@2023-10-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-tvr-topology@2024-07-22.yang similarity index 55% rename from experimental/ietf-extracted-YANG-modules/ietf-tvr-topology@2023-10-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-tvr-topology@2024-07-22.yang index 127e70ad7..b116287d4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-tvr-topology@2023-10-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-tvr-topology@2024-07-22.yang @@ -9,8 +9,10 @@ module ietf-tvr-topology { "RFC 6991: Common YANG Data Types"; } - import ietf-te-types { - prefix te-types; + import ietf-yang-types { + prefix "yang"; + reference + "RFC 6991: Common YANG Data Types"; } import ietf-tvr-schedule { @@ -39,7 +41,7 @@ module ietf-tvr-topology { "This YANG module contains YANG definitions for describing network topology with an time-variant availability schedule. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -58,7 +60,7 @@ module ietf-tvr-topology { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-10-11 { + revision 2024-07-22 { description "Initial revision"; reference @@ -79,22 +81,19 @@ module ietf-tvr-topology { may be the same as the node-id defined in the ietf-network module defined in RFC 8345."; } - list available { - key "start-date-time"; + container available { description "The time at which this node becomes available."; - uses tvr-schd:schedule { - augment value-default { - description - "Augment default node availability."; - leaf default-node-available { - type boolean; - default false; - description - "By default, the node is powered off."; - } - } - augment base-schedule/intervals/value { + + leaf default-node-available { + type boolean; + default false; + description + "By default, the node is powered off."; + } + + uses tvr-schd:tvr-schedule { + augment "schedules/attr-value" { description "Augment scheduled node availability."; leaf node-available { @@ -106,7 +105,6 @@ module ietf-tvr-topology { } } } - list links { key "source-node source-link-id"; description @@ -116,85 +114,72 @@ module ietf-tvr-topology { description "A name refers to the source node of the link."; } - leaf destination-node { - type inet:uri; - description - "A name refers to the destination node of the link."; - } leaf source-link-id { type string; description "A name refers to the link of the source node."; } - list available { - key "start-date-time"; + container available { description - "The time at which this link becomes available."; - uses tvr-schd:schedule; - - container bandwidth { - description - "Scheduled link bandwidth. - If the value measured by the system is less than this - value, the system value is used. If the value measured - by the system is greater than this value the predicted - value SHOULD be used."; - uses tvr-schd:base-schedule { - augment value-default { + "The time at which this link becomes available."; + uses tvr-schd:tvr-schedule { + augment "schedules/attr-value" { + description + "Augment scheduled values."; + leaf link-available { + type boolean; description - "Augment default interface bandwidth."; - leaf default-bandwidth { - type te-types:te-bandwidth; - default "0"; - description - "The default link capacity specified in a - generic format."; - } + "The predicted link availability."; } - augment base-schedule/intervals/value { + leaf bandwidth { + type yang:gauge64; + units "bits/second"; description - "Augment scheduled interface bandwidth."; - leaf bandwidth { - type te-types:te-bandwidth; - description - "The predicted link capacity specified in a - generic format."; - } + "The predicted link capacity. If the value measured + by the system is less than this value, the system + value is used. If the value measured by the system + is greater than this value the predicted value + SHOULD be used."; } - } - } - container delay { - description - "The one-way delay or latency in microseconds. If the - value measured by the system is less than this value - the predicted value SHOULD be used."; - uses tvr-schd:base-schedule { - augment value-default { - description - "Augment default delay."; - leaf default-delay { - type uint32 { - range "0..16777215"; - } - description - "The default link capacity specified in a - generic format."; + leaf delay { + type uint32 { + range "0..16777215"; } + description + "The predicted one-way delay or latency in + microseconds. If the value measured by the system is + less than this value the predicted value SHOULD be used."; } - augment base-schedule/intervals/value { + leaf destination-node { + type inet:uri; description - "Augment scheduled delay."; - leaf delay { - type uint32 { - range "0..16777215"; - } - description - "The predicted link delay specified in a - generic format."; - } + "A name refers to the destination node of the link."; } } } + leaf default-link-available { + type boolean; + default "false"; + description + "The default link availibility. During times when the schedule + does not specifiy an availability, this value is used."; + } + leaf default-bandwidth { + type yang:gauge64; + units "bits/second"; + default "0"; + description + "The default link capacity specified in a + generic format."; + } + leaf default-delay { + type uint32 { + range "0..16777215"; + } + description + "The default link capacity specified in a + generic format."; + } } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ucl-acl@2023-01-19.yang b/experimental/ietf-extracted-YANG-modules/ietf-ucl-acl@2023-01-19.yang index e9d0f9bdb..0483e7a68 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ucl-acl@2023-01-19.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ucl-acl@2023-01-19.yang @@ -12,20 +12,29 @@ module ietf-ucl-acl { import ietf-schedule { prefix schedule; reference - "RFC XXXX: A Policy-based Network Access Control"; + "RFC SSSS: A Common YANG Data Model for Scheduling"; } organization "IETF OPSWG Working Group"; contact "WG Web: - WG List: "; + WG List: + + Editor: Qiufang Ma + + Editor: Mohamed Boucadair + + Author: Daniel King + "; description "This YANG module augments the IETF access control lists (ACLs) module and is meant to ensure consistent enforcement of ACL policies based on the group identity. - Copyright (c) 2023 IETF Trust and the persons identified + 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 @@ -43,20 +52,84 @@ module ietf-ucl-acl { description "Initial revision."; reference - "RFC XXXX: A Policy-based Network Access Control"; + "RFC XXXX: A YANG Data Model and RADIUS Extension for + Policy-based Network Access Control"; + } + + feature schedule { + description + "Indicates support of schedule-based ACEs."; + } + + feature match-on-group { + description + "Indicates support of matching on endpoint groups."; + } + + feature group { + if-feature "uacl:match-on-group"; + description + "Indicates support of group-based ACLs."; + } + + feature mixed-ipv4-group { + if-feature "acl:match-on-ipv4 and uacl:match-on-group"; + description + "IPv4 and group ACL combinations supported."; + } + + feature mixed-ipv6-group { + if-feature "acl:match-on-ipv6 and uacl:match-on-group"; + description + "IPv6 and group ACL combinations supported."; + } + + feature mixed-ipv4-ipv6-group { + if-feature "acl:match-on-ipv4 and acl:match-on-ipv6 and " + + "uacl:match-on-group"; + description + "IPv4, IPv6, and group ACL combinations supported."; + } + + feature mixed-eth-group { + if-feature "acl:match-on-eth and uacl:match-on-group"; + description + "Eth and group ACL combinations supported."; + } + + feature mixed-eth-ipv4-group { + if-feature "acl:match-on-eth and acl:match-on-ipv4 and " + + "uacl:match-on-group"; + description + "Eth, IPv4, and group ACL combinations supported."; + } + + feature mixed-eth-ipv6-group { + if-feature "acl:match-on-eth and acl:match-on-ipv6 and " + + "uacl:match-on-group"; + description + "Eth, IPv6, and group ACL combinations supported."; + } + + feature mixed-eth-ipv4-ipv6-group { + if-feature "acl:match-on-eth and acl:match-on-ipv4 and " + + "acl:match-on-ipv6 and uacl:match-on-group"; + description + "Eth, IPv4, IPv6, and group ACL combinations supported."; } identity group-acl-type { if-feature "group"; base acl:acl-base; description - "An ACL that matches based on an endpoint group identity, - which can represent the collective identity of a group of - authenticated users, end devices, or applications. An endpoint - group identity may be carried in the outer/inner packet - header (e.g., via NVO3 encapsulation), may also not correspond - to any field in the packet header. Matching on Layer 4 header - fields may also exist in the ACEs."; + "An Access Control List (ACL) that matches based on an endpoint + group identity, which can represent the collective identity of + a group of authenticated users, end devices, or applications. + An endpoint group identity may be carried in the outer/inner + packet header (e.g., via NVO3 encapsulation), may also not + correspond to any field in the packet header. Matching on + Layer 4 header fields may also exist in the Access Control + Entries (ACEs)."; } identity mixed-ipv4-group-type { @@ -65,7 +138,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in IPv4 headers and endpoint group identities, which can + in the IPv4 header and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices, or applications. Matching on Layer 4 header fields may also exist in the ACEs."; @@ -77,7 +150,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in IPv6 headers and endpoint group identities, which can + in the IPv6 header and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices, or applications. Matching on Layer 4 header fields may also exist in the ACEs."; @@ -90,7 +163,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in IPv4 headers, IPv6 headers, and endpoint group identities, + in the IPv4 header, IPv6 header, and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices, or applications. Matching on Layer 4 header fields may also exist in the ACEs."; @@ -102,7 +175,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in Ethernet headers and endpoint group identities, + in the Ethernet header and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices, or applications. Matching on Layer 4 header fields may also exist in the ACEs."; @@ -115,7 +188,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in Ethernet headers, IPv4 headers, and endpoint group + in the Ethernet header, IPv4 header, and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices or applications. Matching on Layer 4 header fields may also exist in the @@ -129,7 +202,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in Ethernet headers, IPv6 headers, and endpoint group + in the Ethernet header, IPv6 header, and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices or applications. Matching on Layer 4 header fields may also exist in the @@ -144,7 +217,7 @@ module ietf-ucl-acl { base uacl:group-acl-type; description "An ACL that contains a mix of entries that match on fields - in Ethernet headers, IPv4 headers, IPv6 headers, and endpoint + in the Ethernet header, IPv4 header, IPv6 header, and endpoint group identities, which can represent the collective identity of a group of authenticated users, end devices or applications. Matching on Layer 4 header fields may also exist @@ -174,74 +247,17 @@ module ietf-ucl-acl { "Identity for the application endpoint group."; } - feature match-on-group { - description - "The implementation supports matching on endpoint groups."; - } - - feature group { - if-feature "uacl:match-on-group"; - description - "Indicates support of group-based ACLs."; - } - - feature mixed-ipv4-group { - if-feature "acl:match-on-ipv4 and uacl:match-on-group"; - description - "IPv4 and group ACL combinations supported."; - } - - feature mixed-ipv6-group { - if-feature "acl:match-on-ipv6 and uacl:match-on-group"; - description - "IPv6 and group ACL combinations supported."; - } - - feature mixed-ipv4-ipv6-group { - if-feature "acl:match-on-ipv4 and acl:match-on-ipv6 and " - + "uacl:match-on-group"; - description - "IPv4, IPv6, and group ACL combinations supported."; - } - - feature mixed-eth-group { - if-feature "acl:match-on-eth and uacl:match-on-group"; - description - "Eth and group ACL combinations supported."; - } - - feature mixed-eth-ipv4-group { - if-feature "acl:match-on-eth and acl:match-on-ipv4 and " - + "uacl:match-on-group"; - description - "Eth, IPv4, and group ACL combinations supported."; - } - - feature mixed-eth-ipv6-group { - if-feature "acl:match-on-eth and acl:match-on-ipv6 and " - + "uacl:match-on-group"; - description - "Eth, IPv6, and group ACL combinations supported."; - } - - feature mixed-eth-ipv4-ipv6-group { - if-feature "acl:match-on-eth and acl:match-on-ipv4 and " - + "acl:match-on-ipv6 and uacl:match-on-group"; - description - "Eth, IPv4, IPv6, and group ACL combinations supported."; - } - typedef group-id-reference { type leafref { - path "/acl:acls/acl:acl/uacl:endpoint-groups" + path "/acl:acls/uacl:endpoint-groups" + "/uacl:endpoint-group/uacl:group-id"; } description - "Defines a type to group identifier for referencing - purposes."; + "Defines a reference to a group identifier."; } - augment "/acl:acls/acl:acl" { + augment "/acl:acls" { + if-feature "uacl:group"; description "Adds a container for endpoint group definition."; container endpoint-groups { @@ -269,17 +285,16 @@ module ietf-ucl-acl { } } } - augment "/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches" { + if-feature "uacl:match-on-group"; description "Specifies how a source and/or destination endpoint group index can be referenced as the match criteria in the ACEs."; container endpoint-group { when "derived-from-or-self(/acl:acls/acl:acl/acl:type, " + "'uacl:group-acl-type')"; - if-feature "match-on-group"; description - "Add new match types."; + "Adds new match types."; leaf source-group-id { type group-id-reference; description @@ -294,13 +309,14 @@ module ietf-ucl-acl { } augment "/acl:acls/acl:acl/acl:aces/acl:ace" { + if-feature "uacl:schedule"; description "Adds schedule parameters to allow the ACE to take effect based on date and time."; container effective-schedule { description "Defines when the access control entry rules - are in effect based on date and time condition. + are in effect based on date and time condition. If it is not configured, the access control entry is immediately and always in effect."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2023-10-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2023-10-16.yang deleted file mode 100644 index e8ed694c9..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2023-10-16.yang +++ /dev/null @@ -1,104 +0,0 @@ -module ietf-udp-client { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-udp-client"; - prefix udpc; - import ietf-inet-types { - prefix inet; - reference - "RFC 6991: Common YANG Data Types"; - } - import ietf-tls-client { - prefix tlsc; - reference - "RFC TTTT: YANG Groupings for TLS Clients and TLS Servers"; - } - - organization "IETF NETCONF (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - - Authors: Alex Huang Feng - - Pierre Francois - "; - - description - "Defines a generic grouping for UDP-based client applications. - Supports groupings for UDP clients and UDP clients with DTLS encryption. - - 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-to-be; see the RFC - itself for full legal notices."; - - revision 2023-10-16 { - description - "Initial revision"; - reference - "RFC-to-be: YANG Grouping for UDP Clients and UDP Servers"; - } - - /* - * FEATURES - */ - feature dtls13 { - description - "This feature indicates that DTLS 1.3 encryption of UDP - packets is supported."; - } - - grouping udp-client-grouping { - description - "Provides a reusable grouping for configuring a UDP client."; - - leaf remote-address { - type inet:ip-address-no-zone; - mandatory true; - description - "IP address of the UDP client, which can be an - IPv4 address or an IPV6 address."; - } - - leaf remote-port { - type inet:port-number; - mandatory true; - description - "Port number of the UDP client."; - } - } - - grouping udp-dtls-client-grouping { - description - "Provides a reusable grouping for configuring a UDP client with - DTLS encryption."; - - uses udp-client-grouping; - container dtls { - if-feature dtls13; - presence dtls; - uses tlsc:tls-client-grouping { - // Using tls-client-grouping without TLS1.2 parameters - // allowing only DTLS 1.3 - refine "client-identity/auth-type/tls12-psk" { - // create the logical impossibility of enabling TLS1.2 - if-feature "not tlsc:client-ident-tls12-psk"; - } - refine "server-authentication/tls12-psks" { - // create the logical impossibility of enabling TLS1.2 - if-feature "not tlsc:server-auth-tls12-psk"; - } - } - description - "Container for configuring DTLS 1.3 parameters."; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-06-27.yang new file mode 100644 index 000000000..34f931fd0 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-udp-client@2024-06-27.yang @@ -0,0 +1,100 @@ +module ietf-udp-client { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-udp-client"; + prefix udpc; + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + + organization "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Authors: Alex Huang Feng + + Pierre Francois + "; + description + "Defines a generic grouping for UDP-based client applications. + + 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-to-be; see the RFC + itself for full legal notices."; + + revision 2024-06-27 { + description + "Initial revision"; + reference + "RFC-to-be: YANG Groupings for UDP Clients and UDP Servers"; + } + + feature local-binding-supported { + description + "Indicates that the UDP client supports configuring local + bindings (i.e., the local address and local port) for + UDP clients."; + } + + grouping udp-client-grouping { + description + "A reusable grouping for configuring a UDP client. + + Note that this grouping uses fairly typical descendant + node names such that a stack of 'uses' statements will + have name conflicts. It is intended that the consuming + data model will resolve the issue (e.g., by wrapping + the 'uses' statement in a container called + 'udp-client-parameters'). This model purposely does + not do this itself so as to provide maximum flexibility + to consuming models."; + + leaf remote-address { + type inet:host; + mandatory true; + description + "The IP address or hostname of the remote UDP server. + If a domain name is configured, then the DNS resolution should + happen on each connection attempt. If the DNS resolution + results in multiple IP addresses, the IP addresses + are tried according to local preference order until + a connection has been established or until all IP + addresses have failed."; + } + + leaf remote-port { + type inet:port-number; + description + "The port number of the remote UDP server."; + } + + leaf local-address { + if-feature "local-binding-supported"; + type inet:ip-address; + description + "The local IP address to bind to when sending UDP + messages to the remote server. INADDR_ANY ('0.0.0.0') or + INADDR6_ANY ('0:0:0:0:0:0:0:0' a.k.a. '::') may be used + so that the server can bind to any IPv4 or IPv6 address."; + } + + leaf local-port { + if-feature "local-binding-supported"; + type inet:port-number; + description + "The local port number to bind to when sending UDP + messages to the remote server."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-notif-transport@2023-05-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-notif-transport@2024-07-01.yang similarity index 67% rename from experimental/ietf-extracted-YANG-modules/ietf-udp-notif-transport@2023-05-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-udp-notif-transport@2024-07-01.yang index 47c3fb491..32d10b711 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-udp-notif-transport@2023-05-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-udp-notif-transport@2024-07-01.yang @@ -17,7 +17,17 @@ module ietf-udp-notif-transport { import ietf-udp-client { prefix udpc; reference - "RFC-to-be: UDP-based Transport for Configured Subscriptions"; + "RFC ZZZZ: YANG Grouping for UDP Clients and UDP Servers"; + } + import ietf-tls-client { + prefix tlsc; + reference + "RFC TTTT: YANG Groupings for TLS Clients and TLS Servers"; + } + import ietf-tls-common { + prefix tlscmn; + reference + "RFC TTTT: YANG Groupings for TLS Clients and TLS Servers"; } organization "IETF NETCONF (Network Configuration) Working Group"; @@ -42,7 +52,7 @@ module ietf-udp-notif-transport { "Defines UDP-Notif as a supported transport for subscribed event notifications. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -54,7 +64,7 @@ module ietf-udp-notif-transport { This version of this YANG module is part of RFC-to-be; see the RFC itself for full legal notices."; - revision 2023-05-08 { + revision 2024-07-01 { description "Initial revision"; reference @@ -69,6 +79,11 @@ module ietf-udp-notif-transport { "This feature indicates that CBOR encoding of notification messages is supported."; } + feature dtls13 { + description + "This feature indicates that DTLS 1.3 encryption of UDP + packets is supported."; + } feature segmentation { description "This feature indicates segmentation of notification messages @@ -84,6 +99,7 @@ module ietf-udp-notif-transport { "UDP-Notif is used as transport for notification messages and state change notifications."; } + identity encode-cbor { base sn:encoding; description @@ -97,7 +113,44 @@ module ietf-udp-notif-transport { "Provides a reusable description of a UDP-Notif target receiver."; - uses udpc:udp-client-grouping; + uses udpc:udp-client-grouping { + refine remote-port { + mandatory true; + } + } + + container dtls { + if-feature dtls13; + presence dtls; + uses tlsc:tls-client-grouping { + // Using tls-client-grouping without TLS1.2 parameters + // allowing only DTLS 1.3 + refine "client-identity/auth-type/tls12-psk" { + // create the logical impossibility of enabling TLS1.2 + if-feature "not tlsc:client-ident-tls12-psk"; + } + refine "server-authentication/tls12-psks" { + // create the logical impossibility of enabling TLS1.2 + if-feature "not tlsc:server-auth-tls12-psk"; + } + refine "hello-params/tls-versions/min" { + must "not(derived-from-or-self(current(), " + + "'tlscmn:tls12'))" { + error-message + "TLS 1.2 is not supported as min TLS version"; + } + } + refine "hello-params/tls-versions/max" { + must "not(derived-from-or-self(current(), " + + "'tlscmn:tls12'))" { + error-message + "TLS 1.2 is not supported as max TLS version"; + } + } + } + description + "Container for configuring DTLS 1.3 parameters."; + } leaf enable-segmentation { if-feature segmentation; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2023-10-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2023-10-16.yang deleted file mode 100644 index 9e49eed9d..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2023-10-16.yang +++ /dev/null @@ -1,103 +0,0 @@ -module ietf-udp-server { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:ietf-udp-server"; - prefix udps; - import ietf-inet-types { - prefix inet; - reference - "RFC 6991: Common YANG Data Types"; - } - import ietf-tls-server { - prefix tlss; - reference - "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers"; - } - - organization "IETF NETCONF (Network Configuration) Working Group"; - contact - "WG Web: - WG List: - - Authors: Alex Huang Feng - - Pierre Francois - "; - - description - "Defines a generic grouping for UDP-based server applications. - Supports groupings for UDP servers and UDP servers with DTLS encryption. - - 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-to-be; see the RFC - itself for full legal notices."; - revision 2023-10-16 { - description - "Initial revision"; - reference - "RFC-to-be: YANG Grouping for UDP Clients and UDP Servers"; - } - - /* - * FEATURES - */ - feature dtls13 { - description - "This feature indicates that DTLS 1.3 encryption of UDP - packets is supported."; - } - - grouping udp-server-grouping { - description - "Provides a reusable grouping for configuring a UDP servers."; - - leaf local-address { - type inet:ip-address-no-zone; - mandatory true; - description - "IP address of the UDP server, which can be an - IPv4 address or an IPV6 address."; - } - - leaf local-port { - type inet:port-number; - mandatory true; - description - "Port number of the UDP server."; - } - } - - grouping udp-dtls-server-grouping { - description - "Provides a reusable grouping for configuring a UDP server with - DTLS encryption."; - - uses udp-server-grouping; - container dtls { - if-feature dtls13; - presence dtls; - uses tlss:tls-server-grouping { - // Using tls-server-grouping without TLS1.2 parameters - // allowing only DTLS 1.3 - refine "server-identity/auth-type/tls12-psk" { - // create the logical impossibility of enabling TLS1.2 - if-feature "not tlss:server-ident-tls12-psk"; - } - refine "client-authentication/tls12-psks" { - // create the logical impossibility of enabling TLS1.2 - if-feature "not tlss:client-auth-tls12-psk"; - } - } - description - "Container for configuring DTLS 1.3 parameters."; - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-06-27.yang new file mode 100644 index 000000000..65cb64763 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-udp-server@2024-06-27.yang @@ -0,0 +1,86 @@ +module ietf-udp-server { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-udp-server"; + prefix udps; + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + + organization "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Authors: Alex Huang Feng + + Pierre Francois + "; + + description + "Defines a generic grouping for UDP-based server applications. + + 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-to-be; see the RFC + itself for full legal notices."; + + revision 2024-06-27 { + description + "Initial revision"; + reference + "RFC-to-be: YANG Groupings for UDP Clients and UDP Servers"; + } + + grouping udp-server-grouping { + description + "Provides a reusable grouping for configuring a UDP server. + + Note that this grouping uses fairly typical descendant + node names such that a stack of 'uses' statements will + have name conflicts. It is intended that the consuming + data model will resolve the issue (e.g., by wrapping + the 'uses' statement in a container called + 'udp-server-parameters'). This model purposely does + not do this itself so as to provide maximum flexibility + to consuming models."; + + list local-bind { + key local-address; + min-elements 1; + description + "A list of bind (listen) points for this server + instance. A server instance may have multiple + bind points to support, e.g., the same port in + different address families or different ports + in the same address family."; + + leaf local-address { + type inet:ip-address; + mandatory true; + description + "The local IP address to listen on for incoming + UDP messages. To configure listening + on all IPv4 addresses the value must be '0.0.0.0' + (INADDR_ANY). To configure listening on all IPv6 + addresses the value must be '::' (INADDR6_ANY)."; + } + + leaf local-port { + type inet:port-number; + description + "The local port number to listen on for incoming UDP + messages."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-vn-telemetry@2023-03-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-vn-telemetry@2024-03-17.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-vn-telemetry@2023-03-10.yang rename to experimental/ietf-extracted-YANG-modules/ietf-vn-telemetry@2024-03-17.yang index b5f91e39d..afd31cfe0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-vn-telemetry@2023-03-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-vn-telemetry@2024-03-17.yang @@ -54,7 +54,7 @@ module ietf-vn-telemetry { monitoring parameters (telemetry data) for Virtual Network (VN). - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -71,7 +71,7 @@ module ietf-vn-telemetry { assigned to the RFC once draft-lee-teas-pm-telemetry- autonomics becomes an RFC.*/ - revision 2023-03-10 { + revision 2024-03-17 { description "Initial revision."; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-vn@2023-10-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-vn@2024-06-22.yang similarity index 63% rename from experimental/ietf-extracted-YANG-modules/ietf-vn@2023-10-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-vn@2024-06-22.yang index 03b45532b..23116695d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-vn@2023-10-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-vn@2024-06-22.yang @@ -3,13 +3,16 @@ module ietf-vn { namespace "urn:ietf:params:xml:ns:yang:ietf-vn"; prefix vn; - /* Import network */ + /* Import common YANG types */ import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types"; } + + /* Import network */ + import ietf-network { prefix nw; reference @@ -53,11 +56,23 @@ module ietf-vn { "This module contains a YANG module for the Virtual Network (VN). It describes a VN operation module that can take place in the context of the Customer Network Controller (CNC)- - Multi-Domain Service Coordinator (MSDC) interface (CMI) of - the Abstraction and Control of Traffic Engineered Networks - (ACTN) architecture where the CNC is the actor of a VN - Instantiation/modification/deletion as per RFC 8453. - Copyright (c) 2023 IETF Trust and the persons identified as + Multi-Domain Service Coordinator (MDSC) interface (CMI) of + the Abstraction and Control of Traffic Engineered (TE) + Networks (ACTN) architecture where the CNC is the actor of + a VN Instantiation/modification/deletion as per RFC 8453. + + This module uses following abbreviations: + - VN: Virtual Network + - AP: Access Point + - VNAP: Virtual Network Access Point + - LTP: Link Termination Point + - PE: Provider Edge + - COS: Class of Service + + Further, 'src' and 'dest' is used for source and destination + respectively. + + 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 @@ -70,9 +85,9 @@ module ietf-vn { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-10-23 { + revision 2024-06-22 { description - "initial version."; + "The initial version."; reference "RFC XXXX: A YANG Data Model for Virtual Network (VN) Operations"; @@ -92,20 +107,26 @@ module ietf-vn { /* Typedef */ typedef vn-id { - type string; + type string { + length "1..max"; + } description "A type definition for Virtual Network (VN) identifier."; } typedef ap-id { - type string; + type string { + length "1..max"; + } description "A type definition for Access Point (AP) identifier."; } typedef vnm-id { - type string; + type string { + length "1..max"; + } description "A type definition for VN member identifier."; } @@ -114,7 +135,7 @@ module ietf-vn { type te-types:te-common-status; description "A type definition for representing the VN compute status. Note - that all status apart from up and down are considered as + that all statuses apart from up and down are considered as unknown."; } @@ -129,7 +150,7 @@ module ietf-vn { base vn-computation-error-reason; description "VN computation has failed because the MDSC is not - ready"; + ready."; } identity vn-computation-error-no-cnc { @@ -155,118 +176,37 @@ module ietf-vn { identity vn-computation-ap-unknown { base vn-computation-error-reason; description - "VN computation failed as source or destination Access Point - (AP) not known."; + "VN computation failed as the source or destination Access + Point (AP) not known."; } /* Groupings */ - grouping vn-ap { - description - "Virtual Network Access Points (VNAP) related information"; - leaf vn-ap-id { - type ap-id; - description - "A unique identifier for the referred VNAP"; - } - leaf vn { - type leafref { - path "/virtual-network/vn/vn-id"; - } - description - "A reference to the VN"; - } - leaf abstract-node { - type leafref { - path "/nw:networks/nw:network/nw:node/tet:te-node-id"; - } - description - "A reference to the abstract node in TE Topology that - represent the VN"; - } - leaf ltp { - type leafref { - path "/nw:networks/nw:network/nw:node/" - + "nt:termination-point/tet:te-tp-id"; - } - description - "A reference to Link Termination Point (LTP) in the - TE-topology"; - reference - "RFC 8795: YANG Data Model for Traffic Engineering (TE) - Topologies"; - } - leaf max-bandwidth { - type te-types:te-bandwidth; - config false; - description - "The max bandwidth of the VNAP"; - } - reference - "RFC 8453: Framework for Abstraction and Control of TE - Networks (ACTN), Section 6"; - } - - grouping access-point { - description - "AP related information"; - leaf ap-id { - type ap-id; - description - "A unique identifier for the referred access point"; - } - leaf pe { - type leafref { - path "/nw:networks/nw:network/nw:node/tet:te-node-id"; - } - description - "A reference to the PE node in the native TE Topology"; - } - leaf max-bandwidth { - type te-types:te-bandwidth; - description - "The max bandwidth of the AP"; - } - leaf avl-bandwidth { - type te-types:te-bandwidth; - description - "The available bandwidth of the AP"; - } - list vn-ap { - key "vn-ap-id"; - uses vn-ap; - description - "List of VNAP in this AP"; - } - reference - "RFC 8453: Framework for Abstraction and Control of TE - Networks (ACTN), Section 6"; - } - grouping vn-member { description - "The vn-member is described by this grouping"; - leaf vnm-id { + "The vn-member is described by this grouping."; + leaf id { type vnm-id; description - "A vn-member identifier"; + "A vn-member identifier."; } container src { description - "The source of VN Member"; - leaf src { + "The source of VN Member."; + leaf ap { type leafref { - path "/access-point/ap/ap-id"; + path "/access-point/ap/id"; } description - "A reference to source AP"; + "A reference to source AP."; } - leaf src-vn-ap-id { + leaf vn-ap-id { type leafref { - path "/access-point/ap/vn-ap/vn-ap-id"; + path "/access-point/ap[id=current()/../ap]/vn-ap" + + "/id"; } description - "A reference to source VNAP"; + "A reference to source VNAP."; } leaf multi-src { if-feature "multi-src-dest"; @@ -274,25 +214,26 @@ module ietf-vn { default "false"; description "Is the source part of multi-source, where - only one of the source is enabled"; + only one of the sources is enabled."; } } container dest { description - "the destination of VN Member"; - leaf dest { + "the destination of VN Member."; + leaf ap { type leafref { - path "/access-point/ap/ap-id"; + path "/access-point/ap/id"; } description - "A reference to destination AP"; + "A reference to destination AP."; } - leaf dest-vn-ap-id { + leaf vn-ap-id { type leafref { - path "/access-point/ap/vn-ap/vn-ap-id"; + path "/access-point/ap[id=current()/../ap]/" + + "vn-ap/id"; } description - "A reference to dest VNAP"; + "A reference to dest VNAP."; } leaf multi-dest { if-feature "multi-src-dest"; @@ -300,7 +241,7 @@ module ietf-vn { default "false"; description "Is destination part of multi-destination, where only one - of the destination is enabled"; + of the destinations is enabled."; } } leaf connectivity-matrix-id { @@ -311,7 +252,7 @@ module ietf-vn { + "tet:connectivity-matrix/tet:id"; } description - "A reference to connectivity-matrix"; + "A reference to connectivity-matrix."; reference "RFC 8795: YANG Data Model for Traffic Engineering (TE) Topologies"; @@ -320,7 +261,7 @@ module ietf-vn { description "An empty container that can be augmented with underlay technology information not supported by RFC 8795 (for - example - Segement Routing (SR). "; + example - Segment Routing (SR)."; } reference "RFC 8454: Information Model for Abstraction and Control of TE @@ -329,12 +270,12 @@ module ietf-vn { grouping vn-policy { description - "policy for VN-level diverisity"; + "policy for VN-level diversity"; leaf vn-level-diversity { type te-types:te-path-disjointness; description "The type of disjointness on the VN level (i.e., across all - VN members)"; + VN members)."; } } @@ -344,12 +285,82 @@ module ietf-vn { description "AP configurations"; list ap { - key "ap-id"; + key "id"; description - "access-point identifier"; - uses access-point { + "access-point identifier."; + leaf id { + type ap-id; + description + "An AP identifier unique within the scope of the entity + that controls the VN."; + } + leaf pe { + type leafref { + path "/nw:networks/nw:network/nw:node/tet:te-node-id"; + } + description + "A reference to the PE node in the native TE Topology."; + } + leaf max-bandwidth { + type te-types:te-bandwidth; + description + "The max bandwidth of the AP."; + } + leaf avl-bandwidth { + type te-types:te-bandwidth; + description + "The available bandwidth of the AP."; + } + list vn-ap { + key "id"; + leaf id { + type ap-id; + description + "A unique identifier for the VNAP."; + } + leaf vn { + type leafref { + path "/virtual-network/vn/id"; + } + description + "A reference to the VN."; + } + leaf abstract-node { + type leafref { + path "/nw:networks/nw:network/nw:node/nw:node-id"; + } + must '/nw:networks/nw:network/nw:node[nw:node-id=' + + 'current()/../abstract-node]/tet:te-node-id' { + description + "The associated network for the abstract-node + must be TE enabled."; + } + description + "A reference to the abstract node that represent + the VN."; + } + leaf ltp { + type leafref { + path "/nw:networks/nw:network/nw:node[nw:node-id=" + + "current()/../abstract-node]/nt:termination-point/" + + "tet:te-tp-id"; + } + description + "A reference to Link Termination Point (LTP) in the + abstract-node i.e. the LTP should be in the abstract + layer, and not the underlying layer."; + reference + "RFC 8795: YANG Data Model for Traffic Engineering (TE) + Topologies"; + } + leaf max-bandwidth { + type te-types:te-bandwidth; + config false; + description + "The max bandwidth of the VNAP."; + } description - "The access-point information"; + "List of VNAP in this AP."; } } reference @@ -358,15 +369,16 @@ module ietf-vn { } container virtual-network { description - "VN configurations"; + "VN configurations."; list vn { - key "vn-id"; + key "id"; description - "A virtual network is identified by a vn-id"; - leaf vn-id { + "A virtual network is identified by a vn-id."; + leaf id { type vn-id; description - "A unique VN identifier"; + "An identifier unique within the scope of the entity + that controls the VN."; } uses te-types:te-topology-identifier; leaf abstract-node { @@ -374,12 +386,12 @@ module ietf-vn { path "/nw:networks/nw:network/nw:node/tet:te-node-id"; } description - "A reference to the abstract node in TE Topology"; + "A reference to the abstract node in TE Topology."; } list vn-member { - key "vnm-id"; + key "id"; description - "List of vn-members in a VN"; + "List of vn-members in a VN."; uses vn-member; leaf oper-status { type te-types:te-oper-status; @@ -393,8 +405,8 @@ module ietf-vn { default "false"; config false; description - "Is the vn-member is selected among the multi-src/dest - options"; + "Is the vn-member selected among the multi-src/dest + options."; } } leaf admin-status { @@ -417,20 +429,19 @@ module ietf-vn { } /* RPC */ - rpc vn-compute { description "The VN computation without actual instantiation. This is used by the CNC to get the VN results without actually creating it in the network. - The input could include a reference to the single node - abstract topology. It could optionally also include + The input could include a reference to the single-node + -abstract topology. It could optionally also include constraints and optimization criteria. The computation is done based on the list of VN-members. - The output includes a reference to the single node - abstract topology with each VN-member including a + The output includes a reference to the single-node + -abstract topology with each VN-member including a reference to the connectivity-matrix-id where the path properties could be found. Error information is also included."; @@ -441,25 +452,25 @@ module ietf-vn { path "/nw:networks/nw:network/nw:node/tet:te-node-id"; } description - "A reference to the abstract node in TE Topology"; + "A reference to the abstract node in TE Topology."; } uses te-types:generic-path-constraints; leaf cos { type te-types:te-ds-class; description - "The class of service"; + "The class of service (COS)."; } uses te-types:generic-path-optimization; list vn-member-list { - key "vnm-id"; + key "id"; description - "List of VN-members in a VN"; + "List of VN-members in a VN."; uses vn-member; uses te-types:generic-path-constraints; leaf cos { type te-types:te-ds-class; description - "The class of service"; + "The class of service."; reference "RFC 4124: Protocol Extensions for Support of Diffserv-aware MPLS Traffic Engineering, @@ -476,20 +487,20 @@ module ietf-vn { path "/nw:networks/nw:network/nw:node/tet:te-node-id"; } description - "A reference to the abstract node in TE Topology"; + "A reference to the abstract node in TE Topology."; } list vn-member-list { - key "vnm-id"; + key "id"; description - "List of VN-members in a VN"; + "List of VN-members in a VN."; uses vn-member; leaf if-selected { if-feature "multi-src-dest"; type boolean; default "false"; description - "Is the vn-member is selected among the multi-src/dest - options"; + "Is the vn-member selected among the multi-src/dest + options."; reference "RFC 8453: Framework for Abstraction and Control of TE Networks (ACTN), Section 7"; @@ -501,9 +512,11 @@ module ietf-vn { } container error-info { description - "Error information related to the VN member"; + "Error information related to the VN member."; leaf error-description { - type string; + type string { + length "1..max"; + } description "Textual representation of the error occurred during VN compute."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-voucher-request@2023-01-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-voucher-request@2023-01-10.yang index 6e1a9dd22..582fdfbd7 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-voucher-request@2023-01-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-voucher-request@2023-01-10.yang @@ -26,14 +26,14 @@ module ietf-voucher-request { WG List: Author: Kent Watsen - Author: Michael H. Behringer - - Author: Toerless Eckert - + Author: Michael Richardson + Author: Max Pritikin - Author: Michael Richardson - "; + Author: Toerless Eckert + + Author: Qiufang Ma + "; description "This module defines the format for a voucher request. It is a superset of the voucher itself. @@ -46,18 +46,25 @@ module ietf-voucher-request { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. - Copyright (c) 2019 IETF Trust and the persons identified as - authors of the code. All rights reserved. + 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). - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info). + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; + 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-01-10 { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-voucher-security-profile@2023-05-30.yang b/experimental/ietf-extracted-YANG-modules/ietf-voucher-security-profile@2024-05-26.yang similarity index 91% rename from experimental/ietf-extracted-YANG-modules/ietf-voucher-security-profile@2023-05-30.yang rename to experimental/ietf-extracted-YANG-modules/ietf-voucher-security-profile@2024-05-26.yang index c3645b8aa..4ba639c2b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-voucher-security-profile@2023-05-30.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-voucher-security-profile@2024-05-26.yang @@ -19,6 +19,7 @@ module ietf-voucher-security-profile { organization "IETF ANIMA Working Group"; + contact "WG Web: WG List: @@ -35,9 +36,9 @@ module ietf-voucher-security-profile { and 'OPTIONAL' in the module text are to be interpreted as described in BCP 14 RFC 2119, and RFC8174."; - revision "2023-05-30" { + revision "2024-05-26" { description - "Initial version"; + "Updates to security profile aspects"; reference "RFC XXXX: Voucher extensions for security profile"; } @@ -49,6 +50,13 @@ module ietf-voucher-security-profile { "RFC XXXX: Voucher extensions for security profile"; } + revision "2023-05-30" { + description + "Initial version"; + reference + "RFC XXXX: Voucher extensions for security profile"; + } + feature security-profile-ietf { description @@ -132,20 +140,5 @@ module ietf-voucher-security-profile { the mask is off, the value of the bit could be treated as a don't care or default value"; } + description "The underlying security profile parameters."; } - - grouping security-parameters { - container security-parameters-standard { - if-feature security-profile-ietf; - description - "Security profiles based on IETF version."; - - leaf enabled { - type boolean; - default false; - description - "When true, IETF version of security profiles MUST be processed."; - } - - uses security-parameters-group; - } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang b/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang index 859eed04f..4b9762a2a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-voucher@2023-01-10.yang @@ -23,13 +23,15 @@ module ietf-voucher { "WG Web: WG List: Author: Kent Watsen - - Author: Max Pritikin - + Author: Michael Richardson + Author: Max Pritikin + Author: Toerless Eckert - "; + + Author: Qiufang Ma + "; description "This module defines the format for a voucher, which is produced by a pledge's manufacturer or delegate (MASA) @@ -37,24 +39,25 @@ module ietf-voucher { pledge may establish a secure connection to the owner's network infrastructure. - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here. - - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 8366; see the - RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; revision 2023-01-10 { description "updated to support new assertion enumerated type"; @@ -78,7 +81,6 @@ module ietf-voucher { the (pinned-domain-cert) value."; leaf created-on { type yang:date-and-time; - mandatory false; description "A value indicating the date this voucher was created. This node is primarily for human consumption and auditing. @@ -128,11 +130,7 @@ module ietf-voucher { "Indicates that the voucher has been issued after the MASA verified a proximity proof provided by the device and target domain. The issuance has been - logged for detection of potential security issues. - This is stronger than just logging, because it - requires some verification that the pledge and owner - are in communication but is still dependent on - analysis of the logs to detect unexpected events."; + logged for detection of potential security issues."; } enum agent-proximity { value 3; @@ -143,6 +141,12 @@ module ietf-voucher { a registrar agent has made contact with the device."; } } + description + "The assertion is a statement from the MASA regarding how + the owner was verified. This statement enables pledges + to support more detailed policy checks. Pledges MUST + ensure that the assertion provided is acceptable, per + local policy, before processing the voucher."; } leaf serial-number { type string; @@ -173,7 +177,6 @@ module ietf-voucher { } leaf pinned-domain-cert { type binary; - mandatory false; description "An X.509 v3 certificate structure, as specified by RFC 5280, using Distinguished Encoding Rules (DER) @@ -272,7 +275,7 @@ module ietf-voucher { leaf est-domain { type ietf:uri; description - "The est-domain is a URL to which the Pledge should + "The est-domain is a URL from which the Pledge should continue doing enrollment rather than with the Cloud Registrar. The pinned-domain-cert contains a trust-anchor diff --git a/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-09-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2024-03-01.yang similarity index 95% rename from experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-09-05.yang rename to experimental/ietf-extracted-YANG-modules/ietf-vrrp@2024-03-01.yang index 93f3e9226..4bca53e27 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-09-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2024-03-01.yang @@ -1,22 +1,19 @@ module ietf-vrrp { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp"; - prefix "vrrp"; + prefix vrrp; import ietf-inet-types { - prefix "inet"; + prefix inet; } - import ietf-yang-types { - prefix "yang"; + prefix yang; } - import ietf-interfaces { - prefix "if"; + prefix if; } - import ietf-ip { - prefix "ip"; + prefix ip; } organization @@ -25,26 +22,24 @@ module ietf-vrrp { "WG Web: WG List: + Editor: Acee Lindem + + Editor: Xufeng Liu - Editor: Athanasios Kyparlis Editor: Ravi Parikh - Editor: Acee Lindem - - Editor: Mingui Zhang "; - description "This YANG module defines a model for managing Virtual Router Redundancy Protocol (VRRP) versions 2 and 3. - Copyright (c) 2023 IETF Trust and the persons identified as + Copyright (c) 2024 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -64,7 +59,7 @@ module ietf-vrrp { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-09-05 { + revision 2024-03-01 { description "Initial revision."; reference @@ -130,86 +125,100 @@ module ietf-vrrp { /* * Identities */ - /* vrrp-event-type identity and its derivatives. */ + identity vrrp-event-type { description "Indicates the type of a VRRP protocol event."; } + identity vrrp-event-none { base vrrp-event-type; description "Indicates a non-meaningful event."; } + identity vrrp-event-startup { base vrrp-event-type; description "Indicates that a VRRP router has initiated the protocol."; } + identity vrrp-event-shutdown { base vrrp-event-type; description "Indicates that a VRRP router has closed down the protocol."; } + identity vrrp-event-higher-priority-backup { base vrrp-event-type; description "Indicates that a backup router has a higher priority than the current active."; } + identity vrrp-event-active-timeout { base vrrp-event-type; description "Indicates that the current active virtual router has not sent an advertisement within the limit of active-down-interval."; } + identity vrrp-event-interface-up { base vrrp-event-type; description "Indicates that the VRRP-enabled interface has become 'operational up'."; } + identity vrrp-event-interface-down { base vrrp-event-type; description "Indicates that the VRRP-enabled interface has become 'operational down'."; } + identity vrrp-event-no-primary-ip-address { base vrrp-event-type; description "Indicates that the primary IP address on the VRRP-enabled interface has become unavailable."; } + identity vrrp-event-primary-ip-address { base vrrp-event-type; description "Indicates that the primary IP address on the VRRP-enabled interface has become available."; } + identity vrrp-event-no-virtual-ip-addresses { base vrrp-event-type; description "Indicates that there are no virtual IP addresses on the virtual router."; } + identity vrrp-event-virtual-ip-addresses { base vrrp-event-type; description "Indicates that there are virtual IP addresses on the virtual router."; } + identity vrrp-event-preempt-hold-timeout { base vrrp-event-type; description "Indicates that the configured preemption hold time has passed."; } + identity vrrp-event-lower-priority-active { base vrrp-event-type; description "Indicates that there is a lower-priority VRRP active router."; } + identity vrrp-event-owner-preempt { base vrrp-event-type; description @@ -218,29 +227,34 @@ module ietf-vrrp { } /* vrrp-error-global identity and its derivatives. */ + identity vrrp-error-global { description "Indicates the type of a VRRP error that occurred for a packet before it reaches a VRRP router."; } + identity checksum-error { base vrrp-error-global; description "A packet has been received with an invalid VRRP checksum value."; } + identity ip-ttl-error { base vrrp-error-global; description "A packet has been received with IP TTL (Time-To-Live) not equal to 255."; } + identity version-error { base vrrp-error-global; description "A packet has been received with an unknown or unsupported version number."; } + identity vrid-error { base vrrp-error-global; description @@ -250,11 +264,13 @@ module ietf-vrrp { } /* vrrp-error-virtual-router identity and its derivatives. */ + identity vrrp-error-virtual-router { description "Indicates the type of a VRRP error that occurred after a packet reaches a VRRP router."; } + identity address-list-error { base vrrp-error-virtual-router; description @@ -262,6 +278,7 @@ module ietf-vrrp { does not match the locally configured address list for the virtual router."; } + identity interval-error { base vrrp-error-virtual-router; description @@ -269,6 +286,7 @@ module ietf-vrrp { different than the interval configured for the local virtual router."; } + identity packet-length-error { base vrrp-error-virtual-router; description @@ -277,22 +295,26 @@ module ietf-vrrp { } /* vrrp-state-type identity and its derivatives. */ + identity vrrp-state-type { description "Indicates the state of a virtual router."; } + identity initialize { base vrrp-state-type; description "Indicates that the virtual router is waiting for a startup event."; } + identity backup { base vrrp-state-type; description "Indicates that the virtual router is monitoring the availability of the active virtual router."; } + identity active { base vrrp-state-type; description @@ -302,15 +324,18 @@ module ietf-vrrp { } /* vrrp-version identity and its derivatives. */ + identity vrrp-version { description "The version of VRRP."; } + identity vrrp-v2 { base vrrp-version; description "Indicates version 2 of VRRP."; } + identity vrrp-v3 { base vrrp-version; description @@ -324,7 +349,6 @@ module ietf-vrrp { grouping vrrp-common-attributes { description "Group of VRRP attributes common to versions 2 and 3."; - leaf vrid { type uint8 { range "1..255"; @@ -332,7 +356,6 @@ module ietf-vrrp { description "Virtual Router ID (i.e., VRID)."; } - leaf version { type identityref { base vrrp:vrrp-version; @@ -341,7 +364,6 @@ module ietf-vrrp { description "Version 2 or 3 of VRRP."; } - leaf log-state-change { type boolean; default "false"; @@ -350,7 +372,6 @@ module ietf-vrrp { VRRP instance changes state (from 'up' to 'down' or 'down' to 'up')."; } - container preempt { description "Enables a higher-priority VRRP backup router to preempt a @@ -363,25 +384,23 @@ module ietf-vrrp { } leaf hold-time { type uint16; - units seconds; - default 0; + units "seconds"; + default "0"; description "Hold time, in seconds, for which a higher-priority VRRP backup router must wait before preempting a lower-priority VRRP active router."; } } - leaf priority { type uint8 { range "1..254"; } - default 100; + default "100"; description "Configures the VRRP election priority for the backup virtual router."; } - leaf accept-mode { when "derived-from-or-self(current()/../version, 'vrrp-v3')" { description @@ -406,15 +425,12 @@ module ietf-vrrp { grouping vrrp-ipv4-attributes { description "Group of VRRP attributes for IPv4."; - uses vrrp-common-attributes; - choice advertise-interval-choice { description "The options for the advertisement interval at which VRRPv2 or VRRPv3 advertisements are sent from the specified interface."; - case v2 { when "derived-from-or-self(version, 'vrrp-v2')" { description @@ -424,14 +440,13 @@ module ietf-vrrp { type uint8 { range "1..254"; } - units seconds; - default 1; + units "seconds"; + default "1"; description "Configures the interval that VRRPv2 advertisements are sent from the specified interface."; } } - case v3 { when "derived-from-or-self(version, 'vrrp-v3')" { description @@ -441,15 +456,14 @@ module ietf-vrrp { type uint16 { range "1..4095"; } - units centiseconds; - default 100; + units "centiseconds"; + default "100"; description "Configures the interval that VRRPv3 advertisements are sent from the specified interface."; } } } // advertise-interval-choice - container track { description "Enables the specified VRRP instance to track interfaces @@ -465,35 +479,31 @@ module ietf-vrrp { of the VRRP router decrements. When an unavailable interface becomes available again, the priority of the VRRP router is incremented by the same amount."; - list interface { key "interface"; description "Interface to track."; - leaf interface { type if:interface-ref; - must "/if:interfaces/if:interface[if:name=current()]/" - + "ip:ipv4" { + must '/if:interfaces/if:interface[if:name=current()]/' + + 'ip:ipv4' { description "Interface is IPv4."; } description "Interface to track."; } - leaf priority-decrement { type uint8 { range "1..254"; } - default 10; + default "10"; description "Specifies how much to decrement the priority of the VRRP instance if the interface goes down."; } } // interface } // interfaces - container networks { description "Enables the VRRPv2 or VRRPv3 router instance to track the @@ -512,18 +522,16 @@ module ietf-vrrp { "Enables the specified VRRPv2 or VRRPv3 instance to track an IPv4 network by specifying the prefix of the IPv4 network."; - leaf prefix { type inet:ipv4-prefix; description "The IPv4 prefix of the network to track."; } - leaf priority-decrement { type uint8 { range "1..254"; } - default 10; + default "10"; description "Specifies how much to decrement the priority of the VRRP router if there is a failure in the IPv4 @@ -532,12 +540,10 @@ module ietf-vrrp { } // network } // networks } // track - container virtual-ipv4-addresses { description "Configures the virtual IPv4 address for the VRRP interface."; - list virtual-ipv4-address { key "ipv4-address"; max-elements 16; @@ -546,7 +552,6 @@ module ietf-vrrp { VRRP owner router, the virtual address must match one of the IPv4 addresses configured on the interface corresponding to the virtual router."; - leaf ipv4-address { type inet:ipv4-address; description @@ -562,20 +567,17 @@ module ietf-vrrp { grouping vrrp-ipv6-attributes { description "Group of VRRP attributes for IPv6."; - uses vrrp-common-attributes; - leaf advertise-interval-centi-sec { type uint16 { range "1..4095"; } - units centiseconds; - default 100; + units "centiseconds"; + default "100"; description "Configures the interval that VRRPv3 advertisements are sent from the specified interface."; } - container track { description "Enables the specified VRRP instance to track interfaces @@ -595,30 +597,27 @@ module ietf-vrrp { key "interface"; description "Interface to track."; - leaf interface { type if:interface-ref; - must "/if:interfaces/if:interface[if:name=current()]/" - + "ip:ipv6" { + must '/if:interfaces/if:interface[if:name=current()]/' + + 'ip:ipv6' { description "Interface is IPv6."; } description "Interface to track."; } - leaf priority-decrement { type uint8 { range "1..254"; } - default 10; + default "10"; description "Specifies how much to decrement the priority of the VRRP instance if the interface goes down."; } } // interface } // interfaces - container networks { description "Enables the VRRPv2 or VRRPv3 router instance to track the @@ -637,18 +636,16 @@ module ietf-vrrp { "Enables the specified VRRPv2 or VRRPv3 instance to track an IPv6 network by specifying the prefix of the IPv6 network."; - leaf prefix { type inet:ipv6-prefix; description "The IPv6 prefix of the network to track."; } - leaf priority-decrement { type uint8 { range "1..254"; } - default 10; + default "10"; description "Specifies how much to decrement the priority of the VRRP router if there is a failure in the IPv6 @@ -657,7 +654,6 @@ module ietf-vrrp { } // network } // networks } // track - container virtual-ipv6-addresses { description "Configures the virtual IPv6 address for the @@ -669,7 +665,6 @@ module ietf-vrrp { "Two IPv6 addresses are allowed. The first address must be a link-local address. The second address can be a link-local or global address."; - leaf ipv6-address { type inet:ipv6-address; description @@ -685,7 +680,6 @@ module ietf-vrrp { grouping vrrp-state-attributes { description "Group of VRRP state attributes."; - leaf state { type identityref { base vrrp:vrrp-state-type; @@ -694,20 +688,28 @@ module ietf-vrrp { description "Operational state."; } - leaf is-owner { type boolean; config false; description "Set to 'true' if this virtual router is the owner."; } + leaf effective-priority { + type uint8 { + range "1..255"; + } + config false; + description + "The effect priority of the virtual router taking account + address ownership and any modifications due to + local policy."; + } leaf last-adv-source { type inet:ip-address; config false; description "Last advertised IPv4/IPv6 source address."; } - leaf up-datetime { type yang:date-and-time; config false; @@ -715,25 +717,22 @@ module ietf-vrrp { "The date and time when this virtual router transitioned out of 'init' state."; } - leaf active-down-interval { type uint32; - units centiseconds; + units "centiseconds"; config false; description "Time interval for the backup virtual router to declare 'active down'."; } - leaf skew-time { type uint32; - units microseconds; + units "microseconds"; config false; description "Calculated based on the priority and advertisement interval configuration command parameters. See RFC 3768."; } - leaf last-event { type identityref { base vrrp:vrrp-event-type; @@ -742,7 +741,6 @@ module ietf-vrrp { description "Last reported event."; } - leaf new-active-reason { type new-active-reason-type; config false; @@ -750,12 +748,10 @@ module ietf-vrrp { "Indicates why the virtual router has transitioned to active state."; } - container statistics { config false; description "VRRP statistics."; - leaf discontinuity-datetime { type yang:date-and-time; description @@ -766,67 +762,58 @@ module ietf-vrrp { subsystem, then this node contains the time that the local management subsystem re-initialized itself."; } - leaf active-transitions { type yang:counter32; description "The total number of times that this virtual router's state has transitioned to 'Active'."; } - leaf advertisement-rcvd { type yang:counter64; description "The total number of VRRP advertisements received by this virtual router."; } - leaf advertisement-sent { type yang:counter64; description "The total number of VRRP advertisements sent by this virtual router."; } - leaf interval-errors { - if-feature validate-interval-errors; + if-feature "validate-interval-errors"; type yang:counter64; description "The total number of VRRP advertisement packets received with an advertisement interval different than the interval configured for the local virtual router."; } - leaf priority-zero-pkts-rcvd { type yang:counter64; description "The total number of VRRP packets received by the virtual router with a priority of 0."; } - leaf priority-zero-pkts-sent { type yang:counter64; description "The total number of VRRP packets sent by the virtual router with a priority of 0."; } - leaf invalid-type-pkts-rcvd { type yang:counter64; description "The number of VRRP packets received by the virtual router with an invalid value in the 'type' field."; } - leaf address-list-errors { - if-feature validate-address-list-errors; + if-feature "validate-address-list-errors"; type yang:counter64; description "The total number of packets received with an address list that does not match the locally configured address list for the virtual router."; } - leaf packet-length-errors { type yang:counter64; description @@ -839,7 +826,6 @@ module ietf-vrrp { grouping vrrp-global-state-attributes { description "Group of VRRP global state attributes."; - leaf virtual-routers { type uint32; description @@ -850,11 +836,9 @@ module ietf-vrrp { description "Number of interfaces with VRRP configured."; } - container statistics { description "VRRP global statistics."; - leaf discontinuity-datetime { type yang:date-and-time; description @@ -868,7 +852,6 @@ module ietf-vrrp { then this node contains the time that the local management subsystem re-initialized itself."; } - leaf checksum-errors { type yang:counter64; description @@ -878,7 +861,6 @@ module ietf-vrrp { "RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6. Section 5.2.8"; } - leaf version-errors { type yang:counter64; description @@ -888,7 +870,6 @@ module ietf-vrrp { "RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6. Section 5.2.1"; } - leaf vrid-errors { type yang:counter64; description @@ -898,7 +879,6 @@ module ietf-vrrp { "RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6. Section 5.2.3"; } - leaf ip-ttl-errors { type yang:counter64; description @@ -920,17 +900,14 @@ module ietf-vrrp { augment "/if:interfaces/if:interface/ip:ipv4" { description "Augments IPv4 interface."; - container vrrp { description "Configures VRRP version 2 or 3 for IPv4."; - list vrrp-instance { key "vrid"; description "Defines a virtual router, identified by a VRID, within the IPv4 address space."; - uses vrrp-ipv4-attributes; uses vrrp-state-attributes; } @@ -940,11 +917,9 @@ module ietf-vrrp { augment "/if:interfaces/if:interface/ip:ipv6" { description "Augments IPv6 interface."; - container vrrp { description "Configures VRRP version 3 for IPv6."; - list vrrp-instance { must "derived-from-or-self(version, 'vrrp-v3')" { description @@ -954,7 +929,6 @@ module ietf-vrrp { description "Defines a virtual router, identified by a VRID, within the IPv6 address space."; - uses vrrp-ipv6-attributes; uses vrrp-state-attributes; } @@ -965,7 +939,6 @@ module ietf-vrrp { config false; description "VRRP data at the global level."; - uses vrrp-global-state-attributes; } @@ -1015,7 +988,6 @@ module ietf-vrrp { description "Indicates the interface on which the event has occurred."; } - choice ip-version { mandatory true; description @@ -1032,8 +1004,8 @@ module ietf-vrrp { leaf vrid { type leafref { path "/if:interfaces/if:interface" - + "[if:name = current()/../../vrrp:interface]/" - + "ip:ipv4/vrrp:vrrp/vrrp:vrrp-instance/vrrp:vrid"; + + "[if:name = current()/../../vrrp:interface]/" + + "ip:ipv4/vrrp:vrrp/vrrp:vrrp-instance/vrrp:vrid"; } mandatory true; description @@ -1051,8 +1023,8 @@ module ietf-vrrp { leaf vrid { type leafref { path "/if:interfaces/if:interface" - + "[if:name = current()/../../vrrp:interface]/" - + "ip:ipv6/vrrp:vrrp/vrrp:vrrp-instance/vrrp:vrid"; + + "[if:name = current()/../../vrrp:interface]/" + + "ip:ipv6/vrrp:vrrp/vrrp:vrrp-instance/vrrp:vrid"; } mandatory true; description @@ -1062,7 +1034,6 @@ module ietf-vrrp { } } } - leaf virtual-router-error-reason { type identityref { base vrrp:vrrp-error-virtual-router; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang new file mode 100644 index 000000000..95f1216d0 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang @@ -0,0 +1,472 @@ +module ietf-wdm-path-computation { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-wdm-path-computation"; + prefix "wdm-pc"; + + import ietf-te-path-computation { + prefix "tepc"; + reference + "I-D.ietf-teas-yang-path-computation-22: Yang model + for requesting Path Computation."; + } + + import ietf-te { + prefix "te"; + reference + "I-D.ietf-teas-yang-te-36: A YANG Data Model for Traffic + Engineering Tunnels and Interfaces."; + } + + import ietf-layer0-types { + prefix "l0-types"; + reference + "I-D.ietf-ccamp-rfc9093-bis: A YANG Data Model for Layer 0 + Types."; + } + + import ietf-wdm-tunnel { + prefix "wdm-tnl"; + reference + "I-D.ietf-wdm-tunnel: A YANG Data Model for WDM Tunnels."; + } + + organization + "IETF CCAMP Working Group"; + contact + "WG Web: + WG List: + + Editor: Aihua Guo + + + Editor: Italo Busi + + + Editor: Sergio Belotti + "; + + description + "This module defines a model for requesting + WDM Path Computation. + + 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."; + + revision "2024-02-29" { + description + "Initial version."; + reference + "RFC XXXX: YANG Data Models for requesting Path Computation + in Optical Networks."; + // RFC Ed.: replace XXXX with actual RFC number, update date + // information and remove this note + } + + /* + * Data nodes + */ + + /* + * Augment tunnel attributes + */ + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:tunnel-attributes" { + description + "Augment with WDM tunnel-specific constraints."; + + uses wdm-tnl:wdm-constraint; + } + + /* + * Augment path computation request + */ + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:optimizations/tepc:algorithm/" + + "tepc:metric/tepc:optimization-metric/" + + "tepc:explicit-route-exclude-objects/" + + "tepc:route-object-exclude-object/tepc:type/" + + "tepc:numbered-node-hop" { + description + "Augment with transceiver configurations."; + + uses wdm-tnl:path-transceiver-config; + } + + //??? + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:optimizations/tepc:algorithm/" + + "tepc:metric/tepc:optimization-metric/" + + "tepc:explicit-route-exclude-objects/" + + "tepc:route-object-exclude-object/tepc:type" { + description + "Augment the route hop for the optimization of the explicit + route objects excluded by the path computation of the requested + path."; + case oms-element { + leaf oms-element-uid { + type string; + description + "The unique id of the OMS element."; + } + description + "The OMS element route hop type"; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:optimizations/tepc:algorithm/" + + "tepc:metric/tepc:optimization-metric/" + + "tepc:explicit-route-include-objects/" + + "tepc:route-object-include-object/tepc:type/" + + "tepc:numbered-node-hop" { + description + "Augment with transceiver configurations."; + + uses wdm-tnl:path-transceiver-config; + } + + //??? + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:optimizations/tepc:algorithm/" + + "tepc:metric/tepc:optimization-metric/" + + "tepc:explicit-route-include-objects/" + + "tepc:route-object-include-object/tepc:type" { + description + "Augment the route hop for the optimization of the explicit + route objects included by the path computation of the requested + path."; + case oms-element { + leaf oms-element-uid { + type string; + description + "The unique id of the OMS element."; + } + description + "The OMS element route hop type"; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:explicit-route-objects/" + + "tepc:route-object-exclude-always/tepc:type/" + + "tepc:numbered-node-hop" { + description + "Augment with transceiver configurations."; + + uses wdm-tnl:path-transceiver-config; + } + + //??? + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:explicit-route-objects/" + + "tepc:route-object-exclude-always/tepc:type" { + description + "Augment the route hop for the explicit route objects always + excluded by the path computation of the requested path."; + case oms-element { + leaf oms-element-uid { + type string; + description + "The unique id of the OMS element."; + } + description + "The OMS element route hop type"; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:explicit-route-objects/" + + "tepc:route-object-include-exclude/tepc:type/" + + "tepc:numbered-node-hop" { + description + "Augment with transceiver configurations."; + + uses wdm-tnl:path-transceiver-config; + } + + //??? + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:explicit-route-objects/" + + "tepc:route-object-include-exclude/tepc:type" { + description + "Augment the route hop for the explicit route objects included + or excluded by the path computation of the requested path."; + case oms-element { + leaf oms-element-uid { + type string; + description + "The unique id of the OMS element."; + } + description + "The OMS element route hop type"; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:synchronization/tepc:exclude-objects/tepc:excludes/" + + "tepc:type/tepc:numbered-node-hop" { + description + "Augment with transceiver configurations."; + + uses wdm-tnl:path-transceiver-config; + } + + //??? + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:synchronization/tepc:exclude-objects/tepc:excludes/" + + "tepc:type" { + description + "Augment the route hop for the explicit route objects to always + exclude from synchronized path computation."; + case oms-element { + leaf oms-element-uid { + type string; + description + "The unique id of the OMS element."; + } + description + "The OMS element route hop type"; + } + } + + /* + * Augment path computation response + */ + + augment "/te:tunnels-path-compute/te:output/" + + "te:path-compute-result/tepc:response/" + + "tepc:computed-paths-properties/" + + "tepc:computed-path-properties/tepc:path-properties" { + description + "Augment with additional properties for WDM paths."; + + uses l0-types:l0-path-properties; + } + + augment "/te:tunnels-path-compute/te:output/" + + "te:path-compute-result/tepc:response/" + + "tepc:computed-paths-properties/" + + "tepc:computed-path-properties/tepc:path-properties/" + + "tepc:path-route-objects/tepc:path-route-object/" + + "tepc:type/tepc:numbered-node-hop" { + description + "Augment with transceiver configurations."; + + uses wdm-tnl:path-transceiver-config; + } + + //??? + augment "/te:tunnels-path-compute/te:output/" + + "te:path-compute-result/tepc:response/" + + "tepc:computed-paths-properties/" + + "tepc:computed-path-properties/tepc:path-properties/" + + "tepc:path-route-objects/tepc:path-route-object/" + + "tepc:type" { + description + "Augment the route hop for the route object of the computed + path."; + case oms-element { + leaf oms-element-uid { + type string; + description + "The unique id of the OMS element."; + } + description + "The OMS element route hop type"; + } + } + + /* + * Augment TE label range information + */ + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-in-segment/" + + "tepc:label-restrictions/tepc:label-restriction" { + description + "Augment TE label range information for the ingress segment + of the requested path."; + uses l0-types:wdm-label-range-info; + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-out-segment/" + + "tepc:label-restrictions/tepc:label-restriction" { + description + "Augment TE label range information for the egress segment + of the requested path."; + uses l0-types:wdm-label-range-info; + } + + /* + * Augment TE label. + */ + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:optimizations/tepc:algorithm/" + + "tepc:metric/tepc:optimization-metric/" + + "tepc:explicit-route-exclude-objects/" + + "tepc:route-object-exclude-object/tepc:type/tepc:label/" + + "tepc:label-hop/tepc:te-label/tepc:technology" { + description + "Augment TE label hop for the optimization of the explicit + route objects excluded by the path computation of the requested + path."; + case wdm { + uses l0-types:wdm-label-hop; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:optimizations/tepc:algorithm/" + + "tepc:metric/tepc:optimization-metric/" + + "tepc:explicit-route-include-objects/" + + "tepc:route-object-include-object/tepc:type/tepc:label/" + + "tepc:label-hop/tepc:te-label/tepc:technology" { + description + "Augment TE label hop for the optimization of the explicit + route objects included by the path computation of the requested + path."; + case wdm { + uses l0-types:wdm-label-hop; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:explicit-route-objects/" + + "tepc:route-object-exclude-always/tepc:type/tepc:label/" + + "tepc:label-hop/tepc:te-label/tepc:technology" { + description + "Augment TE label hop for the explicit route objects always + excluded by the path computation of the requested path."; + case wdm { + uses l0-types:wdm-label-hop; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:explicit-route-objects/" + + "tepc:route-object-include-exclude/tepc:type/tepc:label/" + + "tepc:label-hop/tepc:te-label/tepc:technology" { + description + "Augment TE label hop for the explicit route objects included + or excluded by the path computation of the requested path."; + case wdm { + uses l0-types:wdm-label-hop; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-in-segment/" + + "tepc:label-restrictions/tepc:label-restriction/" + + "tepc:label-start/tepc:te-label/tepc:technology" { + description + "Augment TE label range start for the ingress segment + of the requested path."; + case wdm { + uses l0-types:wdm-label-start-end; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-in-segment/" + + "tepc:label-restrictions/tepc:label-restriction/" + + "tepc:label-end/tepc:te-label/tepc:technology" { + description + "Augment TE label range end for the ingress segment + of the requested path."; + case wdm { + uses l0-types:wdm-label-start-end; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-in-segment/" + + "tepc:label-restrictions/tepc:label-restriction/" + + "tepc:label-step/tepc:technology" { + description + "Augment TE label range step for the ingress segment + of the requested path."; + case wdm { + uses l0-types:wdm-label-step; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-out-segment/" + + "tepc:label-restrictions/tepc:label-restriction/" + + "tepc:label-start/tepc:te-label/tepc:technology" { + description + "Augment TE label range start for the egress segment + of the requested path."; + case wdm { + uses l0-types:wdm-label-start-end; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-out-segment/" + + "tepc:label-restrictions/tepc:label-restriction/" + + "tepc:label-end/tepc:te-label/tepc:technology" { + description + "Augment TE label range end for the egress segment + of the requested path."; + case wdm { + uses l0-types:wdm-label-start-end; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:path-request/tepc:path-out-segment/" + + "tepc:label-restrictions/tepc:label-restriction/" + + "tepc:label-step/tepc:technology" { + description + "Augment TE label range end for the egress segment + of the requested path."; + case wdm { + uses l0-types:wdm-label-step; + } + } + + augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + + "tepc:synchronization/tepc:exclude-objects/tepc:excludes/" + + "tepc:type/tepc:label/tepc:label-hop/" + + "tepc:te-label/tepc:technology" { + description + "Augment TE label hop for the explicit route objects to always + exclude from synchronized path computation."; + case wdm { + uses l0-types:wdm-label-hop; + } + } + + augment "/te:tunnels-path-compute/te:output/" + + "te:path-compute-result/tepc:response/" + + "tepc:computed-paths-properties/" + + "tepc:computed-path-properties/tepc:path-properties/" + + "tepc:path-route-objects/tepc:path-route-object/" + + "tepc:type/tepc:label/" + + "tepc:label-hop/tepc:te-label/tepc:technology" { + description + "Augment TE label hop for the route object of the computed + path."; + case wdm { + uses l0-types:wdm-label-hop; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2023-10-22.yang b/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang similarity index 71% rename from experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2023-10-22.yang rename to experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang index b79d751bc..6099a60ee 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2023-10-22.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-wdm-tunnel@2024-07-02.yang @@ -6,16 +6,21 @@ module ietf-wdm-tunnel { import ietf-te { prefix "te"; - revision-date "2023-06-16"; reference - "I-D.ietf-teas-yang-te-34: A YANG Data Model for Traffic - Engineering Tunnels, Label Switched Paths and Interfaces."; + "RFC YYYY: A YANG Data Model for Traffic Engineering Tunnels, + Label Switched Paths and Interfaces."; } + /* RFC Ed.: replace YYYY with the number assigned + to the RFC once draft-ietf-teas-yang-te becomes an RFC.*/ import ietf-layer0-types { prefix "l0-types"; } + import ietf-yang-types { + prefix "yang"; + } + organization "IETF CCAMP Working Group"; contact @@ -58,7 +63,7 @@ module ietf-wdm-tunnel { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision "2023-10-22" { + revision "2024-07-02" { description "Updated revision with combined WSON and Flexi-grid tunnel YANG model"; @@ -69,42 +74,68 @@ module ietf-wdm-tunnel { // information and remove this note } - /* - * Identities - */ - identity lower-first-wavelength-assignment { - base l0-types:wavelength-assignment; - description - "Assign first available wavelength starting from the - lowest frequency towards the highest frequency in - the allowable frequency range."; - } - - identity upper-first-wavelength-assignment { - base l0-types:wavelength-assignment; - description - "Assign first available wavelength starting from the - highest frequency towards the lowest frequency in - the allowable frequency range."; - } - /* * Groupings */ - grouping tx-tune-constraints { - description - "This grouping defines the transmitter's allowed tuning - frequency range."; + grouping additional-transceiver-configuration-constraints { + description + "This grouping defines additional optional constraints for + transceiver configurations related to tunnel selection. + These constraints further limit the resources available + to the tunnel. All constraints operate inclusively, using + an AND logic. For example, if a specific frequency range + is selected, the tunnel must also be constrained to match + only that range. + + When these constraints are combined with the operational + mode, the list of operational modes should exclude any + modes that cannot satisfy the additional constraints. + For instance, if the frequency is restricted to the C-band, + the list of operational modes should not include any modes + applicable only to the L-band."; + leaf otsi-carrier-frequency { + type l0-types:frequency-thz; + description + "OTSi carrier frequency, i.e. configured transmitter + frequency."; + } container tx-tune-constraints { description - "Transmitter's allowed tuning frequency range."; + "The permissible tuning frequency range for the + transmitter."; uses l0-types:transmitter-tuning-range; } + + leaf-list line-coding-bitrate { + type identityref { + base l0-types:line-coding; + } + description + "The list of the bit rate/line coding of the optical + tributary signal that constrains the configuration of + the transceiver."; + reference + "ITU-T G.698.2 section 7.1.2"; + } + + leaf tx-channel-power { + type l0-types:power-dbm; + description + "The preferred channel transmit power."; + } + + leaf preferred-rx-channel-power { + type l0-types:power-dbm; + description + "The preferred channel received power."; + } + + uses l0-types:l0-path-constraints; } - grouping transceiver-constraints-grp { + grouping transceiver-constraints { description "This grouping defines constraints for transceiver configurations"; @@ -117,13 +148,13 @@ module ietf-wdm-tunnel { "List of operational mode ids of the transceiver."; } - uses tx-tune-constraints; + uses additional-transceiver-configuration-constraints; } - grouping path-transceiver-config-grp { + grouping transceiver-config { description - "This grouping defines explicit transceiver configurations - on an end-to-end path."; + "This grouping defines explicit transceiver + configurations."; leaf transponder-id { type uint32; @@ -131,49 +162,182 @@ module ietf-wdm-tunnel { } list transceivers { - key "lane-id"; + key "otsi-carrier-id"; description - "List of transceivers for all lanes."; + "List of transceivers used within the transponder."; - leaf lane-id { - type uint8; - must '. >= 1' { - error-message - "Lane identifier must be greater than or equal to 1."; - } + leaf otsi-carrier-id { + type uint16; description - "Lane identifier starting from 1."; + "OTSi carrier identifier associated with the + transceiver."; } leaf transceiver-id { type uint32; description "transceiver identifier"; } - } - uses transceiver-constraints-grp; + uses transceiver-constraints; + } } - grouping path-transceiver-grp { + grouping path-transceiver-config { description - "This grouping defines group of transceivers on a node - functioning as starting, terminating transceivers, or - regenerators."; + "This grouping defines a set of transceivers on a node, + serving as either starting transceivers, terminating + transceivers, or regenerators. The position of each + transceiver is determined by the direction of the path. + For instance, consider the following uni-directional + path with nodes labeled A, B, and C, where a, b1, b2, + and c correspond to transceivers on the nodes: + A(a) --> (b1)B(b2) --> (c)C + + - Use path-out-transceiver for the starting transceiver + a and the regenerator transceiver b2. + - Use path-in-transceiver for the terminating transceiver + c and the regenerator transceiver b1."; container path-in-transceiver { description "Constraints for incoming direction transceiver configurations"; - uses path-transceiver-config-grp; + uses transceiver-config; } container path-out-transceiver { description "Constraints for outgoing direction transceiver - configurations"; + configurations."; - uses path-transceiver-config-grp; + uses transceiver-config; + } + } + + grouping transceiver-measured-parameters { + description + "Measured transceiver parameters."; + + container pre-fec-ber { + description + "Timestamp and value of the Pre-FEC Bit Error Rate (BER) + of the received signal."; + + leaf timestamp { + type yang:timestamp; + description + "Timestamp associated with the Pre-FEC BER."; + } + + leaf value { + type decimal64 { + fraction-digits 18; + } + description + "Pre-FEC BER of the received signal."; + } + } + + container q-factor { + description + "Timestamp and value of the estimated Q-factor based on + the pre-FEC BER."; + + leaf timestamp { + type yang:timestamp; + description + "Timestamp associated with the Q-factor."; + } + + leaf value { + type l0-types:decimal-2-or-null; + units "dB"; + description + "Estimated Q-factor based on the pre-FEC BER."; + } + } + } + + grouping transceiver-state { + description + "This grouping includes common transceiver state + information."; + + leaf transponder-id { + type uint32; + description "transponder identifier"; + } + + list transceivers { + key "transceiver-id"; + description + "List of transceivers used within the transponder."; + + leaf otsi-carrier-id { + type uint16; + description + "OTSi carrier identifier associated with the + transceiver."; + } + leaf transceiver-id { + type uint32; + description + "transceiver identifier"; + } + leaf otsi-carrier-frequency { + type union { + type l0-types:frequency-thz; + type empty; + } + description + "OTSi carrier frequency, equivalent to the + actual configured transmitter frequency, when known, or + an empty value when unknown."; + } + + uses l0-types:common-transceiver-readonly-param; + } + } + + grouping e2e-media-channel-info { + description + "This grouping includes end-to-end media channel path id + information."; + + leaf-list e2e-mc-path-id { + type uint16; + description + "The list of the possible end-to-end Media Channel + (e2e-MC) paths associated with the OTSi which have + different optical impairments. + + This list is meaningful in case the OTSi can be associated + with multiple end-to-end Media Channel (e2e-MC) paths + (e.g., when OPS protection is configured). + + The list can be empty when the OTSi has only one + e2e-MC path."; + } + } + + grouping path-transceiver-state { + description + "This grouping defines the state of transceivers on a + node functioning as starting, terminating transceivers, + or regenerators."; + + container path-in-transceiver { + description + "Transceiver state on the incoming direction."; + + uses transceiver-state; + } + container path-out-transceiver { + description + "Transceiver state on the outgoing direction."; + + uses transceiver-state; } } @@ -186,7 +350,7 @@ module ietf-wdm-tunnel { description "Constraints for transceiver configurations"; - uses transceiver-constraints-grp; + uses transceiver-constraints; } } @@ -199,7 +363,6 @@ module ietf-wdm-tunnel { "WDM tunnel constraints."; uses global-transceiver-constraint; - uses l0-types:l0-path-constraints; leaf use-regen { type boolean; @@ -251,8 +414,7 @@ module ietf-wdm-tunnel { planning considerations."; } leaf delta-power { - type l0-types:gain-in-db-or-null; - units "dB"; + type l0-types:power-ratio; description "Delta power in dB indicating the per-channel power deviation from the nominal power per channel at the @@ -261,23 +423,6 @@ module ietf-wdm-tunnel { } } - grouping wdm-path-state { - description - "Grouping for WDM path state."; - - container wdm-path-state { - config false; - description - "WDM path state."; - - leaf gsnr { - type l0-types:snr; - description - "Actual received GSNR for the WDM path."; - } - } - } - /* * Data nodes */ @@ -298,13 +443,13 @@ module ietf-wdm-tunnel { * transceivers. */ augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" - + "te:primary-path/te:explicit-route-objects-always/" + + "te:primary-path/te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/" + "te:numbered-node-hop/te:numbered-node-hop" { description "Augment TE primary path with transceiver configurations."; - uses path-transceiver-grp; + uses path-transceiver-config; } /* @@ -314,40 +459,14 @@ module ietf-wdm-tunnel { */ augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + "te:primary-path/te:primary-reverse-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/" + "te:numbered-node-hop/te:numbered-node-hop" { description "Augment TE primary reverse path with transceiver configurations."; - uses path-transceiver-grp; - } - - /* - * Computed path properties for primary path. - */ - augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" - + "te:primary-path/te:computed-paths-properties/" - + "te:computed-path-properties/te:path-properties" { - description - "Augment TE computed primary path with WDM properties."; - - uses l0-types:l0-path-properties; - } - - /* - * Computed path properties for primary reverse path. - */ - augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" - + "te:primary-path/te:primary-reverse-path/" - + "te:computed-paths-properties/" - + "te:computed-path-properties/te:path-properties" { - description - "Augment TE computed primary reverse path with WDM - properties."; - - uses l0-types:l0-path-properties; + uses path-transceiver-config; } /* @@ -356,13 +475,13 @@ module ietf-wdm-tunnel { * transceivers. */ augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/" - + "te:secondary-path/te:explicit-route-objects-always/" + + "te:secondary-path/te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/" + "te:numbered-node-hop/te:numbered-node-hop" { description "Augment TE secondary path with transceiver configurations."; - uses path-transceiver-grp; + uses path-transceiver-config; } /* @@ -373,50 +492,228 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-reverse-paths/" + "te:secondary-reverse-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/" + "te:numbered-node-hop/te:numbered-node-hop" { description "Augment TE secondary reverse path with transceiver configurations."; - uses path-transceiver-grp; + uses path-transceiver-config; + } + + /* + * Computed transceiver properties for primary path. + */ + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + + "te:primary-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop" { + description + "Augment TE computed primary path with transceiver + properties."; + + uses path-transceiver-state; + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + + "te:primary-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; + uses l0-types:l0-path-properties; + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + + "te:primary-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; + + uses l0-types:l0-path-properties; + } + + /* + * Computed transceiver properties for primary reverse path. + */ + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + + "te:primary-path/te:primary-reverse-path/" + + "te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop" { + description + "Augment TE computed primary path with transceiver + properties."; + + uses path-transceiver-state; + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + + "te:primary-path/te:primary-reverse-path/" + + "te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; + + uses l0-types:l0-path-properties; + } + + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/" + + "te:primary-path/te:primary-reverse-path/" + + "te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; + + uses l0-types:l0-path-properties; } /* - * Computed path properties for secondary path. + * Computed transceiver properties for secondary path. */ augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/" + "te:secondary-path/te:computed-paths-properties/" - + "te:computed-path-properties/te:path-properties" { + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop" { + description + "Augment TE computed primary path with transceiver + properties."; + + uses path-transceiver-state; + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/" + + "te:secondary-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" { description - "Augment TE computed secondary path with WDM properties."; + "Augment transceiver with additional estimated parameters."; + + uses l0-types:l0-path-properties; + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/" + + "te:secondary-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; uses l0-types:l0-path-properties; } /* - * Computed path properties for secondary reverse path. + * Computed transceiver properties for secondary reverse path. */ augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths/" + "te:secondary-reverse-path/te:computed-paths-properties/" - + "te:computed-path-properties/te:path-properties" { + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop" { description - "Augment TE computed secondary reverse path with WDM + "Augment TE computed primary path with transceiver properties."; + uses path-transceiver-state; + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths/" + + "te:secondary-reverse-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; + + uses l0-types:l0-path-properties; + } + + augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths/" + + "te:secondary-reverse-path/te:computed-paths-properties/" + + "te:computed-path-properties/te:path-properties/" + + "te:path-route-objects/te:path-route-object/" + + "te:type/te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional estimated parameters."; + uses l0-types:l0-path-properties; } /* - * WDM path state + * Actual transceiver state. */ augment "/te:te/te:lsps/te:lsp/" - + "te:lsp-actual-route-information" { + + "te:lsp-actual-route-information/" + + "te:lsp-actual-route-information/te:type/" + + "te:numbered-node-hop/te:numbered-node-hop" { + description + "Augment TE LSP with WDM path state."; + uses path-transceiver-state; + } + + augment "/te:te/te:lsps/te:lsp/" + + "te:lsp-actual-route-information/" + + "te:lsp-actual-route-information/te:type/" + + "te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" { description - "Augment TE LSP to with WDM path state."; + "Augment transceiver with additional measured parameters."; - uses wdm-path-state; + uses transceiver-measured-parameters; + } + + augment "/te:te/te:lsps/te:lsp/" + + "te:lsp-actual-route-information/" + + "te:lsp-actual-route-information/te:type/" + + "te:numbered-node-hop/te:numbered-node-hop/" + + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" { + description + "Augment transceiver with additional measured parameters."; + + uses transceiver-measured-parameters; + } + + augment "/te:te/te:lsps/te:lsp/" + + "te:lsp-actual-route-information/" + + "te:lsp-actual-route-information/te:type/" + + "te:numbered-link-hop/te:numbered-link-hop" { + description + "Augment TE LSP with end-to-end media channel + information."; + + uses e2e-media-channel-info; + } + + augment "/te:te/te:lsps/te:lsp/" + + "te:lsp-actual-route-information/" + + "te:lsp-actual-route-information/te:type/" + + "te:unnumbered-link-hop/te:unnumbered-link-hop" { + description + "Augment TE LSP with end-to-end media channel + information."; + + uses e2e-media-channel-info; } /* @@ -529,7 +826,7 @@ module ietf-wdm-tunnel { */ augment "/te:te/te:globals/te:named-path-constraints/" + "te:named-path-constraint/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -543,7 +840,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:globals/te:named-path-constraints/" + "te:named-path-constraint/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-include-exclude/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -662,7 +959,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -675,7 +972,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-include-exclude/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -812,7 +1109,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" + "te:primary-reverse-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/" + "te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { @@ -828,7 +1125,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:primary-paths/te:primary-path/" + "te:primary-reverse-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-include-exclude/" + "te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { @@ -970,7 +1267,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-paths/te:secondary-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -983,7 +1280,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-paths/te:secondary-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-include-exclude/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -1030,6 +1327,7 @@ module ietf-wdm-tunnel { uses l0-types:wdm-label-step; } } + augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-paths/te:secondary-path/" + "te:path-out-segment/te:label-restrictions/" @@ -1115,7 +1413,7 @@ module ietf-wdm-tunnel { augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-reverse-paths/te:secondary-reverse-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-exclude-always/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description @@ -1126,9 +1424,10 @@ module ietf-wdm-tunnel { uses l0-types:wdm-label-hop; } } + augment "/te:te/te:tunnels/te:tunnel/" + "te:secondary-reverse-paths/te:secondary-reverse-path/" - + "te:explicit-route-objects-always/" + + "te:explicit-route-objects/" + "te:route-object-include-exclude/te:type/te:label/" + "te:label-hop/te:te-label/te:technology" { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang new file mode 100644 index 000000000..340d1772f --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed-library@2023-11-05.yang @@ -0,0 +1,94 @@ +module ietf-yang-full-embed-library { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-yang-full-embed-library"; + prefix emblib; + + import ietf-datastores { + prefix ds; + reference + "RFC 8342: Network Management Datastore Architecture + (NMDA)"; + } + import ietf-yang-library { + prefix yanglib; + reference + "RFC 8525: YANG Library"; + } + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + contact + "WG Web: + WG List: + + Editor: "; + description + "This module augments the ietf-yang-library module to indicate + which modules are available in each embedding point. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2023 IETF Trust and the persons identified as + authors of the code. All rights reserved. + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; + + revision 2023-11-05 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Full Embed"; + } + + augment "/yanglib:yang-library" { + description + "Add mapping for embedding points"; + list embedding-points { + key "datastore embedding-path"; + description + "Mapping of each embedding point to its schema. An + embedding-point is defined by a datastore and a YANG + path to the anydata node containing the embedded schema."; + leaf datastore { + type ds:datastore-ref; + description + "Identity of the datastore containing the embedding point"; + } + leaf embedding-path { + type yang:xpath1.0; + description + "Path to the embedding point in the datastore. + The XPath must be an absolute path. It is evaluated in the + context of the specified datastore."; + } + leaf schema { + type leafref { + path "../../yanglib:schema/yanglib:name"; + } + mandatory true; + description + "A reference to the schema supported by the specified + embedding point. All non-import modules of the schema are + implemented in the given embedding point with their + associated features and deviations."; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang new file mode 100644 index 000000000..4c7e8d070 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-full-embed@2023-11-05.yang @@ -0,0 +1,61 @@ +module ietf-yang-full-embed { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-full-embed"; + prefix full; + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + contact + "WG Web: + WG List: + + Editor: "; + description + "This module defines a YANG extension statement that can be used + to incorporate data models defined in other YANG modules in a + module. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2023 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; + + revision 2023-11-05 { + description + "Initial revision."; + reference + "RFC XXXX: YANG Full Embed"; + } + + extension embed { + argument prefix; + description + "The argument 'prefix' MUST be the prefix of a module imported + by the calling module. + + The 'embed' statement MUST NOT be used in a YANG version 1 + module, neither explicitly nor via a 'uses' statement. + + The 'embed' statement MAY be present as a substatement of + 'anydata' and MUST NOT be present elsewhere. + + Whenever a sequence of 'embed' statements is used, the schema + tree defined by the set of the included modules is inserted + in the schema tree of the calling module, at the place where + the sequence is declared"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-library-augmentedby@2023-10-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-library-augmentedby@2023-10-27.yang new file mode 100644 index 000000000..8f786c70b --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-library-augmentedby@2023-10-27.yang @@ -0,0 +1,86 @@ +module ietf-yang-library-augmentedby { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-library-augmentedby"; + prefix yanglib-aug; + + import ietf-yang-library { + prefix yanglib; + reference + "RFC 8525: YANG Library"; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Author: Zhuoyao Lin + + Benoit Claise + + IGNACIO DOMINGUEZ MARTINEZ-CASANUEVA + "; + + description + "This module augments the ietf-yang-library defined in + [RFC8525] to provide not only the deviation list, but also + the augmented-by list, in order to give sufficient + information about the YANG modules reverse dependency. It + facilitates the process of obtaining the entire + dependencies of YANG module. + + 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) 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. "; + + revision 2023-10-27 { + description + "Added list augmented-by in yang-library/module-set/module to + make the module store the entire reverse dependency information + (augmented-by and deviation)."; + reference + "RFC XXXX: Support of augmentedby in ietf-yang-library"; + } + + augment "/yanglib:yang-library/yanglib:module-set/yanglib:module" { + description + "Augment the augmented-by list from module info with the + module-augmented-by grouping" ; + + leaf-list augmented-by { + type leafref { + path "../../yanglib:module/yanglib:name"; + } + + description + "Leaf-list of the augmentation used by this server to + modify the conformance of the module associated with + this entry. Note that the same module can be used for + augmented-by for multiple modules, so the same + entry MAY appear within multiple 'module' entries. + + This reference MUST NOT (directly or indirectly) + refer to the module being augmented. + + Robust clients may want to make sure that they handle a + situation where a module augments itself (directly or + indirectly) gracefully."; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-library-rfc7895-augmentedby@2023-10-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-library-rfc7895-augmentedby@2023-10-27.yang new file mode 100644 index 000000000..ac2332298 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-library-rfc7895-augmentedby@2023-10-27.yang @@ -0,0 +1,112 @@ +module ietf-yang-library-rfc7895-augmentedby { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-library-rfc7895-augmentedby"; + prefix yanglib-aug; + + import ietf-yang-library { + prefix yanglib; + revision-date 2016-06-21; + reference + "RFC 7895: YANG Module Library."; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Author: Zhuoyao Lin + + Author: Benoit Claise + + Author: IGNACIO DOMINGUEZ MARTINEZ-CASANUEVA + "; + + description + "This document augments the ietf-yang-library to provide the + augmented-by list. It facilitates the process of obtaining + the entire dependencies between YANG modules, by directly + querying the server's YANG module. + + 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) 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. "; + + revision 2023-10-27 { + description + "Added list augmentedby in yang-library/modules-state/module to + make the module store the entire reverse dependency information + (augmentedby and deviation)."; + reference + "RFC XXXX: Support of augmentedby in ietf-yang-library + defined in RFC7895"; + } + + augment "/yanglib:modules-state/yanglib:module" { + description + "Augment the augmentedby from module info with the + module-augmented-by grouping" ; + uses yanglib-aug:module-state-augmented-by; + } + + /* + * Groupings + */ + + grouping module-state-augmented-by { + description + "This grouping defines a list with keys being the module + name and revison. The list contains the augmented-by list."; + + list augmented-by { + key "name revision"; + status deprecated; + + description + "List of YANG augmented-by module names and revisions + used by this server to modify the conformance of + the module associated with this entry. Note that + the same module can be used for augmented-by for + multiple modules, so the same entry MAY appear + within multiple 'module' entries. + + The augment module MUST be present in the 'module' + list, with the same name and revision values. + The 'conformance-type' value will be 'implement' for + the augment module."; + + leaf name { + type leafref { + path "/yanglib:modules-state/yanglib:module/yanglib:name"; + } + description + "Identifies a given module in the YANG Library by + its name."; + } + + leaf revision { + type leafref { + path "/yanglib:modules-state/yanglib:module/yanglib:revision"; + } + description + "Revision of the module"; + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-library-semver@2024-03-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-library-semver@2024-03-02.yang new file mode 100644 index 000000000..99ad72d97 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-library-semver@2024-03-02.yang @@ -0,0 +1,144 @@ +module ietf-yang-library-semver { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-yang-library-semver"; + prefix yl-semver; + + import ietf-yang-semver { + prefix ys; + reference + "XXXX: YANG Semantic Versioning"; + } + import ietf-yang-library { + prefix yanglib; + reference + "RFC 8525: YANG Library"; + } + + organization + "IETF NETMOD (Network Modeling) Working Group"; + contact + "WG Web: + WG List: + + Author: Joe Clarke + + + Author: Reshad Rahman + + + Author: Robert Wilton + + + Author: Balazs Lengyel + + + Author: Jason Sterne + "; + description + "This module contains augmentations to YANG Library to add module + and submodule level version identifiers. + + 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 + (http://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + // RFC Ed.: replace XXXX (including in the imports above) with + // actual RFC number and remove this note. + // RFC Ed.: please replace ys:version with 1.0.0 and + // remove this note. + + revision 2024-03-02 { + ys:version "1.0.0-draft-ietf-netmod-yang-semver-14"; + description + "Initial revision"; + reference + "XXXX: YANG Semantic Versioning"; + } + + // library 1.0 modules-state is not augmented with version + + augment "/yanglib:yang-library/yanglib:module-set/yanglib:module" { + description + "Add a version to module information"; + leaf version { + type ys:version; + description + "The version associated with this module revision. + The value MUST match the version value in the + specific revision of the module loaded in this module-set."; + reference + "XXXX: YANG Semantic Versioning; + Section 7.1.1, Advertising version"; + } + } + + augment + "/yanglib:yang-library/yanglib:module-set/yanglib:module/" + + "yanglib:submodule" { + description + "Add a version to submodule information"; + leaf version { + type ys:version; + description + "The version associated with this submodule revision. + The value MUST match the version value in the + specific revision of the submodule included by the module + loaded in this module-set."; + reference + "XXXX: YANG Semantic Versioning; + Section 7.1.1, Advertising version"; + } + } + + augment "/yanglib:yang-library/yanglib:module-set/" + + "yanglib:import-only-module" { + description + "Add a version to module information"; + leaf version { + type ys:version; + description + "The version associated with this module revision. + The value MUST match the version value in the + specific revision of the module included in this + module-set."; + reference + "XXXX: YANG Semantic Versioning; + Section 7.1.1, Advertising version"; + } + } + + augment "/yanglib:yang-library/yanglib:module-set/" + + "yanglib:import-only-module/yanglib:submodule" { + description + "Add a version to submodule information"; + leaf version { + type ys:version; + description + "The version associated with this submodule revision. + The value MUST match the version value in the specific + revision of the submodule included by the import-only-module + loaded in this module-set."; + reference + "XXXX: Updated YANG Module Revision Handling; + Section 7.1.1, Advertising version"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-provenance@2024-02-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-provenance@2024-02-28.yang new file mode 100644 index 000000000..912fb965a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-provenance@2024-02-28.yang @@ -0,0 +1,54 @@ +module ietf-yang-provenance { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-yang-provenance"; + prefix iyangprov; + + organization "IETF OPSAWG (Operations and Management Area Working Group)"; + contact + "WG Web: + WG List: + + Authors: Alex Huang Feng + + Diego Lopez + + Antonio Pastor + + Henk Birkholz + "; + + description + "Defines a binary provenance-signature type to be used in other YANG + modules. + + 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-02-28 { + description + "First revision"; + reference + "RFC XXXX: Applying COSE Signatures for YANG Data Provenance"; + } + + typedef provenance-signature { + type binary; + description + "The provenance-signature type represents a digital signature + corresponding to the associated YANG element. The signature is based + on COSE and generated using a canonicalized version of the + associated element."; + reference + "RFC XXXX: Applying COSE Signatures for YANG Data Provenance"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-noti-filter@2024-05-31.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-noti-filter@2024-05-31.yang new file mode 100644 index 000000000..298120655 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-noti-filter@2024-05-31.yang @@ -0,0 +1,91 @@ +module ietf-yang-push-noti-filter { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-push-noti-filter"; + prefix ypf; + import ietf-subscribed-notifications { + prefix sn; + } + import ietf-yang-push { + prefix yp; + revision-date 2019-09-09; + } + + organization "IETF NETCONF(Network Configuration) Working Group"; + contact + "ZTE Corporation + Nanjing Institute of ZTE Corporation + + No.68 Zijinghua Rd. Yuhuatai District, Nanjing, China + + Tel: +86-25-52870000"; + + description + "This module augments the YANG push subscription RPCs. + + Copyright (c) 2023 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Simplified BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + 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-05-31 { + description + "First revision"; + reference + "RFC XXXX: Filter of Configuration Change Notifications + Subscription"; + } + + augment "/sn:establish-subscription/sn:input/yp:update-trigger/" + + "yp:on-change/yp:on-change" { + leaf excluded-self-change { + type enumeration { + enum enable { + description + "Enable excluded-self-change."; + } + enum disable { + description + "Disable excluded-self-change."; + } + } + description + "Used to restrict a push-change-update notification that + triggered by the subscriber self if need report to + subscriber."; + } + + description + "This augmentation adds additional subscription parameters to + the establish-subscription RPC."; + } + + augment "/sn:modify-subscription/sn:input/yp:update-trigger/" + + "yp:on-change/yp:on-change" { + leaf excluded-self-change { + type enumeration { + enum enable { + description + "Enable excluded-self-change."; + } + enum disable { + description + "Disable excluded-self-change."; + } + } + + description + "Used to restrict a push-change-update notification that + triggered by the subscriber self if need report to subscriber."; + } + description + "This augmentation adds additional subscription parameters to the + modify-subscription RPC."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-10-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2024-06-16.yang similarity index 58% rename from experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-10-17.yang rename to experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2024-06-16.yang index 3f0212f81..38d7b7846 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2023-10-17.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-push-revision@2024-06-16.yang @@ -8,28 +8,22 @@ module ietf-yang-push-revision { reference "RFC 8639: Subscription to YANG Notifications"; } - import ietf-yang-push { - prefix yp; - rev:recommended-min "2019-09-09"; - reference - "RFC 8641: Subscriptions to YANG Datastores"; - } import ietf-yang-revisions { prefix rev; reference - "RFC XXXX: draft-ietf-netmod-yang-module-versioning-06, + "RFC YYYY: draft-ietf-netmod-yang-module-versioning-11, Updated YANG Module Revision Handling"; } import ietf-yang-types { prefix yang; - rev:recommended-min "2013-07-15"; + rev:recommended-min-date "2013-07-15"; reference "RFC 6991: Common YANG Data Types."; } import ietf-yang-semver { prefix ysver; reference - "RFC XXXX: draft-ietf-netmod-yang-semver-08, YANG Semantic + "RFC ZZZZ: draft-ietf-netmod-yang-semver-15, YANG Semantic Versioning"; } @@ -62,7 +56,7 @@ module ietf-yang-push-revision { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-10-17 { + revision 2024-06-16 { description "First revision"; reference @@ -83,39 +77,40 @@ module ietf-yang-push-revision { base sn:modify-subscription-error; description "Revision not supported. This failure can be due to subscribing - to a specific revision not supported by the publisher."; + to a specific revision not supported by the publisher."; } identity revision-label-unsupported { base sn:establish-subscription-error; base sn:modify-subscription-error; description - "Revision-label not supported. This failure can be due to subscribing - to a specific revision-label not supported by the publisher."; + "Revision-label not supported. This failure can be due to + subscribing to a specific revision-label not supported by the publisher."; } identity incompatible-revision-and-revision-label { base sn:establish-subscription-error; base sn:modify-subscription-error; description - "The combination of revision and the revision-label are incompatible. - This failure happens when the revision and the revision-label are both specified - in the RPC and the YANG module supported by the publisher does not support one of - the revision or the revision-label."; + "The combination of revision and the revision-label are + incompatible. This failure happens when the revision and the + revision-label are both specified in the RPC and the YANG + module supported by the publisher does not support one of the + revision or the revision-label."; } grouping yang-push-module-version-config { description "This grouping combines the module name, the revision and - revision-label leaves. This grouping is to be used for configuration and the - leaves are not mandatory."; + revision-label leaves. This grouping is to be used for + configuration and the leaves are not mandatory."; leaf module-name { type yang:yang-identifier; description "This references the YANG module name."; } leaf revision { - type rev:revision-date-or-label; + type rev:revision-date; description "This references the YANG module revision to be sent in the subscription."; @@ -123,7 +118,7 @@ module ietf-yang-push-revision { leaf revision-label { type ysver:version; description - "This references the YANG module semversion to be sent in the + "This references the YANG module semantic version to be sent in the subscription."; } } @@ -131,9 +126,10 @@ module ietf-yang-push-revision { grouping yang-push-module-version { description "This grouping combines the module name, the revision and - revision-label leaves. This grouping is to be used for read-only cases such - as the content of YANG push Notifications. The module-name and revision are - mandatory and MUST be present in the data."; + revision-label leaves. This grouping is to be used for + read-only cases such as the content of YANG push Notifications. + The module-name and revision are mandatory and MUST be present + in the data."; leaf module-name { type yang:yang-identifier; config false; @@ -142,7 +138,7 @@ module ietf-yang-push-revision { "This references the YANG module name."; } leaf revision { - type rev:revision-date-or-label; + type rev:revision-date; config false; mandatory true; description @@ -152,7 +148,7 @@ module ietf-yang-push-revision { leaf revision-label { type ysver:version; description - "This references the YANG module semversion of the sent + "This references the YANG module semantic version of the sent notification message."; } } @@ -175,7 +171,7 @@ module ietf-yang-push-revision { description "This grouping defines a list of yang-push-module-version-config grouping."; - list module-version { + list module-version-config { key "module-name"; description "List of yang-push-module-version-config grouping. The revision @@ -184,101 +180,49 @@ module ietf-yang-push-revision { } } - // Filters - augment "/sn:filters/sn:stream-filter" { - description - "Augment the filters from subscribed notifications with a list - of yang-push-module-version-config grouping."; - uses ypr:yang-push-module-version-config-list; - } - augment "/sn:filters/yp:selection-filter" { - description - "Augment the filters from YANG push with a list of - yang-push-module-version grouping."; - uses ypr:yang-push-module-version-config-list; - } - // Subscription parameters - augment "/sn:establish-subscription/sn:input/sn:target/sn:stream" - + "/sn:stream-filter/sn:within-subscription" { + augment "/sn:establish-subscription/sn:input" { + if-feature "yang-push-revision-supported"; description "Augment the establish-subscription RPC from the ietf-subscribed-notifications YANG module with the yang-push-module-version-config-list grouping."; uses ypr:yang-push-module-version-config-list; } - augment "/sn:establish-subscription/sn:input/sn:target" - + "/yp:datastore/yp:selection-filter/yp:within-subscription" { - description - "Augment the establish-subscription RPC from the ietf-yang-push - YANG module with the yang-push-module-version-config-list - grouping."; - uses ypr:yang-push-module-version-config-list; - } - augment "/sn:modify-subscription/sn:input/sn:target/sn:stream" - + "/sn:stream-filter/sn:within-subscription" { + augment "/sn:modify-subscription/sn:input" { + if-feature "yang-push-revision-supported"; description "Augment the modify-subscription RPC from the ietf-subscribed-notifications YANG module with the yang-push-module-version-config-list grouping."; uses ypr:yang-push-module-version-config-list; } - augment "/sn:modify-subscription/sn:input/sn:target/yp:datastore" - + "/yp:selection-filter/yp:within-subscription" { - description - "Augment the modify-subscription RPC from the ietf-yang-push - YANG module with the yang-push-module-version-config-list - grouping."; - uses ypr:yang-push-module-version-config-list; - } // Subscription notifications - augment "/sn:subscription-started/sn:target/sn:stream" - + "/sn:stream-filter/sn:within-subscription" { + augment "/sn:subscription-started" { + if-feature "yang-push-revision-supported"; description "Augment the subscription-started notification from the ietf-subscribed-notifications YANG module with the yang-push-module-version-list grouping."; uses ypr:yang-push-module-version-list; } - augment "/sn:subscription-started/sn:target/yp:datastore" - + "/yp:selection-filter/yp:within-subscription" { - description - "Augment the subscription-started notification from the - ietf-yang-push YANG module with the - yang-push-module-version-list grouping."; - uses ypr:yang-push-module-version-list; - } - augment "/sn:subscription-modified/sn:target/sn:stream" - + "/sn:stream-filter/sn:within-subscription" { + augment "/sn:subscription-modified" { + if-feature "yang-push-revision-supported"; description "Augment the subscription-modified notification from the ietf-subscribed-notifications YANG module with the yang-push-module-version-list grouping."; uses ypr:yang-push-module-version-list; } - augment "/sn:subscription-modified/sn:target/yp:datastore" - + "/yp:selection-filter/yp:within-subscription" { - description - "Augment the subscription-modified notification from the - ietf-yang-push YANG module with the - yang-push-module-version-list grouping."; - uses ypr:yang-push-module-version-list; - } + // Subscription container - augment "/sn:subscriptions/sn:subscription/sn:target/sn:stream" - + "/sn:stream-filter/sn:within-subscription" { + augment "/sn:subscriptions/sn:subscription" { + if-feature "yang-push-revision-supported"; description "Augment the subscriptions RPC container from the ietf-subscribed-notifications YANG module with the yang-push-module-version-config-list grouping."; uses ypr:yang-push-module-version-config-list; } - augment "/sn:subscriptions/sn:subscription/sn:target/yp:datastore" - + "/yp:selection-filter/yp:within-subscription" { - description - "Augment the subscription RPC container from ietf-yang-push - YANG module with the yang-push-module-version-config-list grouping."; - uses ypr:yang-push-module-version-config-list; - } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-revisions@2022-11-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-revisions@2022-11-29.yang deleted file mode 100644 index e922ba571..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-yang-revisions@2022-11-29.yang +++ /dev/null @@ -1,236 +0,0 @@ -module ietf-yang-revisions { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-yang-revisions"; - prefix rev; - - organization - "IETF NETMOD (Network Modeling) Working Group"; - contact - "WG Web: - WG List: - - Author: Joe Clarke - - - Author: Reshad Rahman - - - Author: Robert Wilton - - - Author: Balazs Lengyel - - - Author: Jason Sterne - "; - description - "This YANG 1.1 module contains definitions and extensions to - support updated YANG revision handling. - - Copyright (c) 2002 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Revised BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here."; - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. - // RFC Ed.: replace XXXX (inc above) with actual RFC number and - // remove this note. - - revision 2022-11-29 { - rev:label "1.0.0-draft-ietf-netmod-yang-module-versioning-08"; - description - "Initial version."; - reference - "XXXX: Updated YANG Module Revision Handling"; - } - - typedef revision-date { - type string { - pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])'; - } - description - "A date associated with a YANG revision. - - Matches dates formatted as YYYY-MM-DD."; - reference - "RFC 7950: The YANG 1.1 Data Modeling Language"; - } - - typedef revision-label { - type string { - length "1..255"; - pattern '[a-zA-Z0-9,\-_.+]+'; - pattern '[0-9]{4}-[0-9]{2}-[0-9]{2}' { - modifier "invert-match"; - error-message - "The revision-label must not match a revision-date."; - } - } - description - "A label associated with a YANG revision. - - Alphanumeric characters, comma, hyphen, underscore, period - and plus are the only accepted characters. MUST NOT match - revision-date or pattern similar to a date."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 3.3, Revision label"; - } - - typedef revision-date-or-label { - type union { - type revision-date; - type revision-label; - } - description - "Represents either a YANG revision date or a revision label"; - } - - extension non-backwards-compatible { - description - "This statement is used to indicate YANG module revisions that - contain non-backwards-compatible changes. - - The statement MUST only be a substatement of the 'revision' - statement. Zero or one 'non-backwards-compatible' statements - per parent statement is allowed. No substatements for this - extension have been standardized. - - If a revision of a YANG module contains changes, relative to - the preceding revision in the revision history, that do not - conform to the backwards-compatible module update rules - defined in RFC-XXX, then the 'non-backwards-compatible' - statement MUST be added as a substatement to the revision - statement. - - Conversely, if a revision does not contain a - 'non-backwards-compatible' statement then all changes, - relative to the preceding revision in the revision history, - MUST be backwards-compatible. - - A new module revision that only contains changes that are - backwards-compatible SHOULD NOT include the - 'non-backwards-compatible' statement. An example of when an - author might add the 'non-backwards-compatible' statement is - if they believe a change could negatively impact clients even - though the backwards compatibility rules defined in RFC-XXXX - classify it as a backwards-compatible change. - - Add, removing, or changing a 'non-backwards-compatible' - statement is a backwards-compatible version change."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 3.2, - non-backwards-compatible revision extension statement"; - } - - extension label { - argument revision-label; - description - "The revision label can be used to provide an additional - versioning identifier associated with a module or submodule - revision. One such scheme that could be used is [XXXX: - ietf-netmod-yang-semver]. - - The format of the revision label argument MUST conform to the - pattern defined for the revision label typedef in this module. - - The statement MUST only be a substatement of the revision - statement. Zero or one revision label statements per parent - statement are allowed. No substatements for this extension - have been standardized. - - Revision labels MUST be unique amongst all revisions of a - module or submodule. - - Adding a revision label is a backwards-compatible version - change. Changing or removing an existing revision label in - the revision history is a non-backwards-compatible version - change, because it could impact any references to that - revision label."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 3.3, Revision label"; - } - - extension revision-label-scheme { - argument revision-label-scheme-base; - description - "The revision label scheme specifies which revision label - scheme the module or submodule uses. - - The mandatory revision-label-scheme-base argument MUST be an - identity derived from revision-label-scheme-base. - - This extension is only valid as a top-level statement, i.e., - given as as a substatement to 'module' or 'submodule'. No - substatements for this extension have been standardized. - - This extension MUST be used if there is a revision label - statement in the module or submodule. - - Adding a revision label scheme is a backwards-compatible - version change. Changing a revision label scheme is a - non-backwards-compatible version change, unless the new - revision label scheme is backwards-compatible with the - replaced revision label scheme. Removing a revision label - scheme is a non-backwards-compatible version change."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 3.3.1, Revision label scheme extension statement"; - } - - extension recommended-min { - argument revision-date-or-label; - description - "Recommends the revision of the module that may be imported to - one that matches or is derived from the specified - revision-date or revision label. - - The argument value MUST conform to the - 'revision-date-or-label' defined type. - - The statement MUST only be a substatement of the import - statement. Zero, one or more 'recommended-min' statements per - parent statement are allowed. No substatements for this - extension have been standardized. - - If specified multiple times, then any module revision that - satisfies at least one of the 'recommended-min' statements is - an acceptable recommended revision for import. - - A particular revision of an imported module adheres to an - import's 'recommended-min' extension statement if the imported - module's revision history contains a revision statement with a - matching revision date or revision label. - - Adding, removing or updating a 'recommended-min' statement to - an import is a backwards-compatible change."; - reference - "XXXX: Updated YANG Module Revision Handling; Section 4, - Recommending a minimum revision for module imports"; - } - - identity revision-label-scheme-base { - description - "Base identity from which all revision label schemes are - derived."; - reference - "XXXX: Updated YANG Module Revision Handling; - Section 3.3.1, Revision label scheme extension statement"; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-revisions@2024-06-04.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-revisions@2024-06-04.yang new file mode 100644 index 000000000..4e451fcb9 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-revisions@2024-06-04.yang @@ -0,0 +1,140 @@ +module ietf-yang-revisions { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-revisions"; + prefix rev; + + organization + "IETF NETMOD (Network Modeling) Working Group"; + contact + "WG Web: + WG List: + + Author: Joe Clarke + + + Author: Reshad Rahman + + + Author: Robert Wilton + + + Author: Balazs Lengyel + + + Author: Jason Sterne + "; + description + "This YANG 1.1 module contains definitions and extensions to + support updated YANG revision handling. + + Copyright (c) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + // RFC Ed.: replace XXXX (inc above) with actual RFC number and + // remove this note. + + revision 2024-06-04 { + description + "Initial version."; + reference + "XXXX: Updated YANG Module Revision Handling"; + } + + typedef revision-date { + type string { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])'; + } + description + "A date associated with a YANG revision. + + Matches dates formatted as YYYY-MM-DD."; + reference + "RFC 7950: The YANG 1.1 Data Modeling Language"; + } + + extension non-backwards-compatible { + description + "This statement is used to indicate YANG module revisions that + contain non-backwards-compatible changes. + + The statement MUST only be a substatement of the 'revision' + statement. Zero or one 'non-backwards-compatible' statements + per parent statement is allowed. No substatements for this + extension have been standardized. + + If a revision of a YANG module contains changes, relative to + the preceding revision in the revision history, that do not + conform to the backwards-compatible module update rules + defined in RFC-XXX, then the 'non-backwards-compatible' + statement MUST be added as a substatement to the revision + statement. + + Conversely, if a revision does not contain a + 'non-backwards-compatible' statement then all changes, + relative to the preceding revision in the revision history, + MUST be backwards-compatible. + + A new module revision that only contains changes that are + backwards-compatible SHOULD NOT include the + 'non-backwards-compatible' statement. An example of when an + author might add the 'non-backwards-compatible' statement is + if they believe a change could negatively impact clients even + though the backwards compatibility rules defined in RFC-XXXX + classify it as a backwards-compatible change. + + Add, removing, or changing a 'non-backwards-compatible' + statement is a backwards-compatible version change."; + reference + "XXXX: Updated YANG Module Revision Handling; + Section 3.2, + non-backwards-compatible extension statement"; + } + + extension recommended-min-date { + argument revision-date; + description + "Recommends the revision of the module that may be imported to + one whose revision date matches or is after the specified + revision-date. + + The argument value MUST conform to the 'revision-date' defined + type. + + The statement MUST only be a substatement of the import + statement. Zero, one or more 'recommended-min-date' + statements per parent statement are allowed. No substatements + for this extension have been standardized. + + Zero or one 'recommended-min-date' extension statement is + allowed for each parent 'import' statement. + + A particular revision of an imported module adheres to an + import's 'recommended-min-date' extension statement if the + imported module's revision date is equal to or later than + the revision date argument of the 'recommended-min-date' + extension statement in the importing module. + + Adding, removing or updating a 'recommended-min-date' + statement to an import is a backwards-compatible change."; + reference + "XXXX: Updated YANG Module Revision Handling; Section 4, + Guidance for revision selection on imports"; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-semver@2023-01-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-semver@2023-01-17.yang deleted file mode 100644 index b2ee4d059..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-yang-semver@2023-01-17.yang +++ /dev/null @@ -1,91 +0,0 @@ -module ietf-yang-semver { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-yang-semver"; - prefix ysver; - rev:revision-label-scheme "yang-semver"; - - import ietf-yang-revisions { - prefix rev; - } - - organization - "IETF NETMOD (Network Modeling) Working Group"; - contact - "WG Web: - WG List: - - Author: Joe Clarke - - Author: Robert Wilton - - Author: Reshad Rahman - - Author: Balazs Lengyel - - Author: Jason Sterne - - Author: Benoit Claise - "; - description - "This module provides type and grouping definitions for YANG - packages. - - 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 - (http://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see - the RFC itself for full legal notices."; - - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. - // RFC Ed.: replace XXXX with actual RFC number and remove this - // note. - // RFC Ed. update the rev:revision-label to "1.0.0". - - revision 2023-01-17 { - rev:label "1.0.0-draft-ietf-netmod-yang-semver-10"; - description - "Initial revision"; - reference - "RFC XXXX: YANG Semantic Versioning."; - } - - /* - * Identities - */ - - identity yang-semver { - base rev:revision-label-scheme-base; - description - "The revision-label scheme corresponds to the YANG Semver - scheme which is defined by the pattern in the 'version' - typedef below. The rules governing this revision-label - scheme are defined in the reference for this identity."; - reference - "RFC XXXX: YANG Semantic Versioning."; - } - - /* - * Typedefs - */ - - typedef version { - type rev:revision-label { - pattern '[0-9]+[.][0-9]+[.][0-9]+(_(non_)?compatible)?' - + '(-[A-Za-z0-9.-]+[.-][0-9]+)?([+][A-Za-z0-9.-]+)?'; - } - description - "Represents a YANG semantic version. The rules governing the - use of this revision label scheme are defined in the - reference for this typedef."; - reference - "RFC XXXX: YANG Semantic Versioning."; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-semver@2024-07-02.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-semver@2024-07-02.yang new file mode 100644 index 000000000..35ed77854 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-semver@2024-07-02.yang @@ -0,0 +1,153 @@ +module ietf-yang-semver { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-semver"; + prefix ys; + + organization + "IETF NETMOD (Network Modeling) Working Group"; + contact + "WG Web: + WG List: + + Author: Joe Clarke + + Author: Robert Wilton + + Author: Reshad Rahman + + Author: Balazs Lengyel + + Author: Jason Sterne + + Author: Benoit Claise + "; + description + "This module provides type and grouping definitions for YANG + packages. + + 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 + (http://trustee.ietf.org/license-info). + + 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. + + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; + + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + // RFC Ed.: replace XXXX with actual RFC number and remove this + // note. + // RFC Ed. update the ys:version to "1.0.0". + + revision 2024-07-02 { + ys:version "1.0.0-draft-ietf-netmod-yang-semver-17"; + description + "Initial revision"; + reference + "RFC XXXX: YANG Semantic Versioning."; + } + + /* + * Extensions + */ + + extension version { + argument yang-semantic-version; + description + "The version extension can be used to provide an additional + identifier associated with a module or submodule + revision. + + The format of the version extension argument MUST conform + to the 'version' typedef defined in this module. + + The statement MUST only be a substatement of the revision + statement. Zero or one version statements per parent + statement are allowed. No substatements for this extension + have been standardized. + + Versions MUST be unique amongst all revisions of a + module or submodule. + + Adding a version is a backwards-compatible + change. Changing or removing an existing version in + the revision history is a non-backwards-compatible + change, because it could impact any references to that + version."; + reference + "XXXX: YANG Semantic Versioning; + Section 3.2, YANG Semantic Version Extension"; + } + + extension recommended-min-version { + argument yang-semantic-version; + description + "Recommends the versions of the module that may be imported to + one that is greater than or equal to the specified version. + + The format of the recommended-min-version extension argument + MUST conform to the 'version' typedef defined in this module. + + The statement MUST only be a substatement of the import + statement. Zero, one or more 'recommended-min-version' + statements per parent statement are allowed. No + substatements for this extension have been + standardized. + + If specified multiple times, then any module revision that + satisfies at least one of the 'recommended-min-version' + statements is an acceptable recommended version for + import. + + A module to be imported is considered as meeting the + recommended minimum version criteria if it meets one of + the following conditions: + + * Has the exact MAJOR, MINOR, PATCH and '_compatible' or + '_non_compatible' modifiers as in the + recommend-min-version value. + * Has the same MAJOR and MINOR version numbers and a + greater PATCH number. In this case, '_compatible' and + '_non_compatible modifiers' are ignored. + * Has the same MAJOR version number and greater MINOR number. + In this case the PATCH number and the '_compatible' and + '_non_compatible' modifiers are ignored. + * Has a greater MAJOR version number. In this case MINOR + and PATCH numbers and '_compatible' and '_non_compatible' + modifiers are ignored. + + Adding, removing or updating a 'recommended-min-version' + statement to an import is a backwards-compatible change."; + reference + "XXXX: YANG Semantic Versioning; Section 4, + Import Module by Semantic Version"; + } + + /* + * Typedefs + */ + + typedef version { + type string { + pattern '[0-9]+[.][0-9]+[.][0-9]+(_(non_)?compatible)?' + + '(-[A-Za-z0-9.-]+[.-][0-9]+)?([+][A-Za-z0-9.-]+)?'; + } + description + "Represents a YANG semantic version. The rules governing the + use of this version identifier are defined in the + reference for this typedef."; + reference + "RFC XXXX: YANG Semantic Versioning."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yang-status-conformance@2024-02-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-yang-status-conformance@2024-02-14.yang new file mode 100644 index 000000000..dde51b90d --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yang-status-conformance@2024-02-14.yang @@ -0,0 +1,99 @@ +module ietf-yang-status-conformance { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-yang-status-conformance"; + prefix ys-conf; + + import ietf-yang-library { + prefix "yanglib"; + reference + "RFC 8525: YANG Library"; + } + organization + "IETF NETMOD (Network Modeling) Working Group"; + contact + "WG Web: + WG List: + + Author: Joe Clarke + + + Author: Reshad Rahman + + + Author: Robert Wilton + + + Author: Balazs Lengyel + + + Author: Jason Sterne + "; + description + "This module contains augmentations to YANG Library to provide an + indication of how deprecated and obsolete nodes are handled by + the server. + + Copyright (c) 2024 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + // RFC Ed.: update the date below with the date of RFC publication + // and remove this note. + // RFC Ed.: replace XXXX (including in the imports above) with + // actual RFC number and remove this note. + + revision 2024-02-14 { + description + "Initial revision"; + reference + "XXXX: Updated YANG Module Revision Handling"; + } + + augment "/yanglib:yang-library/yanglib:schema" { + description + "Augmentations to the ietf-yang-library module to indicate how + deprecated and obsoleted nodes are handled by the server."; + leaf deprecated-nodes-implemented { + type boolean; + description + "If set to true, this leaf indicates that all schema nodes + with a status 'deprecated' are implemented equivalently as + if they had status 'current'; otherwise deviations MUST be + used to explicitly remove deprecated nodes from the schema. + If this leaf is absent or set to false, then the behavior is + unspecified."; + reference + "XXXX: Updated YANG Module Revision Handling; + Section 5.1, Reporting how deprecated and obsolete nodes + are handled"; + } + leaf obsolete-nodes-absent { + type boolean; + description + "If set to true, this leaf indicates that the server does not + implement any status 'obsolete' schema nodes. If this leaf + is absent or set to false, then the behaviour is + unspecified."; + reference + "XXXX: Updated YANG Module Revision Handling; + Section 5.1, Reporting how deprecated and obsolete nodes + are handled"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2024-06-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2024-06-18.yang new file mode 100644 index 000000000..b1959881c --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2024-06-18.yang @@ -0,0 +1,134 @@ +module ietf-yp-observation { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:ietf-yp-observation"; + prefix ypot; + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types"; + } + import ietf-yang-push { + prefix yp; + reference + "RFC 8641: Subscription to YANG Notifications for Datastore Updates"; + } + import ietf-system-capabilities { + prefix sysc; + reference + "RFC 9196: YANG Modules Describing Capabilities for + Systems and Datastore Update Notifications"; + } + import ietf-notification-capabilities { + prefix notc; + reference + "RFC 9196: YANG Modules Describing Capabilities for + Systems and Datastore Update Notifications"; + } + import ietf-notification-sequencing { + prefix inotifseq; + reference + "draft-tgraf-netconf-notif-sequencing-05: YANG Notifications + Sequencing"; + } + organization "IETF NETCONF (Network Configuration) Working Group"; + contact + "WG Web: + WG List: + + Authors: Thomas Graf + + Benoit Claise + + Alex Huang Feng + "; + + description + "Defines YANG-Push event notification header with the observation + time in streaming update notifications. + + 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-06-18 { + description + "First revision"; + reference + "RFC XXXX: Support of YANG-Push Notifications Observation Time"; + } + + feature yang-push-observation-timestamp { + description + "This feature indicates the YANG-push Notifications support + the observation timestamps in streaming update notifications."; + } + + grouping yang-push-observation { + description + "This grouping adds the observation timestamp for the observed metrics."; + leaf timestamp { + type yang:date-and-time; + description + "This is the time when metrics were observed."; + } + leaf point-in-time { + type enumeration { + enum current-accounting { + description "For periodical subscriptions, the point-in-time + where the metrics are being polled and observed."; + } + enum initial-state { + description "For 'on-change sync on start' subscriptions, the + initial point in time when the subscription was established + and the state was observed."; + } + enum state-changed { + description "For 'on-change sync on start' subscriptions, the + point in time when the state change was observed after the + subscription was established."; + } + } + description + "This describes at which point in time the metrics were observed"; + } + } + + // Event notifications + augment "/yp:push-update" { + description + "This augmentation adds the observation timestamp of the accounted metrics + in the push-update notification."; + uses ypot:yang-push-observation; + } + + augment "/yp:push-change-update" { + description + "This augmentation adds the observation timestamp of the event + in the push-change-update notification."; + uses ypot:yang-push-observation; + } + + // Event capabilities + augment "/sysc:system-capabilities/notc:subscription-capabilities" { + description + "Add system level capabilities"; + leaf yang-push-observation-supported { + if-feature "yang-push-observation-timestamp"; + type inotifseq:notification-support; + description + "Specifies whether the publisher supports exporting + observation-timestamp and point-in-time in notifications."; + reference + "RFC XXXX: YANG Notifications Observation Time"; + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/yang-provenance-metadata@2024-02-28.yang b/experimental/ietf-extracted-YANG-modules/yang-provenance-metadata@2024-02-28.yang new file mode 100644 index 000000000..b208c863e --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/yang-provenance-metadata@2024-02-28.yang @@ -0,0 +1,52 @@ +module yang-provenance-metadata { + yang-version 1.1; + namespace "http://telefonica.com/temporary-ns-yangpmd"; + prefix "ypmd"; + import ietf-yang-types { + prefix "yang"; + } + import ietf-yang-metadata { + prefix "md"; + } + organization "IETF OPSAWG (Operations and Management Area Working Group)"; + contact + "WG Web: + WG List: + + Authors: Diego Lopez + + Alex Huang Feng + + Antonio Pastor + + Henk Birkholz + "; + description + "Defines a binary provenance-signature type to be used in YANG + metadata annotations + + 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-02-28 { + description + "First revision"; + reference + "RFC XXXX: Applying COSE Signatures for YANG Data Provenance"; + } + md:annotation provenance-string { + type yang:provenance-signature; + description + "This annotation contains the provenance signature for + the YANG element associated with it"; + } +} diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index cdc90a5a3..0a4bafcc4 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2023-11-28 + 2024-07-25 YANG Module Names @@ -16,7 +16,6 @@ by Rsync (rsync.iana.org::assignments/yang-parameters/) or FTP (ftp://ftp.iana.org/assignments/yang-parameters/). - iana-bfd-types Y iana-bfd-types@2021-10-21.yang @@ -31,7 +30,6 @@ FTP (ftp://ftp.iana.org/assignments/yang-parameters/). - iana-bgp-l2-encaps Y iana-bgp-l2-encaps@2022-09-20.yang @@ -46,7 +44,6 @@ FTP (ftp://ftp.iana.org/assignments/yang-parameters/). - iana-crypt-hash Y iana-crypt-hash@2014-08-06.yang @@ -58,7 +55,6 @@ FTP (ftp://ftp.iana.org/assignments/yang-parameters/). . Expert(s): Kent Watsen. - iana-dns-class-rr-type Y iana-dns-class-rr-type@2023-11-27.yang @@ -72,7 +68,6 @@ FTP (ftp://ftp.iana.org/assignments/yang-parameters/). TYPEs" registries, respectively. - iana-dots-signal-channel Y iana-dots-signal-channel@2021-09-02.yang @@ -87,7 +82,6 @@ Status Codes", "DOTS Conflict Status Codes", "DOTS Conflict Cause Codes", and "DOTS Attack Status Codes" registries. - iana-hardware Y iana-hardware@2018-03-13.yang @@ -100,7 +94,6 @@ Codes", and "DOTS Attack Status Codes" registries. the "IANAPhysicalClass" textual convention, the same class is added as an identity derived from "ianahw:hardware-class". - iana-if-type Y iana-if-type@2023-01-26.yang @@ -112,8 +105,17 @@ Codes", and "DOTS Attack Status Codes" registries. module. They must instead be added to the "Interface Types (ifType)" registry at . + + iana-msd-types + Y + + urn:ietf:params:xml:ns:yang:iana-msd-types + iana-msd-types + + + New values must not be directly added to the "iana-msd-types" YANG module. They must instead be added to the "IGP MSD-Types" registry in the "Interior Gateway Protocol (IGP) Parameters" registry group . Note: the initial module file will be posted upon 's publication as an RFC. + - iana-pseudowire-types Y iana-pseudowire-types@2022-09-20.yang @@ -128,7 +130,6 @@ at . - iana-routing-types Y iana-routing-types@2022-08-19.yang @@ -141,8 +142,70 @@ directly added to the iana-routing-types YANG module. They must instead be respectively added to the Address Family Numbers and Subsequent Address Family Identifiers (SAFI) Parameters registries. + + iana-ssh-encryption-algs + Y + + urn:ietf:params:xml:ns:yang:iana-ssh-encryption-algs + sshea + + + New values must not be directly added to the "iana-ssh-encryption-algs" YANG module. They must instead be added to the "Encryption Algorithm Names" registry in the "Secure Shell (SSH) Protocol Parameters" registry group . Note: the initial module file will be posted upon 's publication as an RFC. + + + iana-ssh-key-exchange-algs + Y + + urn:ietf:params:xml:ns:yang:iana-ssh-key-exchange-algs + sshkea + + + New values must not be directly added to the "iana-ssh-key-exchange-algs" YANG module. They must instead be added to the "Key Exchange Method Names" registry in the "Secure Shell (SSH) Protocol Parameters" registry group . Note: the initial module file will be posted upon 's publication as an RFC. + + + iana-ssh-mac-algs + Y + + urn:ietf:params:xml:ns:yang:iana-ssh-mac-algs + sshma + + + New values must not be directly added to the "iana-ssh-mac-algs" YANG module. They must instead be added to the "MAC Algorithm Names" registry in the "Secure Shell (SSH) Protocol Parameters" registry group . Note: the initial module file will be posted upon 's publication as an RFC. + + + iana-ssh-public-key-algs + Y + + urn:ietf:params:xml:ns:yang:iana-ssh-public-key-algs + sshpka + + + New values must not be directly added to the "iana-ssh-public-key-algs" YANG module. They must instead be added to the "Public Key Algorithm Names" registry in the "Secure Shell (SSH) Protocol Parameters" registry group . Note: the initial module file will be posted upon 's publication as an RFC. + + + iana-tls-cipher-suite-algs + Y + + urn:ietf:params:xml:ns:yang:iana-tls-cipher-suite-algs + tlscsa + + + New values must not be directly added to the "iana-tls-cipher-suite-algs" YANG module. They must instead be added to the "TLS Cipher Suites" registry in the "Transport Layer Security (TLS) Parameters" registry group . Note: the initial module file will be posted upon 's publication as an RFC. + + + iana-tunnel-type + Y + iana-tunnel-type@2021-04-23.yang + urn:ietf:params:xml:ns:yang:iana-tunnel-type + iana-tunnel-type + + + Tunnel type values must not be directly added to the iana-tunnel-type + YANG module. They must instead be added to the + "Tunnel Types (tunnelType)" subregistry (under the "Interface Types (ifType)" + registry) at . + - iana-tunnel-type Y iana-tunnel-type@2021-04-23.yang @@ -196,6 +259,26 @@ and Subsequent Address Family Identi + + ietf-alto + N + + urn:ietf:params:xml:ns:yang:ietf-alto + alto + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-alto-stats + N + + urn:ietf:params:xml:ns:yang:ietf-alto-stats + alto-stats + + + 's module file will be posted upon the document's publication as an RFC. + ietf-babel N @@ -376,6 +459,16 @@ and Subsequent Address Family Identi + + ietf-crypto-types + N + + urn:ietf:params:xml:ns:yang:ietf-crypto-types + ct + + + 's module file will be posted upon the document's publication as an RFC. + ietf-datastores N @@ -416,6 +509,16 @@ and Subsequent Address Family Identi + + ietf-detnet + N + + urn:ietf:params:xml:ns:yang:ietf-detnet + dnet + + + 's module file will be posted upon the document's publication as an RFC. + ietf-dhcpv6-client N @@ -776,6 +879,16 @@ and Subsequent Address Family Identi + + ietf-ioam + N + + urn:ietf:params:xml:ns:yang:ietf-ioam + ioam + + + 's module file will be posted upon the document's publication as an RFC. + ietf-ip N @@ -906,6 +1019,26 @@ and Subsequent Address Family Identi + + ietf-keystore + N + + urn:ietf:params:xml:ns:yang:ietf-keystore + ks + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-l1csm + N + + urn:ietf:params:xml:ns:yang:ietf-l1csm + l1csm + + + 's module file will be posted upon the document's publication as an RFC. + ietf-l2-topology N @@ -996,6 +1129,16 @@ and Subsequent Address Family Identi + + ietf-layer1-types + N + + urn:ietf:params:xml:ns:yang:ietf-layer1-types + l1-types + + + 's module file will be posted upon the document's publication as an RFC. + ietf-lime-time-types N @@ -1066,6 +1209,16 @@ and Subsequent Address Family Identi + + ietf-microwave-topology + N + + urn:ietf:params:xml:ns:yang:ietf-microwave-topology + mwt + + + 's module file will be posted upon the document's publication as an RFC. + ietf-microwave-types N @@ -1126,6 +1279,16 @@ and Subsequent Address Family Identi + + ietf-mpls-msd + N + + urn:ietf:params:xml:ns:yang:ietf-mpls-msd + mpls-msd + + + 's module file will be posted upon the document's publication as an RFC. + ietf-msdp N @@ -1366,6 +1529,16 @@ and Subsequent Address Family Identi + + ietf-ospfv3-extended-lsa + N + ietf-ospfv3-extended-lsa@2024-06-07.yang + urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa + ospfv3-e-lsa + + + + ietf-packet-fields N @@ -1606,6 +1779,16 @@ and Subsequent Address Family Identi + + ietf-sid-file + N + + urn:ietf:params:xml:ns:yang:ietf-sid-file + sid + + + 's module file will be posted upon the document's publication as an RFC. + ietf-snmp N @@ -1756,6 +1939,36 @@ and Subsequent Address Family Identi + + ietf-ssh-client + N + + urn:ietf:params:xml:ns:yang:ietf-ssh-client + sshc + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-ssh-common + N + + urn:ietf:params:xml:ns:yang:ietf-ssh-common + sshcmn + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-ssh-server + N + + urn:ietf:params:xml:ns:yang:ietf-ssh-server + sshs + + + 's module file will be posted upon the document's publication as an RFC. + ietf-subscribed-notifications N @@ -1774,7 +1987,7 @@ and Subsequent Address Family Identi ietf-syslog - TEMPORARY - registered 2021-07-11, extension registered 2023-06-30, expires 2024-07-11. 's module file will be posted upon the document's publication as an RFC. + TEMPORARY - registered 2021-07-11, extension registered 2024-06-24, expires 2025-07-11. 's module file will be posted upon the document's publication as an RFC. ietf-system @@ -1856,6 +2069,36 @@ and Subsequent Address Family Identi 's module file will be posted upon the document's publication as an RFC. + + ietf-tcp-client + N + + urn:ietf:params:xml:ns:yang:ietf-tcp-client + tcpc + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-tcp-common + N + + urn:ietf:params:xml:ns:yang:ietf-tcp-common + tcpcmn + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-tcp-server + N + + urn:ietf:params:xml:ns:yang:ietf-tcp-server + tcps + + + 's module file will be posted upon the document's publication as an RFC. + ietf-te-packet-types N @@ -1916,6 +2159,36 @@ and Subsequent Address Family Identi + + ietf-tls-client + N + + urn:ietf:params:xml:ns:yang:ietf-tls-client + tlsc + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-tls-common + N + + urn:ietf:params:xml:ns:yang:ietf-tls-common + tlscmn + + + 's module file will be posted upon the document's publication as an RFC. + + + ietf-tls-server + N + + urn:ietf:params:xml:ns:yang:ietf-tls-server + tlss + + + 's module file will be posted upon the document's publication as an RFC. + ietf-tpm-remote-attestation N @@ -1926,6 +2199,16 @@ and Subsequent Address Family Identi 's module file will be posted upon the document's publication as an RFC. + + ietf-truststore + N + + urn:ietf:params:xml:ns:yang:ietf-truststore + ts + + + 's module file will be posted upon the document's publication as an RFC. + ietf-twamp N @@ -1936,6 +2219,16 @@ and Subsequent Address Family Identi + + ietf-vn + N + + urn:ietf:params:xml:ns:yang:ietf-vn + vn + + + 's module file will be posted upon the document's publication as an RFC. + ietf-voucher N