Skip to main content

A YANG Data Model for OSPF Application-Specific Link Attributes and Flexible Algorithm
draft-ietf-lsr-ospf-flex-algo-yang-16

Document Type Active Internet-Draft (lsr WG)
Authors Yingzhen Qu , Acee Lindem
Last updated 2026-09-09 (Latest revision 2026-07-21)
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Yang Validation 0 errors, 0 warnings
Reviews
Additional resources Mailing list discussion
Stream WG state Submitted to IESG for Publication
Associated WG milestone
Nov 2026
YANG Data Model for OSPF Application-Specific Link Attributes and Flexible Algorithm
Document shepherd Christian Hopps
Shepherd write-up Show Last changed 2026-02-03
IESG IESG state RFC Ed Queue
Action Holders
(None)
Consensus boilerplate Yes
Telechat date (None)
Responsible AD Gunter Van de Velde
Send notices to chopps@chopps.org
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
IANA expert review state Expert Reviews OK
RFC Editor RFC Editor status Awaiting First editor
Details
draft-ietf-lsr-ospf-flex-algo-yang-16
Internet                                                           Y. Qu
Internet-Draft                                    Futurewei Technologies
Updates: 8665, 9350, 9843 (if approved)                        A. Lindem
Intended status: Standards Track                            Arrcus, Inc.
Expires: 22 January 2027                                    21 July 2026

  A YANG Data Model for OSPF Application-Specific Link Attributes and
                           Flexible Algorithm
                 draft-ietf-lsr-ospf-flex-algo-yang-16

Abstract

   This document defines a YANG data model to support OSPF Application-
   Specific Link Attributes and Flexible Algorithm.  It also creates the
   initial version of IANA-maintained YANG modules for IGP Algorithm
   Types, IGP Metric-Types, and IGP Link Attribute Applications.

   This document updates RFCs 8665, 9350, and 9843.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 22 January 2027.

Copyright Notice

   Copyright (c) 2026 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

Qu & Lindem              Expires 22 January 2027                [Page 1]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  YANG Module for OSPF Application-Specific Link Attributes . .   3
   3.  YANG Module for OSPF Flexible Algorithm . . . . . . . . . . .  12
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .  32
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  33
     5.1.  Registering YANG Modules  . . . . . . . . . . . . . . . .  33
     5.2.  Updates to Existing IANA Registries . . . . . . . . . . .  35
       5.2.1.  IGP Algorithm Types registry  . . . . . . . . . . . .  35
       5.2.2.  IGP Metric-Type registry  . . . . . . . . . . . . . .  36
     5.3.  IANA IGP Algorithm Types Module . . . . . . . . . . . . .  37
     5.4.  IANA IGP Metric-Type Module . . . . . . . . . . . . . . .  37
     5.5.  IANA IGP Link Attribute Applications Module . . . . . . .  38
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  39
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  39
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  39
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  41
   Appendix A.  Example OSPF Flex-Algo Configuration (XML) . . . . .  42
   Appendix B.  Example OSPF Flex-Algo Configuration (JSON)  . . . .  43
   Appendix C.  IANA IGP Algorithm Types Module  . . . . . . . . . .  44
   Appendix D.  IANA IGP Metric Types Module . . . . . . . . . . . .  47
   Appendix E.  IANA IGP Link Attribute Applications Module  . . . .  49
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  52

1.  Overview

   This document defines YANG [RFC7950] data modules augmenting the IETF
   OSPF YANG model [RFC9129], which itself augments the IETF Routing
   model [RFC8349], to provide support for both OSPF Flexible Algorithm
   as defined in [RFC9350] and OSPF Application-Specific Link Attributes
   as defined in [RFC9492].

Qu & Lindem              Expires 22 January 2027                [Page 2]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   There are three IANA-maintained YANG modules defined in this document
   as well.  The first is the initial version of the IANA-maintained
   YANG module for IGP Algorithm Types.  The second module is the
   initial version of the IANA-maintained YANG module for IGP Metric-
   Type.  The third module is the initial version of the IANA-maintained
   YANG module for IGP Link Attribute Application types.

   This document updates [RFC8665], [RFC9350], and [RFC9843].

   The meanings of the symbols in the YANG tree diagrams are defined in
   [RFC8340].

1.1.  Requirements Language

   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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.  YANG Module for OSPF Application-Specific Link Attributes

   This document defines a YANG module for OSPF Application-Specific
   Link Attributes (ASLA) as defined in [RFC9492].  It augments the base
   OSPF YANG model defined in [RFC9129] with both configuration and
   operational state in OSPFv2 and OSPFv3.

   The module augments OSPF router configuration with support for the
   ASLA operation mode, enabling interoperability during the transition
   from legacy advertisements to ASLA.  The advertisement mode is
   configured per application: by default, RSVP-TE uses "legacy" mode,
   while LFA and SR-Policy use "app-specific" mode.  These configuration
   knobs control whether legacy attributes, application-specific
   attributes, or both are advertised for a given application.  At
   present, only the legacy attributes defined in [RFC9129] are
   supported; additional attributes will be included in these TLVs when
   the augmentations for the corresponding legacy attributes are added.

   The OSPF interfaces are augmented with ASLA configuration.

   In addition, both OSPFv2 and OSPFv3 link state database LSAs are
   augmented to include the TLVs defined in [RFC9492].

   This YANG module references [RFC8349], [RFC9129], [RFC9350],
   [RFC9492], and [RFC9587].

Qu & Lindem              Expires 22 January 2027                [Page 3]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   module: ietf-ospf-link-attr

     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf:
       +--rw ospf-link-attr
          +--rw rsvp-te-advertise?     attr-advertise-mode
          +--rw lfa-advertise?         attr-advertise-mode
          +--rw sr-policy-advertise?   attr-advertise-mode
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:interfaces/ospf:interface:
       +--rw ospf-asla
          +--rw interface-asla* [link-attr-app]
             +--rw link-attr-app
             |       iana-link-attr-apps:igp-link-attr-app
             +--rw te-metric?       te-types:te-metric
             +--rw admin-group?     te-types:admin-group
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
               /ospf:extended-link-opaque/ospf:extended-link-tlv:
       +--ro app-specific-link-attr-sub-tlvs
          +--ro asla-sub-tlv* []
             +--ro sabm
             |  +--ro sabm-bit*
             |          iana-link-attr-apps:igp-link-attr-app
             +--ro udabm
             +--ro link-attributes-sub-tlvs
                +--ro te-metric?      te-types:te-metric
                +--ro admin-group?    te-types:admin-group
                +--ro unknown-tlvs
                   +--ro unknown-tlv* []
                      +--ro type?     uint16
                      +--ro length?   uint16
                      +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv3/ospf:ospfv3/ospf:body
               /ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs
               /ospfv3-e-lsa:link-tlv:
       +--ro app-specific-link-attr-sub-tlvs
          +--ro asla-sub-tlv* []
             +--ro sabm
             |  +--ro sabm-bit*

