From 5426095a74c37ac71f4edbd041f04bf5727b4436 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sun, 18 Aug 2024 18:05:37 +0000 Subject: [PATCH 01/23] Cronjob - daily check of IETF modules. --- ...11-13.yang => ietf-ac-svc@2024-08-06.yang} | 4 +- ...3.yang => ietf-bearer-svc@2024-08-06.yang} | 20 +- ....yang => ietf-http-client@2024-08-15.yang} | 120 ++- ....yang => ietf-http-server@2024-08-15.yang} | 13 +- ...ng => ietf-netconf-client@2024-08-14.yang} | 14 +- ...ng => ietf-netconf-server@2024-08-14.yang} | 16 +- ...f-packet-discard-reporting@2024-06-04.yang | 110 +-- ...g => ietf-restconf-client@2024-08-14.yang} | 13 +- ...g => ietf-restconf-server@2024-08-14.yang} | 10 +- ...4-07-23.yang => ietf-rift@2024-08-16.yang} | 917 ++++++++++-------- 10 files changed, 671 insertions(+), 566 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-ac-svc@2023-11-13.yang => ietf-ac-svc@2024-08-06.yang} (99%) rename experimental/ietf-extracted-YANG-modules/{ietf-bearer-svc@2023-11-13.yang => ietf-bearer-svc@2024-08-06.yang} (97%) rename experimental/ietf-extracted-YANG-modules/{ietf-http-client@2024-07-08.yang => ietf-http-client@2024-08-15.yang} (57%) rename experimental/ietf-extracted-YANG-modules/{ietf-http-server@2024-07-08.yang => ietf-http-server@2024-08-15.yang} (96%) rename experimental/ietf-extracted-YANG-modules/{ietf-netconf-client@2024-03-16.yang => ietf-netconf-client@2024-08-14.yang} (97%) rename experimental/ietf-extracted-YANG-modules/{ietf-netconf-server@2024-03-16.yang => ietf-netconf-server@2024-08-14.yang} (98%) rename experimental/ietf-extracted-YANG-modules/{ietf-restconf-client@2024-07-08.yang => ietf-restconf-client@2024-08-14.yang} (97%) rename experimental/ietf-extracted-YANG-modules/{ietf-restconf-server@2024-07-08.yang => ietf-restconf-server@2024-08-14.yang} (98%) rename experimental/ietf-extracted-YANG-modules/{ietf-rift@2024-07-23.yang => ietf-rift@2024-08-16.yang} (72%) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang index 1417d9bbf..54117a210 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2023-11-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang @@ -63,7 +63,7 @@ module ietf-ac-svc { 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-08-06 { description "Initial revision."; reference @@ -1102,7 +1102,7 @@ module ietf-ac-svc { information is created with a set of child ACs to track dynamic AC information."; } - leaf-list child-ac-ref { + leaf-list ac-child-ref { type ac-svc:attachment-circuit-reference; config false; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2023-11-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2023-11-13.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang index 3635af072..a7ba88315 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2023-11-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang @@ -59,7 +59,7 @@ module ietf-bearer-svc { This version of this YANG module is part of RFC xxx; see the RFC itself for full legal notices."; - revision 2023-11-13 { + revision 2024-08-06 { description "Initial revision."; reference @@ -137,13 +137,13 @@ module ietf-bearer-svc { is provided (e.g., geoproximity)."; } - identity syncPHY-type { + identity sync-phy-type { description "Base identity for physical layer synchronization."; } - identity syncE { - base syncPHY-type; + identity sync-e { + base sync-phy-type; description "Sync Ethernet (SyncE)."; reference @@ -151,13 +151,13 @@ module ietf-bearer-svc { synchronization based on the physical layer"; } - // Reusabel groupings + // Reusable groupings grouping location-information { description "Basic location information"; - leaf location-name { + leaf name { type string; description "Provides a location name. This data node can be mapped, @@ -260,8 +260,8 @@ module ietf-bearer-svc { container locations { description - "Retrieves the list of available provider locations for - terminating bearers."; + "Retrieves the available provider locations for terminating + bearers for a given customer."; leaf customer-name { type string; description @@ -286,7 +286,7 @@ module ietf-bearer-svc { "Indicates the customer's ASN."; } list location { - key "location-name"; + key "name"; config false; description "Reports the list of available locations."; @@ -370,7 +370,7 @@ module ietf-bearer-svc { leaf sync-phy-type { when "../sync-phy-enabled='true'"; type identityref { - base syncPHY-type; + base sync-phy-type; } description "Type of the physical layer synchronization."; 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-08-15.yang similarity index 57% rename from experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-07-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-08-15.yang index 5e7650baa..9c9dbb1be 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-07-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-http-client@2024-08-15.yang @@ -54,7 +54,7 @@ module ietf-http-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-07-08 { + revision 2024-08-15 { description "Initial version"; reference @@ -63,29 +63,54 @@ module ietf-http-client { // Features - feature proxy-connect { + feature tls-supported { 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."; + "Indicates that the server supports configuring + HTTP client certificates."; reference "RFC 9110: HTTP Semantics"; } - feature tls-supported { + feature "http-11-supported" { description "Indicates that the server supports configuring - HTTP client certificates."; + clients to use the HTTP/1.1 protocol."; + reference + "RFC 9112: HTTP/1.1"; + } + + feature "http-2-supported" { + description + "Indicates that the server supports configuring + clients to use the HTTP/2 protocol."; + reference + "RFC 9113: HTTP/2"; + } + + feature "http-3-supported" { + if-feature "tls-supported"; + description + "Indicates that the server supports configuring + clients to use the HTTP/3 protocol."; + reference + "RFC 9114 - HTTP/3"; + } + + 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"; } // Groupings - grouping http-client-grouping { + grouping http-client-common-grouping { description - "A reusable grouping for configuring an HTTP client."; - + "A grouping for the 'http-client-grouping' and + its descendant node 'proxy-connect' to use."; leaf uri { nacm:default-deny-all; type inet:uri; @@ -105,31 +130,68 @@ module ietf-http-client { reference "RFC 3986 URI Generic Syntax"; } - leaf proxy-uri { - if-feature proxy-connect; - type inet:uri; + leaf protocol-versions { + type union { + type enumeration { + enum any { + description + "Indicates the client is willing to use any version"; + } + } + type bits { + bit "http-11" { + if-feature "http-11-supported"; + description + "Indicates the client is willing to use HTTP/1.1."; + } + bit "http-2" { + if-feature "http-2-supported"; + description + "Indicates the client is willing to use HTTP/2."; + } + bit "http-3" { + if-feature "http-3-supported"; + description + "Indicates the client is willing to use HTTP/3."; + } + } + } + default "any"; 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"; + "HTTP protocol versions the client supports."; } container tls-client-parameters { if-feature "tls-supported"; description "TLS client parameters."; - uses tlsc:tls-client-grouping; + uses tlsc:tls-client-grouping { + refine server-authentication { + presence + "Indicates that TLS-client parameters have been + configured. This statement is present so the + mandatory descendant nodes do not imply that + this node must be configured."; + } + } + } + } + + grouping http-client-grouping { + description + "A reusable grouping for configuring an HTTP client."; + uses http-client-common-grouping; + container proxy-connect { + if-feature proxy-connect; + presence + "Indicates that the HTTP-client connects through a proxy. + This statement is present so the mandatory descendant + nodes do not imply that this node must be configured."; + uses http-client-common-grouping; + description + "Configures the proxy server the HTTP-client is to + connect through, per Section 9.3.6 of RFC 9110."; + reference + "RFC 9110: HTTP Semantics"; } } // grouping http-client-grouping diff --git a/experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-08-15.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-07-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-08-15.yang index c8fbc3362..725a56e21 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-07-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-http-server@2024-08-15.yang @@ -46,6 +46,7 @@ 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. @@ -71,7 +72,7 @@ module ietf-http-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-07-08 { + revision 2024-08-15 { description "Initial version"; reference @@ -113,7 +114,6 @@ module ietf-http-server { reference "RFC 9110: HTTP Semantics"; } - feature tls-supported { description "Indicates that the server supports configuring HTTP @@ -229,10 +229,7 @@ module ietf-http-server { 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."; + "Choice amongst various transports type."; case tcp { if-feature "tcp-supported"; container tcp { @@ -246,7 +243,7 @@ module ietf-http-server { refine "local-bind/local-port" { default "80"; description - "The HTTP client will attempt to connect + "The HTTP server will attempt to connect to the IANA-assigned well-known port for 'http' (80) if no value is specified."; } @@ -273,7 +270,7 @@ module ietf-http-server { refine "local-bind/local-port" { default "443"; description - "The HTTP client will attempt to connect + "The HTTP server will attempt to connect to the IANA-assigned well-known port for 'https' (443) if no value is specified."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-08-14.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-03-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-08-14.yang index 293e14ffa..9a73bb0ce 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-03-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-client@2024-08-14.yang @@ -66,7 +66,7 @@ module ietf-netconf-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-03-16 { + revision 2024-08-14 { description "Initial version"; reference @@ -245,7 +245,7 @@ module ietf-netconf-client { "TCP-level server parameters to listen for NETCONF over SSH Call Home connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "4334"; description "The NETCONF client will listen on the IANA- @@ -279,7 +279,7 @@ module ietf-netconf-client { "TCP-level server parameters to listen for NETCONF over TLS Call Home connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "4335"; description "The NETCONF client will listen on the IANA- @@ -466,11 +466,9 @@ module ietf-netconf-client { enum last-connected { description "Indicates that reconnections should start with - the endpoint last connected to. If no previous - connection has ever been established, then the - first endpoint configured is used. NETCONF - clients SHOULD be able to remember the last - endpoint connected to across reboots."; + the endpoint last connected to, if known. If + no previous connection is known, then the + first endpoint configured is used."; } enum random-selection { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-03-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-08-14.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-03-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-08-14.yang index 6c2429cae..26319c57e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-03-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-netconf-server@2024-08-14.yang @@ -59,6 +59,7 @@ module ietf-netconf-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 @@ -77,7 +78,7 @@ module ietf-netconf-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-03-16 { + revision 2024-08-14 { description "Initial version"; reference @@ -209,7 +210,7 @@ module ietf-netconf-server { "TCP-level server parameters to listen for NETCONF over SSH connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "830"; description "The NETCONF server will listen on the @@ -265,7 +266,7 @@ module ietf-netconf-server { "TCP-level server parameters to listen for NETCONF over TLS connections."; uses tcps:tcp-server-grouping { - refine "local-port" { + refine "local-bind/local-port" { default "6513"; description "The NETCONF server will listen on the @@ -534,7 +535,6 @@ module ietf-netconf-server { client. If the connection goes down, immediately start trying to reconnect to the NETCONF client, using the reconnection strategy. - This connection type minimizes any NETCONF client to NETCONF server data-transfer delay, albeit at the expense of holding resources longer."; @@ -630,11 +630,9 @@ module ietf-netconf-server { enum last-connected { description "Indicates that reconnections should start with - the endpoint last connected to. If no previous - connection has ever been established, then the - first endpoint configured is used. NETCONF - servers SHOULD be able to remember the last - endpoint connected to across reboots."; + the endpoint last connected to, if known. If + no previous connection is known, then the + first endpoint configured is used."; } enum random-selection { description 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 index 2cf569f61..247e33033 100644 --- 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 @@ -53,27 +53,6 @@ module ietf-packet-discard-reporting { "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 */ @@ -120,43 +99,43 @@ module ietf-packet-discard-reporting { } } - grouping basic-packets-48 { + grouping basic-packets-32 { description - "Basic grouping with 48-bit packets"; + "Basic grouping with 32-bit packets"; leaf packets { - type uint48; + type uint32; description "Number of L3 packets"; } } - grouping basic-packets-bytes-48 { + grouping basic-packets-bytes-32 { description - "Basic grouping with 48-bit packets and bytes"; - uses basic-packets-48; + "Basic grouping with 32-bit packets and bytes"; + uses basic-packets-32; leaf bytes { - type uint48; + type uint32; description "Number of L3 bytes"; } } - grouping basic-frames-48 { + grouping basic-frames-32 { description - "Basic grouping with 48-bit frames"; + "Basic grouping with 32-bit frames"; leaf frames { - type uint48; + type uint32; description "Number of L2 frames"; } } - grouping basic-frames-bytes-48 { + grouping basic-frames-bytes-32 { description - "Basic grouping with 48-bit packets and bytes"; - uses basic-frames-48; + "Basic grouping with 32-bit packets and bytes"; + uses basic-frames-32; leaf bytes { - type uint48; + type uint32; description "Number of L2 bytes"; } @@ -245,16 +224,16 @@ module ietf-packet-discard-reporting { container traffic { description "Control plane ingress traffic counters"; - uses basic-packets-bytes-48; + uses basic-packets-bytes-32; } container discards { description "Control plane ingress packet discard counters"; - uses basic-packets-bytes-48; + uses basic-packets-bytes-32; container policy { description "Number of control plane packets discarded due to policy"; - uses basic-packets-48; + uses basic-packets-32; } } } @@ -267,27 +246,27 @@ module ietf-packet-discard-reporting { description "Layer 2 ingress frame error counters"; leaf frames { - type uint48; + type uint32; description "Number of errored L2 frames"; } leaf crc-error { - type uint48; + type uint32; description "Number of frames received with CRC error"; } leaf invalid-mac { - type uint48; + type uint32; description "Number of frames received with invalid MAC address"; } leaf invalid-vlan { - type uint48; + type uint32; description "Number of frames received with invalid VLAN tag"; } leaf invalid-frame { - type uint48; + type uint32; description "Number of invalid frames received"; } @@ -301,43 +280,43 @@ module ietf-packet-discard-reporting { description "Layer 3 ingress packet receive error counters"; leaf packets { - type uint48; + type uint32; description "Number of errored L3 packets"; } leaf checksum-error { - type uint48; + type uint32; description "Number of packets received with checksum error"; } leaf mtu-exceeded { - type uint48; + type uint32; description "Number of packets received exceeding MTU"; } leaf invalid-packet { - type uint48; + type uint32; description "Number of invalid packets received"; } leaf ttl-expired { - type uint48; + type uint32; description "Number of packets received with expired TTL"; } } leaf no-route { - type uint48; + type uint32; description "Number of packets with no route"; } leaf invalid-sid { - type uint48; + type uint32; description "Number of packets with invalid SID"; } leaf invalid-label { - type uint48; + type uint32; description "Number of packets with invalid label"; } @@ -347,12 +326,12 @@ module ietf-packet-discard-reporting { description "Hardware error counters"; leaf packets { - type uint48; + type uint32; description "Number of local errored packets"; } leaf parity-error { - type uint48; + type uint32; description "Number of packets with parity error"; } @@ -385,7 +364,7 @@ module ietf-packet-discard-reporting { description "Layer 2 transmit frame error counters"; leaf frames { - type uint48; + type uint32; description "Number of errored L2 frames during transmission"; } @@ -399,7 +378,7 @@ module ietf-packet-discard-reporting { description "Layer 3 transmit packet error counters"; leaf packets { - type uint48; + type uint32; description "Number of errored L3 packets during transmission"; } @@ -420,17 +399,16 @@ module ietf-packet-discard-reporting { uses errors-l3-tx; } } - grouping policy-l2-rx { description "Layer 2 policy ingress packet discard counters"; leaf frames { - type uint48; + type uint32; description "Number of L2 frames discarded due to policy"; } leaf acl { - type uint48; + type uint32; description "Number of frames discarded due to L2 ACL"; } @@ -440,32 +418,32 @@ module ietf-packet-discard-reporting { description "Layer 3 policy ingress packet discard counters"; leaf packets { - type uint48; + type uint32; description "Number of L3 packets discarded due to policy"; } leaf acl { - type uint48; + type uint32; description "Number of packets discarded due to L3 ACL"; } container policer { description "Policer ingress packet discard counters"; - uses basic-packets-bytes-48; + uses basic-packets-bytes-32; } leaf null-route { - type uint48; + type uint32; description "Number of packets discarded due to null route"; } leaf rpf { - type uint48; + type uint32; description "Number of packets discarded due to RPF check failure"; } leaf ddos { - type uint48; + type uint32; description "Number of packets discarded due to DDoS protection"; } @@ -490,14 +468,14 @@ module ietf-packet-discard-reporting { description "Layer 3 policy egress packet discard counters"; leaf acl { - type uint48; + type uint32; description "Number of packets discarded due to L3 egress ACL"; } container policer { description "Policer egress packet discard counters"; - uses basic-packets-bytes-48; + uses basic-packets-bytes-32; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-08-14.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-07-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-08-14.yang index d72ab7d83..d19544966 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-07-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-restconf-client@2024-08-14.yang @@ -53,7 +53,7 @@ module ietf-restconf-client { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-07-08 { + revision 2024-08-14 { description "Initial version"; reference @@ -355,13 +355,10 @@ module ietf-restconf-client { } enum last-connected { description - "Indicates that reconnections should start - with the endpoint last connected to. If - no previous connection has ever been - established, then the first endpoint - configured is used. RESTCONF clients - SHOULD be able to remember the last - endpoint connected to across reboots."; + "Indicates that reconnections should start with + the endpoint last connected to, if known. If + no previous connection is known, then the + first endpoint configured is used."; } enum random-selection { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-07-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-08-14.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-07-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-08-14.yang index d2be2f2d1..c95e56ffe 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-07-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-restconf-server@2024-08-14.yang @@ -78,7 +78,7 @@ module ietf-restconf-server { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-07-08 { + revision 2024-08-14 { description "Initial version"; reference @@ -537,11 +537,9 @@ module ietf-restconf-server { enum last-connected { description "Indicates that reconnections should start with - the endpoint last connected to. If no previous - connection has ever been established, then the - first endpoint configured is used. RESTCONF - servers SHOULD be able to remember the last - endpoint connected to across reboots."; + the endpoint last connected to, if known. If + no previous connection is known, then the + first endpoint configured is used."; } enum random-selection { description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rift@2024-07-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-rift@2024-08-16.yang similarity index 72% rename from experimental/ietf-extracted-YANG-modules/ietf-rift@2024-07-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-rift@2024-08-16.yang index 3c03fee23..82e34bb91 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-rift@2024-07-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-rift@2024-08-16.yang @@ -81,30 +81,27 @@ module ietf-rift { RIFT configuration parameters and policies -- for example, route maps or route policies. - This YANG data model conforms to the Network Management - Datastore Architecture (NMDA) as described in RFC 8342. - - 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. + 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 + 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."; + 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-23 { + revision 2024-08-16 { description "Initial revision."; reference @@ -132,6 +129,7 @@ module ietf-rift { "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. Section 6.8.8"; } + feature tie-security { description "Support security function for the TIE exchange."; @@ -191,7 +189,6 @@ module ietf-rift { IEEE8021AS: Timing and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks"; } - /* * Identity */ @@ -800,10 +797,10 @@ module ietf-rift { } config false; description - "The type of a link."; + "The type of link."; } description - "The type of a link."; + "The type of link."; } // link-direction-type grouping tie-direction-type { @@ -828,10 +825,10 @@ module ietf-rift { } config false; description - "The direction type of a TIE."; + "The direction type of TIE."; } description - "The direction type of a TIE."; + "The direction type of TIE."; } // tie-direction-type grouping spf-direction-type { @@ -853,10 +850,10 @@ module ietf-rift { } config false; description - "The direction type of a SPF calculation."; + "The direction type of SPF calculation."; } description - "The direction type of a SPF calculation."; + "The direction type of SPF calculation."; } // spf-direction-type grouping tie-header { @@ -937,306 +934,271 @@ module ietf-rift { "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."; - } - container overload { + container global { description - "If the overload in TIEs can be set - and the timeout value with according type."; - leaf overload { + "The global configuration and status of + this RIFT protocol instance."; + uses base-node-info; + leaf fabric-prefix { + type inet:ip-prefix; + description + "The configured fabric prefix."; + } + leaf fabric-prefix-advertise { type boolean; description - "If the value is set to 'true', it means that - the overload bit in TIEs can be set."; + "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."; } - choice timeout-type { + leaf configured-level { + type level; description - "The value of timeout timer for overloading. - This makes sense when overload is set to 'TRUE'."; - case on-startup { - leaf on-startup-timeout { - type rt-types:timer-value-seconds16; - description - "Node goes into overload until this timer - expires when starting up."; - } + "The configured level value of this node."; + } + container overload { + description + "If the overload in TIEs can be set + and the timeout value with according type."; + leaf overload { + type boolean; + description + "If the value is set to 'true', it means that + the overload bit in TIEs can be set."; } - case immediate { - leaf immediate-timeout { - type rt-types:timer-value-seconds16; - description - "Set overload and remove after the timeout - expired."; + choice timeout-type { + description + "The value of timeout timer for overloading. + This makes sense when overload is set to 'TRUE'."; + case on-startup { + leaf on-startup-timeout { + type rt-types:timer-value-seconds16; + description + "Node goes into overload until this timer + expires when starting up."; + } + } + case immediate { + leaf immediate-timeout { + type rt-types:timer-value-seconds16; + description + "Set overload and remove after the timeout + expired."; + } } } } - } - leaf proto-major-ver { - type uint8; - config false; - mandatory true; - description - "Represents protocol encoding schema major version."; - } - leaf proto-minor-ver { - type uint16; - config false; - mandatory true; - description - "Represents protocol encoding schema minor version."; - } + leaf proto-major-ver { + type uint8; + config false; + mandatory true; + description + "Represents protocol encoding schema major version."; + } + leaf proto-minor-ver { + type uint16; + config false; + mandatory true; + description + "Represents protocol encoding schema minor version."; + } - container node-capabilities { - uses hierarchy-indications; - leaf flood-reduction { - type boolean; + 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 node's capabilities."; + } + leaf maximum-nonce-delta { + if-feature nonce-delta-adjust; + type uint8 { + range "1..5"; + } description - "If the node supports flood reduction function. - If this value is set to 'true', it means that - the flood reduction function is enabled."; + "The configurable valid nonce delta value used for + 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. - Section 6.3.8."; - } - description - "The node's capabilities."; - } - leaf maximum-nonce-delta { - if-feature nonce-delta-adjust; - type uint8 { - range "1..5"; + Section 6.9.4."; } - description - "The configurable valid nonce delta value used for - 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. - Section 6.9.4."; - } - leaf nonce-increasing-interval { - type uint16; - units seconds; - description - "The configurable nonce increasing interval."; - } + 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. - This should be prohibited less than 2*purge-lifetime."; - } - container rx-lie-multicast-addr { - leaf ipv4 { - type inet:ipv4-address; - default "224.0.0.121"; + leaf adjusted-lifetime { + type rt-types:timer-value-seconds16; + units seconds; description - "The configurable LIE receiving IPv4 multicast - address. - Different multicast addresses can be used for - receiving and sending."; + "The adjusted lifetime may affect the TIE stability. + Be careful to change this parameter. + This SHOULD be prohibited less than 2*purge-lifetime."; } - leaf ipv6 { - type inet:ipv6-address; - default "ff02::a1f7"; + container rx-lie-multicast-addr { + leaf ipv4 { + type inet:ipv4-address; + default "224.0.0.121"; + description + "The configurable LIE receiving IPv4 multicast + address. + Different multicast addresses can be used for + receiving and sending."; + } + leaf ipv6 { + type inet:ipv6-address; + default "ff02::a1f7"; + description + "The configurable LIE receiving IPv6 multicast + address. + Different multicast addresses can be used for + receiving and sending."; + } description - "The configurable LIE receiving IPv6 multicast + "The configurable LIE receiving IPv4/IPv6 multicast address. Different multicast addresses can be used for receiving and sending."; } - description - "The configurable LIE receiving IPv4/IPv6 multicast - address. - Different multicast addresses can be used for - receiving and sending."; - } - container tx-lie-multicast-addr { - leaf ipv4 { - type inet:ipv4-address; + container tx-lie-multicast-addr { + leaf ipv4 { + type inet:ipv4-address; + description + "The configurable LIE sending IPv4 multicast + address. + Different multicast addresses can be used for + receiving and sending."; + } + leaf ipv6 { + type inet:ipv6-address; + description + "The configurable LIE sending IPv6 multicast + address. + Different multicast addresses can be used for + receiving and sending."; + } description - "The configurable LIE sending IPv4 multicast + "The configurable LIE sending IPv4/IPv6 multicast address. Different multicast addresses can be used for receiving and sending."; } - leaf ipv6 { - type inet:ipv6-address; + leaf lie-tx-port { + type inet:port-number; + default "914"; description - "The configurable LIE sending IPv6 multicast - address. - Different multicast addresses can be used for - receiving and sending."; + "The UDP port of LIE packet sending. The default port + number is 914. The value can be set to other value + associated with different RIFT instance."; } - description - "The configurable LIE sending IPv4/IPv6 multicast - address. - Different multicast addresses can be used for - receiving and sending."; - } - leaf lie-tx-port { - type inet:port-number; - default "914"; - description - "The UDP port of LIE packet sending. The default port - number is 914. The value can be set to other value - associated with different RIFT instance."; - } - - container global-link-capabilities { - uses link-capabilities; - description - "The node default link capabilities. It can be - overwrite by the configuration underneath interface - and neighbor."; - } - - leaf tide-generation-interval { - type rt-types:timer-value-seconds16; - units seconds; - description - "The TIDE generation interval."; - } - list tie-security { - if-feature tie-security; - key "security-type"; - uses security; - description - "The security function used for the TIE exchange."; - reference - "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. - Section 6.9.3."; - } + container global-link-capabilities { + uses link-capabilities; + description + "The node default link capabilities. It can be + overwritten by the configuration underneath interface + and neighbor."; + } - 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. - Section 6.9.3."; - } - leaf algorithm-type { - type enumeration { - enum spf { - description - "The algorithm is SPF."; - } - enum all-path { - description - "The algorithm is all-path."; - } + leaf tide-generation-interval { + type rt-types:timer-value-seconds16; + units seconds; + description + "The TIDE generation interval."; } - description - "The possible algorithm types."; - } - container spf-statistics { - config false; - list spf-statistics { - key "spf-direction-type"; + + list tie-security { + if-feature tie-security; + key "security-type"; + uses security; description - "The statistics of SPF calculation."; - uses spf-direction-type; + "The security function used for the TIE exchange."; + reference + "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. + Section 6.9.3."; + } - leaf start-time { - type yang:date-and-time; - description - "The last SPF calculation start time."; + 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. + Section 6.9.3."; + } + leaf algorithm-type { + type enumeration { + enum spf { + description + "The algorithm is SPF."; + } + enum all-path { + description + "The algorithm is all-path."; + } } - leaf end-time { - type yang:date-and-time; + description + "The possible algorithm types."; + } + container hal { + config false; + leaf hal-value { + type level; description - "The last SPF calculation end time."; + "The highest defined level value seen from all + valid level offers received."; } - container triggering-tie { - uses tie-header; + leaf-list system-ids{ + type system-id; description - "The TIE that triggered the SPF."; + "The node's system-id of the offered level comes + from."; } + description + "The highest defined level and the offered nodes set."; } - description - "The statistics of SPF calculation."; - } - container hal { - config false; - leaf hal-value { - type level; + leaf-list miscabled-links { + type uint32; + config false; description - "The highest defined level value seen from all - valid level offers received."; + "List of miscabled links."; } - leaf-list system-ids{ - type system-id; + + leaf hop-limit { + type uint8 { + range "1 | 255"; + } + default "1"; description - "The node's system-id of the offered level comes - from."; + "The IPv4 TTL or IPv6 HL used for LIE and TIE + sending/receiving."; } - description - "The highest defined level and the offered nodes set."; - } - leaf-list miscabled-links { - type uint32; - config false; - description - "List of miscabled links."; - } - - leaf hop-limit { - type uint8 { - range "1 | 255"; + 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."; } - 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 { @@ -1262,8 +1224,8 @@ module ietf-rift { 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 + TIEs. The default port number is 915. The value + can be set to other value associated with different RIFT instance."; } leaf holdtime { @@ -1283,7 +1245,6 @@ module ietf-rift { } uses link-direction-type; - leaf broadcast-capable { type boolean; description @@ -1296,7 +1257,7 @@ module ietf-rift { leaf allow-horizontal-link { type boolean; description - "If this link allow horizontal link adjacency."; + "If horizontal link adjacency is allowed."; } container security { @@ -1367,11 +1328,11 @@ module ietf-rift { } enum "two-way" { description - "Valid LIE received but not a Three Way LIE."; + "Valid LIE received but not a ThreeWay LIE."; } enum "three-way" { description - "Valid Three Way LIE received."; + "Valid ThreeWay LIE received."; } enum "multiple-neighbors-wait" { description @@ -1386,158 +1347,249 @@ module ietf-rift { "I-D.ietf-rift-rift: RIFT: Routing in Fat Trees. Section 6.2.1."; } - leaf number-of-flaps { - type uint32; - config false; - description - "The number of interface state flaps."; - } - leaf last-state-change { - type yang:date-and-time; + + 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."; + } + + action clear-neighbor { + description + "Clears the connection to the neighbor."; + } + description - "Time duration in the current state."; + "The neighbor's information."; } - leaf last-up { - type yang:date-and-time; - config false; + + action clear-all-neighbors { description - "The last time of up."; + "Clears all the connections to the neighbors + on this interface."; } - leaf last-down { - type yang:date-and-time; - config false; + + description + "The interface information on this node."; + } // list interface + + container statistics { + config false; + + container global { + leaf total-num-routes-north { + type yang:zero-based-counter32; + config false; + description + "The total number of north routes."; + } + leaf total-num-routes-sourth { + type yang:zero-based-counter32; + config false; + description + "The total number of sourth routes."; + } description - "The last time of down."; + "The global routes number."; } - container interface-states-statistics { - config false; - leaf intf-states-startup-time { - type uint64; + list spf-statistics { + key "spf-direction-type"; + uses spf-direction-type; + + leaf start-time { + type yang:date-and-time; description - "The states and statistics record startup time - of the interface."; + "The last SPF calculation start time."; } - leaf num-of-nbrs-3way { - type uint32; + leaf end-time { + type yang:date-and-time; description - "The number of neighbors which state is in 3-way."; + "The last SPF calculation end time."; } - leaf num-of-nbrs-down { - type uint32; + container triggering-tie { + uses tie-header; description - "The number of neighbors which state changed to down."; + "The TIE that triggered the SPF."; } - 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."; - } + + action clear-spf-statistics { description - "The down neighbors and reasons."; + "Clears the statistics of this type of + SPF calculation."; } + description + "The statistics of SPF calculation."; + } - leaf num-local-level-change { - type uint32; + list interfaces { + key "name"; + leaf name { + type if:interface-ref; description - "The number of local level changes."; + "The interface's name."; } - - container intf-lie-states { - leaf last-lie-sent-time { + container intf-states-statistics { + leaf intf-states-startup-time { type uint64; description - "The time of the last LIE sent."; + "The states and statistics record startup time + of the interface."; } - leaf last-lie-received-time { - type uint64; + leaf num-of-nbrs-3way { + type yang:zero-based-counter32; description - "The time of the last LIE received."; + "The number of neighbors which state is in 3-way."; } - leaf num-lie-received { - type uint32; + leaf num-of-nbrs-down { + type yang:zero-based-counter32; description - "The number of received LIEs."; + "The number of neighbors which state + changed to down."; } - leaf num-lie-transmitted { - type uint32; + 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 number of transmitted LIEs."; + "The down neighbors and reasons."; } - leaf num-lie-drop-invalid-envelope { - type uint32; + + leaf num-local-level-change { + type yang:zero-based-counter32; description - "The number of dropped LIEs due to - invalid outer envelope."; + "The number of local level changes."; } - leaf num-lie-drop-invalid-nonce { - type uint32; + + leaf number-of-flaps { + type yang:zero-based-counter32; + config false; description - "The number of dropped LIEs due to - invalid nonce."; + "The number of interface state flaps."; } - leaf num-lie-corrupted { - type uint32; + leaf last-state-change { + type yang:date-and-time; + config false; description - "The number of corrupted LIEs received."; + "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."; } - 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; + 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 yang:zero-based-counter32; + description + "The number of received LIEs."; + } + leaf num-lie-transmitted { + type yang:zero-based-counter32; + description + "The number of transmitted LIEs."; + } + leaf num-lie-drop-invalid-envelope { + type yang:zero-based-counter32; + description + "The number of dropped LIEs due to + invalid outer envelope."; + } + leaf num-lie-drop-invalid-nonce { + type yang:zero-based-counter32; + description + "The number of dropped LIEs due to + invalid nonce."; + } + leaf num-lie-corrupted { + type yang:zero-based-counter32; + description + "The number of corrupted LIEs received."; + } + description + "The LIE's statistics of this interface."; + } description - "The system-id of the current flood repeater. - If this leaf has no value, that means the neighbor - is not flood repeater."; + "The states and statistics of this interface."; } - leaf num-flood-repeater-changes { - type uint32; + + container flood-repeater-statistics { + 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 yang:zero-based-counter32; + 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 number of flood repeater changes."; + "The flood repeater statistics."; } - leaf last-flood-repeater-change-reason { - type string; + action clear-intf-statistics { description - "The reason of the last flood repeater change."; + "Clears the statistics of this interface."; } description - "The flood repeater statistics."; + "The statistics of interfaces."; } 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; + leaf system-id { + type system-id; description - "The exchanged remote nonce to this neighbor."; + "The system-id of the neighbor."; } container tie-state-statistics { leaf transmit-queue { - type uint32; + type yang:zero-based-counter32; description "The length of TIE transmit queue."; } @@ -1553,63 +1605,63 @@ module ietf-rift { } leaf num-received-ties { - type uint32; + type yang:zero-based-counter32; description "The number of TIEs received."; } leaf num-transmitted-ties { - type uint32; + type yang:zero-based-counter32; description "The number of TIEs transmitted."; } leaf num-retransmitted-ties { - type uint32; + type yang:zero-based-counter32; description "The number of TIEs retransmitted."; } leaf num-flood-reduced-ties { - type uint32; + type yang:zero-based-counter32; description "The number of TIEs that were flood reduced."; } leaf num-received-tides { - type uint32; + type yang:zero-based-counter32; description "The number of TIDEs received."; } leaf num-transmitted-tides { - type uint32; + type yang:zero-based-counter32; description "The number of TIDEs transmitted."; } leaf num-received-tires { - type uint32; + type yang:zero-based-counter32; description "The number of TIREs received."; } leaf num-transmitted-tires { - type uint32; + type yang:zero-based-counter32; description "The number of TIREs transmitted."; } leaf num-request-locally { - type uint32; + type yang:zero-based-counter32; description "The number of TIEs requested locally."; } leaf num-request-remotely { - type uint32; + type yang:zero-based-counter32; description "The number of TIEs requested by the neighbor."; } leaf num-same-older-ties-received { - type uint32; + type yang:zero-based-counter32; description "The number of times of the same or older TIE has been received."; } leaf num-seq-mismatch-pkts-received { - type uint32; + type yang:zero-based-counter32; description "The number of packets with sequence number mismatches."; @@ -1625,7 +1677,6 @@ module ietf-rift { description "The information of the last sent TIE."; } - container last-recv-tie { uses tie-header; leaf last-tie-recv-time { @@ -1659,19 +1710,19 @@ module ietf-rift { container num-tie-dropped { leaf num-tie-outer-envelope { - type uint32; + type yang:zero-based-counter32; description "The total number of TIEs dropped due to invalid outer envelope."; } leaf num-tie-inner-envelope { - type uint32; + type yang:zero-based-counter32; description "The total number of TIEs dropped due to invalid inner envelope."; } leaf num-tie-nonce { - type uint32; + type yang:zero-based-counter32; description "The total number of TIEs dropped due to invalid nonce."; @@ -1681,18 +1732,20 @@ module ietf-rift { "The total number of TIEs dropped due to security reasons."; } - description - "The states and statistics of TIE, TIDE, TIRE + "The statistics of TIE, TIDE, TIRE exchanging with this neighbor."; } + action clear-nbr-statistics { + description + "Clears the statistics of this neighbor."; + } description - "The neighbor's information."; + "The statistics of neighbors."; } - description - "The interface information on this node."; - } // list interface + "The statistics collection."; + } container database { config false; @@ -1747,17 +1800,17 @@ module ietf-rift { leaf-list miscabled-links { type uint32; config false; - description - "List of miscabled links."; + 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."; + 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; @@ -1768,7 +1821,6 @@ module ietf-rift { description "The node element information in this TIE."; } // node - container prefixes { description "The prefix element information in this TIE."; @@ -1812,6 +1864,7 @@ module ietf-rift { "RIFT configuration and state data."; }//rift }//augment + /* * Notifications */ @@ -1849,15 +1902,39 @@ module ietf-rift { description "The RIFT instance's name."; } - list neighbors { - key "system-id"; - uses base-node-info; - uses neighbor; + list interfaces { + key "name"; + leaf link-id { + type uint32; + description + "The local id of this interface."; + } + leaf name { + type if:interface-ref; + description + "The interface's name."; + } + list neighbors { + key "system-id"; + leaf system-id { + type system-id; + description + "Each node is identified via a system-id which is 64 + bits wide."; + } + leaf node-level { + type level; + description + "The level of this node."; + } + description + "The level of the neighbor is wrong."; + } description - "The information of a neighbor."; + "The interfaces with wrong level neighbor."; } description - "The neighbor errors set."; + "The RIFT instance."; } } } From 880003727920f039b9518bf3bcd8561438064943 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Tue, 20 Aug 2024 18:05:40 +0000 Subject: [PATCH 02/23] Cronjob - daily check of IETF modules. --- ....yang => ietf-ni-location@2024-08-19.yang} | 121 ++++++++++-------- 1 file changed, 68 insertions(+), 53 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-ni-location@2024-08-06.yang => ietf-ni-location@2024-08-19.yang} (87%) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-08-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-08-19.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-08-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-08-19.yang index e505732a3..3681953f6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-08-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ni-location@2024-08-19.yang @@ -6,13 +6,14 @@ module ietf-ni-location { import ietf-network-inventory { prefix nwi; reference - "RFCXXXX: A YANG Data Model for Network Inventory"; + "RFCAAAA: 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 @@ -46,7 +47,7 @@ module ietf-ni-location { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2024-08-06 { + revision 2024-08-19 { description "Initial version"; reference @@ -55,10 +56,12 @@ module ietf-ni-location { //update date information and remove this note } + /* Identities */ + identity inventory-location-type { description "Base identity for network inventory location types, e.g. site, - room, building, floor, etc."; + room, building, and floor."; } identity site { @@ -79,45 +82,17 @@ module ietf-ni-location { "Indicates building as location type."; } - grouping locations-grouping { - description - "The grouping of the locations."; - list location { - key "id"; - description - "The list of locations within the network."; - leaf id { - type string; - description - "An identifier the location."; - } - 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; + /* Typedef */ + + typedef ni-location-ref { + type leafref { + path "/nil:locations/nil:location/nil:id"; } + description + "This type is used by data models that need to reference + network inventory location."; } + /* Grouping */ grouping physical-address-grouping { description @@ -128,35 +103,77 @@ module ietf-ni-location { leaf address { type string; description - "Address (number and street) of the site."; + "Specifies an address (number and street)."; } leaf postal-code { type string; description - "Postal code of the site."; + "Specifies a postal code."; } leaf state { type string; description - "State of the site. This leaf can also be + "Specifies a state. 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."; + "Specifies a city."; } leaf country-code { type string { pattern '[A-Z]{2}'; } description - "Country of the site. + "Specifies a country. Expressed as ISO ALPHA-2 code."; } } } + + grouping locations-grouping { + description + "The grouping of the locations."; + list location { + key "id"; + description + "The list of locations within the network."; + leaf id { + type string; + description + "An identifier of the location."; + } + uses nwi:common-entity-attributes; + leaf 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 location that physically contains this + location."; + } + leaf-list child { + type leafref { + path "../../location/id"; + } + description + "The name of the contained child locations."; + } + uses physical-address-grouping; + uses geo:geo-location; + } + } + grouping rack-grouping { description "The attributes of the rack."; @@ -166,11 +183,13 @@ module ietf-ni-location { list rack { key "id"; description - "The list of racks within an equipment room."; + "The list of racks within a location, + e.g. equipment room."; leaf id { type string; description - "An identifier the rack."; + "An identifier that uniquely identifies the rack + within a location, e.g. equipment room."; } uses nwi:common-entity-attributes; container rack-location { @@ -179,9 +198,7 @@ module ietf-ni-location { comprises the name of the location, row number, and column number."; leaf location-ref { - type leafref { - path "/nil:locations/nil:location/nil:id"; - } + type ni-location-ref; description "Name of location where this rack is located."; } @@ -270,9 +287,7 @@ module ietf-ni-location { description "The container for the location."; leaf-list location { - type leafref { - path "/nil:locations/nil:location/nil:id"; - } + type ni-location-ref; description "The reference of the location."; } From 870c84e0f3d8f8a5fe7fda758d2a91ef7d3a5485 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Thu, 22 Aug 2024 18:05:43 +0000 Subject: [PATCH 03/23] Cronjob - daily check of IETF modules. --- .../iana-tls-profile@2022-10-10.yang | 1 + .../ietf-extracted-YANG-modules/ietf-acl-tls@2022-10-10.yang | 3 +-- .../ietf-extracted-YANG-modules/ietf-mud-tls@2022-10-10.yang | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) 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 16c0bf223..428215362 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 @@ -53,6 +53,7 @@ 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 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 281ab11f0..d82860a08 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 @@ -45,7 +45,6 @@ module ietf-acl-tls { 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."; @@ -94,7 +93,6 @@ module ietf-acl-tls { "The networking device can support matching on (D)TLS parameters."; } - typedef spki-pin-set { type binary; description @@ -108,6 +106,7 @@ 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 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 a5eb8d639..f4c887711 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,6 +17,7 @@ module ietf-mud-tls { Author: Konda, Tirumaleswar Reddy kondtir@gmail.com + "; description "Extension to a MUD module to indicate (D)TLS From 9ae10e32f4e8c36eae64117207c14064984abfcc Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Fri, 23 Aug 2024 14:05:24 +0000 Subject: [PATCH 04/23] Cronjob - daily check of IANA modules. --- standard/iana/yang-parameters.xml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index d2439186e..8b8acb20e 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2024-08-02 + 2024-08-22 YANG Module Names @@ -1649,6 +1649,16 @@ and Subsequent Address Family Identi + + ietf-rift + N + + urn:ietf:params:xml:ns:yang:ietf-rift + rift + + + 's module file will be posted upon the document's publication as an RFC. + ietf-rip N From b7b755b6600ebfa1094b471f5b4985f38e85d17b Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sun, 25 Aug 2024 18:05:39 +0000 Subject: [PATCH 05/23] Cronjob - daily check of IETF modules. --- ...profile@2022-10-10.yang => iana-tls-profile@2024-01-23.yang} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename experimental/ietf-extracted-YANG-modules/{iana-tls-profile@2022-10-10.yang => iana-tls-profile@2024-01-23.yang} (99%) diff --git a/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang b/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2024-01-23.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang rename to experimental/ietf-extracted-YANG-modules/iana-tls-profile@2024-01-23.yang index 428215362..931b86a03 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2022-10-10.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-tls-profile@2024-01-23.yang @@ -39,7 +39,7 @@ module iana-tls-profile { The latest version of this YANG module is available at ."; - revision 2022-10-10 { + revision 2024-01-23 { description "Initial revision"; reference From 7b23cec9333d124d888cba5f2d2585e0c3e1e29a Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Wed, 28 Aug 2024 18:05:43 +0000 Subject: [PATCH 06/23] Cronjob - daily check of IETF modules. --- ...etf-network-slice-service@2024-08-27.yang} | 42 +- standard/ietf/RFC/ietf-ioam.yang | 1 + standard/ietf/RFC/ietf-ioam@2024-08-27.yang | 716 ++++++++++++++++++ 3 files changed, 741 insertions(+), 18 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-network-slice-service@2024-07-29.yang => ietf-network-slice-service@2024-08-27.yang} (97%) create mode 120000 standard/ietf/RFC/ietf-ioam.yang create mode 100644 standard/ietf/RFC/ietf-ioam@2024-08-27.yang diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-07-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-27.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-07-29.yang rename to experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-27.yang index 3b241419b..babbd5e19 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-07-29.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-27.yang @@ -92,7 +92,7 @@ module ietf-network-slice-service { This version of this YANG module is part of RFC AAAA; see the RFC itself for full legal notices."; - revision 2024-07-29 { + revision 2024-08-27 { description "Initial revision."; reference @@ -115,7 +115,7 @@ module ietf-network-slice-service { 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."; + customers use the same Network Slice Service."; } identity service { @@ -523,7 +523,7 @@ module ietf-network-slice-service { } description "The percentile is a value between 0 and 100 - to 3 decimal places, e.g., 10.000, 99.900 ,99.990, etc. + 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 @@ -582,7 +582,7 @@ module ietf-network-slice-service { 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."; + the options can be a percentage."; } leaf value-description { type string; @@ -967,20 +967,26 @@ module ietf-network-slice-service { 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; + list match-type { + key "type"; description - "Provides a value for the Slice Service match - criteria, e.g., IP prefix and VLAN ID."; + "List of the Slice Service traffic match types."; + leaf 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, VLAN ID, or + ACL name."; + } } leaf target-connection-group-id { type leafref { @@ -1078,7 +1084,7 @@ module ietf-network-slice-service { leaf ac-svc-ref { type ac-svc:attachment-circuit-reference; description - "A reference to the AC service that have been + "A reference to the AC service that has been created before the slice creation."; reference "RFC CCCC: YANG Data Models for Bearers and diff --git a/standard/ietf/RFC/ietf-ioam.yang b/standard/ietf/RFC/ietf-ioam.yang new file mode 120000 index 000000000..3bd8a7a41 --- /dev/null +++ b/standard/ietf/RFC/ietf-ioam.yang @@ -0,0 +1 @@ +ietf-ioam@2024-08-27.yang \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-ioam@2024-08-27.yang b/standard/ietf/RFC/ietf-ioam@2024-08-27.yang new file mode 100644 index 000000000..13c8ca8fb --- /dev/null +++ b/standard/ietf/RFC/ietf-ioam@2024-08-27.yang @@ -0,0 +1,716 @@ +module ietf-ioam { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ioam"; + prefix ioam; + + 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 Measurement) Working Group"; + contact + "WG Web: + WG List: + Editor: Tianran Zhou + + Author: Jim Guichard + + Author: Frank Brockners + + Author: Srihari Raghavan + "; + description + "This YANG module specifies a vendor-independent data model + for In Situ Operations, Administration, and Maintenance + (IOAM). + + 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 9617; see the + RFC itself for full legal notices."; + + revision 2024-08-27 { + description + "Initial revision."; + reference + "RFC 9617: A YANG Data Model for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + /* + * FEATURES + */ + + feature incremental-trace { + description + "This feature indicates that the Incremental Trace-Option is + supported."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + feature preallocated-trace { + description + "This feature indicates that the Pre-allocated Trace-Option + is supported."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + feature direct-export { + description + "This feature indicates that the Direct Export Option is + supported."; + reference + "RFC 9326: In Situ Operations, Administration, and + Maintenance (IOAM) Direct Exporting"; + } + + feature proof-of-transit { + description + "This feature indicates that the Proof of Transit Option is + supported."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + feature edge-to-edge { + description + "This feature indicates that the Edge-to-Edge Option is + supported."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + /* + * IDENTITIES + */ + + identity filter { + description + "Base identity to represent a filter. A filter is used to + specify the flow to apply the IOAM profile."; + } + + identity acl-filter { + base filter; + description + "Apply Access Control List (ACL) rules to specify the + flow."; + } + + identity protocol { + description + "Base identity to represent the carrier protocol. It is + used to indicate in what layer and protocol the IOAM data + is embedded."; + } + + identity ipv6 { + base protocol; + description + "The described IOAM data is embedded in IPv6."; + reference + "RFC 9486: IPv6 Options for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + identity nsh { + base protocol; + description + "The described IOAM data is embedded in the Network Service + Header (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 is used to + indicate what action the node will take."; + } + + identity action-encapsulate { + base node-action; + description + "This identity indicates that the node is used to + encapsulate the IOAM packet."; + } + + identity action-decapsulate { + base node-action; + description + "This identity indicates that the node is used to + decapsulate the IOAM packet."; + } + + identity action-transit { + base node-action; + description + "This identity indicates that the node is used to transit + the IOAM packet."; + } + + identity trace-type { + description + "Base identity to represent trace types."; + } + + identity trace-hop-lim-node-id { + base trace-type; + description + "This identity indicates the presence of 'Hop_Lim' and + 'node_id' in the node data."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + identity trace-if-id { + base trace-type; + description + "This identity indicates the presence of 'ingress_if_id' and + 'egress_if_id' (short format) in the node data."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + identity trace-timestamp-seconds { + base trace-type; + description + "This identity indicates the presence of timestamp seconds + in the node data."; + } + + identity trace-timestamp-fraction { + base trace-type; + description + "This identity indicates the presence of a timestamp + fraction in the node data."; + } + + identity trace-transit-delay { + base trace-type; + description + "This identity indicates the presence of transit delay in + the node data."; + } + + identity trace-namespace-data { + base trace-type; + description + "This identity indicates the presence of namespace-specific + data (short format) in the node data."; + } + + identity trace-queue-depth { + base trace-type; + description + "This identity indicates the presence of queue depth in the + node data."; + } + + identity trace-checksum-complement { + base trace-type; + description + "This identity indicates the presence of the Checksum + Complement in the node data."; + reference + "RFC 9197: Data Fields for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + identity trace-hop-lim-node-id-wide { + base trace-type; + description + "This identity indicates the presence of 'Hop_Lim' and + 'node_id' (wide format) in the node data."; + } + + identity trace-if-id-wide { + base trace-type; + description + "This identity indicates the presence of 'ingress_if_id' and + 'egress_if_id' (wide format) in the node data."; + } + + identity trace-namespace-data-wide { + base trace-type; + description + "This identity indicates the presence of + IOAM-namespace-specific data (wide format) in the + node data."; + } + + identity trace-buffer-occupancy { + base trace-type; + description + "This identity indicates the presence of buffer occupancy + in the node data."; + } + + identity trace-opaque-state-snapshot { + base trace-type; + description + "This identity indicates the presence of the variable-length + Opaque State Snapshot field."; + } + + identity pot-type { + description + "Base identity to represent Proof of Transit (POT) types."; + } + + identity pot-type-0 { + base pot-type; + description + "The IOAM field value for the POT type is 0, and POT data is + a 16-octet field to carry data associated with POT + procedures."; + } + + identity e2e-type { + description + "Base identity to represent edge-to-edge types."; + } + + identity e2e-seq-num-64 { + base e2e-type; + description + "This identity indicates the presence of a 64-bit + sequence number."; + } + + identity e2e-seq-num-32 { + base e2e-type; + description + "This identity indicates the presence of a 32-bit + sequence number."; + } + + identity e2e-timestamp-seconds { + base e2e-type; + description + "This identity indicates the presence of timestamp seconds + representing the time at which the packet entered the + IOAM domain."; + } + + identity e2e-timestamp-fraction { + base e2e-type; + description + "This identity indicates the presence of a timestamp + fraction representing the time at which the packet entered + the IOAM domain."; + } + + identity namespace { + description + "Base identity to represent the Namespace-ID."; + } + + identity default-namespace { + base namespace; + description + "The Namespace-ID value of 0x0000 is defined as the + Default-Namespace-ID and MUST be known to all the nodes + implementing IOAM."; + } + + /* + * TYPE DEFINITIONS + */ + + typedef ioam-filter-type { + type identityref { + base filter; + } + description + "This type specifies a known type of filter."; + } + + typedef ioam-protocol-type { + type identityref { + base protocol; + } + description + "This type specifies a known type of carrier protocol for + the IOAM data."; + } + + typedef ioam-node-action { + type identityref { + base node-action; + } + description + "This type specifies a known type of node action."; + } + + typedef ioam-trace-type { + type identityref { + base trace-type; + } + description + "This type specifies a known trace type."; + } + + typedef ioam-pot-type { + type identityref { + base pot-type; + } + description + "This type specifies a known POT type."; + } + + typedef ioam-e2e-type { + type identityref { + base e2e-type; + } + description + "This type specifies a known edge-to-edge type."; + } + + typedef ioam-namespace { + type identityref { + base namespace; + } + description + "This type specifies the supported namespace."; + } + + /* + * GROUP DEFINITIONS + */ + + grouping ioam-filter { + description + "A grouping for IOAM filter definitions."; + leaf filter-type { + type ioam-filter-type; + description + "Filter type."; + } + leaf ace-name { + when "derived-from-or-self(../filter-type, 'ioam: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 encap-tracing { + description + "A grouping for the generic configuration for the + tracing profile."; + container trace-types { + description + "This container provides the list of trace types for + encapsulation."; + leaf use-namespace { + type ioam-namespace; + default "default-namespace"; + description + "This object indicates the namespace used for + encapsulation."; + } + leaf-list trace-type { + type ioam-trace-type; + description + "The trace type is only defined at the encapsulation + node."; + } + } + leaf max-length { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type uint32; + units "bytes"; + description + "This field specifies the maximum length of the node data + list in octets. 'max-length' is only defined at the + encapsulation node."; + } + } + + grouping ioam-incremental-tracing-profile { + description + "A grouping for the Incremental Tracing Profile."; + leaf node-action { + type ioam-node-action; + default "action-transit"; + description + "This object indicates the action the node needs to + take, e.g., encapsulation."; + } + uses encap-tracing { + when "derived-from-or-self(node-action, + 'ioam:action-encapsulate')"; + } + } + + grouping ioam-preallocated-tracing-profile { + description + "A grouping for the Pre-allocated Tracing Profile."; + leaf node-action { + type ioam-node-action; + default "action-transit"; + description + "This object indicates the action the node needs to + take, e.g., encapsulation."; + } + uses encap-tracing { + when "derived-from-or-self(node-action, + 'ioam:action-encapsulate')"; + } + } + + grouping ioam-direct-export-profile { + description + "A grouping for the Direct Export Profile."; + leaf node-action { + type ioam-node-action; + default "action-transit"; + description + "This object indicates the action the node needs to + take, e.g., encapsulation."; + } + uses encap-tracing { + when "derived-from-or-self(node-action, + 'ioam:action-encapsulate')"; + } + leaf flow-id { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type uint32; + description + "A 32-bit flow identifier. The field is set at the + encapsulating node. The Flow ID can be uniformly + assigned by a central controller or algorithmically + generated by the encapsulating node. The latter approach + cannot guarantee the uniqueness of the Flow ID, yet the + probability of conflict is 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."; + } + leaf enable-sequence-number { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type boolean; + default "false"; + description + "This boolean value indicates whether the sequence number + is used in the Direct Export Option's 32-bit flow + identifier. If this value is set to 'true', the sequence + number is used. It is turned off by default."; + } + } + + grouping ioam-e2e-profile { + description + "A grouping for the Edge-to-Edge Profile."; + leaf node-action { + type ioam-node-action; + default "action-transit"; + description + "This object indicates the action the node needs to + take, e.g., encapsulation."; + } + container e2e-types { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + description + "This container provides the list of edge-to-edge types + for encapsulation."; + leaf use-namespace { + type ioam-namespace; + default "default-namespace"; + description + "This object indicates the namespace used for + encapsulation."; + } + leaf-list e2e-type { + type ioam-e2e-type; + description + "The edge-to-edge type is only defined at the + encapsulation node."; + } + } + } + + grouping ioam-admin-config { + description + "IOAM top-level administrative configuration."; + leaf enabled { + type boolean; + default "false"; + description + "This object is used to control the availability of + configuration. It MUST be set to 'true' before anything + in the /ioam/profiles/profile subtree can be edited. + If 'false', any configuration in place is not used."; + } + } + + /* + * DATA NODES + */ + + container ioam { + description + "IOAM top-level container."; + container info { + config false; + description + "Describes information, such as units or timestamp format, + that assists monitoring systems in the interpretation of + the IOAM data."; + leaf timestamp-type { + type identityref { + base lime:timestamp-type; + } + description + "Type of timestamp, such as Truncated PTP (Precision + Time Protocol) or NTP."; + } + list available-interface { + key "if-name"; + description + "A list of available interfaces that support IOAM."; + leaf if-name { + type if:interface-ref; + description + "This is a reference to the interface name."; + } + } + } + container admin-config { + description + "Contains all the administrative configurations related to + the IOAM functionalities and all the IOAM profiles."; + uses ioam-admin-config; + } + container profiles { + description + "Contains a list of IOAM profiles."; + list profile { + key "profile-name"; + description + "A list of IOAM profiles that are configured on the + node. There is no mandatory type of profile (e.g., + 'incremental-trace', 'preallocated-trace') in the list. + But at least one profile should be added."; + leaf profile-name { + type string { + length "1..300"; + } + description + "Unique identifier for each IOAM profile."; + } + container filter { + uses ioam-filter; + description + "The filter that is used to indicate the flow to apply + IOAM."; + } + leaf protocol-type { + type ioam-protocol-type; + description + "This object is used to indicate the carrier protocol + where IOAM is applied."; + } + container incremental-tracing-profile { + if-feature "incremental-trace"; + presence "Enables the Incremental Trace-Option."; + description + "This container describes the profile for the + Incremental Trace-Option."; + uses ioam-incremental-tracing-profile; + } + container preallocated-tracing-profile { + if-feature "preallocated-trace"; + presence "Enables the Pre-allocated Trace-Option."; + description + "This container describes the profile for the + Pre-allocated Trace-Option."; + uses ioam-preallocated-tracing-profile; + } + container direct-export-profile { + if-feature "direct-export"; + presence "Enables the Direct Export Option."; + description + "This container describes the profile for the + Direct Export Option."; + uses ioam-direct-export-profile; + } + container pot-profile { + if-feature "proof-of-transit"; + presence "Enables the Proof of Transit Option."; + description + "This container describes the profile for the + Proof of Transit Option."; + leaf use-namespace { + type ioam-namespace; + default "default-namespace"; + description + "This object indicates the namespace used for the + POT types."; + } + leaf pot-type { + type ioam-pot-type; + description + "The type of a particular POT variant that specifies + the POT data that is included."; + } + } + container e2e-profile { + if-feature "edge-to-edge"; + presence "Enables the Edge-to-Edge Option."; + description + "This container describes the profile for the + Edge-to-Edge Option."; + uses ioam-e2e-profile; + } + } + } + } +} From d67a1df7f6190876237c78ef836cc9ca88f89009 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Thu, 29 Aug 2024 18:05:46 +0000 Subject: [PATCH 07/23] Cronjob - daily check of IETF modules. --- ...> ietf-network-slice-service@2024-08-28.yang} | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-network-slice-service@2024-08-27.yang => ietf-network-slice-service@2024-08-28.yang} (99%) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-28.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-27.yang rename to experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-28.yang index babbd5e19..5499cf3c5 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-slice-service@2024-08-28.yang @@ -92,7 +92,7 @@ module ietf-network-slice-service { This version of this YANG module is part of RFC AAAA; see the RFC itself for full legal notices."; - revision 2024-08-27 { + revision 2024-08-28 { description "Initial revision."; reference @@ -346,7 +346,8 @@ module ietf-network-slice-service { 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."; + round-trip delay between sequential packets between two + SDPs."; reference "RFC 5481: Packet Delay Variation Applicability Statement"; } @@ -421,7 +422,6 @@ module ietf-network-slice-service { "Base identity for Network Slice Service traffic match type."; } - identity phy-interface { base service-match-type; description @@ -756,7 +756,7 @@ module ietf-network-slice-service { "Grouping for the Slice Service QoS policy."; container incoming-qos-policy { description - "The QoS policy imposed on ingress direction of the traffic , + "The QoS policy imposed on ingress direction of the traffic, from the customer network or from another provider's network."; leaf qos-policy-name { @@ -1034,10 +1034,10 @@ module ietf-network-slice-service { 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."; + 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)"; From 1a179fd7749a35107b152392c4b99c7576c8768a Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Fri, 30 Aug 2024 14:09:31 +0000 Subject: [PATCH 08/23] Cronjob - daily check of IANA modules. --- standard/iana/yang-parameters.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index 8b8acb20e..ebe3347bc 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2024-08-22 + 2024-08-29 YANG Module Names @@ -879,15 +879,15 @@ and Subsequent Address Family Identi - + ietf-ioam N - + ietf-ioam@2024-08-27.yang 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 From 4bc9f421a21c2e619e86360e847757f2d35635c9 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Fri, 30 Aug 2024 18:05:46 +0000 Subject: [PATCH 09/23] Cronjob - daily check of IETF modules. --- .../ietf-multicast-model@2023-03-05.yang | 23 ++++++++----------- .../ietf-wdm-path-computation@2024-02-29.yang | 2 -- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-multicast-model@2023-03-05.yang b/experimental/ietf-extracted-YANG-modules/ietf-multicast-model@2023-03-05.yang index 8616584f8..339d3c30b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-multicast-model@2023-03-05.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-multicast-model@2023-03-05.yang @@ -201,8 +201,7 @@ module ietf-multicast-model { "Using EVPN as multicast overlay technology."; reference "RFC 7432: BGP MPLS-Based Ethernet VPN. - I-D.ietf-bess-evpn-bum-procedure-updates: - Updates on EVPN BUM Procedures. + RFC 9572: Updates on EVPN BUM Procedures. I-D.ietf-bier-evpn: EVPN BUM Using BIER."; } identity mvpn { @@ -328,12 +327,12 @@ module ietf-multicast-model { grouping general-multicast-key { description - "The general multicast keys. They are used to distinguish - different multicast service."; + "The general multicast keys. They are used to differentiate + multicast service."; leaf vpn-rd { type rt-types:route-distinguisher; description - "A Route Distinguisher used to distinguish + "A Route Distinguisher is used to differentiate routes from different MVPNs."; reference "RFC 8294: Common YANG Data Types for the Routing Area. @@ -414,7 +413,7 @@ module ietf-multicast-model { leaf sub-domain { type uint16; description - "The subdomain id that the multicast flow belongs to."; + "The subdomain ID that the multicast flow belongs to."; } leaf bitstringlength { type uint16; @@ -720,7 +719,7 @@ module ietf-multicast-model { used in SDN controlled completely situation, but it can be used in partial SDN controlled situation or non-SDN controlled situation. Different overlay - technologies can be choosed according to different + technologies can be chosen according to different deploy consideration."; leaf vni-type { @@ -751,11 +750,10 @@ module ietf-multicast-model { BIER. In MVPN, this is the address of ingress PE; in BIER, this is the BFR-prefix of ingress nodes. - Two or more ingress nodes may existed for the + Two or more ingress nodes may exist for the redundant ingress node protection."; } } - list egress-nodes { key "egress-node"; description @@ -804,7 +802,6 @@ module ietf-multicast-model { key "egress-node"; description "The egress nodes of multicast flow."; - leaf egress-node { type uint16; description @@ -821,9 +818,9 @@ module ietf-multicast-model { protocol is responsible for delivering multicast flows from ingress nodes to egress nodes with or without specific encapsulation. Different transport - technology can be choosed according to different + technology can be chosen according to different deploy consideration. Once a transport technology - is choosed, associated protocol should be triggered + is chosen, associated protocol should be triggered to run."; uses transport-tech; @@ -835,7 +832,7 @@ module ietf-multicast-model { need not be assigned in ordinary network since existed underlay protocol fits well, but it can be assigned in particular networks for better - controll. Once a underlay technology is choosed, + controll. Once an underlay technology is chosen, associated protocol should be triggered to run."; uses underlay-tech; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang b/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang index 95f1216d0..6287d49a4 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-wdm-path-computation@2024-02-29.yang @@ -139,7 +139,6 @@ module ietf-wdm-path-computation { uses wdm-tnl:path-transceiver-config; } - //??? augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + "tepc:path-request/tepc:optimizations/tepc:algorithm/" @@ -188,7 +187,6 @@ module ietf-wdm-path-computation { "The OMS element route hop type"; } } - augment "/te:tunnels-path-compute/te:input/te:path-compute-info/" + "tepc:path-request/tepc:explicit-route-objects/" + "tepc:route-object-include-exclude/tepc:type/" From bb9b2ee0d8afe03ce0ab4e8788c57019484cb5e9 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sun, 1 Sep 2024 18:05:40 +0000 Subject: [PATCH 10/23] Cronjob - daily check of IETF modules. --- .../ietf-ioam-integrity@2024-08-31.yang | 245 ++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang b/experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang new file mode 100644 index 000000000..ceb960efb --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-ioam-integrity@2024-08-31.yang @@ -0,0 +1,245 @@ +module ietf-ioam-integrity { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ioam-integrity"; + prefix "ioam-int"; + + import ietf-ioam { + prefix ioam; + reference + "RFC 9617: A YANG Data Model for In Situ Operations, + Administration, and Maintenance (IOAM)"; + } + + organization + "IETF IPPM (IP Performance Measurement) Working Group"; + + contact + "WG Web: + WG List: + Author: Tianran Zhou + + Author: Justin Iurman + "; + + description + "This YANG module specifies a vendor-independent data model for + In Situ Operations, Administration, and Maintenance (IOAM) + Integrity Protected Options. + + 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; see the + RFC itself for full legal notices."; + + revision 2024-08-31 { + description + "Initial revision."; + reference + "RFC XXXX: A YANG Data Model for In Situ Operations, + Administration, and Maintenance (IOAM) Integrity Protected + Options"; + } + + /* + * FEATURES + */ + + feature int-incremental-trace + { + description + "This feature indicates that the Integrity Protected + Incremental Trace-Option is supported."; + reference + "RFC YYYY: Integrity Protection of In Situ Operations, + Administration, and Maintenance (IOAM) Data Fields"; + } + + feature int-preallocated-trace + { + description + "This feature indicates that the Integrity Protected + Pre-allocated Trace-Option is supported."; + reference + "RFC YYYY: Integrity Protection of In Situ Operations, + Administration, and Maintenance (IOAM) Data Fields"; + } + + feature int-proof-of-transit + { + description + "This feature indicates that the Integrity Protected Proof of + Transit Option is supported."; + reference + "RFC YYYY: Integrity Protection of In Situ Operations, + Administration, and Maintenance (IOAM) Data Fields"; + } + feature int-edge-to-edge + { + description + "This feature indicates that the Integrity Protected + Edge-to-Edge Option is supported."; + reference + "RFC YYYY: Integrity Protection of In Situ Operations, + Administration, and Maintenance (IOAM) Data Fields"; + } + + /* + * IDENTITIES + */ + + identity method { + description + "Base identity to represent the Integrity Protection Method."; + } + + identity method-1 { + base method; + description + "The Integrity Protection Method 1 uses AES-GMAC with a 12-byte + Nonce and a 16-byte ICV."; + reference + "RFC YYYY: Integrity Protection of In Situ Operations, + Administration, and Maintenance (IOAM) Data Fields"; + } + + /* + * TYPE DEFINITIONS + */ + + typedef method-type { + type identityref { + base method; + } + description + "It specifies the Integrity Protection Method."; + } + + /* + * DATA NODES + */ + + augment "/ioam:ioam/ioam:profiles/ioam:profile" { + description + "This augmentation adds 4 profiles for the Integrity Protected + Options."; + + container int-incremental-tracing-profile { + if-feature "int-incremental-trace"; + presence + "Enables the Integrity Protected Incremental Trace-Option."; + description + "This container describes the profile for the Integrity + Protected Incremental Trace-Option."; + + uses ioam:ioam-incremental-tracing-profile; + + leaf int-method { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type method-type; + default "method-1"; + description + "This object indicates the Integrity Protection Method for + this profile."; + } + } + + container int-preallocated-tracing-profile { + if-feature "int-preallocated-trace"; + presence + "Enables the Integrity Protected Pre-allocated + Trace-Option."; + description + "This container describes the profile for the Integrity + Protected Pre-allocated Trace-Option."; + + uses ioam:ioam-preallocated-tracing-profile; + + leaf int-method { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type method-type; + default "method-1"; + description + "This object indicates the Integrity Protection Method for + this profile."; + } + } + + container int-pot-profile { + if-feature "int-proof-of-transit"; + presence + "Enables the Integrity Protected Proof of Transit Option."; + description + "This container describes the profile for the Integrity + Protected Proof of Transit Option."; + + leaf use-namespace { + type ioam:ioam-namespace; + default "ioam:default-namespace"; + description + "This object indicates the namespace used for the + POT types."; + } + + leaf pot-type { + type ioam:ioam-pot-type; + description + "The type of a particular POT variant that specifies + the POT data that is included."; + } + + leaf node-action { + type ioam:ioam-node-action; + default "ioam:action-transit"; + description + "This object indicates the action the node needs to + take, e.g., encapsulation."; + } + + leaf int-method { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type method-type; + default "method-1"; + description + "This object indicates the Integrity Protection Method for + this profile."; + } + } + + container int-e2e-profile { + if-feature "int-edge-to-edge"; + presence + "Enables the Integrity Protected Edge-to-Edge Option."; + description + "This container describes the profile for the Integrity + Protected Edge-to-Edge Option."; + + uses ioam:ioam-e2e-profile; + leaf int-method { + when "derived-from-or-self(../node-action, + 'ioam:action-encapsulate')"; + type method-type; + default "method-1"; + description + "This object indicates the Integrity Protection Method for + this profile."; + } + } + } +} From 137a4797dffadbc1b274524f58a5148871fd31a1 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Tue, 3 Sep 2024 18:05:45 +0000 Subject: [PATCH 11/23] Cronjob - daily check of IETF modules. --- .../ietf-altmark@2024-06-19.yang | 2 - ...ng => ietf-isis-flex-algo@2024-09-02.yang} | 10 ++--- ...ng => ietf-isis-link-attr@2024-09-02.yang} | 10 ++--- ...-06.yang => ietf-isis-msd@2024-09-02.yang} | 35 +++------------- ...f-isis-remaining-lifetime@2024-09-02.yang} | 14 +++---- ...28.yang => ietf-isis-srv6@2024-09-01.yang} | 41 ++++++++++--------- ....yang => ietf-ospfv3-srv6@2024-09-02.yang} | 9 ++-- 7 files changed, 49 insertions(+), 72 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-isis-flex-algo@2023-03-06.yang => ietf-isis-flex-algo@2024-09-02.yang} (98%) rename experimental/ietf-extracted-YANG-modules/{ietf-isis-link-attr@2023-03-06.yang => ietf-isis-link-attr@2024-09-02.yang} (98%) rename experimental/ietf-extracted-YANG-modules/{ietf-isis-msd@2023-03-06.yang => ietf-isis-msd@2024-09-02.yang} (84%) rename experimental/ietf-extracted-YANG-modules/{ietf-isis-remaining-lifetime@2023-03-06.yang => ietf-isis-remaining-lifetime@2024-09-02.yang} (80%) rename experimental/ietf-extracted-YANG-modules/{ietf-isis-srv6@2024-02-28.yang => ietf-isis-srv6@2024-09-01.yang} (93%) rename experimental/ietf-extracted-YANG-modules/{ietf-ospfv3-srv6@2024-03-03.yang => ietf-ospfv3-srv6@2024-09-02.yang} (98%) 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 index e971ec1a9..0babc0f2e 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-altmark@2024-06-19.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-altmark@2024-06-19.yang @@ -85,7 +85,6 @@ module ietf-altmark { /* * IDENTITIES */ - identity filter { description "Base identity to represent a filter. A filter is used to @@ -182,7 +181,6 @@ module ietf-altmark { description "It indicates the AltMark Period."; } - identity flow-mon-id { description "It indicates the FlowMonID."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-flex-algo@2023-03-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-flex-algo@2024-09-02.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-flex-algo@2023-03-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-flex-algo@2024-09-02.yang index 3d1100340..a400250d0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-flex-algo@2023-03-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-flex-algo@2024-09-02.yang @@ -33,11 +33,11 @@ module ietf-isis-flex-algo { organization "IETF LSR - Link State Routing Working Group"; contact - "WG Web: + "WG Web: WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski @@ -46,12 +46,12 @@ module ietf-isis-flex-algo { description "The YANG module defines the configuration and operational - state for ISIS Flexible Algorithm as defined in RFC xxxx. + state for ISIS 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 @@ -73,7 +73,7 @@ module ietf-isis-flex-algo { reference "RFC XXXX: YANG Data Model for ISIS Flexible Algorithm."; - revision 2023-03-06 { + revision 2024-09-02 { description "Initial Version"; reference 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@2024-09-02.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-link-attr@2023-03-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-link-attr@2024-09-02.yang index e94bdcb35..f7535dbcd 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@2024-09-02.yang @@ -26,11 +26,11 @@ module ietf-isis-link-attr { "IETF LSR - Link State Routing Working Group"; contact - "WG Web: + "WG Web: WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski @@ -39,11 +39,11 @@ module ietf-isis-link-attr { description "This YANG module defines the configuration and operational state for IS-IS application specific link attributes feature as - defined in RFC 8919. + defined in RFC 9479. 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 @@ -64,7 +64,7 @@ module ietf-isis-link-attr { reference "RFC XXXX"; - revision 2023-03-06 { + revision 2024-09-02 { description "Initial version"; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-msd@2023-03-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-msd@2024-09-02.yang similarity index 84% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-msd@2023-03-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-msd@2024-09-02.yang index c80ad8ef1..6fbd5fef0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-msd@2023-03-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-msd@2024-09-02.yang @@ -21,11 +21,11 @@ module ietf-isis-msd { organization "IETF LSR - LSR Working Group"; contact - "WG Web: + "WG Web: WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski @@ -41,7 +41,7 @@ module ietf-isis-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,7 +63,7 @@ module ietf-isis-msd { reference "RFC XXXX: YANG Data Model for ISIS MSD"; - revision 2023-03-06 { + revision 2024-09-02 { description "Initial Version"; reference @@ -76,18 +76,7 @@ module ietf-isis-msd { container link-msd-sub-tlv { list link-msds { key "msd-type"; - leaf msd-type { - type identityref { - base mpls-msd:msd-base-type; - } - description - "MSD-Types"; - } - leaf msd-value { - type uint8; - description - "MSD value, in the range of 0-255."; - } + uses mpls-msd:msd-type-value; description "List of link MSDs"; } @@ -112,18 +101,7 @@ module ietf-isis-msd { container node-msd-tlv { list node-msds { key "msd-type"; - leaf msd-type { - type identityref { - base mpls-msd:msd-base-type; - } - description - "MSD-Types"; - } - leaf msd-value { - type uint8; - description - "MSD value, in the range of 0-255."; - } + uses mpls-msd:msd-type-value; description "Node MSD is the smallest link MSD supported by the node."; @@ -136,7 +114,6 @@ module ietf-isis-msd { } /* link MSD sub-tlv */ - augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol" + "/isis:isis/isis:database/isis:levels/isis:lsp" 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@2024-09-02.yang similarity index 80% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-remaining-lifetime@2023-03-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-remaining-lifetime@2024-09-02.yang index 6ed4e7ea4..2259ed3b4 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@2024-09-02.yang @@ -14,22 +14,22 @@ module ietf-isis-remaining-lifetime { "IETF LSR - Link State Routing Working Group"; contact - "WG Web: + "WG Web: WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Stephane Litkowski "; description - "This YANG module defines the configuration and operational - state for IS-IS Minimum Remaining Lifetime feature as defined - in RFC 7987. + "This YANG module defines a notification which is sent when the + IS-IS system detects corrupted lifetime of an LSP. This is for + IS-IS Minimum Remaining Lifetime feature as defined in RFC 7987. - 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 @@ -44,7 +44,7 @@ module ietf-isis-remaining-lifetime { reference "RFC XXXX"; - revision 2023-03-06 { + revision 2024-09-02 { description "Initial version"; reference diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-02-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-09-01.yang similarity index 93% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-02-28.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-09-01.yang index 41bbea1ad..7ebd8ba85 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-02-28.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2024-09-01.yang @@ -49,7 +49,7 @@ module ietf-isis-srv6 { "; description - "The YANG module defines the configuration and operatioanl state + "The YANG module defines the configuration and operational state for IS-IS extension to support Segment Routing over IPv6 data plane. @@ -76,7 +76,7 @@ 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 2024-02-28 { + revision 2024-09-01 { description "Initial revision."; reference @@ -187,6 +187,7 @@ module ietf-isis-srv6 { description "Base identity for SRv6 End.X SID sub-TLV bits."; } + identity b-bit { base srv6-endx-sid-bit; description @@ -461,10 +462,10 @@ module ietf-isis-srv6 { + "/isis:isis" { when "derived-from-or-self(../rt:type, 'isis:isis')" { description - "This augment ISIS routing protocol when used"; + "This augment IS-IS routing protocol when used"; } description - "This augments ISIS protocol configuration + "This augments IS-IS protocol configuration with SRv6."; container srv6-cfg { leaf enable { @@ -477,7 +478,7 @@ module ietf-isis-srv6 { type boolean; default "false"; description - "Enable ISIS segment-routing IPv6 with default Locator."; + "Enable IS-IS segment-routing IPv6 with default Locator."; } leaf-list locator-name { when "../default-locator = 'false'" { @@ -489,7 +490,7 @@ module ietf-isis-srv6 { + "/srv6:locators/srv6:locator/srv6:name"; } description - "Enable ISIS segment-routing IPv6 with specified Locator."; + "Enable IS-IS segment-routing IPv6 with specified Locator."; } leaf persistent-end-x-sid { type boolean; @@ -498,7 +499,7 @@ module ietf-isis-srv6 { "Enable the persistent nature of End.X sid"; } description - "Configuration about ISIS segment-routing IPv6."; + "Configuration about IS-IS segment-routing IPv6."; } container micro-loop-avoidance { leaf srv6-enable { @@ -527,10 +528,10 @@ module ietf-isis-srv6 { + "/isis:isis/isis:fast-reroute" { when "derived-from-or-self(../../rt:type, 'isis:isis')" { description - "This augment ISIS routing protocol when used"; + "This augment IS-IS routing protocol when used"; } description - "This augments ISIS IPFRR with IPV6 TILFA."; + "This augments IS-IS IPFRR with IPV6 TILFA."; container srv6-ti-lfa { if-feature "srv6-ti-lfa"; leaf enable { @@ -539,7 +540,7 @@ module ietf-isis-srv6 { "Enables SRv6 TI-LFA computation."; } description - "SRv6 TILFA configuration."; + "SRv6 TI-LFA configuration."; } } @@ -551,10 +552,10 @@ module ietf-isis-srv6 { + "/isis:router-capabilities" { when "derived-from-or-self(../../../../../rt:type, 'isis:isis')" { description - "This augment ISIS routing protocol when used"; + "This augment IS-IS routing protocol when used"; } description - "This augments ISIS protocol router capability."; + "This augments IS-IS protocol router capability."; uses srv6-capability; uses srv6:srv6-msd-signaled; } @@ -566,10 +567,10 @@ module ietf-isis-srv6 { when "derived-from-or-self(../../../../../../rt:type," + "'isis:isis')" { description - "This augment ISIS routing protocol when used."; + "This augment IS-IS routing protocol when used."; } description - "This augments ISIS protocol neighbor."; + "This augments IS-IS protocol neighbor."; container srv6-adjacency-sids { description "This defines svr6 end-x sids for the adjacency."; @@ -589,10 +590,10 @@ module ietf-isis-srv6 { when "derived-from-or-self(../../../../../../rt:type," + "'isis:isis')" { description - "This augment ISIS routing protocol when used."; + "This augment IS-IS routing protocol when used."; } description - "This augments ISIS protocol neighbor."; + "This augments IS-IS protocol neighbor."; container srv6-adjacency-sids { description "This defines svr6 end-x sids for the adjacency."; @@ -610,10 +611,10 @@ module ietf-isis-srv6 { + "/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 IS-IS routing protocol when used."; } description - "This augments ISIS protocol LSDB."; + "This augments IS-IS protocol LSDB."; container srv6-locators { description "This defines srv6 locator tlvs."; @@ -633,10 +634,10 @@ module ietf-isis-srv6 { when "derived-from-or-self(../../../../../rt:type," + "'isis:isis')" { description - "This augment ISIS routing protocol when used."; + "This augment IS-IS routing protocol when used."; } description - "This augments ISIS protocol operational state + "This augments IS-IS protocol operational state with segment routing."; uses srv6-adjacency-state; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-03-03.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-09-02.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-03-03.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-09-02.yang index 40dc7b072..8a2bbde28 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-03-03.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospfv3-srv6@2024-09-02.yang @@ -17,6 +17,9 @@ module ietf-ospfv3-srv6 { } import ietf-ospfv3-extended-lsa { prefix ospfv3-e-lsa; + reference + "RFC 9587: YANG Data Model for OSPFv3 Extended Link State + Advertisements (LSAs)"; } import ietf-ospf { prefix ospf; @@ -55,7 +58,7 @@ module ietf-ospfv3-srv6 { "; description - "The YANG module defines the configuration and operatioanl state + "The YANG module defines the configuration and operational state for OSPFv3 extensions to support Segment Routing over IPv6 data plane. @@ -71,7 +74,6 @@ module ietf-ospfv3-srv6 { 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. @@ -82,7 +84,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 2024-03-03 { + revision 2024-09-02 { description "Initial revision."; reference @@ -216,7 +218,6 @@ module ietf-ospfv3-srv6 { description "Intra-Area"; } - identity INTER-AREA-LOCATOR { base LOCATOR-ROUTE-TYPE; description From 5690fbc3309beeb6f60d7fc0b844430cb665af18 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Fri, 6 Sep 2024 18:05:38 +0000 Subject: [PATCH 12/23] Cronjob - daily check of IETF modules. --- .../ietf-ac-ntw@2024-05-15.yang | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang index 7d23dae9d..133190146 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-ntw@2024-05-15.yang @@ -125,6 +125,23 @@ module ietf-ac-ntw { uses nw:node-ref; } + grouping attachment-circuit-references { + description + "This grouping can be used to reference a list of attachment + circuits in a specific node."; + leaf-list 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; + } + grouping ac-profile-reference { description "This grouping can be used to reference an attachment circuit @@ -1119,7 +1136,8 @@ module ietf-ac-ntw { description "Indicates the RIP timers."; reference - "RFC 2453: RIP Version 2"; + "RFC 2080: RIPng for IPv6 + RFC 2453: RIP Version 2"; leaf update-interval { type uint16 { range "1..32767"; @@ -1671,6 +1689,7 @@ 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."; @@ -1833,6 +1852,27 @@ module ietf-ac-ntw { } } + // Parent and Child ACs + + grouping ac-hierarchy { + description + "Container for parent and child AC references."; + 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; + } + container ac-child-ref { + config false; + description + "Specifies a child AC that relies upon a parent AC."; + uses ac-ntw:attachment-circuit-references; + } + } + // AC network provisioning grouping ac { @@ -1970,14 +2010,7 @@ module ietf-ac-ntw { "List of AC profiles."; uses ac-profile-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; - } + uses ac-hierarchy; leaf-list peer-sap-id { type string; description From 5929517242f4659899eae0debd759ae1c642d57e Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Wed, 11 Sep 2024 18:05:41 +0000 Subject: [PATCH 13/23] Cronjob - daily check of IETF modules. --- .../ietf-ac-svc@2024-08-06.yang | 3 - .../ietf-bearer-svc@2024-08-06.yang | 172 +++++++++--------- .../ietf-template@2023-07-26.yang | 2 +- 3 files changed, 83 insertions(+), 94 deletions(-) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang index 54117a210..3a4085a81 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ac-svc@2024-08-06.yang @@ -81,7 +81,6 @@ module ietf-ac-svc { "Defines a reference to an attachment circuit that can be used by other modules."; } - typedef ac-group-reference { type leafref { path "/ac-svc:attachment-circuits/ac-svc:ac-group-profile" @@ -562,7 +561,6 @@ module ietf-ac-svc { uses ac-common:ospf-authentication; uses ac-common:service-status; } - // IS-IS Service grouping isis-svc { @@ -803,7 +801,6 @@ module ietf-ac-svc { } // Encryption choice - grouping encryption-choice { description "Container for the encryption profile."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang index a7ba88315..a7b3515c3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bearer-svc@2024-08-06.yang @@ -67,22 +67,13 @@ module ietf-bearer-svc { Circuits'-as-a-Service (ACaaS)"; } - // Typedef to ease referencing cross-modules - - typedef bearer-ref { - type leafref { - path "/bearer-svc:bearers/bearer-svc:bearer/bearer-svc:name"; - } - description - "Defines a type to reference a bearer."; - } - // Identities identity identification-type { description "Base identity for identification of bearers."; } + identity device-id { base identification-type; description @@ -151,12 +142,21 @@ module ietf-bearer-svc { synchronization based on the physical layer"; } + // Typedef to ease referencing cross-modules + + typedef bearer-ref { + type leafref { + path "/bearer-svc:bearers/bearer-svc:bearer/bearer-svc:name"; + } + description + "Defines a type to reference a bearer."; + } + // Reusable groupings grouping location-information { description - "Basic location information"; - + "Basic location information."; leaf name { type string; description @@ -199,7 +199,7 @@ module ietf-bearer-svc { description "Constraints related to placement of a bearer."; list constraint { - if-feature vpn-common:placement-diversity; + if-feature "vpn-common:placement-diversity"; key "constraint-type"; description "List of constraints."; @@ -208,11 +208,11 @@ module ietf-bearer-svc { base vpn-common:placement-diversity; } must "not(derived-from-or-self(current(), " - + "'vpn-common:bearer-diverse') or " - + "derived-from-or-self(current(), " - + "'vpn-common:same-bearer'))" { - error-message "Only bearer-specific diversity" - + "constraints must be provided."; + + "'vpn-common:bearer-diverse') or " + + "derived-from-or-self(current(), " + + "'vpn-common:same-bearer'))" { + error-message "Only bearer-specific diversity" + + "constraints must be provided."; } description "Diversity constraint type for bearers."; @@ -231,26 +231,26 @@ module ietf-bearer-svc { "List of groups."; leaf group-id { type string; - description - "The constraint will apply against this - particular group ID."; - } - } - } - case all-bearers { - leaf all-other-bearers { - type empty; - description - "The constraint will apply against all other - bearers of a site."; - } - } - case all-groups { - leaf all-other-groups { - type empty; - description - "The constraint will apply against all other - groups managed by the customer."; + description + "The constraint will apply against this + particular group ID."; + } + } + } + case all-bearers { + leaf all-other-bearers { + type empty; + description + "The constraint will apply against all other + bearers of a site."; + } + } + case all-groups { + leaf all-other-groups { + type empty; + description + "The constraint will apply against all other + groups managed by the customer."; } } } @@ -262,42 +262,36 @@ module ietf-bearer-svc { description "Retrieves the available provider locations for terminating bearers for a given customer."; - leaf customer-name { - type string; + + list customer { + key "name peer-as"; description - "Indicates the name of the customer that requested these - bearers."; - } - leaf role { - type identityref { - base ac-common:role; + "List of locations per customer."; + leaf name { + type string; + description + "Indicates the name of the customer."; + } + leaf peer-as { + type inet:as-number; + description + "Indicates the customer's ASN. + 0 is used when the customer does not have an ASN."; + reference + "RFC 7607: Codification of AS 0 Processing"; + } + list location { + key "name"; + config false; + description + "Reports the list of available locations."; + uses location-information; } - description - "Indicates whether this bearer is used as UNI, NNI, etc."; - } - leaf local-as { - type inet:as-number; - description - "Indicates a provider AS Number (ASN)."; - } - leaf peer-as { - type inet:as-number; - description - "Indicates the customer's ASN."; - } - list location { - key "name"; - config false; - description - "Reports the list of available locations."; - uses location-information; } } - container bearers { description "Main container for the bearers."; - leaf customer-name { type string; description @@ -356,16 +350,16 @@ module ietf-bearer-svc { type boolean; config false; description - "Indicates when set to true that a mechanism for physical - layer synchronization is supported for this bearer. No such - mechanism is supported if set to false."; + "Indicates when set to true that a mechanism for physical + layer synchronization is supported for this bearer. + No such mechanism is supported if set to false."; } leaf sync-phy-enabled { type boolean; description - "Indicates when set to true that a mechanism for physical - layer synchronization is enabled for this bearer. No such - mechanism is enabled if set to false."; + "Indicates when set to true that a mechanism for physical + layer synchronization is enabled for this bearer. No such + mechanism is enabled if set to false."; } leaf sync-phy-type { when "../sync-phy-enabled='true'"; @@ -382,20 +376,19 @@ module ietf-bearer-svc { } container customer-point { description - "Base container to link the Bearer existence"; + "Base container to link the Bearer existence."; leaf identified-by { type identityref { base identification-type; } description - "Attribute used to identify the bearer"; + "Specifies how the customer point is identified."; } container device { - when - "derived-from-or-self(../identified-by, " - + "'bearer-svc:device-id') or " - + "derived-from-or-self(../identified-by, " - + "'bearer-svc:site-and-device-id')" { + when "derived-from-or-self(../identified-by, " + + "'bearer-svc:device-id') or " + + "derived-from-or-self(../identified-by, " + + "'bearer-svc:site-and-device-id')" { description "Only applicable if identified-by is device."; } @@ -409,15 +402,14 @@ module ietf-bearer-svc { container location { description "Location of the node."; - uses location-information; + uses location-information; } } container site { - when - "derived-from-or-self(../identified-by, " - + "'bearer-svc:site-id') or " - + "derived-from-or-self(../identified-by, " - + "'bearer-svc:site-and-device-id')" { + when "derived-from-or-self(../identified-by, " + + "'bearer-svc:site-id') or " + + "derived-from-or-self(../identified-by, " + + "'bearer-svc:site-and-device-id')" { description "Only applicable if identified-by is site."; } @@ -432,7 +424,7 @@ module ietf-bearer-svc { container location { description "Location of the node."; - uses location-information; + uses location-information; } } leaf custom-id { @@ -457,9 +449,9 @@ module ietf-bearer-svc { leaf test-only { type empty; description - "When present, this indicates that this is a feasibility - check request. No resources are commited for such bearer - requests."; + "When present, this indicates that this is a feasibility + check request. No resources are commited for such bearer + requests."; } leaf bearer-reference { if-feature "ac-common:server-assigned-reference"; 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 ef84b9035..84f0f6501 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 @@ -55,7 +55,7 @@ module ietf-template { // this note // replace '2023-07-26' with the module publication date - // the format is (year-month-day) + // the format is (YYYY-MM-DD) revision 2023-07-26 { description From 72b4351d5bbcf656ee923ffe327e6e856cfb4515 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Fri, 13 Sep 2024 14:05:28 +0000 Subject: [PATCH 14/23] Cronjob - daily check of IANA modules. --- standard/iana/yang-parameters.xml | 32 ++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index ebe3347bc..86a38a269 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2024-08-29 + 2024-09-12 YANG Module Names @@ -192,6 +192,16 @@ and Subsequent Address Family Identi 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-tls-profile + Y + + urn:ietf:params:xml:ns:yang:iana-tls-profile + ianatp + + + tls-version and dtls-version values must not be directly added to the iana-tls-profile YANG module. They must instead be respectively added to the "ACL TLS Version Codes", and "ACL DTLS Version Codes" registries at provided the new (D)TLS version has been standardized by the IETF. It allows new (D)TLS version to be added to the "iana-tls-profile" YANG Module. (D)TLS parameters must not be directly added to the iana-tls-profile YANG module. They must instead be added to the "ACL (D)TLS Parameters" registry at if the new (D)TLS parameters can be used by a middlebox to identify a MUD non-compliant (D)TLS behavior. It allows new (D)TLS parameters to be added to the "iana-tls-profile" YANG Module. Note: the initial module file will be posted upon 's publication as an RFC. + iana-tunnel-type Y @@ -228,6 +238,16 @@ and Subsequent Address Family Identi + + ietf-acl-tls + N + + urn:ietf:params:xml:ns:yang:ietf-acl-tls + ietf-acl-tls + + + 's module file will be posted upon the document's publication as an RFC. + ietf-acldns N @@ -1309,6 +1329,16 @@ and Subsequent Address Family Identi + + ietf-mud-tls + N + + urn:ietf:params:xml:ns:yang:ietf-mud-tls + ietf-mud-tls + + + 's module file will be posted upon the document's publication as an RFC. + ietf-mud-transparency N From 4ea39a9ed133e037d9f44bd194401bae317e2eb9 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Fri, 13 Sep 2024 18:05:42 +0000 Subject: [PATCH 15/23] Cronjob - daily check of IETF modules. --- ...> ietf-adapt-subscription@2024-09-09.yang} | 88 ++++++++++++++++++- 1 file changed, 84 insertions(+), 4 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-adapt-subscription@2024-06-13.yang => ietf-adapt-subscription@2024-09-09.yang} (74%) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-06-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-09-09.yang similarity index 74% rename from experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-06-13.yang rename to experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-09-09.yang index 695b720f3..59a503017 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-06-13.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-adapt-subscription@2024-09-09.yang @@ -19,6 +19,18 @@ module ietf-adapt-subscription { reference "RFC YYYY: Common YANG Data Types"; } + 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"; + } organization "IETF NETCONF (Network Configuration) Working Group"; @@ -60,8 +72,8 @@ module ietf-adapt-subscription { 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 + 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', @@ -71,11 +83,17 @@ module ietf-adapt-subscription { (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-06-13 { + revision 2024-09-09 { description "Initial revision"; reference - "RFC xxxx: Adaptive Subscription to YANG Notification."; + "RFC XXXX: Adaptive Subscription to YANG Notification."; + } + + feature adaptive-subscription { + description + "This feature indicates that adaptive-subscriptions are + supported."; } identity adaptive-unsupported { @@ -161,6 +179,7 @@ module ietf-adapt-subscription { "This augmentation adds additional subscription parameters that apply specifically to adaptive subscription."; case adaptive-periodic { + if-feature adaptive-subscription; description "Defines adaptively periodic case for sending an event record to the subscriber."; @@ -175,6 +194,7 @@ module ietf-adapt-subscription { parameters that apply specifically to datastore updates to RPC input."; case adaptive-periodic { + if-feature adaptive-subscription; description "Defines adaptively periodic case for sending an event record to the subscriber."; @@ -188,6 +208,7 @@ module ietf-adapt-subscription { parameters that apply specifically to datastore updates to RPC input."; case adaptive-periodic { + if-feature adaptive-subscription; description "Defines adaptively periodic case for sending an event record to the subscriber."; @@ -201,6 +222,7 @@ module ietf-adapt-subscription { parameters to the notification that a subscription has started."; case adaptive-periodic { + if-feature adaptive-subscription; description "Defines adaptively periodic case for sending an event record to the subscriber."; @@ -214,6 +236,7 @@ module ietf-adapt-subscription { parameters to the notification that a subscription has been modified."; case adaptive-periodic { + if-feature adaptive-subscription; description "Defines adaptively periodic case for sending an event record to the subscriber."; @@ -222,6 +245,7 @@ module ietf-adapt-subscription { } notification adaptive-period-update { + if-feature adaptive-subscription; sn:subscription-state-notification; description "This notification contains a push update that in turn @@ -264,4 +288,60 @@ module ietf-adapt-subscription { } } } + + grouping adaptive-subscription-capabilities { + description + "Capabilities related to adaptive subscription and + notification."; + 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 + "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."; + } + leaf adaptive-notifications-supported { + type notification-support; + description + "Specifies whether the publisher is capable of sending + 'adaptive' notifications for the selected data nodes, + including any subtrees that may exist below them."; + } + } + + augment + "/sysc:system-capabilities/notc:subscription-capabilities" { + description + "Add system level capabilities of adaptive subscription."; + uses adaptive-subscription-capabilities; + } + + augment "/sysc:system-capabilities/sysc:datastore-capabilities/" + + "sysc:per-node-capabilities/notc:subscription-capabilities" { + description + "Add node-level capabilities of adaptive subscription."; + uses adaptive-subscription-capabilities; + } } From c88106828769e320823e45dce1e29bffcf8135d1 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Wed, 18 Sep 2024 14:05:30 +0000 Subject: [PATCH 16/23] Cronjob - daily check of IANA modules. --- standard/iana/yang-parameters.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index 86a38a269..fb2213cdc 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2024-09-12 + 2024-09-17 YANG Module Names @@ -2019,15 +2019,15 @@ and Subsequent Address Family Identi - + ietf-syslog N urn:ietf:params:xml:ns:yang:ietf-syslog ietf-syslog - - 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. + + TEMPORARY - registered 2021-07-11, extension registered 2024-06-24, document sent to IESG Evaluation 2024-09-03. 's module file will be posted upon the document's publication as an RFC. ietf-system From 58c751d1c338f128d87449e825f37af0266263b3 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Wed, 18 Sep 2024 18:05:45 +0000 Subject: [PATCH 17/23] Cronjob - daily check of IETF modules. --- .../ietf-vrrp-2@2024-09-17.yang | 1046 +++++++++++++++++ 1 file changed, 1046 insertions(+) create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-vrrp-2@2024-09-17.yang diff --git a/experimental/ietf-extracted-YANG-modules/ietf-vrrp-2@2024-09-17.yang b/experimental/ietf-extracted-YANG-modules/ietf-vrrp-2@2024-09-17.yang new file mode 100644 index 000000000..e231c2ce5 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-vrrp-2@2024-09-17.yang @@ -0,0 +1,1046 @@ +module ietf-vrrp-2 { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp-2"; + prefix vrrp; + + import ietf-inet-types { + prefix inet; + } + import ietf-yang-types { + prefix yang; + } + import ietf-interfaces { + prefix if; + } + import ietf-ip { + prefix ip; + } + + organization + "IETF Routing Area Working Group (RTGWG)"; + contact + "WG Web: + WG List: + + Editor: Acee Lindem + + + Editor: Xufeng Liu + + Editor: Athanasios Kyparlis + + + Editor: Ravi Parikh + + + Editor: Mingui Zhang + "; + description + "This YANG module defines a model for managing Virtual Router + Redundancy Protocol (VRRP) versions 2 and 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-09-17 { + description + "Initial revision."; + reference + "RFC XXXX: A YANG Data Model for the Virtual Router Redundancy + Protocol (VRRP) + RFC 2787: Definitions of Managed Objects for the Virtual + Router Redundancy Protocol + RFC 3768: Virtual Router Redundancy Protocol (VRRP) + RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6 + RFC 6527: Definitions of Managed Objects for the Virtual + Router Redundancy Protocol Version 3 (VRRPv3)"; + } + + /* + * Features + */ + + feature validate-interval-errors { + description + "This feature indicates that the system validates that the + advertisement interval from advertisement packets received + is the same as the interval configured for the local + VRRP router."; + } + + feature validate-address-list-errors { + description + "This feature indicates that the system validates that + the address list from received packets matches the + locally configured list for the VRRP router."; + } + + /* + * Typedefs + */ + + typedef new-active-reason-type { + type enumeration { + enum not-active { + description + "The virtual router has never transitioned to active + state."; + } + enum priority { + description + "Priority was higher."; + } + enum preempted { + description + "The active virtual router was preempted."; + } + enum no-response { + description + "Previous active virutal router did not respond."; + } + } + description + "Indicates why the virtual router has transitioned to + active state."; + } // new-active-reason-type + + /* + * 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 + "Indicates that the owner has preempted another virtual router + to become the active virtual router."; + } + + /* 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 + "A packet has been received with a Virtual Router Identifier + (VRID) that is not valid for any virtual router on this + router."; + } + + /* 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 + "A packet has been received with an address list that + does not match the locally configured address list for + the virtual router."; + } + + identity interval-error { + base vrrp-error-virtual-router; + description + "A packet has been received with an advertisement interval + different than the interval configured for the local + virtual router."; + } + + identity packet-length-error { + base vrrp-error-virtual-router; + description + "A packet has been received with a packet length less + than the length of the VRRP header."; + } + + /* 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 + "Indicates that the virtual router is forwarding + packets for IP addresses that are associated with + this virtual router."; + } + + /* 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 + "Indicates version 3 of VRRP."; + } + + /* + * Groupings + */ + + grouping vrrp-common-attributes { + description + "Group of VRRP attributes common to versions 2 and 3."; + leaf vrid { + type uint8 { + range "1..255"; + } + description + "Virtual Router ID (i.e., VRID)."; + } + leaf version { + type identityref { + base vrrp:vrrp-version; + } + mandatory true; + description + "Version 2 or 3 of VRRP."; + } + leaf log-state-change { + type boolean; + default "false"; + description + "Generates VRRP state change messages each time the + 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 + lower-priority VRRP active router."; + leaf enabled { + type boolean; + default "true"; + description + "'true' if preemption is enabled."; + } + leaf hold-time { + type uint16; + 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"; + description + "Configures the VRRP election priority for the backup + virtual router."; + } + leaf accept-mode { + when "derived-from-or-self(current()/../version, 'vrrp-v3')" { + description + "Applicable only to version 3."; + } + type boolean; + default "false"; + description + "Controls whether a virtual router in active state will + accept packets addressed to the address owner's IPvX address + as its own if it is not the IPvX address owner. The default + is 'false'. Deployments that rely on, for example, pinging + the address owner's IPvX address may wish to configure + accept-mode to 'true'. + + Note: IPv6 Neighbor Solicitations and Neighbor + Advertisements MUST NOT be dropped when accept-mode + is 'false'."; + } + } // vrrp-common-attributes + + 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 + "Applicable only to version 2."; + } + leaf advertise-interval-sec { + type uint8 { + range "1..254"; + } + 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 + "Applicable only to version 3."; + } + leaf advertise-interval-centi-sec { + type uint16 { + range "1..4095"; + } + 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 + or networks."; + container interfaces { + description + "Enables the specified VRRPv2 or VRRPv3 instance to track + interfaces. Interface tracking prevents traffic loss by + detecting the availability of interfaces. The operational + states of other interfaces are associated with the + priority of a VRRP router. When a tracked interface + becomes unavailable (or 'operational down'), the priority + 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' { + description + "Interface is IPv4."; + } + description + "Interface to track."; + } + leaf priority-decrement { + type uint8 { + range "1..254"; + } + 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 + specified networks through their IPv4 network prefixes. + Network tracking prevents traffic loss by detecting + network connectivity failure. The states of + connectivity to some networks are associated with the + priority of a VRRP router. When connectivity to a + tracked network represented by its prefix is lost, the + priority of the VRRP router decrements. When an + unavailable network is again reachable, the priority of + the VRRP router is incremented by the same amount."; + list network { + key "prefix"; + description + "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"; + description + "Specifies how much to decrement the priority of the + VRRP router if there is a failure in the IPv4 + network."; + } + } // 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; + description + "Virtual IPv4 addresses for a single VRRP instance. For a + 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 + "An IPv4 address associated with a virtual router."; + reference + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6. Section 1.2"; + } + } // virtual-ipv4-address + } // virtual-ipv4-addresses + } // vrrp-ipv4-attributes + + 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"; + description + "Configures the interval that VRRPv3 advertisements + are sent from the specified interface."; + } + container track { + description + "Enables the specified VRRP instance to track interfaces + or networks."; + container interfaces { + description + "Enables the specified VRRPv2 or VRRPv3 instance to track + interfaces. Interface tracking prevents traffic loss by + detecting the availability of interfaces. The operational + states of other interfaces are associated with the + priority of a VRRP router. When a tracked interface + becomes unavailable (or 'operational down'), the priority + 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:ipv6' { + description + "Interface is IPv6."; + } + description + "Interface to track."; + } + leaf priority-decrement { + type uint8 { + range "1..254"; + } + 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 + specified networks through their IPv6 network prefixes. + Network tracking prevents traffic loss by detecting + network connectivity failure. The states of + connectivity to some networks are associated with the + priority of a VRRP router. When connectivity to a + tracked network represented by its prefix is lost, the + priority of the VRRP router decrements. When an + unavailable network is again reachable, the priority of + the VRRP router is incremented by the same amount."; + list network { + key "prefix"; + description + "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"; + description + "Specifies how much to decrement the priority of the + VRRP router if there is a failure in the IPv6 + network."; + } + } // network + } // networks + } // track + container virtual-ipv6-addresses { + description + "Configures the virtual IPv6 address for the + VRRP interface."; + list virtual-ipv6-address { + key "ipv6-address"; + max-elements 2; + description + "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 + "An IPv6 address associated with a virtual router."; + reference + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6. Section 1.3"; + } + } // virtual-ipv6-address + } // virtual-ipv6-addresses + } // vrrp-ipv6-attributes + + grouping vrrp-state-attributes { + description + "Group of VRRP state attributes."; + leaf state { + type identityref { + base vrrp:vrrp-state-type; + } + config false; + 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; + description + "The date and time when this virtual router + transitioned out of 'init' state."; + } + leaf active-down-interval { + type uint32; + units "centiseconds"; + config false; + description + "Time interval for the backup virtual router to declare + 'active down'."; + } + leaf skew-time { + type uint32; + 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; + } + config false; + description + "Last reported event."; + } + leaf new-active-reason { + type new-active-reason-type; + config false; + description + "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 + "The time on the most recent occasion at which any one or + more of the VRRP statistics 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 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"; + 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"; + 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 + "The total number of packets received with a packet + length less than the length of the VRRP header."; + } + } // statistics + } // vrrp-state-attributes + + grouping vrrp-global-state-attributes { + description + "Group of VRRP global state attributes."; + leaf virtual-routers { + type uint32; + description + "Number of configured virtual routers."; + } + leaf interfaces { + type uint32; + description + "Number of interfaces with VRRP configured."; + } + container statistics { + description + "VRRP global statistics."; + leaf discontinuity-datetime { + type yang:date-and-time; + description + "The time on the most recent occasion at which any + one or more of checksum-errors, version-errors, + vrid-errors, or ip-ttl-errors 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 that the local management + subsystem re-initialized itself."; + } + leaf checksum-errors { + type yang:counter64; + description + "The total number of VRRP packets received with an invalid + VRRP checksum value."; + reference + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6. Section 5.2.8"; + } + leaf version-errors { + type yang:counter64; + description + "The total number of VRRP packets received with an unknown + or unsupported version number."; + reference + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6. Section 5.2.1"; + } + leaf vrid-errors { + type yang:counter64; + description + "The total number of VRRP packets received with a VRID that + is not valid for any virtual router on this router."; + reference + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6. Section 5.2.3"; + } + leaf ip-ttl-errors { + type yang:counter64; + description + "The total number of VRRP packets received by the + virtual router with IP TTL (IPv4) or Hop Limit (IPv6) + not equal to 255."; + reference + "RFC 9568: Virtual Router Redundancy Protocol (VRRP) + Version 3 for IPv4 and IPv6. + Sections 5.1.1.3 and 5.1.2.3"; + } + } // statistics + } // vrrp-global-state-attributes + + /* + * Configuration data and operational state data nodes + */ + + 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; + } + } + } // augments ipv4 + + 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 + "IPv6 is only supported by version 3."; + } + key "vrid"; + description + "Defines a virtual router, identified by a VRID, within the + IPv6 address space."; + uses vrrp-ipv6-attributes; + uses vrrp-state-attributes; + } + } + } // augments ipv6 + + container vrrp { + config false; + description + "VRRP data at the global level."; + uses vrrp-global-state-attributes; + } + + /* + * Notifications + */ + + notification vrrp-new-active-event { + description + "Notification event for the election of a new VRRP + active router."; + leaf active-ip-address { + type inet:ip-address; + mandatory true; + description + "IPv4 or IPv6 address of the new VRRP active router."; + } + leaf new-active-reason { + type new-active-reason-type; + mandatory true; + description + "Indicates why the virtual router has transitioned to + active state."; + } + } + + notification vrrp-protocol-error-event { + description + "Notification event for a VRRP protocol error."; + leaf protocol-error-reason { + type identityref { + base vrrp:vrrp-error-global; + } + mandatory true; + description + "Indicates the reason for the protocol error."; + } + } + + notification vrrp-virtual-router-error-event { + description + "Notification event for an error that happened on a + virtual router."; + leaf interface { + type if:interface-ref; + mandatory true; + description + "Indicates the interface on which the event has occurred."; + } + choice ip-version { + mandatory true; + description + "The error may have happened on either an IPv4 virtual + router or an IPv6 virtual router. The information + related to a specific IP version is provided by one of + the following cases."; + case ipv4 { + description + "IPv4."; + container ipv4 { + description + "Error information for IPv4."; + leaf vrid { + type leafref { + path "/if:interfaces/if:interface" + + "[if:name = current()/../../vrrp:interface]/" + + "ip:ipv4/vrrp:vrrp/vrrp:vrrp-instance/vrrp:vrid"; + } + mandatory true; + description + "Indicates the virtual router on which the event has + occurred."; + } + } + } + case ipv6 { + description + "IPv6."; + container ipv6 { + description + "Error information for IPv6."; + leaf vrid { + type leafref { + path "/if:interfaces/if:interface" + + "[if:name = current()/../../vrrp:interface]/" + + "ip:ipv6/vrrp:vrrp/vrrp:vrrp-instance/vrrp:vrid"; + } + mandatory true; + description + "Indicates the virtual router on which the event has + occurred."; + } + } + } + } + leaf virtual-router-error-reason { + type identityref { + base vrrp:vrrp-error-virtual-router; + } + mandatory true; + description + "Indicates the reason for the virtual router error."; + } + } +} From a84de0e0a20f4a58e20fb6e86804a4d1a3158b34 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Thu, 19 Sep 2024 18:05:46 +0000 Subject: [PATCH 18/23] Cronjob - daily check of IETF modules. --- .../ietf-syslog@2024-03-21.yang | 931 ----------------- .../ietf-syslog@2024-09-18.yang | 959 ++++++++++++++++++ 2 files changed, 959 insertions(+), 931 deletions(-) delete mode 100644 experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang create mode 100644 experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-09-18.yang diff --git a/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang deleted file mode 100644 index e33c559a4..000000000 --- a/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-03-21.yang +++ /dev/null @@ -1,931 +0,0 @@ -module ietf-syslog { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-syslog"; - prefix syslog; - - import ietf-inet-types { - prefix inet; - reference - "RFC 6991: Common YANG Data Types"; - } - import ietf-interfaces { - prefix if; - reference - "RFC 8343: A YANG Data Model for Interface Management"; - } - import ietf-tls-client { - prefix tlsc; - reference - "I-D.ietf-netconf-tls-client-server: - YANG Groupings for TLS Clients and TLS Servers"; - } - import ietf-crypto-types { - prefix ct; - reference - "I-D.ietf-netconf-crypto-types: YANG Data Types for - Cryptography"; - } - - organization - "IETF NETMOD (Network Modeling) Working Group"; - contact - "WG Web: - WG List: - - Editor: Mahesh Jethanandani - - - Editor: Joe Clarke - - - Editor: Kiran Agrahara Sreenivasa - - - Editor: Clyde Wildes - "; - description - "This module contains a collection of YANG definitions - for syslog configuration. - - 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 zzzz - (https://www.rfc-editor.org/info/rfczzzz); - 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-21 { - description - "Initial Revision"; - reference - "RFC zzzz: Syslog YANG Model"; - } - - feature console-action { - description - "This feature indicates that the local console action is - supported."; - } - - feature file-action { - description - "This feature indicates that the local file action is - supported."; - } - - feature file-limit-size { - description - "This feature indicates that file logging resources - are managed using size and number limits."; - } - - feature file-limit-duration { - description - "This feature indicates that file logging resources - are managed using time based limits."; - } - - feature remote-action { - description - "This feature indicates that the remote server action is - supported."; - } - - feature remote-source-interface { - description - "This feature indicates that source-interface is supported - supported for the remote-action."; - } - - feature select-adv-compare { - description - "This feature represents the ability to select messages - using the additional comparison operators when comparing - the syslog message severity."; - } - - feature select-match { - description - "This feature represents the ability to select messages - based on a Posix 1003.2 regular expression pattern - match."; - } - - feature structured-data { - description - "This feature represents the ability to log messages - in structured-data format."; - reference - "RFC 5424: The Syslog Protocol"; - } - - feature signed-messages { - description - "This feature represents the ability to configure signed - syslog messages."; - reference - "RFC 5848: Signed Syslog Messages"; - } - - typedef syslog-severity { - type enumeration { - enum emergency { - value 0; - description - "The severity level 'Emergency' indicating that the - system is unusable."; - } - enum alert { - value 1; - description - "The severity level 'Alert' indicating that an - action must be taken immediately."; - } - enum critical { - value 2; - description - "The severity level 'Critical' indicating a - critical condition."; - } - enum error { - value 3; - description - "The severity level 'Error' indicating an error - condition."; - } - enum warning { - value 4; - description - "The severity level 'Warning' indicating a warning - condition."; - } - enum notice { - value 5; - description - "The severity level 'Notice' indicating a normal - but significant condition."; - } - enum info { - value 6; - description - "The severity level 'Info' indicating an - informational message."; - } - enum debug { - value 7; - description - "The severity level 'Debug' indicating a - debug-level message."; - } - } - description - "The definitions for Syslog message severity. - Note that a lower value is a higher severity. Comparisons - of equal-or-higher severity mean equal or lower numeric - value"; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity syslog-facility { - description - "This identity is used as a base for all syslog - facilities."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity kern { - base syslog-facility; - description - "The facility for kernel messages (0)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity user { - base syslog-facility; - description - "The facility for user-level messages (1)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity mail { - base syslog-facility; - description - "The facility for the mail system (2)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity daemon { - base syslog-facility; - description - "The facility for the system daemons (3)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity auth { - base syslog-facility; - description - "The facility for security/authorization messages (4)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity syslog { - base syslog-facility; - description - "The facility for messages generated internally by syslogd - facility (5)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity lpr { - base syslog-facility; - description - "The facility for the line printer subsystem (6)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity news { - base syslog-facility; - description - "The facility for the network news subsystem (7)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity uucp { - base syslog-facility; - description - "The facility for the UUCP subsystem (8)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity cron { - base syslog-facility; - description - "The facility for the clock daemon (9)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity authpriv { - base syslog-facility; - description - "The facility for privileged security/authorization - messages (10)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity ftp { - base syslog-facility; - description - "The facility for the FTP daemon (11)."; - reference - "RFC 5424: The Syslog Protocol"; - } - identity ntp { - base syslog-facility; - description - "The facility for the NTP subsystem (12)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity audit { - base syslog-facility; - description - "The facility for log audit messages (13)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity console { - base syslog-facility; - description - "The facility for log alert messages (14)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity cron2 { - base syslog-facility; - description - "The facility for the second clock daemon (15)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local0 { - base syslog-facility; - description - "The facility for local use 0 messages (16)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local1 { - base syslog-facility; - description - "The facility for local use 1 messages (17)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local2 { - base syslog-facility; - description - "The facility for local use 2 messages (18)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local3 { - base syslog-facility; - description - "The facility for local use 3 messages (19)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local4 { - base syslog-facility; - description - "The facility for local use 4 messages (20)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local5 { - base syslog-facility; - description - "The facility for local use 5 messages (21)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local6 { - base syslog-facility; - description - "The facility for local use 6 messages (22)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity local7 { - base syslog-facility; - description - "The facility for local use 7 messages (23)."; - reference - "RFC 5424: The Syslog Protocol"; - } - - identity action { - description - "Base identity for action for how a message will be - handled."; - } - - identity log { - base action; - description - "This identity specifies that if the compare operation is - true the message will be logged."; - } - - identity block { - base action; - description - "This identity specifies that if the compare operation is - true the message will not be logged."; - } - - identity stop { - base action; - description - "This identity specifies that if the compare operation is - true the message will not be logged and no further - processing will occur for it."; - } - - grouping severity-filter { - description - "This grouping defines the processing used to select - log messages by comparing syslog message severity using - the following processing rules: - - if 'none', do not match. - - if 'all', match. - - else compare message severity with the specified - severity according to the default compare rule (all - messages of the specified severity and greater match) - or if the select-adv-compare feature is present, use - the advance-compare rule."; - leaf severity { - type union { - type syslog-severity; - type enumeration { - enum none { - value 2147483647; - description - "This enum describes the case where no - severities are selected."; - } - enum all { - value -2147483648; - description - "This enum describes the case where all - severities are selected."; - } - } - } - mandatory true; - description - "This leaf specifies the syslog message severity."; - } - container advanced-compare { - when "../severity != \"all\" and - ../severity != \"none\"" { - description - "The advanced compare container is not applicable - for severity 'all' or severity 'none'"; - } - if-feature "select-adv-compare"; - leaf compare { - type enumeration { - enum equals { - description - "This enum specifies that the severity - comparison operation will be equals."; - } - enum equals-or-higher { - description - "This enum specifies that the severity - comparison operation will be equals or - higher."; - } - } - default "equals-or-higher"; - description - "The compare can be used to specify the comparison - operator that should be used to compare the syslog - message severity with the specified severity."; - } - leaf action { - type identityref { - base "action"; - } - default "log"; - description - "The action can be used to specify how the message - should be handled. This may include logging the - message, not logging the message (i.e., blocking - it), or stopping further processing."; - } - description - "This container describes additional severity compare - operations that can be used in place of the default - severity comparison. The compare leaf specifies the - type of the compare that is done and the action leaf - specifies the intended result. - Example: compare->equals and action->block means - messages that have a severity that are equal to the - specified severity will not be logged."; - } - } - - grouping selector { - description - "This grouping defines a syslog selector which is used to - select log messages for the log-actions (console, file, - remote, etc.). Choose one or both of the following: - facility [ ...] - pattern-match regular-expression-match-string - If both facility and pattern-match are specified, both - must match in order for a log message to be selected."; - container facility-filter { - description - "This container describes the syslog filter - parameters."; - list facility-list { - key "facility severity"; - ordered-by user; - description - "This list describes a collection of syslog - facilities and severities."; - leaf facility { - type union { - type identityref { - base syslog-facility; - } - type enumeration { - enum all { - description - "This enum describes the case where - all facilities are requested."; - } - } - } - description - "The leaf uniquely identifies a syslog - facility."; - } - uses severity-filter; - } - } - leaf pattern-match { - if-feature "select-match"; - type string; - description - "This leaf describes a Posix 1003.2 regular expression - string that can be used to select a syslog message for - logging. The match is performed on the SYSLOG-MSG - field."; - reference - "RFC 5424: The Syslog Protocol - Std-1003.1-2008 Regular Expressions"; - } - } - - grouping structured-data { - description - "This grouping defines the syslog structured data option - which is used to select the format used to write log - messages."; - leaf structured-data { - if-feature "structured-data"; - type boolean; - default "false"; - description - "This leaf describes how log messages are written. - If true, messages will be written with one or more - STRUCTURED-DATA elements; if false, messages will be - written with STRUCTURED-DATA = NILVALUE."; - reference - "RFC 5424: The Syslog Protocol"; - } - } - - container syslog { - presence - "Enables logging."; - description - "This container describes the configuration parameters for - syslog."; - container actions { - description - "This container describes the log-action parameters - for syslog."; - container console { - if-feature "console-action"; - presence - "Enables logging to the console"; - description - "This container describes the configuration - parameters for console logging."; - uses selector; - } - container file { - if-feature "file-action"; - description - "This container describes the configuration - parameters for file logging. If file-archive - limits are not supplied, it is assumed that - the local implementation defined limits will - be used."; - list log-file { - key "name"; - description - "This list describes a collection of local - logging files."; - leaf name { - type inet:uri { - pattern - 'file:.*'; - } - description - "This leaf specifies the name of the log - file which MUST use the uri scheme - file:."; - reference - "RFC 8089: The file URI Scheme"; - } - uses selector; - uses structured-data; - container file-rotation { - description - "This container describes the configuration - parameters for log file rotation."; - leaf number-of-files { - if-feature "file-limit-size"; - type uint32; - default "1"; - description - "This leaf specifies the maximum number - of log files retained. Specify 1 for - implementations that only support one - log file."; - } - leaf max-file-size { - if-feature "file-limit-size"; - type uint32; - units "megabytes"; - description - "This leaf specifies the maximum log - file size."; - } - leaf rollover { - if-feature "file-limit-duration"; - type uint32; - units "minutes"; - description - "This leaf specifies the length of time - that log events should be written to a - specific log file. Log events that - arrive after the rollover period cause - the current log file to be closed and - a new log file to be opened."; - } - leaf retention { - if-feature "file-limit-duration"; - type uint32; - units "minutes"; - description - "This leaf specifies the length of time - that completed/closed log event files - should be stored in the file system - before they are removed."; - } - } - } - } - container remote { - if-feature "remote-action"; - description - "This container describes the configuration - parameters for forwarding syslog messages - to remote relays or collectors."; - list destination { - key "name"; - description - "This list describes a collection of remote - logging destinations."; - leaf name { - type string; - description - "An arbitrary name for the endpoint to - connect to."; - } - choice transport { - mandatory true; - description - "This choice describes the transport - option."; - case udp { - container udp { - description - "This container describes the UDP - transport options."; - reference - "RFC 5426: Transmission of Syslog - Messages over UDP"; - leaf address { - type inet:host; - description - "The leaf uniquely specifies - the address of the remote - host. One of the following - must be specified: an ipv4 - address, an ipv6 address, or a - host name."; - } - leaf port { - type inet:port-number; - default "514"; - description - "This leaf specifies the port - number used to deliver - messages to the remote - server."; - } - } - } - case tls { - container tls { - description - "This container describes the TLS - transport options."; - reference - "RFC 5425: Transport Layer Security - (TLS) Transport Mapping for - Syslog "; - leaf address { - type inet:host; - description - "The leaf uniquely specifies - the address of the remote - host. One of the following - must be specified: an ipv4 - address, an ipv6 address, or - a host name."; - } - leaf port { - type inet:port-number; - default "6514"; - description - "TCP port 6514 has been - allocated as the default port - for syslog over TLS."; - } - uses tlsc:tls-client-grouping; - } - } - } - uses selector; - uses structured-data; - leaf facility-override { - type identityref { - base syslog-facility; - } - description - "If specified, this leaf specifies the - facility used to override the facility - in messages delivered to the remote - server."; - } - leaf source-interface { - if-feature "remote-source-interface"; - type if:interface-ref; - description - "This leaf sets the source interface to be - used to send messages to the remote syslog - server. If not set, messages can be sent - on any interface."; - } - container signing { - if-feature "signed-messages"; - presence - "If present, syslog-signing options is - activated."; - description - "This container describes the configuration - parameters for signed syslog messages."; - reference - "RFC 5848: Signed Syslog Messages"; - container cert-signers { - description - "This container describes the signing - certificate configuration for - Signature Group 0 which covers the - case for administrators who want all - Signature Blocks to be sent to a - single destination."; - list cert-signer { - key "name"; - description - "This list describes a collection - of syslog message signers."; - leaf name { - type string; - description - "This leaf specifies the name - of the syslog message - signer."; - } - container cert { - uses ct:asymmetric-key-pair-with-cert-grouping; - description - "This is the certificate that - is periodically sent to the - remote receiver. The - certificate is inherently - associated with its private - and public keys."; - } - leaf hash-algorithm { - type enumeration { - enum SHA1 { - value 1; - description - "This enum describes - the SHA1 algorithm."; - } - enum SHA256 { - value 2; - description - "This enum describes - the SHA256 - algorithm."; - } - } - description - "This leaf describes the syslog - signer hash algorithm used."; - } - } - leaf cert-initial-repeat { - type uint32; - default "3"; - description - "This leaf specifies the number of - times each Certificate Block - should be sent before the first - message is sent."; - } - leaf cert-resend-delay { - type uint32; - units "seconds"; - default "3600"; - description - "This leaf specifies the maximum - time delay in seconds until - resending the Certificate Block."; - } - leaf cert-resend-count { - type uint32; - default "0"; - description - "This leaf specifies the maximum - number of other syslog messages to - send until resending the - Certificate Block."; - } - leaf sig-max-delay { - type uint32; - units "seconds"; - default "60"; - description - "This leaf specifies when to - generate a new Signature Block. If - this many seconds have elapsed - since the message with the first - message number of the Signature - Block was sent, a new Signature - Block should be generated."; - } - leaf sig-number-resends { - type uint32; - default "0"; - description - "This leaf specifies the number of - times a Signature Block is resent. - (It is recommended to select a - value of greater than 0 in - particular when the UDP transport - RFC 5426 is used.)."; - } - leaf sig-resend-delay { - type uint32; - units "seconds"; - default "5"; - description - "This leaf specifies when to send - the next Signature Block - transmission based on time. If - this many seconds have elapsed - since the previous sending of this - Signature Block, resend it."; - } - leaf sig-resend-count { - type uint32; - default "0"; - description - "This leaf specifies when to send - the next Signature Block - transmission based on a count. If - this many other syslog messages - have been sent since the previous - sending of this Signature Block, - resend it. A value of 0 means that - you don't resend based on the - number of messages."; - } - } - } - } - } - } - } -} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-09-18.yang b/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-09-18.yang new file mode 100644 index 000000000..45e523627 --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-syslog@2024-09-18.yang @@ -0,0 +1,959 @@ +module ietf-syslog { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-syslog"; + prefix syslog; + + import ietf-inet-types { + prefix inet; + reference + "RFC 6991: Common YANG Data Types"; + } + + import ietf-interfaces { + prefix if; + reference + "RFC 8343: A YANG Data Model for Interface Management"; + } + + import ietf-tls-client { + prefix tlsc; + reference + "I-D.ietf-netconf-tls-client-server: + YANG Groupings for TLS Clients and TLS Servers"; + } + + import ietf-crypto-types { + prefix ct; + reference + "I-D.ietf-netconf-crypto-types: YANG Data Types for + Cryptography"; + } + + organization + "IETF NETMOD (Network Modeling) Working Group"; + contact + "WG Web: + WG List: + + Editor: Mahesh Jethanandani + + + Editor: Joe Clarke + + + Editor: Kiran Agrahara Sreenivasa + + + Editor: Clyde Wildes + "; + description + "This module contains a collection of YANG definitions + for syslog configuration. + + 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 zzzz + (https://www.rfc-editor.org/info/rfczzzz); + 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-09-18 { + description + "Initial Revision"; + reference + "RFC zzzz: Syslog YANG Model"; + } + + feature console-action { + description + "This feature indicates that the local console action is + supported."; + } + + feature file-action { + description + "This feature indicates that the local file action is + supported."; + } + + feature file-limit-size { + description + "This feature indicates that file logging resources + are managed using size and number limits."; + } + + feature file-limit-duration { + description + "This feature indicates that file logging resources + are managed using time based limits."; + } + + feature remote-action { + description + "This feature indicates that the remote server action is + supported."; + } + + feature remote-source-interface { + description + "This feature indicates that source-interface is supported + supported for the remote-action."; + } + + feature select-adv-compare { + description + "This feature represents the ability to select messages + using the additional comparison operators when comparing + the syslog message severity."; + } + + feature select-match { + description + "This feature represents the ability to select messages + based on a Posix 1003.2 regular expression pattern + match."; + } + + feature structured-data { + description + "This feature represents the ability to log messages + in structured-data format."; + reference + "RFC 5424: The Syslog Protocol"; + } + + feature signed-messages { + description + "This feature represents the ability to configure signed + syslog messages."; + reference + "RFC 5848: Signed Syslog Messages"; + } + + typedef syslog-severity { + type enumeration { + enum emergency { + value 0; + description + "The severity level 'Emergency' indicating that the + system is unusable."; + } + enum alert { + value 1; + description + "The severity level 'Alert' indicating that an + action must be taken immediately."; + } + enum critical { + value 2; + description + "The severity level 'Critical' indicating a + critical condition."; + } + enum error { + value 3; + description + "The severity level 'Error' indicating an error + condition."; + } + enum warning { + value 4; + description + "The severity level 'Warning' indicating a warning + condition."; + } + enum notice { + value 5; + description + "The severity level 'Notice' indicating a normal + but significant condition."; + } + enum info { + value 6; + description + "The severity level 'Info' indicating an + informational message."; + } + enum debug { + value 7; + description + "The severity level 'Debug' indicating a + debug-level message."; + } + } + description + "The definitions for Syslog message severity. + Note that a lower value is a higher severity. Comparisons + of equal-or-higher severity mean equal or lower numeric + value"; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity syslog-facility { + description + "This identity is used as a base for all syslog + facilities."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity kern { + base syslog-facility; + description + "The facility for kernel messages (0)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity user { + base syslog-facility; + description + "The facility for user-level messages (1)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity mail { + base syslog-facility; + description + "The facility for the mail system (2)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity daemon { + base syslog-facility; + description + "The facility for the system daemons (3)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity auth { + base syslog-facility; + description + "The facility for security/authorization messages (4)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity syslog { + base syslog-facility; + description + "The facility for messages generated internally by syslogd + facility (5)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity lpr { + base syslog-facility; + description + "The facility for the line printer subsystem (6)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity news { + base syslog-facility; + description + "The facility for the network news subsystem (7)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity uucp { + base syslog-facility; + description + "The facility for the UUCP subsystem (8)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity cron { + base syslog-facility; + description + "The facility for the clock daemon (9)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity authpriv { + base syslog-facility; + description + "The facility for privileged security/authorization + messages (10)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity ftp { + base syslog-facility; + description + "The facility for the FTP daemon (11)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity ntp { + base syslog-facility; + description + "The facility for the NTP subsystem (12)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity audit { + base syslog-facility; + description + "The facility for log audit messages (13)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity console { + base syslog-facility; + description + "The facility for log alert messages (14)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity cron2 { + base syslog-facility; + description + "The facility for the second clock daemon (15)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local0 { + base syslog-facility; + description + "The facility for local use 0 messages (16)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local1 { + base syslog-facility; + description + "The facility for local use 1 messages (17)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local2 { + base syslog-facility; + description + "The facility for local use 2 messages (18)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local3 { + base syslog-facility; + description + "The facility for local use 3 messages (19)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local4 { + base syslog-facility; + description + "The facility for local use 4 messages (20)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local5 { + base syslog-facility; + description + "The facility for local use 5 messages (21)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local6 { + base syslog-facility; + description + "The facility for local use 6 messages (22)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity local7 { + base syslog-facility; + description + "The facility for local use 7 messages (23)."; + reference + "RFC 5424: The Syslog Protocol"; + } + + identity action { + description + "Base identity for action for how a message will be + handled."; + } + + identity log { + base action; + description + "This identity specifies that if the compare operation is + true the message will be logged."; + } + + identity block { + base action; + description + "This identity specifies that if the compare operation is + true the message will not be logged."; + } + + identity stop { + base action; + description + "This identity specifies that if the compare operation is + true the message will not be logged and no further + processing will occur for it."; + } + + grouping severity-filter { + description + "This grouping defines the processing used to select + log messages by comparing syslog message severity using + the following processing rules: + - if 'none', do not match. + - if 'all', match. + - else compare message severity with the specified + severity according to the default compare rule (all + messages of the specified severity and greater match) + or if the select-adv-compare feature is present, use + the advance-compare rule."; + + leaf severity { + type union { + type syslog-severity; + type enumeration { + enum none { + value 2147483647; + description + "This enum describes the case where no + severities are selected."; + } + enum all { + value -2147483648; + description + "This enum describes the case where all + severities are selected."; + } + } + } + mandatory true; + description + "This leaf specifies the syslog message severity."; + } + + container advanced-compare { + when "../severity != \"all\" and + ../severity != \"none\"" { + description + "The advanced compare container is not applicable + for severity 'all' or severity 'none'"; + } + if-feature "select-adv-compare"; + + leaf compare { + type enumeration { + enum equals { + description + "This enum specifies that the severity + comparison operation will be equals."; + } + enum equals-or-higher { + description + "This enum specifies that the severity + comparison operation will be equals or + higher."; + } + } + default "equals-or-higher"; + description + "The compare can be used to specify the comparison + operator that should be used to compare the syslog + message severity with the specified severity."; + } + + leaf action { + type identityref { + base "action"; + } + default "log"; + description + "The action can be used to specify how the message + should be handled. This may include logging the + message, not logging the message (i.e., blocking + it), or stopping further processing."; + } + description + "This container describes additional severity compare + operations that can be used in place of the default + severity comparison. The compare leaf specifies the + type of the compare that is done and the action leaf + specifies the intended result. + Example: compare->equals and action->block means + messages that have a severity that are equal to the + specified severity will not be logged."; + } + } + + grouping selector { + description + "This grouping defines a syslog selector which is used to + select log messages for the log-actions (console, file, + remote, etc.). Choose one or both of the following: + facility [ ...] + pattern-match regular-expression-match-string + If both facility and pattern-match are specified, both + must match in order for a log message to be selected."; + + container filter { + description + "This container describes the syslog filter + parameters."; + + list facility-list { + key "facility severity"; + ordered-by user; + description + "This list describes a collection of syslog + facilities and severities."; + + leaf facility { + type union { + type identityref { + base syslog-facility; + } + type enumeration { + enum all { + description + "This enum describes the case where + all facilities are requested."; + } + } + } + description + "The leaf uniquely identifies a syslog + facility."; + } + uses severity-filter; + } + } + + leaf pattern-match { + if-feature "select-match"; + type string; + description + "This leaf describes a Posix 1003.2 regular expression + string that can be used to select a syslog message for + logging. The match is performed on the SYSLOG-MSG + field."; + reference + "RFC 5424: The Syslog Protocol + Std-1003.1-2008 Regular Expressions"; + } + } + + grouping structured-data { + description + "This grouping defines the syslog structured data option + which is used to select the format used to write log + messages."; + + leaf structured-data { + if-feature "structured-data"; + type boolean; + default "false"; + description + "This leaf describes how log messages are written. + If true, messages will be written with one or more + STRUCTURED-DATA elements; if false, messages will be + written with STRUCTURED-DATA = NILVALUE."; + reference + "RFC 5424: The Syslog Protocol"; + } + } + + container syslog { + presence + "Enables logging."; + description + "This container describes the configuration parameters for + syslog."; + + container actions { + description + "This container describes the log-action parameters + for syslog."; + + container console { + if-feature "console-action"; + presence + "Enables logging to the console"; + description + "This container describes the configuration + parameters for console logging."; + uses selector; + } + + container file { + if-feature "file-action"; + description + "This container describes the configuration + parameters for file logging. If file-archive + limits are not supplied, it is assumed that + the local implementation defined limits will + be used."; + + list log-file { + key "name"; + description + "This list describes a collection of local + logging files."; + + leaf name { + type inet:uri { + pattern + 'file:.*'; + } + description + "This leaf specifies the name of the log + file which MUST use the uri scheme + file:."; + reference + "RFC 8089: The file URI Scheme"; + } + + uses selector; + uses structured-data; + + container file-rotation { + description + "This container describes the configuration + parameters for log file rotation."; + leaf number-of-files { + if-feature "file-limit-size"; + type uint32; + default "1"; + description + "This leaf specifies the maximum number + of log files retained. Specify 1 for + implementations that only support one + log file."; + } + + leaf max-file-size { + if-feature "file-limit-size"; + type uint32; + units "megabytes"; + description + "This leaf specifies the maximum log + file size."; + } + + leaf rollover { + if-feature "file-limit-duration"; + type uint32; + units "minutes"; + description + "This leaf specifies the length of time + that log events should be written to a + specific log file. Log events that + arrive after the rollover period cause + the current log file to be closed and + a new log file to be opened."; + } + + leaf retention { + if-feature "file-limit-duration"; + type uint32; + units "minutes"; + description + "This leaf specifies the length of time + that completed/closed log event files + should be stored in the file system + before they are removed."; + } + } + } + } + + container remote { + if-feature "remote-action"; + description + "This container describes the configuration + parameters for forwarding syslog messages + to remote relays or collectors."; + + list destination { + key "name"; + description + "This list describes a collection of remote logging + destinations."; + leaf name { + type string; + description + "An arbitrary name for the endpoint to connect to."; + } + + choice transport { + mandatory true; + description + "This choice describes the transport option."; + + case udp { + container udp { + description + "This container describes the UDP transport + options."; + reference + "RFC 5426: Transmission of Syslog Messages over + UDP"; + + list udp { + key "address"; + description + "List of all UDP sessions."; + + leaf address { + type inet:host; + description + "The leaf uniquely specifies the address of the + remote host. One of the following must be + specified: + - an ipv4 address, + - an ipv6 address, or a + - host name."; + } + + leaf port { + type inet:port-number; + default "514"; + description + "This leaf specifies the port number used to + deliver messages to the remote server."; + } + } + } + } + + case tls { + container tls { + description + "This container describes the TLS transport + options."; + reference + "RFC 5425: Transport Layer Security (TLS) Transport + Mapping for Syslog "; + + list tls { + key "address"; + description + "List of all TLS based sessions."; + + leaf address { + type inet:host; + description + "The leaf uniquely specifies the address of the + remote host. One of the following must be + specified: an ipv4 address, an ipv6 address, or + a host name."; + } + + leaf port { + type inet:port-number; + default "6514"; + description + "TCP port 6514 has been allocated as the + default port for syslog over TLS."; + } + uses tlsc:tls-client-grouping; + } + } + } + } + + uses selector; + uses structured-data; + + leaf facility-override { + type identityref { + base syslog-facility; + } + description + "If specified, this leaf specifies the facility used + to override the facility in messages delivered to the + remote server."; + } + + leaf source-interface { + if-feature "remote-source-interface"; + type if:interface-ref; + description + "This leaf sets the source interface to be used to + send messages to the remote syslog server. If not set, + messages can be sent on any interface."; + } + + container signing { + if-feature "signed-messages"; + presence + "If present, syslog-signing options is activated."; + description + "This container describes the configuration + parameters for signed syslog messages."; + reference + "RFC 5848: Signed Syslog Messages"; + + container cert-signers { + description + "This container describes the signing certificate + configuration for Signature Group 0 which covers the + case for administrators who want all Signature + Blocks to be sent to a single destination."; + + list cert-signer { + key "name"; + description + "This list describes a collection of syslog message + signers."; + + leaf name { + type string; + description + "This leaf specifies the name of the syslog + message signer."; + } + + container cert { + uses ct:asymmetric-key-pair-with-cert-grouping; + description + "This is the certificate that is periodically + sent to the remote receiver. The certificate is + inherently associated with its private + and public keys."; + } + + leaf hash-algorithm { + type enumeration { + enum SHA1 { + value 1; + description + "This enum describes the SHA1 algorithm."; + } + enum SHA256 { + value 2; + description + "This enum describes the SHA256 algorithm."; + } + } + description + "This leaf describes the syslog signer hash + algorithm used."; + } + } + + leaf cert-initial-repeat { + type uint32; + default "3"; + description + "This leaf specifies the number of times each + Certificate Block should be sent before the first + message is sent."; + } + + leaf cert-resend-delay { + type uint32; + units "seconds"; + default "3600"; + description + "This leaf specifies the maximum time delay in + seconds until resending the Certificate Block."; + } + + leaf cert-resend-count { + type uint32; + default "0"; + description + "This leaf specifies the maximum number of other + syslog messages to send until resending the + Certificate Block."; + } + + leaf sig-max-delay { + type uint32; + units "seconds"; + default "60"; + description + "This leaf specifies when to generate a new + Signature Block. If this many seconds have elapsed + since the message with the first message number + of the Signature Block was sent, a new Signature + Block should be generated."; + } + + leaf sig-number-resends { + type uint32; + default "0"; + description + "This leaf specifies the number of times a + Signature Block is resent. (It is recommended to + select a value of greater than 0 in particular + when the UDP transport RFC 5426 is used.)."; + } + + leaf sig-resend-delay { + type uint32; + units "seconds"; + default "5"; + description + "This leaf specifies when to send the next + Signature Block transmission based on time. If + this many seconds have elapsed since the previous + sending of this Signature Block, resend it."; + } + + leaf sig-resend-count { + type uint32; + default "0"; + description + "This leaf specifies when to send the next + Signature Block transmission based on a count. If + this many other syslog messages have been sent + since the previous sending of this Signature + Block, resend it. A value of 0 means that you + don't resend based on the number of messages."; + } + } + } + } + } + } + } +} From 2deeb274f328d76090f972c6190538d908f776f4 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sat, 21 Sep 2024 18:05:37 +0000 Subject: [PATCH 19/23] Cronjob - daily check of IETF modules. --- .../ietf-extracted-YANG-modules/ietf-template@2023-07-26.yang | 1 - 1 file changed, 1 deletion(-) 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 84f0f6501..6a82a6acb 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 @@ -8,7 +8,6 @@ module ietf-template { // replace this string, and try to pick a unique prefix prefix temp; - // import statements here: e.g., // import ietf-yang-types { prefix yang; } // import ietf-inet-types { prefix inet; } From 8042d106d046b23e119b5a4dbf1836733c51a6c0 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Tue, 24 Sep 2024 18:05:42 +0000 Subject: [PATCH 20/23] Cronjob - daily check of IETF modules. --- ...04.yang => iana-bfd-types@2024-09-23.yang} | 9 ++--- ...yang => ietf-bfd-opt-auth@2024-09-23.yang} | 37 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) rename experimental/ietf-extracted-YANG-modules/{iana-bfd-types@2024-07-04.yang => iana-bfd-types@2024-09-23.yang} (95%) rename experimental/ietf-extracted-YANG-modules/{ietf-bfd-opt-auth@2024-07-04.yang => ietf-bfd-opt-auth@2024-09-23.yang} (85%) diff --git a/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-07-04.yang b/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-09-23.yang similarity index 95% rename from experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-07-04.yang rename to experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-09-23.yang index 9d7d3bdc0..fad1a0739 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-07-04.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-bfd-types@2024-09-23.yang @@ -32,18 +32,17 @@ module iana-bfd-types { Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 9127; see the - RFC itself for full legal notices."; + The initial version of this YANG module is part of RFC 9127; + see the RFC itself for full legal notices."; reference "RFC 9127: YANG Data Model for Bidirectional Forwarding Detection (BFD)"; - revision 2024-07-04 { + revision 2024-09-23 { description "Add NULL and Meticulous ISAAC authentication type."; reference - "I-D.ietf-bfd-optimizing-authentication: - Optimizing BFD Authentication, + "RFC XXXX: Optimizing BFD Authentication, I-D.ietf-bfd-stability: BFD Stability."; } 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-09-23.yang similarity index 85% rename from experimental/ietf-extracted-YANG-modules/ietf-bfd-opt-auth@2024-07-04.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bfd-opt-auth@2024-09-23.yang index 25b6ac9e8..9313172ef 100644 --- 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-09-23.yang @@ -14,41 +14,41 @@ module ietf-bfd-opt-auth { prefix bfd; reference "RFC 9314: YANG Data Model for Bidirectional - Forwarding Detection."; + Forwarding Detection (BFD)."; } import ietf-bfd-ip-sh { prefix bfd-ip-sh; reference "RFC 9314: YANG Data Model for Bidirectional - Forwarding Detection."; + Forwarding Detection (BFD)."; } import ietf-bfd-ip-mh { prefix bfd-ip-mh; reference "RFC 9314: YANG Data Model for Bidirectional - Forwarding Detection."; + Forwarding Detection (BFD)."; } import ietf-bfd-lag { prefix bfd-lag; reference "RFC 9314: YANG Data Model for Bidirectional - Forwarding Detection."; + Forwarding Detection (BFD)."; } import ietf-bfd-mpls { prefix bfd-mpls; reference "RFC 9314: YANG Data Model for Bidirectional - Forwarding Detection."; + Forwarding Detection (BFD)."; } import ietf-key-chain { prefix key-chain; reference - "RFC 8177: YANG Key Chain."; + "RFC 8177: YANG Data Model for Key Chains."; } organization @@ -87,7 +87,7 @@ module ietf-bfd-opt-auth { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision "2024-07-04" { + revision "2024-09-23" { description "Initial Version."; reference @@ -107,8 +107,7 @@ module ietf-bfd-opt-auth { strong authentication and Meticulous Keyed ISAAC Keyed as the 'optimized' authentication."; reference - "I-D.ietf-bfd-optimizing-authentication: - Meticulous Keyed ISAAC for BFD Authentication. + "RFC XXXX: Meticulous Keyed ISAAC for BFD Authentication. I-D.ietf-bfd-secure-sequence-numbers: Meticulous Keyed ISAAC for BFD Authentication."; } @@ -154,8 +153,9 @@ module ietf-bfd-opt-auth { uses bfd-opt-auth-config; description - "Augment the 'authentication' container in BFD module to - add attributes related to BFD optimized authentication."; + "Augment the 'authentication' container for single hop BFD + module to add attributes related to BFD optimized + authentication."; } augment "/rt:routing/rt:control-plane-protocols/" + @@ -165,8 +165,9 @@ module ietf-bfd-opt-auth { uses bfd-opt-auth-config; description - "Augment the 'authentication' container in BFD module to - add attributes related to BFD optimized authentication."; + "Augment the 'authentication' container for multi-hop BFD + module to add attributes related to BFD optimized + authentication."; } augment "/rt:routing/rt:control-plane-protocols/" + @@ -176,8 +177,9 @@ module ietf-bfd-opt-auth { uses bfd-opt-auth-config; description - "Augment the 'authentication' container in BFD module to - add attributes related to BFD optimized authentication."; + "Augment the 'authentication' container for BFD over LAG + module to add attributes related to BFD optimized + authentication."; } augment "/rt:routing/rt:control-plane-protocols/" + @@ -187,7 +189,8 @@ module ietf-bfd-opt-auth { uses bfd-opt-auth-config; description - "Augment the 'authentication' container in BFD module to - add attributes related to BFD optimized authentication."; + "Augment the 'authentication' container for BFD over MPLS + module to add attributes related to BFD optimized + authentication."; } } From 1a86ae04762d6dab7f6f5940ed052307341ae140 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sat, 28 Sep 2024 14:05:25 +0000 Subject: [PATCH 21/23] Cronjob - daily check of IANA modules. --- standard/iana/yang-parameters.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index fb2213cdc..3265f82f5 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -4,7 +4,7 @@ YANG Parameters 2010-06-10 - 2024-09-17 + 2024-09-27 YANG Module Names @@ -2019,15 +2019,15 @@ and Subsequent Address Family Identi - + ietf-syslog N urn:ietf:params:xml:ns:yang:ietf-syslog - ietf-syslog + syslog - - TEMPORARY - registered 2021-07-11, extension registered 2024-06-24, document sent to IESG Evaluation 2024-09-03. 's module file will be posted upon the document's publication as an RFC. + + 's module file will be posted upon the document's publication as an RFC. ietf-system From 89d0ac5bdbf1a9be93413765e450b82ee9cba2ef Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sat, 28 Sep 2024 18:05:39 +0000 Subject: [PATCH 22/23] Cronjob - daily check of IETF modules. --- .../ietf-extracted-YANG-modules/ietf-template@2023-07-26.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 6a82a6acb..3f00e31e8 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 @@ -14,7 +14,7 @@ module ietf-template { // identify the IETF working group if applicable organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + "IETF your-wg-name (Expanded WG Name) Working Group"; // update this contact statement with your info From e168fa2b1d0398ade658d0b6f836aa4bc7929471 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sun, 29 Sep 2024 18:05:41 +0000 Subject: [PATCH 23/23] Cronjob - daily check of IETF modules. --- ...g => ietf-te-packet-types@2024-09-27.yang} | 112 ++++++++++++++---- ...-23.yang => ietf-te-types@2024-09-13.yang} | 51 ++++---- 2 files changed, 111 insertions(+), 52 deletions(-) rename experimental/ietf-extracted-YANG-modules/{ietf-te-packet-types@2024-07-23.yang => ietf-te-packet-types@2024-09-27.yang} (89%) rename experimental/ietf-extracted-YANG-modules/{ietf-te-types@2024-07-23.yang => ietf-te-types@2024-09-13.yang} (99%) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-07-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-09-27.yang similarity index 89% rename from experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-07-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-09-27.yang index 62c042855..82334d35b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-07-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2024-09-27.yang @@ -65,7 +65,7 @@ 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 2024-07-23 { + revision 2024-09-27 { description "This revision adds the following new identities: - bandwidth-profile-type; @@ -75,9 +75,9 @@ module ietf-te-packet-types { - path-metric-loss. This revision adds the following new groupings: + - bandwidth-profile-parameters; - te-packet-path-bandwidth; - te-packet-link-bandwidth. - This revision provides also few editorial changes."; reference "RFC XXXX: Common YANG Data Types for Traffic Engineering"; @@ -153,6 +153,7 @@ module ietf-te-packet-types { 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 @@ -203,9 +204,13 @@ module ietf-te-packet-types { typedef te-bandwidth-requested-type { type enumeration { - enum specified { + enum specified-value { + description + "Bandwidth value is explicitly specified."; + } + enum specified-profile { description - "Bandwidth is explicitly specified."; + "Bandwidth profile is explicitly specified."; } enum auto { description @@ -708,35 +713,22 @@ module ietf-te-packet-types { } } - // CHANGE NOTE: The te-packet-path-bandwidth below has been + // CHANGE NOTE: The bandwidth-profile-parameters below has been // added in this module revision // RFC Editor: remove the note above and this note - grouping te-packet-path-bandwidth { + grouping bandwidth-profile-parameters { description - "Path bandwidth for Packet. "; - leaf bandwidth-profile-name { - type string; - description - "Name of Bandwidth Profile."; - } - leaf bandwidth-profile-type { - type identityref { - base bandwidth-profile-type; - } - description - "Type of Bandwidth Profile."; - } + "Common parameters to define bandwidth profiles in packet + networks."; leaf cir { type uint64; units "bits/second"; - mandatory true; description "Committed Information Rate (CIR)."; } leaf cbs { type uint64; - units "bits/second"; - mandatory true; + units "bytes"; description "Committed Burst Size (CBS)."; } @@ -766,17 +758,89 @@ module ietf-te-packet-types { } } + // CHANGE NOTE: The te-packet-path-bandwidth below has been + // added in this module revision + // RFC Editor: remove the note above and this note + grouping te-packet-path-bandwidth { + description + "Bandwidth attributes for TE Packet paths."; + container packet-bandwidth { + description + "Bandwidth attributes for TE Packet paths."; + leaf specification-type { + type te-bandwidth-requested-type; + description + "The bandwidth specification type, either explicitly + specified or automatically computed."; + } + leaf set-bandwidth { + when "../specification-type = 'specified-value'" { + description + "When the bandwidth value is explicitly specified."; + } + type bandwidth-kbps; + description + "Set the bandwidth value explicitly, e.g., using offline + calculation."; + } + container bandwidth-profile { + when "../specification-type = 'specified-profile'" { + description + "When the bandwidth profile is explicitly specified."; + } + description + "Set the bandwidth profile attributes explicitly."; + leaf bandwidth-profile-name { + type string; + description + "Name of Bandwidth Profile."; + } + leaf bandwidth-profile-type { + type identityref { + base bandwidth-profile-type; + } + description + "Type of Bandwidth Profile."; + } + uses bandwidth-profile-parameters; + } + leaf class-type { + type te-types:te-ds-class; + description + "The Class-Type of traffic transported by the LSP."; + reference + "RFC 4124: Protocol Extensions for Support of + Diffserv-aware MPLS Traffic Engineering, + Section 4.3.1"; + } + leaf signaled-bandwidth { + type te-packet-types:bandwidth-kbps; + config false; + description + "The currently signaled bandwidth of the LSP. + + In the case where the bandwidth is specified + explicitly, then this will match the value of the + set-bandwidth leaf. + + In the cases where the bandwidth is dynamically + computed by the system, the current value of the + bandwidth should be reflected."; + } + } + } + // CHANGE NOTE: The te-packet-path-bandwidth below has been // added in this module revision // RFC Editor: remove the note above and this note grouping te-packet-link-bandwidth { description - "Link Bandwidth for Packet. "; + "Bandwidth attributes for Packet TE links."; leaf packet-bandwidth { type uint64; units "bits/second"; description - "Available bandwith value."; + "Bandwidth value for Packet TE links."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-07-23.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-09-13.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-07-23.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-09-13.yang index e4430be7c..696cc0995 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-07-23.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2024-09-13.yang @@ -77,7 +77,7 @@ 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 2024-07-23 { + revision 2024-09-13 { description "This revision adds the following new identities: - lsp-provisioning-error-reason; @@ -94,8 +94,7 @@ module ietf-te-types { - svec-metric-type and its derived identities. This revision adds the following new data types: - - path-type; - - te-gen-node-id. + - path-type. This revision adds the following new groupings: - encoding-and-switching-type; @@ -468,6 +467,7 @@ module ietf-te-types { 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 @@ -660,6 +660,7 @@ module ietf-te-types { 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 @@ -688,19 +689,6 @@ module ietf-te-types { 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 */ feature p2mp-te { @@ -1120,7 +1108,6 @@ module ietf-te-types { Recovery RFC 6780: RSVP ASSOCIATION Object Extensions"; } - identity association-type-resource-sharing { base association-type; description @@ -1313,7 +1300,6 @@ module ietf-te-types { RFC 9522: Overview and Principles of Internet Traffic Engineering"; } - identity lsp-metric-type { description "Base identity for the LSP metric specification types."; @@ -1458,7 +1444,6 @@ module ietf-te-types { description "Base identity for TE tunnel states."; } - identity tunnel-state-up { base tunnel-state-type; description @@ -1668,6 +1653,7 @@ module ietf-te-types { 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 @@ -1746,7 +1732,6 @@ module ietf-te-types { description "Normal state."; } - identity signal-fail-of-protection { base lsp-protection-state; description @@ -1860,6 +1845,7 @@ module ietf-te-types { for Generalized Multi-Protocol Label Switching (GMPLS)"; } + identity clear-freeze { base protection-external-commands; description @@ -1986,7 +1972,6 @@ module ietf-te-types { "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet Forum and G.8011 Ethernet Service Switching"; } - identity switching-l2sc { base switching-capabilities; description @@ -2004,6 +1989,7 @@ module ietf-te-types { "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description"; } + identity switching-otn { base switching-capabilities; description @@ -2370,7 +2356,6 @@ module ietf-te-types { "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 @@ -2628,6 +2613,7 @@ module ietf-te-types { (PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architecture"; } + identity path-computation-error-pce-unavailable { base path-computation-error-reason; description @@ -2706,7 +2692,6 @@ module ietf-te-types { description "Path computation has failed because the destination domain was unknown. - It corresponds to bit 22 of the Flags field of the NO-PATH-VECTOR TLV."; reference @@ -2820,6 +2805,7 @@ module ietf-te-types { https://www.iana.org/assignments/pcep /pcep.xhtml#no-path-vector-tlv"; } + identity path-computation-error-destination-unknown { base path-computation-error-reason; description @@ -2916,6 +2902,7 @@ module ietf-te-types { Computation Element Communication Protocol (PCEP)"; } + identity svec-of-minimize-cost-path-set { base svec-objective-function-type; description @@ -3012,6 +2999,7 @@ module ietf-te-types { Computation Element Communication Protocol (PCEP)"; } + identity svec-metric-aggregate-bandwidth-consumption { base svec-metric-type; description @@ -3904,7 +3892,6 @@ module ietf-te-types { uses path-route-include-objects; } } - grouping common-constraints { description "Common constraints grouping that can be set on @@ -4444,17 +4431,25 @@ module ietf-te-types { } } - // CHANGE NOTE: The typedef te-gen-node-id below has been + // CHANGE NOTE: The grouping te-generic-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; + type union { + type te-node-id; + type inet:ip-address; + type nw:node-id; + } description - "The identifier of the node. Can be represented as IP - address or dotted quad address or as an URI."; + "The identifier of the node. + + It can be represented as IP address or dotted quad address + or as an URI. + + The type data node disambiguates the union type."; } leaf type { type enumeration {