Cisco-IOS-XR-ipv6-ospfv3-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR ipv6-ospfv3 package configuration. This model is depreca...

  • Version: 2020-04-28

    Cisco-IOS-XR-ipv6-ospfv3-cfg@2020-04-28


    
      module Cisco-IOS-XR-ipv6-ospfv3-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv6-ospfv3-cfg";
    
        prefix ipv6-ospfv3-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
        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 ipv6-ospfv3 package configuration.
         
         This model is deprecated and is replaced by
         Cisco-IOS-XR-um-router-ospfv3-cfg.yang which will provide the
         compatible functionalities.
         
         This module contains definitions
         for the following management objects:
           ospfv3: OSPFv3 configuration
         
         This YANG module augments the
           Cisco-IOS-XR-snmp-agent-cfg
         module with configuration data.
         
         Copyright (c) 2013-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2020-04-28" {
          description
            "Modified range for first half of AS number in asdot X.Y format";
        }
    
        revision "2019-10-31" {
          description
            "Added mandatory nodes and presence containers.
           2019-05-12
           Deprecated the native model, replaced by UM model.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2018-05-14" {
          description
            "removed enable leaf nodes that are implicitly set with CLI";
        }
    
        revision "2018-01-15" {
          description
            "Added naming-union to create sublist for distribute-out.";
        }
    
        revision "2017-11-05" {
          description
            "Corrected boolean values in when statements.";
        }
    
        revision "2017-11-01" {
          description
            "Removed external and summary LSA from rbit and v6bit container.";
        }
    
        revision "2017-07-14" {
          description
            "Trace buffer size enum name modified for intelligible.";
        }
    
        revision "2017-06-09" {
          description
            "Datatype modified to Range for area id, route tag and redistribute tag.";
        }
    
        revision "2017-05-01" {
          description
            "Fixing backward compatibility error in module.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.1.0";
        semver:module-version "1.0.0";
    
        typedef Ospfv3-protocol {
          type enumeration {
            enum "all" {
              value 0;
              description "All";
            }
            enum "connected" {
              value 1;
              description "Connected";
            }
            enum "static" {
              value 3;
              description "Static";
            }
            enum "bgp" {
              value 4;
              description "BGP";
            }
            enum "isis" {
              value 6;
              description "ISIS";
            }
            enum "ospfv3" {
              value 7;
              description "OSPFv3";
            }
            enum "eigrp" {
              value 8;
              description "EIGRP";
            }
          }
          description "Ospfv3 protocol";
        }
    
        typedef Ospfv3-fast-reroute-tiebreakers {
          type enumeration {
            enum "downstream" {
              value 0;
              description "Downstream";
            }
            enum "line-card-disjoint" {
              value 1;
              description "LC Disjoint";
            }
            enum "lowest-metric" {
              value 2;
              description "Lowest metric";
            }
            enum "node-protect" {
              value 3;
              description "Node protection";
            }
            enum "primary-path" {
              value 4;
              description "Primary path";
            }
            enum "secondary-path" {
              value 5;
              description "Secondar path";
            }
            enum "srlg-disjoint" {
              value 6;
              description "SRLG";
            }
          }
          description
            "Ospfv3 fast reroute tiebreakers";
        }
    
        typedef Ospfv3isis-route {
          type enumeration {
            enum "level1" {
              value 64;
              description "IS-IS level-1 routes";
            }
            enum "level2" {
              value 128;
              description "IS-IS level-2 routes";
            }
            enum "level1-and2" {
              value 192;
              description
                "IS-IS level-1 and level-2 routes";
            }
          }
          description "Ospfv3isis route";
        }
    
        typedef Ospfv3bfd-enable-mode {
          type enumeration {
            enum "disable" {
              value 0;
              description
                "Disable Mode - Prevent inheritance";
            }
            enum "default" {
              value 1;
              description
                "Default Mode - Default BFD behavior";
            }
            enum "strict" {
              value 2;
              description
                "Strict Mode - Hold down adj until BFD sesion up";
            }
          }
          description "Ospfv3bfd enable mode";
        }
    
        typedef Ospfv3-log-adj {
          type enumeration {
            enum "suppress" {
              value 0;
              description "No output";
            }
            enum "brief" {
              value 1;
              description "Limited output";
            }
            enum "detail" {
              value 2;
              description "Verbose output";
            }
          }
          description "Ospfv3 log adj";
        }
    
        typedef Ospfv3-protocol-type2 {
          type enumeration {
            enum "connected" {
              value 1;
              description "Connected";
            }
            enum "static" {
              value 3;
              description "Static";
            }
            enum "bgp" {
              value 4;
              description "BGP";
            }
            enum "isis" {
              value 6;
              description "ISIS";
            }
            enum "ospfv3" {
              value 7;
              description "OSPFv3";
            }
            enum "eigrp" {
              value 8;
              description "EIGRP";
            }
            enum "subscriber" {
              value 9;
              description "Subscriber";
            }
            enum "application" {
              value 10;
              description "Application";
            }
            enum "mobile" {
              value 11;
              description "Mobile";
            }
          }
          description "Ospfv3 protocol type2";
        }
    
        typedef Ospfv3-metric {
          type enumeration {
            enum "type1" {
              value 1;
              description
                "OSPFv3 external type 1 metrics";
            }
            enum "type2" {
              value 2;
              description
                "OSPFv3 external type 2 metrics";
            }
          }
          description "Ospfv3 metric";
        }
    
        typedef Ospfv3-trace-buf-size {
          type enumeration {
            enum "size0" {
              value 0;
              description "Disable trace";
            }
            enum "size256" {
              value 256;
              description
                "trace buffer size 256";
            }
            enum "size512" {
              value 512;
              description
                "trace buffer size 512";
            }
            enum "size1024" {
              value 1024;
              description
                "trace buffer size 1024";
            }
            enum "size2048" {
              value 2048;
              description
                "trace buffer size 2048";
            }
            enum "size4096" {
              value 4096;
              description
                "trace buffer size 4096";
            }
            enum "size8192" {
              value 8192;
              description
                "trace buffer size 8192";
            }
            enum "size16384" {
              value 16384;
              description
                "trace buffer size 16384";
            }
            enum "size32768" {
              value 32768;
              description
                "trace buffer size 32768";
            }
            enum "size65536" {
              value 65536;
              description
                "trace buffer size 65536";
            }
          }
          description "Ospfv3 trace buf size";
        }
    
        typedef Ospfv3-external-route {
          type enumeration {
            enum "external1" {
              value 8;
              description
                "External type 1 routes";
            }
            enum "external2" {
              value 16;
              description
                "External type 2 routes";
            }
            enum "external" {
              value 24;
              description
                "External (type 1 and 2) routes";
            }
          }
          description "Ospfv3 external route";
        }
    
        typedef Ospfv3-subsequent-address-family {
          type enumeration {
            enum "unicast" {
              value 1;
              description
                "Unicast subsequent address family";
            }
          }
          description
            "Ospfv3 subsequent address family";
        }
    
        typedef Ospfv3-internal-route {
          type enumeration {
            enum "internal" {
              value 6;
              description
                "OSPFv3 internal routes";
            }
          }
          description "Ospfv3 internal route";
        }
    
        typedef Ospfv3-fast-reroute {
          type enumeration {
            enum "none" {
              value 0;
              description "Disable";
            }
            enum "per-link" {
              value 1;
              description "Per link";
            }
            enum "per-prefix" {
              value 2;
              description "Per prefix";
            }
          }
          description "Ospfv3 fast reroute";
        }
    
        typedef Ospfv3-domain-id {
          type enumeration {
            enum "type0005" {
              value 5;
              description "Type 0x0005";
            }
            enum "type0105" {
              value 261;
              description "Type 0x0105";
            }
            enum "type0205" {
              value 517;
              description "Type 0x0205";
            }
          }
          description "Ospfv3 domain id";
        }
    
        typedef Ospfv3-authentication-type2 {
          type enumeration {
            enum "null" {
              value 0;
              description "NULL authentication";
            }
            enum "md5" {
              value 1;
              description "MD5 algorithm";
            }
            enum "sha1" {
              value 2;
              description "SHA1 algorithm";
            }
          }
          description
            "Ospfv3 authentication type2";
        }
    
        typedef Ospfv3-address-family {
          type enumeration {
            enum "ipv6" {
              value 1;
              description "IPv6 address family";
            }
          }
          description "Ospfv3 address family";
        }
    
        typedef Ospfv3-authentication {
          type enumeration {
            enum "md5" {
              value 1;
              description "MD5 algorithm";
            }
            enum "sha1" {
              value 2;
              description "SHA1 algorithm";
            }
          }
          description "Ospfv3 authentication";
        }
    
        typedef Ospfv3-encryption-algorithm {
          type enumeration {
            enum "null" {
              value 0;
              description "Use NULL encryption";
            }
            enum "des" {
              value 1;
              description
                "Use the DES algorithm";
            }
            enum "3des" {
              value 2;
              description
                "Use the triple DES algorithm";
            }
            enum "aes" {
              value 3;
              description
                "Use the AES algorithm";
            }
            enum "aes192" {
              value 4;
              description
                "Use the 192-bit AES algorithm";
            }
            enum "aes256" {
              value 5;
              description
                "Use the 256-bit AES algorithm";
            }
          }
          description
            "Ospfv3 encryption algorithm";
        }
    
        typedef Ospfv3nsr {
          type enumeration {
            enum "true" {
              value 1;
              description
                "Enable non-stop routing";
            }
            enum "false" {
              value 2;
              description
                "Disable non-stop routing";
            }
          }
          description "Ospfv3nsr";
        }
    
        typedef Ospfv3nssa-external-route {
          type enumeration {
            enum "external1" {
              value 4096;
              description
                "NSSA external type 1 routes";
            }
            enum "external2" {
              value 8192;
              description
                "NSSA external type 2 routes";
            }
            enum "external" {
              value 12288;
              description
                "NSSA external (type 1 and 2) routes";
            }
          }
          description
            "Ospfv3nssa external route";
        }
    
        typedef Ospfv3-eigrp-route {
          type enumeration {
            enum "internal" {
              value 16384;
              description
                "EIGRP internal routes";
            }
            enum "external" {
              value 32768;
              description
                "EIGRP external routes";
            }
          }
          description "Ospfv3 eigrp route";
        }
    
        typedef Ospfv3-fast-reroute-priority {
          type enumeration {
            enum "critical" {
              value 0;
              description "Critical";
            }
            enum "high" {
              value 1;
              description "High";
            }
            enum "medium" {
              value 2;
              description "Medium";
            }
            enum "low" {
              value 3;
              description "Low";
            }
          }
          description
            "Ospfv3 fast reroute priority";
        }
    
        typedef Ospfv3-network {
          type enumeration {
            enum "broadcast" {
              value 1;
              description
                "Broadcast multi-access network";
            }
            enum "non-broadcast" {
              value 2;
              description
                "Non-broadcast multi-access network";
            }
            enum "point-to-point" {
              value 3;
              description
                "Point-to-point network";
            }
            enum "point-to-multipoint" {
              value 4;
              description
                "Point-to-multipoint network";
            }
            enum
              "non-broadcast-point-to-multipoint" {
              value 5;
              description
                "Non-broadcast point-to-multipoint network";
            }
          }
          description "Ospfv3 network";
        }
    
        container ospfv3 {
          status deprecated;
          description
            "This model is deprecated and is replaced by
           Cisco-IOS-XR-um-router-ospfv3-cfg.yang which will
           provide the compatible functionalities.  OSPFv3
           configuration";
          container processes {
            description "OSPFv3 processes";
            list process {
              key "process-name";
              description "An OSPFv3 process";
              container default-vrf {
                description
                  "Default VRF related configuration";
                leaf ldp-sync {
                  type boolean;
                  description
                    "Enable/Disable MPLS LDP sync";
                }
    
                leaf prefix-suppression {
                  type boolean;
                  description
                    "Enable/disable prefix suppression on an
                   interface";
                }
    
                leaf spf-prefix-priority-disable {
                  type empty;
                  description
                    "SPF prefix prioritization disabled";
                }
    
                container area-addresses {
                  description
                    "Area configuration";
                  list area-address {
                    key "address";
                    description
                      "Configuration for a particular area";
                    leaf address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Area ID if in IP address format";
                    }
    
                    container authentication {
                      description
                        "Authenticate OSPFv3 packets";
                      leaf enable {
                        type boolean;
                        description
                          "Authenticate packets";
                      }
    
                      leaf spi {
                        type uint32 {
                          range
                            "256..4294967295";
                        }
                        description
                          "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                      }
    
                      leaf algorithm {
                        type Ospfv3-authentication;
                        description
                          "Use the MD5 or SHA1 algorithm";
                      }
    
                      leaf password {
                        type xr:Proprietary-password;
                        description
                          "Specify MD5 or SHA1 password";
                      }
                    }  // container authentication
    
                    container bfd {
                      description
                        "Configure BFD parameters";
                      leaf detection-multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detect multiplier";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "3..30000";
                        }
                        units "millisecond";
                        description
                          "Hello interval in milli-seconds";
                      }
    
                      leaf fast-detect-mode {
                        type Ospfv3bfd-enable-mode;
                        description
                          "Enable or disable BFD fast detection";
                      }
                    }  // container bfd
    
                    container ranges {
                      description
                        "Range configuration";
                      list range {
                        key "prefix prefix-length";
                        description
                          "Summarize inter-area routes matching
    prefix/length";
                        leaf prefix {
                          type inet:ipv6-address-no-zone;
                          description
                            "IPv6 prefix format";
                        }
    
                        leaf prefix-length {
                          type xr:Ipv6-prefix-length;
                          description
                            "IPV6 prefix length";
                        }
    
                        leaf not-advertise {
                          type boolean;
                          default "false";
                          description
                            "Do not advertise address range";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Specified metric for this range";
                        }
                      }  // list range
                    }  // container ranges
    
                    container encryption {
                      description
                        "Encrypt and authenticate OSPFv3 packets";
                      leaf enable {
                        type boolean;
                        description
                          "Authenticate packets";
                      }
    
                      leaf spi {
                        type uint32 {
                          range
                            "256..4294967295";
                        }
                        description
                          "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                      }
    
                      leaf encryption-algorithm {
                        type Ospfv3-encryption-algorithm;
                        description
                          "Specify the encryption algorithm";
                      }
    
                      leaf encryption-password {
                        type xr:Proprietary-password;
                        description
                          "Encryption password";
                      }
    
                      leaf authentication-algorithm {
                        type Ospfv3-authentication-type2;
                        description
                          "Use the NULL, MD5 or SHA1 algorithm";
                      }
    
                      leaf authentication-password {
                        type xr:Proprietary-password;
                        description
                          "Specify MD5 or SHA1 password";
                      }
                    }  // container encryption
    
                    container nssa {
                      description
                        "Specify area as a NSSA area.  Allowed only in
    non-backbone areas";
                      leaf no-redistribution {
                        type boolean;
                        default "false";
                        description
                          "No redistribution into this NSSA area";
                      }
    
                      leaf default-info-originate {
                        type boolean;
                        default "false";
                        description
                          "Originate Type 7 default into NSSA area";
                      }
    
                      leaf metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "Only valid with DefaultInfoOriginate";
                      }
    
                      leaf metric-type {
                        type Ospfv3-metric;
                        description
                          "Only valid with DefaultInfoOriginate";
                      }
    
                      leaf no-summary {
                        type empty;
                        description
                          "Do not send summary LSA into NSSA";
                      }
                    }  // container nssa
    
                    container database-filter {
                      description
                        "Database filter";
                      container all {
                        description "All";
                        leaf out {
                          type boolean;
                          description
                            "Enable or disable database-filter";
                        }
                      }  // container all
                    }  // container database-filter
    
                    container distribute-list {
                      description
                        "Filter prefixes to/from RIB";
                      container in {
                        description
                          "Filter prefixes installed to RIB";
                        leaf prefix-list {
                          type string;
                          description
                            "Filter prefixes based on an IPv6 prefix-list";
                        }
                      }  // container in
                    }  // container distribute-list
    
                    container interfaces {
                      description
                        "OSPFv3 interfaces";
                      list interface {
                        key "interface-name";
                        description
                          "OSPFv3 interface";
                        container authentication {
                          description
                            "Authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf algorithm {
                            type Ospfv3-authentication;
                            description
                              "Use the MD5 or SHA1 algorithm";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container authentication
    
                        container neighbors {
                          description
                            "Specify a neighbor router";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "IPv6 address";
                            leaf neighbor-address {
                              type xr:Cisco-ios-xr-string;
                              description
                                "IPV6 address";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              description
                                "OSPFv3 priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              units "second";
                              description
                                "OSPFv3 dead-router polling interval (in
    seconds)";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "OSPFv3 cost for point-to-multipoint
    neighbor";
                            }
    
                            leaf database-filter {
                              type boolean;
                              description
                                "Filter OSPFv3 LSA during synchronization
    and flooding for point-to-multipoint
    neighbor";
                            }
    
                            leaf zone {
                              type string;
                              description "Zone";
                            }
                          }  // list neighbor
                        }  // container neighbors
    
                        container encryption {
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf encryption-algorithm {
                            type Ospfv3-encryption-algorithm;
                            description
                              "Specify the encryption algorithm";
                          }
    
                          leaf encryption-password {
                            type xr:Proprietary-password;
                            description
                              "Encryption password";
                          }
    
                          leaf authentication-algorithm {
                            type Ospfv3-authentication-type2;
                            description
                              "Use the NULL, MD5 or SHA1 algorithm";
                          }
    
                          leaf authentication-password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container encryption
    
                        container bfd {
                          description
                            "Configure BFD parameters";
                          leaf interval {
                            type uint32 {
                              range "3..30000";
                            }
                            units "millisecond";
                            description
                              "Hello interval in milli-seconds";
                          }
    
                          leaf fast-detect-mode {
                            type Ospfv3bfd-enable-mode;
                            description
                              "Enable or disable BFD fast detection";
                          }
    
                          leaf detection-multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detect multiplier";
                          }
                        }  // container bfd
    
                        container database-filter {
                          description
                            "Database filter";
                          container all {
                            description "All";
                            leaf out {
                              type boolean;
                              description
                                "Enable or disable database-filter";
                            }
                          }  // container all
                        }  // container database-filter
    
                        container distribute-list {
                          description
                            "Filter prefixes to/from RIB";
                          container in {
                            description
                              "Filter prefixes installed to RIB";
                            leaf prefix-list {
                              type string;
                              description
                                "Filter prefixes based on an IPv6
    prefix-list";
                            }
                          }  // container in
                        }  // container distribute-list
    
                        leaf enable {
                          type empty;
                          description
                            "Enable OSPFv3 interface";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval after which a neighbor is declared
    dead (in seconds)";
                        }
    
                        leaf advertise-prefix-policy {
                          type string;
                          description
                            "Route policy name for Conditionally
    advertising this prefix";
                        }
    
                        leaf flood-reduction {
                          type boolean;
                          description
                            "Enable/disable flood reduction";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit delay in seconds";
                        }
    
                        leaf instance {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Instance ID";
                        }
    
                        leaf ldp-sync {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          description
                            "Enable/disable ignoring of MTU in DBD
    packets";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit interval in seconds";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf passive {
                          type boolean;
                          description
                            "Enable/disable routing updates on an
    interface";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "256..10000";
                          }
                          description
                            "Limit size of OSPFv3 packets";
                        }
    
                        leaf prefix-suppression {
                          type boolean;
                          description
                            "Enable/disable prefix suppression on an
    interface";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Specify router priority";
                        }
    
                        leaf network {
                          type Ospfv3-network;
                          description
                            "Specify network type";
                        }
    
                        leaf demand-circuit {
                          type boolean;
                          description
                            "Enable/disable demand circuit operation";
                        }
    
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Interface to configure";
                        }
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospfv3-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
                      }  // list interface
                    }  // container interfaces
    
                    container area-scope {
                      description
                        "Area Scope Configuration";
                      container fast-reroute {
                        description
                          "Fast-reroute configuration";
                        container per-link {
                          description
                            "Fast-reroute per-link configuration";
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-link
    
                        container per-prefix {
                          description
                            "Fast-reroute per-link configuration";
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-prefix
    
                        leaf fast-reroute-enable {
                          type Ospfv3-fast-reroute;
                          description
                            "Enable/Disable Fast-reroute per-link or
    per-prefix";
                        }
                      }  // container fast-reroute
                    }  // container area-scope
    
                    container sham-links {
                      description
                        "Sham Link sub-mode";
                      list sham-link {
                        key "source-address destination-address";
                        description
                          "ShamLink local and remote endpoints";
                        container authentication {
                          description
                            "Authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf algorithm {
                            type Ospfv3-authentication;
                            description
                              "Use the MD5 or SHA1 algorithm";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container authentication
    
                        container encryption {
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf encryption-algorithm {
                            type Ospfv3-encryption-algorithm;
                            description
                              "Specify the encryption algorithm";
                          }
    
                          leaf encryption-password {
                            type xr:Proprietary-password;
                            description
                              "Encryption password";
                          }
    
                          leaf authentication-algorithm {
                            type Ospfv3-authentication-type2;
                            description
                              "Use the NULL, MD5 or SHA1 algorithm";
                          }
    
                          leaf authentication-password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container encryption
    
                        leaf enable {
                          type empty;
                          description
                            "Enable sham link";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval after which a neighbor is declared
    dead (in seconds)";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit interval in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit delay in seconds";
                        }
    
                        leaf source-address {
                          type inet:ipv6-address-no-zone;
                          description
                            "Local sham-link endpoint";
                        }
    
                        leaf destination-address {
                          type inet:ipv6-address-no-zone;
                          description
                            "Remote sham-link endpoint";
                        }
                      }  // list sham-link
                    }  // container sham-links
    
                    container virtual-links {
                      description
                        "Virtual link sub-mode";
                      list virtual-link {
                        key "virtual-link-address";
                        description
                          "Router ID of virtual link neighbor";
                        container authentication {
                          description
                            "Authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf algorithm {
                            type Ospfv3-authentication;
                            description
                              "Use the MD5 or SHA1 algorithm";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container authentication
    
                        container encryption {
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf encryption-algorithm {
                            type Ospfv3-encryption-algorithm;
                            description
                              "Specify the encryption algorithm";
                          }
    
                          leaf encryption-password {
                            type xr:Proprietary-password;
                            description
                              "Encryption password";
                          }
    
                          leaf authentication-algorithm {
                            type Ospfv3-authentication-type2;
                            description
                              "Use the NULL, MD5 or SHA1 algorithm";
                          }
    
                          leaf authentication-password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container encryption
    
                        leaf enable {
                          type empty;
                          description
                            "Enabled virtual link";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval after which a neighbor is declared
    dead (in seconds)";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit interval in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit delay in seconds";
                        }
    
                        leaf virtual-link-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Router ID of virtual link neighbor";
                        }
                      }  // list virtual-link
                    }  // container virtual-links
    
                    leaf stub {
                      type boolean;
                      description
                        "Specify area as a stub area.  Allowed only in
    non-backbone areas";
                    }
    
                    leaf packet-size {
                      type uint32 {
                        range "256..10000";
                      }
                      description
                        "Limit size of OSPFv3 packets";
                    }
    
                    leaf instance {
                      type uint32 {
                        range "0..255";
                      }
                      description "Instance ID";
                    }
    
                    leaf demand-circuit {
                      type boolean;
                      description
                        "Enable/disable demand circuit operation";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Specify router priority";
                    }
    
                    leaf type7-translate-always {
                      type boolean;
                      description
                        "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                    }
    
                    leaf prefix-suppression {
                      type boolean;
                      description
                        "Enable/disable prefix suppression on an
    interface";
                    }
    
                    leaf enable {
                      type empty;
                      description
                        "Enable OSPFv3 area";
                    }
    
                    leaf mtu-ignore {
                      type boolean;
                      description
                        "Enable/disable ignoring of MTU in DBD packets";
                    }
    
                    leaf passive {
                      type boolean;
                      description
                        "Enable/disable routing updates on an interface";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Time between HELLO packets";
                    }
    
                    leaf dead-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Interval after which a neighbor is declared
    dead (in seconds)";
                    }
    
                    leaf default-cost {
                      type uint32 {
                        range "0..16777215";
                      }
                      description
                        "Set the summary default-cost of a NSSA/stub
    area";
                    }
    
                    leaf flood-reduction {
                      type boolean;
                      description
                        "Enable/disable flood reduction";
                    }
    
                    leaf retransmit-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Specify the transmit interval in seconds";
                    }
    
                    leaf ldp-sync {
                      type boolean;
                      description
                        "Enable/Disable MPLS LDP sync";
                    }
    
                    leaf network {
                      type Ospfv3-network;
                      description
                        "Specify network type";
                    }
    
                    leaf transmit-delay {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Specify the transmit delay in seconds";
                    }
    
                    leaf cost {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interface cost";
                    }
                  }  // list area-address
    
                  list area-area-id {
                    key "area-id";
                    description
                      "Configuration for a particular area";
                    leaf area-id {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Area ID if in integer format";
                    }
    
                    container authentication {
                      description
                        "Authenticate OSPFv3 packets";
                      leaf enable {
                        type boolean;
                        description
                          "Authenticate packets";
                      }
    
                      leaf spi {
                        type uint32 {
                          range
                            "256..4294967295";
                        }
                        description
                          "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                      }
    
                      leaf algorithm {
                        type Ospfv3-authentication;
                        description
                          "Use the MD5 or SHA1 algorithm";
                      }
    
                      leaf password {
                        type xr:Proprietary-password;
                        description
                          "Specify MD5 or SHA1 password";
                      }
                    }  // container authentication
    
                    container bfd {
                      description
                        "Configure BFD parameters";
                      leaf detection-multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detect multiplier";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "3..30000";
                        }
                        units "millisecond";
                        description
                          "Hello interval in milli-seconds";
                      }
    
                      leaf fast-detect-mode {
                        type Ospfv3bfd-enable-mode;
                        description
                          "Enable or disable BFD fast detection";
                      }
                    }  // container bfd
    
                    container ranges {
                      description
                        "Range configuration";
                      list range {
                        key "prefix prefix-length";
                        description
                          "Summarize inter-area routes matching
    prefix/length";
                        leaf prefix {
                          type inet:ipv6-address-no-zone;
                          description
                            "IPv6 prefix format";
                        }
    
                        leaf prefix-length {
                          type xr:Ipv6-prefix-length;
                          description
                            "IPV6 prefix length";
                        }
    
                        leaf not-advertise {
                          type boolean;
                          default "false";
                          description
                            "Do not advertise address range";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Specified metric for this range";
                        }
                      }  // list range
                    }  // container ranges
    
                    container encryption {
                      description
                        "Encrypt and authenticate OSPFv3 packets";
                      leaf enable {
                        type boolean;
                        description
                          "Authenticate packets";
                      }
    
                      leaf spi {
                        type uint32 {
                          range
                            "256..4294967295";
                        }
                        description
                          "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                      }
    
                      leaf encryption-algorithm {
                        type Ospfv3-encryption-algorithm;
                        description
                          "Specify the encryption algorithm";
                      }
    
                      leaf encryption-password {
                        type xr:Proprietary-password;
                        description
                          "Encryption password";
                      }
    
                      leaf authentication-algorithm {
                        type Ospfv3-authentication-type2;
                        description
                          "Use the NULL, MD5 or SHA1 algorithm";
                      }
    
                      leaf authentication-password {
                        type xr:Proprietary-password;
                        description
                          "Specify MD5 or SHA1 password";
                      }
                    }  // container encryption
    
                    container nssa {
                      description
                        "Specify area as a NSSA area.  Allowed only in
    non-backbone areas";
                      leaf no-redistribution {
                        type boolean;
                        default "false";
                        description
                          "No redistribution into this NSSA area";
                      }
    
                      leaf default-info-originate {
                        type boolean;
                        default "false";
                        description
                          "Originate Type 7 default into NSSA area";
                      }
    
                      leaf metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "Only valid with DefaultInfoOriginate";
                      }
    
                      leaf metric-type {
                        type Ospfv3-metric;
                        description
                          "Only valid with DefaultInfoOriginate";
                      }
    
                      leaf no-summary {
                        type empty;
                        description
                          "Do not send summary LSA into NSSA";
                      }
                    }  // container nssa
    
                    container database-filter {
                      description
                        "Database filter";
                      container all {
                        description "All";
                        leaf out {
                          type boolean;
                          description
                            "Enable or disable database-filter";
                        }
                      }  // container all
                    }  // container database-filter
    
                    container distribute-list {
                      description
                        "Filter prefixes to/from RIB";
                      container in {
                        description
                          "Filter prefixes installed to RIB";
                        leaf prefix-list {
                          type string;
                          description
                            "Filter prefixes based on an IPv6 prefix-list";
                        }
                      }  // container in
                    }  // container distribute-list
    
                    container interfaces {
                      description
                        "OSPFv3 interfaces";
                      list interface {
                        key "interface-name";
                        description
                          "OSPFv3 interface";
                        container authentication {
                          description
                            "Authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf algorithm {
                            type Ospfv3-authentication;
                            description
                              "Use the MD5 or SHA1 algorithm";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container authentication
    
                        container neighbors {
                          description
                            "Specify a neighbor router";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "IPv6 address";
                            leaf neighbor-address {
                              type xr:Cisco-ios-xr-string;
                              description
                                "IPV6 address";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              description
                                "OSPFv3 priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              units "second";
                              description
                                "OSPFv3 dead-router polling interval (in
    seconds)";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "OSPFv3 cost for point-to-multipoint
    neighbor";
                            }
    
                            leaf database-filter {
                              type boolean;
                              description
                                "Filter OSPFv3 LSA during synchronization
    and flooding for point-to-multipoint
    neighbor";
                            }
    
                            leaf zone {
                              type string;
                              description "Zone";
                            }
                          }  // list neighbor
                        }  // container neighbors
    
                        container encryption {
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf encryption-algorithm {
                            type Ospfv3-encryption-algorithm;
                            description
                              "Specify the encryption algorithm";
                          }
    
                          leaf encryption-password {
                            type xr:Proprietary-password;
                            description
                              "Encryption password";
                          }
    
                          leaf authentication-algorithm {
                            type Ospfv3-authentication-type2;
                            description
                              "Use the NULL, MD5 or SHA1 algorithm";
                          }
    
                          leaf authentication-password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container encryption
    
                        container bfd {
                          description
                            "Configure BFD parameters";
                          leaf interval {
                            type uint32 {
                              range "3..30000";
                            }
                            units "millisecond";
                            description
                              "Hello interval in milli-seconds";
                          }
    
                          leaf fast-detect-mode {
                            type Ospfv3bfd-enable-mode;
                            description
                              "Enable or disable BFD fast detection";
                          }
    
                          leaf detection-multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detect multiplier";
                          }
                        }  // container bfd
    
                        container database-filter {
                          description
                            "Database filter";
                          container all {
                            description "All";
                            leaf out {
                              type boolean;
                              description
                                "Enable or disable database-filter";
                            }
                          }  // container all
                        }  // container database-filter
    
                        container distribute-list {
                          description
                            "Filter prefixes to/from RIB";
                          container in {
                            description
                              "Filter prefixes installed to RIB";
                            leaf prefix-list {
                              type string;
                              description
                                "Filter prefixes based on an IPv6
    prefix-list";
                            }
                          }  // container in
                        }  // container distribute-list
    
                        leaf enable {
                          type empty;
                          description
                            "Enable OSPFv3 interface";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval after which a neighbor is declared
    dead (in seconds)";
                        }
    
                        leaf advertise-prefix-policy {
                          type string;
                          description
                            "Route policy name for Conditionally
    advertising this prefix";
                        }
    
                        leaf flood-reduction {
                          type boolean;
                          description
                            "Enable/disable flood reduction";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit delay in seconds";
                        }
    
                        leaf instance {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Instance ID";
                        }
    
                        leaf ldp-sync {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          description
                            "Enable/disable ignoring of MTU in DBD
    packets";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit interval in seconds";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf passive {
                          type boolean;
                          description
                            "Enable/disable routing updates on an
    interface";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "256..10000";
                          }
                          description
                            "Limit size of OSPFv3 packets";
                        }
    
                        leaf prefix-suppression {
                          type boolean;
                          description
                            "Enable/disable prefix suppression on an
    interface";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Specify router priority";
                        }
    
                        leaf network {
                          type Ospfv3-network;
                          description
                            "Specify network type";
                        }
    
                        leaf demand-circuit {
                          type boolean;
                          description
                            "Enable/disable demand circuit operation";
                        }
    
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Interface to configure";
                        }
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospfv3-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
                      }  // list interface
                    }  // container interfaces
    
                    container area-scope {
                      description
                        "Area Scope Configuration";
                      container fast-reroute {
                        description
                          "Fast-reroute configuration";
                        container per-link {
                          description
                            "Fast-reroute per-link configuration";
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-link
    
                        container per-prefix {
                          description
                            "Fast-reroute per-link configuration";
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-prefix
    
                        leaf fast-reroute-enable {
                          type Ospfv3-fast-reroute;
                          description
                            "Enable/Disable Fast-reroute per-link or
    per-prefix";
                        }
                      }  // container fast-reroute
                    }  // container area-scope
    
                    container sham-links {
                      description
                        "Sham Link sub-mode";
                      list sham-link {
                        key "source-address destination-address";
                        description
                          "ShamLink local and remote endpoints";
                        container authentication {
                          description
                            "Authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf algorithm {
                            type Ospfv3-authentication;
                            description
                              "Use the MD5 or SHA1 algorithm";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container authentication
    
                        container encryption {
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf encryption-algorithm {
                            type Ospfv3-encryption-algorithm;
                            description
                              "Specify the encryption algorithm";
                          }
    
                          leaf encryption-password {
                            type xr:Proprietary-password;
                            description
                              "Encryption password";
                          }
    
                          leaf authentication-algorithm {
                            type Ospfv3-authentication-type2;
                            description
                              "Use the NULL, MD5 or SHA1 algorithm";
                          }
    
                          leaf authentication-password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container encryption
    
                        leaf enable {
                          type empty;
                          description
                            "Enable sham link";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval after which a neighbor is declared
    dead (in seconds)";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit interval in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit delay in seconds";
                        }
    
                        leaf source-address {
                          type inet:ipv6-address-no-zone;
                          description
                            "Local sham-link endpoint";
                        }
    
                        leaf destination-address {
                          type inet:ipv6-address-no-zone;
                          description
                            "Remote sham-link endpoint";
                        }
                      }  // list sham-link
                    }  // container sham-links
    
                    container virtual-links {
                      description
                        "Virtual link sub-mode";
                      list virtual-link {
                        key "virtual-link-address";
                        description
                          "Router ID of virtual link neighbor";
                        container authentication {
                          description
                            "Authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf algorithm {
                            type Ospfv3-authentication;
                            description
                              "Use the MD5 or SHA1 algorithm";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container authentication
    
                        container encryption {
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          leaf enable {
                            type boolean;
                            description
                              "Authenticate packets";
                          }
    
                          leaf spi {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            description
                              "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                          }
    
                          leaf encryption-algorithm {
                            type Ospfv3-encryption-algorithm;
                            description
                              "Specify the encryption algorithm";
                          }
    
                          leaf encryption-password {
                            type xr:Proprietary-password;
                            description
                              "Encryption password";
                          }
    
                          leaf authentication-algorithm {
                            type Ospfv3-authentication-type2;
                            description
                              "Use the NULL, MD5 or SHA1 algorithm";
                          }
    
                          leaf authentication-password {
                            type xr:Proprietary-password;
                            description
                              "Specify MD5 or SHA1 password";
                          }
                        }  // container encryption
    
                        leaf enable {
                          type empty;
                          description
                            "Enabled virtual link";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval after which a neighbor is declared
    dead (in seconds)";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit interval in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Specify the transmit delay in seconds";
                        }
    
                        leaf virtual-link-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Router ID of virtual link neighbor";
                        }
                      }  // list virtual-link
                    }  // container virtual-links
    
                    leaf stub {
                      type boolean;
                      description
                        "Specify area as a stub area.  Allowed only in
    non-backbone areas";
                    }
    
                    leaf packet-size {
                      type uint32 {
                        range "256..10000";
                      }
                      description
                        "Limit size of OSPFv3 packets";
                    }
    
                    leaf instance {
                      type uint32 {
                        range "0..255";
                      }
                      description "Instance ID";
                    }
    
                    leaf demand-circuit {
                      type boolean;
                      description
                        "Enable/disable demand circuit operation";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Specify router priority";
                    }
    
                    leaf type7-translate-always {
                      type boolean;
                      description
                        "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                    }
    
                    leaf prefix-suppression {
                      type boolean;
                      description
                        "Enable/disable prefix suppression on an
    interface";
                    }
    
                    leaf enable {
                      type empty;
                      description
                        "Enable OSPFv3 area";
                    }
    
                    leaf mtu-ignore {
                      type boolean;
                      description
                        "Enable/disable ignoring of MTU in DBD packets";
                    }
    
                    leaf passive {
                      type boolean;
                      description
                        "Enable/disable routing updates on an interface";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Time between HELLO packets";
                    }
    
                    leaf dead-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Interval after which a neighbor is declared
    dead (in seconds)";
                    }
    
                    leaf default-cost {
                      type uint32 {
                        range "0..16777215";
                      }
                      description
                        "Set the summary default-cost of a NSSA/stub
    area";
                    }
    
                    leaf flood-reduction {
                      type boolean;
                      description
                        "Enable/disable flood reduction";
                    }
    
                    leaf retransmit-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Specify the transmit interval in seconds";
                    }
    
                    leaf ldp-sync {
                      type boolean;
                      description
                        "Enable/Disable MPLS LDP sync";
                    }
    
                    leaf network {
                      type Ospfv3-network;
                      description
                        "Specify network type";
                    }
    
                    leaf transmit-delay {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Specify the transmit delay in seconds";
                    }
    
                    leaf cost {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interface cost";
                    }
                  }  // list area-area-id
                }  // container area-addresses
    
                container timers {
                  description
                    "Adjust routing timers";
                  container pacing {
                    description "Pacing timers";
                    leaf flood {
                      type uint32 {
                        range "5..100";
                      }
                      units "millisecond";
                      description
                        "The minimum interval in milliseconds to pace
    limit flooding on interface";
                    }
    
                    leaf retransmission {
                      type uint32 {
                        range "5..100";
                      }
                      description
                        "The minimum interval in msec between neighbor
    retransmissions";
                    }
    
                    leaf lsa-group {
                      type uint32 {
                        range "10..1800";
                      }
                      units "second";
                      description
                        "Interval in seconds at which LSAs are grouped
    and refreshed, checksummed, or aged";
                    }
                  }  // container pacing
    
                  container lsa-timers {
                    description "LSA timers";
                    leaf arrival {
                      type uint32 {
                        range "0..60000";
                      }
                      units "millisecond";
                      description
                        "The minimum interval in milliseconds between
    accepting the same LSA";
                    }
                  }  // container lsa-timers
    
                  container throttle {
                    description
                      "Throttle timers";
                    container lsa {
                      description
                        "LSA throttle timers for all types of OSPF LSAs";
                      leaf first-delay {
                        type uint32 {
                          range "0..600000";
                        }
                        units "millisecond";
                        description
                          "Delay to generate first occurrence of LSA in
    milliseconds";
                      }
    
                      leaf minimum-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        description
                          "Minimum delay between originating the same
    LSA in milliseconds";
                      }
    
                      leaf maximum-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        description
                          "Maximum delay between originating the same
    LSA in milliseconds";
                      }
                    }  // container lsa
    
                    container spf {
                      description
                        "SPF throttle timers";
                      leaf first-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        description
                          "Initial delay between receiving a change and
    starting SPF in ms";
                      }
    
                      leaf minimum-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        description
                          "Minimum hold time between consecutive SPF
    calculations in ms";
                      }
    
                      leaf maximum-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        description
                          "Maximum wait time between consecutive SPF
    calculations in ms";
                      }
                    }  // container spf
                  }  // container throttle
                }  // container timers
    
                container summary-prefixes {
                  description
                    "Summarize redistributed routes matching
    prefix/length";
                  list summary-prefix {
                    key "prefix prefix-length";
                    description "IPv6 address";
                    leaf prefix {
                      type xr:Cisco-ios-xr-string;
                      description
                        "IPv6 prefix string format";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv6-prefix-length;
                      description
                        "IPV6 prefix length";
                    }
    
                    leaf not-advertise {
                      type boolean;
                      description
                        "Suppress routes matching prefix/length";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description "Tag";
                    }
                  }  // list summary-prefix
                }  // container summary-prefixes
    
                container snmp {
                  description
                    "SNMP configuration";
                  container trap-rate-limit {
                    description
                      "SNMP trap rate configuration";
                    leaf window-size {
                      type uint32 {
                        range "2..60";
                      }
                      description
                        "Trap rate limit sliding window size";
                    }
    
                    leaf max-window-traps {
                      type uint32 {
                        range "0..300";
                      }
                      description
                        "Max number of traps sent in window time";
                    }
                  }  // container trap-rate-limit
    
                  leaf context {
                    type string;
                    description
                      "SNMP context configuration";
                  }
                }  // container snmp
    
                container fast-reroute {
                  description
                    "Fast-reroute instance scoped parameters";
                  container per-link {
                    description
                      "Fast-reroute per-link global configuration";
                    leaf priority {
                      type Ospfv3-fast-reroute-priority;
                      description
                        "Fast-reroute per-link/per-prefix priority-limit
    command";
                    }
                  }  // container per-link
    
                  container per-prefix {
                    description
                      "Fast-reroute per-prefix global configuration";
                    container tiebreakers {
                      description
                        "Fast-reroute tiebreakers configurations";
                      list tiebreaker {
                        key "tiebreaker-type";
                        description
                          "Fast-reroute tiebreakers configuration";
                        leaf tiebreaker-type {
                          type Ospfv3-fast-reroute-tiebreakers;
                          description
                            "Tiebreaker type";
                        }
    
                        leaf tiebreaker-index {
                          type uint32 {
                            range "1..255";
                          }
                          mandatory true;
                          description
                            "Index value for a tiebreaker";
                        }
                      }  // list tiebreaker
                    }  // container tiebreakers
    
                    leaf load-sharing-disable {
                      type empty;
                      description
                        "Disable load sharing between multiple backups";
                    }
    
                    leaf priority {
                      type Ospfv3-fast-reroute-priority;
                      description
                        "Fast-reroute per-link/per-prefix priority-limit
    command";
                    }
                  }  // container per-prefix
                }  // container fast-reroute
    
                leaf retransmit-interval {
                  type uint32 {
                    range "1..65535";
                  }
                  units "second";
                  description
                    "Specify the transmit interval in seconds";
                }
    
                container distance {
                  description
                    "Define an administrative distance";
                  container ospfv3 {
                    description
                      "OSPFv3 administrative distance";
                    leaf intra-area {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "Distance for intra-area routes";
                    }
    
                    leaf inter-area {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "Distance for inter-area routes";
                    }
    
                    leaf external {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "Distance for external type 5 and type 7 routes";
                    }
                  }  // container ospfv3
    
                  leaf administrative {
                    type uint32 {
                      range "1..255";
                    }
                    description
                      "Define an administrative distance";
                  }
                }  // container distance
    
                leaf passive {
                  type boolean;
                  description
                    "Enable/disable routing updates on an interface";
                }
    
                leaf default-metric {
                  type uint32 {
                    range "1..16777214";
                  }
                  description
                    "Set metric of redistributed routes";
                }
    
                leaf flood-reduction {
                  type boolean;
                  description
                    "Enable/disable flood reduction";
                }
    
                container maximum {
                  description
                    "Set OSPFv3 limits";
                  container redistributed-prefixes {
                    description
                      "Limit number of redistributed prefixes";
                    leaf prefixes {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description
                        "Maximum number of prefixes redistributed to
    protocol";
                    }
    
                    leaf threshold {
                      type uint32 {
                        range "1..100";
                      }
                      description
                        "Threshold value (%) at which to generate a
    warning message";
                    }
    
                    leaf warning-only {
                      type empty;
                      description
                        "Only give warning message when limit is
    exceeded";
                    }
                  }  // container redistributed-prefixes
    
                  leaf interfaces {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "Specify maximum number of interfaces";
                  }
    
                  leaf paths {
                    type uint32 {
                      range "1..64";
                    }
                    description
                      "Specify maximum number of paths per route";
                  }
                }  // container maximum
    
                container redistributes {
                  description
                    "Redistribute information from another routing
    protocol";
                  list redistribute {
                    must
                      "connected-or-static-or-subscriber-or-mobile or bgp or ospfv3-or-isis-or-application or eigrp" {
                      description
                        "Connected-or-Static-or-Subscriber-or-Mobile or
    BGP or OSPFv3-or-ISIS-or-Application or EIGRP
    must be present.";
                    }
                    key "protocol-name";
                    description
                      "Redistribute information from another routing
    protocol";
                    container connected-or-static-or-subscriber-or-mobile {
                      when
                        "../protocol-name = 'connected' or ../protocol-name = 'static' or ../protocol-name = 'subscriber' or ../protocol-name = 'mobile'" {
                        description
                          "../ProtocolName = Connected or .
    ./ProtocolName = Static or ../ProtocolName =
    Subscriber or ../ProtocolName = Mobile";
                      }
                      presence
                        "Indicates that this node is configured.";
                      description
                        "connected or static or subscriber or mobile";
                      leaf internal-route-type {
                        type Ospfv3-internal-route;
                        description
                          "Redistribute OSPFv3 routes";
                      }
    
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      leaf metric-type {
                        type Ospfv3-metric;
                        description
                          "OSPFv3 exterior metric type for redistributed
    routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Tag for routes redistributed into OSPFv3";
                      }
    
                      leaf route-policy-name {
                        type string;
                        description
                          "Route policy to redistribution";
                      }
    
                      leaf external-route-type {
                        type Ospfv3-external-route;
                        description
                          "Redistribute OSPFv3 external routes";
                      }
    
                      leaf nssa-external-route-type {
                        type Ospfv3nssa-external-route;
                        description
                          "Redistribute OSPFv3 NSSA external routes";
                      }
    
                      leaf redistribute-route {
                        type boolean;
                        description
                          "Redistribution of OSPFv3 routes";
                      }
    
                      leaf isis-route-type {
                        type Ospfv3isis-route;
                        description
                          "ISIS route type";
                      }
    
                      leaf eigrp-route-type {
                        type Ospfv3-eigrp-route;
                        description
                          "EIGRP route type";
                      }
    
                      leaf preserve-med {
                        type boolean;
                        description
                          "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                      }
    
                      leaf bgp-preserve-default-info {
                        type boolean;
                        description
                          "Preserve Metric and Metric Type ofBGP Default
    Route";
                      }
    
                      leaf use-rib-metric {
                        type boolean;
                        description
                          "Use metric from RIB for redistributed routes";
                      }
                    }  // container connected-or-static-or-subscriber-or-mobile
    
                    leaf protocol-name {
                      type Ospfv3-protocol-type2;
                      description "Protocol";
                    }
    
                    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
                          "4-byte AS number in asdot (X.Y) format -
    first half (X)";
                      }
    
                      leaf as-yy {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "4-byte AS number in asdot (X.Y) format -
    second half (Y), or 2-byte AS number, or
    4-byte AS number in asplain format";
                      }
    
                      leaf internal-route-type {
                        type Ospfv3-internal-route;
                        description
                          "Redistribute OSPFv3 routes";
                      }
    
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      leaf metric-type {
                        type Ospfv3-metric;
                        description
                          "OSPFv3 exterior metric type for redistributed
    routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Tag for routes redistributed into OSPFv3";
                      }
    
                      leaf route-policy-name {
                        type string;
                        description
                          "Route policy to redistribution";
                      }
    
                      leaf external-route-type {
                        type Ospfv3-external-route;
                        description
                          "Redistribute OSPFv3 external routes";
                      }
    
                      leaf nssa-external-route-type {
                        type Ospfv3nssa-external-route;
                        description
                          "Redistribute OSPFv3 NSSA external routes";
                      }
    
                      leaf redistribute-route {
                        type boolean;
                        description
                          "Redistribution of OSPFv3 routes";
                      }
    
                      leaf isis-route-type {
                        type Ospfv3isis-route;
                        description
                          "ISIS route type";
                      }
    
                      leaf eigrp-route-type {
                        type Ospfv3-eigrp-route;
                        description
                          "EIGRP route type";
                      }
    
                      leaf preserve-med {
                        type boolean;
                        description
                          "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                      }
    
                      leaf bgp-preserve-default-info {
                        type boolean;
                        description
                          "Preserve Metric and Metric Type ofBGP Default
    Route";
                      }
    
                      leaf use-rib-metric {
                        type boolean;
                        description
                          "Use metric from RIB for redistributed routes";
                      }
                    }  // list bgp
    
                    list ospfv3-or-isis-or-application {
                      when
                        "../protocol-name = 'ospfv3' or ../protocol-name = 'isis' or ../protocol-name = 'application'" {
                        description
                          "../ProtocolName = OSPFv3 or ../ProtocolName
    = ISIS or ../ProtocolName = Application";
                      }
                      key "process-name";
                      description
                        "ospfv3 or isis or application";
                      leaf process-name {
                        type xr:Cisco-ios-xr-string;
                        description
                          "ISIS process name if protocol is ISIS, or
    OSPFv3 process name if protocol is OSPFv3";
                      }
    
                      leaf internal-route-type {
                        type Ospfv3-internal-route;
                        description
                          "Redistribute OSPFv3 routes";
                      }
    
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      leaf metric-type {
                        type Ospfv3-metric;
                        description
                          "OSPFv3 exterior metric type for redistributed
    routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Tag for routes redistributed into OSPFv3";
                      }
    
                      leaf route-policy-name {
                        type string;
                        description
                          "Route policy to redistribution";
                      }
    
                      leaf external-route-type {
                        type Ospfv3-external-route;
                        description
                          "Redistribute OSPFv3 external routes";
                      }
    
                      leaf nssa-external-route-type {
                        type Ospfv3nssa-external-route;
                        description
                          "Redistribute OSPFv3 NSSA external routes";
                      }
    
                      leaf redistribute-route {
                        type boolean;
                        description
                          "Redistribution of OSPFv3 routes";
                      }
    
                      leaf isis-route-type {
                        type Ospfv3isis-route;
                        description
                          "ISIS route type";
                      }
    
                      leaf eigrp-route-type {
                        type Ospfv3-eigrp-route;
                        description
                          "EIGRP route type";
                      }
    
                      leaf preserve-med {
                        type boolean;
                        description
                          "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                      }
    
                      leaf bgp-preserve-default-info {
                        type boolean;
                        description
                          "Preserve Metric and Metric Type ofBGP Default
    Route";
                      }
    
                      leaf use-rib-metric {
                        type boolean;
                        description
                          "Use metric from RIB for redistributed routes";
                      }
                    }  // list ospfv3-or-isis-or-application
    
                    list eigrp {
                      when
                        "../protocol-name = 'eigrp'" {
                        description
                          "../ProtocolName = EIGRP";
                      }
                      key "as-xx";
                      description "eigrp";
                      leaf as-xx {
                        type uint32 {
                          range "0..65535";
                        }
                        description
                          "4-byte AS number in asdot (X.Y) format -
    first half (X)";
                      }
    
                      leaf internal-route-type {
                        type Ospfv3-internal-route;
                        description
                          "Redistribute OSPFv3 routes";
                      }
    
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      leaf metric-type {
                        type Ospfv3-metric;
                        description
                          "OSPFv3 exterior metric type for redistributed
    routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Tag for routes redistributed into OSPFv3";
                      }
    
                      leaf route-policy-name {
                        type string;
                        description
                          "Route policy to redistribution";
                      }
    
                      leaf external-route-type {
                        type Ospfv3-external-route;
                        description
                          "Redistribute OSPFv3 external routes";
                      }
    
                      leaf nssa-external-route-type {
                        type Ospfv3nssa-external-route;
                        description
                          "Redistribute OSPFv3 NSSA external routes";
                      }
    
                      leaf redistribute-route {
                        type boolean;
                        description
                          "Redistribution of OSPFv3 routes";
                      }
    
                      leaf isis-route-type {
                        type Ospfv3isis-route;
                        description
                          "ISIS route type";
                      }
    
                      leaf eigrp-route-type {
                        type Ospfv3-eigrp-route;
                        description
                          "EIGRP route type";
                      }
    
                      leaf preserve-med {
                        type boolean;
                        description
                          "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                      }
    
                      leaf bgp-preserve-default-info {
                        type boolean;
                        description
                          "Preserve Metric and Metric Type ofBGP Default
    Route";
                      }
    
                      leaf use-rib-metric {
                        type boolean;
                        description
                          "Use metric from RIB for redistributed routes";
                      }
                    }  // list eigrp
                  }  // list redistribute
                }  // container redistributes
    
                container ignore {
                  description
                    "Do not complain about a specified event";
                  container lsa {
                    description
                      "Do not complain upon receiving LSA of the
    specified type";
                    leaf mospf {
                      type empty;
                      description
                        "Enable ignore of MOSPF type 6 LSA";
                    }
                  }  // container lsa
                }  // container ignore
    
                container distribute-list-out {
                  description
                    "Filter prefixes from RIB ";
                  container distribute-outs {
                    description
                      "Filter generated type-5 LSAs";
                    list distribute-out {
                      must
                        "all-or-connected-or-static-prefix-list or bgp or ospfv3-or-isis or eigrp" {
                        description
                          "All-or-Connected-or-Static or BGP or
    OSPFv3-or-ISIS or EIGRP must be present.";
                      }
                      key "protocol-name";
                      description
                        "Filter generated type-5 LSAs";
                      leaf all-or-connected-or-static-prefix-list {
                        when
                          "../protocol-name = 'all' or ../protocol-name = 'connected' or ../protocol-name = 'static'" {
                          description
                            "../ProtocolName = All or ../ProtocolName =
    Connected or ../ProtocolName = Static";
                        }
                        type string;
                        description
                          "Prefix-list name";
                      }
    
                      leaf protocol-name {
                        type Ospfv3-protocol;
                        description "none";
                      }
    
                      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
                            "4-byte AS number in asdot (X.Y) format -
    first half (X), or 2 byte AS number
    .Mandatory if Protocol is BGP or EIGRP 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
                            "4-byte AS number in asdot (X.Y) format -
    second half (Y), or 2-byte AS number, or
    4-byte AS number in asplain format.Mandatory
    if Protocol is BGP and must not be specified
    otherwise. Must be a non-zero value if first
    half is zero.";
                        }
    
                        leaf prefix-list {
                          type string;
                          description
                            "Prefix-list name";
                        }
                      }  // list bgp
    
                      list ospfv3-or-isis {
                        when
                          "../protocol-name = 'ospfv3' or ../protocol-name = 'isis'" {
                          description
                            "../ProtocolName = OSPFv3 or ../ProtocolName
    = ISIS";
                        }
                        key "process-name";
                        description
                          "ospfv3 or isis";
                        leaf process-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "If ISIS or OSPFv3, specify the instance name";
                        }
    
                        leaf prefix-list {
                          type string;
                          description
                            "Prefix-list name";
                        }
                      }  // list ospfv3-or-isis
    
                      list eigrp {
                        when
                          "../protocol-name = 'eigrp'" {
                          description
                            "../ProtocolName = EIGRP";
                        }
                        key "as-xx";
                        description "eigrp";
                        leaf as-xx {
                          type uint32 {
                            range "0..65535";
                          }
                          description
                            "4-byte AS number in asdot (X.Y) format -
    first half (X), or 2 byte AS number
    .Mandatory if Protocol is BGP or EIGRP and
    must not be specified otherwise. Must be a
    non-zero value if second half is zero.";
                        }
    
                        leaf prefix-list {
                          type string;
                          description
                            "Prefix-list name";
                        }
                      }  // list eigrp
                    }  // list distribute-out
                  }  // container distribute-outs
                }  // container distribute-list-out
    
                container distribute-list {
                  description
                    "Filter prefixes to/from RIB";
                  container in {
                    description
                      "Filter prefixes installed to RIB";
                    leaf prefix-list {
                      type string;
                      description
                        "Filter prefixes based on an IPv6 prefix-list";
                    }
                  }  // container in
                }  // container distribute-list
    
                leaf hello-interval {
                  type uint32 {
                    range "1..65535";
                  }
                  units "second";
                  description
                    "Time between HELLO packets";
                }
    
                container stub-router {
                  description
                    "Stub router configuration";
                  container rbit {
                    presence
                      "CLI submode compatibility.";
                    description
                      "Stub router R-bit configuration";
                    leaf on-switchover {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
    
                    leaf always {
                      type empty;
                      description
                        "Unconditionally enter stub router operational
    state";
                    }
    
                    container on-startup {
                      description
                        "Enter stub router operational state on startup";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Wait until BGP converges (only applicable to
    default VRF)";
                      }
    
                      leaf wait-time {
                        when
                          "../wait-for-bgp = 'false'" {
                          description
                            "../WaitForBGP = 'false'";
                        }
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
                    }  // container on-startup
    
                    leaf include-stub {
                      type empty;
                      description
                        "Advertise stub links with maximum metric in stub
    router mode";
                    }
    
                    leaf on-proc-migration {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
    
                    leaf on-proc-restart {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
                  }  // container rbit
    
                  container v6bit {
                    presence
                      "CLI submode compatibility.";
                    description
                      "Stub router V6-bit configuration";
                    leaf on-switchover {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
    
                    leaf always {
                      type empty;
                      description
                        "Unconditionally enter stub router operational
    state";
                    }
    
                    container on-startup {
                      description
                        "Enter stub router operational state on startup";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Wait until BGP converges (only applicable to
    default VRF)";
                      }
    
                      leaf wait-time {
                        when
                          "../wait-for-bgp = 'false'" {
                          description
                            "../WaitForBGP = 'false'";
                        }
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
                    }  // container on-startup
    
                    leaf on-proc-migration {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
    
                    leaf on-proc-restart {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
                  }  // container v6bit
    
                  container max-metric {
                    presence
                      "CLI submode compatibility.";
                    description
                      "Stub router max-metric configuration";
                    leaf external-lsa {
                      type uint32 {
                        range "1..16777214";
                      }
                      default "16711680";
                      description
                        "Advertise external LSAs with modified metric
    in stub router mode";
                    }
    
                    leaf summary-lsa {
                      type uint32 {
                        range "1..16777214";
                      }
                      default "16711680";
                      description
                        "Advertise summary LSAs with modified metric in
    stub router mode";
                    }
    
                    leaf on-switchover {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
    
                    leaf always {
                      type empty;
                      description
                        "Unconditionally enter stub router operational
    state";
                    }
    
                    container on-startup {
                      description
                        "Enter stub router operational state on startup";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Wait until BGP converges (only applicable to
    default VRF)";
                      }
    
                      leaf wait-time {
                        when
                          "../wait-for-bgp = 'false'" {
                          description
                            "../WaitForBGP = 'false'";
                        }
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
                    }  // container on-startup
    
                    leaf include-stub {
                      type empty;
                      description
                        "Advertise stub links with maximum metric in stub
    router mode";
                    }
    
                    leaf on-proc-migration {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
    
                    leaf on-proc-restart {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time (in seconds) to stay in stub router
    operational state";
                    }
                  }  // container max-metric
                }  // container stub-router
    
                leaf priority {
                  type uint32 {
                    range "0..255";
                  }
                  description
                    "Specify router priority";
                }
    
                container bfd {
                  description
                    "Configure BFD parameters";
                  leaf interval {
                    type uint32 {
                      range "3..30000";
                    }
                    units "millisecond";
                    description
                      "Hello interval in milli-seconds";
                  }
    
                  leaf detection-multiplier {
                    type uint32 {
                      range "2..50";
                    }
                    description
                      "Detect multiplier";
                  }
    
                  leaf fast-detect-mode {
                    type Ospfv3bfd-enable-mode;
                    description
                      "Enable or disable BFD fast detection";
                  }
                }  // container bfd
    
                leaf cost {
                  type uint32 {
                    range "1..65535";
                  }
                  description "Interface cost";
                }
    
                leaf dead-interval {
                  type uint32 {
                    range "1..65535";
                  }
                  units "second";
                  description
                    "Interval after which a neighbor is declared dead
    (in seconds)";
                }
    
                leaf packet-size {
                  type uint32 {
                    range "256..10000";
                  }
                  description
                    "Limit size of OSPFv3 packets";
                }
    
                leaf instance {
                  type uint32 {
                    range "0..255";
                  }
                  description "Instance ID";
                }
    
                leaf spf-prefix-priority-policy {
                  type string;
                  description
                    "Route policy for SPF prefix prioritization";
                }
    
                container database-filter {
                  description "Database filter";
                  container all {
                    description "All";
                    leaf out {
                      type empty;
                      description "Enable out";
                    }
                  }  // container all
                }  // container database-filter
    
                leaf router-id {
                  type inet:ipv4-address-no-zone;
                  description
                    "Specify the router ID for this OSPFv3 process in
    IPv4 address format";
                }
    
                container capability {
                  description
                    "OSPFv3 Capability";
                  leaf type7-prefer {
                    type boolean;
                    description
                      "NSSA capability to prefer Type 7 over Type 5";
                  }
    
                  leaf vrf-lite {
                    type boolean;
                    description
                      "Enable VRF Lite";
                  }
    
                  leaf type7-translate-zero-forwarding-addr {
                    type boolean;
                    description
                      "Enable capability to translate LSAs with fwd
    addr";
                  }
                }  // container capability
    
                leaf network {
                  type Ospfv3-network;
                  description
                    "Specify network type";
                }
    
                leaf mtu-ignore {
                  type boolean;
                  description
                    "Enable/disable ignoring of MTU in DBD packets";
                }
    
                leaf log-adjacency-changes {
                  type Ospfv3-log-adj;
                  description
                    "Log changes in adjacency state";
                }
    
                container authentication {
                  description
                    "Authenticate OSPFv3 packets";
                  leaf enable {
                    type boolean;
                    description
                      "Authenticate packets";
                  }
    
                  leaf spi {
                    type uint32 {
                      range "256..4294967295";
                    }
                    description
                      "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                  }
    
                  leaf algorithm {
                    type Ospfv3-authentication;
                    description
                      "Use the MD5 or SHA1 algorithm";
                  }
    
                  leaf password {
                    type xr:Proprietary-password;
                    description
                      "Specify MD5 or SHA1 password";
                  }
                }  // container authentication
    
                leaf demand-circuit {
                  type boolean;
                  description
                    "Enable/disable demand circuit operation";
                }
    
                container graceful-restart {
                  description
                    "Graceful restart configuration";
                  leaf interval {
                    type uint32 {
                      range "90..3600";
                    }
                    units "second";
                    description
                      "Minimum interval between graceful restarts
    (seconds)";
                  }
    
                  leaf strict-lsa-checking {
                    type empty;
                    description
                      "Terminate graceful restart helper mode if LSA
    changed";
                  }
    
                  leaf helper {
                    type empty;
                    description
                      "Disable router's helper support";
                  }
    
                  leaf enable {
                    type empty;
                    description
                      "Enable graceful restart";
                  }
    
                  leaf lifetime {
                    type uint32 {
                      range "90..1800";
                    }
                    units "second";
                    description
                      "Maximum route lifetime following restart
    (seconds)";
                  }
                }  // container graceful-restart
    
                container default-information {
                  description
                    "Control distribution of default information";
                  container originate {
                    presence
                      "Indicates a originate node is configured.";
                    description
                      "Distribute a default route";
                    leaf always {
                      type boolean;
                      mandatory true;
                      description
                        "Always advertise default route";
                    }
    
                    leaf metric {
                      type uint32 {
                        range "0..16777214";
                      }
                      description
                        "OSPFv3 default metric";
                    }
    
                    leaf metric-type {
                      type uint32 {
                        range "1..2";
                      }
                      description
                        "OSPFv3 metric type for default routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Tag for default route";
                    }
    
                    leaf route-policy-name {
                      type string;
                      description
                        "Route policy to default-information
    origination";
                    }
                  }  // container originate
                }  // container default-information
    
                container process-scope {
                  description
                    "Process scope configuration";
                  container fast-reroute {
                    description
                      "Fast-reroute configuration";
                    container per-link {
                      description
                        "Fast-reroute per-link configuration";
                      leaf fast-reroute-use-candidate-only {
                        type boolean;
                        default "false";
                        description
                          "Use only interfaces on the candidate list as a
    backup path";
                      }
    
                      container candidate-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                        list candidate-interface {
                          key "interface-name";
                          description
                            "Candidate backup interface";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list candidate-interface
                      }  // container candidate-interfaces
    
                      container exclude-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                        list exclude-interface {
                          key "interface-name";
                          description
                            "Exclude an interface from becoming a backup";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list exclude-interface
                      }  // container exclude-interfaces
                    }  // container per-link
    
                    container per-prefix {
                      description
                        "Fast-reroute per-link configuration";
                      leaf fast-reroute-use-candidate-only {
                        type boolean;
                        default "false";
                        description
                          "Use only interfaces on the candidate list as a
    backup path";
                      }
    
                      container candidate-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                        list candidate-interface {
                          key "interface-name";
                          description
                            "Candidate backup interface";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list candidate-interface
                      }  // container candidate-interfaces
    
                      container exclude-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                        list exclude-interface {
                          key "interface-name";
                          description
                            "Exclude an interface from becoming a backup";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list exclude-interface
                      }  // container exclude-interfaces
                    }  // container per-prefix
    
                    leaf fast-reroute-enable {
                      type Ospfv3-fast-reroute;
                      description
                        "Enable/Disable Fast-reroute per-link or
    per-prefix";
                    }
                  }  // container fast-reroute
                }  // container process-scope
    
                container encryption {
                  description
                    "Encrypt and authenticate OSPFv3 packets";
                  leaf enable {
                    type boolean;
                    description
                      "Authenticate packets";
                  }
    
                  leaf spi {
                    type uint32 {
                      range "256..4294967295";
                    }
                    description
                      "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                  }
    
                  leaf encryption-algorithm {
                    type Ospfv3-encryption-algorithm;
                    description
                      "Specify the encryption algorithm";
                  }
    
                  leaf encryption-password {
                    type xr:Proprietary-password;
                    description
                      "Encryption password";
                  }
    
                  leaf authentication-algorithm {
                    type Ospfv3-authentication-type2;
                    description
                      "Use the NULL, MD5 or SHA1 algorithm";
                  }
    
                  leaf authentication-password {
                    type xr:Proprietary-password;
                    description
                      "Specify MD5 or SHA1 password";
                  }
                }  // container encryption
    
                container auto-cost {
                  presence "enable auto-cost";
                  description
                    "Calculate interface cost according to bandwidth";
                  leaf disable {
                    type empty;
                    description
                      "Specify 'true' to assign cost based on
    interface type";
                  }
    
                  leaf reference-bandwidth {
                    type uint32 {
                      range "1..4294967";
                    }
                    units "Mbit/s";
                    description
                      "Specify reference bandwidth for cost
    computations in terms of Mbits per second";
                  }
                }  // container auto-cost
    
                leaf transmit-delay {
                  type uint32 {
                    range "1..65535";
                  }
                  units "second";
                  description
                    "Specify the transmit delay in seconds";
                }
              }  // container default-vrf
    
              container vrfs {
                description
                  "VRF related configuration";
                list vrf {
                  key "vrf-name";
                  description
                    "Configuration for a particular OSPF VRF";
                  container domain-id {
                    description
                      "OSPFv3 Domain ID";
                    container secondary-domain-ids {
                      description
                        "Secondary domain ID Table";
                      list secondary-domain-id {
                        key "domain-id-type domain-id-name";
                        description
                          "OSPF Secondary domain ID";
                        leaf domain-id-type {
                          type Ospfv3-domain-id;
                          description
                            "Secondary domain ID type";
                        }
    
                        leaf domain-id-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "Secondary domain ID value";
                        }
                      }  // list secondary-domain-id
                    }  // container secondary-domain-ids
    
                    container primary-domain-id {
                      description
                        "OSPF Primary domain ID";
                      leaf domain-id-type {
                        type Ospfv3-domain-id;
                        description
                          "Primary domain ID type";
                      }
    
                      leaf domain-id-name {
                        type string;
                        description
                          "Primary domain ID value";
                      }
                    }  // container primary-domain-id
                  }  // container domain-id
    
                  leaf snmpvrf-trap {
                    type empty;
                    description
                      "Enable SNMP trap configuration in a VRF";
                  }
    
                  leaf prefix-suppression {
                    type boolean;
                    description
                      "Enable/disable prefix suppression on an
                     interface";
                  }
    
                  leaf vrf-name {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Name for this VRF";
                  }
    
                  container area-addresses {
                    description
                      "Area configuration";
                    list area-address {
                      key "address";
                      description
                        "Configuration for a particular area";
                      leaf address {
                        type inet:ipv4-address-no-zone;
                        description
                          "Area ID if in IP address format";
                      }
    
                      container authentication {
                        description
                          "Authenticate OSPFv3 packets";
                        leaf enable {
                          type boolean;
                          description
                            "Authenticate packets";
                        }
    
                        leaf spi {
                          type uint32 {
                            range
                              "256..4294967295";
                          }
                          description
                            "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                        }
    
                        leaf algorithm {
                          type Ospfv3-authentication;
                          description
                            "Use the MD5 or SHA1 algorithm";
                        }
    
                        leaf password {
                          type xr:Proprietary-password;
                          description
                            "Specify MD5 or SHA1 password";
                        }
                      }  // container authentication
    
                      container bfd {
                        description
                          "Configure BFD parameters";
                        leaf detection-multiplier {
                          type uint32 {
                            range "2..50";
                          }
                          description
                            "Detect multiplier";
                        }
    
                        leaf interval {
                          type uint32 {
                            range "3..30000";
                          }
                          units "millisecond";
                          description
                            "Hello interval in milli-seconds";
                        }
    
                        leaf fast-detect-mode {
                          type Ospfv3bfd-enable-mode;
                          description
                            "Enable or disable BFD fast detection";
                        }
                      }  // container bfd
    
                      container ranges {
                        description
                          "Range configuration";
                        list range {
                          key "prefix prefix-length";
                          description
                            "Summarize inter-area routes matching
    prefix/length";
                          leaf prefix {
                            type inet:ipv6-address-no-zone;
                            description
                              "IPv6 prefix format";
                          }
    
                          leaf prefix-length {
                            type xr:Ipv6-prefix-length;
                            description
                              "IPV6 prefix length";
                          }
    
                          leaf not-advertise {
                            type boolean;
                            default "false";
                            description
                              "Do not advertise address range";
                          }
    
                          leaf cost {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Specified metric for this range";
                          }
                        }  // list range
                      }  // container ranges
    
                      container encryption {
                        description
                          "Encrypt and authenticate OSPFv3 packets";
                        leaf enable {
                          type boolean;
                          description
                            "Authenticate packets";
                        }
    
                        leaf spi {
                          type uint32 {
                            range
                              "256..4294967295";
                          }
                          description
                            "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                        }
    
                        leaf encryption-algorithm {
                          type Ospfv3-encryption-algorithm;
                          description
                            "Specify the encryption algorithm";
                        }
    
                        leaf encryption-password {
                          type xr:Proprietary-password;
                          description
                            "Encryption password";
                        }
    
                        leaf authentication-algorithm {
                          type Ospfv3-authentication-type2;
                          description
                            "Use the NULL, MD5 or SHA1 algorithm";
                        }
    
                        leaf authentication-password {
                          type xr:Proprietary-password;
                          description
                            "Specify MD5 or SHA1 password";
                        }
                      }  // container encryption
    
                      container nssa {
                        description
                          "Specify area as a NSSA area.  Allowed only in
    non-backbone areas";
                        leaf no-redistribution {
                          type boolean;
                          default "false";
                          description
                            "No redistribution into this NSSA area";
                        }
    
                        leaf default-info-originate {
                          type boolean;
                          default "false";
                          description
                            "Originate Type 7 default into NSSA area";
                        }
    
                        leaf metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "Only valid with DefaultInfoOriginate";
                        }
    
                        leaf metric-type {
                          type Ospfv3-metric;
                          description
                            "Only valid with DefaultInfoOriginate";
                        }
    
                        leaf no-summary {
                          type empty;
                          description
                            "Do not send summary LSA into NSSA";
                        }
                      }  // container nssa
    
                      container database-filter {
                        description
                          "Database filter";
                        container all {
                          description "All";
                          leaf out {
                            type boolean;
                            description
                              "Enable or disable database-filter";
                          }
                        }  // container all
                      }  // container database-filter
    
                      container distribute-list {
                        description
                          "Filter prefixes to/from RIB";
                        container in {
                          description
                            "Filter prefixes installed to RIB";
                          leaf prefix-list {
                            type string;
                            description
                              "Filter prefixes based on an IPv6 prefix-list";
                          }
                        }  // container in
                      }  // container distribute-list
    
                      container interfaces {
                        description
                          "OSPFv3 interfaces";
                        list interface {
                          key "interface-name";
                          description
                            "OSPFv3 interface";
                          container authentication {
                            description
                              "Authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf algorithm {
                              type Ospfv3-authentication;
                              description
                                "Use the MD5 or SHA1 algorithm";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container authentication
    
                          container neighbors {
                            description
                              "Specify a neighbor router";
                            list neighbor {
                              key "neighbor-address";
                              description
                                "IPv6 address";
                              leaf neighbor-address {
                                type xr:Cisco-ios-xr-string;
                                description
                                  "IPV6 address";
                              }
    
                              leaf priority {
                                type uint32 {
                                  range "0..255";
                                }
                                description
                                  "OSPFv3 priority of non-broadcast neighbor";
                              }
    
                              leaf poll-interval {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                units "second";
                                description
                                  "OSPFv3 dead-router polling interval (in
    seconds)";
                              }
    
                              leaf cost {
                                type uint32 {
                                  range
                                    "1..65535";
                                }
                                description
                                  "OSPFv3 cost for point-to-multipoint
    neighbor";
                              }
    
                              leaf database-filter {
                                type boolean;
                                description
                                  "Filter OSPFv3 LSA during synchronization
    and flooding for point-to-multipoint
    neighbor";
                              }
    
                              leaf zone {
                                type string;
                                description
                                  "Zone";
                              }
                            }  // list neighbor
                          }  // container neighbors
    
                          container encryption {
                            description
                              "Encrypt and authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf encryption-algorithm {
                              type Ospfv3-encryption-algorithm;
                              description
                                "Specify the encryption algorithm";
                            }
    
                            leaf encryption-password {
                              type xr:Proprietary-password;
                              description
                                "Encryption password";
                            }
    
                            leaf authentication-algorithm {
                              type Ospfv3-authentication-type2;
                              description
                                "Use the NULL, MD5 or SHA1 algorithm";
                            }
    
                            leaf authentication-password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container encryption
    
                          container bfd {
                            description
                              "Configure BFD parameters";
                            leaf interval {
                              type uint32 {
                                range "3..30000";
                              }
                              units
                                "millisecond";
                              description
                                "Hello interval in milli-seconds";
                            }
    
                            leaf fast-detect-mode {
                              type Ospfv3bfd-enable-mode;
                              description
                                "Enable or disable BFD fast detection";
                            }
    
                            leaf detection-multiplier {
                              type uint32 {
                                range "2..50";
                              }
                              description
                                "Detect multiplier";
                            }
                          }  // container bfd
    
                          container database-filter {
                            description
                              "Database filter";
                            container all {
                              description "All";
                              leaf out {
                                type boolean;
                                description
                                  "Enable or disable database-filter";
                              }
                            }  // container all
                          }  // container database-filter
    
                          container distribute-list {
                            description
                              "Filter prefixes to/from RIB";
                            container in {
                              description
                                "Filter prefixes installed to RIB";
                              leaf prefix-list {
                                type string;
                                description
                                  "Filter prefixes based on an IPv6
    prefix-list";
                              }
                            }  // container in
                          }  // container distribute-list
    
                          leaf enable {
                            type empty;
                            description
                              "Enable OSPFv3 interface";
                          }
    
                          leaf dead-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval after which a neighbor is declared
    dead (in seconds)";
                          }
    
                          leaf advertise-prefix-policy {
                            type string;
                            description
                              "Route policy name for Conditionally
    advertising this prefix";
                          }
    
                          leaf flood-reduction {
                            type boolean;
                            description
                              "Enable/disable flood reduction";
                          }
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit delay in seconds";
                          }
    
                          leaf instance {
                            type uint32 {
                              range "0..255";
                            }
                            description
                              "Instance ID";
                          }
    
                          leaf ldp-sync {
                            type boolean;
                            description
                              "Enable/Disable MPLS LDP sync";
                          }
    
                          leaf mtu-ignore {
                            type boolean;
                            description
                              "Enable/disable ignoring of MTU in DBD
    packets";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit interval in seconds";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Time between HELLO packets";
                          }
    
                          leaf passive {
                            type boolean;
                            description
                              "Enable/disable routing updates on an
    interface";
                          }
    
                          leaf packet-size {
                            type uint32 {
                              range "256..10000";
                            }
                            description
                              "Limit size of OSPFv3 packets";
                          }
    
                          leaf prefix-suppression {
                            type boolean;
                            description
                              "Enable/disable prefix suppression on an
    interface";
                          }
    
                          leaf priority {
                            type uint32 {
                              range "0..255";
                            }
                            description
                              "Specify router priority";
                          }
    
                          leaf network {
                            type Ospfv3-network;
                            description
                              "Specify network type";
                          }
    
                          leaf demand-circuit {
                            type boolean;
                            description
                              "Enable/disable demand circuit operation";
                          }
    
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface to configure";
                          }
    
                          container fast-reroute {
                            description
                              "Fast-reroute configuration";
                            container per-link {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-link
    
                            container per-prefix {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-prefix
    
                            leaf fast-reroute-enable {
                              type Ospfv3-fast-reroute;
                              description
                                "Enable/Disable Fast-reroute per-link or
    per-prefix";
                            }
                          }  // container fast-reroute
                        }  // list interface
                      }  // container interfaces
    
                      container area-scope {
                        description
                          "Area Scope Configuration";
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospfv3-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
                      }  // container area-scope
    
                      container sham-links {
                        description
                          "Sham Link sub-mode";
                        list sham-link {
                          key "source-address destination-address";
                          description
                            "ShamLink local and remote endpoints";
                          container authentication {
                            description
                              "Authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf algorithm {
                              type Ospfv3-authentication;
                              description
                                "Use the MD5 or SHA1 algorithm";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container authentication
    
                          container encryption {
                            description
                              "Encrypt and authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf encryption-algorithm {
                              type Ospfv3-encryption-algorithm;
                              description
                                "Specify the encryption algorithm";
                            }
    
                            leaf encryption-password {
                              type xr:Proprietary-password;
                              description
                                "Encryption password";
                            }
    
                            leaf authentication-algorithm {
                              type Ospfv3-authentication-type2;
                              description
                                "Use the NULL, MD5 or SHA1 algorithm";
                            }
    
                            leaf authentication-password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container encryption
    
                          leaf enable {
                            type empty;
                            description
                              "Enable sham link";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Time between HELLO packets";
                          }
    
                          leaf dead-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval after which a neighbor is declared
    dead (in seconds)";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit interval in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit delay in seconds";
                          }
    
                          leaf source-address {
                            type inet:ipv6-address-no-zone;
                            description
                              "Local sham-link endpoint";
                          }
    
                          leaf destination-address {
                            type inet:ipv6-address-no-zone;
                            description
                              "Remote sham-link endpoint";
                          }
                        }  // list sham-link
                      }  // container sham-links
    
                      container virtual-links {
                        description
                          "Virtual link sub-mode";
                        list virtual-link {
                          key "virtual-link-address";
                          description
                            "Router ID of virtual link neighbor";
                          container authentication {
                            description
                              "Authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf algorithm {
                              type Ospfv3-authentication;
                              description
                                "Use the MD5 or SHA1 algorithm";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container authentication
    
                          container encryption {
                            description
                              "Encrypt and authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf encryption-algorithm {
                              type Ospfv3-encryption-algorithm;
                              description
                                "Specify the encryption algorithm";
                            }
    
                            leaf encryption-password {
                              type xr:Proprietary-password;
                              description
                                "Encryption password";
                            }
    
                            leaf authentication-algorithm {
                              type Ospfv3-authentication-type2;
                              description
                                "Use the NULL, MD5 or SHA1 algorithm";
                            }
    
                            leaf authentication-password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container encryption
    
                          leaf enable {
                            type empty;
                            description
                              "Enabled virtual link";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Time between HELLO packets";
                          }
    
                          leaf dead-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval after which a neighbor is declared
    dead (in seconds)";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit interval in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit delay in seconds";
                          }
    
                          leaf virtual-link-address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Router ID of virtual link neighbor";
                          }
                        }  // list virtual-link
                      }  // container virtual-links
    
                      leaf stub {
                        type boolean;
                        description
                          "Specify area as a stub area.  Allowed only in
    non-backbone areas";
                      }
    
                      leaf packet-size {
                        type uint32 {
                          range "256..10000";
                        }
                        description
                          "Limit size of OSPFv3 packets";
                      }
    
                      leaf instance {
                        type uint32 {
                          range "0..255";
                        }
                        description
                          "Instance ID";
                      }
    
                      leaf demand-circuit {
                        type boolean;
                        description
                          "Enable/disable demand circuit operation";
                      }
    
                      leaf priority {
                        type uint32 {
                          range "0..255";
                        }
                        description
                          "Specify router priority";
                      }
    
                      leaf type7-translate-always {
                        type boolean;
                        description
                          "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                      }
    
                      leaf prefix-suppression {
                        type boolean;
                        description
                          "Enable/disable prefix suppression on an
    interface";
                      }
    
                      leaf enable {
                        type empty;
                        description
                          "Enable OSPFv3 area";
                      }
    
                      leaf mtu-ignore {
                        type boolean;
                        description
                          "Enable/disable ignoring of MTU in DBD packets";
                      }
    
                      leaf passive {
                        type boolean;
                        description
                          "Enable/disable routing updates on an interface";
                      }
    
                      leaf hello-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Time between HELLO packets";
                      }
    
                      leaf dead-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Interval after which a neighbor is declared
    dead (in seconds)";
                      }
    
                      leaf default-cost {
                        type uint32 {
                          range "0..16777215";
                        }
                        description
                          "Set the summary default-cost of a NSSA/stub
    area";
                      }
    
                      leaf flood-reduction {
                        type boolean;
                        description
                          "Enable/disable flood reduction";
                      }
    
                      leaf retransmit-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Specify the transmit interval in seconds";
                      }
    
                      leaf ldp-sync {
                        type boolean;
                        description
                          "Enable/Disable MPLS LDP sync";
                      }
    
                      leaf network {
                        type Ospfv3-network;
                        description
                          "Specify network type";
                      }
    
                      leaf transmit-delay {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Specify the transmit delay in seconds";
                      }
    
                      leaf cost {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Interface cost";
                      }
                    }  // list area-address
    
                    list area-area-id {
                      key "area-id";
                      description
                        "Configuration for a particular area";
                      leaf area-id {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Area ID if in integer format";
                      }
    
                      container authentication {
                        description
                          "Authenticate OSPFv3 packets";
                        leaf enable {
                          type boolean;
                          description
                            "Authenticate packets";
                        }
    
                        leaf spi {
                          type uint32 {
                            range
                              "256..4294967295";
                          }
                          description
                            "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                        }
    
                        leaf algorithm {
                          type Ospfv3-authentication;
                          description
                            "Use the MD5 or SHA1 algorithm";
                        }
    
                        leaf password {
                          type xr:Proprietary-password;
                          description
                            "Specify MD5 or SHA1 password";
                        }
                      }  // container authentication
    
                      container bfd {
                        description
                          "Configure BFD parameters";
                        leaf detection-multiplier {
                          type uint32 {
                            range "2..50";
                          }
                          description
                            "Detect multiplier";
                        }
    
                        leaf interval {
                          type uint32 {
                            range "3..30000";
                          }
                          units "millisecond";
                          description
                            "Hello interval in milli-seconds";
                        }
    
                        leaf fast-detect-mode {
                          type Ospfv3bfd-enable-mode;
                          description
                            "Enable or disable BFD fast detection";
                        }
                      }  // container bfd
    
                      container ranges {
                        description
                          "Range configuration";
                        list range {
                          key "prefix prefix-length";
                          description
                            "Summarize inter-area routes matching
    prefix/length";
                          leaf prefix {
                            type inet:ipv6-address-no-zone;
                            description
                              "IPv6 prefix format";
                          }
    
                          leaf prefix-length {
                            type xr:Ipv6-prefix-length;
                            description
                              "IPV6 prefix length";
                          }
    
                          leaf not-advertise {
                            type boolean;
                            default "false";
                            description
                              "Do not advertise address range";
                          }
    
                          leaf cost {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Specified metric for this range";
                          }
                        }  // list range
                      }  // container ranges
    
                      container encryption {
                        description
                          "Encrypt and authenticate OSPFv3 packets";
                        leaf enable {
                          type boolean;
                          description
                            "Authenticate packets";
                        }
    
                        leaf spi {
                          type uint32 {
                            range
                              "256..4294967295";
                          }
                          description
                            "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                        }
    
                        leaf encryption-algorithm {
                          type Ospfv3-encryption-algorithm;
                          description
                            "Specify the encryption algorithm";
                        }
    
                        leaf encryption-password {
                          type xr:Proprietary-password;
                          description
                            "Encryption password";
                        }
    
                        leaf authentication-algorithm {
                          type Ospfv3-authentication-type2;
                          description
                            "Use the NULL, MD5 or SHA1 algorithm";
                        }
    
                        leaf authentication-password {
                          type xr:Proprietary-password;
                          description
                            "Specify MD5 or SHA1 password";
                        }
                      }  // container encryption
    
                      container nssa {
                        description
                          "Specify area as a NSSA area.  Allowed only in
    non-backbone areas";
                        leaf no-redistribution {
                          type boolean;
                          default "false";
                          description
                            "No redistribution into this NSSA area";
                        }
    
                        leaf default-info-originate {
                          type boolean;
                          default "false";
                          description
                            "Originate Type 7 default into NSSA area";
                        }
    
                        leaf metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "Only valid with DefaultInfoOriginate";
                        }
    
                        leaf metric-type {
                          type Ospfv3-metric;
                          description
                            "Only valid with DefaultInfoOriginate";
                        }
    
                        leaf no-summary {
                          type empty;
                          description
                            "Do not send summary LSA into NSSA";
                        }
                      }  // container nssa
    
                      container database-filter {
                        description
                          "Database filter";
                        container all {
                          description "All";
                          leaf out {
                            type boolean;
                            description
                              "Enable or disable database-filter";
                          }
                        }  // container all
                      }  // container database-filter
    
                      container distribute-list {
                        description
                          "Filter prefixes to/from RIB";
                        container in {
                          description
                            "Filter prefixes installed to RIB";
                          leaf prefix-list {
                            type string;
                            description
                              "Filter prefixes based on an IPv6 prefix-list";
                          }
                        }  // container in
                      }  // container distribute-list
    
                      container interfaces {
                        description
                          "OSPFv3 interfaces";
                        list interface {
                          key "interface-name";
                          description
                            "OSPFv3 interface";
                          container authentication {
                            description
                              "Authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf algorithm {
                              type Ospfv3-authentication;
                              description
                                "Use the MD5 or SHA1 algorithm";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container authentication
    
                          container neighbors {
                            description
                              "Specify a neighbor router";
                            list neighbor {
                              key "neighbor-address";
                              description
                                "IPv6 address";
                              leaf neighbor-address {
                                type xr:Cisco-ios-xr-string;
                                description
                                  "IPV6 address";
                              }
    
                              leaf priority {
                                type uint32 {
                                  range "0..255";
                                }
                                description
                                  "OSPFv3 priority of non-broadcast neighbor";
                              }
    
                              leaf poll-interval {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                units "second";
                                description
                                  "OSPFv3 dead-router polling interval (in
    seconds)";
                              }
    
                              leaf cost {
                                type uint32 {
                                  range
                                    "1..65535";
                                }
                                description
                                  "OSPFv3 cost for point-to-multipoint
    neighbor";
                              }
    
                              leaf database-filter {
                                type boolean;
                                description
                                  "Filter OSPFv3 LSA during synchronization
    and flooding for point-to-multipoint
    neighbor";
                              }
    
                              leaf zone {
                                type string;
                                description
                                  "Zone";
                              }
                            }  // list neighbor
                          }  // container neighbors
    
                          container encryption {
                            description
                              "Encrypt and authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf encryption-algorithm {
                              type Ospfv3-encryption-algorithm;
                              description
                                "Specify the encryption algorithm";
                            }
    
                            leaf encryption-password {
                              type xr:Proprietary-password;
                              description
                                "Encryption password";
                            }
    
                            leaf authentication-algorithm {
                              type Ospfv3-authentication-type2;
                              description
                                "Use the NULL, MD5 or SHA1 algorithm";
                            }
    
                            leaf authentication-password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container encryption
    
                          container bfd {
                            description
                              "Configure BFD parameters";
                            leaf interval {
                              type uint32 {
                                range "3..30000";
                              }
                              units
                                "millisecond";
                              description
                                "Hello interval in milli-seconds";
                            }
    
                            leaf fast-detect-mode {
                              type Ospfv3bfd-enable-mode;
                              description
                                "Enable or disable BFD fast detection";
                            }
    
                            leaf detection-multiplier {
                              type uint32 {
                                range "2..50";
                              }
                              description
                                "Detect multiplier";
                            }
                          }  // container bfd
    
                          container database-filter {
                            description
                              "Database filter";
                            container all {
                              description "All";
                              leaf out {
                                type boolean;
                                description
                                  "Enable or disable database-filter";
                              }
                            }  // container all
                          }  // container database-filter
    
                          container distribute-list {
                            description
                              "Filter prefixes to/from RIB";
                            container in {
                              description
                                "Filter prefixes installed to RIB";
                              leaf prefix-list {
                                type string;
                                description
                                  "Filter prefixes based on an IPv6
    prefix-list";
                              }
                            }  // container in
                          }  // container distribute-list
    
                          leaf enable {
                            type empty;
                            description
                              "Enable OSPFv3 interface";
                          }
    
                          leaf dead-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval after which a neighbor is declared
    dead (in seconds)";
                          }
    
                          leaf advertise-prefix-policy {
                            type string;
                            description
                              "Route policy name for Conditionally
    advertising this prefix";
                          }
    
                          leaf flood-reduction {
                            type boolean;
                            description
                              "Enable/disable flood reduction";
                          }
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit delay in seconds";
                          }
    
                          leaf instance {
                            type uint32 {
                              range "0..255";
                            }
                            description
                              "Instance ID";
                          }
    
                          leaf ldp-sync {
                            type boolean;
                            description
                              "Enable/Disable MPLS LDP sync";
                          }
    
                          leaf mtu-ignore {
                            type boolean;
                            description
                              "Enable/disable ignoring of MTU in DBD
    packets";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit interval in seconds";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Time between HELLO packets";
                          }
    
                          leaf passive {
                            type boolean;
                            description
                              "Enable/disable routing updates on an
    interface";
                          }
    
                          leaf packet-size {
                            type uint32 {
                              range "256..10000";
                            }
                            description
                              "Limit size of OSPFv3 packets";
                          }
    
                          leaf prefix-suppression {
                            type boolean;
                            description
                              "Enable/disable prefix suppression on an
    interface";
                          }
    
                          leaf priority {
                            type uint32 {
                              range "0..255";
                            }
                            description
                              "Specify router priority";
                          }
    
                          leaf network {
                            type Ospfv3-network;
                            description
                              "Specify network type";
                          }
    
                          leaf demand-circuit {
                            type boolean;
                            description
                              "Enable/disable demand circuit operation";
                          }
    
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface to configure";
                          }
    
                          container fast-reroute {
                            description
                              "Fast-reroute configuration";
                            container per-link {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-link
    
                            container per-prefix {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-prefix
    
                            leaf fast-reroute-enable {
                              type Ospfv3-fast-reroute;
                              description
                                "Enable/Disable Fast-reroute per-link or
    per-prefix";
                            }
                          }  // container fast-reroute
                        }  // list interface
                      }  // container interfaces
    
                      container area-scope {
                        description
                          "Area Scope Configuration";
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospfv3-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
                      }  // container area-scope
    
                      container sham-links {
                        description
                          "Sham Link sub-mode";
                        list sham-link {
                          key "source-address destination-address";
                          description
                            "ShamLink local and remote endpoints";
                          container authentication {
                            description
                              "Authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf algorithm {
                              type Ospfv3-authentication;
                              description
                                "Use the MD5 or SHA1 algorithm";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container authentication
    
                          container encryption {
                            description
                              "Encrypt and authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf encryption-algorithm {
                              type Ospfv3-encryption-algorithm;
                              description
                                "Specify the encryption algorithm";
                            }
    
                            leaf encryption-password {
                              type xr:Proprietary-password;
                              description
                                "Encryption password";
                            }
    
                            leaf authentication-algorithm {
                              type Ospfv3-authentication-type2;
                              description
                                "Use the NULL, MD5 or SHA1 algorithm";
                            }
    
                            leaf authentication-password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container encryption
    
                          leaf enable {
                            type empty;
                            description
                              "Enable sham link";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Time between HELLO packets";
                          }
    
                          leaf dead-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval after which a neighbor is declared
    dead (in seconds)";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit interval in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit delay in seconds";
                          }
    
                          leaf source-address {
                            type inet:ipv6-address-no-zone;
                            description
                              "Local sham-link endpoint";
                          }
    
                          leaf destination-address {
                            type inet:ipv6-address-no-zone;
                            description
                              "Remote sham-link endpoint";
                          }
                        }  // list sham-link
                      }  // container sham-links
    
                      container virtual-links {
                        description
                          "Virtual link sub-mode";
                        list virtual-link {
                          key "virtual-link-address";
                          description
                            "Router ID of virtual link neighbor";
                          container authentication {
                            description
                              "Authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf algorithm {
                              type Ospfv3-authentication;
                              description
                                "Use the MD5 or SHA1 algorithm";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container authentication
    
                          container encryption {
                            description
                              "Encrypt and authenticate OSPFv3 packets";
                            leaf enable {
                              type boolean;
                              description
                                "Authenticate packets";
                            }
    
                            leaf spi {
                              type uint32 {
                                range
                                  "256..4294967295";
                              }
                              description
                                "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                            }
    
                            leaf encryption-algorithm {
                              type Ospfv3-encryption-algorithm;
                              description
                                "Specify the encryption algorithm";
                            }
    
                            leaf encryption-password {
                              type xr:Proprietary-password;
                              description
                                "Encryption password";
                            }
    
                            leaf authentication-algorithm {
                              type Ospfv3-authentication-type2;
                              description
                                "Use the NULL, MD5 or SHA1 algorithm";
                            }
    
                            leaf authentication-password {
                              type xr:Proprietary-password;
                              description
                                "Specify MD5 or SHA1 password";
                            }
                          }  // container encryption
    
                          leaf enable {
                            type empty;
                            description
                              "Enabled virtual link";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Time between HELLO packets";
                          }
    
                          leaf dead-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval after which a neighbor is declared
    dead (in seconds)";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit interval in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Specify the transmit delay in seconds";
                          }
    
                          leaf virtual-link-address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Router ID of virtual link neighbor";
                          }
                        }  // list virtual-link
                      }  // container virtual-links
    
                      leaf stub {
                        type boolean;
                        description
                          "Specify area as a stub area.  Allowed only in
    non-backbone areas";
                      }
    
                      leaf packet-size {
                        type uint32 {
                          range "256..10000";
                        }
                        description
                          "Limit size of OSPFv3 packets";
                      }
    
                      leaf instance {
                        type uint32 {
                          range "0..255";
                        }
                        description
                          "Instance ID";
                      }
    
                      leaf demand-circuit {
                        type boolean;
                        description
                          "Enable/disable demand circuit operation";
                      }
    
                      leaf priority {
                        type uint32 {
                          range "0..255";
                        }
                        description
                          "Specify router priority";
                      }
    
                      leaf type7-translate-always {
                        type boolean;
                        description
                          "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                      }
    
                      leaf prefix-suppression {
                        type boolean;
                        description
                          "Enable/disable prefix suppression on an
    interface";
                      }
    
                      leaf enable {
                        type empty;
                        description
                          "Enable OSPFv3 area";
                      }
    
                      leaf mtu-ignore {
                        type boolean;
                        description
                          "Enable/disable ignoring of MTU in DBD packets";
                      }
    
                      leaf passive {
                        type boolean;
                        description
                          "Enable/disable routing updates on an interface";
                      }
    
                      leaf hello-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Time between HELLO packets";
                      }
    
                      leaf dead-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Interval after which a neighbor is declared
    dead (in seconds)";
                      }
    
                      leaf default-cost {
                        type uint32 {
                          range "0..16777215";
                        }
                        description
                          "Set the summary default-cost of a NSSA/stub
    area";
                      }
    
                      leaf flood-reduction {
                        type boolean;
                        description
                          "Enable/disable flood reduction";
                      }
    
                      leaf retransmit-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Specify the transmit interval in seconds";
                      }
    
                      leaf ldp-sync {
                        type boolean;
                        description
                          "Enable/Disable MPLS LDP sync";
                      }
    
                      leaf network {
                        type Ospfv3-network;
                        description
                          "Specify network type";
                      }
    
                      leaf transmit-delay {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Specify the transmit delay in seconds";
                      }
    
                      leaf cost {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Interface cost";
                      }
                    }  // list area-area-id
                  }  // container area-addresses
    
                  container timers {
                    description
                      "Adjust routing timers";
                    container pacing {
                      description
                        "Pacing timers";
                      leaf flood {
                        type uint32 {
                          range "5..100";
                        }
                        units "millisecond";
                        description
                          "The minimum interval in milliseconds to pace
    limit flooding on interface";
                      }
    
                      leaf retransmission {
                        type uint32 {
                          range "5..100";
                        }
                        description
                          "The minimum interval in msec between neighbor
    retransmissions";
                      }
    
                      leaf lsa-group {
                        type uint32 {
                          range "10..1800";
                        }
                        units "second";
                        description
                          "Interval in seconds at which LSAs are grouped
    and refreshed, checksummed, or aged";
                      }
                    }  // container pacing
    
                    container lsa-timers {
                      description "LSA timers";
                      leaf arrival {
                        type uint32 {
                          range "0..60000";
                        }
                        units "millisecond";
                        description
                          "The minimum interval in milliseconds between
    accepting the same LSA";
                      }
                    }  // container lsa-timers
    
                    container throttle {
                      description
                        "Throttle timers";
                      container lsa {
                        description
                          "LSA throttle timers for all types of OSPF LSAs";
                        leaf first-delay {
                          type uint32 {
                            range "0..600000";
                          }
                          units "millisecond";
                          description
                            "Delay to generate first occurrence of LSA in
    milliseconds";
                        }
    
                        leaf minimum-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          units "millisecond";
                          description
                            "Minimum delay between originating the same
    LSA in milliseconds";
                        }
    
                        leaf maximum-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          units "millisecond";
                          description
                            "Maximum delay between originating the same
    LSA in milliseconds";
                        }
                      }  // container lsa
    
                      container spf {
                        description
                          "SPF throttle timers";
                        leaf first-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          description
                            "Initial delay between receiving a change and
    starting SPF in ms";
                        }
    
                        leaf minimum-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          description
                            "Minimum hold time between consecutive SPF
    calculations in ms";
                        }
    
                        leaf maximum-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          description
                            "Maximum wait time between consecutive SPF
    calculations in ms";
                        }
                      }  // container spf
                    }  // container throttle
                  }  // container timers
    
                  container summary-prefixes {
                    description
                      "Summarize redistributed routes matching
    prefix/length";
                    list summary-prefix {
                      key "prefix prefix-length";
                      description "IPv6 address";
                      leaf prefix {
                        type xr:Cisco-ios-xr-string;
                        description
                          "IPv6 prefix string format";
                      }
    
                      leaf prefix-length {
                        type xr:Ipv6-prefix-length;
                        description
                          "IPV6 prefix length";
                      }
    
                      leaf not-advertise {
                        type boolean;
                        description
                          "Suppress routes matching prefix/length";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description "Tag";
                      }
                    }  // list summary-prefix
                  }  // container summary-prefixes
    
                  container snmp {
                    description
                      "SNMP configuration";
                    container trap-rate-limit {
                      description
                        "SNMP trap rate configuration";
                      leaf window-size {
                        type uint32 {
                          range "2..60";
                        }
                        description
                          "Trap rate limit sliding window size";
                      }
    
                      leaf max-window-traps {
                        type uint32 {
                          range "0..300";
                        }
                        description
                          "Max number of traps sent in window time";
                      }
                    }  // container trap-rate-limit
    
                    leaf context {
                      type string;
                      description
                        "SNMP context configuration";
                    }
                  }  // container snmp
    
                  container fast-reroute {
                    description
                      "Fast-reroute instance scoped parameters";
                    container per-link {
                      description
                        "Fast-reroute per-link global configuration";
                      leaf priority {
                        type Ospfv3-fast-reroute-priority;
                        description
                          "Fast-reroute per-link/per-prefix priority-limit
    command";
                      }
                    }  // container per-link
    
                    container per-prefix {
                      description
                        "Fast-reroute per-prefix global configuration";
                      container tiebreakers {
                        description
                          "Fast-reroute tiebreakers configurations";
                        list tiebreaker {
                          key "tiebreaker-type";
                          description
                            "Fast-reroute tiebreakers configuration";
                          leaf tiebreaker-type {
                            type Ospfv3-fast-reroute-tiebreakers;
                            description
                              "Tiebreaker type";
                          }
    
                          leaf tiebreaker-index {
                            type uint32 {
                              range "1..255";
                            }
                            mandatory true;
                            description
                              "Index value for a tiebreaker";
                          }
                        }  // list tiebreaker
                      }  // container tiebreakers
    
                      leaf load-sharing-disable {
                        type empty;
                        description
                          "Disable load sharing between multiple backups";
                      }
    
                      leaf priority {
                        type Ospfv3-fast-reroute-priority;
                        description
                          "Fast-reroute per-link/per-prefix priority-limit
    command";
                      }
                    }  // container per-prefix
                  }  // container fast-reroute
    
                  leaf retransmit-interval {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    description
                      "Specify the transmit interval in seconds";
                  }
    
                  container distance {
                    description
                      "Define an administrative distance";
                    container ospfv3 {
                      description
                        "OSPFv3 administrative distance";
                      leaf intra-area {
                        type uint32 {
                          range "1..255";
                        }
                        description
                          "Distance for intra-area routes";
                      }
    
                      leaf inter-area {
                        type uint32 {
                          range "1..255";
                        }
                        description
                          "Distance for inter-area routes";
                      }
    
                      leaf external {
                        type uint32 {
                          range "1..255";
                        }
                        description
                          "Distance for external type 5 and type 7 routes";
                      }
                    }  // container ospfv3
    
                    leaf administrative {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "Define an administrative distance";
                    }
                  }  // container distance
    
                  leaf passive {
                    type boolean;
                    description
                      "Enable/disable routing updates on an interface";
                  }
    
                  leaf default-metric {
                    type uint32 {
                      range "1..16777214";
                    }
                    description
                      "Set metric of redistributed routes";
                  }
    
                  leaf flood-reduction {
                    type boolean;
                    description
                      "Enable/disable flood reduction";
                  }
    
                  container maximum {
                    description
                      "Set OSPFv3 limits";
                    container redistributed-prefixes {
                      description
                        "Limit number of redistributed prefixes";
                      leaf prefixes {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description
                          "Maximum number of prefixes redistributed to
    protocol";
                      }
    
                      leaf threshold {
                        type uint32 {
                          range "1..100";
                        }
                        description
                          "Threshold value (%) at which to generate a
    warning message";
                      }
    
                      leaf warning-only {
                        type empty;
                        description
                          "Only give warning message when limit is
    exceeded";
                      }
                    }  // container redistributed-prefixes
    
                    leaf interfaces {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description
                        "Specify maximum number of interfaces";
                    }
    
                    leaf paths {
                      type uint32 {
                        range "1..64";
                      }
                      description
                        "Specify maximum number of paths per route";
                    }
                  }  // container maximum
    
                  container redistributes {
                    description
                      "Redistribute information from another routing
    protocol";
                    list redistribute {
                      must
                        "connected-or-static-or-subscriber-or-mobile or bgp or ospfv3-or-isis-or-application or eigrp" {
                        description
                          "Connected-or-Static-or-Subscriber-or-Mobile or
    BGP or OSPFv3-or-ISIS-or-Application or EIGRP
    must be present.";
                      }
                      key "protocol-name";
                      description
                        "Redistribute information from another routing
    protocol";
                      container connected-or-static-or-subscriber-or-mobile {
                        when
                          "../protocol-name = 'connected' or ../protocol-name = 'static' or ../protocol-name = 'subscriber' or ../protocol-name = 'mobile'" {
                          description
                            "../ProtocolName = Connected or .
    ./ProtocolName = Static or ../ProtocolName =
    Subscriber or ../ProtocolName = Mobile";
                        }
                        presence
                          "Indicates that this node is configured.";
                        description
                          "connected or static or subscriber or mobile";
                        leaf internal-route-type {
                          type Ospfv3-internal-route;
                          description
                            "Redistribute OSPFv3 routes";
                        }
    
                        leaf default-metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "OSPFv3 default metric";
                        }
    
                        leaf metric-type {
                          type Ospfv3-metric;
                          description
                            "OSPFv3 exterior metric type for redistributed
    routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Route policy to redistribution";
                        }
    
                        leaf external-route-type {
                          type Ospfv3-external-route;
                          description
                            "Redistribute OSPFv3 external routes";
                        }
    
                        leaf nssa-external-route-type {
                          type Ospfv3nssa-external-route;
                          description
                            "Redistribute OSPFv3 NSSA external routes";
                        }
    
                        leaf redistribute-route {
                          type boolean;
                          description
                            "Redistribution of OSPFv3 routes";
                        }
    
                        leaf isis-route-type {
                          type Ospfv3isis-route;
                          description
                            "ISIS route type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospfv3-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf preserve-med {
                          type boolean;
                          description
                            "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type ofBGP Default
    Route";
                        }
    
                        leaf use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // container connected-or-static-or-subscriber-or-mobile
    
                      leaf protocol-name {
                        type Ospfv3-protocol-type2;
                        description "Protocol";
                      }
    
                      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
                            "4-byte AS number in asdot (X.Y) format -
    first half (X)";
                        }
    
                        leaf as-yy {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "4-byte AS number in asdot (X.Y) format -
    second half (Y), or 2-byte AS number, or
    4-byte AS number in asplain format";
                        }
    
                        leaf internal-route-type {
                          type Ospfv3-internal-route;
                          description
                            "Redistribute OSPFv3 routes";
                        }
    
                        leaf default-metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "OSPFv3 default metric";
                        }
    
                        leaf metric-type {
                          type Ospfv3-metric;
                          description
                            "OSPFv3 exterior metric type for redistributed
    routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Route policy to redistribution";
                        }
    
                        leaf external-route-type {
                          type Ospfv3-external-route;
                          description
                            "Redistribute OSPFv3 external routes";
                        }
    
                        leaf nssa-external-route-type {
                          type Ospfv3nssa-external-route;
                          description
                            "Redistribute OSPFv3 NSSA external routes";
                        }
    
                        leaf redistribute-route {
                          type boolean;
                          description
                            "Redistribution of OSPFv3 routes";
                        }
    
                        leaf isis-route-type {
                          type Ospfv3isis-route;
                          description
                            "ISIS route type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospfv3-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf preserve-med {
                          type boolean;
                          description
                            "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type ofBGP Default
    Route";
                        }
    
                        leaf use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // list bgp
    
                      list ospfv3-or-isis-or-application {
                        when
                          "../protocol-name = 'ospfv3' or ../protocol-name = 'isis' or ../protocol-name = 'application'" {
                          description
                            "../ProtocolName = OSPFv3 or ../ProtocolName
    = ISIS or ../ProtocolName = Application";
                        }
                        key "process-name";
                        description
                          "ospfv3 or isis or application";
                        leaf process-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "ISIS process name if protocol is ISIS, or
    OSPFv3 process name if protocol is OSPFv3";
                        }
    
                        leaf internal-route-type {
                          type Ospfv3-internal-route;
                          description
                            "Redistribute OSPFv3 routes";
                        }
    
                        leaf default-metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "OSPFv3 default metric";
                        }
    
                        leaf metric-type {
                          type Ospfv3-metric;
                          description
                            "OSPFv3 exterior metric type for redistributed
    routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Route policy to redistribution";
                        }
    
                        leaf external-route-type {
                          type Ospfv3-external-route;
                          description
                            "Redistribute OSPFv3 external routes";
                        }
    
                        leaf nssa-external-route-type {
                          type Ospfv3nssa-external-route;
                          description
                            "Redistribute OSPFv3 NSSA external routes";
                        }
    
                        leaf redistribute-route {
                          type boolean;
                          description
                            "Redistribution of OSPFv3 routes";
                        }
    
                        leaf isis-route-type {
                          type Ospfv3isis-route;
                          description
                            "ISIS route type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospfv3-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf preserve-med {
                          type boolean;
                          description
                            "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type ofBGP Default
    Route";
                        }
    
                        leaf use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // list ospfv3-or-isis-or-application
    
                      list eigrp {
                        when
                          "../protocol-name = 'eigrp'" {
                          description
                            "../ProtocolName = EIGRP";
                        }
                        key "as-xx";
                        description "eigrp";
                        leaf as-xx {
                          type uint32 {
                            range "0..65535";
                          }
                          description
                            "4-byte AS number in asdot (X.Y) format -
    first half (X)";
                        }
    
                        leaf internal-route-type {
                          type Ospfv3-internal-route;
                          description
                            "Redistribute OSPFv3 routes";
                        }
    
                        leaf default-metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "OSPFv3 default metric";
                        }
    
                        leaf metric-type {
                          type Ospfv3-metric;
                          description
                            "OSPFv3 exterior metric type for redistributed
    routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Route policy to redistribution";
                        }
    
                        leaf external-route-type {
                          type Ospfv3-external-route;
                          description
                            "Redistribute OSPFv3 external routes";
                        }
    
                        leaf nssa-external-route-type {
                          type Ospfv3nssa-external-route;
                          description
                            "Redistribute OSPFv3 NSSA external routes";
                        }
    
                        leaf redistribute-route {
                          type boolean;
                          description
                            "Redistribution of OSPFv3 routes";
                        }
    
                        leaf isis-route-type {
                          type Ospfv3isis-route;
                          description
                            "ISIS route type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospfv3-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf preserve-med {
                          type boolean;
                          description
                            "Preserve (Multi-Exit Discriminator) of BGP
    routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type ofBGP Default
    Route";
                        }
    
                        leaf use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // list eigrp
                    }  // list redistribute
                  }  // container redistributes
    
                  container ignore {
                    description
                      "Do not complain about a specified event";
                    container lsa {
                      description
                        "Do not complain upon receiving LSA of the
    specified type";
                      leaf mospf {
                        type empty;
                        description
                          "Enable ignore of MOSPF type 6 LSA";
                      }
                    }  // container lsa
                  }  // container ignore
    
                  container distribute-list-out {
                    description
                      "Filter prefixes from RIB ";
                    container distribute-outs {
                      description
                        "Filter generated type-5 LSAs";
                      list distribute-out {
                        must
                          "all-or-connected-or-static-prefix-list or bgp or ospfv3-or-isis or eigrp" {
                          description
                            "All-or-Connected-or-Static or BGP or
    OSPFv3-or-ISIS or EIGRP must be present.";
                        }
                        key "protocol-name";
                        description
                          "Filter generated type-5 LSAs";
                        leaf all-or-connected-or-static-prefix-list {
                          when
                            "../protocol-name = 'all' or ../protocol-name = 'connected' or ../protocol-name = 'static'" {
                            description
                              "../ProtocolName = All or ../ProtocolName =
    Connected or ../ProtocolName = Static";
                          }
                          type string;
                          description
                            "Prefix-list name";
                        }
    
                        leaf protocol-name {
                          type Ospfv3-protocol;
                          description "none";
                        }
    
                        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
                              "4-byte AS number in asdot (X.Y) format -
    first half (X), or 2 byte AS number
    .Mandatory if Protocol is BGP or EIGRP 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
                              "4-byte AS number in asdot (X.Y) format -
    second half (Y), or 2-byte AS number, or
    4-byte AS number in asplain format.Mandatory
    if Protocol is BGP and must not be specified
    otherwise. Must be a non-zero value if first
    half is zero.";
                          }
    
                          leaf prefix-list {
                            type string;
                            description
                              "Prefix-list name";
                          }
                        }  // list bgp
    
                        list ospfv3-or-isis {
                          when
                            "../protocol-name = 'ospfv3' or ../protocol-name = 'isis'" {
                            description
                              "../ProtocolName = OSPFv3 or ../ProtocolName
    = ISIS";
                          }
                          key "process-name";
                          description
                            "ospfv3 or isis";
                          leaf process-name {
                            type xr:Cisco-ios-xr-string;
                            description
                              "If ISIS or OSPFv3, specify the instance name";
                          }
    
                          leaf prefix-list {
                            type string;
                            description
                              "Prefix-list name";
                          }
                        }  // list ospfv3-or-isis
    
                        list eigrp {
                          when
                            "../protocol-name = 'eigrp'" {
                            description
                              "../ProtocolName = EIGRP";
                          }
                          key "as-xx";
                          description "eigrp";
                          leaf as-xx {
                            type uint32 {
                              range "0..65535";
                            }
                            description
                              "4-byte AS number in asdot (X.Y) format -
    first half (X), or 2 byte AS number
    .Mandatory if Protocol is BGP or EIGRP and
    must not be specified otherwise. Must be a
    non-zero value if second half is zero.";
                          }
    
                          leaf prefix-list {
                            type string;
                            description
                              "Prefix-list name";
                          }
                        }  // list eigrp
                      }  // list distribute-out
                    }  // container distribute-outs
                  }  // container distribute-list-out
    
                  container distribute-list {
                    description
                      "Filter prefixes to/from RIB";
                    container in {
                      description
                        "Filter prefixes installed to RIB";
                      leaf prefix-list {
                        type string;
                        description
                          "Filter prefixes based on an IPv6 prefix-list";
                      }
                    }  // container in
                  }  // container distribute-list
    
                  leaf hello-interval {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    description
                      "Time between HELLO packets";
                  }
    
                  container stub-router {
                    description
                      "Stub router configuration";
                    container rbit {
                      presence
                        "CLI submode compatibility.";
                      description
                        "Stub router R-bit configuration";
                      leaf on-switchover {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
    
                      leaf always {
                        type empty;
                        description
                          "Unconditionally enter stub router operational
    state";
                      }
    
                      container on-startup {
                        description
                          "Enter stub router operational state on startup";
                        leaf wait-for-bgp {
                          type boolean;
                          default "false";
                          description
                            "Wait until BGP converges (only applicable to
    default VRF)";
                        }
    
                        leaf wait-time {
                          when
                            "../wait-for-bgp = 'false'" {
                            description
                              "../WaitForBGP = 'false'";
                          }
                          type uint32 {
                            range "5..86400";
                          }
                          units "second";
                          description
                            "Time (in seconds) to stay in stub router
    operational state";
                        }
                      }  // container on-startup
    
                      leaf include-stub {
                        type empty;
                        description
                          "Advertise stub links with maximum metric in stub
    router mode";
                      }
    
                      leaf on-proc-migration {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
    
                      leaf on-proc-restart {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
                    }  // container rbit
    
                    container v6bit {
                      presence
                        "CLI submode compatibility.";
                      description
                        "Stub router V6-bit configuration";
                      leaf on-switchover {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
    
                      leaf always {
                        type empty;
                        description
                          "Unconditionally enter stub router operational
    state";
                      }
    
                      container on-startup {
                        description
                          "Enter stub router operational state on startup";
                        leaf wait-for-bgp {
                          type boolean;
                          default "false";
                          description
                            "Wait until BGP converges (only applicable to
    default VRF)";
                        }
    
                        leaf wait-time {
                          when
                            "../wait-for-bgp = 'false'" {
                            description
                              "../WaitForBGP = 'false'";
                          }
                          type uint32 {
                            range "5..86400";
                          }
                          units "second";
                          description
                            "Time (in seconds) to stay in stub router
    operational state";
                        }
                      }  // container on-startup
    
                      leaf on-proc-migration {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
    
                      leaf on-proc-restart {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
                    }  // container v6bit
    
                    container max-metric {
                      presence
                        "CLI submode compatibility.";
                      description
                        "Stub router max-metric configuration";
                      leaf external-lsa {
                        type uint32 {
                          range "1..16777214";
                        }
                        default "16711680";
                        description
                          "Advertise external LSAs with modified metric
    in stub router mode";
                      }
    
                      leaf summary-lsa {
                        type uint32 {
                          range "1..16777214";
                        }
                        default "16711680";
                        description
                          "Advertise summary LSAs with modified metric in
    stub router mode";
                      }
    
                      leaf on-switchover {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
    
                      leaf always {
                        type empty;
                        description
                          "Unconditionally enter stub router operational
    state";
                      }
    
                      container on-startup {
                        description
                          "Enter stub router operational state on startup";
                        leaf wait-for-bgp {
                          type boolean;
                          default "false";
                          description
                            "Wait until BGP converges (only applicable to
    default VRF)";
                        }
    
                        leaf wait-time {
                          when
                            "../wait-for-bgp = 'false'" {
                            description
                              "../WaitForBGP = 'false'";
                          }
                          type uint32 {
                            range "5..86400";
                          }
                          units "second";
                          description
                            "Time (in seconds) to stay in stub router
    operational state";
                        }
                      }  // container on-startup
    
                      leaf include-stub {
                        type empty;
                        description
                          "Advertise stub links with maximum metric in stub
    router mode";
                      }
    
                      leaf on-proc-migration {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
    
                      leaf on-proc-restart {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time (in seconds) to stay in stub router
    operational state";
                      }
                    }  // container max-metric
                  }  // container stub-router
    
                  leaf priority {
                    type uint32 {
                      range "0..255";
                    }
                    description
                      "Specify router priority";
                  }
    
                  container bfd {
                    description
                      "Configure BFD parameters";
                    leaf interval {
                      type uint32 {
                        range "3..30000";
                      }
                      units "millisecond";
                      description
                        "Hello interval in milli-seconds";
                    }
    
                    leaf detection-multiplier {
                      type uint32 {
                        range "2..50";
                      }
                      description
                        "Detect multiplier";
                    }
    
                    leaf fast-detect-mode {
                      type Ospfv3bfd-enable-mode;
                      description
                        "Enable or disable BFD fast detection";
                    }
                  }  // container bfd
    
                  leaf cost {
                    type uint32 {
                      range "1..65535";
                    }
                    description "Interface cost";
                  }
    
                  leaf dead-interval {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    description
                      "Interval after which a neighbor is declared dead
    (in seconds)";
                  }
    
                  leaf packet-size {
                    type uint32 {
                      range "256..10000";
                    }
                    description
                      "Limit size of OSPFv3 packets";
                  }
    
                  leaf instance {
                    type uint32 {
                      range "0..255";
                    }
                    description "Instance ID";
                  }
    
                  leaf spf-prefix-priority-policy {
                    type string;
                    description
                      "Route policy for SPF prefix prioritization";
                  }
    
                  container database-filter {
                    description
                      "Database filter";
                    container all {
                      description "All";
                      leaf out {
                        type empty;
                        description "Enable out";
                      }
                    }  // container all
                  }  // container database-filter
    
                  leaf router-id {
                    type inet:ipv4-address-no-zone;
                    description
                      "Specify the router ID for this OSPFv3 process in
    IPv4 address format";
                  }
    
                  container capability {
                    description
                      "OSPFv3 Capability";
                    leaf type7-prefer {
                      type boolean;
                      description
                        "NSSA capability to prefer Type 7 over Type 5";
                    }
    
                    leaf vrf-lite {
                      type boolean;
                      description
                        "Enable VRF Lite";
                    }
    
                    leaf type7-translate-zero-forwarding-addr {
                      type boolean;
                      description
                        "Enable capability to translate LSAs with fwd
    addr";
                    }
                  }  // container capability
    
                  leaf network {
                    type Ospfv3-network;
                    description
                      "Specify network type";
                  }
    
                  leaf mtu-ignore {
                    type boolean;
                    description
                      "Enable/disable ignoring of MTU in DBD packets";
                  }
    
                  leaf log-adjacency-changes {
                    type Ospfv3-log-adj;
                    description
                      "Log changes in adjacency state";
                  }
    
                  container authentication {
                    description
                      "Authenticate OSPFv3 packets";
                    leaf enable {
                      type boolean;
                      description
                        "Authenticate packets";
                    }
    
                    leaf spi {
                      type uint32 {
                        range "256..4294967295";
                      }
                      description
                        "Use IPSec AH authentication. Specify the
    Security Parameter Index (SPI) value";
                    }
    
                    leaf algorithm {
                      type Ospfv3-authentication;
                      description
                        "Use the MD5 or SHA1 algorithm";
                    }
    
                    leaf password {
                      type xr:Proprietary-password;
                      description
                        "Specify MD5 or SHA1 password";
                    }
                  }  // container authentication
    
                  leaf demand-circuit {
                    type boolean;
                    description
                      "Enable/disable demand circuit operation";
                  }
    
                  container graceful-restart {
                    description
                      "Graceful restart configuration";
                    leaf interval {
                      type uint32 {
                        range "90..3600";
                      }
                      units "second";
                      description
                        "Minimum interval between graceful restarts
    (seconds)";
                    }
    
                    leaf strict-lsa-checking {
                      type empty;
                      description
                        "Terminate graceful restart helper mode if LSA
    changed";
                    }
    
                    leaf helper {
                      type empty;
                      description
                        "Disable router's helper support";
                    }
    
                    leaf enable {
                      type empty;
                      description
                        "Enable graceful restart";
                    }
    
                    leaf lifetime {
                      type uint32 {
                        range "90..1800";
                      }
                      units "second";
                      description
                        "Maximum route lifetime following restart
    (seconds)";
                    }
                  }  // container graceful-restart
    
                  container default-information {
                    description
                      "Control distribution of default information";
                    container originate {
                      presence
                        "Indicates a originate node is configured.";
                      description
                        "Distribute a default route";
                      leaf always {
                        type boolean;
                        mandatory true;
                        description
                          "Always advertise default route";
                      }
    
                      leaf metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      leaf metric-type {
                        type uint32 {
                          range "1..2";
                        }
                        description
                          "OSPFv3 metric type for default routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Tag for default route";
                      }
    
                      leaf route-policy-name {
                        type string;
                        description
                          "Route policy to default-information
    origination";
                      }
                    }  // container originate
                  }  // container default-information
    
                  container process-scope {
                    description
                      "Process scope configuration";
                    container fast-reroute {
                      description
                        "Fast-reroute configuration";
                      container per-link {
                        description
                          "Fast-reroute per-link configuration";
                        leaf fast-reroute-use-candidate-only {
                          type boolean;
                          default "false";
                          description
                            "Use only interfaces on the candidate list as a
    backup path";
                        }
    
                        container candidate-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                          list candidate-interface {
                            key "interface-name";
                            description
                              "Candidate backup interface";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list candidate-interface
                        }  // container candidate-interfaces
    
                        container exclude-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                          list exclude-interface {
                            key "interface-name";
                            description
                              "Exclude an interface from becoming a backup";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list exclude-interface
                        }  // container exclude-interfaces
                      }  // container per-link
    
                      container per-prefix {
                        description
                          "Fast-reroute per-link configuration";
                        leaf fast-reroute-use-candidate-only {
                          type boolean;
                          default "false";
                          description
                            "Use only interfaces on the candidate list as a
    backup path";
                        }
    
                        container candidate-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                          list candidate-interface {
                            key "interface-name";
                            description
                              "Candidate backup interface";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list candidate-interface
                        }  // container candidate-interfaces
    
                        container exclude-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix exclude
    interface configuration";
                          list exclude-interface {
                            key "interface-name";
                            description
                              "Exclude an interface from becoming a backup";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list exclude-interface
                        }  // container exclude-interfaces
                      }  // container per-prefix
    
                      leaf fast-reroute-enable {
                        type Ospfv3-fast-reroute;
                        description
                          "Enable/Disable Fast-reroute per-link or
    per-prefix";
                      }
                    }  // container fast-reroute
                  }  // container process-scope
    
                  container encryption {
                    description
                      "Encrypt and authenticate OSPFv3 packets";
                    leaf enable {
                      type boolean;
                      description
                        "Authenticate packets";
                    }
    
                    leaf spi {
                      type uint32 {
                        range "256..4294967295";
                      }
                      description
                        "Use IPSec ESP authentication. Specify the
    Security Parameter Index (SPI) value";
                    }
    
                    leaf encryption-algorithm {
                      type Ospfv3-encryption-algorithm;
                      description
                        "Specify the encryption algorithm";
                    }
    
                    leaf encryption-password {
                      type xr:Proprietary-password;
                      description
                        "Encryption password";
                    }
    
                    leaf authentication-algorithm {
                      type Ospfv3-authentication-type2;
                      description
                        "Use the NULL, MD5 or SHA1 algorithm";
                    }
    
                    leaf authentication-password {
                      type xr:Proprietary-password;
                      description
                        "Specify MD5 or SHA1 password";
                    }
                  }  // container encryption
    
                  container auto-cost {
                    presence "enable auto-cost";
                    description
                      "Calculate interface cost according to bandwidth";
                    leaf disable {
                      type empty;
                      description
                        "Specify 'true' to assign cost based on
    interface type";
                    }
    
                    leaf reference-bandwidth {
                      type uint32 {
                        range "1..4294967";
                      }
                      units "Mbit/s";
                      description
                        "Specify reference bandwidth for cost
    computations in terms of Mbits per second";
                    }
                  }  // container auto-cost
    
                  leaf transmit-delay {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    description
                      "Specify the transmit delay in seconds";
                  }
                }  // list vrf
              }  // container vrfs
    
              container af {
                presence
                  "Indicates a af node is configured.";
                description
                  "Address Family (AF)";
                leaf af-name {
                  type Ospfv3-address-family;
                  mandatory true;
                  description
                    "Address Family (AF) identifier";
                }
    
                leaf saf-name {
                  type Ospfv3-subsequent-address-family;
                  description
                    "Subsequent Address Family (SAF) identifier";
                }
              }  // container af
    
              container trace-bufs {
                description
                  "Configuration to change size of trace buffer";
                list trace-buf {
                  key "trace-buf-name";
                  description
                    "Changes the size of the specified trace
                   buffer";
                  leaf trace-buf-name {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Name for this trace buffer";
                  }
    
                  leaf bufsize {
                    type Ospfv3-trace-buf-size;
                    mandatory true;
                    description "Buffer size";
                  }
                }  // list trace-buf
              }  // container trace-bufs
    
              leaf nsr {
                type Ospfv3nsr;
                default "true";
                description
                  "Enable non-stop routing";
              }
    
              leaf protocol-shutdown {
                type empty;
                description
                  "Enable protocol shutdown";
              }
    
              leaf process-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "OSPFv3 process name";
              }
            }  // list process
          }  // container processes
    
          leaf dns-name-lookup {
            type empty;
            description
              "Enable OSPFv3 router IDs as DNS names";
          }
        }  // container ospfv3
      }  // module Cisco-IOS-XR-ipv6-ospfv3-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.