Cisco-IOS-XR-um-router-ospfv3-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR router-ospfv3 package configuration. This YANG module au...

  • Version: 2021-03-11

    Cisco-IOS-XR-um-router-ospfv3-cfg@2021-03-11


    
      module Cisco-IOS-XR-um-router-ospfv3-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-router-ospfv3-cfg";
    
        prefix um-router-ospfv3-cfg;
    
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-um-snmp-server-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 router-ospfv3 package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2019-2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-03-11" {
          description
            "Added container strict-lsa-checking under graceful-restart
           2021-02-12
             Added leaf disable under
           (1) area/database-filter,
           (2) area/interface/database-filter
           (3) vrf/area/database-filter
           (4) vrf/area/interface/database-filter
           2021-01-20
             Added leaf route-policy under default-information";
        }
    
        revision "2020-05-26" {
          description
            "(1) Added container advertise and its child nodes under area/interface
           (2) Removed container include-stub from stub-router/router-lsa/r-bit|v6-bit
           2020-04-14
           Moved translate out of nssa into the new node nssa-translate";
        }
    
        revision "2019-06-10" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2019-03-30" {
          description "Initial version";
        }
    
        semver:module-version "2.1.0";
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        container router {
          description "Enable a routing process";
          container ospfv3 {
            description
              "IPv6 Open Shortest Path First protocol (OSPFv3)";
            container processes {
              description
                "IPv6 Open Shortest Path First protocol (OSPFv3)";
              list process {
                key "process-name";
                description
                  "IPv6 Open Shortest Path First protocol (OSPFv3)";
                leaf process-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                  }
                  description
                    "IPv6 Open Shortest Path First protocol (OSPFv3)";
                }
    
                container capability {
                  description
                    "Enable specific OSPFv3 feature";
                  container type7 {
                    description
                      "NSSA capability";
                    container prefer {
                      presence
                        "Indicates a prefer node is configured.";
                      description
                        "Prefer type7 externals over type5";
                    }  // container prefer
    
                    container translate {
                      description
                        "Translate type7 to type5";
                      container zero-forward-addr {
                        presence
                          "Indicates a zero-forward-addr node is configured.";
                        description
                          "Translate Type 7 LSAs without forwarding address";
                      }  // container zero-forward-addr
                    }  // container translate
                  }  // container type7
                }  // container capability
    
                container areas {
                  description
                    "Enter the OSPFv3 area configuration submode";
                  list area {
                    key "area-id";
                    description
                      "Enter the OSPFv3 area configuration submode";
                    leaf area-id {
                      type xr:Ospf-area-id;
                      description
                        "Enter the OSPFv3 area configuration submode";
                    }
    
                    leaf default-cost {
                      type uint32 {
                        range "0..16777215";
                      }
                      description
                        "Set the summary default-cost of a NSSA/stub area";
                    }
    
                    container nssa {
                      presence
                        "Indicates a nssa node is configured.";
                      description
                        "Specify area as an NSSA area";
                      container no-redistribution {
                        presence
                          "Indicates a no-redistribution node is configured.";
                        description
                          "No redistribution into this NSSA area";
                      }  // container no-redistribution
    
                      container default-information-originate {
                        presence
                          "Indicates a default-information-originate node is configured.";
                        description
                          "Originate Type 7 default into NSSA area";
                        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";
                        }
                      }  // container default-information-originate
    
                      container no-summary {
                        presence
                          "Indicates a no-summary node is configured.";
                        description
                          "Do not send summary LSA into NSSA";
                      }  // container no-summary
                    }  // container nssa
    
                    container nssa-translate {
                      description
                        "Translate NSSA LSA";
                      container type7 {
                        description
                          "Translate type 7 to type 5";
                        container always {
                          presence
                            "Indicates a always node is configured.";
                          description
                            "Always translate NSSA LSAs on this ABR";
                        }  // container always
                      }  // container type7
                    }  // container nssa-translate
    
                    container ranges {
                      description
                        "Summarize inter-area routes matching prefix/length";
                      list range {
                        must
                          "advertise or not-advertise";
                        key "prefix prefix-length";
                        description
                          "Summarize inter-area routes matching prefix/length";
                        leaf prefix {
                          type inet:ipv6-address-no-zone;
                          description
                            "Summarize inter-area routes matching prefix/length";
                        }
    
                        leaf prefix-length {
                          type xr:Ipv6-prefix-length;
                          description
                            "Summarize inter-area routes matching prefix/length";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "User specified metric for this range";
                        }
    
                        container advertise {
                          presence
                            "Indicates a advertise node is configured.";
                          description
                            "Advertise this range (default)";
                        }  // container advertise
    
                        container not-advertise {
                          presence
                            "Indicates a not-advertise node is configured.";
                          description
                            "Do not advertise this range";
                        }  // container not-advertise
                      }  // list range
                    }  // container ranges
    
                    container stub {
                      presence
                        "Indicates a stub node is configured.";
                      description
                        "Specify area as a stub area";
                      container no-summary {
                        presence
                          "Indicates a no-summary node is configured.";
                        description
                          "Do not send summary LSAs into stub area";
                      }  // container no-summary
                    }  // container stub
    
                    container interfaces {
                      description
                        "Enable OSPFv3 on an interface";
                      list interface {
                        key "interface-name";
                        description
                          "Enable OSPFv3 on an interface";
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Enable OSPFv3 on an interface";
                        }
    
                        container authentication {
                          must
                            "disable or ipsec/spi";
                          presence
                            "Indicates a authentication node is configured.";
                          description
                            "Authenticate OSPFv3 packets";
                          container disable {
                            must
                              "not(../ipsec/spi)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Do not authenticate OSPFv3 packets";
                          }  // container disable
    
                          container ipsec {
                            description
                              "Use IPSec AH authentication";
                            container spi {
                              must
                                "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                              presence
                                "Indicates a spi node is configured.";
                              description
                                "Specify the Security Parameter Index value";
                              leaf spi-index {
                                type uint32 {
                                  range
                                    "256..4294967295";
                                }
                                mandatory true;
                                description
                                  "Specify the Security Parameter Index value";
                              }
    
                              container md5 {
                                description
                                  "Use the MD5 algorithim";
                                container password {
                                  description
                                    "Enter MD5 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Encrypted key";
                                  }
                                }  // container password
                              }  // container md5
    
                              container sha1 {
                                description
                                  "Use the SHA1 algorithim";
                                container password {
                                  description
                                    "Enter SHA1 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Encrypted key";
                                  }
                                }  // container password
                              }  // container sha1
                            }  // container spi
                          }  // container ipsec
                        }  // container authentication
    
                        container encryption {
                          must
                            "disable or ipsec/spi";
                          presence
                            "Indicates a encryption node is configured.";
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          container disable {
                            must
                              "not(../ipsec/spi)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Do not encrypt OSPFv3 packets";
                          }  // container disable
    
                          container ipsec {
                            description
                              "Use IPSec ESP encryption and authentication";
                            container spi {
                              must
                                "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                              presence
                                "Indicates a spi node is configured.";
                              description
                                "Specify the Security Parameter Index value";
                              leaf spi-index {
                                type uint32 {
                                  range
                                    "256..4294967295";
                                }
                                mandatory true;
                                description
                                  "Specify the Security Parameter Index value";
                              }
    
                              container esp {
                                description
                                  "Specify encryption parameters";
                                container null {
                                  must
                                    "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                                  presence
                                    "Indicates a null node is configured.";
                                  description
                                    "Use NULL encryption";
                                }  // container null
    
                                container des {
                                  description
                                    "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                                  container password {
                                    description
                                      "Enter DES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
                                }  // container des
    
                                container triple-des {
                                  description
                                    "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                                  container password {
                                    description
                                      "Enter 3DES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
                                }  // container triple-des
    
                                container aes {
                                  description
                                    "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                                  container password {
                                    description
                                      "Enter AES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
    
                                  container aes-192 {
                                    description
                                      "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                    container password {
                                      description
                                        "Enter AES-192 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        must
                                          "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                      }
                                    }  // container password
                                  }  // container aes-192
    
                                  container aes-256 {
                                    description
                                      "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                    container password {
                                      description
                                        "Enter AES-256 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        must
                                          "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                      }
                                    }  // container password
                                  }  // container aes-256
                                }  // container aes
    
                                container authentication {
                                  must
                                    "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                                  presence
                                    "Indicates a authentication node is configured.";
                                  description
                                    "Specify authentication parameters";
                                  container md5 {
                                    description
                                      "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                    container password {
                                      description
                                        "Enter MD5 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Enter key in encrypted form";
                                      }
                                    }  // container password
                                  }  // container md5
    
                                  container sha1 {
                                    description
                                      "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                    container password {
                                      description
                                        "Enter SHA1 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Enter key in encrypted form";
                                      }
                                    }  // container password
                                  }  // container sha1
    
                                  container null {
                                    must
                                      "not(../../null)";
                                    presence
                                      "Indicates a null node is configured.";
                                    description
                                      "Use NULL authentication";
                                  }  // container null
                                }  // container authentication
                              }  // container esp
                            }  // container spi
                          }  // container ipsec
                        }  // container encryption
    
                        container network {
                          description
                            "Network type";
                          container broadcast {
                            presence
                              "Indicates a broadcast node is configured.";
                            description
                              "Specify OSPFv3 broadcast multi-access network";
                          }  // container broadcast
    
                          container non-broadcast {
                            presence
                              "Indicates a non-broadcast node is configured.";
                            description
                              "Specify OSPFv3 NBMA network";
                          }  // container non-broadcast
    
                          container point-to-point {
                            presence
                              "Indicates a point-to-point node is configured.";
                            description
                              "Specify OSPFv3 point-to-point network";
                          }  // container point-to-point
    
                          container point-to-multipoint {
                            presence
                              "Indicates a point-to-multipoint node is configured.";
                            description
                              "Specify OSPFv3 point-to-multipoint network";
                          }  // container point-to-multipoint
                        }  // container network
    
                        container cost {
                          description
                            "Interface cost";
                          leaf cost {
                            type uint32 {
                              range "0..65535";
                            }
                            description "Cost";
                          }
                        }  // container cost
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interval after which a neighbor is declared dead";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Router priority";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Delay between LSA retransmissions";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Link state transmit delay";
                        }
    
                        container flood-reduction {
                          presence
                            "Indicates a flood-reduction node is configured.";
                          description
                            "Enable/Disable flood reduction";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable flood reduction";
                          }  // container disable
                        }  // container flood-reduction
    
                        container demand-circuit {
                          presence
                            "Indicates a demand-circuit node is configured.";
                          description
                            "Enable/Disable demand circuit operation";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable demand circuit operation";
                          }  // container disable
                        }  // container demand-circuit
    
                        container mtu-ignore {
                          presence
                            "Indicates a mtu-ignore node is configured.";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Validate the MTU in DBD packets";
                          }  // container disable
                        }  // container mtu-ignore
    
                        leaf instance {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Instance ID";
                        }
    
                        container database-filter {
                          description
                            "Filter LSAs during synchronization and flooding";
                          container all {
                            description
                              "Filter all LSA";
                            container out {
                              presence
                                "Indicates a out node is configured.";
                              description
                                "Outgoing LSA";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable filtering";
                              }  // container disable
                            }  // container out
                          }  // container all
                        }  // container database-filter
    
                        container passive {
                          presence
                            "Indicates a passive node is configured.";
                          description
                            "Enable/Disable routing updates on an interface";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable routing updates on an interface";
                          }  // container disable
                        }  // container passive
    
                        container distribute-list {
                          description
                            "Filter prefixes to/from RIB";
                          leaf prefix-list {
                            type string {
                              length "1..1024";
                            }
                            description
                              "Filter prefixes based on an IPv6 prefix-list";
                          }
                        }  // container distribute-list
    
                        leaf packet-size {
                          type uint32 {
                            range "256..10000";
                          }
                          description
                            "Limit size of OSPFv3 packets";
                        }
    
                        container fast-reroute {
                          description
                            "IP Fast Reroute";
                          container per-link {
                            description
                              "Per-link Computation";
                            container enable {
                              must
                                "not(../../per-prefix/enable)";
                              presence
                                "Indicates a per-link node is configured.";
                              description
                                "Enable per-link Computation";
                            }  // container enable
    
                            container exclude {
                              description
                                "Per-link LFA exclusion information";
                              container interfaces {
                                description
                                  "Exclude an interface from Per-link LFA";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from Per-link LFA";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Exclude an interface from Per-link LFA";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container exclude
    
                            container lfa-candidate {
                              description
                                "FRR LFA candidate information";
                              container interfaces {
                                description
                                  "Include an interface to LFA candidate in computation";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Include an interface to LFA candidate in computation";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Include an interface to LFA candidate in computation";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container lfa-candidate
    
                            container use-candidate-only {
                              description
                                "Enable/Disable backup selection from candidate-list only";
                              container enable {
                                must
                                  "not(../disable)";
                                presence
                                  "Indicates a enable node is configured.";
                                description
                                  "Enable backup selection from candidate-list only";
                              }  // container enable
    
                              container disable {
                                must
                                  "not(../enable)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable backup selection from candidate-list only";
                              }  // container disable
                            }  // container use-candidate-only
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Per-prefix Computation";
                            container enable {
                              must
                                "not(../../per-link/enable)";
                              presence
                                "Indicates a per-prefix node is configured.";
                              description
                                "Enable per-prefix Computation";
                            }  // container enable
    
                            container exclude {
                              description
                                "Per-prefix LFA exclusion information";
                              container interfaces {
                                description
                                  "Exclude an interface from Per-prefix LFA";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from Per-prefix LFA";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Exclude an interface from Per-prefix LFA";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container exclude
    
                            container lfa-candidate {
                              description
                                "FRR LFA candidate information";
                              container interfaces {
                                description
                                  "Include an interface to LFA candidate in computation";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Include an interface to LFA candidate in computation";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Include an interface to LFA candidate in computation";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container lfa-candidate
    
                            container use-candidate-only {
                              description
                                "Enable/Disable backup selection from candidate-list only";
                              container enable {
                                must
                                  "not(../disable)";
                                presence
                                  "Indicates a enable node is configured.";
                                description
                                  "Enable backup selection from candidate-list only";
                              }  // container enable
    
                              container disable {
                                must
                                  "not(../enable)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable backup selection from candidate-list only";
                              }  // container disable
                            }  // container use-candidate-only
                          }  // container per-prefix
    
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable IP Fast Reroute";
                          }  // container disable
                        }  // container fast-reroute
    
                        container mpls {
                          description
                            "Configure MPLS routing protocol parameters";
                          container ldp {
                            description
                              "Configure LDP parameters";
                            container sync {
                              presence
                                "Indicates a sync node is configured.";
                              description
                                "Enable LDP IGP synchronization on interfaces";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable MPLS LDP sync";
                              }  // container disable
                            }  // container sync
                          }  // container ldp
                        }  // container mpls
    
                        container prefix-suppression {
                          presence
                            "Indicates a prefix-suppression node is configured.";
                          description
                            "Hide all transit addresses on this interface";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable prefix suppression on this interface";
                          }  // container disable
                        }  // container prefix-suppression
    
                        container bfd {
                          description
                            "Configure BFD parameters";
                          container fast-detect {
                            presence
                              "Indicates a fast-detect node is configured.";
                            description
                              "Enable Fast detection";
                            container strict-mode {
                              presence
                                "Indicates a strict-mode node is configured.";
                              description
                                "Hold down neighbor session until BFD session is up";
                            }  // container strict-mode
    
                            container disable {
                              presence
                                "Indicates a disable node is configured.";
                              description
                                "Prevent bfd settings from being inherited from the parent";
                            }  // container disable
                          }  // container fast-detect
    
                          leaf minimum-interval {
                            type uint32 {
                              range "3..30000";
                            }
                            description
                              "Minimum interval";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detect multiplier";
                          }
                        }  // container bfd
    
                        container advertise {
                          description
                            "Conditionally advertise";
                          container prefix {
                            description
                              "Conditionally advertise this prefix";
                            leaf route-policy {
                              type xr:Route-policy-name;
                              description
                                "Specify the route-policy for conditional advertising";
                            }
                          }  // container prefix
                        }  // container advertise
    
                        container neighbors {
                          description
                            "Specify a neighbor router";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "Specify a neighbor router";
                            leaf neighbor-address {
                              type inet:ipv6-address-no-zone;
                              description
                                "Specify a neighbor router";
                            }
    
                            leaf zone {
                              type string;
                              default "0";
                              description
                                "IPv6 address zone";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              description
                                "OSPFv3 priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              description
                                "OSPFv3 dead-router polling interval";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "OSPFv3 cost for point-to-multipoint neighbor";
                            }
    
                            container database-filter {
                              description
                                "Filter OSPFv3 LSA during synchronization and flooding for point-to-multipoint neighbor";
                              container all {
                                description
                                  "Filter all LSA";
                                container out {
                                  presence
                                    "Indicates a out node is configured.";
                                  description
                                    "Outgoing LSA";
                                }  // container out
                              }  // container all
                            }  // container database-filter
                          }  // list neighbor
                        }  // container neighbors
                      }  // list interface
                    }  // container interfaces
    
                    container authentication {
                      must
                        "disable or ipsec/spi";
                      presence
                        "Indicates a authentication node is configured.";
                      description
                        "Authenticate OSPFv3 packets";
                      container disable {
                        must "not(../ipsec/spi)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Do not authenticate OSPFv3 packets";
                      }  // container disable
    
                      container ipsec {
                        description
                          "Use IPSec AH authentication";
                        container spi {
                          must
                            "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                          presence
                            "Indicates a spi node is configured.";
                          description
                            "Specify the Security Parameter Index value";
                          leaf spi-index {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            mandatory true;
                            description
                              "Specify the Security Parameter Index value";
                          }
    
                          container md5 {
                            description
                              "Use the MD5 algorithim";
                            container password {
                              description
                                "Enter MD5 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                description
                                  "Encrypted key";
                              }
                            }  // container password
                          }  // container md5
    
                          container sha1 {
                            description
                              "Use the SHA1 algorithim";
                            container password {
                              description
                                "Enter SHA1 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                description
                                  "Encrypted key";
                              }
                            }  // container password
                          }  // container sha1
                        }  // container spi
                      }  // container ipsec
                    }  // container authentication
    
                    container encryption {
                      must
                        "disable or ipsec/spi";
                      presence
                        "Indicates a encryption node is configured.";
                      description
                        "Encrypt and authenticate OSPFv3 packets";
                      container disable {
                        must "not(../ipsec/spi)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Do not encrypt OSPFv3 packets";
                      }  // container disable
    
                      container ipsec {
                        description
                          "Use IPSec ESP encryption and authentication";
                        container spi {
                          must
                            "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                          presence
                            "Indicates a spi node is configured.";
                          description
                            "Specify the Security Parameter Index value";
                          leaf spi-index {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            mandatory true;
                            description
                              "Specify the Security Parameter Index value";
                          }
    
                          container esp {
                            description
                              "Specify encryption parameters";
                            container null {
                              must
                                "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                              presence
                                "Indicates a null node is configured.";
                              description
                                "Use NULL encryption";
                            }  // container null
    
                            container des {
                              description
                                "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                              container password {
                                description
                                  "Enter DES key in encrypted form";
                                leaf encrypted {
                                  type xr:Proprietary-password;
                                  must
                                    "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                }
                              }  // container password
                            }  // container des
    
                            container triple-des {
                              description
                                "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                              container password {
                                description
                                  "Enter 3DES key in encrypted form";
                                leaf encrypted {
                                  type xr:Proprietary-password;
                                  must
                                    "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                }
                              }  // container password
                            }  // container triple-des
    
                            container aes {
                              description
                                "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                              container password {
                                description
                                  "Enter AES key in encrypted form";
                                leaf encrypted {
                                  type xr:Proprietary-password;
                                  must
                                    "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                }
                              }  // container password
    
                              container aes-192 {
                                description
                                  "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                container password {
                                  description
                                    "Enter AES-192 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    must
                                      "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                  }
                                }  // container password
                              }  // container aes-192
    
                              container aes-256 {
                                description
                                  "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                container password {
                                  description
                                    "Enter AES-256 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    must
                                      "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                  }
                                }  // container password
                              }  // container aes-256
                            }  // container aes
    
                            container authentication {
                              must
                                "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                              presence
                                "Indicates a authentication node is configured.";
                              description
                                "Specify authentication parameters";
                              container md5 {
                                description
                                  "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                container password {
                                  description
                                    "Enter MD5 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Enter key in encrypted form";
                                  }
                                }  // container password
                              }  // container md5
    
                              container sha1 {
                                description
                                  "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                container password {
                                  description
                                    "Enter SHA1 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Enter key in encrypted form";
                                  }
                                }  // container password
                              }  // container sha1
    
                              container null {
                                must
                                  "not(../../null)";
                                presence
                                  "Indicates a null node is configured.";
                                description
                                  "Use NULL authentication";
                              }  // container null
                            }  // container authentication
                          }  // container esp
                        }  // container spi
                      }  // container ipsec
                    }  // container encryption
    
                    container network {
                      description "Network type";
                      container broadcast {
                        presence
                          "Indicates a broadcast node is configured.";
                        description
                          "Specify OSPFv3 broadcast multi-access network";
                      }  // container broadcast
    
                      container non-broadcast {
                        presence
                          "Indicates a non-broadcast node is configured.";
                        description
                          "Specify OSPFv3 NBMA network";
                      }  // container non-broadcast
    
                      container point-to-point {
                        presence
                          "Indicates a point-to-point node is configured.";
                        description
                          "Specify OSPFv3 point-to-point network";
                      }  // container point-to-point
    
                      container point-to-multipoint {
                        presence
                          "Indicates a point-to-multipoint node is configured.";
                        description
                          "Specify OSPFv3 point-to-multipoint network";
                      }  // container point-to-multipoint
                    }  // container network
    
                    leaf cost {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interface cost";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Time between HELLO packets";
                    }
    
                    leaf dead-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interval after which a neighbor is declared dead";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Router priority";
                    }
    
                    leaf retransmit-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Delay between LSA retransmissions";
                    }
    
                    leaf transmit-delay {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Link state transmit delay";
                    }
    
                    container flood-reduction {
                      presence
                        "Indicates a flood-reduction node is configured.";
                      description
                        "Enable/Disable flood reduction";
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable flood reduction";
                      }  // container disable
                    }  // container flood-reduction
    
                    container demand-circuit {
                      presence
                        "Indicates a demand-circuit node is configured.";
                      description
                        "Enable/Disable demand circuit operation";
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable demand circuit operation";
                      }  // container disable
                    }  // container demand-circuit
    
                    container mtu-ignore {
                      presence
                        "Indicates a mtu-ignore node is configured.";
                      description
                        "Enable/Disable ignoring of MTU in DBD packets";
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Validate the MTU in DBD packets";
                      }  // container disable
                    }  // container mtu-ignore
    
                    leaf instance {
                      type uint32 {
                        range "0..255";
                      }
                      description "Instance ID";
                    }
    
                    container database-filter {
                      description
                        "Filter LSAs during synchronization and flooding";
                      container all {
                        description
                          "Filter all LSA";
                        container out {
                          presence
                            "Indicates a out node is configured.";
                          description
                            "Outgoing LSA";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable filtering";
                          }  // container disable
                        }  // container out
                      }  // container all
                    }  // container database-filter
    
                    container passive {
                      presence
                        "Indicates a passive node is configured.";
                      description
                        "Enable/Disable routing updates on an interface";
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable routing updates on an interface";
                      }  // container disable
                    }  // container passive
    
                    container distribute-list {
                      description
                        "Filter prefixes to/from RIB";
                      leaf prefix-list {
                        type string {
                          length "1..1024";
                        }
                        description
                          "Filter prefixes based on an IPv6 prefix-list";
                      }
                    }  // container distribute-list
    
                    leaf packet-size {
                      type uint32 {
                        range "256..10000";
                      }
                      description
                        "Limit size of OSPFv3 packets";
                    }
    
                    container fast-reroute {
                      description
                        "IP Fast Reroute";
                      container per-link {
                        description
                          "Per-link Computation";
                        container enable {
                          must
                            "not(../../per-prefix/enable)";
                          presence
                            "Indicates a per-link node is configured.";
                          description
                            "Enable per-link Computation";
                        }  // container enable
    
                        container exclude {
                          description
                            "Per-link LFA exclusion information";
                          container interfaces {
                            description
                              "Exclude an interface from Per-link LFA";
                            list interface {
                              key "interface-name";
                              description
                                "Exclude an interface from Per-link LFA";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Exclude an interface from Per-link LFA";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container exclude
    
                        container lfa-candidate {
                          description
                            "FRR LFA candidate information";
                          container interfaces {
                            description
                              "Include an interface to LFA candidate in computation";
                            list interface {
                              key "interface-name";
                              description
                                "Include an interface to LFA candidate in computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Include an interface to LFA candidate in computation";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container lfa-candidate
    
                        container use-candidate-only {
                          description
                            "Enable/Disable backup selection from candidate-list only";
                          container enable {
                            must
                              "not(../disable)";
                            presence
                              "Indicates a enable node is configured.";
                            description
                              "Enable backup selection from candidate-list only";
                          }  // container enable
    
                          container disable {
                            must
                              "not(../enable)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable backup selection from candidate-list only";
                          }  // container disable
                        }  // container use-candidate-only
                      }  // container per-link
    
                      container per-prefix {
                        description
                          "Per-prefix Computation";
                        container enable {
                          must
                            "not(../../per-link/enable)";
                          presence
                            "Indicates a per-prefix node is configured.";
                          description
                            "Enable per-prefix Computation";
                        }  // container enable
    
                        container exclude {
                          description
                            "Per-prefix LFA exclusion information";
                          container interfaces {
                            description
                              "Exclude an interface from Per-prefix LFA";
                            list interface {
                              key "interface-name";
                              description
                                "Exclude an interface from Per-prefix LFA";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Exclude an interface from Per-prefix LFA";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container exclude
    
                        container lfa-candidate {
                          description
                            "FRR LFA candidate information";
                          container interfaces {
                            description
                              "Include an interface to LFA candidate in computation";
                            list interface {
                              key "interface-name";
                              description
                                "Include an interface to LFA candidate in computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Include an interface to LFA candidate in computation";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container lfa-candidate
    
                        container use-candidate-only {
                          description
                            "Enable/Disable backup selection from candidate-list only";
                          container enable {
                            must
                              "not(../disable)";
                            presence
                              "Indicates a enable node is configured.";
                            description
                              "Enable backup selection from candidate-list only";
                          }  // container enable
    
                          container disable {
                            must
                              "not(../enable)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable backup selection from candidate-list only";
                          }  // container disable
                        }  // container use-candidate-only
                      }  // container per-prefix
    
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable IP Fast Reroute";
                      }  // container disable
                    }  // container fast-reroute
    
                    container prefix-suppression {
                      presence
                        "Indicates a prefix-suppression node is configured.";
                      description
                        "Hide all transit addresses on this interface";
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable prefix suppression on this interface";
                      }  // container disable
                    }  // container prefix-suppression
    
                    container bfd {
                      description
                        "Configure BFD parameters";
                      container fast-detect {
                        presence
                          "Indicates a fast-detect node is configured.";
                        description
                          "Enable Fast detection";
                        container strict-mode {
                          presence
                            "Indicates a strict-mode node is configured.";
                          description
                            "Hold down neighbor session until BFD session is up";
                        }  // container strict-mode
    
                        container disable {
                          presence
                            "Indicates a disable node is configured.";
                          description
                            "Prevent bfd settings from being inherited from the parent";
                        }  // container disable
                      }  // container fast-detect
    
                      leaf minimum-interval {
                        type uint32 {
                          range "3..30000";
                        }
                        description
                          "Minimum interval";
                      }
    
                      leaf multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detect multiplier";
                      }
                    }  // container bfd
    
                    container mpls {
                      description
                        "Configure MPLS routing protocol parameters";
                      container ldp {
                        description
                          "Configure LDP parameters";
                        container sync {
                          presence
                            "Indicates a sync node is configured.";
                          description
                            "Enable LDP IGP synchronization";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable MPLS LDP sync";
                          }  // container disable
                        }  // container sync
                      }  // container ldp
                    }  // container mpls
    
                    container virtual-links {
                      description
                        "Define a virtual link";
                      list virtual-link {
                        key "virtual-link-address";
                        description
                          "Define a virtual link";
                        leaf virtual-link-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Define a virtual link";
                        }
    
                        container authentication {
                          must
                            "disable or ipsec/spi";
                          presence
                            "Indicates a authentication node is configured.";
                          description
                            "Authenticate OSPFv3 packets";
                          container disable {
                            must
                              "not(../ipsec/spi)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Do not authenticate OSPFv3 packets";
                          }  // container disable
    
                          container ipsec {
                            description
                              "Use IPSec AH authentication";
                            container spi {
                              must
                                "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                              presence
                                "Indicates a spi node is configured.";
                              description
                                "Specify the Security Parameter Index value";
                              leaf spi-index {
                                type uint32 {
                                  range
                                    "256..4294967295";
                                }
                                mandatory true;
                                description
                                  "Specify the Security Parameter Index value";
                              }
    
                              container md5 {
                                description
                                  "Use the MD5 algorithim";
                                container password {
                                  description
                                    "Enter MD5 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Encrypted key";
                                  }
                                }  // container password
                              }  // container md5
    
                              container sha1 {
                                description
                                  "Use the SHA1 algorithim";
                                container password {
                                  description
                                    "Enter SHA1 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Encrypted key";
                                  }
                                }  // container password
                              }  // container sha1
                            }  // container spi
                          }  // container ipsec
                        }  // container authentication
    
                        container encryption {
                          must
                            "disable or ipsec/spi";
                          presence
                            "Indicates a encryption node is configured.";
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          container disable {
                            must
                              "not(../ipsec/spi)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Do not encrypt OSPFv3 packets";
                          }  // container disable
    
                          container ipsec {
                            description
                              "Use IPSec ESP encryption and authentication";
                            container spi {
                              must
                                "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                              presence
                                "Indicates a spi node is configured.";
                              description
                                "Specify the Security Parameter Index value";
                              leaf spi-index {
                                type uint32 {
                                  range
                                    "256..4294967295";
                                }
                                mandatory true;
                                description
                                  "Specify the Security Parameter Index value";
                              }
    
                              container esp {
                                description
                                  "Specify encryption parameters";
                                container null {
                                  must
                                    "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                                  presence
                                    "Indicates a null node is configured.";
                                  description
                                    "Use NULL encryption";
                                }  // container null
    
                                container des {
                                  description
                                    "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                                  container password {
                                    description
                                      "Enter DES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
                                }  // container des
    
                                container triple-des {
                                  description
                                    "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                                  container password {
                                    description
                                      "Enter 3DES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
                                }  // container triple-des
    
                                container aes {
                                  description
                                    "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                                  container password {
                                    description
                                      "Enter AES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
    
                                  container aes-192 {
                                    description
                                      "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                    container password {
                                      description
                                        "Enter AES-192 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        must
                                          "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                      }
                                    }  // container password
                                  }  // container aes-192
    
                                  container aes-256 {
                                    description
                                      "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                    container password {
                                      description
                                        "Enter AES-256 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        must
                                          "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                      }
                                    }  // container password
                                  }  // container aes-256
                                }  // container aes
    
                                container authentication {
                                  must
                                    "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                                  presence
                                    "Indicates a authentication node is configured.";
                                  description
                                    "Specify authentication parameters";
                                  container md5 {
                                    description
                                      "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                    container password {
                                      description
                                        "Enter MD5 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Enter key in encrypted form";
                                      }
                                    }  // container password
                                  }  // container md5
    
                                  container sha1 {
                                    description
                                      "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                    container password {
                                      description
                                        "Enter SHA1 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Enter key in encrypted form";
                                      }
                                    }  // container password
                                  }  // container sha1
    
                                  container null {
                                    must
                                      "not(../../null)";
                                    presence
                                      "Indicates a null node is configured.";
                                    description
                                      "Use NULL authentication";
                                  }  // container null
                                }  // container authentication
                              }  // container esp
                            }  // container spi
                          }  // container ipsec
                        }  // container encryption
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interval after which a neighbor is declared dead";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Delay between LSA retransmissions";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Link state transmit delay";
                        }
                      }  // list virtual-link
                    }  // container virtual-links
                  }  // list area
                }  // container areas
    
                container auto-cost {
                  presence
                    "Indicates a auto-cost node is configured.";
                  description
                    "Calculate interface cost according to bandwidth";
                  leaf reference-bandwidth {
                    type uint32 {
                      range "1..4294967";
                    }
                    description
                      "Specify reference bandwidth for cost computations";
                  }
    
                  container disable {
                    presence
                      "Indicates a disable node is configured.";
                    description
                      "Assign cost based on interface type";
                  }  // container disable
                }  // container auto-cost
    
                container default-information {
                  description
                    "Control distribution of default information";
                  container originate {
                    presence
                      "Indicates a originate node is configured.";
                    description
                      "Distribute a default route";
                    container always {
                      presence
                        "Indicates a always node is configured.";
                      description
                        "Always advertise default route";
                    }  // container always
    
                    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
                        "Set tag for default route";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route policy to default-information origination";
                    }
                  }  // container originate
                }  // container default-information
    
                leaf default-metric {
                  type uint32 {
                    range "1..16777214";
                  }
                  description
                    "Set metric of redistributed routes";
                }
    
                container distance {
                  description
                    "Define an administrative distance";
                  leaf administrative-distance {
                    type uint32 {
                      range "1..255";
                    }
                    description
                      "Define an administrative distance";
                  }
    
                  container ospfv3 {
                    description
                      "OSPFv3 administrative distance";
                    leaf intra-area {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "Intra-area routes";
                    }
    
                    leaf inter-area {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "Inter-area routes";
                    }
    
                    leaf external {
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "External type 5 and type 7 routes";
                    }
                  }  // container ospfv3
                }  // container distance
    
                container distribute-list {
                  description
                    "Filter prefixes to/from RIB";
                  container prefix-list {
                    description
                      "Filter prefixes based on an IPv6 prefix-list";
                    container in {
                      presence
                        "Indicates a prefix-list-name node is configured.";
                      description
                        "Filter prefixes installed to RIB";
                      leaf prefix-list-name {
                        type string {
                          length "1..1024";
                        }
                        mandatory true;
                        description
                          "Prefix-list name";
                      }
                    }  // container in
    
                    container out {
                      description
                        "Filter prefixes redistributed from RIB ";
                      leaf prefix-list-name {
                        type string {
                          length "1..1024";
                        }
                        description
                          "Prefix-list name";
                      }
    
                      container connected {
                        presence
                          "Indicates a connected node is configured.";
                        description
                          "Connected routes";
                        leaf prefix-list-name {
                          type string {
                            length "1..1024";
                          }
                          mandatory true;
                          description
                            "Prefix-list name";
                        }
                      }  // container connected
    
                      container static {
                        presence
                          "Indicates a static node is configured.";
                        description
                          "Static routes";
                        leaf prefix-list-name {
                          type string {
                            length "1..1024";
                          }
                          mandatory true;
                          description
                            "Prefix-list name";
                        }
                      }  // container static
    
                      container bgp {
                        description "BGP routes";
                        list as {
                          key "as-number";
                          description
                            "bgp as-number";
                          leaf as-number {
                            type xr:Bgp-as-number;
                            description
                              "bgp as-number";
                          }
    
                          leaf prefix-list-name {
                            type string {
                              length "1..1024";
                            }
                            mandatory true;
                            description
                              "Prefix-list name";
                          }
                        }  // list as
                      }  // container bgp
    
                      list ospfv3 {
                        key "instance-name";
                        description
                          "OSPFv3 routes";
                        leaf instance-name {
                          type string {
                            length "1..1024";
                          }
                          description
                            "OSPFv3 routes";
                        }
    
                        leaf prefix-list-name {
                          type string {
                            length "1..1024";
                          }
                          mandatory true;
                          description
                            "Prefix-list name";
                        }
                      }  // list ospfv3
    
                      list isis {
                        key "instance-name";
                        description
                          "IS-IS routes";
                        leaf instance-name {
                          type string {
                            length "1..1024";
                          }
                          description
                            "IS-IS routes";
                        }
    
                        leaf prefix-list-name {
                          type string {
                            length "1..1024";
                          }
                          mandatory true;
                          description
                            "Prefix-list name";
                        }
                      }  // list isis
    
                      list eigrp {
                        key "as-number";
                        description
                          "EIGRP routes";
                        leaf as-number {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "EIGRP routes";
                        }
    
                        leaf prefix-list-name {
                          type string {
                            length "1..1024";
                          }
                          mandatory true;
                          description
                            "Prefix-list name";
                        }
                      }  // list eigrp
                    }  // container out
                  }  // container prefix-list
                }  // container distribute-list
    
                leaf packet-size {
                  type uint32 {
                    range "256..10000";
                  }
                  description
                    "Limit size of OSPFv3 packets";
                }
    
                container fast-reroute {
                  description "IP Fast Reroute";
                  container per-link {
                    description
                      "Per-link Computation";
                    container enable {
                      must
                        "not(../../per-prefix/enable)";
                      presence
                        "Indicates a per-link node is configured.";
                      description
                        "Enable per-link Computation";
                    }  // container enable
    
                    container exclude {
                      description
                        "Per-link LFA exclusion information";
                      container interfaces {
                        description
                          "Exclude an interface from Per-link LFA";
                        list interface {
                          key "interface-name";
                          description
                            "Exclude an interface from Per-link LFA";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Exclude an interface from Per-link LFA";
                          }
                        }  // list interface
                      }  // container interfaces
                    }  // container exclude
    
                    container lfa-candidate {
                      description
                        "FRR LFA candidate information";
                      container interfaces {
                        description
                          "Include an interface to LFA candidate in computation";
                        list interface {
                          key "interface-name";
                          description
                            "Include an interface to LFA candidate in computation";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Include an interface to LFA candidate in computation";
                          }
                        }  // list interface
                      }  // container interfaces
                    }  // container lfa-candidate
    
                    container use-candidate-only {
                      description
                        "Enable/Disable backup selection from candidate-list only";
                      container enable {
                        must "not(../disable)";
                        presence
                          "Indicates a enable node is configured.";
                        description
                          "Enable backup selection from candidate-list only";
                      }  // container enable
    
                      container disable {
                        must "not(../enable)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable backup selection from candidate-list only";
                      }  // container disable
                    }  // container use-candidate-only
    
                    container priority-limit {
                      description
                        "Limit backup computation upto the prefix priority";
                      container critical {
                        presence
                          "Indicates a critical node is configured.";
                        description
                          "Compute for critical priority prefixes only";
                      }  // container critical
    
                      container high {
                        presence
                          "Indicates a high node is configured.";
                        description
                          "Compute for critical & high priority prefixes ";
                      }  // container high
    
                      container medium {
                        presence
                          "Indicates a medium node is configured.";
                        description
                          "Compute for critical, high & medium priority prefixes ";
                      }  // container medium
                    }  // container priority-limit
                  }  // container per-link
    
                  container per-prefix {
                    description
                      "Per-prefix Computation";
                    container enable {
                      must
                        "not(../../per-link/enable)";
                      presence
                        "Indicates a per-prefix node is configured.";
                      description
                        "Enable per-prefix Computation";
                    }  // container enable
    
                    container exclude {
                      description
                        "Per-prefix LFA exclusion information";
                      container interfaces {
                        description
                          "Exclude an interface from Per-prefix LFA";
                        list interface {
                          key "interface-name";
                          description
                            "Exclude an interface from Per-prefix LFA";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Exclude an interface from Per-prefix LFA";
                          }
                        }  // list interface
                      }  // container interfaces
                    }  // container exclude
    
                    container lfa-candidate {
                      description
                        "FRR LFA candidate information";
                      container interfaces {
                        description
                          "Include an interface to LFA candidate in computation";
                        list interface {
                          key "interface-name";
                          description
                            "Include an interface to LFA candidate in computation";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Include an interface to LFA candidate in computation";
                          }
                        }  // list interface
                      }  // container interfaces
                    }  // container lfa-candidate
    
                    container use-candidate-only {
                      description
                        "Enable/Disable backup selection from candidate-list only";
                      container enable {
                        must "not(../disable)";
                        presence
                          "Indicates a enable node is configured.";
                        description
                          "Enable backup selection from candidate-list only";
                      }  // container enable
    
                      container disable {
                        must "not(../enable)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable backup selection from candidate-list only";
                      }  // container disable
                    }  // container use-candidate-only
    
                    container priority-limit {
                      description
                        "Limit backup computation upto the prefix priority";
                      container critical {
                        presence
                          "Indicates a critical node is configured.";
                        description
                          "Compute for critical priority prefixes only";
                      }  // container critical
    
                      container high {
                        presence
                          "Indicates a high node is configured.";
                        description
                          "Compute for critical & high priority prefixes ";
                      }  // container high
    
                      container medium {
                        presence
                          "Indicates a medium node is configured.";
                        description
                          "Compute for critical, high & medium priority prefixes ";
                      }  // container medium
                    }  // container priority-limit
    
                    container tiebreaker {
                      description
                        "Configure tiebreaker for multiple backups";
                      container downstream {
                        description
                          "Prefer backup path via downstream node";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container downstream
    
                      container lc-disjoint {
                        description
                          "Prefer line card disjoint backup path";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container lc-disjoint
    
                      container lowest-backup-metric {
                        description
                          "Prefer backup path with lowest total metric";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container lowest-backup-metric
    
                      container node-protecting {
                        description
                          "Prefer node protecting backup path";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container node-protecting
    
                      container primary-path {
                        description
                          "Prefer backup path from ECMP set";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container primary-path
    
                      container secondary-path {
                        description
                          "Prefer non-ECMP backup path";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container secondary-path
    
                      container srlg-disjoint {
                        description
                          "Prefer SRLG disjoint backup path";
                        leaf index {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Set preference order among tiebreakers";
                        }
                      }  // container srlg-disjoint
                    }  // container tiebreaker
    
                    container load-sharing {
                      description
                        "Load share prefixes across multiple backups";
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable load sharing";
                      }  // container disable
                    }  // container load-sharing
                  }  // container per-prefix
    
                  container disable {
                    presence
                      "Indicates a disable node is configured.";
                    description
                      "Disable IP Fast Reroute";
                  }  // container disable
                }  // container fast-reroute
    
                container prefix-suppression {
                  presence
                    "Indicates a prefix-suppression node is configured.";
                  description
                    "Hide all transit addresses on this interface";
                }  // container prefix-suppression
    
                container bfd {
                  description
                    "Configure BFD parameters";
                  container fast-detect {
                    presence
                      "Indicates a fast-detect node is configured.";
                    description
                      "Enable Fast detection";
                    container strict-mode {
                      presence
                        "Indicates a strict-mode node is configured.";
                      description
                        "Hold down neighbor session until BFD session is up";
                    }  // container strict-mode
                  }  // container fast-detect
    
                  leaf minimum-interval {
                    type uint32 {
                      range "3..30000";
                    }
                    description
                      "Minimum interval";
                  }
    
                  leaf multiplier {
                    type uint32 {
                      range "2..50";
                    }
                    description
                      "Detect multiplier";
                  }
                }  // container bfd
    
                container mpls {
                  description
                    "Configure MPLS routing protocol parameters";
                  container ldp {
                    description
                      "Configure LDP parameters";
                    container sync {
                      presence
                        "Indicates a sync node is configured.";
                      description
                        "Enable LDP IGP synchronization";
                    }  // container sync
                  }  // container ldp
                }  // container mpls
    
                container graceful-restart {
                  description
                    "Enable Graceful-Restart";
                  container enable {
                    presence
                      "Indicates a enable node is configured.";
                    description
                      "Enable Graceful-Restart";
                  }  // container enable
    
                  leaf interval {
                    type uint32 {
                      range "90..3600";
                    }
                    description
                      "Minimum interval between Graceful Restarts (seconds)";
                  }
    
                  leaf lifetime {
                    type uint32 {
                      range "90..1800";
                    }
                    description
                      "Maximum route lifetime following restart (seconds)";
                  }
    
                  container helper {
                    description
                      "router's helper support level";
                    container disable {
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "router's helper support disabled";
                    }  // container disable
                  }  // container helper
    
                  container strict-lsa-checking {
                    presence
                      "Indicates a strict-lsa-checking node is configured.";
                    description
                      "terminate graceful restart helper mode if lsa changed";
                  }  // container strict-lsa-checking
                }  // container graceful-restart
    
                container ignore {
                  description
                    "Do not complain about a specified event";
                  container lsa {
                    description
                      "Do not complain upon receiving LSA of the specified type";
                    container mospf {
                      presence
                        "Indicates a mospf node is configured.";
                      description
                        "MOSPF Type 6 LSA";
                    }  // container mospf
                  }  // container lsa
                }  // container ignore
    
                container authentication {
                  must "disable or ipsec/spi";
                  presence
                    "Indicates a authentication node is configured.";
                  description
                    "Authenticate OSPFv3 packets";
                  container disable {
                    must "not(../ipsec/spi)";
                    presence
                      "Indicates a disable node is configured.";
                    description
                      "Do not authenticate OSPFv3 packets";
                  }  // container disable
    
                  container ipsec {
                    description
                      "Use IPSec AH authentication";
                    container spi {
                      must
                        "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                      presence
                        "Indicates a spi node is configured.";
                      description
                        "Specify the Security Parameter Index value";
                      leaf spi-index {
                        type uint32 {
                          range
                            "256..4294967295";
                        }
                        mandatory true;
                        description
                          "Specify the Security Parameter Index value";
                      }
    
                      container md5 {
                        description
                          "Use the MD5 algorithim";
                        container password {
                          description
                            "Enter MD5 key in encrypted form";
                          leaf encrypted {
                            type xr:Proprietary-password;
                            description
                              "Encrypted key";
                          }
                        }  // container password
                      }  // container md5
    
                      container sha1 {
                        description
                          "Use the SHA1 algorithim";
                        container password {
                          description
                            "Enter SHA1 key in encrypted form";
                          leaf encrypted {
                            type xr:Proprietary-password;
                            description
                              "Encrypted key";
                          }
                        }  // container password
                      }  // container sha1
                    }  // container spi
                  }  // container ipsec
                }  // container authentication
    
                container encryption {
                  must "disable or ipsec/spi";
                  presence
                    "Indicates a encryption node is configured.";
                  description
                    "Encrypt and authenticate OSPFv3 packets";
                  container disable {
                    must "not(../ipsec/spi)";
                    presence
                      "Indicates a disable node is configured.";
                    description
                      "Do not encrypt OSPFv3 packets";
                  }  // container disable
    
                  container ipsec {
                    description
                      "Use IPSec ESP encryption and authentication";
                    container spi {
                      must
                        "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                      presence
                        "Indicates a spi node is configured.";
                      description
                        "Specify the Security Parameter Index value";
                      leaf spi-index {
                        type uint32 {
                          range
                            "256..4294967295";
                        }
                        mandatory true;
                        description
                          "Specify the Security Parameter Index value";
                      }
    
                      container esp {
                        description
                          "Specify encryption parameters";
                        container null {
                          must
                            "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                          presence
                            "Indicates a null node is configured.";
                          description
                            "Use NULL encryption";
                        }  // container null
    
                        container des {
                          description
                            "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                          container password {
                            description
                              "Enter DES key in encrypted form";
                            leaf encrypted {
                              type xr:Proprietary-password;
                              must
                                "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                            }
                          }  // container password
                        }  // container des
    
                        container triple-des {
                          description
                            "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                          container password {
                            description
                              "Enter 3DES key in encrypted form";
                            leaf encrypted {
                              type xr:Proprietary-password;
                              must
                                "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                            }
                          }  // container password
                        }  // container triple-des
    
                        container aes {
                          description
                            "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                          container password {
                            description
                              "Enter AES key in encrypted form";
                            leaf encrypted {
                              type xr:Proprietary-password;
                              must
                                "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                            }
                          }  // container password
    
                          container aes-192 {
                            description
                              "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                            container password {
                              description
                                "Enter AES-192 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                must
                                  "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                              }
                            }  // container password
                          }  // container aes-192
    
                          container aes-256 {
                            description
                              "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                            container password {
                              description
                                "Enter AES-256 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                must
                                  "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                              }
                            }  // container password
                          }  // container aes-256
                        }  // container aes
    
                        container authentication {
                          must
                            "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                          presence
                            "Indicates a authentication node is configured.";
                          description
                            "Specify authentication parameters";
                          container md5 {
                            description
                              "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                            container password {
                              description
                                "Enter MD5 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                description
                                  "Enter key in encrypted form";
                              }
                            }  // container password
                          }  // container md5
    
                          container sha1 {
                            description
                              "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                            container password {
                              description
                                "Enter SHA1 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                description
                                  "Enter key in encrypted form";
                              }
                            }  // container password
                          }  // container sha1
    
                          container null {
                            must
                              "not(../../null)";
                            presence
                              "Indicates a null node is configured.";
                            description
                              "Use NULL authentication";
                          }  // container null
                        }  // container authentication
                      }  // container esp
                    }  // container spi
                  }  // container ipsec
                }  // container encryption
    
                container network {
                  description "Network type";
                  container broadcast {
                    presence
                      "Indicates a broadcast node is configured.";
                    description
                      "Specify OSPFv3 broadcast multi-access network";
                  }  // container broadcast
    
                  container non-broadcast {
                    presence
                      "Indicates a non-broadcast node is configured.";
                    description
                      "Specify OSPFv3 NBMA network";
                  }  // container non-broadcast
    
                  container point-to-point {
                    presence
                      "Indicates a point-to-point node is configured.";
                    description
                      "Specify OSPFv3 point-to-point network";
                  }  // container point-to-point
    
                  container point-to-multipoint {
                    presence
                      "Indicates a point-to-multipoint node is configured.";
                    description
                      "Specify OSPFv3 point-to-multipoint network";
                  }  // container point-to-multipoint
                }  // container network
    
                leaf cost {
                  type uint32 {
                    range "1..65535";
                  }
                  description "Interface cost";
                }
    
                leaf hello-interval {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Time between HELLO packets";
                }
    
                leaf dead-interval {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Interval after which a neighbor is declared dead";
                }
    
                leaf priority {
                  type uint32 {
                    range "0..255";
                  }
                  description "Router priority";
                }
    
                leaf retransmit-interval {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Delay between LSA retransmissions";
                }
    
                leaf transmit-delay {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Link state transmit delay";
                }
    
                container flood-reduction {
                  presence
                    "Indicates a flood-reduction node is configured.";
                  description
                    "Enable/Disable flood reduction";
                }  // container flood-reduction
    
                container demand-circuit {
                  presence
                    "Indicates a demand-circuit node is configured.";
                  description
                    "Enable/Disable demand circuit operation";
                }  // container demand-circuit
    
                container mtu-ignore {
                  presence
                    "Indicates a mtu-ignore node is configured.";
                  description
                    "Enable/Disable ignoring of MTU in DBD packets";
                }  // container mtu-ignore
    
                leaf instance {
                  type uint32 {
                    range "0..255";
                  }
                  description "Instance ID";
                }
    
                container database-filter {
                  description
                    "Filter LSAs during synchronization and flooding";
                  container all {
                    description "Filter all LSA";
                    container out {
                      presence
                        "Indicates a out node is configured.";
                      description "Outgoing LSA";
                    }  // container out
                  }  // container all
                }  // container database-filter
    
                container passive {
                  presence
                    "Indicates a passive node is configured.";
                  description
                    "Enable/Disable routing updates on an interface";
                }  // container passive
    
                container log {
                  description
                    "Control OSPFv3 console logging";
                  container adjacency {
                    description
                      "Log adjacency state changes";
                    container changes {
                      description "Log changes";
                      container detail {
                        presence
                          "Indicates a detail node is configured.";
                        description
                          "Log all state changes";
                      }  // container detail
    
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable logging";
                      }  // container disable
                    }  // container changes
                  }  // container adjacency
                }  // container log
    
                container maximum {
                  description
                    "Set OSPFv3 limits";
                  leaf interfaces {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "Limit number of interfaces";
                  }
    
                  leaf paths {
                    type uint32 {
                      range "1..64";
                    }
                    description
                      "Limit number of paths";
                  }
    
                  container redistributed-prefixes {
                    presence
                      "Indicates a redistributed-prefixes node is configured.";
                    description
                      "Limit number of redistributed prefixes";
                    leaf prefixes {
                      type uint32 {
                        range "1..4294967295";
                      }
                      mandatory true;
                      description
                        "Limit number of redistributed prefixes";
                    }
    
                    leaf threshold {
                      type uint32 {
                        range "1..100";
                      }
                      description
                        "Threshold value (%) at which to generate a warning msg";
                    }
    
                    container warning-only {
                      presence
                        "Indicates a warning-only node is configured.";
                      description
                        "Only give warning message when limit is exceeded";
                    }  // container warning-only
                  }  // container redistributed-prefixes
                }  // container maximum
    
                container redistribute {
                  description
                    "Redistribute information from another routing protocol";
                  container connected {
                    presence
                      "Indicates a connected node is configured.";
                    description
                      "Connected routes";
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // container connected
    
                  container static {
                    presence
                      "Indicates a static node is configured.";
                    description "Static routes";
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // container static
    
                  container subscriber {
                    presence
                      "Indicates a subscriber node is configured.";
                    description
                      "Subscriber routes";
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // container subscriber
    
                  container mobile {
                    presence
                      "Indicates a mobile node is configured.";
                    description "Mobile routes";
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // container mobile
    
                  container bgp {
                    description "BGP routes";
                    list as {
                      key "as-number";
                      description
                        "bgp as-number";
                      leaf as-number {
                        type xr:Bgp-as-number;
                        description
                          "bgp as-number";
                      }
    
                      container preserve-med {
                        presence
                          "Indicates a preserve-med node is configured.";
                        description
                          "Preserve med of BGP routes";
                      }  // container preserve-med
    
                      container metric {
                        description
                          "Metric for redistributed routes";
                        leaf default-metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "OSPFv3 default metric";
                        }
    
                        container use-rib-metric {
                          presence
                            "Indicates a use-rib-metric node is configured.";
                          description
                            "Use metric from RIB";
                        }  // container use-rib-metric
                      }  // container metric
    
                      leaf metric-type {
                        type enumeration {
                          enum "1" {
                            value 1;
                            description
                              "Set OSPFv3 External Type 1 metrics";
                          }
                          enum "2" {
                            value 2;
                            description
                              "Set OSPFv3 External Type 2 metrics";
                          }
                        }
                        description
                          "OSPFv3 exterior metric type for redistributed routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Set tag for routes redistributed into OSPFv3";
                      }
    
                      leaf route-policy {
                        type xr:Route-policy-name;
                        description
                          "Apply route-policy to redistribution";
                      }
                    }  // list as
                  }  // container bgp
    
                  list eigrp {
                    key "as-number";
                    description
                      "Enhanced Interior Gateway Routing Protocol (EIGRP)";
                    leaf as-number {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Enhanced Interior Gateway Routing Protocol (EIGRP)";
                    }
    
                    container match {
                      description
                        "Redistribution of EIGRP routes";
                      container internal {
                        presence
                          "Indicates a internal node is configured.";
                        description
                          "Redistribute EIGRP internal routes";
                      }  // container internal
    
                      container external {
                        presence
                          "Indicates a external node is configured.";
                        description
                          "Redistribute EIGRP external routes";
                      }  // container external
                    }  // container match
    
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // list eigrp
    
                  list isis {
                    key "instance-name";
                    description "IS-IS routes";
                    leaf instance-name {
                      type string {
                        length "1..1024";
                      }
                      description "IS-IS routes";
                    }
    
                    container level-1 {
                      presence
                        "Indicates a level-1 node is configured.";
                      description
                        "IS-IS level-1 routes only";
                    }  // container level-1
    
                    container level-1-2 {
                      presence
                        "Indicates a level-1-2 node is configured.";
                      description
                        "IS-IS level-1 and level-2 routes";
                    }  // container level-1-2
    
                    container level-2 {
                      presence
                        "Indicates a level-2 node is configured.";
                      description
                        "IS-IS level-2 routes only";
                    }  // container level-2
    
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // list isis
    
                  container applications {
                    description
                      "Application routes";
                    list application {
                      key "application-name";
                      description
                        "Application routes";
                      leaf application-name {
                        type string {
                          length "1..1024";
                        }
                        description
                          "Application routes";
                      }
    
                      container metric {
                        description
                          "Metric for redistributed routes";
                        leaf default-metric {
                          type uint32 {
                            range "0..16777214";
                          }
                          description
                            "OSPFv3 default metric";
                        }
    
                        container use-rib-metric {
                          presence
                            "Indicates a use-rib-metric node is configured.";
                          description
                            "Use metric from RIB";
                        }  // container use-rib-metric
                      }  // container metric
    
                      leaf metric-type {
                        type enumeration {
                          enum "1" {
                            value 1;
                            description
                              "Set OSPFv3 External Type 1 metrics";
                          }
                          enum "2" {
                            value 2;
                            description
                              "Set OSPFv3 External Type 2 metrics";
                          }
                        }
                        description
                          "OSPFv3 exterior metric type for redistributed routes";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Set tag for routes redistributed into OSPFv3";
                      }
    
                      leaf route-policy {
                        type xr:Route-policy-name;
                        description
                          "Apply route-policy to redistribution";
                      }
                    }  // list application
                  }  // container applications
    
                  list ospfv3 {
                    key "process-name";
                    description "OSPFv3 routes";
                    leaf process-name {
                      type string {
                        length "1..1024";
                      }
                      description
                        "OSPFv3 routes";
                    }
    
                    container match {
                      description
                        "Redistribution of OSPFv3 routes";
                      container internal {
                        presence
                          "Indicates a internal node is configured.";
                        description
                          "Redistribute OSPFv3 internal routes";
                      }  // container internal
    
                      container external {
                        presence
                          "Indicates a external node is configured.";
                        description
                          "Redistribute OSPFv3 external routes";
                        container one {
                          presence
                            "Indicates a one node is configured.";
                          description
                            "Redistribute external type 1 routes";
                        }  // container one
    
                        container two {
                          presence
                            "Indicates a two node is configured.";
                          description
                            "Redistribute external type 2 routes";
                        }  // container two
                      }  // container external
    
                      container nssa-external {
                        presence
                          "Indicates a nssa-external node is configured.";
                        description
                          "Redistribute OSPFv3 NSSA external routes";
                        container one {
                          presence
                            "Indicates a one node is configured.";
                          description
                            "Redistribute NSSA external type 1 routes";
                        }  // container one
    
                        container two {
                          presence
                            "Indicates a two node is configured.";
                          description
                            "Redistribute NSSA external type 2 routes";
                        }  // container two
                      }  // container nssa-external
                    }  // container match
    
                    container metric {
                      description
                        "Metric for redistributed routes";
                      leaf default-metric {
                        type uint32 {
                          range "0..16777214";
                        }
                        description
                          "OSPFv3 default metric";
                      }
    
                      container use-rib-metric {
                        presence
                          "Indicates a use-rib-metric node is configured.";
                        description
                          "Use metric from RIB";
                      }  // container use-rib-metric
                    }  // container metric
    
                    leaf metric-type {
                      type enumeration {
                        enum "1" {
                          value 1;
                          description
                            "Set OSPFv3 External Type 1 metrics";
                        }
                        enum "2" {
                          value 2;
                          description
                            "Set OSPFv3 External Type 2 metrics";
                        }
                      }
                      description
                        "OSPFv3 exterior metric type for redistributed routes";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Set tag for routes redistributed into OSPFv3";
                    }
    
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Apply route-policy to redistribution";
                    }
                  }  // list ospfv3
                }  // container redistribute
    
                leaf router-id {
                  type inet:ipv4-address-no-zone;
                  description
                    "Specify the router-id for this OSPFv3 process";
                }
    
                container spf {
                  description
                    "SPF configuration";
                  container prefix-priority {
                    description
                      "Configure SPF prefix priority route policy";
                    leaf route-policy {
                      type xr:Route-policy-name;
                      description
                        "Specify the route-policy to prioritize route install";
                    }
    
                    container disable {
                      presence
                        "Indicates a disable node is configured.";
                      description
                        "Disable SPF prefix priority";
                    }  // container disable
                  }  // container prefix-priority
                }  // container spf
    
                container stub-router {
                  description
                    "Enter stub router configuration submode";
                  container router-lsa {
                    description
                      "Modify self originated router LSAs";
                    container r-bit {
                      presence
                        "Indicates a r-bit node is configured.";
                      description
                        "advertise LSAs with R-bit cleared";
                      container always {
                        presence
                          "Indicates a always node is configured.";
                        description
                          "Force ospfv3 stub router mode unconditionally";
                      }  // container always
    
                      leaf on-proc-restart {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on ospfv3 process restart";
                      }
    
                      leaf on-proc-migration {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on ospfv3 process migration";
                      }
    
                      container on-startup {
                        description
                          "Enter stub router mode on startup";
                        container wait-for-bgp {
                          must
                            "not(../stay-in-time)";
                          presence
                            "Indicates a wait-for-bgp node is configured.";
                          description
                            "Exit stub router mode when BGP converges";
                        }  // container wait-for-bgp
    
                        leaf stay-in-time {
                          type uint32 {
                            range "5..86400";
                          }
                          must
                            "not(../wait-for-bgp)";
                          description
                            "Time in seconds to stay in stub router mode";
                        }
                      }  // container on-startup
    
                      leaf on-switchover {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on RP switchover";
                      }
                    }  // container r-bit
    
                    container v6-bit {
                      presence
                        "Indicates a v6-bit node is configured.";
                      description
                        "advertise LSAs with V6-bit cleared";
                      container always {
                        presence
                          "Indicates a always node is configured.";
                        description
                          "Force ospfv3 stub router mode unconditionally";
                      }  // container always
    
                      leaf on-proc-restart {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on ospfv3 process restart";
                      }
    
                      leaf on-proc-migration {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on ospfv3 process migration";
                      }
    
                      container on-startup {
                        description
                          "Enter stub router mode on startup";
                        container wait-for-bgp {
                          must
                            "not(../stay-in-time)";
                          presence
                            "Indicates a wait-for-bgp node is configured.";
                          description
                            "Exit stub router mode when BGP converges";
                        }  // container wait-for-bgp
    
                        leaf stay-in-time {
                          type uint32 {
                            range "5..86400";
                          }
                          must
                            "not(../wait-for-bgp)";
                          description
                            "Time in seconds to stay in stub router mode";
                        }
                      }  // container on-startup
    
                      leaf on-switchover {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on RP switchover";
                      }
                    }  // container v6-bit
    
                    container max-metric {
                      presence
                        "Indicates a max-metric node is configured.";
                      description
                        "advertise LSAs with maximum metric";
                      container always {
                        presence
                          "Indicates a always node is configured.";
                        description
                          "Force ospfv3 stub router mode unconditionally";
                      }  // container always
    
                      leaf on-proc-restart {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on ospfv3 process restart";
                      }
    
                      leaf on-proc-migration {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on ospfv3 process migration";
                      }
    
                      container on-startup {
                        description
                          "Enter stub router mode on startup";
                        container wait-for-bgp {
                          must
                            "not(../stay-in-time)";
                          presence
                            "Indicates a wait-for-bgp node is configured.";
                          description
                            "Exit stub router mode when BGP converges";
                        }  // container wait-for-bgp
    
                        leaf stay-in-time {
                          type uint32 {
                            range "5..86400";
                          }
                          must
                            "not(../wait-for-bgp)";
                          description
                            "Time in seconds to stay in stub router mode";
                        }
                      }  // container on-startup
    
                      leaf on-switchover {
                        type uint32 {
                          range "5..86400";
                        }
                        description
                          "Enter stub router mode on RP switchover";
                      }
    
                      leaf external-lsa {
                        type union {
                          type uint32 {
                            range "16711680";
                          }
                          type uint32 {
                            range "1..16777214";
                          }
                        }
                        description
                          "Override External LSA metric in stub router mode";
                      }
    
                      leaf summary-lsa {
                        type union {
                          type uint32 {
                            range "16711680";
                          }
                          type uint32 {
                            range "1..16777214";
                          }
                        }
                        description
                          "Override Summary LSA metric in stub router mode";
                      }
    
                      container include-stub {
                        presence
                          "Indicates a include-stub node is configured.";
                        description
                          "Set maximum metric for stub links in stub router mode";
                      }  // container include-stub
                    }  // container max-metric
                  }  // container router-lsa
                }  // container stub-router
    
                container summary-prefixes {
                  description
                    "Summarize redistributed routes matching prefix/length";
                  list summary-prefix {
                    key "prefix prefix-length";
                    description
                      "Summarize redistributed routes matching prefix/length";
                    leaf prefix {
                      type inet:ipv6-address-no-zone;
                      description
                        "Summarize redistributed routes matching prefix/length";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv6-prefix-length;
                      description
                        "Summarize redistributed routes matching prefix/length";
                    }
    
                    container not-advertise {
                      presence
                        "Indicates a not-advertise node is configured.";
                      description
                        "Suppress routes matching prefix/length";
                    }  // container not-advertise
    
                    leaf tag {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description
                        "32-bit tag value";
                    }
                  }  // list summary-prefix
                }  // container summary-prefixes
    
                container timers {
                  description
                    "Adjust routing timers";
                  container lsa {
                    description "LSA timers";
                    leaf arrival {
                      type uint32 {
                        range "0..60000";
                      }
                      description
                        "LSA arrival timer";
                    }
                  }  // container lsa
    
                  container pacing {
                    description "Pacing timers";
                    leaf flood {
                      type uint32 {
                        range "5..100";
                      }
                      description
                        "Flood pacing timer";
                    }
    
                    leaf lsa-group {
                      type uint32 {
                        range "10..1800";
                      }
                      description
                        "LSA group pacing timer";
                    }
    
                    leaf retransmission {
                      type uint32 {
                        range "5..100";
                      }
                      description
                        "Retransmission pacing timer";
                    }
                  }  // container pacing
    
                  container throttle {
                    description
                      "Throttle timers";
                    container lsa {
                      description
                        "LSA throttle timers";
                      container all {
                        presence
                          "Indicates a all node is configured.";
                        description
                          "For all types of OSPF LSAs";
                        leaf initial-delay {
                          type uint32 {
                            range "0..600000";
                          }
                          mandatory true;
                          description
                            "For all types of OSPF LSAs";
                        }
    
                        leaf minimum-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          mandatory true;
                          description
                            "Minimum delay between originating the same LSA in milliseconds";
                        }
    
                        leaf maximum-delay {
                          type uint32 {
                            range "1..600000";
                          }
                          mandatory true;
                          description
                            "Maximum delay between originating the same LSA in milliseconds";
                        }
                      }  // container all
                    }  // container lsa
    
                    container spf {
                      presence
                        "Indicates a spf node is configured.";
                      description
                        "SPF throttle timers";
                      leaf initial-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        mandatory true;
                        description
                          "SPF throttle timers";
                      }
    
                      leaf minimum-hold-time {
                        type uint32 {
                          range "1..600000";
                        }
                        mandatory true;
                        description
                          "Minimum hold time between consecutive SPF calculations in ms";
                      }
    
                      leaf maximum-wait-time {
                        type uint32 {
                          range "1..600000";
                        }
                        mandatory true;
                        description
                          "Maximum wait time between consecutive SPF calculations in ms";
                      }
                    }  // container spf
                  }  // container throttle
                }  // container timers
    
                container snmp {
                  description
                    "SNMP configuration";
                  leaf context {
                    type string {
                      length "1..32";
                    }
                    description
                      "Specified SNMP context for OSPFv3 instance";
                  }
    
                  container trap {
                    presence
                      "Indicates a trap node is configured.";
                    description
                      "Enable SNMP trap for OSPFv3 instance";
                    leaf rate-limit {
                      type uint32 {
                        range "2..60";
                      }
                      mandatory true;
                      description
                        "Adjust trap rate-limit parameters";
                    }
    
                    leaf max-traps {
                      type uint32 {
                        range "0..300";
                      }
                      mandatory true;
                      description
                        "Max number of traps sent in window time";
                    }
                  }  // container trap
                }  // container snmp
    
                container vrfs {
                  description
                    "Enter the OSPFv3 vrf configuration submode";
                  list vrf {
                    key "vrf-name";
                    description
                      "Name for this OSPFV3 vrf";
                    leaf vrf-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..32";
                      }
                      description
                        "Name for this OSPFV3 vrf";
                    }
    
                    container domain-id {
                      description
                        "Specify domain id";
                      leaf type {
                        type enumeration {
                          enum "0005" {
                            value 5;
                            description
                              " Type 0x0005";
                          }
                          enum "0105" {
                            value 261;
                            description
                              " Type 0x0105";
                          }
                          enum "0205" {
                            value 517;
                            description
                              " Type 0x0205";
                          }
                        }
                        description
                          "Primary OSPF domain ID type in Hex format";
                      }
    
                      leaf value {
                        type string {
                          length "1..1024";
                        }
                        description
                          "OSPF domain ID value in Hex format";
                      }
    
                      container secondaries {
                        description
                          "OSPF secondary domain-id";
                        list secondary {
                          key "type value";
                          description
                            "OSPF secondary domain-id";
                          leaf type {
                            type enumeration {
                              enum "0005" {
                                value 5;
                                description
                                  " Type 0x0005";
                              }
                              enum "0105" {
                                value 261;
                                description
                                  " Type 0x0105";
                              }
                              enum "0205" {
                                value 517;
                                description
                                  " Type 0x0205";
                              }
                            }
                            description
                              "OSPF domain ID type in Hex format";
                          }
    
                          leaf value {
                            type xr:Cisco-ios-xr-string {
                              length "1..1024";
                            }
                            description
                              "OSPF domain ID value in Hex format";
                          }
                        }  // list secondary
                      }  // container secondaries
                    }  // container domain-id
    
                    container capability {
                      description
                        "Enable specific OSPFv3 feature";
                      container vrf-lite {
                        presence
                          "Indicates a vrf-lite node is configured.";
                        description
                          "Enable VRF-lite support";
                      }  // container vrf-lite
    
                      container type7 {
                        description
                          "NSSA capability";
                        container prefer {
                          presence
                            "Indicates a prefer node is configured.";
                          description
                            "Prefer type7 externals over type5";
                        }  // container prefer
    
                        container translate {
                          description
                            "Translate type7 to type5";
                          container zero-forward-addr {
                            presence
                              "Indicates a zero-forward-addr node is configured.";
                            description
                              "Translate Type 7 LSAs without forwarding address";
                          }  // container zero-forward-addr
                        }  // container translate
                      }  // container type7
                    }  // container capability
    
                    container areas {
                      description
                        "Enter the OSPFv3 area configuration submode";
                      list area {
                        key "area-id";
                        description
                          "Enter the OSPFv3 area configuration submode";
                        leaf area-id {
                          type xr:Ospf-area-id;
                          description
                            "Enter the OSPFv3 area configuration submode";
                        }
    
                        leaf default-cost {
                          type uint32 {
                            range "0..16777215";
                          }
                          description
                            "Set the summary default-cost of a NSSA/stub area";
                        }
    
                        container nssa {
                          presence
                            "Indicates a nssa node is configured.";
                          description
                            "Specify area as an NSSA area";
                          container no-redistribution {
                            presence
                              "Indicates a no-redistribution node is configured.";
                            description
                              "No redistribution into this NSSA area";
                          }  // container no-redistribution
    
                          container default-information-originate {
                            presence
                              "Indicates a default-information-originate node is configured.";
                            description
                              "Originate Type 7 default into NSSA area";
                            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";
                            }
                          }  // container default-information-originate
    
                          container no-summary {
                            presence
                              "Indicates a no-summary node is configured.";
                            description
                              "Do not send summary LSA into NSSA";
                          }  // container no-summary
                        }  // container nssa
    
                        container nssa-translate {
                          description
                            "Translate NSSA LSA";
                          container type7 {
                            description
                              "Translate type 7 to type 5";
                            container always {
                              presence
                                "Indicates a always node is configured.";
                              description
                                "Always translate NSSA LSAs on this ABR";
                            }  // container always
                          }  // container type7
                        }  // container nssa-translate
    
                        container ranges {
                          description
                            "Summarize inter-area routes matching prefix/length";
                          list range {
                            must
                              "advertise or not-advertise";
                            key "prefix prefix-length";
                            description
                              "Summarize inter-area routes matching prefix/length";
                            leaf prefix {
                              type inet:ipv6-address-no-zone;
                              description
                                "Summarize inter-area routes matching prefix/length";
                            }
    
                            leaf prefix-length {
                              type xr:Ipv6-prefix-length;
                              description
                                "Summarize inter-area routes matching prefix/length";
                            }
    
                            leaf cost {
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                              description
                                "User specified metric for this range";
                            }
    
                            container advertise {
                              presence
                                "Indicates a advertise node is configured.";
                              description
                                "Advertise this range (default)";
                            }  // container advertise
    
                            container not-advertise {
                              presence
                                "Indicates a not-advertise node is configured.";
                              description
                                "Do not advertise this range";
                            }  // container not-advertise
                          }  // list range
                        }  // container ranges
    
                        container stub {
                          presence
                            "Indicates a stub node is configured.";
                          description
                            "Specify area as a stub area";
                          container no-summary {
                            presence
                              "Indicates a no-summary node is configured.";
                            description
                              "Do not send summary LSAs into stub area";
                          }  // container no-summary
                        }  // container stub
    
                        container interfaces {
                          description
                            "Enable OSPFv3 on an interface";
                          list interface {
                            key "interface-name";
                            description
                              "Enable OSPFv3 on an interface";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Enable OSPFv3 on an interface";
                            }
    
                            container authentication {
                              must
                                "disable or ipsec/spi";
                              presence
                                "Indicates a authentication node is configured.";
                              description
                                "Authenticate OSPFv3 packets";
                              container disable {
                                must
                                  "not(../ipsec/spi)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Do not authenticate OSPFv3 packets";
                              }  // container disable
    
                              container ipsec {
                                description
                                  "Use IPSec AH authentication";
                                container spi {
                                  must
                                    "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                                  presence
                                    "Indicates a spi node is configured.";
                                  description
                                    "Specify the Security Parameter Index value";
                                  leaf spi-index {
                                    type uint32 {
                                      range
                                        "256..4294967295";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Specify the Security Parameter Index value";
                                  }
    
                                  container md5 {
                                    description
                                      "Use the MD5 algorithim";
                                    container password {
                                      description
                                        "Enter MD5 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Encrypted key";
                                      }
                                    }  // container password
                                  }  // container md5
    
                                  container sha1 {
                                    description
                                      "Use the SHA1 algorithim";
                                    container password {
                                      description
                                        "Enter SHA1 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Encrypted key";
                                      }
                                    }  // container password
                                  }  // container sha1
                                }  // container spi
                              }  // container ipsec
                            }  // container authentication
    
                            container encryption {
                              must
                                "disable or ipsec/spi";
                              presence
                                "Indicates a encryption node is configured.";
                              description
                                "Encrypt and authenticate OSPFv3 packets";
                              container disable {
                                must
                                  "not(../ipsec/spi)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Do not encrypt OSPFv3 packets";
                              }  // container disable
    
                              container ipsec {
                                description
                                  "Use IPSec ESP encryption and authentication";
                                container spi {
                                  must
                                    "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                                  presence
                                    "Indicates a spi node is configured.";
                                  description
                                    "Specify the Security Parameter Index value";
                                  leaf spi-index {
                                    type uint32 {
                                      range
                                        "256..4294967295";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Specify the Security Parameter Index value";
                                  }
    
                                  container esp {
                                    description
                                      "Specify encryption parameters";
                                    container null {
                                      must
                                        "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                                      presence
                                        "Indicates a null node is configured.";
                                      description
                                        "Use NULL encryption";
                                    }  // container null
    
                                    container des {
                                      description
                                        "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                                      container password {
                                        description
                                          "Enter DES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
                                    }  // container des
    
                                    container triple-des {
                                      description
                                        "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                                      container password {
                                        description
                                          "Enter 3DES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
                                    }  // container triple-des
    
                                    container aes {
                                      description
                                        "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                                      container password {
                                        description
                                          "Enter AES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
    
                                      container aes-192 {
                                        description
                                          "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                        container password {
                                          description
                                            "Enter AES-192 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            must
                                              "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                          }
                                        }  // container password
                                      }  // container aes-192
    
                                      container aes-256 {
                                        description
                                          "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                        container password {
                                          description
                                            "Enter AES-256 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            must
                                              "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                          }
                                        }  // container password
                                      }  // container aes-256
                                    }  // container aes
    
                                    container authentication {
                                      must
                                        "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                                      presence
                                        "Indicates a authentication node is configured.";
                                      description
                                        "Specify authentication parameters";
                                      container md5 {
                                        description
                                          "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                        container password {
                                          description
                                            "Enter MD5 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            description
                                              "Enter key in encrypted form";
                                          }
                                        }  // container password
                                      }  // container md5
    
                                      container sha1 {
                                        description
                                          "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                        container password {
                                          description
                                            "Enter SHA1 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            description
                                              "Enter key in encrypted form";
                                          }
                                        }  // container password
                                      }  // container sha1
    
                                      container null {
                                        must
                                          "not(../../null)";
                                        presence
                                          "Indicates a null node is configured.";
                                        description
                                          "Use NULL authentication";
                                      }  // container null
                                    }  // container authentication
                                  }  // container esp
                                }  // container spi
                              }  // container ipsec
                            }  // container encryption
    
                            container network {
                              description
                                "Network type";
                              container broadcast {
                                presence
                                  "Indicates a broadcast node is configured.";
                                description
                                  "Specify OSPFv3 broadcast multi-access network";
                              }  // container broadcast
    
                              container non-broadcast {
                                presence
                                  "Indicates a non-broadcast node is configured.";
                                description
                                  "Specify OSPFv3 NBMA network";
                              }  // container non-broadcast
    
                              container point-to-point {
                                presence
                                  "Indicates a point-to-point node is configured.";
                                description
                                  "Specify OSPFv3 point-to-point network";
                              }  // container point-to-point
    
                              container point-to-multipoint {
                                presence
                                  "Indicates a point-to-multipoint node is configured.";
                                description
                                  "Specify OSPFv3 point-to-multipoint network";
                              }  // container point-to-multipoint
                            }  // container network
    
                            container cost {
                              description
                                "Interface cost";
                              leaf cost {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                description
                                  "Cost";
                              }
                            }  // container cost
    
                            leaf hello-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Time between HELLO packets";
                            }
    
                            leaf dead-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Interval after which a neighbor is declared dead";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              description
                                "Router priority";
                            }
    
                            leaf retransmit-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Delay between LSA retransmissions";
                            }
    
                            leaf transmit-delay {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Link state transmit delay";
                            }
    
                            container flood-reduction {
                              presence
                                "Indicates a flood-reduction node is configured.";
                              description
                                "Enable/Disable flood reduction";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable flood reduction";
                              }  // container disable
                            }  // container flood-reduction
    
                            container demand-circuit {
                              presence
                                "Indicates a demand-circuit node is configured.";
                              description
                                "Enable/Disable demand circuit operation";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable demand circuit operation";
                              }  // container disable
                            }  // container demand-circuit
    
                            container mtu-ignore {
                              presence
                                "Indicates a mtu-ignore node is configured.";
                              description
                                "Enable/Disable ignoring of MTU in DBD packets";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Validate the MTU in DBD packets";
                              }  // container disable
                            }  // container mtu-ignore
    
                            leaf instance {
                              type uint32 {
                                range "0..255";
                              }
                              description
                                "Instance ID";
                            }
    
                            container database-filter {
                              description
                                "Filter LSAs during synchronization and flooding";
                              container all {
                                description
                                  "Filter all LSA";
                                container out {
                                  presence
                                    "Indicates a out node is configured.";
                                  description
                                    "Outgoing LSA";
                                  container disable {
                                    presence
                                      "Indicates a disable node is configured.";
                                    description
                                      "Disable filtering";
                                  }  // container disable
                                }  // container out
                              }  // container all
                            }  // container database-filter
    
                            container passive {
                              presence
                                "Indicates a passive node is configured.";
                              description
                                "Enable/Disable routing updates on an interface";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable routing updates on an interface";
                              }  // container disable
                            }  // container passive
    
                            container distribute-list {
                              description
                                "Filter prefixes to/from RIB";
                              leaf prefix-list {
                                type string {
                                  length
                                    "1..1024";
                                }
                                description
                                  "Prefix-list name";
                              }
                            }  // container distribute-list
    
                            leaf packet-size {
                              type uint32 {
                                range
                                  "256..10000";
                              }
                              description
                                "Limit size of OSPFv3 packets";
                            }
    
                            container fast-reroute {
                              description
                                "IP Fast Reroute";
                              container per-link {
                                description
                                  "Per-link Computation";
                                container enable {
                                  must
                                    "not(../../per-prefix/enable)";
                                  presence
                                    "Indicates a per-link node is configured.";
                                  description
                                    "Enable per-link Computation";
                                }  // container enable
    
                                container exclude {
                                  description
                                    "Per-link LFA exclusion information";
                                  container interfaces {
                                    description
                                      "Exclude an interface from Per-link LFA";
                                    list interface {
                                      key "interface-name";
                                      description
                                        "Exclude an interface from Per-link LFA";
                                      leaf interface-name {
                                        type xr:Interface-name;
                                        description
                                          "Exclude an interface from Per-link LFA";
                                      }
                                    }  // list interface
                                  }  // container interfaces
                                }  // container exclude
    
                                container lfa-candidate {
                                  description
                                    "FRR LFA candidate information";
                                  container interfaces {
                                    description
                                      "Include an interface to LFA candidate in computation";
                                    list interface {
                                      key "interface-name";
                                      description
                                        "Include an interface to LFA candidate in computation";
                                      leaf interface-name {
                                        type xr:Interface-name;
                                        description
                                          "Include an interface to LFA candidate in computation";
                                      }
                                    }  // list interface
                                  }  // container interfaces
                                }  // container lfa-candidate
    
                                container use-candidate-only {
                                  description
                                    "Enable/Disable backup selection from candidate-list only";
                                  container enable {
                                    must
                                      "not(../disable)";
                                    presence
                                      "Indicates a enable node is configured.";
                                    description
                                      "Enable backup selection from candidate-list only";
                                  }  // container enable
    
                                  container disable {
                                    must
                                      "not(../enable)";
                                    presence
                                      "Indicates a disable node is configured.";
                                    description
                                      "Disable backup selection from candidate-list only";
                                  }  // container disable
                                }  // container use-candidate-only
                              }  // container per-link
    
                              container per-prefix {
                                description
                                  "Per-prefix Computation";
                                container enable {
                                  must
                                    "not(../../per-link/enable)";
                                  presence
                                    "Indicates a per-prefix node is configured.";
                                  description
                                    "Enable per-prefix Computation";
                                }  // container enable
    
                                container exclude {
                                  description
                                    "Per-prefix LFA exclusion information";
                                  container interfaces {
                                    description
                                      "Exclude an interface from Per-prefix LFA";
                                    list interface {
                                      key "interface-name";
                                      description
                                        "Exclude an interface from Per-prefix LFA";
                                      leaf interface-name {
                                        type xr:Interface-name;
                                        description
                                          "Exclude an interface from Per-prefix LFA";
                                      }
                                    }  // list interface
                                  }  // container interfaces
                                }  // container exclude
    
                                container lfa-candidate {
                                  description
                                    "FRR LFA candidate information";
                                  container interfaces {
                                    description
                                      "Include an interface to LFA candidate in computation";
                                    list interface {
                                      key "interface-name";
                                      description
                                        "Include an interface to LFA candidate in computation";
                                      leaf interface-name {
                                        type xr:Interface-name;
                                        description
                                          "Include an interface to LFA candidate in computation";
                                      }
                                    }  // list interface
                                  }  // container interfaces
                                }  // container lfa-candidate
    
                                container use-candidate-only {
                                  description
                                    "Enable/Disable backup selection from candidate-list only";
                                  container enable {
                                    must
                                      "not(../disable)";
                                    presence
                                      "Indicates a enable node is configured.";
                                    description
                                      "Enable backup selection from candidate-list only";
                                  }  // container enable
    
                                  container disable {
                                    must
                                      "not(../enable)";
                                    presence
                                      "Indicates a disable node is configured.";
                                    description
                                      "Disable backup selection from candidate-list only";
                                  }  // container disable
                                }  // container use-candidate-only
                              }  // container per-prefix
    
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable IP Fast Reroute";
                              }  // container disable
                            }  // container fast-reroute
    
                            container prefix-suppression {
                              presence
                                "Indicates a prefix-suppression node is configured.";
                              description
                                "Hide all transit addresses on this interface";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable prefix suppression on this interface";
                              }  // container disable
                            }  // container prefix-suppression
    
                            container bfd {
                              description
                                "Configure BFD parameters";
                              container fast-detect {
                                presence
                                  "Indicates a fast-detect node is configured.";
                                description
                                  "Enable Fast detection";
                                container strict-mode {
                                  presence
                                    "Indicates a strict-mode node is configured.";
                                  description
                                    "Hold down neighbor session until BFD session is up";
                                }  // container strict-mode
    
                                container disable {
                                  presence
                                    "Indicates a disable node is configured.";
                                  description
                                    "Prevent bfd settings from being inherited from the parent";
                                }  // container disable
                              }  // container fast-detect
    
                              leaf minimum-interval {
                                type uint32 {
                                  range
                                    "3..30000";
                                }
                                description
                                  "Minimum interval";
                              }
    
                              leaf multiplier {
                                type uint32 {
                                  range "2..50";
                                }
                                description
                                  "Detect multiplier";
                              }
                            }  // container bfd
    
                            container advertise {
                              description
                                "Conditionally advertise";
                              container prefix {
                                description
                                  "Conditionally advertise this prefix";
                                leaf route-policy {
                                  type xr:Route-policy-name;
                                  description
                                    "Specify the route-policy for conditional advertising";
                                }
                              }  // container prefix
                            }  // container advertise
    
                            container neighbors {
                              description
                                "Specify a neighbor router";
                              list neighbor {
                                key "neighbor-address";
                                description
                                  "Specify a neighbor router";
                                leaf neighbor-address {
                                  type inet:ipv6-address-no-zone;
                                  description
                                    "Specify a neighbor router";
                                }
    
                                leaf zone {
                                  type string;
                                  default "0";
                                  description
                                    "IPv6 address zone";
                                }
    
                                leaf priority {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  description
                                    "OSPFv3 priority of non-broadcast neighbor";
                                }
    
                                leaf poll-interval {
                                  type uint32 {
                                    range
                                      "0..65535";
                                  }
                                  description
                                    "OSPFv3 dead-router polling interval";
                                }
    
                                leaf cost {
                                  type uint32 {
                                    range
                                      "1..65535";
                                  }
                                  description
                                    "OSPFv3 cost for point-to-multipoint neighbor";
                                }
    
                                container database-filter {
                                  description
                                    "Filter OSPFv3 LSA during synchronization and flooding for point-to-multipoint neighbor";
                                  container all {
                                    description
                                      "Filter all LSA";
                                    container out {
                                      presence
                                        "Indicates a out node is configured.";
                                      description
                                        "Outgoing LSA";
                                    }  // container out
                                  }  // container all
                                }  // container database-filter
                              }  // list neighbor
                            }  // container neighbors
                          }  // list interface
                        }  // container interfaces
    
                        container authentication {
                          must
                            "disable or ipsec/spi";
                          presence
                            "Indicates a authentication node is configured.";
                          description
                            "Authenticate OSPFv3 packets";
                          container disable {
                            must
                              "not(../ipsec/spi)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Do not authenticate OSPFv3 packets";
                          }  // container disable
    
                          container ipsec {
                            description
                              "Use IPSec AH authentication";
                            container spi {
                              must
                                "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                              presence
                                "Indicates a spi node is configured.";
                              description
                                "Specify the Security Parameter Index value";
                              leaf spi-index {
                                type uint32 {
                                  range
                                    "256..4294967295";
                                }
                                mandatory true;
                                description
                                  "Specify the Security Parameter Index value";
                              }
    
                              container md5 {
                                description
                                  "Use the MD5 algorithim";
                                container password {
                                  description
                                    "Enter MD5 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Encrypted key";
                                  }
                                }  // container password
                              }  // container md5
    
                              container sha1 {
                                description
                                  "Use the SHA1 algorithim";
                                container password {
                                  description
                                    "Enter SHA1 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Encrypted key";
                                  }
                                }  // container password
                              }  // container sha1
                            }  // container spi
                          }  // container ipsec
                        }  // container authentication
    
                        container encryption {
                          must
                            "disable or ipsec/spi";
                          presence
                            "Indicates a encryption node is configured.";
                          description
                            "Encrypt and authenticate OSPFv3 packets";
                          container disable {
                            must
                              "not(../ipsec/spi)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Do not encrypt OSPFv3 packets";
                          }  // container disable
    
                          container ipsec {
                            description
                              "Use IPSec ESP encryption and authentication";
                            container spi {
                              must
                                "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                              presence
                                "Indicates a spi node is configured.";
                              description
                                "Specify the Security Parameter Index value";
                              leaf spi-index {
                                type uint32 {
                                  range
                                    "256..4294967295";
                                }
                                mandatory true;
                                description
                                  "Specify the Security Parameter Index value";
                              }
    
                              container esp {
                                description
                                  "Specify encryption parameters";
                                container null {
                                  must
                                    "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                                  presence
                                    "Indicates a null node is configured.";
                                  description
                                    "Use NULL encryption";
                                }  // container null
    
                                container des {
                                  description
                                    "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                                  container password {
                                    description
                                      "Enter DES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
                                }  // container des
    
                                container triple-des {
                                  description
                                    "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                                  container password {
                                    description
                                      "Enter 3DES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
                                }  // container triple-des
    
                                container aes {
                                  description
                                    "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                                  container password {
                                    description
                                      "Enter AES key in encrypted form";
                                    leaf encrypted {
                                      type xr:Proprietary-password;
                                      must
                                        "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                    }
                                  }  // container password
    
                                  container aes-192 {
                                    description
                                      "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                    container password {
                                      description
                                        "Enter AES-192 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        must
                                          "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                      }
                                    }  // container password
                                  }  // container aes-192
    
                                  container aes-256 {
                                    description
                                      "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                    container password {
                                      description
                                        "Enter AES-256 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        must
                                          "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                      }
                                    }  // container password
                                  }  // container aes-256
                                }  // container aes
    
                                container authentication {
                                  must
                                    "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                                  presence
                                    "Indicates a authentication node is configured.";
                                  description
                                    "Specify authentication parameters";
                                  container md5 {
                                    description
                                      "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                    container password {
                                      description
                                        "Enter MD5 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Enter key in encrypted form";
                                      }
                                    }  // container password
                                  }  // container md5
    
                                  container sha1 {
                                    description
                                      "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                    container password {
                                      description
                                        "Enter SHA1 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Enter key in encrypted form";
                                      }
                                    }  // container password
                                  }  // container sha1
    
                                  container null {
                                    must
                                      "not(../../null)";
                                    presence
                                      "Indicates a null node is configured.";
                                    description
                                      "Use NULL authentication";
                                  }  // container null
                                }  // container authentication
                              }  // container esp
                            }  // container spi
                          }  // container ipsec
                        }  // container encryption
    
                        container network {
                          description
                            "Network type";
                          container broadcast {
                            presence
                              "Indicates a broadcast node is configured.";
                            description
                              "Specify OSPFv3 broadcast multi-access network";
                          }  // container broadcast
    
                          container non-broadcast {
                            presence
                              "Indicates a non-broadcast node is configured.";
                            description
                              "Specify OSPFv3 NBMA network";
                          }  // container non-broadcast
    
                          container point-to-point {
                            presence
                              "Indicates a point-to-point node is configured.";
                            description
                              "Specify OSPFv3 point-to-point network";
                          }  // container point-to-point
    
                          container point-to-multipoint {
                            presence
                              "Indicates a point-to-multipoint node is configured.";
                            description
                              "Specify OSPFv3 point-to-multipoint network";
                          }  // container point-to-multipoint
                        }  // container network
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Time between HELLO packets";
                        }
    
                        leaf dead-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interval after which a neighbor is declared dead";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Router priority";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Delay between LSA retransmissions";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Link state transmit delay";
                        }
    
                        container flood-reduction {
                          presence
                            "Indicates a flood-reduction node is configured.";
                          description
                            "Enable/Disable flood reduction";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable flood reduction";
                          }  // container disable
                        }  // container flood-reduction
    
                        container demand-circuit {
                          presence
                            "Indicates a demand-circuit node is configured.";
                          description
                            "Enable/Disable demand circuit operation";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable demand circuit operation";
                          }  // container disable
                        }  // container demand-circuit
    
                        container mtu-ignore {
                          presence
                            "Indicates a mtu-ignore node is configured.";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Validate the MTU in DBD packets";
                          }  // container disable
                        }  // container mtu-ignore
    
                        leaf instance {
                          type uint32 {
                            range "0..255";
                          }
                          description
                            "Instance ID";
                        }
    
                        container database-filter {
                          description
                            "Filter LSAs during synchronization and flooding";
                          container all {
                            description
                              "Filter all LSA";
                            container out {
                              presence
                                "Indicates a out node is configured.";
                              description
                                "Outgoing LSA";
                              container disable {
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable filtering";
                              }  // container disable
                            }  // container out
                          }  // container all
                        }  // container database-filter
    
                        container passive {
                          presence
                            "Indicates a passive node is configured.";
                          description
                            "Enable/Disable routing updates on an interface";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable routing updates on an interface";
                          }  // container disable
                        }  // container passive
    
                        container distribute-list {
                          description
                            "Filter prefixes to/from RIB";
                          leaf prefix-list {
                            type string {
                              length "1..1024";
                            }
                            description
                              "Prefix-list name";
                          }
                        }  // container distribute-list
    
                        leaf packet-size {
                          type uint32 {
                            range "256..10000";
                          }
                          description
                            "Limit size of OSPFv3 packets";
                        }
    
                        container fast-reroute {
                          description
                            "IP Fast Reroute";
                          container per-link {
                            description
                              "Per-link Computation";
                            container enable {
                              must
                                "not(../../per-prefix/enable)";
                              presence
                                "Indicates a per-link node is configured.";
                              description
                                "Enable per-link Computation";
                            }  // container enable
    
                            container exclude {
                              description
                                "Per-link LFA exclusion information";
                              container interfaces {
                                description
                                  "Exclude an interface from Per-link LFA";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from Per-link LFA";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Exclude an interface from Per-link LFA";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container exclude
    
                            container lfa-candidate {
                              description
                                "FRR LFA candidate information";
                              container interfaces {
                                description
                                  "Include an interface to LFA candidate in computation";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Include an interface to LFA candidate in computation";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Include an interface to LFA candidate in computation";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container lfa-candidate
    
                            container use-candidate-only {
                              description
                                "Enable/Disable backup selection from candidate-list only";
                              container enable {
                                must
                                  "not(../disable)";
                                presence
                                  "Indicates a enable node is configured.";
                                description
                                  "Enable backup selection from candidate-list only";
                              }  // container enable
    
                              container disable {
                                must
                                  "not(../enable)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable backup selection from candidate-list only";
                              }  // container disable
                            }  // container use-candidate-only
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Per-prefix Computation";
                            container enable {
                              must
                                "not(../../per-link/enable)";
                              presence
                                "Indicates a per-prefix node is configured.";
                              description
                                "Enable per-prefix Computation";
                            }  // container enable
    
                            container exclude {
                              description
                                "Per-prefix LFA exclusion information";
                              container interfaces {
                                description
                                  "Exclude an interface from Per-prefix LFA";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from Per-prefix LFA";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Exclude an interface from Per-prefix LFA";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container exclude
    
                            container lfa-candidate {
                              description
                                "FRR LFA candidate information";
                              container interfaces {
                                description
                                  "Include an interface to LFA candidate in computation";
                                list interface {
                                  key "interface-name";
                                  description
                                    "Include an interface to LFA candidate in computation";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Include an interface to LFA candidate in computation";
                                  }
                                }  // list interface
                              }  // container interfaces
                            }  // container lfa-candidate
    
                            container use-candidate-only {
                              description
                                "Enable/Disable backup selection from candidate-list only";
                              container enable {
                                must
                                  "not(../disable)";
                                presence
                                  "Indicates a enable node is configured.";
                                description
                                  "Enable backup selection from candidate-list only";
                              }  // container enable
    
                              container disable {
                                must
                                  "not(../enable)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Disable backup selection from candidate-list only";
                              }  // container disable
                            }  // container use-candidate-only
                          }  // container per-prefix
    
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable IP Fast Reroute";
                          }  // container disable
                        }  // container fast-reroute
    
                        container prefix-suppression {
                          presence
                            "Indicates a prefix-suppression node is configured.";
                          description
                            "Hide all transit addresses on this interface";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable prefix suppression on this interface";
                          }  // container disable
                        }  // container prefix-suppression
    
                        container bfd {
                          description
                            "Configure BFD parameters";
                          container fast-detect {
                            presence
                              "Indicates a fast-detect node is configured.";
                            description
                              "Enable Fast detection";
                            container strict-mode {
                              presence
                                "Indicates a strict-mode node is configured.";
                              description
                                "Hold down neighbor session until BFD session is up";
                            }  // container strict-mode
    
                            container disable {
                              presence
                                "Indicates a disable node is configured.";
                              description
                                "Prevent bfd settings from being inherited from the parent";
                            }  // container disable
                          }  // container fast-detect
    
                          leaf minimum-interval {
                            type uint32 {
                              range "3..30000";
                            }
                            description
                              "Minimum interval";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detect multiplier";
                          }
                        }  // container bfd
    
                        container virtual-links {
                          description
                            "Define a virtual link";
                          list virtual-link {
                            key "virtual-link-address";
                            description
                              "Define a virtual link";
                            leaf virtual-link-address {
                              type inet:ipv4-address-no-zone;
                              description
                                "Define a virtual link";
                            }
    
                            container authentication {
                              must
                                "disable or ipsec/spi";
                              presence
                                "Indicates a authentication node is configured.";
                              description
                                "Authenticate OSPFv3 packets";
                              container disable {
                                must
                                  "not(../ipsec/spi)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Do not authenticate OSPFv3 packets";
                              }  // container disable
    
                              container ipsec {
                                description
                                  "Use IPSec AH authentication";
                                container spi {
                                  must
                                    "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                                  presence
                                    "Indicates a spi node is configured.";
                                  description
                                    "Specify the Security Parameter Index value";
                                  leaf spi-index {
                                    type uint32 {
                                      range
                                        "256..4294967295";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Specify the Security Parameter Index value";
                                  }
    
                                  container md5 {
                                    description
                                      "Use the MD5 algorithim";
                                    container password {
                                      description
                                        "Enter MD5 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Encrypted key";
                                      }
                                    }  // container password
                                  }  // container md5
    
                                  container sha1 {
                                    description
                                      "Use the SHA1 algorithim";
                                    container password {
                                      description
                                        "Enter SHA1 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Encrypted key";
                                      }
                                    }  // container password
                                  }  // container sha1
                                }  // container spi
                              }  // container ipsec
                            }  // container authentication
    
                            container encryption {
                              must
                                "disable or ipsec/spi";
                              presence
                                "Indicates a encryption node is configured.";
                              description
                                "Encrypt and authenticate OSPFv3 packets";
                              container disable {
                                must
                                  "not(../ipsec/spi)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Do not encrypt OSPFv3 packets";
                              }  // container disable
    
                              container ipsec {
                                description
                                  "Use IPSec ESP encryption and authentication";
                                container spi {
                                  must
                                    "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                                  presence
                                    "Indicates a spi node is configured.";
                                  description
                                    "Specify the Security Parameter Index value";
                                  leaf spi-index {
                                    type uint32 {
                                      range
                                        "256..4294967295";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Specify the Security Parameter Index value";
                                  }
    
                                  container esp {
                                    description
                                      "Specify encryption parameters";
                                    container null {
                                      must
                                        "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                                      presence
                                        "Indicates a null node is configured.";
                                      description
                                        "Use NULL encryption";
                                    }  // container null
    
                                    container des {
                                      description
                                        "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                                      container password {
                                        description
                                          "Enter DES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
                                    }  // container des
    
                                    container triple-des {
                                      description
                                        "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                                      container password {
                                        description
                                          "Enter 3DES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
                                    }  // container triple-des
    
                                    container aes {
                                      description
                                        "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                                      container password {
                                        description
                                          "Enter AES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
    
                                      container aes-192 {
                                        description
                                          "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                        container password {
                                          description
                                            "Enter AES-192 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            must
                                              "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                          }
                                        }  // container password
                                      }  // container aes-192
    
                                      container aes-256 {
                                        description
                                          "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                        container password {
                                          description
                                            "Enter AES-256 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            must
                                              "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                          }
                                        }  // container password
                                      }  // container aes-256
                                    }  // container aes
    
                                    container authentication {
                                      must
                                        "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                                      presence
                                        "Indicates a authentication node is configured.";
                                      description
                                        "Specify authentication parameters";
                                      container md5 {
                                        description
                                          "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                        container password {
                                          description
                                            "Enter MD5 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            description
                                              "Enter key in encrypted form";
                                          }
                                        }  // container password
                                      }  // container md5
    
                                      container sha1 {
                                        description
                                          "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                        container password {
                                          description
                                            "Enter SHA1 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            description
                                              "Enter key in encrypted form";
                                          }
                                        }  // container password
                                      }  // container sha1
    
                                      container null {
                                        must
                                          "not(../../null)";
                                        presence
                                          "Indicates a null node is configured.";
                                        description
                                          "Use NULL authentication";
                                      }  // container null
                                    }  // container authentication
                                  }  // container esp
                                }  // container spi
                              }  // container ipsec
                            }  // container encryption
    
                            leaf hello-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Time between HELLO packets";
                            }
    
                            leaf dead-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Interval after which a neighbor is declared dead";
                            }
    
                            leaf retransmit-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Delay between LSA retransmissions";
                            }
    
                            leaf transmit-delay {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Link state transmit delay";
                            }
                          }  // list virtual-link
                        }  // container virtual-links
    
                        container sham-links {
                          description
                            "Define a sham link";
                          list sham-link {
                            key "local-address remote-address";
                            description
                              "Define a sham link";
                            leaf local-address {
                              type inet:ipv6-address-no-zone;
                              description
                                "Address of the local sham-link end-point";
                            }
    
                            leaf remote-address {
                              type inet:ipv6-address-no-zone;
                              description
                                "Address of the remote sham-link endpoint";
                            }
    
                            container authentication {
                              must
                                "disable or ipsec/spi";
                              presence
                                "Indicates a authentication node is configured.";
                              description
                                "Authenticate OSPFv3 packets";
                              container disable {
                                must
                                  "not(../ipsec/spi)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Do not authenticate OSPFv3 packets";
                              }  // container disable
    
                              container ipsec {
                                description
                                  "Use IPSec AH authentication";
                                container spi {
                                  must
                                    "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                                  presence
                                    "Indicates a spi node is configured.";
                                  description
                                    "Specify the Security Parameter Index value";
                                  leaf spi-index {
                                    type uint32 {
                                      range
                                        "256..4294967295";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Specify the Security Parameter Index value";
                                  }
    
                                  container md5 {
                                    description
                                      "Use the MD5 algorithim";
                                    container password {
                                      description
                                        "Enter MD5 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Encrypted key";
                                      }
                                    }  // container password
                                  }  // container md5
    
                                  container sha1 {
                                    description
                                      "Use the SHA1 algorithim";
                                    container password {
                                      description
                                        "Enter SHA1 key in encrypted form";
                                      leaf encrypted {
                                        type xr:Proprietary-password;
                                        description
                                          "Encrypted key";
                                      }
                                    }  // container password
                                  }  // container sha1
                                }  // container spi
                              }  // container ipsec
                            }  // container authentication
    
                            container encryption {
                              must
                                "disable or ipsec/spi";
                              presence
                                "Indicates a encryption node is configured.";
                              description
                                "Encrypt and authenticate OSPFv3 packets";
                              container disable {
                                must
                                  "not(../ipsec/spi)";
                                presence
                                  "Indicates a disable node is configured.";
                                description
                                  "Do not encrypt OSPFv3 packets";
                              }  // container disable
    
                              container ipsec {
                                description
                                  "Use IPSec ESP encryption and authentication";
                                container spi {
                                  must
                                    "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                                  presence
                                    "Indicates a spi node is configured.";
                                  description
                                    "Specify the Security Parameter Index value";
                                  leaf spi-index {
                                    type uint32 {
                                      range
                                        "256..4294967295";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Specify the Security Parameter Index value";
                                  }
    
                                  container esp {
                                    description
                                      "Specify encryption parameters";
                                    container null {
                                      must
                                        "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                                      presence
                                        "Indicates a null node is configured.";
                                      description
                                        "Use NULL encryption";
                                    }  // container null
    
                                    container des {
                                      description
                                        "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                                      container password {
                                        description
                                          "Enter DES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
                                    }  // container des
    
                                    container triple-des {
                                      description
                                        "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                                      container password {
                                        description
                                          "Enter 3DES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
                                    }  // container triple-des
    
                                    container aes {
                                      description
                                        "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                                      container password {
                                        description
                                          "Enter AES key in encrypted form";
                                        leaf encrypted {
                                          type xr:Proprietary-password;
                                          must
                                            "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                        }
                                      }  // container password
    
                                      container aes-192 {
                                        description
                                          "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                        container password {
                                          description
                                            "Enter AES-192 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            must
                                              "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                          }
                                        }  // container password
                                      }  // container aes-192
    
                                      container aes-256 {
                                        description
                                          "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                        container password {
                                          description
                                            "Enter AES-256 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            must
                                              "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                          }
                                        }  // container password
                                      }  // container aes-256
                                    }  // container aes
    
                                    container authentication {
                                      must
                                        "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                                      presence
                                        "Indicates a authentication node is configured.";
                                      description
                                        "Specify authentication parameters";
                                      container md5 {
                                        description
                                          "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                        container password {
                                          description
                                            "Enter MD5 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            description
                                              "Enter key in encrypted form";
                                          }
                                        }  // container password
                                      }  // container md5
    
                                      container sha1 {
                                        description
                                          "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                        container password {
                                          description
                                            "Enter SHA1 key in encrypted form";
                                          leaf encrypted {
                                            type xr:Proprietary-password;
                                            description
                                              "Enter key in encrypted form";
                                          }
                                        }  // container password
                                      }  // container sha1
    
                                      container null {
                                        must
                                          "not(../../null)";
                                        presence
                                          "Indicates a null node is configured.";
                                        description
                                          "Use NULL authentication";
                                      }  // container null
                                    }  // container authentication
                                  }  // container esp
                                }  // container spi
                              }  // container ipsec
                            }  // container encryption
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Sham-link cost";
                            }
    
                            leaf hello-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Time between HELLO packets";
                            }
    
                            leaf dead-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Interval after which a neighbor is declared dead";
                            }
    
                            leaf retransmit-interval {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Delay between LSA retransmissions";
                            }
    
                            leaf transmit-delay {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Link state transmit delay";
                            }
                          }  // list sham-link
                        }  // container sham-links
                      }  // list area
                    }  // container areas
    
                    container auto-cost {
                      presence
                        "Indicates a auto-cost node is configured.";
                      description
                        "Calculate interface cost according to bandwidth";
                      leaf reference-bandwidth {
                        type uint32 {
                          range "1..4294967";
                        }
                        description
                          "Specify reference bandwidth for cost computations";
                      }
    
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Assign cost based on interface type";
                      }  // container disable
                    }  // container auto-cost
    
                    container default-information {
                      description
                        "Control distribution of default information";
                      container originate {
                        presence
                          "Indicates a originate node is configured.";
                        description
                          "Distribute a default route";
                        container always {
                          presence
                            "Indicates a always node is configured.";
                          description
                            "Always advertise default route";
                        }  // container always
    
                        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
                            "Set tag for default route";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route policy to default-information origination";
                        }
                      }  // container originate
                    }  // container default-information
    
                    leaf default-metric {
                      type uint32 {
                        range "1..16777214";
                      }
                      description
                        "Set metric of redistributed routes";
                    }
    
                    container distance {
                      description
                        "Define an administrative distance";
                      leaf administrative-distance {
                        type uint32 {
                          range "1..255";
                        }
                        description
                          "Define an administrative distance";
                      }
    
                      container ospfv3 {
                        description
                          "OSPFv3 administrative distance";
                        leaf intra-area {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Intra-area routes";
                        }
    
                        leaf inter-area {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "Inter-area routes";
                        }
    
                        leaf external {
                          type uint32 {
                            range "1..255";
                          }
                          description
                            "External type 5 and type 7 routes";
                        }
                      }  // container ospfv3
                    }  // container distance
    
                    container distribute-list {
                      description
                        "Filter prefixes to/from RIB";
                      container prefix-list {
                        description
                          "Filter prefixes based on an IPv6 prefix-list";
                        container in {
                          presence
                            "Indicates a prefix-list-name node is configured.";
                          description
                            "Filter prefixes installed to RIB";
                          leaf prefix-list-name {
                            type string {
                              length "1..1024";
                            }
                            mandatory true;
                            description
                              "Prefix-list name";
                          }
                        }  // container in
    
                        container out {
                          description
                            "Filter prefixes redistributed from RIB ";
                          leaf prefix-list-name {
                            type xr:Cisco-ios-xr-string {
                              length "1..1024";
                            }
                            description
                              "Prefix-list name";
                          }
    
                          container connected {
                            presence
                              "Indicates a connected node is configured.";
                            description
                              "Connected routes";
                            leaf prefix-list-name {
                              type string {
                                length "1..1024";
                              }
                              mandatory true;
                              description
                                "Prefix-list name";
                            }
                          }  // container connected
    
                          container static {
                            presence
                              "Indicates a static node is configured.";
                            description
                              "Static routes";
                            leaf prefix-list-name {
                              type string {
                                length "1..1024";
                              }
                              mandatory true;
                              description
                                "Prefix-list name";
                            }
                          }  // container static
    
                          container bgp {
                            description
                              "BGP routes";
                            list as {
                              key "as-number";
                              description
                                "bgp as-number";
                              leaf as-number {
                                type xr:Bgp-as-number;
                                description
                                  "bgp as-number";
                              }
    
                              leaf prefix-list-name {
                                type string {
                                  length
                                    "1..1024";
                                }
                                mandatory true;
                                description
                                  "Prefix-list name";
                              }
                            }  // list as
                          }  // container bgp
    
                          list ospfv3 {
                            key "instance-name";
                            description
                              "OSPFv3 routes";
                            leaf instance-name {
                              type string {
                                length "1..1024";
                              }
                              description
                                "OSPFv3 routes";
                            }
    
                            leaf prefix-list-name {
                              type string {
                                length "1..1024";
                              }
                              mandatory true;
                              description
                                "Prefix-list name";
                            }
                          }  // list ospfv3
    
                          list isis {
                            key "instance-name";
                            description
                              "IS-IS routes";
                            leaf instance-name {
                              type string {
                                length "1..1024";
                              }
                              description
                                "IS-IS routes";
                            }
    
                            leaf prefix-list-name {
                              type string {
                                length "1..1024";
                              }
                              mandatory true;
                              description
                                "Prefix-list name";
                            }
                          }  // list isis
    
                          list eigrp {
                            key "as-number";
                            description
                              "EIGRP routes";
                            leaf as-number {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "EIGRP routes";
                            }
    
                            leaf prefix-list-name {
                              type string {
                                length "1..1024";
                              }
                              mandatory true;
                              description
                                "Prefix-list name";
                            }
                          }  // list eigrp
                        }  // container out
                      }  // container prefix-list
                    }  // container distribute-list
    
                    leaf packet-size {
                      type uint32 {
                        range "256..10000";
                      }
                      description
                        "Limit size of OSPFv3 packets";
                    }
    
                    container fast-reroute {
                      description
                        "IP Fast Reroute";
                      container per-link {
                        description
                          "Per-link Computation";
                        container enable {
                          must
                            "not(../../per-prefix/enable)";
                          presence
                            "Indicates a per-link node is configured.";
                          description
                            "Enable per-link Computation";
                        }  // container enable
    
                        container exclude {
                          description
                            "Per-link LFA exclusion information";
                          container interfaces {
                            description
                              "Exclude an interface from Per-link LFA";
                            list interface {
                              key "interface-name";
                              description
                                "Exclude an interface from Per-link LFA";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Exclude an interface from Per-link LFA";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container exclude
    
                        container lfa-candidate {
                          description
                            "FRR LFA candidate information";
                          container interfaces {
                            description
                              "Include an interface to LFA candidate in computation";
                            list interface {
                              key "interface-name";
                              description
                                "Include an interface to LFA candidate in computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Include an interface to LFA candidate in computation";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container lfa-candidate
    
                        container use-candidate-only {
                          description
                            "Enable/Disable backup selection from candidate-list only";
                          container enable {
                            must
                              "not(../disable)";
                            presence
                              "Indicates a enable node is configured.";
                            description
                              "Enable backup selection from candidate-list only";
                          }  // container enable
    
                          container disable {
                            must
                              "not(../enable)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable backup selection from candidate-list only";
                          }  // container disable
                        }  // container use-candidate-only
    
                        container priority-limit {
                          description
                            "Limit backup computation upto the prefix priority";
                          container critical {
                            presence
                              "Indicates a critical node is configured.";
                            description
                              "Compute for critical priority prefixes only";
                          }  // container critical
    
                          container high {
                            presence
                              "Indicates a high node is configured.";
                            description
                              "Compute for critical & high priority prefixes ";
                          }  // container high
    
                          container medium {
                            presence
                              "Indicates a medium node is configured.";
                            description
                              "Compute for critical, high & medium priority prefixes ";
                          }  // container medium
                        }  // container priority-limit
                      }  // container per-link
    
                      container per-prefix {
                        description
                          "Per-prefix Computation";
                        container enable {
                          must
                            "not(../../per-link/enable)";
                          presence
                            "Indicates a per-prefix node is configured.";
                          description
                            "Enable per-prefix Computation";
                        }  // container enable
    
                        container exclude {
                          description
                            "Per-prefix LFA exclusion information";
                          container interfaces {
                            description
                              "Exclude an interface from Per-prefix LFA";
                            list interface {
                              key "interface-name";
                              description
                                "Exclude an interface from Per-prefix LFA";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Exclude an interface from Per-prefix LFA";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container exclude
    
                        container lfa-candidate {
                          description
                            "FRR LFA candidate information";
                          container interfaces {
                            description
                              "Include an interface to LFA candidate in computation";
                            list interface {
                              key "interface-name";
                              description
                                "Include an interface to LFA candidate in computation";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Include an interface to LFA candidate in computation";
                              }
                            }  // list interface
                          }  // container interfaces
                        }  // container lfa-candidate
    
                        container use-candidate-only {
                          description
                            "Enable/Disable backup selection from candidate-list only";
                          container enable {
                            must
                              "not(../disable)";
                            presence
                              "Indicates a enable node is configured.";
                            description
                              "Enable backup selection from candidate-list only";
                          }  // container enable
    
                          container disable {
                            must
                              "not(../enable)";
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable backup selection from candidate-list only";
                          }  // container disable
                        }  // container use-candidate-only
    
                        container priority-limit {
                          description
                            "Limit backup computation upto the prefix priority";
                          container critical {
                            presence
                              "Indicates a critical node is configured.";
                            description
                              "Compute for critical priority prefixes only";
                          }  // container critical
    
                          container high {
                            presence
                              "Indicates a high node is configured.";
                            description
                              "Compute for critical & high priority prefixes ";
                          }  // container high
    
                          container medium {
                            presence
                              "Indicates a medium node is configured.";
                            description
                              "Compute for critical, high & medium priority prefixes ";
                          }  // container medium
                        }  // container priority-limit
    
                        container tiebreaker {
                          description
                            "Configure tiebreaker for multiple backups";
                          container downstream {
                            description
                              "Prefer backup path via downstream node";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container downstream
    
                          container lc-disjoint {
                            description
                              "Prefer line card disjoint backup path";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container lc-disjoint
    
                          container lowest-backup-metric {
                            description
                              "Prefer backup path with lowest total metric";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container lowest-backup-metric
    
                          container node-protecting {
                            description
                              "Prefer node protecting backup path";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container node-protecting
    
                          container primary-path {
                            description
                              "Prefer backup path from ECMP set";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container primary-path
    
                          container secondary-path {
                            description
                              "Prefer non-ECMP backup path";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container secondary-path
    
                          container srlg-disjoint {
                            description
                              "Prefer SRLG disjoint backup path";
                            leaf index {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Set preference order among tiebreakers";
                            }
                          }  // container srlg-disjoint
                        }  // container tiebreaker
    
                        container load-sharing {
                          description
                            "Load share prefixes across multiple backups";
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable load sharing";
                          }  // container disable
                        }  // container load-sharing
                      }  // container per-prefix
    
                      container disable {
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Disable IP Fast Reroute";
                      }  // container disable
                    }  // container fast-reroute
    
                    container prefix-suppression {
                      presence
                        "Indicates a prefix-suppression node is configured.";
                      description
                        "Hide all transit addresses on this interface";
                    }  // container prefix-suppression
    
                    container bfd {
                      description
                        "Configure BFD parameters";
                      container fast-detect {
                        presence
                          "Indicates a fast-detect node is configured.";
                        description
                          "Enable Fast detection";
                        container strict-mode {
                          presence
                            "Indicates a strict-mode node is configured.";
                          description
                            "Hold down neighbor session until BFD session is up";
                        }  // container strict-mode
                      }  // container fast-detect
    
                      leaf minimum-interval {
                        type uint32 {
                          range "3..30000";
                        }
                        description
                          "Minimum interval";
                      }
    
                      leaf multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detect multiplier";
                      }
                    }  // container bfd
    
                    container graceful-restart {
                      description
                        "Enable Graceful-Restart";
                      container enable {
                        presence
                          "Indicates a enable node is configured.";
                        description
                          "Enable Graceful-Restart";
                      }  // container enable
    
                      leaf interval {
                        type uint32 {
                          range "90..3600";
                        }
                        description
                          "Minimum interval between Graceful Restarts (seconds)";
                      }
    
                      leaf lifetime {
                        type uint32 {
                          range "90..1800";
                        }
                        description
                          "Maximum route lifetime following restart (seconds)";
                      }
    
                      container helper {
                        description
                          "router's helper support level";
                        container disable {
                          presence
                            "Indicates a disable node is configured.";
                          description
                            "router's helper support disabled";
                        }  // container disable
                      }  // container helper
    
                      container strict-lsa-checking {
                        presence
                          "Indicates a strict-lsa-checking node is configured.";
                        description
                          "terminate graceful restart helper mode if lsa changed";
                      }  // container strict-lsa-checking
                    }  // container graceful-restart
    
                    container ignore {
                      description
                        "Do not complain about a specified event";
                      container lsa {
                        description
                          "Do not complain upon receiving LSA of the specified type";
                        container mospf {
                          presence
                            "Indicates a mospf node is configured.";
                          description
                            "MOSPF Type 6 LSA";
                        }  // container mospf
                      }  // container lsa
                    }  // container ignore
    
                    container authentication {
                      must
                        "disable or ipsec/spi";
                      presence
                        "Indicates a authentication node is configured.";
                      description
                        "Authenticate OSPFv3 packets";
                      container disable {
                        must "not(../ipsec/spi)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Do not authenticate OSPFv3 packets";
                      }  // container disable
    
                      container ipsec {
                        description
                          "Use IPSec AH authentication";
                        container spi {
                          must
                            "not(../../disable) and ((md5/password/encrypted and not(sha1/password/encrypted)) or (sha1/password/encrypted and not(md5/password/encrypted)))";
                          presence
                            "Indicates a spi node is configured.";
                          description
                            "Specify the Security Parameter Index value";
                          leaf spi-index {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            mandatory true;
                            description
                              "Specify the Security Parameter Index value";
                          }
    
                          container md5 {
                            description
                              "Use the MD5 algorithim";
                            container password {
                              description
                                "Enter MD5 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                description
                                  "Encrypted key";
                              }
                            }  // container password
                          }  // container md5
    
                          container sha1 {
                            description
                              "Use the SHA1 algorithim";
                            container password {
                              description
                                "Enter SHA1 key in encrypted form";
                              leaf encrypted {
                                type xr:Proprietary-password;
                                description
                                  "Encrypted key";
                              }
                            }  // container password
                          }  // container sha1
                        }  // container spi
                      }  // container ipsec
                    }  // container authentication
    
                    container encryption {
                      must
                        "disable or ipsec/spi";
                      presence
                        "Indicates a encryption node is configured.";
                      description
                        "Encrypt and authenticate OSPFv3 packets";
                      container disable {
                        must "not(../ipsec/spi)";
                        presence
                          "Indicates a disable node is configured.";
                        description
                          "Do not encrypt OSPFv3 packets";
                      }  // container disable
    
                      container ipsec {
                        description
                          "Use IPSec ESP encryption and authentication";
                        container spi {
                          must
                            "not(../../disable) and (esp/null or esp/des/password/encrypted or esp/triple-des/password/encrypted or esp/aes/password/encrypted or esp/aes/aes-192/password/encrypted or esp/aes/aes-256/password/encrypted)";
                          presence
                            "Indicates a spi node is configured.";
                          description
                            "Specify the Security Parameter Index value";
                          leaf spi-index {
                            type uint32 {
                              range
                                "256..4294967295";
                            }
                            mandatory true;
                            description
                              "Specify the Security Parameter Index value";
                          }
    
                          container esp {
                            description
                              "Specify encryption parameters";
                            container null {
                              must
                                "../authentication and not(../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted)";
                              presence
                                "Indicates a null node is configured.";
                              description
                                "Use NULL encryption";
                            }  // container null
    
                            container des {
                              description
                                "Use the DES algorithim. Encrypted DES key (34 hex digits)";
                              container password {
                                description
                                  "Enter DES key in encrypted form";
                                leaf encrypted {
                                  type xr:Proprietary-password;
                                  must
                                    "not(../../../null or ../../../triple-des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                }
                              }  // container password
                            }  // container des
    
                            container triple-des {
                              description
                                "Use the triple DES algorithim. Encrypted 3DES key (48 hex digits)";
                              container password {
                                description
                                  "Enter 3DES key in encrypted form";
                                leaf encrypted {
                                  type xr:Proprietary-password;
                                  must
                                    "not(../../../null or ../../../des/password/encrypted or ../../../aes/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                }
                              }  // container password
                            }  // container triple-des
    
                            container aes {
                              description
                                "Use the AES algorithim. Encrypted AES key (32 hex digits)";
                              container password {
                                description
                                  "Enter AES key in encrypted form";
                                leaf encrypted {
                                  type xr:Proprietary-password;
                                  must
                                    "not(../../../null or ../../../des/password/encrypted or ../../../triple-des/password/encrypted or ../../../aes/aes-192/password/encrypted or ../../../aes/aes-256/password/encrypted)";
                                }
                              }  // container password
    
                              container aes-192 {
                                description
                                  "Use the 192-bit AES algorithim. Encrypted AES-192 key (48 hex digits)";
                                container password {
                                  description
                                    "Enter AES-192 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    must
                                      "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-256/password/encrypted)";
                                  }
                                }  // container password
                              }  // container aes-192
    
                              container aes-256 {
                                description
                                  "Use the 256-bit AES algorithim. Encrypted AES-256 key (64 hex digits)";
                                container password {
                                  description
                                    "Enter AES-256 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    must
                                      "not(../../../../null or ../../../../des/password/encrypted or ../../../../triple-des/password/encrypted or ../../../../aes/password/encrypted or ../../../../aes/aes-192/password/encrypted)";
                                  }
                                }  // container password
                              }  // container aes-256
                            }  // container aes
    
                            container authentication {
                              must
                                "(../null or ../des/password/encrypted or ../triple-des/password/encrypted or ../aes/password/encrypted or ../aes/aes-192/password/encrypted or ../aes/aes-256/password/encrypted) and ((md5/password/encrypted and not(sha1/password/encrypted or null)) or (sha1/password/encrypted and not(md5/password/encrypted or null)) or (null and not(md5/password/encrypted or sha1/password/encrypted)))";
                              presence
                                "Indicates a authentication node is configured.";
                              description
                                "Specify authentication parameters";
                              container md5 {
                                description
                                  "Use the MD5 algorithim. Encrypted MD5 key (32 hex digits)";
                                container password {
                                  description
                                    "Enter MD5 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Enter key in encrypted form";
                                  }
                                }  // container password
                              }  // container md5
    
                              container sha1 {
                                description
                                  "Use the SHA1 algorithim. Encrypted SHA1 key (40 hex digits)";
                                container password {
                                  description
                                    "Enter SHA1 key in encrypted form";
                                  leaf encrypted {
                                    type xr:Proprietary-password;
                                    description
                                      "Enter key in encrypted form";
                                  }
                                }  // container password
                              }  // container sha1
    
                              container null {
                                must
                                  "not(../../null)";
                                presence
                                  "Indicates a null node is configured.";
                                description
                                  "Use NULL authentication";
                              }  // container null
                            }  // container authentication
                          }  // container esp
                        }  // container spi
                      }  // container ipsec
                    }  // container encryption
    
                    container network {
                      description "Network type";
                      container broadcast {
                        presence
                          "Indicates a broadcast node is configured.";
                        description
                          "Specify OSPFv3 broadcast multi-access network";
                      }  // container broadcast
    
                      container non-broadcast {
                        presence
                          "Indicates a non-broadcast node is configured.";
                        description
                          "Specify OSPFv3 NBMA network";
                      }  // container non-broadcast
    
                      container point-to-point {
                        presence
                          "Indicates a point-to-point node is configured.";
                        description
                          "Specify OSPFv3 point-to-point network";
                      }  // container point-to-point
    
                      container point-to-multipoint {
                        presence
                          "Indicates a point-to-multipoint node is configured.";
                        description
                          "Specify OSPFv3 point-to-multipoint network";
                      }  // container point-to-multipoint
                    }  // container network
    
                    leaf cost {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interface cost";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Time between HELLO packets";
                    }
    
                    leaf dead-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interval after which a neighbor is declared dead";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Router priority";
                    }
    
                    leaf retransmit-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Delay between LSA retransmissions";
                    }
    
                    leaf transmit-delay {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Link state transmit delay";
                    }
    
                    container flood-reduction {
                      presence
                        "Indicates a flood-reduction node is configured.";
                      description
                        "Enable/Disable flood reduction";
                    }  // container flood-reduction
    
                    container demand-circuit {
                      presence
                        "Indicates a demand-circuit node is configured.";
                      description
                        "Enable/Disable demand circuit operation";
                    }  // container demand-circuit
    
                    container mtu-ignore {
                      presence
                        "Indicates a mtu-ignore node is configured.";
                      description
                        "Enable/Disable ignoring of MTU in DBD packets";
                    }  // container mtu-ignore
    
                    leaf instance {
                      type uint32 {
                        range "0..255";
                      }
                      description "Instance ID";
                    }
    
                    container database-filter {
                      description
                        "Filter LSAs during synchronization and flooding";
                      container all {
                        description
                          "Filter all LSA";
                        container out {
                          presence
                            "Indicates a out node is configured.";
                          description
                            "Outgoing LSA";
                        }  // container out
                      }  // container all
                    }  // container database-filter
    
                    container passive {
                      presence
                        "Indicates a passive node is configured.";
                      description
                        "Enable/Disable routing updates on an interface";
                    }  // container passive
    
                    container log {
                      description
                        "Control OSPFv3 console logging";
                      container adjacency {
                        description
                          "Log adjacency state changes";
                        container changes {
                          description
                            "Log changes";
                          container detail {
                            presence
                              "Indicates a detail node is configured.";
                            description
                              "Log all state changes";
                          }  // container detail
    
                          container disable {
                            presence
                              "Indicates a disable node is configured.";
                            description
                              "Disable logging";
                          }  // container disable
                        }  // container changes
                      }  // container adjacency
                    }  // container log
    
                    container maximum {
                      description
                        "Set OSPFv3 limits";
                      leaf interfaces {
                        type uint32 {
                          range "1..4294967295";
                        }
                        description
                          "Limit number of interfaces";
                      }
    
                      leaf paths {
                        type uint32 {
                          range "1..64";
                        }
                        description
                          "Limit number of paths";
                      }
    
                      container redistributed-prefixes {
                        presence
                          "Indicates a redistributed-prefixes node is configured.";
                        description
                          "Limit number of redistributed prefixes";
                        leaf prefixes {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          mandatory true;
                          description
                            "Limit number of redistributed prefixes";
                        }
    
                        leaf threshold {
                          type uint32 {
                            range "1..100";
                          }
                          description
                            "Threshold value (%) at which to generate a warning msg";
                        }
    
                        container warning-only {
                          presence
                            "Indicates a warning-only node is configured.";
                          description
                            "Only give warning message when limit is exceeded";
                        }  // container warning-only
                      }  // container redistributed-prefixes
                    }  // container maximum
    
                    container redistribute {
                      description
                        "Redistribute information from another routing protocol";
                      container connected {
                        presence
                          "Indicates a connected node is configured.";
                        description
                          "Connected routes";
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // container connected
    
                      container static {
                        presence
                          "Indicates a static node is configured.";
                        description
                          "Static routes";
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // container static
    
                      container subscriber {
                        presence
                          "Indicates a subscriber node is configured.";
                        description
                          "Subscriber routes";
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf ospfv3-default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // container subscriber
    
                      container mobile {
                        presence
                          "Indicates a mobile node is configured.";
                        description
                          "Mobile routes";
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // container mobile
    
                      container applications {
                        description
                          "Application routes";
                        list application {
                          key "application-name";
                          description
                            "Application routes";
                          leaf application-name {
                            type string {
                              length "1..1024";
                            }
                            description
                              "Application routes";
                          }
    
                          container metric {
                            description
                              "Metric for redistributed routes";
                            leaf default-metric {
                              type uint32 {
                                range
                                  "0..16777214";
                              }
                              description
                                "OSPFv3 default metric";
                            }
    
                            container use-rib-metric {
                              presence
                                "Indicates a use-rib-metric node is configured.";
                              description
                                "Use metric from RIB";
                            }  // container use-rib-metric
                          }  // container metric
    
                          leaf metric-type {
                            type enumeration {
                              enum "1" {
                                value 1;
                                description
                                  "Set OSPFv3 External Type 1 metrics";
                              }
                              enum "2" {
                                value 2;
                                description
                                  "Set OSPFv3 External Type 2 metrics";
                              }
                            }
                            description
                              "OSPFv3 exterior metric type for redistributed routes";
                          }
    
                          leaf tag {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Set tag for routes redistributed into OSPFv3";
                          }
    
                          leaf route-policy {
                            type xr:Route-policy-name;
                            description
                              "Apply route-policy to redistribution";
                          }
                        }  // list application
                      }  // container applications
    
                      container bgp {
                        description "BGP routes";
                        list as {
                          key "as-number";
                          description
                            "bgp as-number";
                          leaf as-number {
                            type xr:Bgp-as-number;
                            description
                              "bgp as-number";
                          }
    
                          container preserve-med {
                            presence
                              "Indicates a preserve-med node is configured.";
                            description
                              "Preserve med of BGP routes";
                          }  // container preserve-med
    
                          container preserve-bgp-default-info {
                            presence
                              "Indicates a preserve-bgp-default-info node is configured.";
                            description
                              "Preserve metric and metric-type of BGP default route";
                          }  // container preserve-bgp-default-info
    
                          container metric {
                            description
                              "Metric for redistributed routes";
                            leaf default-metric {
                              type uint32 {
                                range
                                  "0..16777214";
                              }
                              description
                                "OSPFv3 default metric";
                            }
    
                            container use-rib-metric {
                              presence
                                "Indicates a use-rib-metric node is configured.";
                              description
                                "Use metric from RIB";
                            }  // container use-rib-metric
                          }  // container metric
    
                          leaf metric-type {
                            type enumeration {
                              enum "1" {
                                value 1;
                                description
                                  "Set OSPFv3 External Type 1 metrics";
                              }
                              enum "2" {
                                value 2;
                                description
                                  "Set OSPFv3 External Type 2 metrics";
                              }
                            }
                            description
                              "OSPFv3 exterior metric type for redistributed routes";
                          }
    
                          leaf tag {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Set tag for routes redistributed into OSPFv3";
                          }
    
                          leaf route-policy {
                            type xr:Route-policy-name;
                            description
                              "Apply route-policy to redistribution";
                          }
                        }  // list as
                      }  // container bgp
    
                      list eigrp {
                        key "as-number";
                        description
                          "Enhanced Interior Gateway Routing Protocol (EIGRP)";
                        leaf as-number {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Enhanced Interior Gateway Routing Protocol (EIGRP)";
                        }
    
                        container match {
                          description
                            "Redistribution of EIGRP routes";
                          container internal {
                            presence
                              "Indicates a internal node is configured.";
                            description
                              "Redistribute EIGRP internal routes";
                          }  // container internal
    
                          container external {
                            presence
                              "Indicates a external node is configured.";
                            description
                              "Redistribute EIGRP external routes";
                          }  // container external
                        }  // container match
    
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // list eigrp
    
                      list isis {
                        key "instance-name";
                        description
                          "IS-IS routes";
                        leaf instance-name {
                          type string {
                            length "1..1024";
                          }
                          description
                            "IS-IS routes";
                        }
    
                        container level-1 {
                          presence
                            "Indicates a level-1 node is configured.";
                          description
                            "IS-IS level-1 routes only";
                        }  // container level-1
    
                        container level-1-2 {
                          presence
                            "Indicates a level-1-2 node is configured.";
                          description
                            "IS-IS level-1 and level-2 routes";
                        }  // container level-1-2
    
                        container level-2 {
                          presence
                            "Indicates a level-2 node is configured.";
                          description
                            "IS-IS level-2 routes only";
                        }  // container level-2
    
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // list isis
    
                      list ospfv3 {
                        key "process-name";
                        description
                          "OSPFv3 routes";
                        leaf process-name {
                          type string {
                            length "1..1024";
                          }
                          description
                            "OSPFv3 routes";
                        }
    
                        container match {
                          description
                            "Redistribution of OSPFv3 routes";
                          container internal {
                            presence
                              "Indicates a internal node is configured.";
                            description
                              "Redistribute OSPFv3 internal routes";
                          }  // container internal
    
                          container external {
                            presence
                              "Indicates a external node is configured.";
                            description
                              "Redistribute OSPFv3 external routes";
                            container one {
                              presence
                                "Indicates a two node is configured.";
                              description
                                "Redistribute external type 1 routes";
                            }  // container one
    
                            container two {
                              presence
                                "Indicates a two node is configured.";
                              description
                                "Redistribute external type 2 routes";
                            }  // container two
                          }  // container external
    
                          container nssa-external {
                            presence
                              "Indicates a nssa-external node is configured.";
                            description
                              "Redistribute OSPFv3 NSSA external routes";
                            container one {
                              presence
                                "Indicates a one node is configured.";
                              description
                                "Redistribute NSSA external type 1 routes";
                            }  // container one
    
                            container two {
                              presence
                                "Indicates a two node is configured.";
                              description
                                "Redistribute NSSA external type 2 routes";
                            }  // container two
                          }  // container nssa-external
                        }  // container match
    
                        container metric {
                          description
                            "Metric for redistributed routes";
                          leaf default-metric {
                            type uint32 {
                              range
                                "0..16777214";
                            }
                            description
                              "OSPFv3 default metric";
                          }
    
                          container use-rib-metric {
                            presence
                              "Indicates a use-rib-metric node is configured.";
                            description
                              "Use metric from RIB";
                          }  // container use-rib-metric
                        }  // container metric
    
                        leaf metric-type {
                          type enumeration {
                            enum "1" {
                              value 1;
                              description
                                "Set OSPFv3 External Type 1 metrics";
                            }
                            enum "2" {
                              value 2;
                              description
                                "Set OSPFv3 External Type 2 metrics";
                            }
                          }
                          description
                            "OSPFv3 exterior metric type for redistributed routes";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPFv3";
                        }
    
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Apply route-policy to redistribution";
                        }
                      }  // list ospfv3
                    }  // container redistribute
    
                    leaf router-id {
                      type inet:ipv4-address-no-zone;
                      description
                        "Specify the router-id for this OSPFv3 process";
                    }
    
                    container spf {
                      description
                        "SPF configuration";
                      container prefix-priority {
                        description
                          "Configure SPF prefix priority route policy";
                        leaf route-policy {
                          type xr:Route-policy-name;
                          description
                            "Specify the route-policy to prioritize route install";
                        }
    
                        container disable {
                          presence
                            "Indicates a disable node is configured.";
                          description
                            "Disable SPF prefix priority";
                        }  // container disable
                      }  // container prefix-priority
                    }  // container spf
    
                    container stub-router {
                      description
                        "Enter stub router configuration submode";
                      container router-lsa {
                        description
                          "Modify self originated router LSAs";
                        container r-bit {
                          presence
                            "Indicates a r-bit node is configured.";
                          description
                            "advertise LSAs with R-bit cleared";
                          container always {
                            presence
                              "Indicates a always node is configured.";
                            description
                              "Force ospfv3 stub router mode unconditionally";
                          }  // container always
    
                          leaf on-proc-restart {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on ospfv3 process restart";
                          }
    
                          leaf on-proc-migration {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on ospfv3 process migration";
                          }
    
                          container on-startup {
                            description
                              "Enter stub router mode on startup";
                            leaf stay-in-time {
                              type uint32 {
                                range "5..86400";
                              }
                              description
                                "Time in seconds to stay in stub router mode";
                            }
                          }  // container on-startup
    
                          leaf on-switchover {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on RP switchover";
                          }
                        }  // container r-bit
    
                        container v6-bit {
                          presence
                            "Indicates a v6-bit node is configured.";
                          description
                            "advertise LSAs with V6-bit cleared";
                          container always {
                            presence
                              "Indicates a always node is configured.";
                            description
                              "Force ospfv3 stub router mode unconditionally";
                          }  // container always
    
                          leaf on-proc-restart {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on ospfv3 process restart";
                          }
    
                          leaf on-proc-migration {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on ospfv3 process migration";
                          }
    
                          container on-startup {
                            description
                              "Enter stub router mode on startup";
                            leaf stay-in-time {
                              type uint32 {
                                range "5..86400";
                              }
                              description
                                "Time in seconds to stay in stub router mode";
                            }
                          }  // container on-startup
    
                          leaf on-switchover {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on RP switchover";
                          }
                        }  // container v6-bit
    
                        container max-metric {
                          presence
                            "Indicates a max-metric node is configured.";
                          description
                            "advertise LSAs with maximum metric";
                          container always {
                            presence
                              "Indicates a always node is configured.";
                            description
                              "Force ospfv3 stub router mode unconditionally";
                          }  // container always
    
                          leaf on-proc-restart {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on ospfv3 process restart";
                          }
    
                          leaf on-proc-migration {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on ospfv3 process migration";
                          }
    
                          container on-startup {
                            description
                              "Enter stub router mode on startup";
                            leaf stay-in-time {
                              type uint32 {
                                range "5..86400";
                              }
                              description
                                "Time in seconds to stay in stub router mode";
                            }
                          }  // container on-startup
    
                          leaf on-switchover {
                            type uint32 {
                              range "5..86400";
                            }
                            description
                              "Enter stub router mode on RP switchover";
                          }
    
                          leaf external-lsa {
                            type union {
                              type uint32 {
                                range "16711680";
                              }
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                            }
                            description
                              "Override External LSA metric in stub router mode";
                          }
    
                          leaf summary-lsa {
                            type union {
                              type uint32 {
                                range "16711680";
                              }
                              type uint32 {
                                range
                                  "1..16777214";
                              }
                            }
                            description
                              "Override Summary LSA metric in stub router mode";
                          }
    
                          container include-stub {
                            presence
                              "Indicates a include-stub node is configured.";
                            description
                              "Set maximum metric for stub links in stub router mode";
                          }  // container include-stub
                        }  // container max-metric
                      }  // container router-lsa
                    }  // container stub-router
    
                    container summary-prefixes {
                      description
                        "Summarize redistributed routes matching prefix/length";
                      list summary-prefix {
                        key "prefix prefix-length";
                        description
                          "Summarize redistributed routes matching prefix/length";
                        leaf prefix {
                          type inet:ipv6-address-no-zone;
                          description
                            "Summarize redistributed routes matching prefix/length";
                        }
    
                        leaf prefix-length {
                          type xr:Ipv6-prefix-length;
                          description
                            "Summarize redistributed routes matching prefix/length";
                        }
    
                        container not-advertise {
                          presence
                            "Indicates a not-advertise node is configured.";
                          description
                            "Suppress routes matching prefix/length";
                        }  // container not-advertise
    
                        leaf tag {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "32-bit tag value";
                        }
                      }  // list summary-prefix
                    }  // container summary-prefixes
    
                    container timers {
                      description
                        "Adjust routing timers";
                      container lsa {
                        description "LSA timers";
                        leaf arrival {
                          type uint32 {
                            range "0..60000";
                          }
                          description
                            "LSA arrival timer";
                        }
                      }  // container lsa
    
                      container pacing {
                        description
                          "Pacing timers";
                        leaf flood {
                          type uint32 {
                            range "5..100";
                          }
                          description
                            "Flood pacing timer";
                        }
    
                        leaf lsa-group {
                          type uint32 {
                            range "10..1800";
                          }
                          description
                            "LSA group pacing timer";
                        }
    
                        leaf retransmission {
                          type uint32 {
                            range "5..100";
                          }
                          description
                            "Retransmission pacing timer";
                        }
                      }  // container pacing
    
                      container throttle {
                        description
                          "Throttle timers";
                        container lsa {
                          description
                            "LSA throttle timers";
                          container all {
                            presence
                              "Indicates a all node is configured.";
                            description
                              "For all types of OSPF LSAs";
                            leaf initial-delay {
                              type uint32 {
                                range
                                  "0..600000";
                              }
                              mandatory true;
                              description
                                "For all types of OSPF LSAs";
                            }
    
                            leaf minimum-delay {
                              type uint32 {
                                range
                                  "1..600000";
                              }
                              mandatory true;
                              description
                                "Minimum delay between originating the same LSA in milliseconds";
                            }
    
                            leaf maximum-delay {
                              type uint32 {
                                range
                                  "1..600000";
                              }
                              mandatory true;
                              description
                                "Maximum delay between originating the same LSA in milliseconds";
                            }
                          }  // container all
                        }  // container lsa
    
                        container spf {
                          presence
                            "Indicates a spf node is configured.";
                          description
                            "SPF throttle timers";
                          leaf initial-delay {
                            type uint32 {
                              range "1..600000";
                            }
                            mandatory true;
                            description
                              "SPF throttle timers";
                          }
    
                          leaf minimum-hold-time {
                            type uint32 {
                              range "1..600000";
                            }
                            mandatory true;
                            description
                              "Minimum hold time between consecutive SPF calculations in ms";
                          }
    
                          leaf maximum-wait-time {
                            type uint32 {
                              range "1..600000";
                            }
                            mandatory true;
                            description
                              "Maximum wait time between consecutive SPF calculations in ms";
                          }
                        }  // container spf
                      }  // container throttle
                    }  // container timers
    
                    container snmp {
                      description
                        "SNMP configuration";
                      leaf context {
                        type string {
                          length "1..32";
                        }
                        description
                          "Specified SNMP context for OSPFv3 instance";
                      }
    
                      container trap-enable {
                        presence
                          "Indicates a trap-enable node is configured.";
                        description
                          "Enable SNMP trap for OSPFv3 instance";
                      }  // container trap-enable
    
                      container trap {
                        presence
                          "Indicates a trap node is configured.";
                        leaf rate-limit {
                          type uint32 {
                            range "2..60";
                          }
                          mandatory true;
                          description
                            "Adjust trap rate-limit parameters";
                        }
    
                        leaf max-traps {
                          type uint32 {
                            range "0..300";
                          }
                          mandatory true;
                          description
                            "Max number of traps sent in window time";
                        }
                      }  // container trap
                    }  // container snmp
                  }  // list vrf
                }  // container vrfs
    
                container nsr {
                  presence
                    "Indicates a nsr node is configured.";
                  description
                    "Enable NSR for all VRFs in this process";
                  container disable {
                    presence
                      "Indicates a disable node is configured.";
                    description
                      "Disable NSR for all VRFs in this process";
                  }  // container disable
                }  // container nsr
    
                container address-family {
                  description
                    "OSPFv3 address family";
                  container ipv6 {
                    presence
                      "Indicates a ipv6 node is configured.";
                    description
                      "IPV6 address family";
                    container unicast {
                      presence
                        "Indicates a unicast node is configured.";
                      description
                        "unicast topology";
                    }  // container unicast
                  }  // container ipv6
                }  // container address-family
    
                container protocol {
                  description
                    "Protocol specific configuration";
                  container shutdown {
                    presence
                      "Indicates a shutdown node is configured.";
                    description
                      "Gracefully shutdown the OSPFv3 protocol";
                  }  // container shutdown
                }  // container protocol
    
                container trace {
                  description
                    "OSPF tracing options";
                  container sizes {
                    description
                      "Delete existing buffer and create one with N entries";
                    list size {
                      key "trace-buffer-name";
                      description
                        "Delete existing buffer and create one with N entries";
                      leaf trace-buffer-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..1024";
                        }
                        description
                          "Delete existing buffer and create one with N entries";
                      }
    
                      leaf trace-entry-size {
                        type enumeration {
                          enum "0" {
                            value 0;
                            description
                              "disable trace";
                          }
                          enum "256" {
                            value 256;
                            description
                              "trace entries";
                          }
                          enum "512" {
                            value 512;
                            description
                              "trace entries";
                          }
                          enum "1024" {
                            value 1024;
                            description
                              "trace entries";
                          }
                          enum "2048" {
                            value 2048;
                            description
                              "trace entries";
                          }
                          enum "4096" {
                            value 4096;
                            description
                              "trace entries";
                          }
                          enum "8192" {
                            value 8192;
                            description
                              "trace entries";
                          }
                          enum "16384" {
                            value 16384;
                            description
                              "trace entries";
                          }
                          enum "32768" {
                            value 32768;
                            description
                              "trace entries";
                          }
                          enum "65536" {
                            value 65536;
                            description
                              "trace entries";
                          }
                        }
                        description
                          "Number of trece entries";
                      }
                    }  // list size
                  }  // container sizes
                }  // container trace
              }  // list process
            }  // container processes
          }  // container ospfv3
        }  // container router
    
        container ospfv3 {
          description
            "Global OSPFv3 configuration commands";
          container name-lookup {
            presence
              "Indicates a name-lookup node is configured.";
            description
              "Display OSPFv3 router ids as DNS names";
          }  // container name-lookup
        }  // container ospfv3
      }  // module Cisco-IOS-XR-um-router-ospfv3-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.