Qu & Lindem              Expires 22 January 2027                [Page 4]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             |          iana-link-attr-apps:igp-link-attr-app
             +--ro udabm
             +--ro link-attributes-sub-tlvs
                +--ro te-metric?      te-types:te-metric
                +--ro admin-group?    te-types:admin-group
                +--ro unknown-tlvs
                   +--ro unknown-tlv* []
                      +--ro type?     uint16
                      +--ro length?   uint16
                      +--ro value?    yang:hex-string

   <CODE BEGINS> file "ietf-ospf-link-attr@2026-07-09.yang"
   module ietf-ospf-link-attr {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-link-attr";
     prefix ospf-link-attr;

     import ietf-routing {
       prefix rt;
       reference
         "RFC 8349: A YANG Data Model for Routing
                    Management (NMDA Version)";
     }
     import ietf-te-types {
       prefix te-types;
       reference
         "RFC 8776: Common YANG Data Types for Traffic Engineering.";
     }
     import ietf-ospf {
       prefix ospf;
       reference
         "RFC 9129: YANG Data Model for the OSPF Protocol";
     }
     import ietf-ospfv3-extended-lsa {
       prefix ospfv3-e-lsa;
       reference
         "RFC 9587: YANG Data Model for OSPFv3 Extended Link
                    State Advertisements (LSAs)";
     }
     import iana-igp-link-attr-apps {
       prefix iana-link-attr-apps;
       reference
         "RFC XXXX: YANG Data Model for OSPF Application-Specific
                    Link Attributes and Flexible Algorithm";
     }

     organization
       "IETF LSR - Link State Routing Working Group";

Qu & Lindem              Expires 22 January 2027                [Page 5]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

     contact
       "WG Web:   <https://datatracker.ietf.org/wg/lsr/>
        WG List:  <mailto:lsr@ietf.org>

        Author:   Yingzhen Qu
                  <mailto:yingzhen.ietf@gmail.com>
        Author:   Acee Lindem
                  <mailto:acee.ietf@gmail.com>
       ";
     description
       "This YANG module defines the configuration and operational
        state for OSPF application specific link attributes feature
        as defined in RFC 9492.

        Copyright (c) 2026 IETF Trust and the persons identified as
        authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject to
        the license terms contained in, the Revised BSD License set
        forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (https://trustee.ietf.org/license-info).

        All revisions of IETF and IANA published modules can be found
        at the YANG Parameters registry group
        (https://www.iana.org/assignments/yang-parameters).

        This version of this YANG module is part of RFC XXXX;
        see the RFC itself for full legal notices.

         The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
        NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
        'MAY', and 'OPTIONAL' in this document are to be interpreted as
        described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
        they appear in all capitals, as shown here.";

     revision 2026-07-09 {
       description
         "Initial version";
       reference
         "RFC XXXX: A YANG Data Model for OSPF Application-Specific
                    Link Attributes and Flexible Algorithm";
     }

     typedef attr-advertise-mode {
       type enumeration {
         enum legacy {

Qu & Lindem              Expires 22 January 2027                [Page 6]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

           value 0;
           description
             "Only send legacy advertisements, and no ASLA
              advertisement. Legacy advertisements will be
              used for the application.";
           reference
             "RFC9492: OSPF Application-Specific Attributes,
              Section 12.3.3";
         }
         enum transition {
           value 1;
           description
             "Send both application-specific and legacy
              advertisements. Both application-specific and
              legacy attribute advertisements will be used
              by the application with advertised legacy attributes
              taking precedence.";
           reference
             "RFC9492: OSPF Application-Specific Attributes,
              Section 12.3.3";
         }
         enum app-specific {
           value 2;
           description
             "Application-specific advertisements are advertised
              exclusively except for RSVP-TE in certain situations.
              Refer to the reference for the specific rules.";
           reference
             "RFC9492: OSPF Application-Specific Attributes,
              Section 12.3.3 and Section 12.3.4.";
         }
       }
       description
         "Link attributes operation mode.";
       reference
         "RFC 9492 - OSPF Application-Specific Link Attributes,
          Section 12.3.";
     }

     grouping ospf-te-link-attrs {
       description
         "OSPF Application-Specific Link Attributes (ASLA)
          inherited from the base OSPF TE attributes";
       leaf te-metric {
         type te-types:te-metric;
         description
           "TE metric.";
         reference

Qu & Lindem              Expires 22 January 2027                [Page 7]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

           "RFC 3630 - Traffic Engineering (TE) Extensions
            to OSPFv2";
       }
       leaf admin-group {
         type te-types:admin-group;
         description
           "Administrative Group / Resource Class/Color.";
         reference
           "RFC 3630 - Traffic Engineering (TE) Extensions
            to OSPFv2";
       }
       reference
         "RFC 3630 - Traffic Engineering (TE) Extensions
          to OSPFv2";
     }

     grouping app-specific-link-attr-sub-tlvs {
       description
         "OSPF Application-Specific Link Attributes (ASLA) sub-TLV.
          The ASLA sub-TLV is a sub-TLV of the OSPFv2 Extended Link
          TLV (RFC7684) and OSPFv3 Router-Link TLV (RFC8362).";
       container app-specific-link-attr-sub-tlvs {
         description
           "Application-Specific Link Attributes sub-TLV.";
         list asla-sub-tlv {
           container sabm {
             leaf-list sabm-bit {
               type iana-link-attr-apps:igp-link-attr-app;
               description
                 "Standard Application Identifier Bit Mask bits. This
                  leaf-list contains enums for the bits which are
                  set to 1 in the SABM field.";
             }
             description
               "Standard Application Identifier Bit Mask.";
             reference
               "RFC 9492: OSPF Application-Specific Link Attributes,
                Section 5";
           }
           container udabm {
             description
               "User Defined Application Identifier Bit Mask (UDABM).
                This container is intended to be augmented by documents
                defining user-defined application identifiers.  Each
                such augmentation SHOULD add a leaf-list of identityref
                type whose base identity represents the user-defined
                application, following the same pattern as the
                'sabm-bit' leaf-list.  Refer to RFC 9492, Section 5

Qu & Lindem              Expires 22 January 2027                [Page 8]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

                for the on-wire encoding of the UDABM field.";
             reference
               "RFC 9492: OSPF Application-Specific Link Attributes,
                Section 5";
           }
           container link-attributes-sub-tlvs {
             uses ospf-te-link-attrs;
             uses ospf:unknown-tlvs;
             description
               "Link Attributes sub-TLVs.";
           }
           description
             "List of application-Specific Link Attributes sub-TLVs.";
         }
       }
       reference
         "RFC 9492: OSPF Application-Specific Link Attributes";
     }

     /* Configuration */

     augment "/rt:routing/rt:control-plane-protocols"
           + "/rt:control-plane-protocol/ospf:ospf" {
       when "derived-from-or-self(../rt:type, 'ospf:ospfv2') or "
          + "derived-from-or-self(../rt:type, 'ospf:ospfv3')" {
         description
           "This augments the OSPF routing protocol when used.";
       }
       description
         "This augments OSPF protocol configuration
          with application-specific link attributes.";
       reference
         "RFC 9492: OSPF Application-Specific Link Attributes,
          Section 12.3";
       container ospf-link-attr {
         description
           "Configuration of application attribute advertisement
            and usage.";
         leaf rsvp-te-advertise {
           type attr-advertise-mode;
           default "legacy";
           description
             "Advertisement for RSVP-TE - The default will be
              'legacy' and RSVP-TE advertisement (e.g., OSPFv2 Opaque
              TE LSAs and OSPFv3 TE LSA will be advertised
              independent of configuration if certain attributes are
              advertised).";
           reference

Qu & Lindem              Expires 22 January 2027                [Page 9]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             "RFC 9492: OSPF Application-Specific Link Attributes,
              Section 12.3.4.";
         }
         leaf lfa-advertise {
           type attr-advertise-mode;
           default "app-specific";
           description
             "Advertisement for Link Free Alternates (LFA) - The
              default will be 'app-specific'. ASLA advertisements will
              be advertised and used by default unless specified
              otherwise.";
           reference
             "RFC 9492: OSPF Application-Specific Link Attributes,
              Section 12.3.";
         }
         leaf sr-policy-advertise {
           type attr-advertise-mode;
           default "app-specific";
           description
             "Advertisement for Segment Routing Policy (SR-Policy) -
              The default will be 'app-specific'. ASLA advertisements
              will be advertised and used by default unless specified
              otherwise.";
           reference
             "RFC 9492: OSPF Application-Specific Link Attributes,
              Section 12.3.";
         }
       }
     }

     augment "/rt:routing/rt:control-plane-protocols/"
           + "rt:control-plane-protocol/ospf:ospf/"
           + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" {
       when "derived-from-or-self(../../../../../rt:type, "
          + "'ospf:ospfv2') or "
          + "derived-from-or-self(../../../../../rt:type, "
          + "'ospf:ospfv3')" {
         description
           "This augments the OSPF interface configuration.";
       }
       description
         "This augments OSPF interface configuration
          with Application Specific Link Attributes (ASLA).";
       container ospf-asla {
         list interface-asla {
           key "link-attr-app";
           leaf link-attr-app {
             type iana-link-attr-apps:igp-link-attr-app;

Qu & Lindem              Expires 22 January 2027               [Page 10]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             description
               "Application-specific attributes. Note that
                when encoded, applications with identical
                attributes may be included in the same sub-TLV.";
           }
           uses ospf-te-link-attrs;
           description
             "ASLA interface configuration.";
         }
         description
           "Application specific link attributes configuration.";
       }
     }

     /* Database */

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/"
           + "ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/"
           + "ospf:extended-link-opaque/ospf:extended-link-tlv" {
       when "derived-from-or-self("
          + "../../../../../../../../../../../../rt:type, "
          + "'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description
         "OSPF Application-Specific Link Attributes (ASLA) sub-TLV is
          a sub-TLV of OSPFv2 Extended Link TLV (RFC7684).";
       uses app-specific-link-attr-sub-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router/"
           + "ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" {
       when "derived-from-or-self("
          + "../../../../../../../../../../../../rt:type, "
          + "'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3

Qu & Lindem              Expires 22 January 2027               [Page 11]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

            E-Router LSAs";
       }
       description
         "Augment OSPFv3 Area scope router-link TLV.";
       uses app-specific-link-attr-sub-tlvs;
     }
   }
   <CODE ENDS>

3.  YANG Module for OSPF Flexible Algorithm

   This document defines a YANG module, ietf-ospf-flex-algo, for OSPF
   Flexible Algorithm as defined in [RFC9350].  It is an augmentation of
   the OSPF base model as defined in [RFC9129].

   The module augments OSPF router configuration with support for
   flexible algorithm configuration, including metric types, calculation
   types and administrative constraints etc.  In addition, both the
   OSPFv2 and OSPFv3 link-state databases are augmented to include the
   various TLVs defined in [RFC9350].

   This YANG module references [RFC8349], [RFC9129], [RFC9350], and
   [RFC9587].

   module: ietf-ospf-flex-algo

     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf:
       +--rw ospf-flex-algo
          +--rw flex-algo* [algo-number]
             +--rw algo-number             uint8
             +--rw advertise-definition?   boolean
             +--rw admin-groups
             |       {te-types:named-extended-admin-groups}?
             |  +--rw exclude-admin-group?
             |  |       te-types:extended-admin-group
             |  +--rw include-any-admin-group?
             |  |       te-types:extended-admin-group
             |  +--rw include-all-admin-group?
             |          te-types:extended-admin-group
             +--rw exclude-srlg*           te-types:srlg
             +--rw calc-type?              iana-algo-types:algo-type
             +--rw metric-type?
             |       iana-metric-types:metric-type
             +--rw prefix-metric!
             +--rw priority?               uint8
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas

Qu & Lindem              Expires 22 January 2027               [Page 12]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

               /ospf:area/ospf:interfaces/ospf:interface
               /ospf:database/ospf:link-scope-lsa-type
               /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version
               /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
               /ospf:ri-opaque:
       +--ro fad-tlvs
          +--ro fad-tlv* []
             +--ro algo-number?            uint8
             +--ro metric-type?
             |       iana-metric-types:metric-type
             +--ro calc-type?              iana-algo-types:algo-type
             +--ro priority?               uint8
             +--ro fa-ex-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-any-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-all-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fad-flags-sub-tlv
             |  +--ro fad-flag*   identityref
             +--ro fa-ex-srlg-sub-tlv
             |  +--ro srlg*   te-types:srlg
             +--ro unknown-tlvs
                +--ro unknown-tlv* []
                   +--ro type?     uint16
                   +--ro length?   uint16
                   +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
               /ospf:ri-opaque:
       +--ro fad-tlvs
          +--ro fad-tlv* []
             +--ro algo-number?            uint8
             +--ro metric-type?
             |       iana-metric-types:metric-type
             +--ro calc-type?              iana-algo-types:algo-type
             +--ro priority?               uint8
             +--ro fa-ex-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-any-ag-sub-tlv
             |  +--ro extended-admin-group?

Qu & Lindem              Expires 22 January 2027               [Page 13]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             |          te-types:extended-admin-group
             +--ro fa-in-all-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fad-flags-sub-tlv
             |  +--ro fad-flag*   identityref
             +--ro fa-ex-srlg-sub-tlv
             |  +--ro srlg*   te-types:srlg
             +--ro unknown-tlvs
                +--ro unknown-tlv* []
                   +--ro type?     uint16
                   +--ro length?   uint16
                   +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:database
               /ospf:as-scope-lsa-type/ospf:as-scope-lsas
               /ospf:as-scope-lsa/ospf:version/ospf:ospfv2
               /ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque:
       +--ro fad-tlvs
          +--ro fad-tlv* []
             +--ro algo-number?            uint8
             +--ro metric-type?
             |       iana-metric-types:metric-type
             +--ro calc-type?              iana-algo-types:algo-type
             +--ro priority?               uint8
             +--ro fa-ex-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-any-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-all-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fad-flags-sub-tlv
             |  +--ro fad-flag*   identityref
             +--ro fa-ex-srlg-sub-tlv
             |  +--ro srlg*   te-types:srlg
             +--ro unknown-tlvs
                +--ro unknown-tlv* []
                   +--ro type?     uint16
                   +--ro length?   uint16
                   +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:interfaces/ospf:interface
               /ospf:database/ospf:link-scope-lsa-type
               /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version

Qu & Lindem              Expires 22 January 2027               [Page 14]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

               /ospf:ospfv3/ospf:ospfv3/ospf:body
               /ospf:router-information:
       +--ro fad-tlvs
          +--ro fad-tlv* []
             +--ro algo-number?            uint8
             +--ro metric-type?
             |       iana-metric-types:metric-type
             +--ro calc-type?              iana-algo-types:algo-type
             +--ro priority?               uint8
             +--ro fa-ex-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-any-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-all-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fad-flags-sub-tlv
             |  +--ro fad-flag*   identityref
             +--ro fa-ex-srlg-sub-tlv
             |  +--ro srlg*   te-types:srlg
             +--ro unknown-tlvs
                +--ro unknown-tlv* []
                   +--ro type?     uint16
                   +--ro length?   uint16
                   +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv3/ospf:ospfv3/ospf:body
               /ospf:router-information:
       +--ro fad-tlvs
          +--ro fad-tlv* []
             +--ro algo-number?            uint8
             +--ro metric-type?
             |       iana-metric-types:metric-type
             +--ro calc-type?              iana-algo-types:algo-type
             +--ro priority?               uint8
             +--ro fa-ex-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-any-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-all-ag-sub-tlv
             |  +--ro extended-admin-group?

Qu & Lindem              Expires 22 January 2027               [Page 15]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             |          te-types:extended-admin-group
             +--ro fad-flags-sub-tlv
             |  +--ro fad-flag*   identityref
             +--ro fa-ex-srlg-sub-tlv
             |  +--ro srlg*   te-types:srlg
             +--ro unknown-tlvs
                +--ro unknown-tlv* []
                   +--ro type?     uint16
                   +--ro length?   uint16
                   +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:database
               /ospf:as-scope-lsa-type/ospf:as-scope-lsas
               /ospf:as-scope-lsa/ospf:version/ospf:ospfv3
               /ospf:ospfv3/ospf:body/ospf:router-information:
       +--ro fad-tlvs
          +--ro fad-tlv* []
             +--ro algo-number?            uint8
             +--ro metric-type?
             |       iana-metric-types:metric-type
             +--ro calc-type?              iana-algo-types:algo-type
             +--ro priority?               uint8
             +--ro fa-ex-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-any-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fa-in-all-ag-sub-tlv
             |  +--ro extended-admin-group?
             |          te-types:extended-admin-group
             +--ro fad-flags-sub-tlv
             |  +--ro fad-flag*   identityref
             +--ro fa-ex-srlg-sub-tlv
             |  +--ro srlg*   te-types:srlg
             +--ro unknown-tlvs
                +--ro unknown-tlv* []
                   +--ro type?     uint16
                   +--ro length?   uint16
                   +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:interfaces/ospf:interface
               /ospf:database/ospf:link-scope-lsa-type
               /ospf:link-scope-lsas/ospf:link-scope-lsa/ospf:version
               /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
               /ospf:extended-prefix-opaque/ospf:extended-prefix-tlv:
       +--ro fapm-sub-tlvs

Qu & Lindem              Expires 22 January 2027               [Page 16]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

          +--ro fapm-sub-tlv* []
             +--ro algo-number?   uint8
             +--ro fapm-flag*     identityref
             +--ro metric?        uint32
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque
               /ospf:extended-prefix-opaque/ospf:extended-prefix-tlv:
       +--ro fapm-sub-tlvs
          +--ro fapm-sub-tlv* []
             +--ro algo-number?   uint8
             +--ro fapm-flag*     identityref
             +--ro metric?        uint32
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:database
               /ospf:as-scope-lsa-type/ospf:as-scope-lsas
               /ospf:as-scope-lsa/ospf:version/ospf:ospfv2
               /ospf:ospfv2/ospf:body/ospf:opaque
               /ospf:extended-prefix-opaque/ospf:extended-prefix-tlv:
       +--ro fapm-sub-tlvs
          +--ro fapm-sub-tlv* []
             +--ro algo-number?   uint8
             +--ro fapm-flag*     identityref
             +--ro metric?        uint32
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv3/ospf:ospfv3/ospf:body
               /ospfv3-e-lsa:e-inter-area-prefix
               /ospfv3-e-lsa:e-inter-prefix-tlvs
               /ospfv3-e-lsa:inter-prefix-tlv:
       +--ro fapm-sub-tlvs
          +--ro fapm-sub-tlv* []
             +--ro algo-number?   uint8
             +--ro fapm-flag*     identityref
             +--ro metric?        uint32
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:database
               /ospf:as-scope-lsa-type/ospf:as-scope-lsas
               /ospf:as-scope-lsa/ospf:version/ospf:ospfv3
               /ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external
               /ospfv3-e-lsa:e-external-tlvs
               /ospfv3-e-lsa:external-prefix-tlv:
       +--ro fapm-sub-tlvs
          +--ro fapm-sub-tlv* []

Qu & Lindem              Expires 22 January 2027               [Page 17]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             +--ro algo-number?   uint8
             +--ro fapm-flag*     identityref
             +--ro metric?        uint32
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque:
       +--ro eia-asbr-opaque
          +--ro eia-asbr-tlv
          |  +--ro asbr-rtr-id?     rt-types:router-id
          |  +--ro faam-sub-tlvs
          |  |  +--ro faam-sub-tlv* []
          |  |     +--ro algo-number?   uint8
          |  |     +--ro metric?        uint32
          |  +--ro unknown-tlvs
          |     +--ro unknown-tlv* []
          |        +--ro type?     uint16
          |        +--ro length?   uint16
          |        +--ro value?    yang:hex-string
          +--ro unknown-tlvs
             +--ro unknown-tlv* []
                +--ro type?     uint16
                +--ro length?   uint16
                +--ro value?    yang:hex-string
     augment /rt:routing/rt:control-plane-protocols
               /rt:control-plane-protocol/ospf:ospf/ospf:areas
               /ospf:area/ospf:database/ospf:area-scope-lsa-type
               /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
               /ospf:ospfv3/ospf:ospfv3/ospf:body
               /ospfv3-e-lsa:e-inter-area-router
               /ospfv3-e-lsa:e-inter-router-tlvs
               /ospfv3-e-lsa:inter-router-tlv:
       +--ro faam-sub-tlvs
          +--ro faam-sub-tlv* []
             +--ro algo-number?   uint8
             +--ro metric?        uint32

     notifications:
       +---n flex-algo-not-supported
          +--ro routing-protocol-name?   leafref
          +--ro algo-number?             uint8

Qu & Lindem              Expires 22 January 2027               [Page 18]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   <CODE BEGINS> file "ietf-ospf-flex-algo@2026-07-09.yang"
   module ietf-ospf-flex-algo {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-flex-algo";
     prefix ospf-flex-algo;

     import ietf-routing {
       prefix rt;
       reference
         "RFC 8349: A YANG Data Model for Routing
          Management (NMDA Version)";
     }
     import ietf-routing-types {
       prefix rt-types;
       reference
         "RFC 8294: Common YANG Data Types for the
          Routing Area";
     }
     import ietf-te-types {
       prefix te-types;
       reference
         "RFC 8776: Common YANG Data Types for Traffic Engineering.";
     }
     import ietf-ospf {
       prefix ospf;
       reference
         "RFC 9129: YANG Data Model for the OSPF
          Protocol";
     }
     import ietf-ospfv3-extended-lsa {
       prefix ospfv3-e-lsa;
       reference
         "RFC 9587: YANG Data Model for OSPFv3 Extended Link
          State Advertisements (LSAs)";
     }
     import iana-igp-algo-types {
       prefix iana-algo-types;
       reference
         "IANA IGP Algorithm Types registry,
          <https://www.iana.org/assignments/igp-parameters>.";
     }
     import iana-igp-metric-types {
       prefix iana-metric-types;
       reference
         "IANA IGP Metric-Type registry,
          <https://www.iana.org/assignments/igp-parameters>.";
     }

Qu & Lindem              Expires 22 January 2027               [Page 19]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

     organization
       "IETF LSR - Link State Routing Working Group";
     contact
       "WG Web:   <https://datatracker.ietf.org/wg/lsr/>
        WG List:  <mailto:lsr@ietf.org>

        Author:    Yingzhen Qu
                   <mailto:yingzhen.ietf@gmail.com>
        Author:    Acee Lindem
                   <mailto:acee.ietf@gmail.com>
       ";
     description
       "The YANG module defines the configuration and operational
        state for OSPF Flexible Algorithm as defined in RFC 9350.

        Copyright (c) 2026 IETF Trust and the persons identified as
        authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject
        to the license terms contained in, the Revised BSD License set
        forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (https://trustee.ietf.org/license-info).

        All revisions of IETF and IANA published modules can be found
        at the YANG Parameters registry group
        (https://www.iana.org/assignments/yang-parameters).

        This version of this YANG module is part of RFC XXXX;
        see the RFC itself for full legal notices.

        The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
        NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
        'MAY', and 'OPTIONAL' in this document are to be interpreted as
        described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
        they appear in all capitals, as shown here.";

     revision 2026-07-09 {
       description
         "Initial Version";
       reference
         "RFC XXXX: A YANG Data Model for OSPF Application-Specific
                    Link Attributes and Flexible Algorithm";
     }

     /* Identities */

Qu & Lindem              Expires 22 January 2027               [Page 20]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

     identity fad-flags {
       description
         "Base identity for OSPF FAD flags.";
       reference
         "RFC 9350: IGP Flexible Algorithm, Section 7";
     }

     identity m-flag {
       base fad-flags;
       description
         "M-flag in the Flex-Algorithm Definition (FAD) flags sub-TLV.
          When this flag is present in the fad-flags leaf-list, the
          Flex-Algorithm-specific prefix metric is used for inter-area
          and external prefix calculation.  Note that this flag is not
          applicable to prefixes advertised as SRv6 locators.";
       reference
         "RFC 9350: IGP Flexible Algorithm, Section 7.4";
     }

     identity fapm-flags {
       description
         "Base identity for OSPF flex-algo prefix metric flags.";
       reference
         "RFC 9350: IGP Flexible Algorithm";
     }

     identity e-bit {
       base fapm-flags;
       description
         "External metric, if set, the metric specified is a
          type 2 external metric.";
       reference
         "RFC 9350: IGP Flexible Algorithm";
     }

     /* Groupings */

     grouping fad-tlvs {
       container fad-tlvs {
         list fad-tlv {
           leaf algo-number {
             type uint8;
             description
               "Flex-algo number - A value not in the inclusive range
                of 128-255 is an invalid FAD TLV specification. There
                should only be a single FAD TLV per algorithm number.";
           }
           leaf metric-type {

Qu & Lindem              Expires 22 January 2027               [Page 21]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             type iana-metric-types:metric-type;
             description
               "Type of metric to be used during the calculation.";
           }
           leaf calc-type {
             type iana-algo-types:algo-type;
             description
               "IGP algorithm types, value from 0 to 127 as
                defined under 'Interior Gateway Protocol (IGP)
                Parameter' by IANA.";
           }
           leaf priority {
             type uint8;
             description
               "Priority of the advertisement.";
           }
           container fa-ex-ag-sub-tlv {
             leaf extended-admin-group {
               type te-types:extended-admin-group;
               description
                 "Extended administrative group as defined in
                  RFC 7308.";
             }
             description
               "The flex-algo exclude admin group sub-tlv.";
           }
           container fa-in-any-ag-sub-tlv {
             leaf extended-admin-group {
               type te-types:extended-admin-group;
               description
                 "Extended administrative group as defined in
                  RFC 7308.";
             }
             description
               "The flex-algo include-any admin group sub-tlv.";
           }
           container fa-in-all-ag-sub-tlv {
             leaf extended-admin-group {
               type te-types:extended-admin-group;
               description
                 "Extended administrative group as defined in
                  RFC 7308.";
             }
             description
               "The flex-algo include-all admin group sub-tlv.";
           }
           container fad-flags-sub-tlv {
             leaf-list fad-flag {

Qu & Lindem              Expires 22 January 2027               [Page 22]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

               type identityref {
                 base fad-flags;
               }
               description
                 "Flex-algo definition flags list.";
             }
             description
               "OSPF flex-algo definition flags.";
           }
           container fa-ex-srlg-sub-tlv {
             leaf-list srlg {
               type te-types:srlg;
               description
                 "SRLG value as defined in RFC 4203.";
             }
             description
               "The flex-algo exclude SRLG sub-tlv.";
           }
           uses ospf:unknown-tlvs;
           description
             "List of flex-algo definition TLVs.";
         }
         description
           "OSPF Flexible Algorithm Definition TLV.";
       }
       description
         "OSPF Flexible Algorithm Definition (FAD) TLV.";
       reference
         "RFC 9350: IGP Flexible Algorithm";
     }

     grouping fapm-sub-tlvs {
       container fapm-sub-tlvs {
         list fapm-sub-tlv {
           leaf algo-number {
             type uint8;
             description
               "Flex-algo number - A value not in the inclusive range
                of 128-255 is an invalid FAD TLV specification.";
           }
           leaf-list fapm-flag {
             type identityref {
               base fapm-flags;
             }
             description
               "Flex-algo prefix metric flags list.";
           }
           leaf metric {

Qu & Lindem              Expires 22 January 2027               [Page 23]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             type uint32;
             description
               "Prefix metric.";
           }
           description
             "List of flex-algo prefix sub-tlvs.";
         }
         description
           "Flex-algo prefix metric sub-tlvs.";
       }
       description
         "Flexible Algorithm Prefix Metric (FAPM) sub-TLVs.";
       reference
         "RFC 9350: IGP Flexible Algorithm";
     }

     grouping faam-sub-tlvs {
       container faam-sub-tlvs {
         list faam-sub-tlv {
           leaf algo-number {
             type uint8;
             description
               "Flex-algo number - A value not in the inclusive range
                of 128-255 is an invalid FAAM Sub-TLV specification.";
           }
           leaf metric {
             type uint32;
             description
               "Prefix metric.";
           }
           description
             "List of faam sub-tlvs.";
         }
         description
           "Flexible Algorithm ASBR Metric (FAAM) Sub-TLVs.";
       }
       description
         "Flexible Algorithm ASBR Metric (FAAM) Sub-TLVs.";
       reference
         "RFC 9350: IGP Flexible Algorithm";
     }

     /* Management */

     augment "/rt:routing/rt:control-plane-protocols"
           + "/rt:control-plane-protocol/ospf:ospf" {
       when "derived-from-or-self(../rt:type, 'ospf:ospfv2') or "
          + "derived-from-or-self(../rt:type, 'ospf:ospfv3')" {

Qu & Lindem              Expires 22 January 2027               [Page 24]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

         description
           "This augments the OSPF routing protocol when used.";
       }
       description
         "This augments OSPF protocol with Flexible
          Algorithm.";
       container ospf-flex-algo {
         list flex-algo {
           key "algo-number";
           leaf algo-number {
             type uint8 {
               range "128..255";
             }
             description
               "An identifier associated with the Flexible Algorithm
                Definition.";
           }
           leaf advertise-definition {
             type boolean;
             default "true";
             description
               "Enable to advertise the flex-algo definition.";
           }
           container admin-groups {
             if-feature "te-types:named-extended-admin-groups";
             leaf exclude-admin-group {
               type te-types:extended-admin-group;
               description
                 "Exclude rule used during the flex-algo
                  path computation.";
             }
             leaf include-any-admin-group {
               type te-types:extended-admin-group;
               description
                 "The flex-algo include-any admin group. Note that the
                  presence of more than one Include-Any Extended Admin
                 Group will result in an invalid FAD TLV.";
             }
             leaf include-all-admin-group {
               type te-types:extended-admin-group;
               description
                 "The flex-algo include-all admin group. Note that the
                  presence of more than one Include-All Extended Admin
                  Group will result in an invalid FAD TLV.";
             }
             description
               "Specify links for the flex-algo path computation.";
           }

Qu & Lindem              Expires 22 January 2027               [Page 25]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

           leaf-list exclude-srlg {
             type te-types:srlg;
             description
               "Shared Risk Link Groups (SRLGs) to be excluded during
                the flex-algo path computation.";
           }
           leaf calc-type {
             type iana-algo-types:algo-type;
             description
               "Calculation-type. Value from 0-127 inclusive from the
                IANA 'IGP Algorithm Types' registry defined under the
                'Interior Gateway Protocol (IGP) Parameters' registry.";
           }
           leaf metric-type {
             type iana-metric-types:metric-type;
             description
               "Type of metric to be used during the calculation.";
           }
           container prefix-metric {
             presence "Use flex-algo specific prefix metric.";
             description
               "Use flex-algo prefix metric.";
           }
           leaf priority {
             type uint8;
             description
               "Priority of the advertisement.";
           }
           description
             "List of flex-algo configurations.";
         }
         description
           "Flexible Algorithm configuration.";
       }
     }

     /* Database */

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/ospf:area/"
           + "ospf:interfaces/ospf:interface/ospf:database/"
           + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
           + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
       when "derived-from-or-self(../../../../../../../../../../../.."
          + "/../rt:type, 'ospf:ospfv2')" {
         description

Qu & Lindem              Expires 22 January 2027               [Page 26]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

           "This augmentation is only valid for OSPFv2.";
       }
       description
         "Flex-algo definition TLVs for OSPFv2 type 9 opaque RI LSA.";
       uses fad-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/"
           + "ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
       when "derived-from-or-self(../../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description
         "Flex-algo definition TLVs for OSPFv2 type 10 opaque RI LSA.";
       uses fad-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:database/"
           + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
           + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/ospf:ri-opaque" {
       when "derived-from-or-self(../../../../../../../../../rt:type,"
          + " 'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description
         "Flex-algo definition TLVs for OSPFv2 type 11 opaque RI LSA.";
       uses fad-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/ospf:area/"
           + "ospf:interfaces/ospf:interface/ospf:database/"
           + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
           + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospf:router-information" {
       when "derived-from-or-self(../../../../../../../../../../../.."

Qu & Lindem              Expires 22 January 2027               [Page 27]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

          + "/rt:type, 'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3.";
       }
       description
         "Flex-algo definition TLVs for OSPFv3 Router
          Information (RI) LSA.";
       uses fad-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/"
           + "ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospf:router-information" {
       when "derived-from-or-self(../../../../../../../../../../"
          + "rt:type, 'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3.";
       }
       description
         "Flex-algo definition TLVs for OSPFv3 Router
          Information (RI) LSA.";
       uses fad-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:database/"
           + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
           + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospf:router-information" {
       when "derived-from-or-self(../../../../../../../../rt:type, "
          + "'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3.";
       }
       description
         "Flex-algo definition TLVs for OSPFv3 Router Information LSA.";
       uses fad-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/ospf:area/"
           + "ospf:interfaces/ospf:interface/ospf:database/"

Qu & Lindem              Expires 22 January 2027               [Page 28]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

           + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
           + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/"
           + "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" {
       when "derived-from-or-self(../../../../../../../../../../../.."
          + "/../../rt:type, 'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description
         "Flex-algo prefix metric sub-TLVs for OSPFv2 extended
          prefix TLV in type 9 opaque LSA.";
       uses fapm-sub-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/"
           + "ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/"
           + "ospf:extended-prefix-opaque/ospf:extended-prefix-tlv" {
       when "derived-from-or-self(../../../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description
         "Flex-algo prefix metric sub-TLVs for OSPFv2 extended
          prefix TLV in type 10 opaque LSA.";
       uses fapm-sub-tlvs;
     }

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:database/"
           + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
           + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque/"
           + "ospf:extended-prefix-opaque/"
           + "ospf:extended-prefix-tlv" {
       when "derived-from-or-self(../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description

Qu & Lindem              Expires 22 January 2027               [Page 29]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

         "Flex-algo prefix metric sub-TLVs for OSPFv2 extended
          prefix TLV in type 11 opaque LSA.";
       uses fapm-sub-tlvs;
     }

     /* Flex-algo prefix metric Sub-TLV in OSPFv3 Inter-Area
        Prefix TLV */

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-prefix/"
           + "ospfv3-e-lsa:e-inter-prefix-tlvs/"
           + "ospfv3-e-lsa:inter-prefix-tlv" {
       when "derived-from-or-self(../../../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3
            E-Router LSAs";
       }
       uses fapm-sub-tlvs;
       description
         "OSPFv3 Area-Scoped Inter-Area Prefix TLV.";
     }

     /* Flex-algo prefix metric Sub-TLV in OSPFv3 External Prefix TLV */

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:database/"
           + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/"
           + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-as-external/"
           + "ospfv3-e-lsa:e-external-tlvs/"
           + "ospfv3-e-lsa:external-prefix-tlv" {
       when "derived-from-or-self(../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3.";
       }
       uses fapm-sub-tlvs;
       description
         "OSPFv3 AS-Scoped External Prefix TLV.";
     }

     /* OSPFv2 Extended Inter-Area ASBR LSA */

Qu & Lindem              Expires 22 January 2027               [Page 30]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/"
           + "ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/"
           + "ospf:ospfv2/ospf:body/ospf:opaque" {
       when "derived-from-or-self(../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv2')" {
         description
           "This augmentation is only valid for OSPFv2.";
       }
       description
         "OSPFv2 Extended Inter-Area ASBR LSA in type 10
          opaque LSA.";
       container eia-asbr-opaque {
         container eia-asbr-tlv {
           leaf asbr-rtr-id {
             type rt-types:router-id;
             description
               "The OSPF Router ID of the ASBR.";
           }
           uses faam-sub-tlvs;
           uses ospf:unknown-tlvs;
           description
             "EIA-ASBR TLV, used to advertise additional attributes
              associated with the reachability of an ASBR.";
         }
         uses ospf:unknown-tlvs;
         description
           "OSPFv2 Extended Inter-Area (EIA-ASBR) opaque LSA.";
       }
     }

     /* FAAM Sub-TLV in OSPFv3 Inter-Area-Router TLV */

     augment "/rt:routing/"
           + "rt:control-plane-protocols/rt:control-plane-protocol/"
           + "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
           + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
           + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
           + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-inter-area-router/"
           + "ospfv3-e-lsa:e-inter-router-tlvs/"
           + "ospfv3-e-lsa:inter-router-tlv" {
       when "derived-from-or-self(../../../../../../../../../../../.."
          + "/rt:type, 'ospf:ospfv3')" {
         description
           "This augmentation is only valid for OSPFv3

Qu & Lindem              Expires 22 January 2027               [Page 31]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

            Inter-Area-Router TLV.";
       }
       uses faam-sub-tlvs;
       description
         "OSPFv3 Area-Scoped Inter-Area-Router TLV.";
     }

     /* Notification */

     notification flex-algo-not-supported {
       leaf routing-protocol-name {
         type leafref {
           path "/rt:routing/rt:control-plane-protocols/"
              + "rt:control-plane-protocol/rt:name";
         }
         description
           "Name of the OSPF instance.";
       }
       leaf algo-number {
         type uint8;
         description
           "Flex-algo identifier which is not supported by the OSPF
            instance. A value not in the inclusive range of 128-255
            is indicative of an invalid FAD algorithm specification.";
       }
       description
         "This notification is sent when an OSPF instance does not
          support this flex-algo.";
     }
   }
   <CODE ENDS>

