From 5426095a74c37ac71f4edbd041f04bf5727b4436 Mon Sep 17 00:00:00 2001 From: Miroslav Kovac Date: Sun, 18 Aug 2024 18:05:37 +0000 Subject: [PATCH 01/10] 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/10] 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/10] 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/10] 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/10] 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/10] 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/10] 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/10] 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/10] 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/10] 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."; + } + } + } +}