diff --git a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2026-02-28.yang b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2026-05-19.yang similarity index 50% rename from experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2026-02-28.yang rename to experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2026-05-19.yang index 4dff17904..01f820518 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2026-02-28.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-network-inventory-topology@2026-05-19.yang @@ -57,7 +57,7 @@ module ietf-network-inventory-topology { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2026-02-28 { + revision 2026-05-19 { description "Initial revision."; reference @@ -65,13 +65,91 @@ module ietf-network-inventory-topology { Mapping"; } - // Groupings - // Node Grouping with 1:1 mapping to NE + identity link-type { + description + "Base identity for classifying the physical media type of a + link at the inventory topology layer. Specialized inventory + models are expected to define derived identities for specific + media, e.g., fiber, copper, or wireless."; + } + + identity copper { + base link-type; + description + "Copper-based physical link."; + } + + identity fiber { + base link-type; + description + "Fiber-based physical link."; + } + + identity coax { + base link-type; + description + "Coaxial cable-based physical link."; + } + + identity microwave { + base link-type; + description + "Microwave-based wireless link. + Detailed microwave radio attributes are defined in the + microwave topology data model."; + reference + "RFC 9656: A YANG Data Model for Microwave Topology"; + } + + identity wlan { + base link-type; + description + "IEEE 802.11 wireless link."; + } + + identity unknown { + base link-type; + description + "The link media type is unknown or could not be determined. + This identity is used as a fallback when the physical medium + cannot be classified into any of the other defined types."; + } + + identity leased-fiber { + base fiber; + description + "Leased fiber link. The physical medium is fiber, but the link + is provided by a third-party operator. Detailed physical + attributes are typically not visible to the lessee."; + } + + // Main blocks + + augment "/nw:networks/nw:network/nw:network-types" { + description + "Introduces a new network type for inventory topology + mapping."; + container inventory-topology { + presence + "Indicates this is a bottom-most physical topology instance, + containing physical-layer attributes including inventory + mapping, port breakout capabilities, and link media types."; + description + "Container for the inventory-topology network type. + When present, it signals that the network contains + physical-layer augmentations as defined in this module. + This network type is intended to serve as the underlay + for logical network topologies (Layer 2, Layer 3, + Traffic Engineering (TE), etc.)."; + } + } - grouping node-inventory-mapping-attributes { + augment "/nw:networks/nw:network/nw:node" { + when '../nw:network-types/nwit:inventory-topology'; description - "Attributes for mapping a topology node to a Network Element - (NE) in the physical inventory."; + "Augments the network topology node with inventory mapping + attributes. This enables correlation between the logical node + and its physical network element."; container inventory-mapping-attributes { description "Container for inventory mapping attributes of a node."; @@ -87,60 +165,11 @@ module ietf-network-inventory-topology { } } - // TP Grouping with 1:1 mapping to physical port - - grouping tp-inventory-mapping-attributes { - description - "Attributes for mapping a topology termination point (TP) - to a physical port in the network inventory."; - container inventory-mapping-attributes { - description - "Container for inventory mapping attributes of a TP."; - uses nwi:port-ref { - refine "port-ref" { - description - "Reference to the physical port component in the - network inventory. This reference establishes a 1:1 - mapping between the logical TP and its physical port - component."; - } - } - // breakout channels (lightweight, per physical port) - container port-breakout { - presence "Indicates the port supports channel breakout."; - config false; - description - "Breakout capability of the physical port represented by - this TP. One TP maps to one physical port; channels are - listed here. This container is present only when the - underlying hardware supports partitioning the port into - multiple independent channels (e.g., 400G to 4x100G)."; - list breakout-channel { - key "channel-id"; - description - "List of breakout channels available on this port. - Each entry represents an independent lane or sub-port - that can be used for channelized interfaces."; - leaf channel-id { - type uint16; - description - "Unique identifier for the breakout channel within the - scope of the parent port."; - } - } // breakout-channel - } // port-breakout - } - } - - // Link Grouping with placeholder for future augumentation - - grouping link-inventory-mapping-attributes { + augment "/nw:networks/nw:network/nt:link" { + when '../nw:network-types/nwit:inventory-topology'; description - "Attributes for classifying link media type. - Detailed inventory reference is intentionally omitted from - this model; implementations should use the appropriate - specialized inventory modules based on the indicated - link-type."; + "Augments the network topology link with inventory-related + attributes."; container inventory-mapping-attributes { description "Container for inventory-related attributes of a link. @@ -156,36 +185,67 @@ module ietf-network-inventory-topology { Detailed inventory references may be added in future modules."; leaf link-type { - type string; + type identityref { + base link-type; + } description "Classification of the link media type at the topology - layer. Example values include 'copper', 'fiber', - 'microwave', or 'wifi'."; + layer. + + The base identity 'link-type' is extensible. Examples + of derived identities include 'copper', 'fiber', + 'coax', 'microwave', and 'wlan'. + + This leaf serves as a lightweight discriminator. When + the value is 'microwave', detailed microwave link + attributes are defined in the microwave topology data + model. Wired media (e.g., fiber, copper, or coax) may + be detailed in a passive network inventory data + model."; } } } - // Main blocks - - augment "/nw:networks/nw:network/nw:node" { - description - "Augments the network topology node with inventory mapping - attributes. This enables correlation between the logical node - and its physical network element."; - uses node-inventory-mapping-attributes; - } - - augment "/nw:networks/nw:network/nt:link" { - description - "Augments the network topology link with inventory-related - attributes."; - uses link-inventory-mapping-attributes; - } - augment "/nw:networks/nw:network/nw:node/nt:termination-point" { + when '../../nw:network-types/nwit:inventory-topology'; description - "Augments the TP with inventory mapping attributes for - physical port correlation and breakout capability reporting."; - uses tp-inventory-mapping-attributes; + "Augments the TP with inventory mapping and port breakout."; + container inventory-mapping-attributes { + description + "Container for inventory mapping attributes of a TP."; + uses nwi:port-ref { + refine "port-ref" { + description + "Reference to the physical port component in the + network inventory. This reference establishes a 1:1 + mapping between the logical TP and its physical port + component."; + } + } + } + // breakout channels (lightweight, per physical port) + container port-breakout { + presence "Indicates the port supports channel breakout."; + config false; + description + "Breakout capability of the physical port represented by + this TP. One TP maps to one physical port; channels are + listed here. This container is present only when the + underlying hardware supports partitioning the port into + multiple independent channels (e.g., 400G to 4x100G)."; + list breakout-channel { + key "channel-id"; + description + "List of breakout channels available on this port. + Each entry represents an independent lane or sub-port + that can be used for channelized interfaces."; + leaf channel-id { + type uint16; + description + "Unique identifier for the breakout channel within the + scope of the parent port."; + } + } // breakout-channel + } // port-breakout } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2026-01-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2026-05-08.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2026-01-15.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2026-05-08.yang index 54393a9c3..2edf0aaf8 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2026-01-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-packet-types@2026-05-08.yang @@ -28,7 +28,7 @@ module ietf-te-packet-types { Editor: Vishnu Pavan Beeram - + Editor: Xufeng Liu @@ -40,9 +40,6 @@ module ietf-te-packet-types { data type definitions specific to Packet Traffic Engineering (TE). - The model conforms to the Network Management Datastore - Architecture (NMDA). - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as @@ -59,14 +56,14 @@ module ietf-te-packet-types { Relating to IETF Documents (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC XXXX - (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself - for full legal notices."; + All revisions of IETF published modules can be found + at the YANG Parameters registry group + (https://www.iana.org/assignments/yang-parameters). - // RFC Ed.: update the date below with the date of RFC publication - // and remove this note. + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; - revision 2026-01-15 { + revision 2026-05-08 { description "This revision adds the following new identities: - bandwidth-profile-type; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2026-02-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2026-05-08.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-te-types@2026-02-06.yang rename to experimental/ietf-extracted-YANG-modules/ietf-te-types@2026-05-08.yang index dc5ed9281..40debcac6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-te-types@2026-02-06.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-te-types@2026-05-08.yang @@ -43,7 +43,7 @@ module ietf-te-types { Editor: Vishnu Pavan Beeram - + Editor: Xufeng Liu @@ -70,14 +70,14 @@ module ietf-te-types { Relating to IETF Documents (https://trustee.ietf.org/license-info). - All revisions of IETF and IANA published modules can be found + All revisions of IETF published modules can be found at the YANG Parameters registry group (https://www.iana.org/assignments/yang-parameters). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2026-02-06 { + revision 2026-05-08 { description "This revision adds the following new identities: - lsp-provisioning-error-reason; @@ -3168,6 +3168,12 @@ module ietf-te-types { type te-types:performance-metrics-normality; description "The normality of the 'one-way-delay' metric."; + reference + "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions + RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions + RFC 7823: Performance-Based Path Selection for Explicitly + Routed Label Switched Paths (LSPs) Using TE Metric + Extensions"; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2025-12-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2026-05-11.yang similarity index 91% rename from experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2025-12-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2026-05-11.yang index 1a9e8fbb3..32dcdf3e0 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2025-12-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yp-notification@2026-05-11.yang @@ -6,12 +6,12 @@ module ietf-yp-notification { import ietf-yang-types { prefix yang; reference - "draft-ietf-netmod-rfc6991-bis-18: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types"; } import ietf-inet-types { prefix inet; reference - "draft-ietf-netmod-rfc6991-bis-18: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types"; } import ietf-subscribed-notifications { prefix sn; @@ -61,13 +61,14 @@ module ietf-yp-notification { messages [RFC9254]. Refer to Section 3.1.2 of RFC XXXX for more details. - Copyright (c) 2025 IETF Trust and the persons identified as + Copyright (c) 2026 IETF Trust and the persons identified as authors of the code. All rights reserved. - Redistribution and use in source and binary forms, with or without - modification, is permitted pursuant to, and subject to the license - terms contained in, the Revised BSD License set forth in Section - 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents (https://trustee.ietf.org/license-info). All revisions of IETF and IANA published modules can be found @@ -83,11 +84,12 @@ module ietf-yp-notification { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2025-12-24 { + revision 2026-05-11 { description "Initial version."; reference - "RFC XXXX: Extensible YANG Model for YANG-Push Notifications"; + "RFC XXXX: Extensible YANG Model for YANG-Push + Notifications"; } feature hostname-sequence-number { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2025-12-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2026-05-11.yang similarity index 90% rename from experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2025-12-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2026-05-11.yang index 3220ca440..8a2456218 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2025-12-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yp-observation@2026-05-11.yang @@ -6,7 +6,7 @@ module ietf-yp-observation { import ietf-yang-types { prefix yang; reference - "RFC 6991: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types"; } import ietf-yang-push { prefix yp; @@ -43,13 +43,14 @@ module ietf-yp-observation { "Defines YANG-Push event notification header with the observation time in streaming update notifications. - Copyright (c) 2025 IETF Trust and the persons identified as + Copyright (c) 2026 IETF Trust and the persons identified as authors of the code. All rights reserved. - Redistribution and use in source and binary forms, with or without - modification, is permitted pursuant to, and subject to the license - terms contained in, the Revised BSD License set forth in Section - 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents (https://trustee.ietf.org/license-info). All revisions of IETF and IANA published modules can be found @@ -59,7 +60,7 @@ module ietf-yp-observation { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2025-12-24 { + revision 2026-05-11 { description "Initial version."; reference diff --git a/standard/ietf/RFC/ietf-ospf-anycast-flag.yang b/standard/ietf/RFC/ietf-ospf-anycast-flag.yang new file mode 120000 index 000000000..af26c513a --- /dev/null +++ b/standard/ietf/RFC/ietf-ospf-anycast-flag.yang @@ -0,0 +1 @@ +ietf-ospf-anycast-flag@2026-05-19.yang \ No newline at end of file diff --git a/standard/ietf/RFC/ietf-ospf-anycast-flag@2026-05-19.yang b/standard/ietf/RFC/ietf-ospf-anycast-flag@2026-05-19.yang new file mode 100644 index 000000000..43ff504fd --- /dev/null +++ b/standard/ietf/RFC/ietf-ospf-anycast-flag@2026-05-19.yang @@ -0,0 +1,105 @@ +module ietf-ospf-anycast-flag { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-anycast-flag"; + prefix ospf-anycast-flag; + + import ietf-routing { + prefix rt; + reference + "RFC 8349: A YANG Data Model for Routing + Management (NMDA Version)"; + } + import ietf-ospf { + prefix ospf; + reference + "RFC 9129: YANG Data Model for the OSPF Protocol"; + } + + organization + "IETF LSR - Link State Routing Working Group"; + contact + "WG Web: + WG List: + + Author: Ran Chen + + Author: Detao Zhao + + Author: Peter Psenak + + Author: Ketan Talaulikar + + Author: Changwang Lin + "; + + description + "This YANG module adds the support of managing an OSPFv2 + prefix as anycast. + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2026 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + All revisions of IETF and IANA published modules can + be found at the YANG Parameters registry group + (https://www.iana.org/assignments/yang-parameters); + + This version of this YANG module is part of RFC 9983; + see the RFC itself for full legal notices."; + + revision 2026-05-19 { + description + "Initial version"; + reference + "RFC 9983: OSPFv2 Anycast Property Advertisement"; + } + + identity ac-flag { + base ospf:ospfv2-extended-prefix-flag; + description + "Indicates that the prefix is configured as anycast."; + } + + augment "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/ospf:ospf/" + + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { + when "derived-from(/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/rt:type, 'ospf:ospfv2')" { + description + "This augments the OSPFv2 interface."; + } + description + "This augments OSPFv2 interface with anycast + property advertisement."; + leaf anycast-flag { + type boolean; + must "not(../anycast-flag = 'true' and " + + "/rt:routing/rt:control-plane-protocols/" + + "rt:control-plane-protocol/ospf:ospf/" + + "ospf:areas/ospf:area/ospf:interfaces/" + + "ospf:interface/ospf:node-flag = 'true')" { + error-message "The anycast-flag and the node-flag MUST " + + "NOT both be set to 1 (true)."; + description + "Ensures architectural consistency by preventing a prefix + from being marked as both anycast and node-specific."; + } + default "false"; + description + "Indicates that the prefix is an anycast address, + if set to 1 (true)."; + } + } +}