4.  Security Considerations

   This section is modeled after the template described in Section 3.7.1
   of [RFC9907].

   The YANG modules defined in this document are designed to be accessed
   via YANG-based management protocols, such as NETCONF [RFC6241] and
   RESTCONF [RFC8040].  These protocols have to use a secure transport
   layer (e.g., SSH [RFC4252], TLS [I-D.ietf-tls-rfc8446bis], and QUIC
   [RFC9000]) and have to use mutual authentication.

   The Network Configuration Access Control Model (NACM) [RFC8341]
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.

Qu & Lindem              Expires 22 January 2027               [Page 32]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   There are a number of data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., "config true", which is the
   default).  All writable data nodes are likely to be reasonably
   sensitive or vulnerable in some network environments.  Write
   operations (e.g., edit-config) and delete operations to these data
   nodes without proper protection or authentication can have a negative
   effect on network operations.  The following subtrees and data nodes
   have particular sensitivities/vulnerabilities:

      /ospf:ospf/ospf-link-attr - Modification to the application-
      specific link attribute advertisement modes (rsvp-te-advertise,
      lfa-advertise, sr-policy-advertise) may result in traffic
      disruption.

      /ospf:ospf/ospf-flex-algo/flex-algo - Modification to flex-algo
      configuration could be used to mount a DoS attack.  For example,
      changing of calc-type may result in routing loops.

      /ospf:area/ospf:interfaces/ospf:interface/ospf-asla/ -
      Modification to the ASLA link attributes could result in the
      disruption or rerouting of traffic.

   Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  Specifically, the following
   subtrees and data nodes have particular sensitivities/
   vulnerabilities:

      Both module ietf-ospf-flex-algo and module ietf-ospf-link-attr
      augments base OSPF module Link State Database (LSDB) with various
      TLVs.  Knowledge of these data nodes can be used to attack other
      routers in the OSPF domain.  These attacks are documented in
      [RFC9129].

   The YANG modules defined in this document do not include any RPC or
   action operations.  Hence, there are no security considerations
   associated with these YANG constructs.

