Cisco-IOS-XR-clns-isis-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR clns-isis package configuration. This model is deprecate...

  • Version: 2021-04-02

    Cisco-IOS-XR-clns-isis-cfg@2021-04-02


    
      module Cisco-IOS-XR-clns-isis-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-clns-isis-cfg";
    
        prefix clns-isis-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-clns-isis-datatypes {
          prefix dt1;
        }
        import Cisco-IOS-XR-snmp-agent-cfg {
          prefix a1;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR clns-isis package configuration.
         
         This model is deprecated and is replaced by
         Cisco-IOS-XR-um-router-isis-cfg.yang which will provide the
         compatible functionalities.
         
         This module contains definitions
         for the following management objects:
           isis: IS-IS configuration for all instances
         
         This YANG module augments the
           Cisco-IOS-XR-snmp-agent-cfg
         module with configuration data.
         
         Copyright (c) 2013-2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-04-02" {
          description
            "Add TEMetric configuration.
           2021-02-07
             Deprecate UnlabeledProtection leaf under AF and add it to SegmentRouting
           2020-11-26
             Add mpls traffic-eng tunnel metric config command.
           2020-10-27
             Added a new CLI keyword te under flex-algo metric-type.
           2020-10-25
             change sspf and algorithm prefix sid attributes php, nflag-clear and explicit-null to optional.
           2020-10-20
             Replace ospf-route-type by route-type since it is now used by protocols other than ospf via CSCvu81047. Replace boolean flag with an enum type to accommodate more values via CSCvs18561.
           2020-10-18
             Added mpls traffic-eng tunnel-preferred container.
           2020-09-21
             Added attestation submodes and related commands.
           2020-07-28
             Added a new CLI command receive application flex-algo delay app-only under the router isis menu.
           2020-07-09
             Added two additional leaves to the metric fallback bandwidth container.
           2020-07-02
             Added srv6-locator-level leaf to srv6-locator
           2020-06-30
             Added DownFlagClear option to Redistribution
           2020-04-11
             Added metric callback for bundle interface";
        }
    
        revision "2019-12-21" {
          description
            "Added flex-algo, explicit leaf for summary prefix Added leaf prefix-metric for flex-algo list Added container prefix-attribute-anycasts";
        }
    
        revision "2019-12-20" {
          description
            "Added default value for max-metric mode.
           2019-10-31
           Added mandatory nodes and presence containers.
           2019-09-25
           Added configuration options for new features
           2019-05-12
           Deprecated the native model, replaced by UM model.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2019-03-15" {
          description
            "Removed CLI enter-tuple YANG nodes for link-group.";
        }
    
        revision "2019-02-18" {
          description
            "Added affinity include-any include-all configuration items.";
        }
    
        revision "2018-11-23" {
          description
            "Added advertise-definition configuration item.";
        }
    
        revision "2018-11-02" {
          description
            "Added purge-transmit strict configuration item.";
        }
    
        revision "2018-10-30" {
          description
            "Change max metric definition.";
        }
    
        revision "2018-09-27" {
          description
            "Modify the SRv6 container and add a Locator container.";
        }
    
        revision "2018-06-15" {
          description
            "Added flex-algo protection command. IosSetYangSchemaRev Cisco-IOS-XR-clns-isis-cfg";
        }
    
        revision "2018-06-15" {
          description
            "Added flex-algo microloop command. IosSetYangSchemaRev Cisco-IOS-XR-clns-isis-cfg";
        }
    
        revision "2018-06-14" {
          description
            "Added FRR InitialDelay under address-family fast-reroute submode.";
        }
    
        revision "2018-01-24" {
          description
            "Added SRLG TILFA related CLIs.";
        }
    
        revision "2017-12-15" {
          description
            "Change metric-style to include transition modes.";
        }
    
        revision "2017-11-20" {
          description
            "Change micro-loop-avoidance enable default to none. Add distribute-list-in and vrf-context.";
        }
    
        revision "2017-10-15" {
          description
            "Removed presence statement generated from internal CLI data.";
        }
    
        revision "2017-09-07" {
          description
            "Fixed type translation error.";
        }
    
        revision "2017-06-02" {
          description
            "IOS XR 6.3.2 Removed must statements from key leafs.";
        }
    
        revision "2017-05-22" {
          description
            "IOS XR 6.3.2 revision with schema changes for opencfg support and some string boundary checking.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "4.0.0";
        semver:module-version "3.0.0";
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        typedef Nflag-clear {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable N-flag-clear";
            }
            enum "enable" {
              value 1;
              description "Enable N-flag-clear";
            }
          }
          description "Nflag clear";
        }
    
        typedef Isis-adv-type-inter-level {
          type enumeration {
            enum "inter-level" {
              value 1;
              description "InterLevel";
            }
          }
          description
            "Isis adv type inter level";
        }
    
        typedef Isis-override-metrics {
          type enumeration {
            enum "disabled" {
              value 0;
              description
                "Ignore reverse-metric requests";
            }
            enum "high" {
              value 16777214;
              description
                "Highest reachable metric";
            }
            enum "maximum" {
              value 16777215;
              description
                "Unreachable metric (wide metrics only)";
            }
          }
          description "Isis override metrics";
        }
    
        typedef Isis-enable-poi {
          type enumeration {
            enum "enable-poi-off" {
              value 0;
              description
                "Disable purge originator";
            }
            enum "enable-poi-on" {
              value 1;
              description
                "Enable purge originator";
            }
          }
          description "Isis enable poi";
        }
    
        typedef Isis-interface-state {
          type enumeration {
            enum "shutdown" {
              value 0;
              description "Shutdown";
            }
            enum "suppressed" {
              value 1;
              description "Suppressed";
            }
            enum "passive" {
              value 2;
              description "Passive";
            }
            enum "enabled-active" {
              value 3;
              description "EnabledActive";
            }
          }
          description "Isis interface state";
        }
    
        typedef Isisfrr {
          type enumeration {
            enum "per-link" {
              value 1;
              description
                "Prefix independent per-link computation";
            }
            enum "per-prefix" {
              value 2;
              description
                "Prefix dependent computation";
            }
          }
          description "Isisfrr";
        }
    
        typedef Isisfrr-load-sharing {
          type enumeration {
            enum "disable" {
              value 1;
              description
                "Disable load sharing of prefixes across
               multiple backups";
            }
          }
          description "Isisfrr load sharing";
        }
    
        typedef Isis-authentication-failure-mode {
          type enumeration {
            enum "drop" {
              value 0;
              description
                "Drop non-authenticating PDUs";
            }
            enum "send-only" {
              value 1;
              description
                "Accept non-authenticating PDUs";
            }
          }
          description
            "Isis authentication failure mode";
        }
    
        typedef Isis-apply-weight {
          type enumeration {
            enum "ecmp-only" {
              value 1;
              description
                "Apply weight to ECMP prefixes";
            }
            enum "ucmp-only" {
              value 2;
              description
                "Apply weight to UCMP prefixes";
            }
            enum "ecmp-only-bandwidth" {
              value 3;
              description
                "Apply weight to ECMP prefixes";
            }
          }
          description "Isis apply weight";
        }
    
        typedef Isis-label-preference {
          type enumeration {
            enum "ldp" {
              value 0;
              description
                "Label Distribution Protocol";
            }
            enum "segment-routing" {
              value 1;
              description "Segment Routing";
            }
          }
          description "Isis label preference";
        }
    
        typedef Isissid1 {
          type enumeration {
            enum "index" {
              value 1;
              description "SID as an index";
            }
            enum "absolute" {
              value 2;
              description
                "SID as an absolute label";
            }
          }
          description "Isissid1";
        }
    
        typedef Isis-advertise-local {
          type enumeration {
            enum "local" {
              value 1;
              description "Local";
            }
            enum "domain-wide" {
              value 2;
              description "Domain Wide";
            }
          }
          description "Isis advertise local";
        }
    
        typedef Isis-metric {
          type enumeration {
            enum "internal" {
              value 0;
              description "Internal metric";
            }
            enum "external" {
              value 1;
              description "External metric";
            }
            enum "rib-internal" {
              value 2;
              description "RIB Internal metric";
            }
            enum "rib-external" {
              value 3;
              description "RIB External metric";
            }
          }
          description "Isis metric";
        }
    
        typedef Isis-attached-bit {
          type enumeration {
            enum "area" {
              value 0;
              description
                "Computed from the attached areas";
            }
            enum "on" {
              value 1;
              description "Forced ON";
            }
            enum "off" {
              value 2;
              description "Forced OFF";
            }
          }
          description "Isis attached bit";
        }
    
        typedef Isis-configurable-levels {
          type enumeration {
            enum "level1" {
              value 1;
              description "Level1";
            }
            enum "level2" {
              value 2;
              description "Level2";
            }
            enum "level1-and2" {
              value 3;
              description "Both Levels";
            }
          }
          description "Isis configurable levels";
        }
    
        typedef Isis-configurable-level {
          type enumeration {
            enum "level-12" {
              value 0;
              description "Both Levels";
            }
            enum "level-1" {
              value 1;
              description "level 1";
            }
            enum "level-2" {
              value 2;
              description "level 2";
            }
          }
          description "Isis configurable level";
        }
    
        typedef Isissid {
          type uint32 {
            range "0..1048575";
          }
          description "Isissid";
        }
    
        typedef Isis-hello-padding {
          type enumeration {
            enum "never" {
              value 0;
              description "Never pad Hellos";
            }
            enum "sometimes" {
              value 1;
              description
                "Pad Hellos during adjacency formation only";
            }
          }
          description "Isis hello padding";
        }
    
        typedef Isis-snp-auth {
          type enumeration {
            enum "send-only" {
              value 0;
              description
                "Authenticate SNP send only";
            }
            enum "full" {
              value 1;
              description
                "Authenticate SNP send and recv";
            }
          }
          description "Isis snp auth";
        }
    
        typedef Isis-interface-af-state {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable";
            }
          }
          description "Isis interface af state";
        }
    
        typedef Isisexplicit-null-flag {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable EXPLICITNULL";
            }
            enum "enable" {
              value 1;
              description "Enable EXPLICITNULL";
            }
          }
          description "Isisexplicit null flag";
        }
    
        typedef Isis-application-attribute {
          type enumeration {
            enum "srlg" {
              value 0;
              description "SRLG Attribute";
            }
          }
          description
            "Isis application attribute";
        }
    
        typedef Isis-metric-fallback-metric {
          type enumeration {
            enum "igp" {
              value 0;
              description "IGP Metric";
            }
            enum "te" {
              value 1;
              description "TE Metric";
            }
          }
          description
            "Isis metric fallback metric";
        }
    
        typedef Isisfrr-srlg-protection {
          type enumeration {
            enum "local" {
              value 0;
              description "SRLG Attribute";
            }
            enum "weighted-global" {
              value 1;
              description "SRLG Attribute";
            }
          }
          description "Isisfrr srlg protection";
        }
    
        typedef Isis-redist-proto {
          type enumeration {
            enum "connected" {
              value 0;
              description "Connected";
            }
            enum "static" {
              value 1;
              description "Static";
            }
            enum "ospf" {
              value 2;
              description "OSPF";
            }
            enum "bgp" {
              value 3;
              description "BGP";
            }
            enum "isis" {
              value 4;
              description "ISIS";
            }
            enum "ospfv3" {
              value 5;
              description "OSPFv3";
            }
            enum "rip" {
              value 6;
              description "RIP";
            }
            enum "eigrp" {
              value 7;
              description "EIGRP";
            }
            enum "subscriber" {
              value 8;
              description "Subscriber";
            }
            enum "application" {
              value 9;
              description "Application";
            }
            enum "mobile" {
              value 10;
              description "Mobile";
            }
          }
          description "Isis redist proto";
        }
    
        typedef Isis-metric-fallback-anomaly-mode {
          type enumeration {
            enum "delay" {
              value 1;
              description "Link Delay Anomaly";
            }
            enum "loss" {
              value 2;
              description "Link Loss Anomaly";
            }
            enum "any" {
              value 3;
              description "Any Anomaly";
            }
          }
          description
            "Isis metric fallback anomaly mode";
        }
    
        typedef Isis-tracing-mode {
          type enumeration {
            enum "off" {
              value 0;
              description "No tracing";
            }
            enum "basic" {
              value 1;
              description
                "Basic tracing (less overhead)";
            }
            enum "enhanced" {
              value 2;
              description
                "Enhanced tracing (more overhead)";
            }
          }
          description "Isis tracing mode";
        }
    
        typedef Isis-prefix-priority {
          type enumeration {
            enum "critical-priority" {
              value 0;
              description
                "Critical prefix priority";
            }
            enum "high-priority" {
              value 1;
              description "High prefix priority";
            }
            enum "medium-priority" {
              value 2;
              description
                "Medium prefix priority";
            }
          }
          description "Isis prefix priority";
        }
    
        typedef Isis-unlabeled-protection {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disabled";
            }
            enum "prefix-list" {
              value 1;
              description "Prefix List";
            }
            enum "route-policy" {
              value 2;
              description "Route Policy";
            }
          }
          description
            "Isis unlabeled protection";
        }
    
        typedef Isis-authentication-algorithm {
          type enumeration {
            enum "cleartext" {
              value 1;
              description "Cleartext password";
            }
            enum "hmac-md5" {
              value 2;
              description "HMAC-MD5 checksum";
            }
            enum "keychain" {
              value 3;
              description
                "Key Chain authentication";
            }
          }
          description
            "Isis authentication algorithm";
        }
    
        typedef Isis-max-metric-mode {
          type enumeration {
            enum "permanently-set" {
              value 1;
              description "Set always";
            }
            enum "startup-period" {
              value 2;
              description
                "Set during the startup period";
            }
            enum "wait-for-bgp" {
              value 3;
              description
                "Set until BGP comverges";
            }
          }
          description "Isis max metric mode";
        }
    
        typedef Isisispf-state {
          type enumeration {
            enum "enabled" {
              value 1;
              description "Enabled";
            }
          }
          description "Isisispf state";
        }
    
        typedef Isis-application {
          type enumeration {
            enum "lfa" {
              value 0;
              description "LFA Application";
            }
          }
          description "Isis application";
        }
    
        typedef Isissid-protected {
          type enumeration {
            enum "disable" {
              value 0;
              description "Not protected";
            }
            enum "enable" {
              value 1;
              description "Protected";
            }
          }
          description "Isissid protected";
        }
    
        typedef Isis-adv-type-external {
          type enumeration {
            enum "external" {
              value 1;
              description "External";
            }
          }
          description "Isis adv type external";
        }
    
        typedef Isisphp-flag {
          type enumeration {
            enum "enable" {
              value 0;
              description "Enable PHP";
            }
            enum "disable" {
              value 1;
              description "Disable PHP";
            }
          }
          description "Isisphp flag";
        }
    
        typedef Isis-metric-style {
          type enumeration {
            enum "old-metric-style" {
              value 0;
              description
                "ISO 10589 metric style (old-style)";
            }
            enum "new-metric-style" {
              value 1;
              description
                "32-bit metric style (new-style)";
            }
            enum "both-metric-style" {
              value 2;
              description
                "Both forms of metric style";
            }
            enum "old-metric-style-transition" {
              value 3;
              description
                "Send ISO 10589 metric style but accept both";
            }
            enum "new-metric-style-transition" {
              value 4;
              description
                "Send 32-bit metric style but accept both";
            }
          }
          description "Isis metric style";
        }
    
        typedef Isis-remote-lfa {
          type enumeration {
            enum "remote-lfa-none" {
              value 0;
              description
                "No remote LFA option set";
            }
            enum "remote-lfa-tunnel-ldp" {
              value 1;
              description
                "Construct remote LFA tunnel using MPLS LDP";
            }
          }
          description "Isis remote lfa";
        }
    
        typedef Isis-micro-loop-avoidance {
          type enumeration {
            enum "not-set" {
              value 0;
              description
                "No Avoidance type set";
            }
            enum "micro-loop-avoidance-all" {
              value 1;
              description
                "Provide mirco loop avoidance for all prefixes";
            }
            enum
              "micro-loop-avoidance-protected" {
              value 2;
              description
                "Provide mirco loop avoidance only for protected
               prefixes";
            }
            enum
              "micro-loop-avoidance-segement-routing" {
              value 3;
              description
                "Provide segment-routing mirco loop avoidance";
            }
          }
          description
            "Isis micro loop avoidance";
        }
    
        typedef Isis-adj-check {
          type enumeration {
            enum "disabled" {
              value 0;
              description "Disabled";
            }
          }
          description "Isis adj check";
        }
    
        typedef Isis-interface-frr-tiebreaker {
          type enumeration {
            enum "lc-disjoint" {
              value 1;
              description
                "Prefer line card disjoint backup path";
            }
            enum "node-protecting" {
              value 3;
              description
                "Prefer node protecting backup path";
            }
            enum "srlg-disjoint" {
              value 6;
              description
                "Prefer SRLG disjoint backup path";
            }
          }
          description
            "Isis interface frr tiebreaker";
        }
    
        typedef Isis-overload-bit-mode {
          type enumeration {
            enum "permanently-set" {
              value 1;
              description "Set always";
            }
            enum "startup-period" {
              value 2;
              description
                "Set during the startup period";
            }
            enum "wait-for-bgp" {
              value 3;
              description
                "Set until BGP comverges";
            }
          }
          description "Isis overload bit mode";
        }
    
        typedef Isis-no-level {
          type enumeration {
            enum "not-set" {
              value 0;
              description "Level not set";
            }
          }
          description "Isis no level";
        }
    
        typedef Isis-nsf-flavor {
          type enumeration {
            enum "cisco-proprietary-nsf" {
              value 1;
              description
                "Cisco proprietary NSF";
            }
            enum "ietf-standard-nsf" {
              value 2;
              description "IETF standard NSF";
            }
          }
          description "Isis nsf flavor";
        }
    
        typedef Isisfrr-tiebreaker {
          type enumeration {
            enum "downstream" {
              value 0;
              description
                "Prefer backup path via downstream node";
            }
            enum "lc-disjoint" {
              value 1;
              description
                "Prefer line card disjoint backup path";
            }
            enum "lowest-backup-metric" {
              value 2;
              description
                "Prefer backup path with lowest total metric";
            }
            enum "node-protecting" {
              value 3;
              description
                "Prefer node protecting backup path";
            }
            enum "primary-path" {
              value 4;
              description
                "Prefer backup path from ECMP set";
            }
            enum "secondary-path" {
              value 5;
              description
                "Prefer non-ECMP backup path";
            }
            enum "srlg-disjoint" {
              value 6;
              description
                "Prefer SRLG disjoint backup path";
            }
          }
          description "Isisfrr tiebreaker";
        }
    
        typedef Isis-mib-manual-address-drops-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 2;
              description "Enable";
            }
          }
          description
            "Isis mib manual address drops boolean";
        }
    
        typedef Isis-mib-authentication-type-failure-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 9;
              description "Enable";
            }
          }
          description
            "Isis mib authentication type failure boolean";
        }
    
        typedef Isis-mib-max-area-address-mismatch-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 6;
              description "Enable";
            }
          }
          description
            "Isis mib max area address mismatch boolean";
        }
    
        typedef Isis-mib-sequence-number-skip-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 8;
              description "Enable";
            }
          }
          description
            "Isis mib sequence number skip boolean";
        }
    
        typedef Isis-mib-database-over-flow-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 1;
              description "Enable";
            }
          }
          description
            "Isis mib database over flow boolean";
        }
    
        typedef Isis-mib-all-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 19;
              description "Enable";
            }
          }
          description "Isis mib all boolean";
        }
    
        typedef Isis-mib-lsp-too-large-to-propagate-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 14;
              description "Enable";
            }
          }
          description
            "Isis mib lsp too large to propagate boolean";
        }
    
        typedef Isis-mib-own-lsp-purge-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 7;
              description "Enable";
            }
          }
          description
            "Isis mib own lsp purge boolean";
        }
    
        typedef Isis-mib-adjacency-change-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 17;
              description "Enable";
            }
          }
          description
            "Isis mib adjacency change boolean";
        }
    
        typedef Isis-mib-protocols-supported-mismatch-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 16;
              description "Enable";
            }
          }
          description
            "Isis mib protocols supported mismatch boolean";
        }
    
        typedef Isis-mib-attempt-to-exceed-max-sequence-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 4;
              description "Enable";
            }
          }
          description
            "Isis mib attempt to exceed max sequence boolean";
        }
    
        typedef Isis-mib-id-length-mismatch-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 5;
              description "Enable";
            }
          }
          description
            "Isis mib id length mismatch boolean";
        }
    
        typedef Isis-mib-originated-lsp-buffer-size-mismatch-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 15;
              description "Enable";
            }
          }
          description
            "Isis mib originated lsp buffer size mismatch
           boolean";
        }
    
        typedef Isis-mib-area-mismatch-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 12;
              description "Enable";
            }
          }
          description
            "Isis mib area mismatch boolean";
        }
    
        typedef Isis-mib-corrupted-lsp-detected-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 3;
              description "Enable";
            }
          }
          description
            "Isis mib corrupted lsp detected boolean";
        }
    
        typedef Isis-mib-lsp-error-detected-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 18;
              description "Enable";
            }
          }
          description
            "Isis mib lsp error detected boolean";
        }
    
        typedef Isis-mib-rejected-adjacency-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 13;
              description "Enable";
            }
          }
          description
            "Isis mib rejected adjacency boolean";
        }
    
        typedef Isis-mib-version-skew-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 11;
              description "Enable";
            }
          }
          description
            "Isis mib version skew boolean";
        }
    
        typedef Isis-mib-authentication-failure-boolean {
          type enumeration {
            enum "false" {
              value 0;
              description "Disable";
            }
            enum "true" {
              value 10;
              description "Enable";
            }
          }
          description
            "Isis mib authentication failure boolean";
        }
    
        container isis {
          status deprecated;
          description
            "This model is deprecated and is replaced by
           Cisco-IOS-XR-um-router-isis-cfg.yang which will
           provide the compatible functionalities.  IS-IS
           configuration for all instances";
          container instances {
            description
              "IS-IS instance configuration";
            list instance {
              key "instance-name";
              description
                "Configuration for a single IS-IS instance";
              container srgb {
                presence
                  "Indicates a srgb node is configured.";
                description
                  "Segment Routing Global Block configuration";
                leaf lower-bound {
                  type uint32 {
                    range "16000..1048574";
                  }
                  mandatory true;
                  description
                    "The lower bound of the SRGB";
                }
    
                leaf upper-bound {
                  type uint32 {
                    range "16001..1048575";
                  }
                  mandatory true;
                  description
                    "The upper bound of the SRGB";
                }
              }  // container srgb
    
              container attestation-table {
                description
                  "Attestation configuration";
                container attestation-apps {
                  description
                    "Attestation Application configuration";
                  list attestation-app {
                    key "application";
                    description
                      "Configuration for Attestation for
                     application";
                    container trust-vector-table {
                      description
                        "Trust-Vector configuration";
                      leaf boot-integrity-failed {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Configure Boot Integrity Fail Affinity";
                      }
    
                      leaf failures-found {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Configure Failures Found Affinity";
                      }
    
                      leaf boot-integrity-passed {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Configure Boot Integrity Pass Affinity";
                      }
                    }  // container trust-vector-table
    
                    leaf application {
                      type uint32 {
                        range "0..1";
                      }
                      description "Application";
                    }
                  }  // list attestation-app
                }  // container attestation-apps
              }  // container attestation-table
    
              container lsp-generation-intervals {
                description
                  "LSP generation-interval configuration";
                list lsp-generation-interval {
                  key "level";
                  description
                    "LSP generation scheduling parameters";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf maximum-wait {
                    type uint32 {
                      range "0..120000";
                    }
                    units "millisecond";
                    description
                      "Maximum wait before generating local LSP in
                     milliseconds";
                  }
    
                  leaf initial-wait {
                    type uint32 {
                      range "0..120000";
                    }
                    units "millisecond";
                    description
                      "Initial wait before generating local LSP in
                     milliseconds";
                  }
    
                  leaf secondary-wait {
                    type uint32 {
                      range "0..120000";
                    }
                    units "millisecond";
                    description
                      "Secondary wait before generating local LSP
                     in milliseconds";
                  }
                }  // list lsp-generation-interval
              }  // container lsp-generation-intervals
    
              container lsp-arrival-times {
                description
                  "LSP arrival time configuration";
                list lsp-arrival-time {
                  key "level";
                  description
                    "Minimum LSP arrival time";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf maximum-wait {
                    type uint32 {
                      range "0..120000";
                    }
                    units "millisecond";
                    description
                      "Maximum delay expected to take since last
                     LSPin milliseconds";
                  }
    
                  leaf initial-wait {
                    type uint32 {
                      range "0..120000";
                    }
                    units "millisecond";
                    description
                      "Initial delay expected to take since last
                     LSPin milliseconds";
                  }
    
                  leaf secondary-wait {
                    type uint32 {
                      range "0..120000";
                    }
                    units "millisecond";
                    description
                      "Secondary delay expected to take since last
                     LSPin milliseconds";
                  }
                }  // list lsp-arrival-time
              }  // container lsp-arrival-times
    
              container trace-buffer-size {
                description
                  "Trace buffer size configuration";
                leaf detailed {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for detailed traces";
                }
    
                leaf standard {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for standard traces";
                }
    
                leaf severe {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for severe trace";
                }
    
                leaf hello {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for hello trace";
                }
    
                leaf lspgen {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for lspgen trace";
                }
    
                leaf adj {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for adjacency trace";
                }
    
                leaf config {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for config trace";
                }
    
                leaf startup {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for startup trace";
                }
    
                leaf rib {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for rib trace";
                }
    
                leaf spf {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for spf trace";
                }
    
                leaf sr {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for segment routing trace";
                }
    
                leaf te {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for traffic-engg trace";
                }
    
                leaf update {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for update trace";
                }
    
                leaf pkt {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for packet trace";
                }
    
                leaf debug {
                  type uint32 {
                    range "1..1000000";
                  }
                  description
                    "Buffer size for debug trace";
                }
              }  // container trace-buffer-size
    
              container max-link-metrics {
                description
                  "Max Metric configuration";
                list max-link-metric {
                  key "level";
                  description "Max Metric";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf max-metric-mode {
                    type Isis-max-metric-mode;
                    default "permanently-set";
                    description
                      "Circumstances under which the max metric is
                     advertised in the system LSP";
                  }
    
                  leaf max-metric-period {
                    when
                      "../max-metric-mode = 'startup-period'" {
                      description
                        "../MaxMetricMode = StartupPeriod";
                    }
                    type uint32 {
                      range "5..86400";
                    }
                    units "second";
                    description
                      "Time in seconds to advertise max link metric
                     after process startup";
                  }
    
                  leaf external {
                    type boolean;
                    description
                      "If TRUE, overwrite metric of prefixes
                     learned from another protocol with max
                     metric";
                  }
    
                  leaf interlevel {
                    type boolean;
                    description
                      "If TRUE, overwrite metric of prefixes
                     learned from another ISIS level with max
                     metric";
                  }
    
                  leaf deflt-rt {
                    type boolean;
                    description
                      "If TRUE, overwrite metric of default route
                     with max metric";
                  }
    
                  leaf srv6-loc {
                    type boolean;
                    description
                      "If TRUE, overwrite metric of segment routing
                     IPV6 locator with max metric";
                  }
                }  // list max-link-metric
              }  // container max-link-metrics
    
              container adjacency-stagger {
                presence
                  "enable adjacency-stagger";
                description
                  "Stagger ISIS adjacency bring up";
                leaf initial-nbr {
                  type uint32 {
                    range "2..65000";
                  }
                  default "2";
                  description
                    "Adjacency Stagger: Initial number of
                   neighbors to bring up per area";
                }
    
                leaf max-nbr {
                  type uint32 {
                    range "2..65000";
                  }
                  default "64";
                  description
                    "Adjacency Stagger: Subsequent simultaneous
                   number of neighbors to bring up";
                }
              }  // container adjacency-stagger
    
              container afs {
                description
                  "Per-address-family configuration";
                list af {
                  key "af-name saf-name";
                  description
                    "Configuration for an IS-IS address-family. If
                   a named (non-default) topology is being
                   created it must be multicast.";
                  container af-data {
                    presence
                      "Indicates a af-data node is configured.";
                    description
                      "Data container.";
                    container segment-routing {
                      description
                        "Enable Segment Routing configuration";
                      container srv6 {
                        description
                          "SRv6 configuration";
                        container srv6-locators {
                          description
                            "SRv6 Locator configuration";
                          list srv6-locator {
                            key "locator-name";
                            description
                              "Configuration for a single SRv6 Locator";
                            leaf running {
                              type empty;
                              description
                                "The presence of this object enables a
    SRv6 Locator. This must be the first
    object created under the SRv6Locator
    container, and the last one deleted";
                            }
    
                            leaf srv6-locator-level {
                              type Isis-configurable-level;
                              default "level-12";
                              description
                                "The level into which this locator
    should be advertised.";
                            }
    
                            leaf locator-name {
                              type dt1:Isis-locator-name;
                              description
                                "Locator Name";
                            }
                          }  // list srv6-locator
                        }  // container srv6-locators
    
                        leaf running {
                          type empty;
                          description
                            "The presence of this object enables SRv6.
    This must be the first object created
    under the SRV6 container, and the last
    one deleted";
                        }
                      }  // container srv6
    
                      container connected-prefix-sids {
                        description
                          "Connected Segment Routing prefix SID map
    configuration";
                        list connected-prefix-sid {
                          key "address-prefix algo";
                          description
                            "Segment Routing prefix SID map";
                          leaf address-prefix {
                            type inet:ip-prefix;
                            description
                              "IP address prefix";
                          }
    
                          leaf algo {
                            type uint32 {
                              range "0..255";
                            }
                            description "Algo";
                          }
    
                          leaf sid-type {
                            type Isissid1;
                            mandatory true;
                            description
                              "SID type for the interface";
                          }
    
                          leaf sid {
                            type Isissid;
                            mandatory true;
                            description
                              "SID value for the interface";
                          }
    
                          leaf sid-range {
                            type uint32 {
                              range "1..1048575";
                            }
                            description
                              "Range of SIDs";
                          }
    
                          leaf interface {
                            type string {
                              length "1..64";
                            }
                            description
                              "Interface to which prefix belongs";
                          }
    
                          leaf php {
                            type Isisphp-flag;
                            description
                              "Enable/Disable Penultimate Hop Popping";
                          }
    
                          leaf explicit-null {
                            type Isisexplicit-null-flag;
                            description
                              "Enable/Disable Explicit-NULL flag";
                          }
                        }  // list connected-prefix-sid
                      }  // container connected-prefix-sids
    
                      container prefix-sid-map {
                        description
                          "Enable Segment Routing prefix SID map
    configuration";
                        leaf advertise-local {
                          type Isis-advertise-local;
                          description
                            "Enable Segment Routing prefix SID map
    advertise local";
                        }
    
                        leaf receive {
                          type boolean;
                          description
                            "If TRUE, remote prefix SID map
    advertisements will be used. If FALSE,
    they will not be used.";
                        }
                      }  // container prefix-sid-map
    
                      container unlabeled-protection {
                        presence
                          "Indicates a unlabeled-protection node is configured.";
                        description
                          "SR-MPLS protection for prefixes without a
    prefix SID";
                        leaf filter-type {
                          type Isis-unlabeled-protection;
                          mandatory true;
                          description
                            "Type of prefix filtering for unlabeled
    protection";
                        }
    
                        leaf prefix-list-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          description
                            "Prefix list to control unlabeled
    protection";
                        }
    
                        leaf route-policy-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          description
                            "Route policy to control unlabeled
    protection";
                        }
                      }  // container unlabeled-protection
    
                      leaf bundle-member-adj-sid {
                        type empty;
                        description
                          "Enable per bundle member adjacency SID";
                      }
    
                      leaf labeled-only {
                        type empty;
                        description
                          "Only install SR labeled paths";
                      }
    
                      leaf mpls {
                        type Isis-label-preference;
                        description
                          "Prefer segment routing labels over LDP
    labels";
                      }
                    }  // container segment-routing
    
                    container metric-styles {
                      description
                        "Metric-style configuration";
                      list metric-style {
                        key "level";
                        description
                          "Configuration of metric style in LSPs";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf style {
                          type Isis-metric-style;
                          mandatory true;
                          description
                            "Metric Style";
                        }
                      }  // list metric-style
                    }  // container metric-styles
    
                    container frr-table {
                      description
                        "Fast-ReRoute configuration";
                      container frr-load-sharings {
                        description
                          "Load share prefixes across multiple
    backups";
                        list frr-load-sharing {
                          key "level";
                          description
                            "Disable load sharing";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf load-sharing {
                            type Isisfrr-load-sharing;
                            mandatory true;
                            description
                              "Load sharing";
                          }
                        }  // list frr-load-sharing
                      }  // container frr-load-sharings
    
                      container frrsrlg-protection-types {
                        description
                          "SRLG protection type configuration";
                        list frrsrlg-protection-type {
                          key "level";
                          description
                            "FRR SRLG Protection Type";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf protection-type {
                            type Isisfrr-srlg-protection;
                            mandatory true;
                            description
                              "Protection Type";
                          }
                        }  // list frrsrlg-protection-type
                      }  // container frrsrlg-protection-types
    
                      container priority-limits {
                        description
                          "FRR prefix-limit configuration";
                        list priority-limit {
                          key "level frr-type";
                          description
                            "Limit backup computation upto the prefix
    priority";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf frr-type {
                            type Isisfrr;
                            description
                              "Computation Type";
                          }
    
                          leaf priority {
                            type Isis-prefix-priority;
                            mandatory true;
                            description
                              "Compute for all prefixes upto the
    specified priority";
                          }
                        }  // list priority-limit
                      }  // container priority-limits
    
                      container frr-remote-lfa-prefixes {
                        description
                          "FRR remote LFA prefix list filter
    configuration";
                        list frr-remote-lfa-prefix {
                          key "level";
                          description
                            "Filter remote LFA router IDs using
    prefix-list";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf prefix-list-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..32";
                            }
                            mandatory true;
                            description
                              "Name of the prefix list";
                          }
                        }  // list frr-remote-lfa-prefix
                      }  // container frr-remote-lfa-prefixes
    
                      container frr-tiebreakers {
                        description
                          "FRR tiebreakers configuration";
                        list frr-tiebreaker {
                          key "level tiebreaker";
                          description
                            "Configure tiebreaker for multiple backups";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf tiebreaker {
                            type Isisfrr-tiebreaker;
                            description
                              "Tiebreaker for which configuration
    applies";
                          }
    
                          leaf index {
                            type uint32 {
                              range "1..255";
                            }
                            mandatory true;
                            description
                              "Preference order among tiebreakers";
                          }
                        }  // list frr-tiebreaker
                      }  // container frr-tiebreakers
    
                      container frr-use-cand-onlies {
                        description
                          "FRR use candidate only configuration";
                        list frr-use-cand-only {
                          key "level frr-type";
                          description
                            "Configure use candidate only to exclude
    interfaces as backup";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf frr-type {
                            type Isisfrr;
                            description
                              "Computation Type";
                          }
                        }  // list frr-use-cand-only
                      }  // container frr-use-cand-onlies
    
                      leaf frr-initial-delay {
                        type uint32 {
                          range "100..60000";
                        }
                        units "millisecond";
                        description
                          "Delay before running FRR (milliseconds)";
                      }
                    }  // container frr-table
    
                    container router-id {
                      description
                        "Stable IP address for system. Will only be
    applied for the unicast sub-address-family.";
                      leaf address {
                        type string;
                        must
                          "not(../interface-name)";
                        description
                          "IPv4/IPv6 address to be used as a router
    ID. Precisely one of Address and Interface
    must be specified.";
                      }
    
                      leaf interface-name {
                        type xr:Interface-name;
                        must "not(../address)";
                        description
                          "Interface with designated stable IP
    address to be used as a router ID. This
    must be a Loopback interface. Precisely
    one of Address and Interface must be
    specified.";
                      }
                    }  // container router-id
    
                    container spf-prefix-priorities {
                      description
                        "SPF Prefix Priority configuration";
                      list spf-prefix-priority {
                        key "level prefix-priority-type";
                        description
                          "Determine SPF priority for prefixes";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "SPF Level for prefix prioritization";
                        }
    
                        leaf prefix-priority-type {
                          type Isis-prefix-priority;
                          description
                            "SPF Priority to assign matching prefixes";
                        }
    
                        leaf admin-tag {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          must
                            "not(../access-list-name)";
                          description
                            "Tag value to determine prefixes for this
    priority";
                        }
    
                        leaf access-list-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          must
                            "not(../admin-tag)";
                          description
                            "Access List to determine prefixes for
    this priority";
                        }
                      }  // list spf-prefix-priority
                    }  // container spf-prefix-priorities
    
                    container summary-prefixes {
                      description
                        "Summary-prefix configuration";
                      list summary-prefix {
                        key "address-prefix";
                        description
                          "Configure IP address prefixes to advertise";
                        leaf address-prefix {
                          type inet:ip-prefix;
                          description
                            "IP summary address prefix";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "The tag value";
                        }
    
                        leaf level {
                          type uint32 {
                            range "1..2";
                          }
                          description
                            "Level in which to summarize routes";
                        }
    
                        leaf flex-algo {
                          type uint32 {
                            range "128..255";
                          }
                          description
                            "Flexible Algorithm number";
                        }
    
                        leaf explicit {
                          type empty;
                          description
                            "Only consider prefixes from identical
    algorithm";
                        }
                      }  // list summary-prefix
                    }  // container summary-prefixes
    
                    container micro-loop-avoidance {
                      description
                        "Micro Loop Avoidance configuration";
                      leaf enable {
                        type Isis-micro-loop-avoidance;
                        description
                          "MicroLoop avoidance enable configuration";
                      }
    
                      leaf rib-update-delay {
                        type uint32 {
                          range "1000..65535";
                        }
                        units "millisecond";
                        default "5000";
                        description
                          "Value of delay in msecs in updating RIB";
                      }
                    }  // container micro-loop-avoidance
    
                    container ucmp {
                      description
                        "UCMP (UnEqual Cost MultiPath) configuration";
                      container enable {
                        presence
                          "Contains mandatory nodes that used to set default values";
                        description
                          "UCMP feature enable configuration";
                        leaf variance {
                          type uint32 {
                            range "101..10000";
                          }
                          mandatory true;
                          description
                            "Value of variance";
                        }
    
                        leaf prefix-list-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..32";
                          }
                          description
                            "Name of the Prefix List";
                        }
                      }  // container enable
    
                      container exclude-interfaces {
                        description
                          "Interfaces excluded from UCMP path
    computation";
                        list exclude-interface {
                          key "interface-name";
                          description
                            "Exclude this interface from UCMP path
    computation";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Name of the interface to be excluded";
                          }
                        }  // list exclude-interface
                      }  // container exclude-interfaces
    
                      leaf delay-interval {
                        type uint32 {
                          range "100..65535";
                        }
                        units "millisecond";
                        default "100";
                        description
                          "Delay in msecs between primary SPF and
    UCMP computation";
                      }
                    }  // container ucmp
    
                    container max-redist-prefixes {
                      description
                        "Maximum number of redistributed
    prefixesconfiguration";
                      list max-redist-prefix {
                        key "level";
                        description
                          "An upper limit on the number of
    redistributed prefixes which may be
    included in the local system's LSP";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf prefix-limit {
                          type uint32 {
                            range "1..28000";
                          }
                          mandatory true;
                          description
                            "Max number of prefixes";
                        }
                      }  // list max-redist-prefix
                    }  // container max-redist-prefixes
    
                    container propagations {
                      description
                        "Route propagation configuration";
                      list propagation {
                        key "source-level destination-level";
                        description
                          "Propagate routes between IS-IS levels";
                        leaf source-level {
                          type dt1:Isis-internal-level;
                          description
                            "Source level for routes";
                        }
    
                        leaf destination-level {
                          type dt1:Isis-internal-level;
                          description
                            "Destination level for routes.  Must
    differ from SourceLevel";
                        }
    
                        leaf route-policy-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          mandatory true;
                          description
                            "Route policy limiting routes to be
    propagated";
                        }
                      }  // list propagation
                    }  // container propagations
    
                    container redistributions {
                      description
                        "Protocol redistribution configuration";
                      list redistribution {
                        must
                          "connected-or-static-or-rip-or-subscriber-or-mobile or ospf-or-ospfv3-or-isis-or-application or bgp or eigrp" {
                          description
                            "Connected-or-Static-or-RIP-or-Subscriber-or-Mobile or OSPF-or-OSPFv3-or-ISIS-or-Application or BGP or EIGRP must be present.";
                        }
                        key "protocol-name";
                        description
                          "Redistribution of other protocols into
    this IS-IS instance";
                        container connected-or-static-or-rip-or-subscriber-or-mobile {
                          when
                            "../protocol-name = 'connected' or ../protocol-name = 'static' or ../protocol-name = 'rip' or ../protocol-name = 'subscriber' or ../protocol-name = 'mobile'" {
                            description
                              "../ProtocolName = Connected or .
    ./ProtocolName = Static or .
    ./ProtocolName = RIP or ../ProtocolName
    = Subscriber or ../ProtocolName =
    Mobile";
                          }
                          presence
                            "Indicates that this node is configured.";
                          description
                            "connected or static or rip or subscriber
    or mobile";
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // container connected-or-static-or-rip-or-subscriber-or-mobile
    
                        leaf protocol-name {
                          type Isis-redist-proto;
                          description
                            "The protocol to be redistributed.  OSPFv3
    may not be specified for an IPv4 topology
    and OSPF may not be specified for an IPv6
    topology.";
                        }
    
                        list ospf-or-ospfv3-or-isis-or-application {
                          when
                            "../protocol-name = 'ospf' or ../protocol-name = 'ospfv3' or ../protocol-name = 'isis' or ../protocol-name = 'application'" {
                            description
                              "../ProtocolName = OSPF or .
    ./ProtocolName = OSPFv3 or .
    ./ProtocolName = ISIS or .
    ./ProtocolName = Application";
                          }
                          key "instance-name";
                          description
                            "ospf or ospfv3 or isis or application";
                          leaf instance-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Protocol Instance Identifier.  Mandatory
    for ISIS, OSPF and application, must not
    be specified otherwise.";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // list ospf-or-ospfv3-or-isis-or-application
    
                        list bgp {
                          when
                            "../protocol-name = 'bgp'" {
                            description
                              "../ProtocolName = BGP";
                          }
                          key "as-xx as-yy";
                          description "bgp";
                          leaf as-xx {
                            type uint32 {
                              range "0..65535";
                            }
                            description
                              "First half of BGP AS number in XX.YY
    format.  Mandatory if Protocol is BGP
    and must not be specified otherwise.
    Must be a non-zero value if second half
    is zero.";
                          }
    
                          leaf as-yy {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Second half of BGP AS number in XX.YY
    format. Mandatory if Protocol is BGP and
    must not be specified otherwise. Must be
    a non-zero value if first half is zero.";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // list bgp
    
                        list eigrp {
                          when
                            "../protocol-name = 'eigrp'" {
                            description
                              "../ProtocolName = EIGRP";
                          }
                          key "as-zz";
                          description "eigrp";
                          leaf as-zz {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Eigrp as number.";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // list eigrp
                      }  // list redistribution
                    }  // container redistributions
    
                    container application-tables {
                      description
                        "Advertise application specific values";
                      list application-table {
                        key "app-type";
                        description
                          "Application Name";
                        leaf app-type {
                          type Isis-application;
                          description
                            "Application Type";
                        }
    
                        list attribute-table {
                          key "app-type";
                          description
                            "Attribute Name";
                          leaf app-type {
                            type Isis-application-attribute;
                            description
                              "Application Type";
                          }
    
                          leaf enable {
                            type boolean;
                            mandatory true;
                            description
                              "If TRUE, advertise application link
    attribute in our LSP";
                          }
                        }  // list attribute-table
                      }  // list application-table
                    }  // container application-tables
    
                    container spf-periodic-intervals {
                      description
                        "Peoridic SPF configuration";
                      list spf-periodic-interval {
                        key "level";
                        description
                          "Maximum interval between spf runs";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf periodic-interval {
                          type uint32 {
                            range "0..3600";
                          }
                          units "second";
                          mandatory true;
                          description
                            "Maximum interval in between SPF runs in
    seconds";
                        }
                      }  // list spf-periodic-interval
                    }  // container spf-periodic-intervals
    
                    container distribute-list-in {
                      description
                        "Filter routes sent to the RIB";
                      leaf prefix-list-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Prefix list to control routes installed in
    RIB.";
                      }
    
                      leaf route-policy-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Route policy to control routes installed
    in RIB.";
                      }
                    }  // container distribute-list-in
    
                    container spf-intervals {
                      description
                        "SPF-interval configuration";
                      list spf-interval {
                        key "level";
                        description
                          "Route calculation scheduling parameters";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf maximum-wait {
                          type uint32 {
                            range "0..120000";
                          }
                          units "millisecond";
                          description
                            "Maximum wait before running a route
    calculation in milliseconds";
                        }
    
                        leaf initial-wait {
                          type uint32 {
                            range "0..120000";
                          }
                          units "millisecond";
                          description
                            "Initial wait before running a route
    calculation in milliseconds";
                        }
    
                        leaf secondary-wait {
                          type uint32 {
                            range "0..120000";
                          }
                          units "millisecond";
                          description
                            "Secondary wait before running a route
    calculation in milliseconds";
                        }
                      }  // list spf-interval
                    }  // container spf-intervals
    
                    container monitor-convergence {
                      description
                        "Enable convergence monitoring";
                      leaf enable {
                        type empty;
                        description
                          "Enable convergence monitoring";
                      }
    
                      leaf track-ip-frr {
                        type empty;
                        description
                          "Enable the Tracking of IP-Frr Convergence";
                      }
    
                      leaf prefix-list {
                        type xr:Cisco-ios-xr-string {
                          length "1..32";
                        }
                        description
                          "Enable the monitoring of individual
    prefixes (prefix list name)";
                      }
                    }  // container monitor-convergence
    
                    container default-information {
                      description
                        "Control origination of a default route with
    the option of using a policy.  If no policy
    is specified the default route is
    advertised with zero cost in level 2 only.";
                      leaf use-policy {
                        type boolean;
                        description
                          "Flag to indicate whether default
    origination is controlled using a policy";
                      }
    
                      leaf policy-name {
                        when
                          "../use-policy != 'false'" {
                          description
                            "../UsePolicy != false";
                        }
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Policy name";
                      }
    
                      leaf external {
                        type empty;
                        description
                          "Flag to indicate that the default prefix
    should be originated as an external route";
                      }
                    }  // container default-information
    
                    container admin-distances {
                      description
                        "Per-route administrative
    distanceconfiguration";
                      list admin-distance {
                        key "address-prefix";
                        description
                          "Administrative distance configuration. The
    supplied distance is applied to all routes
    discovered from the specified source, or
    only those that match the supplied prefix
    list if this is specified";
                        leaf address-prefix {
                          type inet:ip-prefix;
                          description
                            "IP route source prefix";
                        }
    
                        leaf distance {
                          type uint32 {
                            range "1..255";
                          }
                          mandatory true;
                          description
                            "Administrative distance";
                        }
    
                        leaf prefix-list {
                          type string {
                            length "1..32";
                          }
                          description
                            "List of prefixes to which this distance
    applies";
                        }
                      }  // list admin-distance
                    }  // container admin-distances
    
                    container ispf {
                      description
                        "ISPF configuration";
                      container states {
                        description
                          "ISPF state (enable/disable)";
                        list state {
                          key "level";
                          description
                            "Enable/disable ISPF";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf state {
                            type Isisispf-state;
                            mandatory true;
                            description "State";
                          }
                        }  // list state
                      }  // container states
                    }  // container ispf
    
                    container mpls-ldp-global {
                      description
                        "MPLS LDP configuration. MPLS LDP
    configuration will only be applied for the
    IPv4-unicast address-family.";
                      leaf auto-config {
                        type boolean;
                        description
                          "If TRUE, LDP will be enabled onall IS-IS
    interfaces enabled for this address-family";
                      }
                    }  // container mpls-ldp-global
    
                    container mpls {
                      description
                        "MPLS Traffic Engineering configuration.
    MPLS TE configuration will only be applied
    for the IPv4-unicast address-family.";
                      container router-id {
                        description
                          "Traffic Engineering stable IP address for
    system";
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          must
                            "not(../interface-name)";
                          description
                            "IPv4 address to be used as a router ID.
    Precisely one of Address and Interface
    must be specified.";
                        }
    
                        leaf interface-name {
                          type xr:Interface-name;
                          must "not(../address)";
                          description
                            "Interface with designated stable IP
    address to be used as a router ID. This
    must be a Loopback interface. Precisely
    one of Address and Interface must be
    specified.";
                        }
                      }  // container router-id
    
                      container level {
                        description
                          "Enable MPLS Traffic Engineering for IS-IS
    at the given levels";
                        leaf level1 {
                          type boolean;
                          description
                            "Level 1 enabled";
                        }
    
                        leaf level2 {
                          type boolean;
                          description
                            "Level 2 enabled";
                        }
                      }  // container level
    
                      container metrics {
                        description
                          "FA Tunnel Metric configuration";
                        list metric {
                          key "level";
                          description
                            "FA Tunnel Metric configuration";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Default FA tunnel metric";
                          }
                        }  // list metric
                      }  // container metrics
    
                      leaf tunnel-preferred {
                        type empty;
                        description
                          "Prefer TE tunnels over equal-cost physical
    paths";
                      }
    
                      leaf igp-intact {
                        type empty;
                        description
                          "Install TE and non-TE nexthops in the RIB";
                      }
    
                      leaf multicast-intact {
                        type empty;
                        description
                          "Install non-TE nexthops in the RIB for use
    by multicast";
                      }
    
                      leaf tunnel-restricted {
                        type empty;
                        description
                          "Use only primary TE tunnel for destination
    IP address";
                      }
                    }  // container mpls
    
                    container unlabeled-protection {
                      presence
                        "Indicates a unlabeled-protection node is configured.";
                      status deprecated;
                      description
                        "SR-MPLS protection for prefixes without a
    prefix SID";
                      leaf filter-type {
                        type Isis-unlabeled-protection;
                        mandatory true;
                        description
                          "Type of prefix filtering for unlabeled
    protection";
                      }
    
                      leaf prefix-list-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Prefix list to control unlabeled
    protection";
                      }
    
                      leaf route-policy-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Route policy to control unlabeled
    protection";
                      }
                    }  // container unlabeled-protection
    
                    leaf maximum-paths {
                      type uint32 {
                        range "1..64";
                      }
                      description
                        "Maximum number of active parallel paths per
    route";
                    }
    
                    leaf topology-id {
                      type uint32 {
                        range "6..4095";
                      }
                      description
                        "Set the topology ID for a named
    (non-default) topology. This object must be
    set before any other configuration is
    supplied for a named (non-default) topology
    , and must be the last configuration object
    to be removed. This item should not be
    supplied for the non-named default
    topologies.";
                    }
    
                    leaf single-topology {
                      type boolean;
                      description
                        "Run IPv6 Unicast using the standard (IPv4
    Unicast) topology";
                    }
    
                    leaf adjacency-check {
                      type Isis-adj-check;
                      description
                        "Suppress check for consistent AF support on
    received IIHs";
                    }
    
                    leaf advertise-link-attributes {
                      type boolean;
                      description
                        "If TRUE, advertise additional link
    attributes in our LSP";
                    }
    
                    leaf apply-weight {
                      type Isis-apply-weight;
                      description
                        "Apply weights to UCMP or ECMP only";
                    }
    
                    leaf default-admin-distance {
                      type uint32 {
                        range "1..255";
                      }
                      default "115";
                      description
                        "Default IS-IS administrative distance
    configuration.";
                    }
    
                    leaf advertise-passive-only {
                      type empty;
                      description
                        "If enabled, advertise prefixes of passive
    interfaces only";
                    }
    
                    leaf ignore-attached-bit {
                      type boolean;
                      description
                        "If TRUE, Ignore other routers attached bit";
                    }
    
                    leaf attached-bit {
                      type Isis-attached-bit;
                      default "area";
                      description
                        "Set the attached bit in this router's level
    1 System LSP";
                    }
    
                    leaf prot-adj-sid-deletion-delay {
                      type uint32 {
                        range "30..3600";
                      }
                      description
                        "Protected adjacency SID deletion delay";
                    }
    
                    leaf route-source-first-hop {
                      type boolean;
                      description
                        "If TRUE, routes will be installed with the
    IP address of the first-hop node as the
    source instead of the originating node";
                    }
    
                    container manual-adj-sids {
                      description
                        "Manual Adjacecy SID configuration";
                      list manual-adj-sid {
                        key "level sid-type sid";
                        description
                          "Assign adjancency SID to an interface";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf sid-type {
                          type Isissid1;
                          description
                            "Sid type aboslute or index";
                        }
    
                        leaf sid {
                          type Isissid;
                          description
                            "Sid value";
                        }
    
                        leaf protected {
                          type Isissid-protected;
                          mandatory true;
                          description
                            "Enable/Disable SID protection";
                        }
                      }  // list manual-adj-sid
                    }  // container manual-adj-sids
    
                    container te-metrics {
                      description
                        "Traffic Engineering metric configuration";
                      list te-metric {
                        key "level";
                        description
                          "TE Metric configuration";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf te-metric {
                          type union {
                            type enumeration {
                              enum "maximum" {
                                value 16777215;
                                description
                                  "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                              }
                            }
                            type uint32 {
                              range
                                "1..16777215";
                            }
                          }
                          mandatory true;
                          description
                            "Allowed metric <1-16777215>";
                        }
                      }  // list te-metric
                    }  // container te-metrics
    
                    container metrics {
                      description
                        "Metric configuration";
                      list metric {
                        key "level";
                        description
                          "Metric configuration. Legal value depends on
    the metric-style specified for the topology. If
    the metric-style defined is narrow, then only a
    value between <1-63> is allowed and if the
    metric-style is defined as wide, then a value
    between <1-16777215> is allowed as the metric
    value.  All routers exclude links with the
    maximum wide metric (16777215) from their SPF";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf metric {
                          type union {
                            type enumeration {
                              enum "maximum" {
                                value 16777215;
                                description
                                  "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                              }
                            }
                            type uint32 {
                              range
                                "1..16777215";
                            }
                          }
                          mandatory true;
                          description
                            "Allowed metric: <1-63> for narrow,
    <1-16777215> for wide";
                        }
                      }  // list metric
                    }  // container metrics
    
                    container weights {
                      description
                        "Weight configuration";
                      list weight {
                        key "level";
                        description
                          "Weight configuration under interface for load
    balancing";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf weight {
                          type uint32 {
                            range "1..16777214";
                          }
                          mandatory true;
                          description
                            "Weight to be configured under interface for
    Load Balancing. Allowed weight: <1-16777215>";
                        }
                      }  // list weight
                    }  // container weights
                  }  // container af-data
    
                  leaf af-name {
                    type dt1:Isis-address-family;
                    description "Address family";
                  }
    
                  leaf saf-name {
                    type dt1:Isis-sub-address-family;
                    description
                      "Sub address family";
                  }
    
                  list topology-name {
                    key "topology-name";
                    description
                      "keys: topology-name";
                    leaf topology-name {
                      type dt1:Isis-topology-name;
                      description
                        "Topology Name";
                    }
    
                    container segment-routing {
                      description
                        "Enable Segment Routing configuration";
                      container srv6 {
                        description
                          "SRv6 configuration";
                        container srv6-locators {
                          description
                            "SRv6 Locator configuration";
                          list srv6-locator {
                            key "locator-name";
                            description
                              "Configuration for a single SRv6 Locator";
                            leaf running {
                              type empty;
                              description
                                "The presence of this object enables a
    SRv6 Locator. This must be the first
    object created under the SRv6Locator
    container, and the last one deleted";
                            }
    
                            leaf srv6-locator-level {
                              type Isis-configurable-level;
                              default "level-12";
                              description
                                "The level into which this locator
    should be advertised.";
                            }
    
                            leaf locator-name {
                              type dt1:Isis-locator-name;
                              description
                                "Locator Name";
                            }
                          }  // list srv6-locator
                        }  // container srv6-locators
    
                        leaf running {
                          type empty;
                          description
                            "The presence of this object enables SRv6.
    This must be the first object created
    under the SRV6 container, and the last
    one deleted";
                        }
                      }  // container srv6
    
                      container connected-prefix-sids {
                        description
                          "Connected Segment Routing prefix SID map
    configuration";
                        list connected-prefix-sid {
                          key "address-prefix algo";
                          description
                            "Segment Routing prefix SID map";
                          leaf address-prefix {
                            type inet:ip-prefix;
                            description
                              "IP address prefix";
                          }
    
                          leaf algo {
                            type uint32 {
                              range "0..255";
                            }
                            description "Algo";
                          }
    
                          leaf sid-type {
                            type Isissid1;
                            mandatory true;
                            description
                              "SID type for the interface";
                          }
    
                          leaf sid {
                            type Isissid;
                            mandatory true;
                            description
                              "SID value for the interface";
                          }
    
                          leaf sid-range {
                            type uint32 {
                              range "1..1048575";
                            }
                            description
                              "Range of SIDs";
                          }
    
                          leaf interface {
                            type string {
                              length "1..64";
                            }
                            description
                              "Interface to which prefix belongs";
                          }
    
                          leaf php {
                            type Isisphp-flag;
                            description
                              "Enable/Disable Penultimate Hop Popping";
                          }
    
                          leaf explicit-null {
                            type Isisexplicit-null-flag;
                            description
                              "Enable/Disable Explicit-NULL flag";
                          }
                        }  // list connected-prefix-sid
                      }  // container connected-prefix-sids
    
                      container prefix-sid-map {
                        description
                          "Enable Segment Routing prefix SID map
    configuration";
                        leaf advertise-local {
                          type Isis-advertise-local;
                          description
                            "Enable Segment Routing prefix SID map
    advertise local";
                        }
    
                        leaf receive {
                          type boolean;
                          description
                            "If TRUE, remote prefix SID map
    advertisements will be used. If FALSE,
    they will not be used.";
                        }
                      }  // container prefix-sid-map
    
                      container unlabeled-protection {
                        presence
                          "Indicates a unlabeled-protection node is configured.";
                        description
                          "SR-MPLS protection for prefixes without a
    prefix SID";
                        leaf filter-type {
                          type Isis-unlabeled-protection;
                          mandatory true;
                          description
                            "Type of prefix filtering for unlabeled
    protection";
                        }
    
                        leaf prefix-list-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          description
                            "Prefix list to control unlabeled
    protection";
                        }
    
                        leaf route-policy-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          description
                            "Route policy to control unlabeled
    protection";
                        }
                      }  // container unlabeled-protection
    
                      leaf bundle-member-adj-sid {
                        type empty;
                        description
                          "Enable per bundle member adjacency SID";
                      }
    
                      leaf labeled-only {
                        type empty;
                        description
                          "Only install SR labeled paths";
                      }
    
                      leaf mpls {
                        type Isis-label-preference;
                        description
                          "Prefer segment routing labels over LDP
    labels";
                      }
                    }  // container segment-routing
    
                    container metric-styles {
                      description
                        "Metric-style configuration";
                      list metric-style {
                        key "level";
                        description
                          "Configuration of metric style in LSPs";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf style {
                          type Isis-metric-style;
                          mandatory true;
                          description
                            "Metric Style";
                        }
                      }  // list metric-style
                    }  // container metric-styles
    
                    container frr-table {
                      description
                        "Fast-ReRoute configuration";
                      container frr-load-sharings {
                        description
                          "Load share prefixes across multiple
    backups";
                        list frr-load-sharing {
                          key "level";
                          description
                            "Disable load sharing";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf load-sharing {
                            type Isisfrr-load-sharing;
                            mandatory true;
                            description
                              "Load sharing";
                          }
                        }  // list frr-load-sharing
                      }  // container frr-load-sharings
    
                      container frrsrlg-protection-types {
                        description
                          "SRLG protection type configuration";
                        list frrsrlg-protection-type {
                          key "level";
                          description
                            "FRR SRLG Protection Type";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf protection-type {
                            type Isisfrr-srlg-protection;
                            mandatory true;
                            description
                              "Protection Type";
                          }
                        }  // list frrsrlg-protection-type
                      }  // container frrsrlg-protection-types
    
                      container priority-limits {
                        description
                          "FRR prefix-limit configuration";
                        list priority-limit {
                          key "level frr-type";
                          description
                            "Limit backup computation upto the prefix
    priority";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf frr-type {
                            type Isisfrr;
                            description
                              "Computation Type";
                          }
    
                          leaf priority {
                            type Isis-prefix-priority;
                            mandatory true;
                            description
                              "Compute for all prefixes upto the
    specified priority";
                          }
                        }  // list priority-limit
                      }  // container priority-limits
    
                      container frr-remote-lfa-prefixes {
                        description
                          "FRR remote LFA prefix list filter
    configuration";
                        list frr-remote-lfa-prefix {
                          key "level";
                          description
                            "Filter remote LFA router IDs using
    prefix-list";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf prefix-list-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..32";
                            }
                            mandatory true;
                            description
                              "Name of the prefix list";
                          }
                        }  // list frr-remote-lfa-prefix
                      }  // container frr-remote-lfa-prefixes
    
                      container frr-tiebreakers {
                        description
                          "FRR tiebreakers configuration";
                        list frr-tiebreaker {
                          key "level tiebreaker";
                          description
                            "Configure tiebreaker for multiple backups";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf tiebreaker {
                            type Isisfrr-tiebreaker;
                            description
                              "Tiebreaker for which configuration
    applies";
                          }
    
                          leaf index {
                            type uint32 {
                              range "1..255";
                            }
                            mandatory true;
                            description
                              "Preference order among tiebreakers";
                          }
                        }  // list frr-tiebreaker
                      }  // container frr-tiebreakers
    
                      container frr-use-cand-onlies {
                        description
                          "FRR use candidate only configuration";
                        list frr-use-cand-only {
                          key "level frr-type";
                          description
                            "Configure use candidate only to exclude
    interfaces as backup";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf frr-type {
                            type Isisfrr;
                            description
                              "Computation Type";
                          }
                        }  // list frr-use-cand-only
                      }  // container frr-use-cand-onlies
    
                      leaf frr-initial-delay {
                        type uint32 {
                          range "100..60000";
                        }
                        units "millisecond";
                        description
                          "Delay before running FRR (milliseconds)";
                      }
                    }  // container frr-table
    
                    container router-id {
                      description
                        "Stable IP address for system. Will only be
    applied for the unicast sub-address-family.";
                      leaf address {
                        type string;
                        must
                          "not(../interface-name)";
                        description
                          "IPv4/IPv6 address to be used as a router
    ID. Precisely one of Address and Interface
    must be specified.";
                      }
    
                      leaf interface-name {
                        type xr:Interface-name;
                        must "not(../address)";
                        description
                          "Interface with designated stable IP
    address to be used as a router ID. This
    must be a Loopback interface. Precisely
    one of Address and Interface must be
    specified.";
                      }
                    }  // container router-id
    
                    container spf-prefix-priorities {
                      description
                        "SPF Prefix Priority configuration";
                      list spf-prefix-priority {
                        key "level prefix-priority-type";
                        description
                          "Determine SPF priority for prefixes";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "SPF Level for prefix prioritization";
                        }
    
                        leaf prefix-priority-type {
                          type Isis-prefix-priority;
                          description
                            "SPF Priority to assign matching prefixes";
                        }
    
                        leaf admin-tag {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          must
                            "not(../access-list-name)";
                          description
                            "Tag value to determine prefixes for this
    priority";
                        }
    
                        leaf access-list-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          must
                            "not(../admin-tag)";
                          description
                            "Access List to determine prefixes for
    this priority";
                        }
                      }  // list spf-prefix-priority
                    }  // container spf-prefix-priorities
    
                    container summary-prefixes {
                      description
                        "Summary-prefix configuration";
                      list summary-prefix {
                        key "address-prefix";
                        description
                          "Configure IP address prefixes to advertise";
                        leaf address-prefix {
                          type inet:ip-prefix;
                          description
                            "IP summary address prefix";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "The tag value";
                        }
    
                        leaf level {
                          type uint32 {
                            range "1..2";
                          }
                          description
                            "Level in which to summarize routes";
                        }
    
                        leaf flex-algo {
                          type uint32 {
                            range "128..255";
                          }
                          description
                            "Flexible Algorithm number";
                        }
    
                        leaf explicit {
                          type empty;
                          description
                            "Only consider prefixes from identical
    algorithm";
                        }
                      }  // list summary-prefix
                    }  // container summary-prefixes
    
                    container micro-loop-avoidance {
                      description
                        "Micro Loop Avoidance configuration";
                      leaf enable {
                        type Isis-micro-loop-avoidance;
                        description
                          "MicroLoop avoidance enable configuration";
                      }
    
                      leaf rib-update-delay {
                        type uint32 {
                          range "1000..65535";
                        }
                        units "millisecond";
                        default "5000";
                        description
                          "Value of delay in msecs in updating RIB";
                      }
                    }  // container micro-loop-avoidance
    
                    container ucmp {
                      description
                        "UCMP (UnEqual Cost MultiPath) configuration";
                      container enable {
                        presence
                          "Contains mandatory nodes that used to set default values";
                        description
                          "UCMP feature enable configuration";
                        leaf variance {
                          type uint32 {
                            range "101..10000";
                          }
                          mandatory true;
                          description
                            "Value of variance";
                        }
    
                        leaf prefix-list-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..32";
                          }
                          description
                            "Name of the Prefix List";
                        }
                      }  // container enable
    
                      container exclude-interfaces {
                        description
                          "Interfaces excluded from UCMP path
    computation";
                        list exclude-interface {
                          key "interface-name";
                          description
                            "Exclude this interface from UCMP path
    computation";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Name of the interface to be excluded";
                          }
                        }  // list exclude-interface
                      }  // container exclude-interfaces
    
                      leaf delay-interval {
                        type uint32 {
                          range "100..65535";
                        }
                        units "millisecond";
                        default "100";
                        description
                          "Delay in msecs between primary SPF and
    UCMP computation";
                      }
                    }  // container ucmp
    
                    container max-redist-prefixes {
                      description
                        "Maximum number of redistributed
    prefixesconfiguration";
                      list max-redist-prefix {
                        key "level";
                        description
                          "An upper limit on the number of
    redistributed prefixes which may be
    included in the local system's LSP";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf prefix-limit {
                          type uint32 {
                            range "1..28000";
                          }
                          mandatory true;
                          description
                            "Max number of prefixes";
                        }
                      }  // list max-redist-prefix
                    }  // container max-redist-prefixes
    
                    container propagations {
                      description
                        "Route propagation configuration";
                      list propagation {
                        key "source-level destination-level";
                        description
                          "Propagate routes between IS-IS levels";
                        leaf source-level {
                          type dt1:Isis-internal-level;
                          description
                            "Source level for routes";
                        }
    
                        leaf destination-level {
                          type dt1:Isis-internal-level;
                          description
                            "Destination level for routes.  Must
    differ from SourceLevel";
                        }
    
                        leaf route-policy-name {
                          type xr:Cisco-ios-xr-string {
                            length "1..64";
                          }
                          mandatory true;
                          description
                            "Route policy limiting routes to be
    propagated";
                        }
                      }  // list propagation
                    }  // container propagations
    
                    container redistributions {
                      description
                        "Protocol redistribution configuration";
                      list redistribution {
                        must
                          "connected-or-static-or-rip-or-subscriber-or-mobile or ospf-or-ospfv3-or-isis-or-application or bgp or eigrp" {
                          description
                            "Connected-or-Static-or-RIP-or-Subscriber-or-Mobile or OSPF-or-OSPFv3-or-ISIS-or-Application or BGP or EIGRP must be present.";
                        }
                        key "protocol-name";
                        description
                          "Redistribution of other protocols into
    this IS-IS instance";
                        container connected-or-static-or-rip-or-subscriber-or-mobile {
                          when
                            "../protocol-name = 'connected' or ../protocol-name = 'static' or ../protocol-name = 'rip' or ../protocol-name = 'subscriber' or ../protocol-name = 'mobile'" {
                            description
                              "../ProtocolName = Connected or .
    ./ProtocolName = Static or .
    ./ProtocolName = RIP or ../ProtocolName
    = Subscriber or ../ProtocolName =
    Mobile";
                          }
                          presence
                            "Indicates that this node is configured.";
                          description
                            "connected or static or rip or subscriber
    or mobile";
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // container connected-or-static-or-rip-or-subscriber-or-mobile
    
                        leaf protocol-name {
                          type Isis-redist-proto;
                          description
                            "The protocol to be redistributed.  OSPFv3
    may not be specified for an IPv4 topology
    and OSPF may not be specified for an IPv6
    topology.";
                        }
    
                        list ospf-or-ospfv3-or-isis-or-application {
                          when
                            "../protocol-name = 'ospf' or ../protocol-name = 'ospfv3' or ../protocol-name = 'isis' or ../protocol-name = 'application'" {
                            description
                              "../ProtocolName = OSPF or .
    ./ProtocolName = OSPFv3 or .
    ./ProtocolName = ISIS or .
    ./ProtocolName = Application";
                          }
                          key "instance-name";
                          description
                            "ospf or ospfv3 or isis or application";
                          leaf instance-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Protocol Instance Identifier.  Mandatory
    for ISIS, OSPF and application, must not
    be specified otherwise.";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // list ospf-or-ospfv3-or-isis-or-application
    
                        list bgp {
                          when
                            "../protocol-name = 'bgp'" {
                            description
                              "../ProtocolName = BGP";
                          }
                          key "as-xx as-yy";
                          description "bgp";
                          leaf as-xx {
                            type uint32 {
                              range "0..65535";
                            }
                            description
                              "First half of BGP AS number in XX.YY
    format.  Mandatory if Protocol is BGP
    and must not be specified otherwise.
    Must be a non-zero value if second half
    is zero.";
                          }
    
                          leaf as-yy {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Second half of BGP AS number in XX.YY
    format. Mandatory if Protocol is BGP and
    must not be specified otherwise. Must be
    a non-zero value if first half is zero.";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // list bgp
    
                        list eigrp {
                          when
                            "../protocol-name = 'eigrp'" {
                            description
                              "../ProtocolName = EIGRP";
                          }
                          key "as-zz";
                          description "eigrp";
                          leaf as-zz {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Eigrp as number.";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            description
                              "Metric for redistributed routes: <0-63>
    for narrow, <0-16777215> for wide";
                          }
    
                          leaf levels {
                            type Isis-configurable-levels;
                            description
                              "Levels to redistribute routes into";
                          }
    
                          leaf route-policy-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..64";
                            }
                            description
                              "Route policy to control redistribution.";
                          }
    
                          leaf metric-type {
                            type Isis-metric;
                            description
                              "IS-IS metric type";
                          }
    
                          leaf route-type {
                            type uint32;
                            description
                              "OSPF and EIGRP: route types to
    redistribute.";
                          }
    
                          leaf down-flag-clear {
                            type uint32;
                            description
                              "ISIS: Redistribute with the up/down flag
    set to 0.";
                          }
                        }  // list eigrp
                      }  // list redistribution
                    }  // container redistributions
    
                    container application-tables {
                      description
                        "Advertise application specific values";
                      list application-table {
                        key "app-type";
                        description
                          "Application Name";
                        leaf app-type {
                          type Isis-application;
                          description
                            "Application Type";
                        }
    
                        list attribute-table {
                          key "app-type";
                          description
                            "Attribute Name";
                          leaf app-type {
                            type Isis-application-attribute;
                            description
                              "Application Type";
                          }
    
                          leaf enable {
                            type boolean;
                            mandatory true;
                            description
                              "If TRUE, advertise application link
    attribute in our LSP";
                          }
                        }  // list attribute-table
                      }  // list application-table
                    }  // container application-tables
    
                    container spf-periodic-intervals {
                      description
                        "Peoridic SPF configuration";
                      list spf-periodic-interval {
                        key "level";
                        description
                          "Maximum interval between spf runs";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf periodic-interval {
                          type uint32 {
                            range "0..3600";
                          }
                          units "second";
                          mandatory true;
                          description
                            "Maximum interval in between SPF runs in
    seconds";
                        }
                      }  // list spf-periodic-interval
                    }  // container spf-periodic-intervals
    
                    container distribute-list-in {
                      description
                        "Filter routes sent to the RIB";
                      leaf prefix-list-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Prefix list to control routes installed in
    RIB.";
                      }
    
                      leaf route-policy-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Route policy to control routes installed
    in RIB.";
                      }
                    }  // container distribute-list-in
    
                    container spf-intervals {
                      description
                        "SPF-interval configuration";
                      list spf-interval {
                        key "level";
                        description
                          "Route calculation scheduling parameters";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf maximum-wait {
                          type uint32 {
                            range "0..120000";
                          }
                          units "millisecond";
                          description
                            "Maximum wait before running a route
    calculation in milliseconds";
                        }
    
                        leaf initial-wait {
                          type uint32 {
                            range "0..120000";
                          }
                          units "millisecond";
                          description
                            "Initial wait before running a route
    calculation in milliseconds";
                        }
    
                        leaf secondary-wait {
                          type uint32 {
                            range "0..120000";
                          }
                          units "millisecond";
                          description
                            "Secondary wait before running a route
    calculation in milliseconds";
                        }
                      }  // list spf-interval
                    }  // container spf-intervals
    
                    container monitor-convergence {
                      description
                        "Enable convergence monitoring";
                      leaf enable {
                        type empty;
                        description
                          "Enable convergence monitoring";
                      }
    
                      leaf track-ip-frr {
                        type empty;
                        description
                          "Enable the Tracking of IP-Frr Convergence";
                      }
    
                      leaf prefix-list {
                        type xr:Cisco-ios-xr-string {
                          length "1..32";
                        }
                        description
                          "Enable the monitoring of individual
    prefixes (prefix list name)";
                      }
                    }  // container monitor-convergence
    
                    container default-information {
                      description
                        "Control origination of a default route with
    the option of using a policy.  If no policy
    is specified the default route is
    advertised with zero cost in level 2 only.";
                      leaf use-policy {
                        type boolean;
                        description
                          "Flag to indicate whether default
    origination is controlled using a policy";
                      }
    
                      leaf policy-name {
                        when
                          "../use-policy != 'false'" {
                          description
                            "../UsePolicy != false";
                        }
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Policy name";
                      }
    
                      leaf external {
                        type empty;
                        description
                          "Flag to indicate that the default prefix
    should be originated as an external route";
                      }
                    }  // container default-information
    
                    container admin-distances {
                      description
                        "Per-route administrative
    distanceconfiguration";
                      list admin-distance {
                        key "address-prefix";
                        description
                          "Administrative distance configuration. The
    supplied distance is applied to all routes
    discovered from the specified source, or
    only those that match the supplied prefix
    list if this is specified";
                        leaf address-prefix {
                          type inet:ip-prefix;
                          description
                            "IP route source prefix";
                        }
    
                        leaf distance {
                          type uint32 {
                            range "1..255";
                          }
                          mandatory true;
                          description
                            "Administrative distance";
                        }
    
                        leaf prefix-list {
                          type string {
                            length "1..32";
                          }
                          description
                            "List of prefixes to which this distance
    applies";
                        }
                      }  // list admin-distance
                    }  // container admin-distances
    
                    container ispf {
                      description
                        "ISPF configuration";
                      container states {
                        description
                          "ISPF state (enable/disable)";
                        list state {
                          key "level";
                          description
                            "Enable/disable ISPF";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf state {
                            type Isisispf-state;
                            mandatory true;
                            description "State";
                          }
                        }  // list state
                      }  // container states
                    }  // container ispf
    
                    container mpls-ldp-global {
                      description
                        "MPLS LDP configuration. MPLS LDP
    configuration will only be applied for the
    IPv4-unicast address-family.";
                      leaf auto-config {
                        type boolean;
                        description
                          "If TRUE, LDP will be enabled onall IS-IS
    interfaces enabled for this address-family";
                      }
                    }  // container mpls-ldp-global
    
                    container mpls {
                      description
                        "MPLS Traffic Engineering configuration.
    MPLS TE configuration will only be applied
    for the IPv4-unicast address-family.";
                      container router-id {
                        description
                          "Traffic Engineering stable IP address for
    system";
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          must
                            "not(../interface-name)";
                          description
                            "IPv4 address to be used as a router ID.
    Precisely one of Address and Interface
    must be specified.";
                        }
    
                        leaf interface-name {
                          type xr:Interface-name;
                          must "not(../address)";
                          description
                            "Interface with designated stable IP
    address to be used as a router ID. This
    must be a Loopback interface. Precisely
    one of Address and Interface must be
    specified.";
                        }
                      }  // container router-id
    
                      container level {
                        description
                          "Enable MPLS Traffic Engineering for IS-IS
    at the given levels";
                        leaf level1 {
                          type boolean;
                          description
                            "Level 1 enabled";
                        }
    
                        leaf level2 {
                          type boolean;
                          description
                            "Level 2 enabled";
                        }
                      }  // container level
    
                      container metrics {
                        description
                          "FA Tunnel Metric configuration";
                        list metric {
                          key "level";
                          description
                            "FA Tunnel Metric configuration";
                          leaf level {
                            type dt1:Isis-internal-level;
                            description
                              "Level to which configuration applies";
                          }
    
                          leaf metric {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Default FA tunnel metric";
                          }
                        }  // list metric
                      }  // container metrics
    
                      leaf tunnel-preferred {
                        type empty;
                        description
                          "Prefer TE tunnels over equal-cost physical
    paths";
                      }
    
                      leaf igp-intact {
                        type empty;
                        description
                          "Install TE and non-TE nexthops in the RIB";
                      }
    
                      leaf multicast-intact {
                        type empty;
                        description
                          "Install non-TE nexthops in the RIB for use
    by multicast";
                      }
    
                      leaf tunnel-restricted {
                        type empty;
                        description
                          "Use only primary TE tunnel for destination
    IP address";
                      }
                    }  // container mpls
    
                    container unlabeled-protection {
                      presence
                        "Indicates a unlabeled-protection node is configured.";
                      status deprecated;
                      description
                        "SR-MPLS protection for prefixes without a
    prefix SID";
                      leaf filter-type {
                        type Isis-unlabeled-protection;
                        mandatory true;
                        description
                          "Type of prefix filtering for unlabeled
    protection";
                      }
    
                      leaf prefix-list-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Prefix list to control unlabeled
    protection";
                      }
    
                      leaf route-policy-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Route policy to control unlabeled
    protection";
                      }
                    }  // container unlabeled-protection
    
                    leaf maximum-paths {
                      type uint32 {
                        range "1..64";
                      }
                      description
                        "Maximum number of active parallel paths per
    route";
                    }
    
                    leaf topology-id {
                      type uint32 {
                        range "6..4095";
                      }
                      description
                        "Set the topology ID for a named
    (non-default) topology. This object must be
    set before any other configuration is
    supplied for a named (non-default) topology
    , and must be the last configuration object
    to be removed. This item should not be
    supplied for the non-named default
    topologies.";
                    }
    
                    leaf single-topology {
                      type boolean;
                      description
                        "Run IPv6 Unicast using the standard (IPv4
    Unicast) topology";
                    }
    
                    leaf adjacency-check {
                      type Isis-adj-check;
                      description
                        "Suppress check for consistent AF support on
    received IIHs";
                    }
    
                    leaf advertise-link-attributes {
                      type boolean;
                      description
                        "If TRUE, advertise additional link
    attributes in our LSP";
                    }
    
                    leaf apply-weight {
                      type Isis-apply-weight;
                      description
                        "Apply weights to UCMP or ECMP only";
                    }
    
                    leaf default-admin-distance {
                      type uint32 {
                        range "1..255";
                      }
                      default "115";
                      description
                        "Default IS-IS administrative distance
    configuration.";
                    }
    
                    leaf advertise-passive-only {
                      type empty;
                      description
                        "If enabled, advertise prefixes of passive
    interfaces only";
                    }
    
                    leaf ignore-attached-bit {
                      type boolean;
                      description
                        "If TRUE, Ignore other routers attached bit";
                    }
    
                    leaf attached-bit {
                      type Isis-attached-bit;
                      default "area";
                      description
                        "Set the attached bit in this router's level
    1 System LSP";
                    }
    
                    leaf prot-adj-sid-deletion-delay {
                      type uint32 {
                        range "30..3600";
                      }
                      description
                        "Protected adjacency SID deletion delay";
                    }
    
                    leaf route-source-first-hop {
                      type boolean;
                      description
                        "If TRUE, routes will be installed with the
    IP address of the first-hop node as the
    source instead of the originating node";
                    }
    
                    container manual-adj-sids {
                      description
                        "Manual Adjacecy SID configuration";
                      list manual-adj-sid {
                        key "level sid-type sid";
                        description
                          "Assign adjancency SID to an interface";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf sid-type {
                          type Isissid1;
                          description
                            "Sid type aboslute or index";
                        }
    
                        leaf sid {
                          type Isissid;
                          description
                            "Sid value";
                        }
    
                        leaf protected {
                          type Isissid-protected;
                          mandatory true;
                          description
                            "Enable/Disable SID protection";
                        }
                      }  // list manual-adj-sid
                    }  // container manual-adj-sids
    
                    container te-metrics {
                      description
                        "Traffic Engineering metric configuration";
                      list te-metric {
                        key "level";
                        description
                          "TE Metric configuration";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf te-metric {
                          type union {
                            type enumeration {
                              enum "maximum" {
                                value 16777215;
                                description
                                  "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                              }
                            }
                            type uint32 {
                              range
                                "1..16777215";
                            }
                          }
                          mandatory true;
                          description
                            "Allowed metric <1-16777215>";
                        }
                      }  // list te-metric
                    }  // container te-metrics
    
                    container metrics {
                      description
                        "Metric configuration";
                      list metric {
                        key "level";
                        description
                          "Metric configuration. Legal value depends on
    the metric-style specified for the topology. If
    the metric-style defined is narrow, then only a
    value between <1-63> is allowed and if the
    metric-style is defined as wide, then a value
    between <1-16777215> is allowed as the metric
    value.  All routers exclude links with the
    maximum wide metric (16777215) from their SPF";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf metric {
                          type union {
                            type enumeration {
                              enum "maximum" {
                                value 16777215;
                                description
                                  "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                              }
                            }
                            type uint32 {
                              range
                                "1..16777215";
                            }
                          }
                          mandatory true;
                          description
                            "Allowed metric: <1-63> for narrow,
    <1-16777215> for wide";
                        }
                      }  // list metric
                    }  // container metrics
    
                    container weights {
                      description
                        "Weight configuration";
                      list weight {
                        key "level";
                        description
                          "Weight configuration under interface for load
    balancing";
                        leaf level {
                          type dt1:Isis-internal-level;
                          description
                            "Level to which configuration applies";
                        }
    
                        leaf weight {
                          type uint32 {
                            range "1..16777214";
                          }
                          mandatory true;
                          description
                            "Weight to be configured under interface for
    Load Balancing. Allowed weight: <1-16777215>";
                        }
                      }  // list weight
                    }  // container weights
                  }  // list topology-name
                }  // list af
              }  // container afs
    
              container lsp-refresh-intervals {
                description
                  "LSP refresh-interval configuration";
                list lsp-refresh-interval {
                  key "level";
                  description
                    "Interval between re-flooding of unchanged
                   LSPs";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf interval {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    mandatory true;
                    description "Seconds";
                  }
                }  // list lsp-refresh-interval
              }  // container lsp-refresh-intervals
    
              container distribute {
                presence "enable distribute";
                description
                  "Distribute link-state configuration";
                leaf dist-inst-id {
                  type uint32 {
                    range "32..4294967295";
                  }
                  description "Instance ID";
                }
    
                leaf level {
                  type Isis-configurable-levels;
                  description "Level";
                }
    
                leaf dist-throttle {
                  type uint32 {
                    range "1..20";
                  }
                  units "second";
                  description "Seconds";
                }
              }  // container distribute
    
              container flex-algos {
                description "Flex-Algo Table";
                list flex-algo {
                  key "flex-algo";
                  description
                    "Configuration for an IS-IS Flex-Algo";
                  container affinity-include-anies {
                    description
                      "Set the include-any affinity";
                    leaf-list affinity-include-any {
                      type string;
                      max-elements 32;
                      description
                        "Array of Attribute Names";
                    }
                  }  // container affinity-include-anies
    
                  container affinity-exclude-anies {
                    description
                      "Set the exclude-any affinity";
                    leaf-list affinity-exclude-any {
                      type string;
                      max-elements 32;
                      description
                        "Array of Attribute Names";
                    }
                  }  // container affinity-exclude-anies
    
                  container affinity-include-alls {
                    description
                      "Set the include-all affinity";
                    leaf-list affinity-include-all {
                      type string;
                      max-elements 32;
                      description
                        "Array of Attribute Names";
                    }
                  }  // container affinity-include-alls
    
                  leaf prefix-metric {
                    type empty;
                    description
                      "Use Flex-algo Prefix Metric";
                  }
    
                  leaf running {
                    type empty;
                    description
                      "This object must be set before any other
                     configuration is supplied for an interface,
                     and must be the last per-interface
                     configuration object to be removed.";
                  }
    
                  leaf micoloop-avoidance-disable {
                    type boolean;
                    description
                      "If TRUE, FRR protectinn is disabled for the
                     Flex-Algo.";
                  }
    
                  leaf metric-type {
                    type uint32 {
                      range "1..2";
                    }
                    description
                      "Set the Flex-Algo metric-type";
                  }
    
                  leaf priority {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Set the Flex-Algo priority";
                  }
    
                  leaf frr-disable {
                    type boolean;
                    description
                      "If TRUE, FRR protectinn is disabled for the
                     Flex-Algo.";
                  }
    
                  leaf advertise-definition {
                    type boolean;
                    description
                      "If TRUE, Flex-Algo definition is advertised";
                  }
    
                  leaf flex-algo {
                    type uint32 {
                      range "128..255";
                    }
                    description "Flex Algo";
                  }
                }  // list flex-algo
              }  // container flex-algos
    
              container affinity-mappings {
                description
                  "Affinity Mapping Table";
                list affinity-mapping {
                  key "affinity-name";
                  description
                    "Affinity Mapping configuration";
                  leaf affinity-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description "Affinity Name";
                  }
    
                  leaf value {
                    type uint32 {
                      range "0..255";
                    }
                    mandatory true;
                    description "Bit position";
                  }
                }  // list affinity-mapping
              }  // container affinity-mappings
    
              container lsp-accept-passwords {
                description
                  "LSP/SNP accept password configuration";
                list lsp-accept-password {
                  key "level";
                  description
                    "LSP/SNP accept passwords. This requires the
                   existence of an LSPPassword of the same level
                   .";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf password {
                    type xr:Proprietary-password;
                    mandatory true;
                    description "Password";
                  }
                }  // list lsp-accept-password
              }  // container lsp-accept-passwords
    
              container lsp-mtus {
                description
                  "LSP MTU configuration";
                list lsp-mtu {
                  key "level";
                  description "LSP MTU";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf mtu {
                    type uint32 {
                      range "128..8979";
                    }
                    units "byte";
                    mandatory true;
                    description "Bytes";
                  }
                }  // list lsp-mtu
              }  // container lsp-mtus
    
              container srlg-table {
                description "SRLG configuration";
                container srlg-names {
                  description
                    "SRLG named configuration";
                  list srlg-name {
                    key "srlg-name";
                    description
                      "Configuration for an IS-IS SRLG";
                    container from-tos {
                      description
                        "Configure Static Remote SRLG";
                      list from-to {
                        key "local-ipv4-address remote-ipv4-address";
                        description
                          "Local and remote addresses of a link";
                        leaf local-ipv4-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Local IPv4 address";
                        }
    
                        leaf remote-ipv4-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Remote IPv4 address";
                        }
                      }  // list from-to
                    }  // container from-tos
    
                    leaf admin-weight {
                      type uint32 {
                        range "0..16777215";
                      }
                      description
                        "Configure SRLG Admin Weight";
                    }
    
                    leaf srlg-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description "Srlg name";
                    }
                  }  // list srlg-name
                }  // container srlg-names
    
                leaf srlg-admin-weight-default {
                  type uint32 {
                    range "0..16777215";
                  }
                  description
                    "Configure Default SRLG Admin Weight";
                }
              }  // container srlg-table
    
              container nsf {
                description
                  "IS-IS NSF configuration";
                leaf flavor {
                  type Isis-nsf-flavor;
                  description
                    "NSF not configured if item is deleted";
                }
    
                leaf interface-timer {
                  type uint32 {
                    range "1..20";
                  }
                  units "second";
                  default "1";
                  description
                    "Per-interface time period to wait for a
                   restart ACK during an IETF-NSF restart. This
                   configuration has no effect if IETF-NSF is
                   not configured";
                }
    
                leaf max-interface-timer-expiry {
                  type uint32 {
                    range "1..10";
                  }
                  default "10";
                  description
                    "Maximum number of times an interface timer
                   may expire during an IETF-NSF restart before
                   the NSF restart is aborted. This
                   configuration has no effect if IETF NSF is
                   not configured.";
                }
    
                leaf lifetime {
                  type uint32 {
                    range "5..300";
                  }
                  units "second";
                  default "90";
                  description
                    "Maximum route lifetime following restart.
                   When this lifetime expires, old routes will
                   be purged from the RIB.";
                }
              }  // container nsf
    
              container link-groups {
                description "Link Group";
                list link-group {
                  key "link-group-name";
                  description
                    "Configuration for link group name";
                  leaf metric-offset {
                    type uint32 {
                      range "0..16777215";
                    }
                    description
                      "Metric for redistributed routes: <0-63> for
                     narrow, <0-16777215> for wide";
                  }
    
                  leaf revert-members {
                    type uint32 {
                      range "2..64";
                    }
                    default "2";
                    description "Revert Members";
                  }
    
                  leaf minimum-members {
                    type uint32 {
                      range "2..64";
                    }
                    default "2";
                    description
                      "Minimum Members";
                  }
    
                  leaf link-group-name {
                    type dt1:Isis-link-group-name;
                    description
                      "Link Group Name";
                  }
                }  // list link-group
              }  // container link-groups
    
              container lsp-check-intervals {
                description
                  "LSP checksum check interval configuration";
                list lsp-check-interval {
                  key "level";
                  description
                    "LSP checksum check interval parameters";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf interval {
                    type uint32 {
                      range "10..65535";
                    }
                    units "second";
                    mandatory true;
                    description
                      "LSP checksum check interval time in seconds";
                  }
                }  // list lsp-check-interval
              }  // container lsp-check-intervals
    
              container lsp-passwords {
                description
                  "LSP/SNP password configuration";
                list lsp-password {
                  key "level";
                  description
                    "LSP/SNP passwords. This must exist if an
                   LSPAcceptPassword of the same level exists.";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf algorithm {
                    type Isis-authentication-algorithm;
                    mandatory true;
                    description "Algorithm";
                  }
    
                  leaf failure-mode {
                    type Isis-authentication-failure-mode;
                    mandatory true;
                    description "Failure Mode";
                  }
    
                  leaf authentication-type {
                    type Isis-snp-auth;
                    mandatory true;
                    description
                      "SNP packet authentication mode";
                  }
    
                  leaf password {
                    type xr:Proprietary-password;
                    mandatory true;
                    description
                      "Password or unencrypted Key Chain name";
                  }
    
                  leaf enable-poi {
                    type Isis-enable-poi;
                    description "Enable POI";
                  }
                }  // list lsp-password
              }  // container lsp-passwords
    
              container nets {
                description "NET configuration";
                list net {
                  key "net-name";
                  description
                    "Network Entity Title (NET)";
                  leaf net-name {
                    type xr:Osi-net;
                    description
                      "Network Entity Title";
                  }
                }  // list net
              }  // container nets
    
              container lsp-lifetimes {
                description
                  "LSP lifetime configuration";
                list lsp-lifetime {
                  key "level";
                  description
                    "Maximum LSP lifetime";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf lifetime {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    mandatory true;
                    description "Seconds";
                  }
                }  // list lsp-lifetime
              }  // container lsp-lifetimes
    
              container overload-bits {
                description
                  "LSP overload-bit configuration";
                list overload-bit {
                  key "level";
                  description
                    "Set the overload bit in the System LSP so
                   that other routers avoid this one in SPF
                   calculations. This may be done either
                   unconditionally, or on startup until either a
                   set time has passed or IS-IS is informed that
                   BGP has converged. This is an Object with a
                   union discriminated on an integer value of
                   the ISISOverloadBitModeType.";
                  leaf level {
                    type dt1:Isis-internal-level;
                    description
                      "Level to which configuration applies";
                  }
    
                  leaf overload-bit-mode {
                    type Isis-overload-bit-mode;
                    description
                      "Circumstances under which the overload bit
                     is set in the system LSP";
                  }
    
                  leaf hippity-period {
                    when
                      "../overload-bit-mode = 'startup-period'" {
                      description
                        "../OverloadBitMode = StartupPeriod";
                    }
                    type uint32 {
                      range "5..86400";
                    }
                    units "second";
                    description
                      "Time in seconds to advertise ourself as
                     overloaded after process startup";
                  }
    
                  leaf external-adv-type {
                    type Isis-adv-type-external;
                    description
                      "Advertise prefixes from other protocols";
                  }
    
                  leaf inter-level-adv-type {
                    type Isis-adv-type-inter-level;
                    description
                      "Advertise prefixes across ISIS levels";
                  }
                }  // list overload-bit
              }  // container overload-bits
    
              container interfaces {
                description
                  "Per-interface configuration";
                list interface {
                  key "interface-name";
                  description
                    "Configuration for an IS-IS interface";
                  container int-affinity-table {
                    description
                      "Interface Affinity Table";
                    container flex-algos {
                      description
                        "Set the interface affinities used by
                       Flex-Algo";
                      leaf-list flex-algo {
                        type string;
                        max-elements 32;
                        description
                          "Array of Attribute Names";
                      }
                    }  // container flex-algos
                  }  // container int-affinity-table
    
                  container lsp-retransmit-throttle-intervals {
                    description
                      "LSP-retransmission-throttle-interval
                     configuration";
                    list lsp-retransmit-throttle-interval {
                      key "level";
                      description
                        "Minimum interval betwen retransissions of
                       different LSPs";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "0..65535";
                        }
                        units "millisecond";
                        mandatory true;
                        description
                          "Milliseconds";
                      }
                    }  // list lsp-retransmit-throttle-interval
                  }  // container lsp-retransmit-throttle-intervals
    
                  container lsp-retransmit-intervals {
                    description
                      "LSP-retransmission-interval configuration";
                    list lsp-retransmit-interval {
                      key "level";
                      description
                        "Interval between retransmissions of the
                       same LSP";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "0..65535";
                        }
                        units "second";
                        mandatory true;
                        description "Seconds";
                      }
                    }  // list lsp-retransmit-interval
                  }  // container lsp-retransmit-intervals
    
                  container bfd {
                    description
                      "BFD configuration";
                    leaf enable-ipv6 {
                      type boolean;
                      description
                        "TRUE to enable BFD. FALSE to disable and to
                       prevent inheritance from a parent";
                    }
    
                    leaf enable-ipv4 {
                      type boolean;
                      description
                        "TRUE to enable BFD. FALSE to disable and to
                       prevent inheritance from a parent";
                    }
    
                    leaf interval {
                      type uint32 {
                        range "3..30000";
                      }
                      units "millisecond";
                      description
                        "Hello interval for BFD sessions created by
                       isis";
                    }
    
                    leaf detection-multiplier {
                      type uint32 {
                        range "2..50";
                      }
                      description
                        "Detection multiplier for BFD sessions
                       created by isis";
                    }
                  }  // container bfd
    
                  container priorities {
                    description
                      "DIS-election priority configuration";
                    list priority {
                      key "level";
                      description
                        "DIS-election priority";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf priority-value {
                        type uint32 {
                          range "0..127";
                        }
                        mandatory true;
                        description "Priority";
                      }
                    }  // list priority
                  }  // container priorities
    
                  container hello-accept-passwords {
                    description
                      "IIH accept password configuration";
                    list hello-accept-password {
                      key "level";
                      description
                        "IIH accept passwords. This requires the
                       existence of a HelloPassword of the same
                       level.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf password {
                        type xr:Proprietary-password;
                        mandatory true;
                        description "Password";
                      }
                    }  // list hello-accept-password
                  }  // container hello-accept-passwords
    
                  container hello-passwords {
                    description
                      "IIH password configuration";
                    list hello-password {
                      key "level";
                      description
                        "IIH passwords. This must exist if a
                       HelloAcceptPassword of the same level
                       exists.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf algorithm {
                        type Isis-authentication-algorithm;
                        mandatory true;
                        description "Algorithm";
                      }
    
                      leaf failure-mode {
                        type Isis-authentication-failure-mode;
                        mandatory true;
                        description
                          "Failure Mode";
                      }
    
                      leaf password {
                        type xr:Proprietary-password;
                        mandatory true;
                        description
                          "Password or unencrypted Key Chain name";
                      }
                    }  // list hello-password
                  }  // container hello-passwords
    
                  container hello-paddings {
                    description
                      "Hello-padding configuration";
                    list hello-padding {
                      key "level";
                      description
                        "Pad IIHs to the interface MTU";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf padding-type {
                        type Isis-hello-padding;
                        mandatory true;
                        description
                          "Hello padding type value";
                      }
                    }  // list hello-padding
                  }  // container hello-paddings
    
                  container hello-multipliers {
                    description
                      "Hello-multiplier configuration";
                    list hello-multiplier {
                      key "level";
                      description
                        "Hello-multiplier configuration. The number
                       of successive IIHs that may be missed on an
                       adjacency before it is considered down.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf multiplier {
                        type uint32 {
                          range "3..1000";
                        }
                        mandatory true;
                        description
                          "Hello multiplier value";
                      }
                    }  // list hello-multiplier
                  }  // container hello-multipliers
    
                  container lsp-fast-flood-thresholds {
                    description
                      "LSP fast flood threshold configuration";
                    list lsp-fast-flood-threshold {
                      key "level";
                      description
                        "Number of LSPs to send back to back on an
                       interface.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf count {
                        type uint32 {
                          range "1..4294967295";
                        }
                        mandatory true;
                        description "Count";
                      }
                    }  // list lsp-fast-flood-threshold
                  }  // container lsp-fast-flood-thresholds
    
                  container prefix-attribute-n-flag-clears {
                    description
                      "Prefix attribute N flag clear configuration";
                    list prefix-attribute-n-flag-clear {
                      key "level";
                      description
                        "Clear the N flag in prefix attribute flags
                       sub-TLV";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
                    }  // list prefix-attribute-n-flag-clear
                  }  // container prefix-attribute-n-flag-clears
    
                  container prefix-attribute-anycasts {
                    description
                      "Prefix attribute A flag configuration";
                    list prefix-attribute-anycast {
                      key "level";
                      description
                        "Set the A flag in prefix attribute flags
                       sub-TLV";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
                    }  // list prefix-attribute-anycast
                  }  // container prefix-attribute-anycasts
    
                  container hello-intervals {
                    description
                      "Hello-interval configuration";
                    list hello-interval {
                      key "level";
                      description
                        "Hello-interval configuration. The interval
                       at which IIH packets will be sent. This
                       will be three times quicker on a LAN
                       interface which has been electted DIS.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        mandatory true;
                        description "Seconds";
                      }
                    }  // list hello-interval
                  }  // container hello-intervals
    
                  container delay-normalize {
                    presence
                      "Indicates a delay-normalize node is configured.";
                    description
                      "Normalize Delay";
                    leaf interval {
                      type uint32 {
                        range "1..4294967295";
                      }
                      mandatory true;
                      description
                        "Normalization Interval";
                    }
    
                    leaf offset {
                      type uint32 {
                        range "0..4294967295";
                      }
                      default "0";
                      description
                        "Normalization Offset";
                    }
                  }  // container delay-normalize
    
                  container override-metrics {
                    description
                      "Override metrics configuration";
                    list override-metric {
                      key "level";
                      description
                        "Override metrics";
                      leaf level {
                        type Isis-no-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf metric {
                        type Isis-override-metrics;
                        mandatory true;
                        description "Metric";
                      }
                    }  // list override-metric
                  }  // container override-metrics
    
                  container interface-afs {
                    description
                      "Per-interface address-family configuration";
                    list interface-af {
                      must
                        "interface-af-data or topology-name" {
                        description
                          "interface-af-data or topology-name must be
                         present.";
                      }
                      key "af-name saf-name";
                      description
                        "Configuration for an IS-IS address-family
                       on a single interface. If a named
                       (non-default) topology is being created it
                       must be multicast. Also the topology ID
                       mustbe set first and delete last in the
                       router configuration.";
                      container interface-af-data {
                        description
                          "Data container.";
                        container prefix-sid {
                          presence
                            "Indicates a prefix-sid node is configured.";
                          description
                            "Assign prefix SID to an interface,
    ISISPHPFlag will be rejected if set to
    disable, ISISEXPLICITNULLFlag will
    override the value of ISISPHPFlag";
                          leaf type {
                            type Isissid1;
                            mandatory true;
                            description
                              "SID type for the interface";
                          }
    
                          leaf value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value for the interface";
                          }
    
                          leaf php {
                            type Isisphp-flag;
                            description
                              "Enable/Disable Penultimate Hop Popping";
                          }
    
                          leaf explicit-null {
                            type Isisexplicit-null-flag;
                            description
                              "Enable/Disable Explicit-NULL flag";
                          }
    
                          leaf nflag-clear {
                            type Nflag-clear;
                            description
                              "Clear N-flag for the prefix-SID";
                          }
                        }  // container prefix-sid
    
                        container advertise-prefixes {
                          description
                            "advertise prefix configuration";
                          list advertise-prefix {
                            key "level";
                            description
                              "Route-policy for advertised interface
    connected routes";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf route-policy-name {
                              type xr:Cisco-ios-xr-string {
                                length "1..64";
                              }
                              mandatory true;
                              description
                                "Route policy for advertising interface
    connected routes";
                            }
                          }  // list advertise-prefix
                        }  // container advertise-prefixes
    
                        container interface-frr-table {
                          description
                            "Fast-ReRoute configuration";
                          container frrlfa-candidate-interfaces {
                            description
                              "FRR LFA candidate configuration";
                            list frrlfa-candidate-interface {
                              key "interface-name frr-type";
                              description
                                "Include an interface to LFA candidate
    in computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
    
                              leaf frr-type {
                                type Isisfrr;
                                description
                                  "Computation Type";
                              }
    
                              leaf level {
                                type uint32 {
                                  range "0..2";
                                }
                                mandatory true;
                                description
                                  "Level";
                              }
                            }  // list frrlfa-candidate-interface
                          }  // container frrlfa-candidate-interfaces
    
                          container frr-remote-lfa-max-metrics {
                            description
                              "Remote LFA maxmimum metric";
                            list frr-remote-lfa-max-metric {
                              key "level";
                              description
                                "Configure the maximum metric for
    selecting a remote LFA node";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf max-metric {
                                type uint32 {
                                  range
                                    "1..16777215";
                                }
                                mandatory true;
                                description
                                  "Value of the metric";
                              }
                            }  // list frr-remote-lfa-max-metric
                          }  // container frr-remote-lfa-max-metrics
    
                          container frr-types {
                            description
                              "Type of FRR computation per level";
                            list frr-type {
                              key "level";
                              description
                                "Type of computation for prefixes
    reachable via interface";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf type {
                                type Isisfrr;
                                mandatory true;
                                description
                                  "Computation Type";
                              }
                            }  // list frr-type
                          }  // container frr-types
    
                          container frr-remote-lfa-types {
                            description
                              "Remote LFA Enable";
                            list frr-remote-lfa-type {
                              key "level";
                              description
                                "Enable remote lfa for a particular
    level";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf type {
                                type Isis-remote-lfa;
                                mandatory true;
                                description
                                  "Remote LFA Type";
                              }
                            }  // list frr-remote-lfa-type
                          }  // container frr-remote-lfa-types
    
                          container interface-frr-tiebreaker-defaults {
                            description
                              "Interface FRR Default tiebreaker
    configuration";
                            list interface-frr-tiebreaker-default {
                              key "level";
                              description
                                "Configure default tiebreaker";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
                            }  // list interface-frr-tiebreaker-default
                          }  // container interface-frr-tiebreaker-defaults
    
                          container frrtilfa-types {
                            description
                              "TI LFA Enable";
                            list frrtilfa-type {
                              key "level";
                              description
                                "Enable TI lfa for a particular level";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
                            }  // list frrtilfa-type
                          }  // container frrtilfa-types
    
                          container frr-exclude-interfaces {
                            description
                              "FRR exclusion configuration";
                            list frr-exclude-interface {
                              key "interface-name frr-type";
                              description
                                "Exclude an interface from computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
    
                              leaf frr-type {
                                type Isisfrr;
                                description
                                  "Computation Type";
                              }
    
                              leaf level {
                                type uint32 {
                                  range "0..2";
                                }
                                mandatory true;
                                description
                                  "Level";
                              }
                            }  // list frr-exclude-interface
                          }  // container frr-exclude-interfaces
    
                          container interface-frr-tiebreakers {
                            description
                              "Interface FRR tiebreakers configuration";
                            list interface-frr-tiebreaker {
                              key "level tiebreaker";
                              description
                                "Configure tiebreaker for multiple
    backups";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf tiebreaker {
                                type Isis-interface-frr-tiebreaker;
                                description
                                  "Tiebreaker for which configuration
    applies";
                              }
    
                              leaf index {
                                type uint32 {
                                  range "1..255";
                                }
                                mandatory true;
                                description
                                  "Preference order among tiebreakers";
                              }
                            }  // list interface-frr-tiebreaker
                          }  // container interface-frr-tiebreakers
                        }  // container interface-frr-table
    
                        container metric-fallback-bandwidth {
                          presence
                            "Indicates a metric-fallback-bandwidth node is configured.";
                          description
                            "metric fallback bandwidth configuration";
                          leaf multiplier {
                            type uint32 {
                              range "2..100000";
                            }
                            mandatory true;
                            description
                              "Multiplier";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..100";
                            }
                            mandatory true;
                            description
                              "Threshold";
                          }
    
                          leaf increment {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "Reserved for future use";
                          }
    
                          leaf maximum {
                            type boolean;
                            description
                              "Reserved for future use";
                          }
                        }  // container metric-fallback-bandwidth
    
                        container mpls-ldp {
                          description
                            "MPLS LDP configuration";
                          leaf sync-level {
                            type uint32 {
                              range "0..2";
                            }
                            default "0";
                            description
                              "Enable MPLS LDP Synchronization for an
    IS-IS level";
                          }
                        }  // container mpls-ldp
    
                        container metric-fallback-anomalies {
                          description
                            "metric fallback anomaly configuration";
                          list metric-fallback-anomaly {
                            key "metric-type level";
                            description
                              "metric fallback anomaly configuration";
                            leaf metric-type {
                              type Isis-metric-fallback-metric;
                              description
                                "Metric type to which configuration
    applies";
                            }
    
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range
                                  "2..100000";
                              }
                              description
                                "Multiplier";
                            }
    
                            leaf type {
                              type Isis-metric-fallback-anomaly-mode;
                              mandatory true;
                              description "Type";
                            }
    
                            leaf increment {
                              type uint32 {
                                range
                                  "1..16777213";
                              }
                              description
                                "Increment";
                            }
    
                            leaf maximum {
                              type boolean;
                              description
                                "Maximum";
                            }
                          }  // list metric-fallback-anomaly
                        }  // container metric-fallback-anomalies
    
                        container prefix-sspfsid {
                          presence
                            "Indicates a prefix-sspfsid node is configured.";
                          description
                            "Assign prefix SSPF SID to an interface,
    ISISPHPFlag will be rejected if set to
    disable, ISISEXPLICITNULLFlag will
    override the value of ISISPHPFlag";
                          leaf type {
                            type Isissid1;
                            mandatory true;
                            description
                              "SID type for the interface";
                          }
    
                          leaf value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value for the interface";
                          }
    
                          leaf php {
                            type Isisphp-flag;
                            description
                              "Enable/Disable Penultimate Hop Popping";
                          }
    
                          leaf explicit-null {
                            type Isisexplicit-null-flag;
                            description
                              "Enable/Disable Explicit-NULL flag";
                          }
    
                          leaf nflag-clear {
                            type Nflag-clear;
                            description
                              "Clear N-flag for the prefix-SID";
                          }
                        }  // container prefix-sspfsid
    
                        container algorithm-prefix-sids {
                          description
                            "Algorithm SID Table";
                          list algorithm-prefix-sid {
                            key "algo";
                            description
                              "Assign prefix SID for algorithm to an
    interface, ISISPHPFlag will be rejected
    if set to disable, ISISEXPLICITNULLFlag
    will override the value of ISISPHPFlag";
                            leaf algo {
                              type uint32 {
                                range "128..255";
                              }
                              description
                                "Algorithm";
                            }
    
                            leaf type {
                              type Isissid1;
                              mandatory true;
                              description
                                "SID type for the interface";
                            }
    
                            leaf value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value for the interface";
                            }
    
                            leaf php {
                              type Isisphp-flag;
                              description
                                "Enable/Disable Penultimate Hop Popping";
                            }
    
                            leaf explicit-null {
                              type Isisexplicit-null-flag;
                              description
                                "Enable/Disable Explicit-NULL flag";
                            }
    
                            leaf nflag-clear {
                              type Nflag-clear;
                              description
                                "Clear N-flag for the prefix-SID";
                            }
                          }  // list algorithm-prefix-sid
                        }  // container algorithm-prefix-sids
    
                        container auto-metrics {
                          description
                            "AutoMetric configuration";
                          list auto-metric {
                            key "level";
                            description
                              "AutoMetric Proactive-Protect
    configuration. Legal value depends on
    the metric-style specified for the
    topology. If the metric-style defined is
    narrow, then only a value between <1-63>
    is allowed and if the metric-style is
    defined as wide, then a value between
    <1-16777214> is allowed as the
    auto-metric value.";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf proactive-protect {
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                              mandatory true;
                              description
                                "Allowed auto metric:<1-63> for narrow
    ,<1-16777214> for wide";
                            }
                          }  // list auto-metric
                        }  // container auto-metrics
    
                        container admin-tags {
                          description
                            "admin-tag configuration";
                          list admin-tag {
                            key "level";
                            description
                              "Admin tag for advertised interface
    connected routes";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf admin-tag {
                              type uint32 {
                                range
                                  "1..4294967295";
                              }
                              mandatory true;
                              description
                                "Tag to associate with connected routes";
                            }
                          }  // list admin-tag
                        }  // container admin-tags
    
                        container interface-link-group {
                          presence
                            "Indicates a interface-link-group node is configured.";
                          description
                            "Provide link group name and level";
                          leaf link-group {
                            type dt1:Isis-link-group-name;
                            mandatory true;
                            description
                              "Link Group";
                          }
    
                          leaf level {
                            type uint32 {
                              range "0..2";
                            }
                            default "0";
                            description
                              "Level in which link group will be
    effective";
                          }
                        }  // container interface-link-group
    
                        leaf interface-af-state {
                          type Isis-interface-af-state;
                          description
                            "Interface state";
                        }
    
                        leaf running {
                          type empty;
                          description
                            "The presence of this object allows an
    address-family to be run over the
    interface in question.This must be the
    first object created under the
    InterfaceAddressFamily container, and the
    last one deleted";
                        }
    
                        container manual-adj-sids {
                          description
                            "Manual Adjacecy SID configuration";
                          list manual-adj-sid {
                            key "level sid-type sid";
                            description
                              "Assign adjancency SID to an interface";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf sid-type {
                              type Isissid1;
                              description
                                "Sid type aboslute or index";
                            }
    
                            leaf sid {
                              type Isissid;
                              description
                                "Sid value";
                            }
    
                            leaf protected {
                              type Isissid-protected;
                              mandatory true;
                              description
                                "Enable/Disable SID protection";
                            }
                          }  // list manual-adj-sid
                        }  // container manual-adj-sids
    
                        container te-metrics {
                          description
                            "Traffic Engineering metric configuration";
                          list te-metric {
                            key "level";
                            description
                              "TE Metric configuration";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf te-metric {
                              type union {
                                type enumeration {
                                  enum "maximum" {
                                    value
                                      16777215;
                                    description
                                      "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                                  }
                                }
                                type uint32 {
                                  range
                                    "1..16777215";
                                }
                              }
                              mandatory true;
                              description
                                "Allowed metric <1-16777215>";
                            }
                          }  // list te-metric
                        }  // container te-metrics
    
                        container metrics {
                          description
                            "Metric configuration";
                          list metric {
                            key "level";
                            description
                              "Metric configuration. Legal value depends on
    the metric-style specified for the topology. If
    the metric-style defined is narrow, then only a
    value between <1-63> is allowed and if the
    metric-style is defined as wide, then a value
    between <1-16777215> is allowed as the metric
    value.  All routers exclude links with the
    maximum wide metric (16777215) from their SPF";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf metric {
                              type union {
                                type enumeration {
                                  enum "maximum" {
                                    value
                                      16777215;
                                    description
                                      "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                                  }
                                }
                                type uint32 {
                                  range
                                    "1..16777215";
                                }
                              }
                              mandatory true;
                              description
                                "Allowed metric: <1-63> for narrow,
    <1-16777215> for wide";
                            }
                          }  // list metric
                        }  // container metrics
    
                        container weights {
                          description
                            "Weight configuration";
                          list weight {
                            key "level";
                            description
                              "Weight configuration under interface for load
    balancing";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf weight {
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                              mandatory true;
                              description
                                "Weight to be configured under interface for
    Load Balancing. Allowed weight: <1-16777215>";
                            }
                          }  // list weight
                        }  // container weights
                      }  // container interface-af-data
    
                      leaf af-name {
                        type dt1:Isis-address-family;
                        description
                          "Address family";
                      }
    
                      leaf saf-name {
                        type dt1:Isis-sub-address-family;
                        description
                          "Sub address family";
                      }
    
                      list topology-name {
                        key "topology-name";
                        description
                          "keys: topology-name";
                        leaf topology-name {
                          type dt1:Isis-topology-name;
                          description
                            "Topology Name";
                        }
    
                        container prefix-sid {
                          presence
                            "Indicates a prefix-sid node is configured.";
                          description
                            "Assign prefix SID to an interface,
    ISISPHPFlag will be rejected if set to
    disable, ISISEXPLICITNULLFlag will
    override the value of ISISPHPFlag";
                          leaf type {
                            type Isissid1;
                            mandatory true;
                            description
                              "SID type for the interface";
                          }
    
                          leaf value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value for the interface";
                          }
    
                          leaf php {
                            type Isisphp-flag;
                            description
                              "Enable/Disable Penultimate Hop Popping";
                          }
    
                          leaf explicit-null {
                            type Isisexplicit-null-flag;
                            description
                              "Enable/Disable Explicit-NULL flag";
                          }
    
                          leaf nflag-clear {
                            type Nflag-clear;
                            description
                              "Clear N-flag for the prefix-SID";
                          }
                        }  // container prefix-sid
    
                        container advertise-prefixes {
                          description
                            "advertise prefix configuration";
                          list advertise-prefix {
                            key "level";
                            description
                              "Route-policy for advertised interface
    connected routes";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf route-policy-name {
                              type xr:Cisco-ios-xr-string {
                                length "1..64";
                              }
                              mandatory true;
                              description
                                "Route policy for advertising interface
    connected routes";
                            }
                          }  // list advertise-prefix
                        }  // container advertise-prefixes
    
                        container interface-frr-table {
                          description
                            "Fast-ReRoute configuration";
                          container frrlfa-candidate-interfaces {
                            description
                              "FRR LFA candidate configuration";
                            list frrlfa-candidate-interface {
                              key "interface-name frr-type";
                              description
                                "Include an interface to LFA candidate
    in computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
    
                              leaf frr-type {
                                type Isisfrr;
                                description
                                  "Computation Type";
                              }
    
                              leaf level {
                                type uint32 {
                                  range "0..2";
                                }
                                mandatory true;
                                description
                                  "Level";
                              }
                            }  // list frrlfa-candidate-interface
                          }  // container frrlfa-candidate-interfaces
    
                          container frr-remote-lfa-max-metrics {
                            description
                              "Remote LFA maxmimum metric";
                            list frr-remote-lfa-max-metric {
                              key "level";
                              description
                                "Configure the maximum metric for
    selecting a remote LFA node";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf max-metric {
                                type uint32 {
                                  range
                                    "1..16777215";
                                }
                                mandatory true;
                                description
                                  "Value of the metric";
                              }
                            }  // list frr-remote-lfa-max-metric
                          }  // container frr-remote-lfa-max-metrics
    
                          container frr-types {
                            description
                              "Type of FRR computation per level";
                            list frr-type {
                              key "level";
                              description
                                "Type of computation for prefixes
    reachable via interface";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf type {
                                type Isisfrr;
                                mandatory true;
                                description
                                  "Computation Type";
                              }
                            }  // list frr-type
                          }  // container frr-types
    
                          container frr-remote-lfa-types {
                            description
                              "Remote LFA Enable";
                            list frr-remote-lfa-type {
                              key "level";
                              description
                                "Enable remote lfa for a particular
    level";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf type {
                                type Isis-remote-lfa;
                                mandatory true;
                                description
                                  "Remote LFA Type";
                              }
                            }  // list frr-remote-lfa-type
                          }  // container frr-remote-lfa-types
    
                          container interface-frr-tiebreaker-defaults {
                            description
                              "Interface FRR Default tiebreaker
    configuration";
                            list interface-frr-tiebreaker-default {
                              key "level";
                              description
                                "Configure default tiebreaker";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
                            }  // list interface-frr-tiebreaker-default
                          }  // container interface-frr-tiebreaker-defaults
    
                          container frrtilfa-types {
                            description
                              "TI LFA Enable";
                            list frrtilfa-type {
                              key "level";
                              description
                                "Enable TI lfa for a particular level";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
                            }  // list frrtilfa-type
                          }  // container frrtilfa-types
    
                          container frr-exclude-interfaces {
                            description
                              "FRR exclusion configuration";
                            list frr-exclude-interface {
                              key "interface-name frr-type";
                              description
                                "Exclude an interface from computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
    
                              leaf frr-type {
                                type Isisfrr;
                                description
                                  "Computation Type";
                              }
    
                              leaf level {
                                type uint32 {
                                  range "0..2";
                                }
                                mandatory true;
                                description
                                  "Level";
                              }
                            }  // list frr-exclude-interface
                          }  // container frr-exclude-interfaces
    
                          container interface-frr-tiebreakers {
                            description
                              "Interface FRR tiebreakers configuration";
                            list interface-frr-tiebreaker {
                              key "level tiebreaker";
                              description
                                "Configure tiebreaker for multiple
    backups";
                              leaf level {
                                type dt1:Isis-internal-level;
                                description
                                  "Level to which configuration applies";
                              }
    
                              leaf tiebreaker {
                                type Isis-interface-frr-tiebreaker;
                                description
                                  "Tiebreaker for which configuration
    applies";
                              }
    
                              leaf index {
                                type uint32 {
                                  range "1..255";
                                }
                                mandatory true;
                                description
                                  "Preference order among tiebreakers";
                              }
                            }  // list interface-frr-tiebreaker
                          }  // container interface-frr-tiebreakers
                        }  // container interface-frr-table
    
                        container metric-fallback-bandwidth {
                          presence
                            "Indicates a metric-fallback-bandwidth node is configured.";
                          description
                            "metric fallback bandwidth configuration";
                          leaf multiplier {
                            type uint32 {
                              range "2..100000";
                            }
                            mandatory true;
                            description
                              "Multiplier";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..100";
                            }
                            mandatory true;
                            description
                              "Threshold";
                          }
    
                          leaf increment {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "Reserved for future use";
                          }
    
                          leaf maximum {
                            type boolean;
                            description
                              "Reserved for future use";
                          }
                        }  // container metric-fallback-bandwidth
    
                        container mpls-ldp {
                          description
                            "MPLS LDP configuration";
                          leaf sync-level {
                            type uint32 {
                              range "0..2";
                            }
                            default "0";
                            description
                              "Enable MPLS LDP Synchronization for an
    IS-IS level";
                          }
                        }  // container mpls-ldp
    
                        container metric-fallback-anomalies {
                          description
                            "metric fallback anomaly configuration";
                          list metric-fallback-anomaly {
                            key "metric-type level";
                            description
                              "metric fallback anomaly configuration";
                            leaf metric-type {
                              type Isis-metric-fallback-metric;
                              description
                                "Metric type to which configuration
    applies";
                            }
    
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range
                                  "2..100000";
                              }
                              description
                                "Multiplier";
                            }
    
                            leaf type {
                              type Isis-metric-fallback-anomaly-mode;
                              mandatory true;
                              description "Type";
                            }
    
                            leaf increment {
                              type uint32 {
                                range
                                  "1..16777213";
                              }
                              description
                                "Increment";
                            }
    
                            leaf maximum {
                              type boolean;
                              description
                                "Maximum";
                            }
                          }  // list metric-fallback-anomaly
                        }  // container metric-fallback-anomalies
    
                        container prefix-sspfsid {
                          presence
                            "Indicates a prefix-sspfsid node is configured.";
                          description
                            "Assign prefix SSPF SID to an interface,
    ISISPHPFlag will be rejected if set to
    disable, ISISEXPLICITNULLFlag will
    override the value of ISISPHPFlag";
                          leaf type {
                            type Isissid1;
                            mandatory true;
                            description
                              "SID type for the interface";
                          }
    
                          leaf value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value for the interface";
                          }
    
                          leaf php {
                            type Isisphp-flag;
                            description
                              "Enable/Disable Penultimate Hop Popping";
                          }
    
                          leaf explicit-null {
                            type Isisexplicit-null-flag;
                            description
                              "Enable/Disable Explicit-NULL flag";
                          }
    
                          leaf nflag-clear {
                            type Nflag-clear;
                            description
                              "Clear N-flag for the prefix-SID";
                          }
                        }  // container prefix-sspfsid
    
                        container algorithm-prefix-sids {
                          description
                            "Algorithm SID Table";
                          list algorithm-prefix-sid {
                            key "algo";
                            description
                              "Assign prefix SID for algorithm to an
    interface, ISISPHPFlag will be rejected
    if set to disable, ISISEXPLICITNULLFlag
    will override the value of ISISPHPFlag";
                            leaf algo {
                              type uint32 {
                                range "128..255";
                              }
                              description
                                "Algorithm";
                            }
    
                            leaf type {
                              type Isissid1;
                              mandatory true;
                              description
                                "SID type for the interface";
                            }
    
                            leaf value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value for the interface";
                            }
    
                            leaf php {
                              type Isisphp-flag;
                              description
                                "Enable/Disable Penultimate Hop Popping";
                            }
    
                            leaf explicit-null {
                              type Isisexplicit-null-flag;
                              description
                                "Enable/Disable Explicit-NULL flag";
                            }
    
                            leaf nflag-clear {
                              type Nflag-clear;
                              description
                                "Clear N-flag for the prefix-SID";
                            }
                          }  // list algorithm-prefix-sid
                        }  // container algorithm-prefix-sids
    
                        container auto-metrics {
                          description
                            "AutoMetric configuration";
                          list auto-metric {
                            key "level";
                            description
                              "AutoMetric Proactive-Protect
    configuration. Legal value depends on
    the metric-style specified for the
    topology. If the metric-style defined is
    narrow, then only a value between <1-63>
    is allowed and if the metric-style is
    defined as wide, then a value between
    <1-16777214> is allowed as the
    auto-metric value.";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf proactive-protect {
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                              mandatory true;
                              description
                                "Allowed auto metric:<1-63> for narrow
    ,<1-16777214> for wide";
                            }
                          }  // list auto-metric
                        }  // container auto-metrics
    
                        container admin-tags {
                          description
                            "admin-tag configuration";
                          list admin-tag {
                            key "level";
                            description
                              "Admin tag for advertised interface
    connected routes";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf admin-tag {
                              type uint32 {
                                range
                                  "1..4294967295";
                              }
                              mandatory true;
                              description
                                "Tag to associate with connected routes";
                            }
                          }  // list admin-tag
                        }  // container admin-tags
    
                        container interface-link-group {
                          presence
                            "Indicates a interface-link-group node is configured.";
                          description
                            "Provide link group name and level";
                          leaf link-group {
                            type dt1:Isis-link-group-name;
                            mandatory true;
                            description
                              "Link Group";
                          }
    
                          leaf level {
                            type uint32 {
                              range "0..2";
                            }
                            default "0";
                            description
                              "Level in which link group will be
    effective";
                          }
                        }  // container interface-link-group
    
                        leaf interface-af-state {
                          type Isis-interface-af-state;
                          description
                            "Interface state";
                        }
    
                        leaf running {
                          type empty;
                          description
                            "The presence of this object allows an
    address-family to be run over the
    interface in question.This must be the
    first object created under the
    InterfaceAddressFamily container, and the
    last one deleted";
                        }
    
                        container manual-adj-sids {
                          description
                            "Manual Adjacecy SID configuration";
                          list manual-adj-sid {
                            key "level sid-type sid";
                            description
                              "Assign adjancency SID to an interface";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf sid-type {
                              type Isissid1;
                              description
                                "Sid type aboslute or index";
                            }
    
                            leaf sid {
                              type Isissid;
                              description
                                "Sid value";
                            }
    
                            leaf protected {
                              type Isissid-protected;
                              mandatory true;
                              description
                                "Enable/Disable SID protection";
                            }
                          }  // list manual-adj-sid
                        }  // container manual-adj-sids
    
                        container te-metrics {
                          description
                            "Traffic Engineering metric configuration";
                          list te-metric {
                            key "level";
                            description
                              "TE Metric configuration";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf te-metric {
                              type union {
                                type enumeration {
                                  enum "maximum" {
                                    value
                                      16777215;
                                    description
                                      "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                                  }
                                }
                                type uint32 {
                                  range
                                    "1..16777215";
                                }
                              }
                              mandatory true;
                              description
                                "Allowed metric <1-16777215>";
                            }
                          }  // list te-metric
                        }  // container te-metrics
    
                        container metrics {
                          description
                            "Metric configuration";
                          list metric {
                            key "level";
                            description
                              "Metric configuration. Legal value depends on
    the metric-style specified for the topology. If
    the metric-style defined is narrow, then only a
    value between <1-63> is allowed and if the
    metric-style is defined as wide, then a value
    between <1-16777215> is allowed as the metric
    value.  All routers exclude links with the
    maximum wide metric (16777215) from their SPF";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf metric {
                              type union {
                                type enumeration {
                                  enum "maximum" {
                                    value
                                      16777215;
                                    description
                                      "Maximum wide metric.  All routers will
                       exclude this link from their SPF";
                                  }
                                }
                                type uint32 {
                                  range
                                    "1..16777215";
                                }
                              }
                              mandatory true;
                              description
                                "Allowed metric: <1-63> for narrow,
    <1-16777215> for wide";
                            }
                          }  // list metric
                        }  // container metrics
    
                        container weights {
                          description
                            "Weight configuration";
                          list weight {
                            key "level";
                            description
                              "Weight configuration under interface for load
    balancing";
                            leaf level {
                              type dt1:Isis-internal-level;
                              description
                                "Level to which configuration applies";
                            }
    
                            leaf weight {
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                              mandatory true;
                              description
                                "Weight to be configured under interface for
    Load Balancing. Allowed weight: <1-16777215>";
                            }
                          }  // list weight
                        }  // container weights
                      }  // list topology-name
                    }  // list interface-af
                  }  // container interface-afs
    
                  container csnp-intervals {
                    description
                      "CSNP-interval configuration";
                    list csnp-interval {
                      key "level";
                      description
                        "CSNP-interval configuration. No fixed
                       default value as this depends on the media
                       type of the interface.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "0..65535";
                        }
                        units "second";
                        mandatory true;
                        description "Seconds";
                      }
                    }  // list csnp-interval
                  }  // container csnp-intervals
    
                  container lsp-intervals {
                    description
                      "LSP-interval configuration";
                    list lsp-interval {
                      key "level";
                      description
                        "Interval between transmission of LSPs on
                       interface.";
                      leaf level {
                        type dt1:Isis-internal-level;
                        description
                          "Level to which configuration applies";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "1..4294967295";
                        }
                        units "millisecond";
                        mandatory true;
                        description
                          "Milliseconds";
                      }
                    }  // list lsp-interval
                  }  // container lsp-intervals
    
                  leaf running {
                    type empty;
                    description
                      "This object must be set before any other
                     configuration is supplied for an interface,
                     and must be the last per-interface
                     configuration object to be removed.";
                  }
    
                  leaf circuit-type {
                    type Isis-configurable-levels;
                    default "level1-and2";
                    description
                      "Configure circuit type for interface";
                  }
    
                  leaf point-to-point {
                    type empty;
                    description
                      "IS-IS will attempt to form point-to-point
                     over LAN adjacencies over this interface.";
                  }
    
                  leaf state {
                    type Isis-interface-state;
                    description
                      "Enable/Disable routing";
                  }
    
                  leaf mesh-group {
                    type union {
                      type enumeration {
                        enum "blocked" {
                          value 0;
                          description
                            "Blocked mesh group.  Changed LSPs are not
                           flooded over blocked interfaces";
                        }
                      }
                      type uint32 {
                        range "0..4294967295";
                      }
                    }
                    description
                      "Mesh-group configuration";
                  }
    
                  leaf link-down-fast-detect {
                    type empty;
                    description
                      "Configure high priority detection of
                     interface down event";
                  }
    
                  leaf interface-name {
                    type xr:Interface-name;
                    description "Interface name";
                  }
                }  // list interface
              }  // container interfaces
    
              leaf running {
                type empty;
                description
                  "Flag to indicate that instance should be
                 running.  This must be the first object
                 created when an IS-IS instance is configured,
                 and the last object deleted when it is
                 deconfigured.  When this object is deleted,
                 the IS-IS instance will exit.";
              }
    
              leaf log-adjacency-changes {
                type empty;
                description
                  "Log changes in adjacency state";
              }
    
              leaf ignore-lsp-errors {
                type boolean;
                description
                  "If TRUE, LSPs recieved with bad checksums will
                 result in the purging of that LSP from the LSP
                 DB. If FALSE or not set, the received LSP will
                 just be ignored.";
              }
    
              leaf is-type {
                type Isis-configurable-levels;
                default "level1-and2";
                description
                  "IS type of the IS-IS process";
              }
    
              leaf tracing-mode {
                type Isis-tracing-mode;
                default "basic";
                description
                  "Tracing mode configuration";
              }
    
              leaf vrf-context {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "VRF context for ISIS process";
              }
    
              leaf instance-id {
                type uint32 {
                  range "0..65535";
                }
                default "0";
                description
                  "Instance ID of the IS-IS process";
              }
    
              leaf dynamic-host-name {
                type boolean;
                description
                  "If TRUE, dynamic hostname resolution is
                 disabled, and system IDs will always be
                 displayed by show and debug output.";
              }
    
              leaf purge-transmit-strict {
                type Isis-configurable-level;
                default "level-12";
                description
                  "Allow only authentication TLV in purge LSPs";
              }
    
              leaf nsr {
                type empty;
                description
                  "IS-IS NSR configuration";
              }
    
              leaf receive-application-flex-algo-delay-app {
                type empty;
                description
                  "Receive Application Flex Algo Delay App
                 configuration";
              }
    
              leaf log-pdu-drops {
                type empty;
                description "Log PDU drops";
              }
    
              leaf instance-name {
                type dt1:Isis-instance-name;
                description
                  "Instance identifier";
              }
            }  // list instance
          }  // container instances
        }  // container isis
      }  // module Cisco-IOS-XR-clns-isis-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.