diff --git a/experimental/ietf-extracted-YANG-modules/iana-bgp-afi-safi-types@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/iana-bgp-afi-safi-types@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/iana-bgp-afi-safi-types@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/iana-bgp-afi-safi-types@2026-08-14.yang index dc1b77730..cf3266c43 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-bgp-afi-safi-types@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-bgp-afi-safi-types@2026-08-14.yang @@ -55,7 +55,7 @@ module iana-bgp-afi-safi-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -66,6 +66,7 @@ module iana-bgp-afi-safi-types { /* * Identities. */ + /* BGP AFI-SAFI Type Identities. */ identity afi-safi-type { @@ -114,6 +115,7 @@ module iana-bgp-afi-safi-types { reference "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; } + identity l3vpn-ipv4-multicast { base afi-safi-type; description diff --git a/experimental/ietf-extracted-YANG-modules/iana-bgp-capabilities@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/iana-bgp-capabilities@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/iana-bgp-capabilities@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/iana-bgp-capabilities@2026-08-14.yang index d27ec2bc5..4337e50a7 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-bgp-capabilities@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-bgp-capabilities@2026-08-14.yang @@ -54,7 +54,7 @@ module iana-bgp-capabilities { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -72,7 +72,6 @@ module iana-bgp-capabilities { description "Base identity for a BGP capability"; } - identity mp-bgp { base bgp-capability; description diff --git a/experimental/ietf-extracted-YANG-modules/iana-bgp-community-types@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/iana-bgp-community-types@2026-06-24.yang deleted file mode 100644 index ef02d9417..000000000 --- a/experimental/ietf-extracted-YANG-modules/iana-bgp-community-types@2026-06-24.yang +++ /dev/null @@ -1,596 +0,0 @@ -module iana-bgp-community-types { - yang-version 1.1; - namespace - "urn:ietf:params:xml:ns:yang:iana-bgp-community-types"; - prefix bct; - - import ietf-inet-types { - prefix inet; - reference - "RFC 9911: Common YANG Types."; - } - import ietf-yang-types { - prefix yang; - reference - "RFC 9911: Common YANG Types."; - } - import ietf-yang-semver { - prefix ysv; - reference - "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; - } - - organization - "IANA"; - contact - "Internet Assigned Numbers Authority - - Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - - - Authors: Mahesh Jethanandani (mjethanandani at gmail.com), - Keyur Patel (keyur at arrcus.com), - Susan Hares (shares at ndzh.com), - Jeffrey Haas (jeffrey.haas at hpe.com)."; - - description - "This module contains data definitions for BGP Communities in - their various forms. It can be imported by modules that make - use of BGP attributes. - - This YANG module is maintained by IANA and reflects the - 'BGP Well Known Communities' registry at IANA. - - 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). - - The initial version of this YANG module is part of RFC XXXX; - see the RFC itself for full legal notices. - - The most recent version of this YANG module is available at - . - - 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 2026-06-24 { - description - "Initial Version"; - ysv:version 0.0.9; - reference - "RFC XXXX: YANG module for Border Gateway Protocol (BGP-4)."; - } - - /* - * Identities. - */ - - /* BGP Well-Known Standard (RFC 1997) Community Identities. */ - - identity bgp-well-known-std-community { - description - "Base identity for reserved communities within the standard - community space defined by RFC 1997. These communities must - fall within the range 0xFFFF0000 to 0xFFFFFFFF"; - reference - "RFC 1997: BGP Communities Attribute."; - } - - identity no-export { - base bgp-well-known-std-community; - description - "Do not export NLRI received carrying this community outside - the bounds of this autonomous system, or this confederation - (if the local autonomous system is a confederation member AS). - This community has a value of 0xFFFFFF01."; - reference - "RFC 1997: BGP Communities Attribute."; - } - - identity no-advertise { - base bgp-well-known-std-community; - description - "All NLRI received carrying this community must not be - advertised to other BGP peers. This community has a value of - 0xFFFFFF02."; - reference - "RFC 1997: BGP Communities Attribute."; - } - - identity no-export-subconfed { - base bgp-well-known-std-community; - description - "All NLRI received carrying this community must not be - advertised to external BGP peers - including over - confederation sub-AS boundaries. This community has a value of - 0xFFFFFF03."; - reference - "RFC 1997: BGP Communities Attribute."; - } - - identity no-peer { - base bgp-well-known-std-community; - description - "An autonomous system receiving NLRI tagged with this community - is advised not to re-advertise the NLRI to external bilateral - peer autonomous systems. An AS may also filter received NLRI - from bilateral peer sessions when they are tagged with this - community value. This community has a value of 0xFFFFFF04."; - reference - "RFC 3765: NOPEER Community for BGP."; - } - - /* - * Typedefs. - */ - - typedef bgp-well-known-community-type { - type identityref { - base bgp-well-known-std-community; - } - description - "Type definition for well-known IETF community attribute - values."; - reference - "IANA Border Gateway Protocol (BGP) Well Known Communities"; - } - - typedef bgp-ipv6-ext-community-type { - type union { - type string { - pattern 'ipv6\-route\-target:' - + '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' - + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' - + '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}' - + '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - pattern 'ipv6\-route\-target:' - + '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' - + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - /* - * description - * "Type 0x00, Sub-Type 0x02: IPv6 Route-Target - * ipv6-route-target:(IPv6 address):(local-admin) - * 16 octets global administrator and 2 octets local - * administrator. - * - * Note: The patterns above are excerpted from RFC 8294."; - * reference - * "RFC 5701: IPv6 Address Specific BGP Extended Community - * Attribute, Section 3."; - */ - } - - type string { - pattern 'ipv6\-route\-origin:' - + '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' - + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' - + '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}' - + '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - pattern 'ipv6-route\-origin:' - + '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' - + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - /* - * description - * "Type 0x00, Sub-Type 0x03: IPv6 Route-Origin - * ipv6-route-origin:(IPv6 address):(local-admin) - * 16 octets global administrator and 2 octets local - * administrator. - * - * Note: The patterns above are excerpted from RFC 8294."; - * reference - * "RFC 5701: IPv6 Address Specific BGP Extended Community - * Attribute, Section 3."; - */ - } - - type string { - // raw with 20 octets - pattern 'ipv6-raw:' - + '([0-9A-Fa-f][0-9A-Fa-f]:){19}' - + '[0-9A-Fa-f][0-9A-Fa-f]'; - } - } - description - "Type definition for IPv6 extended community attributes. - It includes a way to specify a 'raw' string that - is followed by 20 bytes of octet string to support - new and experimental type definitions."; - reference - "RFC 5701: IPv6 Address Specific BGP Extended Community - Attribute, Section 3."; - } - - typedef bgp-ext-community-type { - type union { - type string { - pattern 'route\-target:' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])' - + 'L?' - + ':' - + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' - + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' - + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' - + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' - + '429496729[0-5])'; - /* - * description - * "Type 0x00, Sub-Type 0x02: Route-Target - * route-target:(ASN):(local-admin) - * 2 octets global administrator and 4 octets local - * administrator."; - * - * When the 'L' qualifier is used, this community - * represents a Type 0x02, Sub-Type 0x02: Route-Target - * route-target:(ASN):(local-admin) 4 octets global - * administrator with a value < 65536 and 2 octets local - * administrator."; - * reference - * "RFC 4360: BGP Extended Communities Attribute, - * Section 4. - * RFC 5668: 4-Octet AS Specific BGP Extended Community, - * Section 4."; - */ - } - - type string { - pattern 'route\-target:' - + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' - + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' - + '2[0-4][0-9]|25[0-5])' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - /* - * description - * "Type 0x01, Sub-Type 0x02: Route-Target - * route-target:(IPv4):(local-admin) - * 4 octets IP address global administrator and 2 octets - * local administrator."; - * reference - * "RFC 4360: BGP Extended Communities Attribute, - * Section 4."; - */ - } - - type string { - pattern 'route\-target:' - + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' - + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' - + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' - + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' - + '429496729[0-5])' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - /* - * description - * "Type 0x02, Sub-Type 0x02: Route-Target - * route-target:(ASN):(local-admin) - * 4 octets global administrator and 2 octets local - * administrator."; - * reference - * "RFC 5668: 4-Octet AS Specific BGP Extended Community, - * Section 4."; - */ - } - - type string { - pattern 'route\-origin:' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])' - + 'L?' - + ':' - + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' - + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' - + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' - + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' - + '429496729[0-5])'; - /* - * description - * "Type 0x00, Sub-Type 0x03: Route-Origin - * route-target:(ASN):(local-admin) - * 2 octets global administrator and 4 octets local - * administrator. - * - * When the 'L' qualifier is used, this community - * represents a Type 0x02, Sub-Type 0x03: Route-Origin - * route-origin:(ASN):(local-admin) 4 octets global - * administrator with a value < 65536 and 2 octets local - * administrator."; - * reference - * "RFC 4360: BGP Extended Communities Attribute, - * Section 5. - * RFC 5668: 4-Octet AS Specific BGP Extended Community, - * Section 4."; - */ - } - - type string { - pattern 'route\-origin:' - + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' - + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' - + '2[0-4][0-9]|25[0-5])' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - /* - * description - * "Type 0x01, Sub-Type 0x03: Route-Target - * route-target:(IPv4):(local-admin) - * 4 octets IP address global administrator and 2 octets - * local administrator."; - * reference - * "RFC 4360: BGP Extended Communities Attribute, - * Section 5."; - */ - } - - type string { - pattern 'route\-origin:' - + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' - + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' - + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' - + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' - + '429496729[0-5])' - + ':' - + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' - + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' - + '665[0-2][0-9]|6653[0-5])'; - /* - * description - * "Type 0x02, Sub-Type 0x03: Route-Origin - * route-origin:(ASN):(local-admin) - * 4 octets global administrator and 2 octets local - * administrator."; - * reference - * "RFC 5668: 4-Octet AS Specific BGP Extended Community, - * Section 4."; - */ - } - - type string { - // raw with 8 octets - pattern 'raw:' - + '([0-9A-Fa-f][0-9A-Fa-f]:){7}' - + '[0-9A-Fa-f][0-9A-Fa-f]'; - } - } - description - "Type definition for extended community attributes. - It includes a way to specify a 'raw' string that - is followed by 8 bytes of octet string to support - new and experimental type definitions."; - reference - "RFC 4360: BGP Extended Communities Attribute."; - } -} -module iana-bgp-rib-types { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:iana-bgp-rib-types"; - prefix brt; - - import ietf-yang-semver { - prefix ysv; - reference - "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; - } - - organization - "IANA"; - contact - "Internet Assigned Numbers Authority - - Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States of America - Tel: +1 310 301 5800 - - - Authors: Mahesh Jethanandani (mjethanandani at gmail.com), - Keyur Patel (keyur at arrcus.com), - Susan Hares (shares at ndzh.com), - Jeffrey Haas (jeffrey.haas at hpe.com)."; - - description - "This YANG module is maintained by IANA and defines identity - and type definitions associated with BGP RIB route - eligibility and path-selection status. It reflects the - 'BGP Route Ineligibility Reasons', 'BGP Best-Path - Non-Selection Reasons', and 'BGP Route Policy Non-Selection - Reasons' registries at IANA. - - 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). - - The initial version of this YANG module is part of RFC XXXX; - see the RFC itself for full legal notices. - - The most recent version of this YANG module is available at - . - - 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 2026-06-24 { - description - "Initial Version"; - ysv:version 0.0.9; - reference - "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; - } - - identity ineligible-route-reason { - description - "Base identity for reason code for routes that are rejected as - ineligible. Some derived entities are based on BMP v3."; - reference - "RFC 7854: BGP Monitoring Protocol."; - } - - identity ineligible-cluster-loop { - base ineligible-route-reason; - description - "Route was ineligible due to CLUSTER_LIST loop"; - } - - identity ineligible-as-loop { - base ineligible-route-reason; - description - "Route was ineligible due to AS_PATH loop"; - } - - identity ineligible-originator { - base ineligible-route-reason; - description - "Route was ineligible due to ORIGINATOR_ID. For example, update - has local router as originator"; - } - - identity ineligible-confed { - base ineligible-route-reason; - description - "Route was ineligible due to a loop in the AS_CONFED_SEQUENCE - or AS_CONFED_SET attributes"; - } - - identity bgp-not-selected-bestpath { - description - "Base identity for indicating reason a route was was not - selected by BGP route selection algorithm"; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), Section 9.1."; - } - - identity local-pref-lower { - base bgp-not-selected-bestpath; - description - "Route has a lower localpref attribute than current best path"; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2."; - } - - identity as-path-longer { - base bgp-not-selected-bestpath; - description - "Route has a longer AS path attribute than current best path"; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (a)."; - } - - identity origin-type-higher { - base bgp-not-selected-bestpath; - description - "Route has a higher origin type, i.e., IGP origin is preferred - over EGP or incomplete"; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (b)."; - } - - identity med-higher { - base bgp-not-selected-bestpath; - description - "Route has a higher MED, or metric, attribute than the current - best path"; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (c)."; - } - - identity prefer-external { - base bgp-not-selected-bestpath; - description - "Route source is via IBGP, rather than EGP."; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (d)."; - } - - identity nexthop-cost-higher { - base bgp-not-selected-bestpath; - description - "Route has a higher interior cost to the next hop."; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (e)."; - } - - identity higher-router-id { - base bgp-not-selected-bestpath; - description - "Route was sent by a peer with a higher BGP Identifier value."; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (f)."; - } - - identity higher-peer-address { - base bgp-not-selected-bestpath; - description - "Route was sent by a peer with a higher IP address"; - reference - "RFC 4271: A Border Gateway Protocol 4 (BGP-4), - Section 9.1.2.2 (g)."; - } - - identity bgp-not-selected-policy { - description - "Base identity for reason code for routes that are rejected - due to policy"; - } - - identity rejected-import-policy { - base bgp-not-selected-policy; - description - "Route was rejected after applying import policies."; - } -} diff --git a/experimental/ietf-extracted-YANG-modules/iana-bgp-community-types@2026-08-14.yang b/experimental/ietf-extracted-YANG-modules/iana-bgp-community-types@2026-08-14.yang new file mode 100644 index 000000000..f92bc15ee --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/iana-bgp-community-types@2026-08-14.yang @@ -0,0 +1,414 @@ +module iana-bgp-community-types { + yang-version 1.1; + namespace + "urn:ietf:params:xml:ns:yang:iana-bgp-community-types"; + prefix bct; + + import ietf-yang-semver { + prefix ysv; + reference + "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; + } + + organization + "IANA"; + contact + "Internet Assigned Numbers Authority + + Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States of America + Tel: +1 310 301 5800 + + + Authors: Mahesh Jethanandani (mjethanandani at gmail.com), + Keyur Patel (keyur at arrcus.com), + Susan Hares (shares at ndzh.com), + Jeffrey Haas (jeffrey.haas at hpe.com)."; + + description + "This module contains data definitions for BGP Communities in + their various forms. It can be imported by modules that make + use of BGP attributes. + + This YANG module is maintained by IANA and reflects the + 'BGP Well Known Communities' registry at IANA. + + 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). + + The initial version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices. + + The most recent version of this YANG module is available at + . + + 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 2026-08-14 { + description + "Initial Version"; + ysv:version 0.0.9; + reference + "RFC XXXX: YANG module for Border Gateway Protocol (BGP-4)."; + } + + /* + * Identities. + */ + + /* BGP Well-Known Standard (RFC 1997) Community Identities. */ + + identity bgp-well-known-std-community { + description + "Base identity for reserved communities within the standard + community space defined by RFC 1997. These communities must + fall within the range 0xFFFF0000 to 0xFFFFFFFF"; + reference + "RFC 1997: BGP Communities Attribute."; + } + + identity no-export { + base bgp-well-known-std-community; + description + "Do not export NLRI received carrying this community outside + the bounds of this autonomous system, or this confederation + (if the local autonomous system is a confederation member AS). + This community has a value of 0xFFFFFF01."; + reference + "RFC 1997: BGP Communities Attribute."; + } + + identity no-advertise { + base bgp-well-known-std-community; + description + "All NLRI received carrying this community must not be + advertised to other BGP peers. This community has a value of + 0xFFFFFF02."; + reference + "RFC 1997: BGP Communities Attribute."; + } + + identity no-export-subconfed { + base bgp-well-known-std-community; + description + "All NLRI received carrying this community must not be + advertised to external BGP peers - including over + confederation sub-AS boundaries. This community has a value of + 0xFFFFFF03."; + reference + "RFC 1997: BGP Communities Attribute."; + } + + identity no-peer { + base bgp-well-known-std-community; + description + "An autonomous system receiving NLRI tagged with this community + is advised not to re-advertise the NLRI to external bilateral + peer autonomous systems. An AS may also filter received NLRI + from bilateral peer sessions when they are tagged with this + community value. This community has a value of 0xFFFFFF04."; + reference + "RFC 3765: NOPEER Community for BGP."; + } + + /* + * Typedefs. + */ + + typedef bgp-well-known-community-type { + type identityref { + base bgp-well-known-std-community; + } + description + "Type definition for well-known IETF community attribute + values."; + reference + "IANA Border Gateway Protocol (BGP) Well Known Communities"; + } + + typedef bgp-ipv6-ext-community-rt-type { + type string { + pattern 'ipv6\-route\-target:' + + '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + pattern 'ipv6\-route\-target:' + + '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + } + description + "Type 0x00, Sub-Type 0x02: IPv6 Route-Target + ipv6-route-target:(IPv6 address):(local-admin) + 16 octets global administrator and 2 octets local + administrator. + + Note: The patterns above are excerpted from RFC 8294."; + reference + "RFC 5701: IPv6 Address Specific BGP Extended Community + Attribute, Section 3."; + } + + typedef bgp-ipv6-ext-community-ro-type { + type string { + pattern 'ipv6\-route\-origin:' + + '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + pattern 'ipv6-route\-origin:' + + '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + } + description + "Type 0x00, Sub-Type 0x03: IPv6 Route-Origin + ipv6-route-origin:(IPv6 address):(local-admin) + 16 octets global administrator and 2 octets local + administrator. + + Note: The patterns above are excerpted from RFC 8294."; + reference + "RFC 5701: IPv6 Address Specific BGP Extended Community + Attribute, Section 3."; + } + + typedef bgp-ipv6-ext-community-raw-type { + type string { + pattern 'ipv6-raw:' + + '([0-9A-Fa-f][0-9A-Fa-f]:){19}' + + '[0-9A-Fa-f][0-9A-Fa-f]'; + } + description + "Raw IPv6 extended community value encoded as + ipv6-raw:(hex-octet):(hex-octet):...:(hex-octet) + with 20 hex-encoded octets."; + } + + typedef bgp-ipv6-ext-community-type { + type union { + type bgp-ipv6-ext-community-rt-type; + type bgp-ipv6-ext-community-ro-type; + type bgp-ipv6-ext-community-raw-type; + } + description + "Type definition for IPv6 extended community attributes. + It includes a way to specify a 'raw' string that + is followed by 20 bytes of octet string to support + new and experimental type definitions."; + reference + "RFC 5701: IPv6 Address Specific BGP Extended Community + Attribute, Section 3."; + } + + typedef bgp-ext-community-rt-asn-type { + type string { + pattern 'route\-target:' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])' + + 'L?' + + ':' + + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' + + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' + + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' + + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' + + '429496729[0-5])'; + } + description + "Type 0x00, Sub-Type 0x02: Route-Target + route-target:(ASN):(local-admin) + 2 octets global administrator and 4 octets local + administrator. + + When the 'L' qualifier is used, this community + represents a Type 0x02, Sub-Type 0x02: Route-Target + route-target:(ASN):(local-admin) 4 octets global + administrator with a value < 65536 and 2 octets local + administrator."; + reference + "RFC 4360: BGP Extended Communities Attribute, + Section 4. + RFC 5668: 4-Octet AS Specific BGP Extended Community, + Section 4."; + } + + typedef bgp-ext-community-rt-ipv4-type { + type string { + pattern 'route\-target:' + + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' + + '2[0-4][0-9]|25[0-5])' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + } + description + "Type 0x01, Sub-Type 0x02: Route-Target + route-target:(IPv4):(local-admin) + 4 octets IP address global administrator and 2 octets + local administrator."; + reference + "RFC 4360: BGP Extended Communities Attribute, + Section 4."; + } + + typedef bgp-ext-community-rt-4octet-asn-type { + type string { + pattern 'route\-target:' + + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' + + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' + + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' + + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' + + '429496729[0-5])' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + } + description + "Type 0x02, Sub-Type 0x02: Route-Target + route-target:(ASN):(local-admin) + 4 octets global administrator and 2 octets local + administrator."; + reference + "RFC 5668: 4-Octet AS Specific BGP Extended Community, + Section 4."; + } + + typedef bgp-ext-community-ro-asn-type { + type string { + pattern 'route\-origin:' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])' + + 'L?' + + ':' + + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' + + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' + + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' + + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' + + '429496729[0-5])'; + } + description + "Type 0x00, Sub-Type 0x03: Route-Origin + route-origin:(ASN):(local-admin) + 2 octets global administrator and 4 octets local + administrator. + + When the 'L' qualifier is used, this community + represents a Type 0x02, Sub-Type 0x03: Route-Origin + route-origin:(ASN):(local-admin) 4 octets global + administrator with a value < 65536 and 2 octets local + administrator."; + reference + "RFC 4360: BGP Extended Communities Attribute, + Section 5. + RFC 5668: 4-Octet AS Specific BGP Extended Community, + Section 4."; + } + + typedef bgp-ext-community-ro-ipv4-type { + type string { + pattern 'route\-origin:' + + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' + + '2[0-4][0-9]|25[0-5])' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + } + description + "Type 0x01, Sub-Type 0x03: Route-Origin + route-origin:(IPv4):(local-admin) + 4 octets IP address global administrator and 2 octets + local administrator."; + reference + "RFC 4360: BGP Extended Communities Attribute, + Section 5."; + } + + typedef bgp-ext-community-ro-4octet-asn-type { + type string { + pattern 'route\-origin:' + + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' + + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' + + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' + + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' + + '429496729[0-5])' + + ':' + + '([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|' + + '6[0-5][0-9]{3}|66[0-4][0-9]{2}|' + + '665[0-2][0-9]|6653[0-5])'; + } + description + "Type 0x02, Sub-Type 0x03: Route-Origin + route-origin:(ASN):(local-admin) + 4 octets global administrator and 2 octets local + administrator."; + reference + "RFC 5668: 4-Octet AS Specific BGP Extended Community, + Section 4."; + } + + typedef bgp-ext-community-raw-type { + type string { + pattern 'raw:' + + '([0-9A-Fa-f][0-9A-Fa-f]:){7}' + + '[0-9A-Fa-f][0-9A-Fa-f]'; + } + description + "Raw extended community value encoded as + raw:(hex-octet):(hex-octet):...:(hex-octet) + with 8 hex-encoded octets."; + } + + typedef bgp-ext-community-type { + type union { + type bgp-ext-community-rt-asn-type; + type bgp-ext-community-rt-ipv4-type; + type bgp-ext-community-rt-4octet-asn-type; + type bgp-ext-community-ro-asn-type; + type bgp-ext-community-ro-ipv4-type; + type bgp-ext-community-ro-4octet-asn-type; + type bgp-ext-community-raw-type; + } + description + "Type definition for extended community attributes. + It includes a way to specify a 'raw' string that + is followed by 8 bytes of octet string to support + new and experimental type definitions."; + reference + "RFC 4360: BGP Extended Communities Attribute."; + } +} diff --git a/experimental/ietf-extracted-YANG-modules/iana-bgp-notification@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/iana-bgp-notification@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/iana-bgp-notification@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/iana-bgp-notification@2026-08-14.yang index 66a9cf9a9..ad6e10e00 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-bgp-notification@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-bgp-notification@2026-08-14.yang @@ -55,7 +55,7 @@ module iana-bgp-notification { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -74,7 +74,6 @@ module iana-bgp-notification { "All errors detected while processing the Message Header MUST be indicated by sending the NOTIFICATION message with the Error Code Message Header Error. - The value of the 'Message Header Error' Error code is 1."; reference "RFC 4271: A Border Gateway Protocol 4 (BGP-4), Section 6.1."; @@ -123,7 +122,6 @@ module iana-bgp-notification { - if the Length field of a NOTIFICATION message is less than the minimum length of the NOTIFICATION message, - then the Error Subcode MUST be set to Bad Message Length. The Data field MUST contain the erroneous Length field. @@ -331,6 +329,7 @@ module iana-bgp-notification { If any attribute appears more than once in the UPDATE message, then the Error Subcode MUST be set to Malformed Attribute List. + The value of the 'Malformed Attribute List' Error subcode is 1."; reference @@ -522,6 +521,7 @@ module iana-bgp-notification { RFC 6608: Subcodes for BGP Finite State Machine Error, Section 3."; } + identity fsm-error-unexpected-in-opensent { base fsm-error; description @@ -649,7 +649,6 @@ module iana-bgp-notification { "If a BGP speaker decides to de-configure a peer, then the speaker SHOULD send a NOTIFICATION message with the Error Code Cease and the Error Subcode 'Peer De-configured'. - The value of the 'Peer De-configured' Error subcode is 3."; reference "RFC 4486: Subcodes for BGP Cease Notification Message, Section @@ -794,7 +793,6 @@ module iana-bgp-notification { subcode of 'Invalid Message Length'. The Data field of the NOTIFICATION message MUST contain the complete ROUTE-REFRESH message. - The value of the 'Invalid Message Length' Error subcode is 1."; reference diff --git a/experimental/ietf-extracted-YANG-modules/iana-bgp-rib-types@2026-03-02.yang b/experimental/ietf-extracted-YANG-modules/iana-bgp-rib-types@2026-08-14.yang similarity index 86% rename from experimental/ietf-extracted-YANG-modules/iana-bgp-rib-types@2026-03-02.yang rename to experimental/ietf-extracted-YANG-modules/iana-bgp-rib-types@2026-08-14.yang index ba9f3b658..3cfae682c 100644 --- a/experimental/ietf-extracted-YANG-modules/iana-bgp-rib-types@2026-03-02.yang +++ b/experimental/ietf-extracted-YANG-modules/iana-bgp-rib-types@2026-08-14.yang @@ -3,6 +3,12 @@ module iana-bgp-rib-types { namespace "urn:ietf:params:xml:ns:yang:iana-bgp-rib-types"; prefix brt; + import ietf-yang-semver { + prefix ysv; + reference + "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; + } + organization "IANA"; contact @@ -21,10 +27,14 @@ module iana-bgp-rib-types { Jeffrey Haas (jeffrey.haas at hpe.com)."; description - "Defines identity and type definitions associated with - the BGP RIB modules. - - Copyright (c) 2023 IETF Trust and the persons identified as + "This YANG module is maintained by IANA and defines identity + and type definitions associated with BGP RIB route + eligibility and path-selection status. It reflects the + 'BGP Route Ineligibility Reasons', 'BGP Best-Path + Non-Selection Reasons', and 'BGP Route Policy Non-Selection + Reasons' registries at IANA. + + 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 @@ -34,9 +44,11 @@ module iana-bgp-rib-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. + The initial version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices. + + The most recent version of this YANG module is available at + . The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', @@ -44,9 +56,10 @@ module iana-bgp-rib-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-03-02 { + revision 2026-08-14 { description "Initial Version"; + ysv:version 0.0.9; reference "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-capabilities@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-capabilities@2026-08-14.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-capabilities@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-capabilities@2026-08-14.yang index a446499c2..783173875 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-capabilities@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-capabilities@2026-08-14.yang @@ -70,7 +70,7 @@ submodule ietf-bgp-capabilities { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -81,7 +81,7 @@ submodule ietf-bgp-capabilities { grouping bgp-capabilities-common { description "BGP Capabilities that are used commonly by the - advertised-capabilities and received-capabilities lists in the + advertised-capability and received-capability lists in the bgp-capabilities grouping."; leaf code { @@ -210,7 +210,7 @@ submodule ietf-bgp-capabilities { 3."; } - list afi-safis { + list afi-safi { description "List of AFI/SAFIs advertised by the BGP Graceful Restart Capability and their AFI/SAFI-specific Flags."; @@ -317,7 +317,7 @@ submodule ietf-bgp-capabilities { reference "RFC 7911: Advertisement of Multiple Paths in BGP."; - list afi-safis { + list afi-safi { description "List of AFI/SAFIs advertised by the BGP ADD-PATH Capability and their AFI/SAFI-specific mode."; @@ -393,7 +393,7 @@ submodule ietf-bgp-capabilities { reference "RFC 5492: Capabilities Advertisement with BGP-4."; - list advertised-capabilities { + list advertised-capability { key "code index"; description "List of advertised BGP capabilities, per-peer. @@ -404,7 +404,7 @@ submodule ietf-bgp-capabilities { uses bgp-capabilities-common; } - list received-capabilities { + list received-capability { key "code index"; description "List of received BGP capabilities, per-peer. @@ -415,7 +415,7 @@ submodule ietf-bgp-capabilities { uses bgp-capabilities-common; } - leaf-list negotiated-capabilities { + leaf-list negotiated-capability { type identityref { base bc:bgp-capability; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-errors@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-errors@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-common-errors@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-common-errors@2026-08-14.yang index a8eb06582..0f8eb43e2 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-errors@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-errors@2026-08-14.yang @@ -3,7 +3,6 @@ submodule ietf-bgp-common-errors { belongs-to ietf-bgp { prefix bgp; } - import iana-bgp-notification { prefix bn; reference @@ -57,7 +56,7 @@ submodule ietf-bgp-common-errors { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-multiprotocol@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-multiprotocol@2026-08-14.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-common-multiprotocol@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-common-multiprotocol@2026-08-14.yang index 2f28b6c06..488645d80 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-multiprotocol@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-common-multiprotocol@2026-08-14.yang @@ -61,7 +61,7 @@ submodule ietf-bgp-common-multiprotocol { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -148,7 +148,8 @@ submodule ietf-bgp-common-multiprotocol { base bast:afi-safi-type; } description - "AFI,SAFI"; + "The AFI/SAFI identifier for this address family + configuration entry."; } leaf enabled { type boolean; @@ -163,8 +164,10 @@ submodule ietf-bgp-common-multiprotocol { description "A common grouping used for contents of the list that is used for AFI-SAFI entries"; - // import and export policy included for the afi/safi - uses rt-pol:apply-policy-group; + uses rt-pol:apply-policy-group { + description + "Import and export policy included for the AFI/SAFI."; + } container ipv4-unicast { when "derived-from-or-self(../name, 'bast:ipv4-unicast')" { description @@ -336,7 +339,6 @@ submodule ietf-bgp-common-multiprotocol { // across IPv[46] unicast address families. uses mp-all-afi-safi-common; } - grouping mp-l3vpn-ipv4-ipv6-multicast-common { description "Common configuration applied across L3VPN for IPv4 diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-common@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-common@2026-08-14.yang similarity index 90% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-common@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-common@2026-08-14.yang index 906c86d31..30dee158b 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-common@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-common@2026-08-14.yang @@ -14,16 +14,16 @@ submodule ietf-bgp-common { reference "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; } + import ietf-bgp-session-security { + prefix ibss; + reference + "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; + } import ietf-interfaces { prefix if; reference "RFC 8343: A YANG Data Model for Interface Management."; } - import ietf-key-chain { - prefix key-chain; - reference - "RFC 8177: YANG Data Model for Key Chains."; - } import ietf-inet-types { prefix inet; reference @@ -92,7 +92,7 @@ submodule ietf-bgp-common { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -362,7 +362,9 @@ submodule ietf-bgp-common { } description "Routes learned via BGP are subject to weighted route - dampening."; + damping."; + reference + "RFC 2439: BGP Route Flap Damping."; } leaf-list send-community { if-feature "ibct:send-communities"; @@ -371,7 +373,8 @@ submodule ietf-bgp-common { } description "When supported, this tells the router to propagate any - prefixes that are attached to these community-types."; + communities that are attached to BGP routes for these + community-types."; } leaf description { type string; @@ -485,6 +488,7 @@ submodule ietf-bgp-common { enabled"; } } + leaf passive-mode { type boolean; default "false"; @@ -504,81 +508,7 @@ submodule ietf-bgp-common { RFC 7454: BGP Operations and Security."; } - container secure-session { - must "enabled = 'false' or " + - "(enabled = 'true' and options)" { - error-message "When secure-session is enabled " + - "secure-session options MUST be set"; - } - description - "Container for describing how a particular BGP session - is to be secured."; - - leaf enabled { - type boolean; - default "false"; - description - "When set to true, session is secured with the - configured options."; - } - - container options { - description - "Options for securing the BGP session."; - choice option { - case ao { - leaf ao-keychain { - type key-chain:key-chain-ref; - description - "Reference to the key chain that will be used by this - model. Applicable for TCP-AO and TCP-MD5 only"; - reference - "RFC 8177: YANG Data Model for Key Chains."; - } - description - "Uses TCP-AO to secure the session. Parameters for - those are defined as a grouping in the TCP YANG - model."; - reference - "RFC 5925: The TCP Authentication Option."; - } - - case md5 { - leaf md5-keychain { - type key-chain:key-chain-ref; - description - "Reference to the key chain that will be used by this - model. Applicable for TCP-AO and TCP-MD5 only"; - reference - "RFC 8177: YANG Data Model for Key Chains."; - } - description - "Uses TCP-MD5 to secure the session. Parameters for - those are defined as a grouping in the TCP YANG - model."; - reference - "RFC 5925: The TCP Authentication Option."; - } - - case ipsec { - leaf sa { - type string; - description - "Security Association (SA) name."; - } - description - "Currently, the IPsec/IKE YANG model has no - grouping defined that this model can use. When - such a grouping is defined, this model can import - the grouping to add the key parameters - needed to kick of IKE."; - } - - description - "Choice of authentication options."; - } - } - } + uses "ibss:bgp-session-security"; container bfd { if-feature "ibt:bfd"; @@ -869,6 +799,7 @@ submodule ietf-bgp-common { } } } + grouping add-paths { description "Grouping used to include ADD-PATHs configuration and state."; @@ -921,7 +852,7 @@ submodule ietf-bgp-common { grouping dynamic-peers { description - "Grouping to contain dyamic BGP peers. Dynamic peers are + "Grouping to contain dynamic BGP peers. Dynamic peers are configured from a list of IP prefixes matching the IP source address of the dynamic peer."; @@ -930,7 +861,7 @@ submodule ietf-bgp-common { "Configuration and operational state for dynamically configured peers."; - list dynamic-peer-list { + list dynamic-peer { key "prefix"; description "List of peers by IP prefix for this configuration scope diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-community-types@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-community-types@2026-08-14.yang similarity index 92% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-community-types@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-community-types@2026-08-14.yang index 8752ba166..ea0117c3d 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-community-types@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-community-types@2026-08-14.yang @@ -4,6 +4,12 @@ module ietf-bgp-community-types { "urn:ietf:params:xml:ns:yang:ietf-bgp-community-types"; prefix ibct; + import ietf-yang-semver { + prefix ysv; + reference + "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; + } + organization "IETF IDR Working Group"; contact @@ -39,9 +45,10 @@ module ietf-bgp-community-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; + ysv:version 0.0.9; reference "RFC XXXX: YANG module for Border Gateway Protocol (BGP-4)."; } @@ -53,6 +60,12 @@ module ietf-bgp-community-types { feature send-communities { description "Enable the propagation of communities."; + reference + "RFC 1997: BGP Communities Attribute. + RFC 4360: BGP Extended Communities Attribute. + RFC 5668: BGP Extended Community Attribute for Route Target + Constraints. + RFC 8092: BGP Large Communities Attribute."; } /* @@ -78,7 +91,6 @@ module ietf-bgp-community-types { reference "RFC 1997: BGP Communities Attribute."; } - identity extended { base send-community-feature; description @@ -104,6 +116,7 @@ module ietf-bgp-community-types { description "Type definition for communities specified as regular expression patterns. + A compliant implementation of this type MUST accept a POSIX.2 Extended Regular Expression excluding the following features: - character class expressions (Section 9.3.5) diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-neighbor@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-neighbor@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-neighbor@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-neighbor@2026-08-14.yang index 130332309..f1092b908 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-neighbor@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-neighbor@2026-08-14.yang @@ -26,6 +26,7 @@ submodule ietf-bgp-neighbor { reference "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; } + // Include the common submodule include ietf-bgp-common; @@ -66,7 +67,7 @@ submodule ietf-bgp-neighbor { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -254,8 +255,7 @@ submodule ietf-bgp-neighbor { "RFC 4271: A Border Gateway Protocol 4 (BGP-4), Section 4.5."; } - - list afi-safis { + list afi-safi { key "afi-safi-name"; description "Per-AFI-SAFI message counters"; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-policy@2024-10-21.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-policy@2026-08-14.yang similarity index 89% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-policy@2024-10-21.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-policy@2026-08-14.yang index 6302ddca6..5f9944604 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-policy@2024-10-21.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-policy@2026-08-14.yang @@ -8,15 +8,20 @@ module ietf-bgp-policy { import ietf-inet-types { prefix inet; reference - "RFC 6991: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types"; } import ietf-routing-policy { prefix rt-pol; reference "RFC 9067: A YANG Data Model for Routing Policy"; } - import iana-bgp-types { - prefix bt; + import iana-bgp-afi-safi-types { + prefix bast; + reference + "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; + } + import ietf-bgp-types { + prefix ibt; reference "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; } @@ -25,6 +30,16 @@ module ietf-bgp-policy { reference "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; } + import ietf-bgp-community-types { + prefix ibct; + reference + "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; + } + import ietf-yang-semver { + prefix ysv; + reference + "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; + } organization "IETF IDR Working Group"; @@ -35,14 +50,14 @@ module ietf-bgp-policy { Authors: Mahesh Jethanandani (mjethanandani at gmail.com), Keyur Patel (keyur at arrcus.com), Susan Hares (shares at ndzh.com), - Jeffrey Haas (jhaas at juniper.net)."; + Jeffrey Haas (jeffrey.haas at hpe.com)."; description "This module contains data definitions for BGP routing policy. It augments the base routing-policy module with BGP-specific options for conditions and actions. - Copyright (c) 2023 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 @@ -62,9 +77,10 @@ module ietf-bgp-policy { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2024-10-21 { + revision 2026-08-14 { description "Initial Version"; + ysv:version 0.0.9; reference "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; } @@ -116,10 +132,12 @@ module ietf-bgp-policy { typedef bgp-set-med-type { type union { type string { - pattern '[+-]([0-9]{1,8}|[0-3][0-9]{1,9}|4[0-1][0-9]{1,8}|' - + '428[0-9]{1,7}|429[0-3][0-9]{1,6}|42948[0-9]{1,5}|' - + '42949[0-5][0-9]{1,4}|429496[0-6][0-9]{1,3}|' - + '4294971[0-9]{1,2}|42949728[0-9]|42949729[0-5])'; + pattern '[+-]' + + '([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|' + + '42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|' + + '42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|' + + '4294967[01][0-9]{2}|42949672[0-8][0-9]|' + + '429496729[0-5])'; } type enumeration { enum igp { @@ -242,8 +260,8 @@ module ietf-bgp-policy { leaf-list member { type union { type bct:bgp-well-known-community-type; - type bct:bgp-std-community-type; - type bct:bgp-community-regexp-type; + type ibct:bgp-std-community-type; + type ibct:bgp-community-regexp-type; } description "Members of the community set"; @@ -268,7 +286,7 @@ module ietf-bgp-policy { leaf-list member { type union { type bct:bgp-ext-community-type; - type bct:bgp-community-regexp-type; + type ibct:bgp-community-regexp-type; } description "Members of the extended community set."; @@ -294,7 +312,7 @@ module ietf-bgp-policy { leaf-list member { type union { type bct:bgp-ipv6-ext-community-type; - type bct:bgp-community-regexp-type; + type ibct:bgp-community-regexp-type; } description "Members of the IPv6 extended community set."; @@ -318,8 +336,8 @@ module ietf-bgp-policy { } leaf-list member { type union { - type bct:bgp-large-community-type; - type bct:bgp-community-regexp-type; + type ibct:bgp-large-community-type; + type ibct:bgp-community-regexp-type; } description "Members of the large community set."; @@ -399,7 +417,7 @@ module ietf-bgp-policy { } leaf origin-eq { - type bt:bgp-origin-attr-type; + type ibt:bgp-origin-attr-type; description "Condition to check if the route origin is equal to the specified value."; @@ -411,7 +429,7 @@ module ietf-bgp-policy { the match-set-options leaf."; leaf-list afi-safi-in { type identityref { - base bt:afi-safi-type; + base bast:afi-safi-type; } description "List of address families which the NLRI may be within."; @@ -453,7 +471,22 @@ module ietf-bgp-policy { "Value and comparison operations for conditions based on the number of communities in the route update."; - leaf community-count { + leaf value { + type uint32; + description + "Value for the number of communities in the route + update."; + } + + uses equality-operator; + } + + container extended-community-count { + description + "Value and comparison operations for conditions based on + the number of extended communities in the route update."; + + leaf value { type uint32; description "Value for the number of communities in the route @@ -473,7 +506,7 @@ module ietf-bgp-policy { reference "RFC 4271: A Border Gateway Protocol 4 (BGP-4)."; - leaf as-path-length { + leaf value { type uint32; description "Value of the AS path length in the route update."; @@ -630,7 +663,7 @@ module ietf-bgp-policy { description "Top-level container for BGP-specific actions"; leaf set-route-origin { - type bt:bgp-origin-attr-type; + type ibt:bgp-origin-attr-type; description "Set the origin attribute to the specified value"; } @@ -661,13 +694,29 @@ module ietf-bgp-policy { } description "Number of times to prepend the AS number to the AS - path. The value should be between 1 and the maximum - supported by the implementation."; + path. If no value is specified by the asn or use-last-as + leafs, the local AS number is used. The value should be + between 1 and the maximum supported by the + implementation."; } - leaf-list asn { + leaf asn { type inet:as-number; + must "../repeat-n and not(../use-last-as)"; description - "AS number to prepend to the AS path."; + "The AS number to prepend to the AS path. If neither this + leaf nor use-last-as leaf is specified, but repeat-n is + set, then the local AS number will be used for + prepending."; + } + leaf use-last-as { + type boolean; + must "../repeat-n and not(../asn)"; + description + "Indicates whether to use the last AS number, which is + also the most recent AS number, to prepend to the AS + path. If neither this leaf, nor asn leaf is specified, + but repeat-n is set, then the local AS number will be + used for prepending."; } } @@ -691,10 +740,10 @@ module ietf-bgp-policy { "Indicates the method used to specify the extended communities for the set-community action"; case inline { - leaf-list communities { + leaf-list community { type union { type bct:bgp-well-known-community-type; - type bct:bgp-std-community-type; + type ibct:bgp-std-community-type; } description "Set the community values for the update inline with @@ -731,12 +780,13 @@ module ietf-bgp-policy { the specified values. These options apply to both methods of setting the community attribute."; } + choice method { description "Indicates the method used to specify the extended communities for the set-ext-community action"; case inline { - leaf-list communities { + leaf-list community { type bct:bgp-ext-community-type; description "Set the extended community values for the update @@ -779,7 +829,7 @@ module ietf-bgp-policy { "Indicates the method used to specify the IPv6 extended communities for the set-ipv6-ext-community action"; case inline { - leaf-list communities { + leaf-list community { type bct:bgp-ipv6-ext-community-type; description "Set the IPv6 extended community values for the @@ -822,8 +872,8 @@ module ietf-bgp-policy { "Indicates the method used to specify the large communities for the set-large-community action"; case inline { - leaf-list communities { - type bct:bgp-large-community-type; + leaf-list community { + type ibct:bgp-large-community-type; description "Set the large community values for the update inline with a list."; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-attributes@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-attributes@2026-08-14.yang similarity index 96% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-attributes@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-attributes@2026-08-14.yang index d810e0ef8..d3128c24a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-attributes@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-attributes@2026-08-14.yang @@ -67,7 +67,7 @@ submodule ietf-bgp-rib-attributes { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial version"; ysv:version 0.0.9; @@ -153,7 +153,6 @@ submodule ietf-bgp-rib-attributes { reference "RFC 4271: A Border Gateway Protocol 4 (BGP-4)."; } - leaf attr-type { type uint8; description @@ -241,11 +240,12 @@ submodule ietf-bgp-rib-attributes { leaf-list ext-community-raw { type string { - // raw with 8 octets pattern 'raw:([0-9A-F][0-9A-F]:){7}[0-9A-F][0-9A-F]'; } description - "ext-community type in raw format only."; + "Extended community type in raw format only, encoded as + raw:(hex-octet):(hex-octet):...:(hex-octet) with 8 + hex-encoded octets."; } } @@ -267,13 +267,14 @@ submodule ietf-bgp-rib-attributes { leaf-list ipv6-ext-community-raw { type string { - // raw with 20 octets pattern 'ipv6-raw:' + '([0-9A-Fa-f][0-9A-Fa-f]:){19}' + '[0-9A-Fa-f][0-9A-Fa-f]'; } description - "IPv6 ext-community type in raw format only."; + "IPv6 extended community type in raw format only, encoded as + ipv6-raw:(hex-octet):(hex-octet):...:(hex-octet) with 20 + hex-encoded octets."; } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-tables@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-tables@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-tables@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-tables@2026-08-14.yang index 28277b028..cb91b3bb6 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-tables@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib-tables@2026-08-14.yang @@ -73,7 +73,7 @@ submodule ietf-bgp-rib-tables { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -228,6 +228,7 @@ submodule ietf-bgp-rib-tables { route."; } } + grouping bgp-loc-rib-common-keys { description "Common references used in keys for IPv4 and IPv6 diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib@2026-08-14.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-rib@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-rib@2026-08-14.yang index f737e1918..54441cec1 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-rib@2026-08-14.yang @@ -41,7 +41,6 @@ submodule ietf-bgp-rib { // - specific to Loc-RIB or Adj-RIB // groupings of annotations for each route or table include ietf-bgp-rib-attributes; - organization "IETF IDR Working Group"; contact @@ -106,7 +105,7 @@ submodule ietf-bgp-rib { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -462,6 +461,7 @@ submodule ietf-bgp-rib { description "Routing tables for IPv4 unicast -- active when the afi-safi name is ipv4-unicast."; + container loc-rib { config false; description diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-session-security@2026-08-14.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-session-security@2026-08-14.yang new file mode 100644 index 000000000..022c5da8a --- /dev/null +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-session-security@2026-08-14.yang @@ -0,0 +1,168 @@ +module ietf-bgp-session-security { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-session-security"; + prefix bss; + + import ietf-key-chain { + prefix key-chain; + reference + "RFC 8177: YANG Data Model for Key Chains."; + } + import ietf-yang-semver { + prefix ysv; + reference + "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; + } + organization + "IETF IDR Working Group"; + contact + "WG Web: + WG List: + Authors: Mahesh Jethanandani (mjethanandani at gmail.com), + Keyur Patel (keyur at arrcus.com), + Susan Hares (shares at ndzh.com), + Jeffrey Haas (jeffrey.haas at hpe.com)."; + + description + "This module contains groupings particular to BGP session + security. + + Copyright (c) 2026 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject to + the license terms contained in, the Revised BSD License set + forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC XXXX + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself + for full legal notices. + + 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 2026-08-14 { + description + "Initial Version"; + ysv:version 0.0.9; + reference + "RFC XXXX: YANG Model for Border Gateway Protocol (BGP-4)."; + } + + /* + * Features. + */ + + feature bgp-session-security-tcp-ao { + description + "Support for the TCP Authentication Option for neighbors."; + reference + "RFC 5925: The TCP Authentication Option."; + } + + feature bgp-session-security-tcp-md5 { + description + "Support for TCP-MD5 for neighbors. Note that this option has been + obsoleted by RFC 5925 but is included for backward compatibility + for legacy BGP implementations."; + reference + "RFC 5925: The TCP Authentication Option."; + } + + feature bgp-session-security-ipsec { + description + "Support for IPsec security for neighbors."; + reference + "RFC 4301: Security Architecture for the Internet Protocol."; + } + + grouping bgp-session-security { + description + "Configuration parameters relating to BGP session security."; + + container secure-session { + must "enabled = 'false' or " + + "(enabled = 'true' and options)" { + error-message "When secure-session is enabled " + + "secure-session options MUST be set"; + } + description + "Container for describing how a particular BGP session + is to be secured."; + + leaf enabled { + type boolean; + default "false"; + description + "When set to true, session is secured with the + configured options."; + } + + container options { + description + "Options for securing the BGP session."; + choice option { + case ao { + if-feature "bgp-session-security-tcp-ao"; + leaf ao-keychain { + type key-chain:key-chain-ref; + description + "Reference to the key chain that will be used by this + model. Applicable for TCP-AO and TCP-MD5 only"; + reference + "RFC 8177: YANG Data Model for Key Chains."; + } + description + "Uses TCP-AO to secure the session. Parameters for + those are defined as a grouping in the TCP YANG + model."; + reference + "RFC 5925: The TCP Authentication Option."; + } + + case md5 { + if-feature "bgp-session-security-tcp-md5"; + leaf md5-keychain { + type key-chain:key-chain-ref; + description + "Reference to the key chain that will be used by this + model. Applicable for TCP-AO and TCP-MD5 only"; + reference + "RFC 8177: YANG Data Model for Key Chains."; + } + description + "Uses TCP-MD5 to secure the session. Parameters for + those are defined as a grouping in the TCP YANG + model."; + reference + "RFC 5925: The TCP Authentication Option."; + } + + case ipsec { + if-feature "bgp-session-security-ipsec"; + leaf sa { + type string; + description + "Security Association (SA) name."; + } + description + "Currently, the IPsec/IKE YANG model has no + grouping defined that this model can use. When + such a grouping is defined, this model can import + the grouping to add the key parameters + needed to kick of IKE."; + } + + description + "Choice of authentication options."; + } + } + } + } +} diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp-types@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp-types@2026-08-14.yang similarity index 95% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp-types@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp-types@2026-08-14.yang index 9e33b41a3..6cc68a0ce 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp-types@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp-types@2026-08-14.yang @@ -49,7 +49,7 @@ module ietf-bgp-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -84,21 +84,30 @@ module ietf-bgp-types { feature clear-neighbors { description "Clearing of BGP neighbors is supported."; + reference + "RFC 4271: A Border Gateway Protocol 4 (BGP-4), + Section 8.1.2 - ManualStop."; } feature clear-routes { description "Clearing of BGP routes is supported."; + reference + "RFC XXXX: YANG module for Border Gateway Protocol (BGP-4)."; } feature clear-statistics { description "Clearing of BGP statistics is supported."; + reference + "RFC XXXX: YANG module for Border Gateway Protocol (BGP-4)."; } feature damping { description - "Weighted route dampening is supported."; + "Weighted route damping is supported."; + reference + "RFC 2439: BGP Route Flap Damping."; } feature distance { @@ -106,11 +115,15 @@ module ietf-bgp-types { "BGP distance for implementations that expose routing table preferences for route selection for internal and external BGP."; + reference + "RFC XXXX: YANG module for Border Gateway Protocol (BGP-4)."; } feature graceful-restart { description "Graceful restart as defined in RFC 4724 is supported."; + reference + "RFC 4724: Graceful Restart Mechanism for BGP."; } feature route-refresh { @@ -333,6 +346,7 @@ module ietf-bgp-types { RFC 8538: Notification Message Support for BGP Graceful Restart."; } + typedef graceful-restart-flags-for-afi { type bits { bit forwarding-preserved { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-bgp@2026-06-24.yang b/experimental/ietf-extracted-YANG-modules/ietf-bgp@2026-08-14.yang similarity index 98% rename from experimental/ietf-extracted-YANG-modules/ietf-bgp@2026-06-24.yang rename to experimental/ietf-extracted-YANG-modules/ietf-bgp@2026-08-14.yang index e67b527a7..4f855f3b3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-bgp@2026-06-24.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-bgp@2026-08-14.yang @@ -39,28 +39,28 @@ module ietf-bgp { "I-D.ietf-netmod-yang-semver: YANG Semantic Versioning"; } include ietf-bgp-capabilities { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-common { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-common-errors { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-common-multiprotocol { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-neighbor { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-rib { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-rib-attributes { - revision-date 2026-06-24; + revision-date 2026-08-14; } include ietf-bgp-rib-tables { - revision-date 2026-06-24; + revision-date 2026-08-14; } organization @@ -73,6 +73,7 @@ module ietf-bgp { Keyur Patel (keyur at arrcus.com), Susan Hares (shares at ndzh.com), Jeffrey Haas (jeffrey.haas at hpe.com)."; + description "This module describes a YANG model for BGP protocol configuration. It is a limited subset of all of the @@ -118,7 +119,7 @@ module ietf-bgp { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2026-06-24 { + revision 2026-08-14 { description "Initial Version"; ysv:version 0.0.9; @@ -296,7 +297,7 @@ module ietf-bgp { container neighbors { description - "Configuration for BGP neighbors."; + "Configuration and operational state for BGP neighbors."; list neighbor { key "neighbor-key"; @@ -361,6 +362,7 @@ module ietf-bgp { reference to the standard MIB TCP connection table."; } + leaf peer-type { type ibt:peer-type; config false; @@ -453,7 +455,7 @@ module ietf-bgp { type boolean; config false; description - "This flag indicates whether the local neighbor is + "This flag indicates whether the local session is currently restarting. The flag is cleared after all NLRI have been advertised to the peer, and the End-of-RIB (EOR) marker has been cleared."; @@ -463,14 +465,14 @@ module ietf-bgp { type enumeration { enum helper-only { description - "The local router is operating in helper-only + "The local system is operating in helper-only mode, and hence will not retain forwarding state during a local session restart, but will do so during a restart of the remote peer"; } enum bilateral { description - "The local router is operating in both helper + "The local system is operating in both helper mode, and hence retains forwarding state during a remote restart, and also maintains forwarding state during local session restart"; @@ -505,6 +507,7 @@ module ietf-bgp { with the neighbor"; uses bgp-neighbor-afi-safi-list; } + leaf session-state { type enumeration { enum idle { @@ -553,6 +556,7 @@ module ietf-bgp { description "This timestamp indicates the time that the BGP session last transitioned in or out of the Established state. + The BGP session uptime can be computed by clients as the difference between this value and the current time (assuming the session is in the Established state, @@ -569,7 +573,6 @@ module ietf-bgp { description "Information about BGP NOTIFICATION messages, sent and received for this neighbor."; - container received { description "BGP NOTIFICATION message state received from this @@ -673,7 +676,7 @@ module ietf-bgp { "Clear statistics action command. Execution of this command should result in all the - counters to be cleared and set to 0."; + statistics to be cleared and set to 0."; input { leaf clear-at { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-incident@2025-09-16.yang b/experimental/ietf-extracted-YANG-modules/ietf-incident@2026-07-30.yang similarity index 74% rename from experimental/ietf-extracted-YANG-modules/ietf-incident@2025-09-16.yang rename to experimental/ietf-extracted-YANG-modules/ietf-incident@2026-07-30.yang index a51b9d997..7b44587ab 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-incident@2025-09-16.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-incident@2026-07-30.yang @@ -6,7 +6,12 @@ module ietf-incident { import ietf-yang-types { prefix yang; reference - "RFC 6991: Common YANG Data Types"; + "RFC 9911: Common YANG Data Types"; + } + import ietf-inet-types { + prefix inet; + reference + "RFC 9911: Common YANG Data Types"; } import ietf-alarms { prefix al; @@ -21,9 +26,9 @@ module ietf-incident { import ietf-yang-structure-ext { prefix sx; reference - "RFC 8791: YANG Data Structure Extensions"; - + "RFC 8791: YANG Data Structure Extensions"; } + organization "IETF NMOP Working Group"; contact @@ -36,7 +41,7 @@ module ietf-incident { Author: Luis Miguel Contreras Murillo - Author : Qin Wu + Author: Qin Wu Author: Nigel Davis "; @@ -52,7 +57,7 @@ module ietf-incident { - incident diagnose: diagnose an incident instance. - incident resolve: resolve an incident instance. - Copyright (c) 2024 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 @@ -63,7 +68,7 @@ module ietf-incident { (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 + (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL @@ -72,12 +77,12 @@ module ietf-incident { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. "; - revision 2025-09-16 { + revision 2026-07-30 { description "Merge incident yang with incident type yang and fix broken ref."; reference - "RFC XXX: YANG module for network incident management."; + "RFC XXXX: YANG module for network incident management."; } // Identities @@ -117,25 +122,26 @@ module ietf-incident { description "Optical transport network domain."; reference - "RFC9376: Applicability of GMPLS for beyond 100 Gbit/s Optical Transport Network"; - + "RFC9376: Applicability of GMPLS for beyond 100 Gbit/s Optical + Transport Network"; } identity ip { base single-domain; description "Ip domain."; - reference - "RFC1136: Administrative Domains and Routing Domains A Model for Routing in the Internet"; + reference + "RFC1136: Administrative Domains and Routing Domains A Model + for Routing in the Internet"; } identity ptn { base ip; description "Packet transport network domain."; - reference - "RFC6373: MPLS Transport Profile (MPLS-TP) Control Plane Framework"; - + reference + "RFC6373: MPLS Transport Profile (MPLS-TP) Control Plane + Framework"; } identity cross-domain { @@ -153,45 +159,40 @@ module ietf-incident { base incident-category; description "Device category."; - reference + reference "RFC8348: A YANG Data Model for Hardware Management"; - } identity power-environment { base device; description "Power environment category."; - reference + reference "RFC8348: A YANG Data Model for Hardware Management"; - } identity device-hardware { base device; description "Device hardware category."; - reference + reference "RFC8348: A YANG Data Model for Hardware Management"; - } identity device-software { base device; description "Device software category"; - reference + reference "RFC8348: A YANG Data Model for Hardware Management"; - } identity line-card { base device-hardware; description "Line card category."; - reference + reference "RFC8348: A YANG Data Model for Hardware Management"; - } identity maintenance { @@ -228,8 +229,8 @@ module ietf-incident { description "The abstract identity for Event type"; reference - "RFCXXXX: Some Key Terms for Network Fault and Problem Management"; - + "RFC9940: Some Key Terms for Network Fault and Problem + Management"; } identity alarm { @@ -238,31 +239,23 @@ module ietf-incident { "Alarm event type."; reference "RFC8632: A YANG Data Model for Alarm Management"; - } identity notif { base event-type; description "Notification event type."; - reference - "RFC5277:NETCONF Event Notifications"; - } - - identity log { - base event-type; - description - "Log event type."; - reference - "RFC5424: The Syslog Protocol"; + reference + "RFC5277: NETCONF Event Notifications"; } - identity kpi { + identity metric { base event-type; description - "KPI event type."; + "Metric event type."; reference - "RFC2330: Framework for IP Performance Metrics"; + "RFC9375: A YANG Data Model for Network and VPN + Service Performance Monitoring"; } identity unknown { @@ -271,24 +264,24 @@ module ietf-incident { "Unknown event type."; } - identity incident-class { + identity incident-type { description "The abstract identity for Incident category."; } identity problem { - base incident-class; + base incident-type; description "It indicates the class of the incident is a problem - (i.e.,cause of the incident) for example an interface - fails to work."; + (i.e.,cause of the incident) for example an interface + fails to work."; reference - "RFCXXXX: Some Key Terms for Network Fault and Problem Management"; - + "RFC9940: Some Key Terms for Network Fault and Problem + Management"; } identity sla-violation { - base incident-class; + base incident-type; description "It indicates the class of the incident is a sla violation, for example high CPU rate may cause @@ -322,7 +315,7 @@ module ietf-incident { identity probable-cause-unlocated { base diagnose-error; description - "Fail to locate the probable causes when performing the + "Fail to locate the Probable Root Causes when performing the diagnosis operation. The detailed reason MUST be included in the 'description'."; } @@ -330,7 +323,7 @@ module ietf-incident { identity probable-cause-unresolved { base resolve-error; description - "Fail to resolve the probable causes when performing the + "Fail to resolve the Probable Root Causes when performing the resolution operation. The detailed reason MUST be included in the 'description'"; } @@ -358,11 +351,6 @@ module ietf-incident { the diagnosis/resolution operation."; } - identity cause-name { - description - "Base identity for the cause name."; - } - // Typedefs typedef incident-priority { @@ -379,7 +367,7 @@ module ietf-incident { enum medium { description "Network services are not affected, or the - services are slightly affected,but corrective + services are slightly affected, but corrective measures need to be taken."; } enum low { @@ -405,11 +393,9 @@ module ietf-incident { grouping probable-cause-info { description - "The information of probable cause."; + "The information of Probable Root Cause."; leaf cause-name { - type identityref { - base cause-name; - } + type string; description "The name of cause."; } @@ -478,25 +464,24 @@ module ietf-incident { incident."; leaf name { type string; - mandatory true; description "The name of an incident."; } leaf type { type identityref { - base incident-class; + base incident-type; } - mandatory true; description "The type of an incident."; } - leaf incident-id { + leaf incident-qualifier { type string; description "The unique qualifier of an incident instance type. - This leaf is used when the 'type' leaf cannot - uniquely identify the incident instance type. Normally, - this is not the case, and this leaf is the empty string."; + This leaf is used when the 'type' leaf cannot + uniquely identify the incident instance type. Normally, + this is not the case, and this leaf is the empty string. + "; } leaf-list service-instance { type string; @@ -576,38 +561,42 @@ module ietf-incident { "The source components."; list source { key "node-ref"; - min-elements 1; description - "The source components of incident."; + "The source components of incident. An Incident might + be created even if we don't know yet the sources + (hence we can not populate source list in the sources + container). Therefore the min-elements for the source + list is set to 0. Once the Incident is diagnosed, the + source(s) will be populated."; uses resources-info; } } container probable-causes { description - "The probable cause objects."; + "The Probable Root Cause objects."; list probable-cause { key "node-ref"; description - "The probable causes of incident."; + "The Probable Root Causes of incident."; uses resources-info { augment "resource" { description - "Augment probable cause information."; - //if probable cause object is a resource of a node + "Augment Probable Root Cause information."; + //if Probable Root Cause object is a resource of a node uses probable-cause-info; } } - //if probable cause object is a node + //if Probable Root Cause object is a node uses probable-cause-info; } } container probable-events { description - "The probable cause related events of the incident."; + "The Probable Root Cause related events of the incident."; list probable-event { key "type event-id"; description - "The probable cause related event of the incident."; + "The Probable Root Cause related event of the incident."; leaf type { type leafref { path "../../../events/event/type"; @@ -648,7 +637,7 @@ module ietf-incident { } choice event-type-info { description - "Event type information."; + "Various different event type information."; case alarm { when "derived-from-or-self(type, 'alarm')" { description @@ -695,6 +684,78 @@ module ietf-incident { } } } + case metric { + when "derived-from-or-self(type, 'metric')" { + description + "Only applies when type is metric."; + } + container metric { + description + "Metric type event. Performance metrics + exceeding SLO thresholds."; + leaf resource { + type leafref { + path "/al:alarms/al:alarm-list/al:alarm" + + "/al:resource"; + } + description + "Network resource."; + reference + "RFC 8632: A YANG Data Model for Alarm + Management"; + } + leaf metric-name { + type string; + description + "Metric Name."; + } + leaf threshold-value { + type string; + description + "Threshold value for the specific metric."; + } + leaf observed-value { + type string; + description + "Observed value for the specific metric"; + } + } + } + case notification { + when "derived-from-or-self(type, 'notif')" { + description + "Only applies when type is notification."; + } + container notification { + description + "Notification type event."; + leaf event-time { + type yang:date-and-time; + description + "The date and time the event was generated by + the network node."; + } + leaf hostname { + type inet:host; + description + "The hostname of the network node. This value + is usually configured on the node by the + administrator to identify the node in the + network uniquely."; + } + leaf sequence-number { + type yang:counter32; + description + "Unique sequence number for each published + message by the publisher process. The initial + number is 1 and counts up by 1 at every + published notification message until it reaches + 4294967295. Then, it wraps around and restarts + at 0. The value 0 is used to detect wrap + arounds."; + } + } + } } } } @@ -710,7 +771,8 @@ module ietf-incident { leaf-list incident-no { type incident-ref; description - "The identifier of an incident instance."; + "The unique sequence number of an incident instance + based on the name type incident-id keys."; } } } @@ -724,7 +786,8 @@ module ietf-incident { leaf-list incident-no { type incident-ref; description - "The identifier of an incident instance."; + "The unique sequence number of an incident instance + based on the name type incident-id keys."; } } } @@ -738,7 +801,8 @@ module ietf-incident { leaf-list incident-no { type incident-ref; description - "The identifier of an incident instance."; + "The unique sequence number of an incident instance + based on the name type incident-id keys."; } } } @@ -760,21 +824,23 @@ module ietf-incident { base acknowledge-error; } description - "Indicates the reason why the operation is failed."; + "Indicates the reason why the operation + is failed."; } leaf description { type string; description - "Indicates the detailed description about the failure."; + "Indicates the detailed description about + the failure."; } } } sx:structure incident-diagnose-error-info { container incident-diagnose-error-info { description - "This structure data MAY be inserted in the RPC error - response to indicate the reason for the - incident diagnose failure."; + "This structure data MAY be inserted in + the RPC error response to indicate the + reason for the incident diagnose failure."; leaf incident-no { type uint64; description @@ -786,21 +852,23 @@ module ietf-incident { base diagnose-error; } description - "Indicates the reason why the operation is failed."; + "Indicates the reason why the operation + is failed."; } leaf description { type string; description - "Indicates the detailed description about the failure."; + "Indicates the detailed description about + the failure."; } } } sx:structure incident-resolve-error-info { container incident-resolve-error-info { description - "This structure data MAY be inserted in the RPC error - response to indicate the reason for the - incident resolution failure."; + "This structure data MAY be inserted in + the RPC error response to indicate the + reason for the incident resolution failure."; leaf incident-no { type uint64; description @@ -830,6 +898,7 @@ module ietf-incident { the incident is raised, updated or cleared."; leaf incident-no { type incident-ref; + mandatory true; description "The identifier of an incident instance."; } @@ -837,7 +906,7 @@ module ietf-incident { leaf time { type yang:date-and-time; description - "Occuring time of an incident instance."; + "Occurring time of an incident instance."; } } @@ -848,14 +917,15 @@ module ietf-incident { description "The information of incidents."; list incident { - key "name type incident-id"; + key "name type incident-qualifier"; description "The information of incident."; leaf incident-no { type uint64; mandatory true; description - "The unique sequence number of the incident instance."; + "The unique sequence number of the incident + instance based on the name type incident-id keys."; } uses incident-info; uses incident-time-info; diff --git a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2026-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2026-06-27.yang index f7b986a55..96cf86053 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2026-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-platform-manifest@2026-06-27.yang @@ -6,7 +6,7 @@ module ietf-platform-manifest { import ietf-yang-library { prefix yanglib; reference - "RFC8525: YANG Library"; + "RFC 8525: YANG Library"; } import ietf-inet-types { prefix inet; @@ -21,10 +21,10 @@ module ietf-platform-manifest { WG List: Author: Benoit Claise Author: Jean Quilbeuf - Author: Diego R. Lopez + Author: Diego R. Lopez Author: Ignacio Dominguez - - Author: Thomas Graf "; + + Author: Thomas Graf "; description "This module describes the platform information to be used as context of data collection from a given network element. The @@ -67,11 +67,9 @@ module ietf-platform-manifest { feature yang-catalog { description - "The implementation provides platform details as defined - in the YANG Catalog schema (name, vendor, vendor-pen, + "The implementation provides platform details following the + YANG Catalog conventions (name, vendor, vendor-pen, software-version, software-flavor, os-version, os-type)."; - reference - "draft-clacla-netmod-model-catalog"; } feature ietf-system { @@ -88,16 +86,12 @@ module ietf-platform-manifest { "Platform details as stored in the YANG Catalog. Used when feature yang-catalog is supported."; leaf name { - type string { - length "1..1023"; - } + type string; description "Model of the platform from which data is collected."; } leaf vendor { - type string { - length "1..1023"; - } + type string; description "Organization that implements that platform."; } @@ -110,9 +104,7 @@ module ietf-platform-manifest { Numbers (PENs)"; } leaf software-version { - type string { - length "1..1023"; - } + type string; description "Name of the version of software. With respect to most network device appliances, this will be the operating system @@ -122,18 +114,14 @@ module ietf-platform-manifest { recognizable by the consumers of the platform."; } leaf software-flavor { - type string { - length "1..1023"; - } + type string; description "A variation of a specific version where YANG model support may be different. Depending on the vendor, this could be a license, additional software component, or a feature set."; } leaf os-version { - type string { - length "1..1023"; - } + type string; description "Version of the operating system using this module. This is primarily useful if the software implementing the module is @@ -141,9 +129,7 @@ module ietf-platform-manifest { version."; } leaf os-type { - type string { - length "1..1023"; - } + type string; description "Type of the operating system using this module. This is primarily useful if the software implementing the module is @@ -257,9 +243,7 @@ module ietf-platform-manifest { identifying and understanding the individual data collection information."; leaf id { - type string { - length "1..1023"; - } + type string; description "Identifies a given platform on the network, for instance the 'sysName' of the platform. The 'id' has to be unique diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yp-current-period@2026-06-27.yang b/experimental/ietf-extracted-YANG-modules/ietf-yp-current-period@2026-06-27.yang index 984d7b71d..e3c714fe3 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yp-current-period@2026-06-27.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yp-current-period@2026-06-27.yang @@ -26,12 +26,12 @@ module ietf-yp-current-period { WG List: Author: Benoit Claise Author: Jean Quilbeuf - Author: Diego R. Lopez + Author: Diego R. Lopez Author: Ignacio Dominguez - - Author: Thomas Graf "; + + Author: Thomas Graf "; description - "This module augments ietf-subscribed-notification and + "This module augments ietf-subscribed-notifications and ietf-yang-push with the current-period leaf reporting the actual collection period, as opposed to the configured one. @@ -62,10 +62,10 @@ module ietf-yp-current-period { type yp:centiseconds; config false; description - "Period during two successive data collections, in the - current state. Might differ from the configured period - when the platform might increase the period - automatically when it is overloaded."; + "Period between two successive data collections, in the + current state. May differ from the configured period if + the platform increases the collection period + automatically due to overload."; } } } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-yp-transport-capabilities@2026-05-15.yang b/experimental/ietf-extracted-YANG-modules/ietf-yp-transport-capabilities@2026-08-13.yang similarity index 87% rename from experimental/ietf-extracted-YANG-modules/ietf-yp-transport-capabilities@2026-05-15.yang rename to experimental/ietf-extracted-YANG-modules/ietf-yp-transport-capabilities@2026-08-13.yang index 513c3ac12..63544c7f8 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-yp-transport-capabilities@2026-05-15.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-yp-transport-capabilities@2026-08-13.yang @@ -2,7 +2,7 @@ module ietf-yp-transport-capabilities { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-yp-transport-capabilities"; - prefix ntc; + prefix yptc; import ietf-subscribed-notifications { prefix sn; @@ -38,7 +38,7 @@ module ietf-yp-transport-capabilities { Qiufang Ma Alex Huang Feng - + Thomas Graf "; description @@ -66,7 +66,7 @@ module ietf-yp-transport-capabilities { (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices."; - revision 2026-05-15 { + revision 2026-08-13 { description "Initial revision."; reference @@ -85,7 +85,7 @@ module ietf-yp-transport-capabilities { and thus it is NOT RECOMMENDED to enable this feature."; reference "RFC 6347: The Datagram Transport Layer Security (DTLS) - Protocol Version 1.2."; + Protocol Version 1.2."; } identity dtls13 { @@ -94,7 +94,7 @@ module ietf-yp-transport-capabilities { "Indicates DTLS Protocol Version 1.3."; reference "RFC 9147: The Datagram Transport Layer Security (DTLS) - Protocol Version 1.3."; + Protocol Version 1.3."; } augment "/sysc:system-capabilities" @@ -108,17 +108,17 @@ module ietf-yp-transport-capabilities { key "transport-protocol"; description "Indicates supported YANG notifications transport protocol - for Subscribed Notifications [RFC8639] and YANG-Push - [RFC8641]. Defines the supported transports, security - protocols and supported notification encodings."; + for Subscribed Notifications [RFC8639] and YANG-Push + [RFC8641]. Defines the supported transports, security + protocols and supported notification encodings."; leaf transport-protocol { type identityref { base sn:transport; } description "Indicates the supported YANG notifications transport - protocol for Subscribed Notifications [RFC8639] and - YANG-Push [RFC8641]."; + protocol for Subscribed Notifications [RFC8639] and + YANG-Push [RFC8641]."; } leaf-list security-protocol { type union { @@ -131,14 +131,15 @@ module ietf-yp-transport-capabilities { } description "Indicates the supported YANG notifications transport - encryption protocols."; + encryption protocols."; } leaf-list encoding-format { type identityref { base sn:encoding; } description - "Indicates supported encoding formats for YANG notifications."; + "Indicates supported encoding formats for YANG + notifications."; } } } diff --git a/standard/iana/iana-sip-option-tags@2026-08-17.yang b/standard/iana/iana-sip-option-tags@2026-08-17.yang new file mode 100644 index 000000000..edb80394b --- /dev/null +++ b/standard/iana/iana-sip-option-tags@2026-08-17.yang @@ -0,0 +1,466 @@ +module iana-sip-option-tags { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-sip-option-tags"; + prefix iana-sip-option-tags; + + organization + "Internet Assigned Numbers Authority (IANA)"; + + contact + "Internet Assigned Numbers Authority + + ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094 + + Tel: +1 424 254 5300 + + "; + + description + "This YANG module translates IANA registry SIP 'Option Tags' + to YANG derived types. + + 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). + + The initial version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices. + + The latest version of this YANG module is available at + . + + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; + + reference + "Session Initiation Protocol (SIP) Parameters + "; + + revision 2026-08-17 { + description + "Initial revision."; + reference + "RFC 10006: Automatic Peering for SIP Trunks."; + } + + typedef sip-option-tag { + type enumeration { + enum one-hundred-rel { + description + "This option tag is for reliability of provisional + responses. When present in a Supported header, it + indicates that the UA can send or receive reliable + provisional responses. When present in a Require header + in a request it indicates that the UAS MUST send all + provisional responses reliably. When present in a Require + header in a reliable provisional response, it indicates + that the response is to be sent reliably."; + reference + "RFC 3262: Reliability of Provisional Responses in the + Session Initiation Protocol (SIP)."; + } + + enum one-nine-nine { + description + "This option-tag is for indicating support of the 199 Early + Dialog Terminated provisional response code. When present + in a Supported header of a request, it indicates that the + UAC supports the 199 response code. When present in a Require + or Proxy-Require header field of a request, it indicates that + the UAS, or proxies, MUST support the 199 response code. It + does not require the UAS, or proxies, to actually + send 199 responses."; + reference + "RFC 6228: Session Initiation Protocol (SIP) Response Code + for Indication of Terminated Dialog."; + } + + enum answermode { + description + "This option tag is for support of the Answer-Mode + and Priv-Answer-Mode extensions used to negotiate + automatic or manual answering of a request."; + reference + "RFC 5373: Requesting Answering Modes for the Session + Initiation Protocol (SIP)."; + } + + enum early-session { + description + "A UA adding the early-session option tag to a message + indicates that it understands the early-session content + disposition."; + reference + "RFC 3959: The Early Session Disposition Type for the Session + Initiation Protocol (SIP)."; + } + + enum eventlist { + description + "Extension to allow subscriptions to lists of resources."; + reference + "RFC 4662: A Session Initiation Protocol (SIP) Event + Notification Extension for Resource Lists."; + } + + enum explicitsub { + description + "This option tag identifies an extension to REFER to + suppress the implicit subscription and provide a URI + for an explicit subscription."; + reference + "RFC 7614: Explicit Subscriptions for the REFER Method."; + } + + enum from-change { + description + "This option tag is used to indicate that a UA supports + changes to URIs in From and To header fields during a + dialog."; + reference + "RFC 4916: Connected Identity in the Session Initiation + Protocol (SIP)."; + } + + enum geolocation-http { + description + "The geolocation-http option tag signals support for + acquiring location information via HTTP. A location + recipient who supports this option can request location + with an HTTP GET and parse a resulting 200 response + containing a PIDF-LO object. The URI schemes supported + by this option include http and https."; + reference + "RFC 6442: Location Conveyance for the Session Initiation + Protocol."; + } + + enum geolocation-sip { + description + "The geolocation-sip option tag signals support for + acquiring location information via the presence event + package of SIP. A location recipient who supports this + option can send a SUBSCRIBE request and parse a + resulting NOTIFY containing a PIDF-LO object. The URI + schemes supported by this option include sip, sips, and + pres."; + reference + "RFC 6442: Location Conveyance for the Session Initiation + Protocol."; + } + + enum gin { + description + "This option tag is used to identify the extension that + provides Registration for Multiple Phone Numbers in + SIP. When present in a Require or Proxy-Require header + field of a REGISTER request, it indicates that support + for this extension is required of registrars and + proxies that are a party to the registration + transaction."; + reference + "RFC 6140: Registration for Multiple Phone Numbers in the + Session Initiation Protocol (SIP)."; + } + + enum gruu { + description + "This option tag is used to identify the Globally + Routable User Agent URI extension. When used in a + Supported header, it indicates that a User Agent + understands the extension. When used in a Require + header field of a REGISTER request, it indicates that + the registrar is not expected to process the + registration unless it supports the extension."; + reference + "RFC 5627: Obtaining and Using Globally Routable User Agent + URIs (GRUUs) in the Session Initiation Protocol (SIP)."; + } + + enum histinfo { + description + "When used with the Supported header field, this option + tag indicates the UAC supports History Information to + be captured for requests and returned in subsequent + responses. This tag is not used in a Proxy-Require or + Require header field, since support of History-Info is + optional."; + reference + "RFC 7044: An Extension to the Session Initiation Protocol + (SIP) for Request History Information."; + } + + enum ice { + description + "This option tag is used to identify the Interactive + Connectivity Establishment extension. When present in + a Require header field, it indicates that ICE is + required by an agent."; + reference + "RFC 5768: Indicating Support for Interactive Connectivity + Establishment (ICE) in the Session Initiation Protocol + (SIP)."; + } + + enum join { + description + "Support for the SIP Join header."; + reference + "RFC 3911: The Session Initiation Protocol (SIP) 'Join' + Header."; + } + + enum multiple-refer { + description + "This option tag indicates support for REFER requests + that contain a resource list document describing + multiple REFER targets."; + reference + "RFC 5368: Referring to Multiple Resources in the Session + Initiation Protocol (SIP)."; + } + + enum norefersub { + description + "This option tag specifies a User Agent ability of + accepting a REFER request without establishing an + implicit subscription compared to the default case."; + reference + "RFC 4488: Suppression of Session Initiation Protocol (SIP) + REFER Method Implicit Subscription."; + } + + enum nosub { + description + "This option tag identifies an extension to REFER to + suppress the implicit subscription and indicate that + no explicit subscription is forthcoming."; + reference + "RFC 7614: Explicit Subscriptions for the REFER Method."; + } + + enum outbound { + description + "This option tag is used to identify UAs and Registrars + which support extensions for Client Initiated + Connections. A UA places this option tag in a Supported + header to communicate its support. A Registrar places + this option tag in a Require header to indicate that + the Registrar used registrations based on this + extension."; + reference + "RFC 5626: Managing Client-Initiated Connections in the + Session Initiation Protocol (SIP)."; + } + + enum path { + description + "A SIP UA that supports the Path extension header field + includes this option tag in a Supported header field in + all requests it generates. Intermediate proxies may + use this option tag in a REGISTER request to determine + whether to offer Path service. If required, the option + tag is included in a Require header field."; + reference + "RFC 3327: Session Initiation Protocol (SIP) Extension Header + Field for Registering Non-Adjacent Contacts."; + } + + enum policy { + description + "This option tag is used to indicate that a UA can + process policy server URIs and subscribe to + session-specific policies."; + reference + "RFC 6794: A Framework for Session Initiation Protocol (SIP) + Session Policies."; + } + + enum precondition { + description + "An offerer MUST include this tag in the Require header + field if the offer contains one or more mandatory + strength-tags. If all strength-tags are optional or + none, the tag MUST be included in Supported or + Require."; + reference + "RFC 3312: Integration of Resource Management and Session + Initiation Protocol (SIP)."; + } + + enum pref { + description + "This option tag is used to ensure that a server + understands the callee capabilities parameters used in + the request."; + reference + "RFC 3840: Indicating User Agent Capabilities in the Session + Initiation Protocol (SIP)."; + } + + enum privacy { + description + "This option tag indicates support for the Privacy + mechanism. When used in the Proxy-Require header, it + indicates that proxy servers do not forward the + request unless they can provide the requested privacy + service. Proxies remove this option tag after the + privacy function has been performed."; + reference + "RFC 3323: A Privacy Mechanism for the Session Initiation + Protocol (SIP)."; + } + + enum recipient-list-invite { + description + "The body contains a list of URIs that indicates the + recipients of the SIP INVITE request."; + reference + "RFC 5366: Conference Establishment Using Request-Contained + Lists in the Session Initiation Protocol (SIP)."; + } + + enum recipient-list-message { + description + "The body contains a list of URIs that indicates the + recipients of the SIP MESSAGE request."; + reference + "RFC 5365: Multiple-Recipient MESSAGE Requests in the Session + Initiation Protocol (SIP)."; + } + + enum recipient-list-subscribe { + description + "This option tag is used to ensure that a server can + process the recipient-list body used in a SUBSCRIBE + request."; + reference + "RFC 5367: Subscriptions to Request-Contained Resource Lists + in the Session Initiation Protocol (SIP)."; + } + + enum record-aware { + description + "This option tag indicates the ability of the UA to + receive recording indicators in media-level or + session-level SDP. When present in a Supported header, + it indicates that the UA can receive such indicators."; + reference + "RFC 7866: Session Recording Protocol."; + } + + enum replaces { + description + "This option tag indicates support for the SIP Replaces + header."; + reference + "RFC 3891: The Session Initiation Protocol (SIP) 'Replaces' + Header."; + } + + enum resource-priority { + description + "Indicates or requests support for the resource + priority mechanism."; + reference + "RFC 4412: Communications Resource Priority for the Session + Initiation Protocol (SIP)."; + } + + enum sdp-anat { + description + "The sdp-anat option tag is defined for use in Require + and Supported SIP header fields. User agents that place + this option tag in a Supported header understand the + ANAT semantics."; + reference + "RFC 4092: Usage of the Session Description Protocol (SDP) + Alternative Network Address Types (ANAT) Semantics in the + Session Initiation Protocol (SIP)."; + } + + enum sec-agree { + description + "This option tag indicates support for the Security + Agreement mechanism. When used in Require or + Proxy-Require headers, it indicates proxies are + required to use the mechanism. When used in Supported, + it indicates UAC support. When used in Require headers + in responses, it indicates mandatory use."; + reference + "RFC 3329: Security Mechanism Agreement for the Session + Initiation Protocol (SIP)."; + } + + enum siprec { + description + "This option tag identifies that the SIP session is for + the purpose of a recording session. When present in a + Require header, it indicates that the UA is capable of + handling such a session."; + reference + "RFC 7866: Session Recording Protocol."; + } + + enum tdialog { + description + "This option tag identifies the Target-Dialog header + field extension. When used in Require, the recipient + must support it. When used in Supported, the sender + supports it."; + reference + "RFC 4538: Request Authorization through Dialog Identification + in the Session Initiation Protocol (SIP)."; + } + + enum timer { + description + "This option tag indicates support for the session timer + extension. Inclusion in Supported indicates refresh + capability. Inclusion in Require indicates mandatory + support for processing."; + reference + "RFC 4028: Session Timers in the Session Initiation Protocol + (SIP)."; + } + + enum trickle-ice { + description + "This option tag indicates that a UA supports and + understands Trickle ICE."; + reference + "RFC 8840: A Session Initiation Protocol (SIP) Usage for + Incremental Provisioning of Candidates for the Interactive + Connectivity Establishment (Trickle ICE)."; + } + + enum uui { + description + "This option tag indicates that a UA supports and + understands the User-to-User header field."; + reference + "RFC 7433: A Mechanism for Transporting User-to-User Call + Control Information in SIP."; + } + } + description + "This enumeration type defines mnemonic names of SIP Option + tags."; + reference + "RFC 3261: SIP: Session Initiation Protocol, + RFC 5727: Change Process for the Session Initiation + Protocol (SIP) and the Real-time Applications + and Infrastructure Area"; + } +} diff --git a/standard/iana/yang-parameters.xml b/standard/iana/yang-parameters.xml index b0e51ae39..2da33a08e 100644 --- a/standard/iana/yang-parameters.xml +++ b/standard/iana/yang-parameters.xml @@ -252,16 +252,15 @@ directly added to the iana-routing-types YANG module. They must instead be respectively added to the Address Family Numbers and Subsequent Address Family Identifiers (SAFI) Parameters registries. - + iana-sip-option-tags Y - + iana-sip-option-tags@2026-08-17.yang urn:ietf:params:xml:ns:yang:iana-sip-option-tags sip-option-tags - + - 's module file will be posted upon the document's publication as an RFC. New values must not be directly added to the "iana-sip-option-tags" YANG module. They must instead be added to the Option Tags registry. @@ -2328,17 +2327,15 @@ and Subsequent Address Family Identi - + ietf-sip-auto-peering N - + ietf-sip-auto-peering@2026-06-15.yang urn:ietf:params:xml:ns:yang:ietf-sip-auto-peering sipap - - - 's module file will be posted upon the document's publication as an RFC. - + + ietf-snmp