5.  IANA Considerations

5.1.  Registering YANG Modules

   This document registers URIs in the IETF XML registry [RFC3688].
   Following the format in [RFC3688], the following registrations are
   requested to be made:

Qu & Lindem              Expires 22 January 2027               [Page 33]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

      URI: urn:ietf:params:xml:ns:yang:iana-igp-algo-types
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

      URI: urn:ietf:params:xml:ns:yang:iana-igp-metric-types
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

      URI: urn:ietf:params:xml:ns:yang:iana-igp-link-attr-apps
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

      URI: urn:ietf:params:xml:ns:yang:ietf-ospf-link-attr
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

      URI: urn:ietf:params:xml:ns:yang:ietf-ospf-flex-algo
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

   This document registers the YANG modules in the YANG Module Names
   registry [RFC6020].

      name: iana-igp-algo-types
      Maintained by IANA?  Y
      namespace: urn:ietf:params:xml:ns:yang:iana-igp-algo-types
      prefix: iana-algo-types
      reference: RFC XXXX

      name: iana-igp-metric-types
      Maintained by IANA?  Y
      namespace: urn:ietf:params:xml:ns:yang:iana-igp-metric-types
      prefix: iana-metric-types
      reference: RFC XXXX

      name: iana-igp-link-attr-apps
      Maintained by IANA?  Y
      namespace: urn:ietf:params:xml:ns:yang:iana-igp-link-attr-apps
      prefix: iana-link-attr-apps
      reference: RFC XXXX

      name: ietf-ospf-link-attr
      Maintained by IANA?  N
      namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-link-attr
      prefix: ospf-link-attr
      reference: RFC XXXX

Qu & Lindem              Expires 22 January 2027               [Page 34]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

      name: ietf-ospf-flex-algo
      Maintained by IANA?  N
      namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-flex-algo
      prefix: ospf-flex-algo
      reference: RFC XXXX

5.2.  Updates to Existing IANA Registries

5.2.1.  IGP Algorithm Types registry

   IANA is requested to add a "Name" column to the "IGP Algorithm Types"
   registry [IANA-IGP-ALGO-Types] under the "Interior Gateway Protocol
   (IGP) Parameters" registry group.  The values for the "Name" column
   for existing Algorithm Types are:

    +=======+========+====================================+===========+
    | Value | Name   | Description                        | Reference |
    +=======+========+====================================+===========+
    | 0     | SPF    | Shortest Path First (SPF)          | [RFC8665] |
    |       |        | algorithm based on link metric.    |           |
    |       |        | This is the standard shortest path |           |
    |       |        | algorithm as computed by the IGP   |           |
    |       |        | protocol.  Consistent with the     |           |
    |       |        | deployed practice for link-state   |           |
    |       |        | protocols, Algorithm 0 permits any |           |
    |       |        | node to overwrite the SPF path     |           |
    |       |        | with a different path based on its |           |
    |       |        | local policy.                      |           |
    +-------+--------+------------------------------------+-----------+
    | 1     | Strict | Strict Shortest Path First (SPF)   | [RFC8665] |
    |       | SPF    | algorithm based on link metric.    |           |
    |       |        | The algorithm is identical to      |           |
    |       |        | Algorithm 0 but Algorithm 1        |           |
    |       |        | requires that all nodes along the  |           |
    |       |        | path will honor the SPF routing    |           |
    |       |        | decision.  Local policy at the     |           |
    |       |        | node claiming support for          |           |
    |       |        | Algorithm 1 MUST NOT alter the SPF |           |
    |       |        | paths computed by Algorithm 1.     |           |
    +-------+--------+------------------------------------+-----------+

                                  Table 1

   Also, IANA is requested to add this document to the "Reference" of
   the "IGP Algorithm Types" registry.

Qu & Lindem              Expires 22 January 2027               [Page 35]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

5.2.2.  IGP Metric-Type registry

   IANA is requested to add a "Name" column to the "IGP Metric-Type"
   registry [IANA-IGP-Metric-Types] under the "Interior Gateway Protocol
   (IGP) Parameters" registry group.  The values for the "Name" column
   for existing Metric Types are:

    +=======+==============+==============+==========+================+
    |Type   |Name          |Description   |Reference | Allowed in     |
    |       |              |              |          | Generic-Metric |
    +=======+==============+==============+==========+================+
    |0      |IGP Metric    |IGP Metric    |[RFC9350],| No             |
    |       |              |              |Section   |                |
    |       |              |              |5.1       |                |
    +-------+--------------+--------------+----------+----------------+
    |1      |Min           |Min           |[RFC9350],| No             |
    |       |Unidirectional|Unidirectional|Section   |                |
    |       |Link Delay    |Link Delay as |5.1       |                |
    |       |              |defined in    |          |                |
    |       |              |[RFC8570],    |          |                |
    |       |              |Section 4.2   |          |                |
    |       |              |and [RFC7471],|          |                |
    |       |              |Section 4.2   |          |                |
    +-------+--------------+--------------+----------+----------------+
    |2      |TE Default    |Traffic       |[RFC9350],| No             |
    |       |Metric        |Engineering   |Section   |                |
    |       |              |Default Metric|5.1       |                |
    |       |              |as defined in |          |                |
    |       |              |[RFC5305],    |          |                |
    |       |              |Section 3.7   |          |                |
    |       |              |and Traffic   |          |                |
    |       |              |Engineering   |          |                |
    |       |              |Metric as     |          |                |
    |       |              |defined in    |          |                |
    |       |              |[RFC3630],    |          |                |
    |       |              |Section 2.5.5 |          |                |
    +-------+--------------+--------------+----------+----------------+
    |3      |Bandwidth     |Bandwidth     |[RFC9843],| Yes            |
    |       |Metric        |Metric        |Section   |                |
    |       |              |              |5.1       |                |
    +-------+--------------+--------------+----------+----------------+
    |128-255|Reserved      |Reserved for  |[RFC9843],| Yes            |
    |       |              |User-Defined  |Section   |                |
    |       |              |Metric        |5.1       |                |
    +-------+--------------+--------------+----------+----------------+

                                  Table 2

Qu & Lindem              Expires 22 January 2027               [Page 36]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   Also, IANA is requested to add this document to the "Reference" of
   the "IGP Metric-Type" registry.

5.3.  IANA IGP Algorithm Types Module

   This document creates the initial version of the IANA-maintained
   "iana-igp-algo-types" YANG module.  The most recent version of the
   YANG module is available from the "YANG Parameters" registry
   [IANA-YANG-Parameters].

   IANA is requested to add this note to the registry:

   |  New values must not be directly added to the "iana-igp-algo-types"
   |  YANG module.  They must instead be added to the "IGP Algorithm
   |  Types" registry in the "Interior Gateway Protocol (IGP)
   |  Parameters" registry group.

   IANA is requested to add this note to [IANA-IGP-ALGO-Types]:

   |  When this registry is modified, the YANG module "iana-igp-algo-
   |  types" [IANA-YANG-Parameters] must be updated as defined in RFC
   |  XXXX.

   When a value is added to the "IGP Algorithm Types" registry, a new
   "enum" statement needs to be added to the "iana-igp-algo-types" YANG
   module.  The name of the "enum" is a lowercase version of the name as
   provided in the registry with spaces replaced with hyphens, i.e.,
   "-"s, and beginning with "algo-".  The "enum" statement should have
   the following sub-statements defined:

     "value":         Contains the decimal value of the IANA-assigned
                      value.
     "description":   Replicates the description from the registry.
     "reference":     Replicates the reference(s) from the registry
                      with the title of the document(s) added.

5.4.  IANA IGP Metric-Type Module

   This document creates the initial version of the IANA-maintained
   "iana-igp-metric-types" YANG module.  The most recent version of the
   YANG module is available from the "YANG Parameters" registry
   [IANA-YANG-Parameters].

   IANA is requested to add this note to the registry:

Qu & Lindem              Expires 22 January 2027               [Page 37]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   |  New values must not be directly added to the "iana-igp-metric-
   |  types" YANG module.  They must instead be added to the "IGP
   |  Metric-Type" registry in the "Interior Gateway Protocol (IGP)
   |  Parameters" registry group.

   IANA is requested to add this note to [IANA-IGP-Metric-Types]:

   |  When this registry is modified, the YANG module "iana-igp-metric-
   |  types" [IANA-YANG-Parameters] must be updated as defined in RFC
   |  XXXX.

   When a value is added to the "IGP Metric-Type" registry, a new "enum"
   statement needs to be added to the "iana-igp-metric-types" YANG
   module.  The name of the "enum" is a lowercase version of the name as
   provided in the registry with the spaces replaced with hyphens, i.e.,
   "-"s.  The "enum" statement should have the following sub-statements
   defined:

     "value":         Contains the decimal value of the IANA-assigned
                      value.
     "description":   Replicates the description from the registry.
     "reference":     Replicates the reference(s) from the registry
                      with the title of the document(s) added.

5.5.  IANA IGP Link Attribute Applications Module

   This document creates the initial version of the IANA-maintained
   "iana-igp-link-attr-apps" YANG module.  The most recent version of
   the YANG module is available from the "YANG Parameters" registry
   [IANA-YANG-Parameters].

   IANA is requested to add this note to the registry:

   |  New values must not be directly added to the "iana-igp-link-attr-
   |  apps" YANG module.  They must instead be added to the "Link
   |  Attribute Application Identifiers" registry in the "Interior
   |  Gateway Protocol (IGP) Parameters" registry group.

   IANA is requested to add this note to [IANA-Link-Attr-Apps]:

   |  When this registry is modified, the YANG module "iana-igp-link-
   |  attr-apps" [IANA-YANG-Parameters] must be updated as defined in
   |  RFC XXXX.

   When a value is added to the "Link Attribute Application Identifiers"
   registry, a new "enum" statement needs to be added to the "iana-igp-
   link-attr-apps" YANG module.  The name of the "enum" is a lowercase
   version of the Name field as provided in the registry with spaces

Qu & Lindem              Expires 22 January 2027               [Page 38]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   replaced with hyphens, i.e., "-"s and ending with "-app".  In order
   to form the YANG "enum", the name of the application is taken from
   the beginning the name listed in the registry, not including text in
   parenthesis.  The "enum" statement should have the following sub-
   statements defined:

     "value":         Contains the decimal value of the IANA-assigned
                      value.
     "description":   Replicates the Name text when a new value
                      is added.
     "reference":     Replicates the reference(s) from the registry
                      with the title of the document(s) added.

6.  Acknowledgements

   Thanks to Dhruv Dhody for his detailed YANG doctors review.

   Thanks to Adrian Farrel for his OPS directorate review.

   Thanks to Renato Westphal for his review and comments.

   Thanks to Med Boucadair, Ketan Talaulikar, Les Ginsberg, and Mahesh
   Jethanandani for extensive review and comments.

7.  References

7.1.  Normative References

   [IANA-IGP-ALGO-Types]
              IANA, "IGP Algorithm Types",
              <https://www.iana.org/assignments/igp-parameters>.

   [IANA-IGP-Metric-Types]
              IANA, "IGP Metric-Type",
              <https://www.iana.org/assignments/igp-parameters>.

   [IANA-Link-Attr-Apps]
              IANA, "Link Attribute Application Identifiers",
              <https://www.iana.org/assignments/igp-parameters>.

   [IANA-YANG-Parameters]
              IANA, "YANG Module Names",
              <https://www.iana.org/assignments/yang-parameters>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

Qu & Lindem              Expires 22 January 2027               [Page 39]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   [RFC3630]  Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
              (TE) Extensions to OSPF Version 2", RFC 3630,
              DOI 10.17487/RFC3630, October 2003,
              <https://www.rfc-editor.org/info/rfc3630>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC5305]  Li, T. and H. Smit, "IS-IS Extensions for Traffic
              Engineering", RFC 5305, DOI 10.17487/RFC5305, October
              2008, <https://www.rfc-editor.org/info/rfc5305>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://www.rfc-editor.org/info/rfc6020>.

   [RFC7471]  Giacalone, S., Ward, D., Drake, J., Atlas, A., and S.
              Previdi, "OSPF Traffic Engineering (TE) Metric
              Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015,
              <https://www.rfc-editor.org/info/rfc7471>.

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8349]  Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
              Routing Management (NMDA Version)", RFC 8349,
              DOI 10.17487/RFC8349, March 2018,
              <https://www.rfc-editor.org/info/rfc8349>.

   [RFC8570]  Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward,
              D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE)
              Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March
              2019, <https://www.rfc-editor.org/info/rfc8570>.

Qu & Lindem              Expires 22 January 2027               [Page 40]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   [RFC8665]  Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler,
              H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
              Extensions for Segment Routing", RFC 8665,
              DOI 10.17487/RFC8665, December 2019,
              <https://www.rfc-editor.org/info/rfc8665>.

   [RFC9129]  Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
              "YANG Data Model for the OSPF Protocol", RFC 9129,
              DOI 10.17487/RFC9129, October 2022,
              <https://www.rfc-editor.org/info/rfc9129>.

   [RFC9350]  Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
              and A. Gulko, "IGP Flexible Algorithm", RFC 9350,
              DOI 10.17487/RFC9350, February 2023,
              <https://www.rfc-editor.org/info/rfc9350>.

   [RFC9492]  Psenak, P., Ed., Ginsberg, L., Henderickx, W., Tantsura,
              J., and J. Drake, "OSPF Application-Specific Link
              Attributes", RFC 9492, DOI 10.17487/RFC9492, October 2023,
              <https://www.rfc-editor.org/info/rfc9492>.

   [RFC9587]  Lindem, A., Palani, S., and Y. Qu, "YANG Data Model for
              OSPFv3 Extended Link State Advertisements (LSAs)",
              RFC 9587, DOI 10.17487/RFC9587, June 2024,
              <https://www.rfc-editor.org/info/rfc9587>.

   [RFC9843]  Hegde, S., Britto, W., Shetty, R., Decraene, B., Psenak,
              P., and T. Li, "IGP Flexible Algorithms: Bandwidth, Delay,
              Metrics, and Constraints", RFC 9843, DOI 10.17487/RFC9843,
              September 2025, <https://www.rfc-editor.org/info/rfc9843>.

7.2.  Informative References

   [I-D.ietf-tls-rfc8446bis]
              Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", Work in Progress, Internet-Draft, draft-
              ietf-tls-rfc8446bis-14, 13 September 2025,
              <https://datatracker.ietf.org/doc/html/draft-ietf-tls-
              rfc8446bis-14>.

   [RFC4252]  Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
              Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252,
              January 2006, <https://www.rfc-editor.org/info/rfc4252>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

Qu & Lindem              Expires 22 January 2027               [Page 41]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

   [RFC8792]  Watsen, K., Auerswald, E., Farrel, A., and Q. Wu,
              "Handling Long Lines in Content of Internet-Drafts and
              RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
              <https://www.rfc-editor.org/info/rfc8792>.

   [RFC9000]  Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
              Multiplexed and Secure Transport", RFC 9000,
              DOI 10.17487/RFC9000, May 2021,
              <https://www.rfc-editor.org/info/rfc9000>.

   [RFC9907]  Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines
              for Authors and Reviewers of Documents Containing YANG
              Data Models", BCP 216, RFC 9907, DOI 10.17487/RFC9907,
              March 2026, <https://www.rfc-editor.org/info/rfc9907>.

Appendix A.  Example OSPF Flex-Algo Configuration (XML)

   The following is an example configuration for OSPF Flexible Algorithm
   using the YANG model defined in this document.

   Note: '\' line wrapping per [RFC8792].

Qu & Lindem              Expires 22 January 2027               [Page 42]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   <?xml version='1.0' encoding='UTF-8'?>
    <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
      <router-id>1.1.1.1</router-id>
      <control-plane-protocols>
        <control-plane-protocol>
          <type xmlns:ospf="urn:ietf:params:xml:ns:yang:ietf-ospf">\
            ospf:ospfv2</type>
          <name>OSPFv2</name>
             <ospf xmlns="urn:ietf:params:xml:ns:yang:ietf-ospf">
               <areas>
                 <area>
                   <area-id>0.0.0.0</area-id>
                 </area>
               </areas>
            <ospf-flex-algo xmlns="urn:ietf:params:xml:ns:yang:\
              ietf-ospf-flex-algo">
              <flex-algo>
                <algo-number>200</algo-number>
                <admin-groups>
                  <exclude-admin-group>AA:BB</exclude-admin-group>
                </admin-groups>
                <calc-type xmlns:iana-algo-types="urn:ietf:params:\
                  xml:ns:yang:iana-igp-algo-types">algo-spf</calc-type>
                <metric-type xmlns:iana-metric-types="urn:ietf:params:\
                  xml:ns:yang:iana-igp-metric-types">igp-metric\
                </metric-type>
                <prefix-metric/>
                <priority>100</priority>
              </flex-algo>
            </ospf-flex-algo>
          </ospf>
        </control-plane-protocol>
      </control-plane-protocols>
    </routing>

Appendix B.  Example OSPF Flex-Algo Configuration (JSON)

   The following is the same example configuration for OSPF Flexible
   Algorithm as in the previous section in JSON format using the YANG
   model defined in this document.

Qu & Lindem              Expires 22 January 2027               [Page 43]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   {
     "ietf-routing:routing": {
       "router-id": "1.1.1.1",
       "control-plane-protocols": {
         "control-plane-protocol": [
           {
             "type": "ietf-ospf:ospfv2",
             "name": "OSPFv2",
             "ietf-ospf:ospf": {
               "areas": {
                 "area": [
                   {
                     "area-id": "0.0.0.0"
                   }
                 ]
               },
               "ietf-ospf-flex-algo:ospf-flex-algo": {
                 "flex-algo": [
                   {
                     "algo-number": 200,
                     "admin-groups": {
                       "exclude-admin-group": "AA:BB"
                     },
                     "calc-type": "algo-spf",
                     "metric-type": "igp-metric",
                     "prefix-metric": {},
                     "priority": 100
                   }
                 ]
               }
             }
           }
         ]
       }
     }
   }

Appendix C.  IANA IGP Algorithm Types Module

   //RFC Editor: please remove the Appendix C before publication and
   replace XXXX with the RFC number that is assigned to the document.

   IANA has created a registry titled "IGP Algorithm Types" under the
   "Interior Gateway Protocol (IGP) Parameters" registry group to
   identify Algorithm Types.  Module iana-igp-algo-types is an IANA-
   maintained module, which defines the identities for the Algorithm
   Types as in the IANA "IGP Algorithm Types" registry.

Qu & Lindem              Expires 22 January 2027               [Page 44]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   This document defines the initial version of the IANA-maintained YANG
   module for Algorithm Types that mirrors the IANA "IGP Algorithm
   Types" registry [IANA-IGP-ALGO-Types].

   This YANG module references [RFC8665].

   <CODE BEGINS> file "iana-igp-algo-types@2026-07-09.yang"
   module iana-igp-algo-types {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:iana-igp-algo-types";
     prefix iana-algo-types;

     organization
       "Internet Assigned Numbers Authority (IANA)";
     contact
       "Internet Assigned Numbers Authority

        ICANN
        12025 Waterfront Drive, Suite 300
        Los Angeles, CA 90094-2536
        United States of America

        Tel:    +1 310 301 5800
         <mailto:iana@iana.org>";
     description
       "The YANG module defines the YANG data types for IANA-registered
        Interior Gateway Protocol (IGP) Algorithm Types.

        This YANG module is maintained by IANA and reflects the 'IGP
        Algorithm Types' registry.

        Copyright (c) 2026 IETF Trust and the persons identified as
        authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject to
        the license terms contained in, the Revised BSD License set
        forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (https://trustee.ietf.org/license-info).

        All revisions of IETF and IANA published modules can be found
        at the YANG Parameters registry group
        (https://www.iana.org/assignments/yang-parameters).

        This initial version of this YANG module is part of RFC XXXX
        (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
        for full legal notices.

Qu & Lindem              Expires 22 January 2027               [Page 45]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

        //RFC Ed.: replace XXXX with actual RFC number and remove
          this note

        The latest version of this YANG module is available at
        https://www.iana.org/assignments/yang-parameters.

        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
       "Interior Gateway Protocol (IGP) Parameters, IGP Algorithm Types
        (https://www.iana.org/assignments/igp-parameters/
         igp-parameters.xhtml#igp-algorithm-types)";

     revision 2026-07-09 {
       description
         "Initial Version";
       reference
         "RFC XXXX: YANG Data Model for OSPF Application-Specific
                    Link Attributes and Flexible Algorithm";
     }

     typedef algo-type {
       type enumeration {
         enum algo-spf {
           value 0;
           description
             "Shortest Path First (SPF) algorithm based on link metric.
             This is the standard shortest path algorithm as computed by
             the IGP protocol. Consistent with the deployed practice for
             link-state protocols, Algorithm 0 permits any node to
             overwrite the SPF path with a different path based on its
             local policy.";
           reference
             "RFC 8665: OSPF Extensions for Segment Routing";
         }

         enum algo-strict-spf {
           value 1;
           description
             "Strict Shortest Path First (SPF) algorithm based on
             link metric. The algorithm is identical to Algorithm 0 but
             Algorithm 1 requires that all nodes along the path will
             honor the SPF routing decision. Local policy at the node
             claiming support for Algorithm 1 MUST NOT alter the SPF

Qu & Lindem              Expires 22 January 2027               [Page 46]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

             paths computed by Algorithm 1.";
           reference
             "RFC 8665: OSPF Extensions for Segment Routing";
         }

       }
       default "algo-spf";
       description
         "IGP Algorithm Type. The algorithm types are defined in IANA
          IGP Algorithm Types registry";
     }
   }
   <CODE ENDS>

Appendix D.  IANA IGP Metric Types Module

   //RFC Editor: please remove the Appendix D before publication and
   replace XXXX with the RFC number that is assigned to the document.

   IANA has created a registry titled "IGP Metric-Type" under the
   "Interior Gateway Protocol (IGP) Parameters" registry group to
   identify Metric Types.  Module iana-igp-metric-types is an IANA-
   maintained module, which defines the identities for the Metric Types
   as in the IANA "IGP Metric-Type" registry.

   This document defines the initial version of the IANA-maintained YANG
   module for IGP metric types that mirrors the IANA "IGP Metric-Type"
   registry [IANA-IGP-Metric-Types].

   This YANG module references [RFC3630], [RFC5305], [RFC7471],
   [RFC8570], [RFC9350], and [RFC9843].

   <CODE BEGINS> file "iana-igp-metric-types@2026-07-09.yang"
   module iana-igp-metric-types {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:iana-igp-metric-types";
     prefix iana-metric-types;

     organization
       "Internet Assigned Numbers Authority (IANA)";
     contact
       "Internet Assigned Numbers Authority

        ICANN
        12025 Waterfront Drive, Suite 300
        Los Angeles, CA 90094-2536
        United States of America

Qu & Lindem              Expires 22 January 2027               [Page 47]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

        Tel:    +1 310 301 5800
         <mailto:iana@iana.org>";
     description
       "The YANG module defines the YANG data types for IANA-registered
        Interior Gateway Protocol (IGP) Metric-Types.

        This YANG module is maintained by IANA and reflects the 'IGP
        Metric-Type' registry.

        Copyright (c) 2026 IETF Trust and the persons identified as
        authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject to
        the license terms contained in, the Revised BSD License set
        forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (https://trustee.ietf.org/license-info).

        All revisions of IETF and IANA published modules can be found
        at the YANG Parameters registry group
        (https://www.iana.org/assignments/yang-parameters).

        This initial version of this YANG module is part of RFC XXXX
        (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
        for full legal notices.

        //RFC Ed.: replace XXXX with actual RFC number and remove
          this note

        The latest version of this YANG module is available at
        https://www.iana.org/assignments/yang-parameters.";

     reference
       "Interior Gateway Protocol (IGP) Parameters, IGP Metric-Type
        (https://www.iana.org/assignments/igp-parameters/
         igp-parameters.xhtml#igp-metric-type)";

     revision 2026-07-09 {
       description
         "Initial Version";
       reference
         "RFC XXXX: A YANG Data Model for OSPF Application-Specific
                    Link Attributes and Flexible Algorithm";
     }

     typedef metric-type {
       type enumeration {

Qu & Lindem              Expires 22 January 2027               [Page 48]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

         enum igp-metric {
           value 0;
           description
             "IGP Metric.";
           reference
             "RFC9350: IGP Flexible Algorithm, Section 5.1";
         }

         enum min-unidirectional-link-delay {
           value 1;
           description
             "Min Unidirectional Link Delay as defined in RFC 8570
              and RFC 7471 Section 4.2.";
           reference
             "RFC 9350: IGP Flexible Algorithm, Section 5.1";
         }

         enum te-default-metric {
           value 2;
           description
             "Traffic Engineering Default Metric as defined in RFC 5305
              Section 3.7 and Traffic Engineering Metric as defined in
              RFC3630, Section 2.5.5.";
           reference
             "RFC 9350: IGP Flexible Algorithm, Section 5.1";
         }

         enum bandwidth-metric {
           value 3;
           description
             "Bandwidth metric.";
           reference
             "RFC 9843: IGP Flexible Algorithms: Bandwidth, Delay,
              Metrics, and Constraints";
         }
       }
       default "igp-metric";
       description
         "IGP Metric-Type. The metric types
          are defined in IANA IGP Metric-Type registry.";
     }
   }
   <CODE ENDS>

Appendix E.  IANA IGP Link Attribute Applications Module

   //RFC Editor: please remove the Appendix E before publication and
   replace XXXX with the RFC number that is assigned to the document.

Qu & Lindem              Expires 22 January 2027               [Page 49]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

   IANA has created a registry titled "Link Attribute Application
   Identifiers" under the "Interior Gateway Protocol (IGP) Parameters"
   registry group to identify IGP application types with application-
   specific link attributes.  Module iana-igp-link-attr-apps is an IANA-
   maintained module, which defines the identities for the link
   attribute application IDs as in the IANA "Link Attribute Application
   Identifiers" registry.

   This document defines the initial version of the IANA-maintained YANG
   module for IGP application types that mirrors the IANA "Link
   Attribute Application Identifiers" registry [IANA-Link-Attr-Apps].

   This YANG module references [RFC9492].

   <CODE BEGINS> file "iana-igp-link-attr-apps@2026-07-09.yang"
   module iana-igp-link-attr-apps {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:iana-igp-link-attr-apps";
     prefix iana-link-attr-apps;

     organization
       "Internet Assigned Numbers Authority (IANA)";
     contact
       "Internet Assigned Numbers Authority

        ICANN
        12025 Waterfront Drive, Suite 300
        Los Angeles, CA 90094-2536
        United States of America

        Tel:    +1 310 301 5800
         <mailto:iana@iana.org>";
     description
       "The YANG module defines the YANG data types for IANA-registered
        Interior Gateway Protocol (IGP) Application IDs used for Link
        Attributes.

        This YANG module is maintained by IANA and reflects the 'Link
        Attribute Application Identifiers' registry.

        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

Qu & Lindem              Expires 22 January 2027               [Page 50]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

        (https://trustee.ietf.org/license-info).

        All revisions of IETF and IANA published modules can be found
        at the YANG Parameters registry group
        (https://www.iana.org/assignments/yang-parameters).

        This initial version of this YANG module is part of RFC XXXX
        (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
        for full legal notices.

        //RFC Ed.: replace XXXX with actual RFC number and remove
          this note

        The latest version of this YANG module is available at
        https://www.iana.org/assignments/yang-parameters.";

     reference
       "Interior Gateway Protocol (IGP) Parameters, IGP Algorithm Types
        (https://www.iana.org/assignments/igp-parameters/
         igp-parameters.xhtml#link-attribute-application-identifiers)";

     revision 2026-07-09 {
       description
         "Initial Version";
       reference
         "RFC XXXX: YANG Data Model for OSPF Application-Specific
                    Link Attributes and Flexible Algorithm";
     }

     typedef igp-link-attr-app {
       type enumeration {
         enum rsvp-te-app {
           value 0;
           description
             "RSVP-TE (R-bit).";
           reference
             "RFC 9479: IS-IS Application-Specific Link Attributes";
         }

         enum segment-routing-policy-app {
           value 1;
           description
             "Segment Routing Policy (S-bit).";
           reference
             "RFC 9479: IS-IS Application-Specific Link Attributes";
         }

         enum loop-free-alternate-app {

Qu & Lindem              Expires 22 January 2027               [Page 51]
Internet-Draft        OSPF ASLA and Flex-Algo YANG             July 2026

           value 2;
           description
             "Loop-Free Alternate (F-bit).";
           reference
             "RFC 9479: IS-IS Application-Specific Link Attributes";
         }

         enum flexible-algorithm-app {
           value 3;
           description
             "Flexible Algorithm (X-bit).";
           reference
             "RFC 9350: IGP Flexible Algorithm, Section 12.";
         }
       }
       description
         "Application IDs used for Link Attributes, which are defined
         in the IANA Link Attribute Application Identifiers registry.";
       reference
         "RFC 9479: IS-IS Application-Specific Link Attributes";
     }
   }
   <CODE ENDS>

Authors' Addresses

   Yingzhen Qu
   Futurewei Technologies
   United States of America
   Email: yingzhen.ietf@gmail.com

   Acee Lindem
   Arrcus, Inc.
   United States of America
   Email: acee.ietf@gmail.com

Qu & Lindem              Expires 22 January 2027               [Page 52]