Cisco-IOS-XR-ipv4-ospf-cfg

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

  • Version: 2020-10-12

    Cisco-IOS-XR-ipv4-ospf-cfg@2020-10-12


    
      module Cisco-IOS-XR-ipv4-ospf-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-ospf-cfg";
    
        prefix ipv4-ospf-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-snmp-agent-cfg {
          prefix a1;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR ipv4-ospf package configuration.
         
         This model is deprecated and is replaced by
         Cisco-IOS-XR-um-router-ospf-cfg.yang which will provide the
         compatible functionalities.
         
         This module contains definitions
         for the following management objects:
           ospf: OSPF configuration data
         
         This YANG module augments the
           Cisco-IOS-XR-snmp-agent-cfg
         module with configuration data.
         
         Copyright (c) 2013-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2020-10-12" {
          description
            "Added disable option for Delay Anomaly
           2020-10-12
             Added disable option for Delay Anomaly
           2020-09-16
             Added new command for per prefix load balancing
           2020-09-15
             Added new command for Delay Anomaly";
        }
    
        revision "2020-03-19" {
          description
            "Added new command for Delay Normalization
           2020-02-04
           Added new commands for Conditional Advertising";
        }
    
        revision "2019-10-31" {
          description
            "Added mandatory nodes and presence containers.
           2019-08-13
           Fixed ordering issue of flex-algo advertise definition and affinity.
           2019-05-12
           Deprecated the native model, replaced by UM model.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2018-10-12" {
          description
            "Added Flex algo configuration";
        }
    
        revision "2018-05-14" {
          description
            "Removed all start and running leaf nodes that are implicitly set with CLI";
        }
    
        revision "2018-01-31" {
          description
            "Fixed incorrect plural rendering.";
        }
    
        revision "2017-07-14" {
          description
            "Trace buffer size added in yang xml request repsonse.";
        }
    
        revision "2017-06-09" {
          description
            "Datatype modified to Range for area id, distribute tag and prefix tag.";
        }
    
        revision "2017-05-01" {
          description
            "Fixing backward compatibility error in module.";
        }
    
        revision "2017-01-02" {
          description "IOS XR 6.2.1 revision.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "2.0.0";
        semver:module-version "1.2.0";
        semver:module-version "1.1.0";
        semver:module-version "1.0.0";
    
        typedef Ospf-proc-frr-rlfa-tunnel {
          type enumeration {
            enum "none" {
              value 0;
              description "Disabled";
            }
            enum "mpls-ldp" {
              value 1;
              description "MPLS LDP";
            }
          }
          description
            "Ospf proc frr rlfa tunnel";
        }
    
        typedef Ospf-sub-address-family {
          type enumeration {
            enum "unicast" {
              value 1;
              description "Unicast";
            }
          }
          description "Ospf sub address family";
        }
    
        typedef Ospf-network {
          type enumeration {
            enum "broadcast" {
              value 1;
              description "Broadcast";
            }
            enum "non-broadcast" {
              value 2;
              description "NonBroadcast";
            }
            enum "point-to-point" {
              value 3;
              description "Point to Point";
            }
            enum "point-to-multipoint" {
              value 4;
              description "Point to Multipoint";
            }
            enum
              "non-broadcast-point-to-multipoint" {
              value 5;
              description
                "NonBroadcast Point to Multipoint";
            }
          }
          description "Ospf network";
        }
    
        typedef Ospf-fast-reroute-tiebreakers-intf {
          type enumeration {
            enum "downstream" {
              value 0;
              description "Downstream";
            }
            enum "line-card-disjoint" {
              value 1;
              description "LC Disjoint";
            }
            enum "lowest-metric" {
              value 2;
              description "Lowest metric";
            }
            enum "node-protect" {
              value 3;
              description "Node protection";
            }
            enum "primary-path" {
              value 4;
              description "Primary path";
            }
            enum "secondary-path" {
              value 5;
              description "Secondar path";
            }
            enum "srlg-disjoint" {
              value 6;
              description "SRLG";
            }
            enum "interface-disjoint" {
              value 7;
              description "Intf Disjoint";
            }
          }
          description
            "Ospf fast reroute tiebreakers intf";
        }
    
        typedef Ospf-authentication {
          type enumeration {
            enum "none" {
              value 0;
              description "No Authentication";
            }
            enum "plain" {
              value 1;
              description
                "Plain Text Authentication";
            }
            enum "md5" {
              value 2;
              description "MD5 Message Digest";
            }
            enum "keychain" {
              value 3;
              description
                "Keychain Authentication";
            }
          }
          description "Ospf authentication";
        }
    
        typedef Ospf-eigrp-route {
          type enumeration {
            enum "internal" {
              value 0;
              description "EIGRP Internal Type";
            }
            enum "external" {
              value 1;
              description "EIGRP External Type";
            }
          }
          description "Ospf eigrp route";
        }
    
        typedef Ospf-sid {
          type enumeration {
            enum "index" {
              value 0;
              description "Index";
            }
            enum "absolute" {
              value 1;
              description "Absolute";
            }
          }
          description "Ospf sid";
        }
    
        typedef Ospf-link-state-metric {
          type enumeration {
            enum "type1" {
              value 1;
              description "Type 1 External";
            }
            enum "type2" {
              value 2;
              description "Type 2 External";
            }
          }
          description "Ospf link state metric";
        }
    
        typedef Ospf-keychain-auth {
          type enumeration {
            enum "none" {
              value 0;
              description
                "No Keychain Authentication";
            }
            enum "keychain" {
              value 3;
              description
                "Keychain Authentication";
            }
          }
          description "Ospf keychain auth";
        }
    
        typedef Ospf-fast-reroute-tiebreakers {
          type enumeration {
            enum "downstream" {
              value 0;
              description "Downstream";
            }
            enum "line-card-disjoint" {
              value 1;
              description "LC Disjoint";
            }
            enum "lowest-metric" {
              value 2;
              description "Lowest metric";
            }
            enum "node-protect" {
              value 3;
              description "Node protection";
            }
            enum "primary-path" {
              value 4;
              description "Primary path";
            }
            enum "secondary-path" {
              value 5;
              description "Secondar path";
            }
            enum "srlg-disjoint" {
              value 6;
              description "SRLG";
            }
            enum "interface-disjoint" {
              value 7;
              description "Intf Disjoint";
            }
          }
          description
            "Ospf fast reroute tiebreakers";
        }
    
        typedef Ospf-uloop-avoidance {
          type enumeration {
            enum "protected" {
              value 1;
              description
                "Protected prefixes only";
            }
            enum "all" {
              value 2;
              description "All prefixes";
            }
            enum "segment-routing" {
              value 3;
              description
                "Microloop avoidance using Segment Routing";
            }
          }
          description "Ospf uloop avoidance";
        }
    
        typedef Ospf-shutdown {
          type enumeration {
            enum "full" {
              value 1;
              description
                "Full graceful shutdown";
            }
            enum "hostmode" {
              value 2;
              description "Enter host only mode";
            }
            enum "onreload" {
              value 3;
              description
                "Full graceful shutdown post reload";
            }
          }
          description "Ospf shutdown";
        }
    
        typedef Ospf-domain-id {
          type enumeration {
            enum "type0005" {
              value 5;
              description "Type 0x0005";
            }
            enum "type0105" {
              value 261;
              description "Type 0x0105";
            }
            enum "type0205" {
              value 517;
              description "Type 0x0205";
            }
            enum "type8005" {
              value 32773;
              description "Type 0x8005";
            }
          }
          description "Ospf domain id";
        }
    
        typedef Ospf-frr-rlfa-tunnel {
          type enumeration {
            enum "none" {
              value 0;
              description "Disabled";
            }
            enum "mpls-ldp" {
              value 1;
              description "MPLS LDP";
            }
          }
          description "Ospf frr rlfa tunnel";
        }
    
        typedef Ospf-log-adj {
          type enumeration {
            enum "brief" {
              value 0;
              description "Limited output";
            }
            enum "detail" {
              value 1;
              description "Verbose output";
            }
            enum "suppress" {
              value 2;
              description "No output";
            }
          }
          description "Ospf log adj";
        }
    
        typedef Ospf-fast-reroute {
          type enumeration {
            enum "none" {
              value 0;
              description "None";
            }
            enum "per-link" {
              value 1;
              description "Per link";
            }
            enum "per-prefix" {
              value 2;
              description "Per prefix";
            }
          }
          description "Ospf fast reroute";
        }
    
        typedef Ospf-penalty {
          type enumeration {
            enum "inc" {
              value 0;
              description "increment";
            }
            enum "mult" {
              value 1;
              description "multiplier";
            }
            enum "val" {
              value 2;
              description "value";
            }
            enum "disable" {
              value 3;
              description "disable";
            }
          }
          description "Ospf penalty";
        }
    
        typedef Ospf-cisco-nsf {
          type enumeration {
            enum "always" {
              value 1;
              description
                "Do not require all neighbors to run NSF";
            }
            enum "require-nsf-neighbors" {
              value 2;
              description
                "Require all neighbors to run NSF";
            }
          }
          description "Ospf cisco nsf";
        }
    
        typedef Ospf-proc-fast-reroute {
          type enumeration {
            enum "none" {
              value 0;
              description "None";
            }
            enum "per-link" {
              value 1;
              description "Per link";
            }
            enum "per-prefix" {
              value 2;
              description "Per prefix";
            }
          }
          description "Ospf proc fast reroute";
        }
    
        typedef Ospf-redist-lsa {
          type enumeration {
            enum "summary" {
              value 3;
              description "Type 3 (summary) LSA";
            }
            enum "external" {
              value 5;
              description
                "Type 5 (external) LSA";
            }
          }
          description "Ospf redist lsa";
        }
    
        typedef Ospf-dist-list-protocol {
          type enumeration {
            enum "all" {
              value 0;
              description "Default";
            }
            enum "connected" {
              value 1;
              description "Connected Routes";
            }
            enum "static" {
              value 3;
              description "Static Routes";
            }
            enum "bgp" {
              value 4;
              description "BGP";
            }
            enum "ospf" {
              value 7;
              description "OSPF";
            }
            enum "dagr" {
              value 9;
              description "DAGR";
            }
          }
          description "Ospf dist list protocol";
        }
    
        typedef Bfd-enable-mode {
          type enumeration {
            enum "disable" {
              value 0;
              description
                "Disable Mode - Prevent inheritance";
            }
            enum "default" {
              value 1;
              description
                "Default Mode - Default BFD behavior";
            }
            enum "strict" {
              value 2;
              description
                "Strict Mode - Hold down adj until BFD sesion up";
            }
          }
          description "Bfd enable mode";
        }
    
        typedef Ospf-flex-algo-metric {
          type enumeration {
            enum "delay" {
              value 1;
              description "Delay";
            }
            enum "te-metric" {
              value 2;
              description "TE Metric";
            }
          }
          description "Ospf flex algo metric";
        }
    
        typedef Ospf-segment-routing-forwarding {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable";
            }
            enum "mpls" {
              value 1;
              description "Mpls";
            }
          }
          description
            "Ospf segment routing forwarding";
        }
    
        typedef Ospf-ietf-nsf {
          type enumeration {
            enum "all" {
              value 3;
              description
                "Use IETF NSF in planned and unplanned cases";
            }
          }
          description "Ospf ietf nsf";
        }
    
        typedef Nsr {
          type enumeration {
            enum "true" {
              value 1;
              description
                "Enable non-stop routing";
            }
            enum "false" {
              value 2;
              description
                "Disable non-stop routing";
            }
          }
          description "Nsr";
        }
    
        typedef Ospf-trace-buf-size {
          type enumeration {
            enum "size0" {
              value 0;
              description "Disable trace";
            }
            enum "size256" {
              value 256;
              description "Buffer size 256";
            }
            enum "size512" {
              value 512;
              description "Buffer size 512";
            }
            enum "size1024" {
              value 1024;
              description "Buffer size 1024";
            }
            enum "size2048" {
              value 2048;
              description "Buffer size 2048";
            }
            enum "size4096" {
              value 4096;
              description "Buffer size 4096";
            }
            enum "size8192" {
              value 8192;
              description "Buffer size 8192";
            }
            enum "size16384" {
              value 16384;
              description "Buffer size 16384";
            }
            enum "size32768" {
              value 32768;
              description "Buffer size 32768";
            }
            enum "size65536" {
              value 65536;
              description "Buffer size 65536";
            }
          }
          description "Ospf trace buf size";
        }
    
        typedef Ospf-redist-protocol {
          type enumeration {
            enum "all" {
              value 0;
              description "Default";
            }
            enum "connected" {
              value 1;
              description "Connected Routes";
            }
            enum "static" {
              value 3;
              description "Static Routes";
            }
            enum "bgp" {
              value 4;
              description "BGP";
            }
            enum "rip" {
              value 5;
              description "RIP";
            }
            enum "isis" {
              value 6;
              description "ISIS";
            }
            enum "ospf" {
              value 7;
              description "OSPF";
            }
            enum "eigrp" {
              value 8;
              description "EIGRP";
            }
            enum "dagr" {
              value 9;
              description "DAGR";
            }
            enum "subscriber" {
              value 10;
              description "Subscriber Routes";
            }
            enum "application" {
              value 11;
              description "Application Routes";
            }
            enum "mobile" {
              value 12;
              description "Mobile Routes";
            }
          }
          description "Ospf redist protocol";
        }
    
        typedef Ospf-route-level {
          type enumeration {
            enum "type1" {
              value 1;
              description "Type 1 only";
            }
            enum "type2" {
              value 2;
              description "Type 2 only";
            }
            enum "type1-and2" {
              value 3;
              description
                "Both Type 1 and Type 2";
            }
          }
          description "Ospf route level";
        }
    
        typedef Ospf-ietf-nsf-support {
          type enumeration {
            enum "never" {
              value 0;
              description
                "Do not perform IETF NSF helper role";
            }
          }
          description "Ospf ietf nsf support";
        }
    
        typedef Ospf-segment-routing {
          type enumeration {
            enum "disable" {
              value 0;
              description "Disable";
            }
            enum "mpls" {
              value 1;
              description "Mpls";
            }
          }
          description "Ospf segment routing";
        }
    
        typedef Ospf-address-family {
          type enumeration {
            enum "ipv4" {
              value 1;
              description "IPv4";
            }
          }
          description "Ospf address family";
        }
    
        typedef Ospf-fast-reroute-priority {
          type enumeration {
            enum "critical" {
              value 0;
              description "Critical";
            }
            enum "high" {
              value 2;
              description "High";
            }
            enum "medium" {
              value 4;
              description "Medium";
            }
            enum "low" {
              value 6;
              description "low";
            }
          }
          description
            "Ospf fast reroute priority";
        }
    
        container ospf {
          status deprecated;
          description
            "This model is deprecated and is replaced by
           Cisco-IOS-XR-um-router-ospf-cfg.yang which will
           provide the compatible functionalities.  OSPF
           configuration data";
          container processes {
            description
              "Process related configuration";
            list process {
              key "process-name";
              description
                "Configuration for a particular OSPF process and
               associated default VRF";
              container snmp {
                description
                  "OSPF SNMP configuration";
                container trap-rate-limit {
                  presence
                    "Indicates a trap-rate-limit node is configured.";
                  description
                    "Per OSPF process SNMP trap rate-limit";
                  leaf window-size {
                    type uint32 {
                      range "2..60";
                    }
                    mandatory true;
                    description
                      "Trap rate limit sliding window size";
                  }
    
                  leaf max-window-traps {
                    type uint32 {
                      range "0..300";
                    }
                    mandatory true;
                    description
                      "Max number of traps to send in window time";
                  }
                }  // container trap-rate-limit
              }  // container snmp
    
              container distribute {
                presence "enable distribute";
                description
                  "Enable distribution of link-state database
                 services";
                leaf throttle {
                  type uint32 {
                    range "1..3600";
                  }
                  units "second";
                  description "Seconds";
                }
    
                leaf instance-id {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description "Instance ID";
                }
              }  // container distribute
    
              container vrfs {
                description
                  "VRF related configuration";
                list vrf {
                  key "vrf-name";
                  description
                    "Configuration for a particular OSPF vrf";
                  container domain-id {
                    description "OSPF Domain ID";
                    container primary-domain-id {
                      description
                        "OSPF Primary domain ID";
                      leaf domain-id-type {
                        type Ospf-domain-id;
                        description
                          "Primary domain ID type";
                      }
    
                      leaf domain-id-name {
                        type string;
                        description
                          "Primary domain ID value";
                      }
                    }  // container primary-domain-id
    
                    container secondary-domain-ids {
                      description
                        "Secondary domain ID Table";
                      list secondary-domain-id {
                        key "domain-id-type domain-id-name";
                        description
                          "OSPF Secondary domain ID";
                        leaf domain-id-type {
                          type Ospf-domain-id;
                          description
                            "Secondary domain ID type";
                        }
    
                        leaf domain-id-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "Secondary domain ID value";
                        }
                      }  // list secondary-domain-id
                    }  // container secondary-domain-ids
                  }  // container domain-id
    
                  leaf snmp-trap-enabled {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable OSPF SNMP trap";
                  }
    
                  leaf domain-tag {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "32 bit Domain tag value";
                  }
    
                  leaf vrf-lite {
                    type empty;
                    description
                      "VRF lite capability";
                  }
    
                  leaf disable-dn-bit-check {
                    type empty;
                    description
                      "Disable DN bit check";
                  }
    
                  leaf vrf-name {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Name for this vrf";
                  }
    
                  container microloop {
                    description
                      "Microloop configuration";
                    container avoidance {
                      description
                        "Microloop avoidance configuration";
                      leaf enable {
                        type Ospf-uloop-avoidance;
                        default "all";
                        description
                          "MicroLoop avoidance feature enable
    configuration";
                      }
    
                      leaf rib-update-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        default "5000";
                        description
                          "Delay to introduce between SPF and RIB update
    in msecs";
                      }
                    }  // container avoidance
                  }  // container microloop
    
                  leaf ignore-mospf {
                    type empty;
                    description
                      "Ignore MOSPF (Type 6) LSAs";
                  }
    
                  container maximum-redistribute-prefix {
                    description
                      "Maximum number of prefixes redistributed into
    OSPF";
                    leaf number-of-prefixes {
                      type uint32 {
                        range "1..4294967295";
                      }
                      description
                        "Maximum number of prefixes redistributed";
                    }
    
                    leaf threshold {
                      type uint32 {
                        range "1..100";
                      }
                      description
                        "Threshold value (%) at which to generate a
    warning msg";
                    }
    
                    leaf warning-only {
                      type boolean;
                      description
                        "Only give warning messsage when limit is
    exceeded";
                    }
                  }  // container maximum-redistribute-prefix
    
                  container default-information {
                    description
                      "Control distribution of default information";
                    leaf always-advertise {
                      type boolean;
                      default "false";
                      description
                        "Always advertise default route";
                    }
    
                    leaf metric {
                      type uint32 {
                        range "1..16777214";
                      }
                      default "1";
                      description "OSPF metric";
                    }
    
                    leaf metric-type {
                      type Ospf-link-state-metric;
                      default "type2";
                      description
                        "OSPF External metric type";
                    }
    
                    leaf route-policy-name {
                      type string;
                      description
                        "Routing policy name";
                    }
                  }  // container default-information
    
                  container af {
                    presence
                      "Indicates a af node is configured.";
                    description
                      "OSPF address family";
                    leaf af-name {
                      type Ospf-address-family;
                      mandatory true;
                      description
                        "Address family";
                    }
    
                    leaf saf-name {
                      type Ospf-sub-address-family;
                      description
                        "Sub-Address family";
                    }
                  }  // container af
    
                  container queue {
                    description
                      "Adjust OSPF input queue sizes and processing
    quantums";
                    leaf dispatch-rate-limited-flush {
                      type uint32 {
                        range "30..3000";
                      }
                      default "150";
                      description
                        "Maximum number of continuous rate-limited LSAs
    processed for FLUSH";
                    }
    
                    leaf limit-high {
                      type uint32 {
                        range "1000..30000";
                      }
                      default "9500";
                      description
                        "Hello events are dropped when incoming event
    queue exceeds this";
                    }
    
                    leaf dispatch-spf-lsa-limit {
                      type uint32 {
                        range "30..3000";
                      }
                      default "150";
                      description
                        "Maximum number of continuous summary or
    external LSAs processed";
                    }
    
                    leaf limit-low {
                      type uint32 {
                        range "1000..30000";
                      }
                      default "8000";
                      description
                        "DBDs/Updates are dropped when incoming event
    queue exceeds this";
                    }
    
                    leaf dispatch-rate-limited {
                      type uint32 {
                        range "30..3000";
                      }
                      default "150";
                      description
                        "Maximum number of continuous rate-limited LSAs
    processed";
                    }
    
                    leaf limit-medium {
                      type uint32 {
                        range "1000..30000";
                      }
                      default "9000";
                      description
                        "LSA ACKs are dropped when incoming event queue
    exceeds this";
                    }
    
                    leaf dispatch-incoming {
                      type uint32 {
                        range "30..3000";
                      }
                      default "300";
                      description
                        "Maximum number of continuous incoming
    packet-related events processed";
                    }
                  }  // container queue
    
                  leaf router-id {
                    type inet:ipv4-address-no-zone;
                    description
                      "Router ID for this OSPF process. Enter an IP
    Address.";
                  }
    
                  leaf type7 {
                    type empty;
                    description
                      "Prefer type7 externals over type5";
                  }
    
                  container max-metric {
                    description
                      "Set maximum metric configuration";
                    container max-metric-on-proc-restart {
                      description
                        "Set maximum metric on-proc-restart
    configuration";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Let BGP decide when to originate router-LSA
    with normal metric";
                      }
    
                      leaf startup-max {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time in seconds to originate router-LSA with
    max-metric";
                      }
    
                      leaf include-stub {
                        type boolean;
                        description
                          "Set maximum metric for stub links in
    router-LSAs";
                      }
    
                      leaf summary-lsa {
                        type boolean;
                        description
                          "Override summary-lsa metric with max-metric
    value";
                      }
    
                      leaf summary-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in summary-LSAs (default
    16711680)";
                      }
    
                      leaf external-lsa {
                        type boolean;
                        description
                          "Override external-lsa metric with max-metric
    value";
                      }
    
                      leaf external-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in external-LSAs (default
    16711680)";
                      }
                    }  // container max-metric-on-proc-restart
    
                    container max-metric-on-startup {
                      description
                        "Set maximum metric on-startup configuration";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Let BGP decide when to originate router-LSA
    with normal metric";
                      }
    
                      leaf startup-max {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time in seconds to originate router-LSA with
    max-metric";
                      }
    
                      leaf include-stub {
                        type boolean;
                        description
                          "Set maximum metric for stub links in
    router-LSAs";
                      }
    
                      leaf summary-lsa {
                        type boolean;
                        description
                          "Override summary-lsa metric with max-metric
    value";
                      }
    
                      leaf summary-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in summary-LSAs (default
    16711680)";
                      }
    
                      leaf external-lsa {
                        type boolean;
                        description
                          "Override external-lsa metric with max-metric
    value";
                      }
    
                      leaf external-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in external-LSAs (default
    16711680)";
                      }
                    }  // container max-metric-on-startup
    
                    container max-metric-on-proc-migration {
                      description
                        "Set maximum metric on-proc-migration
    configuration";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Let BGP decide when to originate router-LSA
    with normal metric";
                      }
    
                      leaf startup-max {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time in seconds to originate router-LSA with
    max-metric";
                      }
    
                      leaf include-stub {
                        type boolean;
                        description
                          "Set maximum metric for stub links in
    router-LSAs";
                      }
    
                      leaf summary-lsa {
                        type boolean;
                        description
                          "Override summary-lsa metric with max-metric
    value";
                      }
    
                      leaf summary-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in summary-LSAs (default
    16711680)";
                      }
    
                      leaf external-lsa {
                        type boolean;
                        description
                          "Override external-lsa metric with max-metric
    value";
                      }
    
                      leaf external-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in external-LSAs (default
    16711680)";
                      }
                    }  // container max-metric-on-proc-migration
    
                    container max-metric-always {
                      description
                        "Set maximum metric always configuration";
                      leaf include-stub {
                        type boolean;
                        default "false";
                        description
                          "Set maximum metric for stub links in
    router-LSAs";
                      }
    
                      leaf summary-lsa {
                        type boolean;
                        description
                          "Override summary-lsa metric with max-metric
    value";
                      }
    
                      leaf summary-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in summary-LSAs (default
    16711680)";
                      }
    
                      leaf external-lsa {
                        type boolean;
                        description
                          "Override external-lsa metric with max-metric
    value";
                      }
    
                      leaf external-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in external-LSAs (default
    16711680)";
                      }
                    }  // container max-metric-always
    
                    container max-metric-on-switchover {
                      description
                        "Set maximum metric on-switchover configuration";
                      leaf wait-for-bgp {
                        type boolean;
                        default "false";
                        description
                          "Let BGP decide when to originate router-LSA
    with normal metric";
                      }
    
                      leaf startup-max {
                        type uint32 {
                          range "5..86400";
                        }
                        units "second";
                        description
                          "Time in seconds to originate router-LSA with
    max-metric";
                      }
    
                      leaf include-stub {
                        type boolean;
                        description
                          "Set maximum metric for stub links in
    router-LSAs";
                      }
    
                      leaf summary-lsa {
                        type boolean;
                        description
                          "Override summary-lsa metric with max-metric
    value";
                      }
    
                      leaf summary-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in summary-LSAs (default
    16711680)";
                      }
    
                      leaf external-lsa {
                        type boolean;
                        description
                          "Override external-lsa metric with max-metric
    value";
                      }
    
                      leaf external-lsa-maximum-metric {
                        type uint32 {
                          range "1..16777215";
                        }
                        description
                          "Overriding metric in external-LSAs (default
    16711680)";
                      }
                    }  // container max-metric-on-switchover
    
                    leaf max-metric-no-abr-off {
                      type empty;
                      description
                        "Block ABR-disable mode entry while in
    max-metric mode";
                    }
                  }  // container max-metric
    
                  leaf snmp-context {
                    type string;
                    description
                      "OSPF SNMP context configuration";
                  }
    
                  leaf maximum-interfaces {
                    type uint32 {
                      range "1..4294967295";
                    }
                    default "1024";
                    description
                      "Max number of interfaces allowed to be
    configured";
                  }
    
                  leaf no-opaque {
                    type empty;
                    description
                      "Disable opaque LSAs";
                  }
    
                  container nsf {
                    description
                      "Non Stop Forwarding configuration";
                    leaf lifetime {
                      type uint32 {
                        range "90..1800";
                      }
                      units "second";
                      default "90";
                      description
                        "Maximum route lifetime following restart in
    seconds";
                    }
    
                    leaf ietf {
                      type Ospf-ietf-nsf;
                      description
                        "Enable IETF Non Stop Forwarding";
                    }
    
                    leaf ietf-support-role {
                      type Ospf-ietf-nsf-support;
                      description
                        "Disable helper support role for IETF Non Stop
    Forwarding";
                    }
    
                    leaf cisco {
                      type Ospf-cisco-nsf;
                      description
                        "Enable Cisco Non Stop Forwarding";
                    }
    
                    leaf interval {
                      type uint32 {
                        range "90..3600";
                      }
                      units "second";
                      default "90";
                      description
                        "Minimum interval between Non Stop Forwarding
    restarts in seconds";
                    }
    
                    leaf flush-delay-time {
                      type uint32 {
                        range "1..3600";
                      }
                      units "second";
                      default "60";
                      description
                        "Maximum time allowed for external route
    learning (seconds)";
                    }
    
                    leaf ietf-strict-lsa-checking {
                      type empty;
                      description
                        "Enable Strict LSA checking of IETF NSF";
                    }
                  }  // container nsf
    
                  container process-scope {
                    description
                      "Process scope configuration";
                    container srgb {
                      presence
                        "Indicates a srgb node is configured.";
                      description
                        "Segment Routing Global Block configuration";
                      leaf lower-bound {
                        type uint32 {
                          range "16000..1048575";
                        }
                        mandatory true;
                        description
                          "The lower bound of the SRGB";
                      }
    
                      leaf upper-bound {
                        type uint32 {
                          range "16000..1048575";
                        }
                        mandatory true;
                        description
                          "The upper bound of the SRGB";
                      }
                    }  // container srgb
    
                    container fast-reroute {
                      description
                        "Fast-reroute configuration";
                      container per-link {
                        description
                          "Fast-reroute per-link configuration";
                        container candidate-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                          list candidate-interface {
                            key "interface-name";
                            description
                              "Candidate backup interface";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list candidate-interface
                        }  // container candidate-interfaces
    
                        leaf fast-reroute-use-candidate-only {
                          type boolean;
                          default "false";
                          description
                            "Use only interfaces on the candidate list as a
    backup path";
                        }
    
                        container exclude-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                          list exclude-interface {
                            key "interface-name";
                            description
                              "Exclude an interface from becoming a backup or
    UCMP";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list exclude-interface
                        }  // container exclude-interfaces
                      }  // container per-link
    
                      container per-prefix {
                        description
                          "Fast-reroute per-prefix configuration";
                        container remote-lfa {
                          description
                            "Remote LFA configuration";
                          leaf tunnel {
                            type Ospf-proc-frr-rlfa-tunnel;
                            description
                              "Enable/Disable remote LFA computation";
                          }
    
                          leaf maximum-cost {
                            type uint32 {
                              range
                                "1..4294967295";
                            }
                            description
                              "Maximum path cost to remote LFA";
                          }
                        }  // container remote-lfa
    
                        leaf topology-independent-lfa {
                          type boolean;
                          description
                            "Topology Independet LFA configuration";
                        }
    
                        container candidate-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                          list candidate-interface {
                            key "interface-name";
                            description
                              "Candidate backup interface";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list candidate-interface
                        }  // container candidate-interfaces
    
                        leaf fast-reroute-use-candidate-only {
                          type boolean;
                          default "false";
                          description
                            "Use only interfaces on the candidate list as a
    backup path";
                        }
    
                        container exclude-interfaces {
                          description
                            "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                          list exclude-interface {
                            key "interface-name";
                            description
                              "Exclude an interface from becoming a backup or
    UCMP";
                            leaf interface-name {
                              type xr:Interface-name;
                              description
                                "Interface";
                            }
                          }  // list exclude-interface
                        }  // container exclude-interfaces
                      }  // container per-prefix
    
                      leaf fast-reroute-enable {
                        type Ospf-proc-fast-reroute;
                        description
                          "Enable/Disable Fast-reroute per-link or
    per-prefix";
                      }
                    }  // container fast-reroute
    
                    container cost-fallback-anamoly-delay-te {
                      description
                        "Interface delay igp-metric fallback cost";
                      leaf penalty-type {
                        type Ospf-penalty;
                        description
                          "Type of penalty";
                      }
    
                      leaf value {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Fallback cost of link";
                      }
                    }  // container cost-fallback-anamoly-delay-te
    
                    container distribute-list {
                      presence
                        "enable distribute-list";
                      description
                        "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                      leaf access-list-name {
                        type string;
                        must
                          "not(../route-policy-name)";
                        description
                          "Access Control List name";
                      }
    
                      leaf route-policy-name {
                        type string;
                        must
                          "not(../access-list-name)";
                        description
                          "Route Policy name";
                      }
                    }  // container distribute-list
    
                    leaf cost {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Interface cost";
                    }
    
                    container bfd {
                      description
                        "BFD configuration";
                      leaf interval {
                        type uint32 {
                          range "3..30000";
                        }
                        units "millisecond";
                        description
                          "Hello interval for BFD sessions created by OSPF";
                      }
    
                      leaf detection-multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detection multiplier for BFD sessions created
    by OSPF";
                      }
    
                      leaf fast-detect-mode {
                        type Bfd-enable-mode;
                        description
                          " use of Bidirectional Forwarding Detection";
                      }
                    }  // container bfd
    
                    leaf weight {
                      type uint32 {
                        range "1..16777214";
                      }
                      description
                        "Interface weight";
                    }
    
                    leaf external-out {
                      type boolean;
                      description
                        "Enable/Disable an OSPF area to advertise
    intra-area prefixes out of this area as external";
                    }
    
                    leaf prefix-suppression-primary {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable prefix suppression for primary
    addresses";
                    }
    
                    leaf mtu-ignore {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable ignoring of MTU in DBD packets";
                    }
    
                    container authentication {
                      description
                        "Authentication";
                      container type {
                        description
                          "Authentication type";
                        leaf authen-type {
                          type Ospf-authentication;
                          description
                            "Authentication type code ";
                        }
    
                        leaf keychain-authen-type {
                          type Ospf-keychain-auth;
                          description
                            "Keychain authentication type";
                        }
    
                        leaf keychain-name {
                          type string;
                          description
                            "Keychain name";
                        }
                      }  // container type
    
                      container message-digest-keys {
                        description
                          "Message digest authentication password (key)
    configurations, first 16 chars used";
                        list message-digest-key {
                          key "key-id";
                          description
                            "Message digest authentication password (key)
    configuration";
                          leaf key-id {
                            type uint32 {
                              range "1..255";
                            }
                            description "Key ID";
                          }
    
                          leaf password {
                            type xr:Proprietary-password;
                            mandatory true;
                            description
                              "Password";
                          }
                        }  // list message-digest-key
                      }  // container message-digest-keys
    
                      leaf key {
                        type xr:Proprietary-password;
                        description
                          "Authentication key configuration";
                      }
                    }  // container authentication
    
                    leaf ldp-sync-igp-shortcuts {
                      type boolean;
                      description
                        "Enable/Disable MPLS LDP sync for igp-shortcuts";
                    }
    
                    leaf ldp-auto-config {
                      type empty;
                      description
                        "Enable MPLS LDP Auto Config";
                    }
    
                    container security {
                      description
                        "Container class for security related
    configuration parameters";
                      container ttl {
                        description
                          "Enabling turns on TTL security";
                        leaf enable {
                          type boolean;
                          description
                            "Enable TTL security";
                        }
    
                        leaf hop-count {
                          type uint32 {
                            range "1..254";
                          }
                          description
                            "Hop count";
                        }
                      }  // container ttl
                    }  // container security
    
                    container delay-norm-interval {
                      presence
                        "Indicates a delay-norm-interval node is configured.";
                      description
                        "Interface delay normalization params";
                      leaf delay-norm-interval {
                        type uint32 {
                          range "1..16777215";
                        }
                        mandatory true;
                        description
                          "Delay Normalization Interval";
                      }
    
                      leaf delay-norm-offset {
                        type uint32 {
                          range "0..16777215";
                        }
                        mandatory true;
                        description
                          "Delay Normalization Offset";
                      }
                    }  // container delay-norm-interval
    
                    leaf summary-in {
                      type boolean;
                      description
                        "Enable/Disable an OSPF area to advertise
    external prefixes into this area as summary";
                    }
    
                    leaf network-type {
                      type Ospf-network;
                      description
                        "Type of attached network";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Interval between HELLO packets in seconds";
                    }
    
                    leaf loopback-stub-network {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable advertising loopback as a stub
    network";
                    }
    
                    leaf prefix-suppression-secondary {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable prefix suppression for secondary
    addresses";
                    }
    
                    leaf demand-circuit {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable OSPF demand circuit";
                    }
    
                    leaf segment-routing {
                      type Ospf-segment-routing;
                      description
                        "segment-routing configuration Applicable only in
    Default VRF";
                    }
    
                    leaf passive {
                      type boolean;
                      default "false";
                      description
                        "When enabled, prevent sending HELLO packets over
    link";
                    }
    
                    leaf transmit-delay {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      default "1";
                      description
                        "Number of seconds to delay transmission of LSAs";
                    }
    
                    leaf packet-size {
                      type uint32 {
                        range "576..10000";
                      }
                      description
                        "Customize size of OSPF packets upto MTU";
                    }
    
                    leaf ldp-sync {
                      type boolean;
                      description
                        "Enable/Disable MPLS LDP sync";
                    }
    
                    leaf database-filter {
                      type boolean;
                      default "false";
                      description
                        "Filter OSPF LSA during synchronization and
    flooding";
                    }
    
                    container dead-interval-minimal {
                      description
                        "Interval after which a neighbor is declared dead";
                      leaf interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Interval size in seconds after which a neighbor
    is declared dead";
                      }
    
                      leaf multiplier {
                        type uint32 {
                          range "3..20";
                        }
                        description
                          "Number of Hellos in one second";
                      }
                    }  // container dead-interval-minimal
    
                    leaf link-down-fast-detect {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable registration for early interface
    down notifications";
                    }
    
                    leaf segment-routing-forwarding {
                      type Ospf-segment-routing-forwarding;
                      description
                        "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                    }
    
                    leaf retransmit-interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      default "5";
                      description
                        "Time in seconds between retransmitting lost link
    state advertisements";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      default "1";
                      description
                        "Router priority for DR and BDR election";
                    }
    
                    container cost-fallback-anamoly-delay-igp {
                      description
                        "Interface delay igp-metric fallback cost";
                      leaf penalty-type {
                        type Ospf-penalty;
                        description
                          "Type of penalty";
                      }
    
                      leaf value {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Fallback cost of link";
                      }
                    }  // container cost-fallback-anamoly-delay-igp
    
                    leaf flood-reduction {
                      type boolean;
                      default "false";
                      description
                        "Enable/Disable OSPF flood reduction";
                    }
    
                    container cost-fallback {
                      description
                        "Interface fallback cost";
                      leaf cost {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Fallback cost of link";
                      }
    
                      leaf threshold {
                        type uint32 {
                          range "1..4294967";
                        }
                        description
                          "Bandwidth threshold";
                      }
                    }  // container cost-fallback
                  }  // container process-scope
    
                  leaf spf-prefix-priority {
                    type string;
                    description
                      "Configure a route-policy for prioritizing RIB
    route install.";
                  }
    
                  container redistribution {
                    description
                      "Redistribute configurations";
                    container redistributes {
                      description
                        "Redistribute information from another routing
    protocol";
                      list redistribute {
                        must
                          "connected-or-static-or-dagr-or-subscriber-or-mobile-or-rip or application-or-isis-or-ospf or bgp or eigrp" {
                          description
                            "Connected-or-Static-or-DAGR-or-Subscriber-or-Mobile-or-RIP or Application-or-ISIS-or-OSPF or BGP or EIGRP must be present.";
                        }
                        key "protocol-name";
                        description
                          "Redistribute information from another routing
    protocol";
                        container connected-or-static-or-dagr-or-subscriber-or-mobile-or-rip {
                          when
                            "../protocol-name = 'connected' or ../protocol-name = 'static' or ../protocol-name = 'dagr' or ../protocol-name = 'subscriber' or ../protocol-name = 'mobile' or ../protocol-name = 'rip'" {
                            description
                              "../ProtocolName = Connected or .
    ./ProtocolName = Static or ../ProtocolName
    = DAGR or ../ProtocolName = Subscriber or .
    ./ProtocolName = Mobile or ../ProtocolName
    = RIP";
                          }
                          presence
                            "Indicates that this node is configured.";
                          description
                            "connected or static or dagr or subscriber or
    mobile or rip";
                          leaf classful {
                            type boolean;
                            default "false";
                            description
                              "Disallow subnetting";
                          }
    
                          leaf default-redistributed-route-metric {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Default metric for routes being
    redistributed into OSPF";
                          }
    
                          leaf tag {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Set tag for routes redistributed into OSPF";
                          }
    
                          leaf metric-type {
                            type Ospf-link-state-metric;
                            description
                              "Set OSPF External metric type";
                          }
    
                          leaf eigrp-route-type {
                            type Ospf-eigrp-route;
                            description
                              "EIGRP route type";
                          }
    
                          leaf isis-levels {
                            type Ospf-route-level;
                            description
                              "Levels of ISIS routes";
                          }
    
                          leaf ospf-internal {
                            type boolean;
                            description
                              "OSPF_Internal route type";
                          }
    
                          leaf ospf-external {
                            type Ospf-route-level;
                            description
                              "OSPF external route types";
                          }
    
                          leaf ospf-nssa-level {
                            type Ospf-route-level;
                            description
                              "OSPF NSSA external route types";
                          }
    
                          leaf route-policy-name {
                            type string;
                            description
                              "Routing policy name";
                          }
    
                          leaf bgp-preserve-med {
                            type boolean;
                            description
                              "Preserve MED of BGP routes";
                          }
    
                          leaf bgp-preserve-default-info {
                            type boolean;
                            description
                              "Preserve Metric and Metric Type of BGP
    Default Route";
                          }
    
                          leaf ospf-redist-lsa-type {
                            type Ospf-redist-lsa;
                            default "external";
                            description
                              "LSA type for redistributed routes";
                          }
    
                          leaf ospfnssa-only {
                            type boolean;
                            description
                              "Only redistribute to NSSA areas";
                          }
    
                          leaf ospf-use-rib-metric {
                            type boolean;
                            description
                              "Use metric from RIB for redistributed routes";
                          }
                        }  // container connected-or-static-or-dagr-or-subscriber-or-mobile-or-rip
    
                        leaf protocol-name {
                          type Ospf-redist-protocol;
                          description
                            "Distribute list protocol type";
                        }
    
                        list application-or-isis-or-ospf {
                          when
                            "../protocol-name = 'application' or ../protocol-name = 'isis' or ../protocol-name = 'ospf'" {
                            description
                              "../ProtocolName = Application or .
    ./ProtocolName = ISIS or ../ProtocolName =
    OSPF";
                          }
                          key "instance-name";
                          description
                            "application or isis or ospf";
                          leaf instance-name {
                            type xr:Cisco-ios-xr-string;
                            description
                              "OSPF or ISIS process name or protocol name:
    bgp, eigrp, connected";
                          }
    
                          leaf classful {
                            type boolean;
                            default "false";
                            description
                              "Disallow subnetting";
                          }
    
                          leaf default-redistributed-route-metric {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Default metric for routes being
    redistributed into OSPF";
                          }
    
                          leaf tag {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Set tag for routes redistributed into OSPF";
                          }
    
                          leaf metric-type {
                            type Ospf-link-state-metric;
                            description
                              "Set OSPF External metric type";
                          }
    
                          leaf eigrp-route-type {
                            type Ospf-eigrp-route;
                            description
                              "EIGRP route type";
                          }
    
                          leaf isis-levels {
                            type Ospf-route-level;
                            description
                              "Levels of ISIS routes";
                          }
    
                          leaf ospf-internal {
                            type boolean;
                            description
                              "OSPF_Internal route type";
                          }
    
                          leaf ospf-external {
                            type Ospf-route-level;
                            description
                              "OSPF external route types";
                          }
    
                          leaf ospf-nssa-level {
                            type Ospf-route-level;
                            description
                              "OSPF NSSA external route types";
                          }
    
                          leaf route-policy-name {
                            type string;
                            description
                              "Routing policy name";
                          }
    
                          leaf bgp-preserve-med {
                            type boolean;
                            description
                              "Preserve MED of BGP routes";
                          }
    
                          leaf bgp-preserve-default-info {
                            type boolean;
                            description
                              "Preserve Metric and Metric Type of BGP
    Default Route";
                          }
    
                          leaf ospf-redist-lsa-type {
                            type Ospf-redist-lsa;
                            default "external";
                            description
                              "LSA type for redistributed routes";
                          }
    
                          leaf ospfnssa-only {
                            type boolean;
                            description
                              "Only redistribute to NSSA areas";
                          }
    
                          leaf ospf-use-rib-metric {
                            type boolean;
                            description
                              "Use metric from RIB for redistributed routes";
                          }
                        }  // list application-or-isis-or-ospf
    
                        list bgp {
                          when
                            "../protocol-name = 'bgp'" {
                            description
                              "../ProtocolName = BGP";
                          }
                          key "instance-name as-xx as-yy";
                          description "bgp";
                          leaf instance-name {
                            type xr:Cisco-ios-xr-string;
                            description
                              "OSPF or ISIS process name or protocol name:
    bgp, eigrp, connected";
                          }
    
                          leaf as-xx {
                            type uint32 {
                              range "0..65535";
                            }
                            description
                              "First half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero
    value if second half is zero.";
                          }
    
                          leaf as-yy {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Second half of BGP AS number in XX.YY format
    . Mandatory if Protocol is BGP or EIGRP and
    must not be specified otherwise. Must be a
    non-zero value if first half is zero.";
                          }
    
                          leaf classful {
                            type boolean;
                            default "false";
                            description
                              "Disallow subnetting";
                          }
    
                          leaf default-redistributed-route-metric {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Default metric for routes being
    redistributed into OSPF";
                          }
    
                          leaf tag {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Set tag for routes redistributed into OSPF";
                          }
    
                          leaf metric-type {
                            type Ospf-link-state-metric;
                            description
                              "Set OSPF External metric type";
                          }
    
                          leaf eigrp-route-type {
                            type Ospf-eigrp-route;
                            description
                              "EIGRP route type";
                          }
    
                          leaf isis-levels {
                            type Ospf-route-level;
                            description
                              "Levels of ISIS routes";
                          }
    
                          leaf ospf-internal {
                            type boolean;
                            description
                              "OSPF_Internal route type";
                          }
    
                          leaf ospf-external {
                            type Ospf-route-level;
                            description
                              "OSPF external route types";
                          }
    
                          leaf ospf-nssa-level {
                            type Ospf-route-level;
                            description
                              "OSPF NSSA external route types";
                          }
    
                          leaf route-policy-name {
                            type string;
                            description
                              "Routing policy name";
                          }
    
                          leaf bgp-preserve-med {
                            type boolean;
                            description
                              "Preserve MED of BGP routes";
                          }
    
                          leaf bgp-preserve-default-info {
                            type boolean;
                            description
                              "Preserve Metric and Metric Type of BGP
    Default Route";
                          }
    
                          leaf ospf-redist-lsa-type {
                            type Ospf-redist-lsa;
                            default "external";
                            description
                              "LSA type for redistributed routes";
                          }
    
                          leaf ospfnssa-only {
                            type boolean;
                            description
                              "Only redistribute to NSSA areas";
                          }
    
                          leaf ospf-use-rib-metric {
                            type boolean;
                            description
                              "Use metric from RIB for redistributed routes";
                          }
                        }  // list bgp
    
                        list eigrp {
                          when
                            "../protocol-name = 'eigrp'" {
                            description
                              "../ProtocolName = EIGRP";
                          }
                          key "instance-name as-xx";
                          description "eigrp";
                          leaf instance-name {
                            type xr:Cisco-ios-xr-string;
                            description
                              "OSPF or ISIS process name or protocol name:
    bgp, eigrp, connected";
                          }
    
                          leaf as-xx {
                            type uint32 {
                              range "0..65535";
                            }
                            description
                              "First half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero
    value if second half is zero.";
                          }
    
                          leaf classful {
                            type boolean;
                            default "false";
                            description
                              "Disallow subnetting";
                          }
    
                          leaf default-redistributed-route-metric {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Default metric for routes being
    redistributed into OSPF";
                          }
    
                          leaf tag {
                            type uint32 {
                              range
                                "0..4294967295";
                            }
                            description
                              "Set tag for routes redistributed into OSPF";
                          }
    
                          leaf metric-type {
                            type Ospf-link-state-metric;
                            description
                              "Set OSPF External metric type";
                          }
    
                          leaf eigrp-route-type {
                            type Ospf-eigrp-route;
                            description
                              "EIGRP route type";
                          }
    
                          leaf isis-levels {
                            type Ospf-route-level;
                            description
                              "Levels of ISIS routes";
                          }
    
                          leaf ospf-internal {
                            type boolean;
                            description
                              "OSPF_Internal route type";
                          }
    
                          leaf ospf-external {
                            type Ospf-route-level;
                            description
                              "OSPF external route types";
                          }
    
                          leaf ospf-nssa-level {
                            type Ospf-route-level;
                            description
                              "OSPF NSSA external route types";
                          }
    
                          leaf route-policy-name {
                            type string;
                            description
                              "Routing policy name";
                          }
    
                          leaf bgp-preserve-med {
                            type boolean;
                            description
                              "Preserve MED of BGP routes";
                          }
    
                          leaf bgp-preserve-default-info {
                            type boolean;
                            description
                              "Preserve Metric and Metric Type of BGP
    Default Route";
                          }
    
                          leaf ospf-redist-lsa-type {
                            type Ospf-redist-lsa;
                            default "external";
                            description
                              "LSA type for redistributed routes";
                          }
    
                          leaf ospfnssa-only {
                            type boolean;
                            description
                              "Only redistribute to NSSA areas";
                          }
    
                          leaf ospf-use-rib-metric {
                            type boolean;
                            description
                              "Use metric from RIB for redistributed routes";
                          }
                        }  // list eigrp
                      }  // list redistribute
                    }  // container redistributes
                  }  // container redistribution
    
                  container adjacency-stagger {
                    description
                      "Staggering OSPF adjacency bring up";
                    leaf disable {
                      type empty;
                      description
                        "Disable OSPF adjacency stagger";
                    }
    
                    leaf initial-nbr {
                      type uint32 {
                        range "1..65535";
                      }
                      default "2";
                      description
                        "Adjacency Stagger: Initial number of neighbors
    to bring up per area";
                    }
    
                    leaf max-nbr {
                      type uint32 {
                        range "1..65535";
                      }
                      default "64";
                      description
                        "Adjacency Stagger: Subsequent simultaneous
    number of neighbors to bring up";
                    }
                  }  // container adjacency-stagger
    
                  container max-lsa {
                    presence
                      "Indicates a max-lsa node is configured.";
                    description
                      "Set max-lsa configuration";
                    leaf max-lsa-limit {
                      type uint32 {
                        range "1..4294967294";
                      }
                      mandatory true;
                      description
                        "Set maximum number of non self-generated LSAs";
                    }
    
                    leaf max-lsa-threshold {
                      type uint32 {
                        range "1..100";
                      }
                      description
                        "Set max-lsa threshold for generating a warning
    message";
                    }
    
                    leaf max-lsa-warning-only {
                      type boolean;
                      description
                        "Only give warning message when limit is
    exceeded";
                    }
    
                    leaf max-lsa-ignore-time {
                      type uint32 {
                        range "1..35791394";
                      }
                      description
                        "Set time during which all adjacencies are
    suppressed";
                    }
    
                    leaf max-lsa-ignore-count {
                      type uint32 {
                        range "1..4294967294";
                      }
                      description
                        "Set count on how many times adjacencies can be
    suppressed";
                    }
    
                    leaf max-lsa-reset-time {
                      type uint32 {
                        range "2..71582788";
                      }
                      units "minute";
                      description
                        "Set number of minutes after which ignore-count
    is reset to zero";
                    }
                  }  // container max-lsa
    
                  container auto-cost {
                    description
                      "Controls automatic cost based on bandwidth";
                    leaf disable {
                      type boolean;
                      default "false";
                      description
                        "Disabling auto costing";
                    }
    
                    leaf bandwidth {
                      type uint32 {
                        range "1..4294967";
                      }
                      units "Mbit/s";
                      default "100";
                      description
                        "The reference bandwidth in terms of Mbits per
    second";
                    }
                  }  // container auto-cost
    
                  container ucmp {
                    description
                      "Unequal Cost Multi-ptah configuration";
                    container enable {
                      description
                        "UCMP feature enable configuration";
                      leaf variance {
                        type uint32 {
                          range "101..10000";
                        }
                        default "200";
                        description
                          "Value of variance";
                      }
    
                      leaf prefix-list-name {
                        type string;
                        description
                          "Name of the Prefix List";
                      }
                    }  // container enable
    
                    leaf delay-interval {
                      type uint32 {
                        range "1..5000";
                      }
                      units "millisecond";
                      default "100";
                      description
                        "Delay in msecs between primary SPF and UCMP
    computation";
                    }
    
                    container exclude-interfaces {
                      description
                        "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                      list exclude-interface {
                        key "interface-name";
                        description
                          "Exclude an interface from becoming a backup or
    UCMP";
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Interface";
                        }
                      }  // list exclude-interface
                    }  // container exclude-interfaces
                  }  // container ucmp
    
                  container apply-weight {
                    presence
                      "Indicates a apply-weight node is configured.";
                    description
                      "Apply weights feature enable configuration";
                    leaf bandwidth {
                      type boolean;
                      mandatory true;
                      description
                        "Use interface bandwidth when calculating
    weights";
                    }
    
                    leaf reference-bandwidth {
                      type uint32 {
                        range "1..4294967";
                      }
                      units "Mbit/s";
                      default "100";
                      description
                        "Reference bandwidth to use for calculation
    (Mbits/sec)";
                    }
    
                    leaf default-weight {
                      type uint32 {
                        range "1..16777214";
                      }
                      default "1";
                      description
                        "Default weight to use when weight not
    configured under interface";
                    }
                  }  // container apply-weight
    
                  leaf maximum-paths {
                    type uint32 {
                      range "1..64";
                    }
                    description
                      "Forward packets over multiple paths (number of
    paths)";
                  }
    
                  container fast-reroute {
                    description
                      "Fast-reroute instance scoped parameters";
                    container per-link {
                      description
                        "Fast-reroute per-link global configuration";
                      leaf priority {
                        type Ospf-fast-reroute-priority;
                        description
                          "Fast-reroute per-link/per-prefix priority-limit
    command";
                      }
                    }  // container per-link
    
                    container per-prefix {
                      description
                        "Fast-reroute per-prefix global configuration";
                      container tiebreakers {
                        description
                          "Fast-reroute tiebreakers configurations";
                        list tiebreaker {
                          key "tiebreaker-type";
                          description
                            "Fast-reroute tiebreakers configuration";
                          leaf tiebreaker-type {
                            type Ospf-fast-reroute-tiebreakers;
                            description
                              "Tiebreaker type";
                          }
    
                          leaf tiebreaker-index {
                            type uint32 {
                              range "0..255";
                            }
                            mandatory true;
                            description
                              "Index value for a tiebreaker, 0 to disable";
                          }
                        }  // list tiebreaker
                      }  // container tiebreakers
    
                      leaf weighted-srlg {
                        type empty;
                        description
                          "select SRLG protection mode (default: local)";
                      }
    
                      leaf load-sharing-disable {
                        type empty;
                        description
                          "Disable load sharing between multiple backups";
                      }
    
                      leaf priority {
                        type Ospf-fast-reroute-priority;
                        description
                          "Fast-reroute per-link/per-prefix priority-limit
    command";
                      }
                    }  // container per-prefix
                  }  // container fast-reroute
    
                  container summary-prefixes {
                    description
                      "Configure IP prefix summary";
                    container summary-prefix-data {
                      description
                        "Data container.";
                      leaf not-advertise {
                        type boolean;
                        default "false";
                        description
                          "Do not advertise when translating OSPF type-7
    LSA";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "32-bit tag value";
                      }
                    }  // container summary-prefix-data
    
                    list prefix-and-netmask {
                      key "prefix netmask";
                      description
                        "keys: prefix, netmask";
                      leaf prefix {
                        type inet:ipv4-address-no-zone;
                        description
                          "IP summary prefix";
                      }
    
                      leaf netmask {
                        type inet:ipv4-address-no-zone;
                        description
                          "Summary netmask";
                      }
    
                      leaf not-advertise {
                        type boolean;
                        default "false";
                        description
                          "Do not advertise when translating OSPF type-7
    LSA";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "32-bit tag value";
                      }
                    }  // list prefix-and-netmask
    
                    list prefix {
                      key "prefix";
                      description "keys: prefix";
                      leaf prefix {
                        type inet:ipv4-address-no-zone;
                        description
                          "IP summary prefix";
                      }
    
                      leaf not-advertise {
                        type boolean;
                        default "false";
                        description
                          "Do not advertise when translating OSPF type-7
    LSA";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "32-bit tag value";
                      }
                    }  // list prefix
    
                    list netmask {
                      key "netmask";
                      description
                        "keys: netmask";
                      leaf netmask {
                        type inet:ipv4-address-no-zone;
                        description
                          "Summary netmask";
                      }
    
                      leaf not-advertise {
                        type boolean;
                        default "false";
                        description
                          "Do not advertise when translating OSPF type-7
    LSA";
                      }
    
                      leaf tag {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "32-bit tag value";
                      }
                    }  // list netmask
                  }  // container summary-prefixes
    
                  leaf adjacency-changes {
                    type Ospf-log-adj;
                    description
                      "Log changes in adjacency state";
                  }
    
                  container outgoing-route-updates {
                    description
                      "Filter outgoing routing updates";
                    list outgoing-route-update {
                      key "protocol-name";
                      description
                        "Filter outgoing routing updates for a
    particular protocol";
                      leaf protocol-name {
                        type Ospf-dist-list-protocol;
                        description
                          "Distribute list protocol type";
                      }
    
                      leaf access-list-name {
                        type string;
                        description
                          "Access Control List name";
                      }
    
                      leaf as-xx {
                        type uint32 {
                          range "0..65535";
                        }
                        description
                          "First half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero value
    if second half is zero.";
                      }
    
                      leaf as-yy {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Second half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero value
    if first half is zero.";
                      }
    
                      leaf ospf-process-name {
                        type string;
                        description
                          "OSPF process name";
                      }
                    }  // list outgoing-route-update
                  }  // container outgoing-route-updates
    
                  leaf paths-per-prefix-distribution {
                    type empty;
                    description
                      "Enable per prefix load balancing through
    distribution of paths";
                  }
    
                  container distance {
                    description
                      "Administrative distance configuration";
                    container ospf-distance {
                      description
                        "OSPF distance configuration";
                      leaf intra-area {
                        type uint32 {
                          range "1..255";
                        }
                        default "110";
                        description
                          "Distance for intra-area routes";
                      }
    
                      leaf inter-area {
                        type uint32 {
                          range "1..255";
                        }
                        default "110";
                        description
                          "Distance for inter-area routes";
                      }
    
                      leaf external-routes {
                        type uint32 {
                          range "1..255";
                        }
                        default "110";
                        description
                          "Distance for external type 5 and type 7 routes";
                      }
                    }  // container ospf-distance
    
                    container ip-distances {
                      description
                        "IP specific administrative distance
    configuration";
                      list ip-distance {
                        key "address wildcard";
                        description
                          "Administrative distance configuration for a
    particular IP address";
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          description
                            "IP source address";
                        }
    
                        leaf wildcard {
                          type inet:ipv4-address-no-zone;
                          description
                            "IP wild card bits -- inverted mask";
                        }
    
                        leaf distance {
                          type uint32 {
                            range "1..255";
                          }
                          default "110";
                          description
                            "Administrative distance";
                        }
    
                        leaf access-list-name {
                          type string;
                          description
                            "Access Control List name";
                        }
                      }  // list ip-distance
                    }  // container ip-distances
    
                    leaf admin-distance {
                      type uint32 {
                        range "1..255";
                      }
                      default "110";
                      description
                        "Define an administrative distance";
                    }
                  }  // container distance
    
                  container area-addresses {
                    description
                      "Area configuration";
                    list area-address {
                      key "address";
                      description
                        "Configuration for a particular area";
                      leaf address {
                        type inet:ipv4-address-no-zone;
                        description
                          "Area ID if in IP address format";
                      }
    
                      container virtual-link-scopes {
                        description
                          "Virtual Link scope configurations";
                        list virtual-link-scope {
                          key "address";
                          description
                            "Virtual Link configuration";
                          leaf address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Router ID of virtual link neighbor";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
                        }  // list virtual-link-scope
                      }  // container virtual-link-scopes
    
                      container sham-link-scopes {
                        description
                          "Sham Link scope configurations";
                        list sham-link-scope {
                          key "source-address destination-address";
                          description
                            "Sham Link configuration";
                          leaf source {
                            type inet:ipv4-address-no-zone;
                            description
                              "Address of the local sham-link endpoint.
    Enter an IP Address";
                          }
    
                          leaf source-address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Address of the local sham-link endpoint";
                          }
    
                          leaf destination-address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Address of the remote sham-link endpoint";
                          }
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
                        }  // list sham-link-scope
                      }  // container sham-link-scopes
    
                      container area-scope {
                        description
                          "Area scope configuration";
                        container cost-fallback-anamoly-delay-te {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-te
    
                        container distribute-list {
                          presence
                            "enable distribute-list";
                          description
                            "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                          leaf access-list-name {
                            type string;
                            must
                              "not(../route-policy-name)";
                            description
                              "Access Control List name";
                          }
    
                          leaf route-policy-name {
                            type string;
                            must
                              "not(../access-list-name)";
                            description
                              "Route Policy name";
                          }
                        }  // container distribute-list
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        container bfd {
                          description
                            "BFD configuration";
                          leaf interval {
                            type uint32 {
                              range "3..30000";
                            }
                            units "millisecond";
                            description
                              "Hello interval for BFD sessions created by OSPF";
                          }
    
                          leaf detection-multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detection multiplier for BFD sessions created
    by OSPF";
                          }
    
                          leaf fast-detect-mode {
                            type Bfd-enable-mode;
                            description
                              " use of Bidirectional Forwarding Detection";
                          }
                        }  // container bfd
    
                        leaf weight {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Interface weight";
                        }
    
                        leaf prefix-suppression-primary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for primary
    addresses";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf ldp-sync-igp-shortcuts {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync for igp-shortcuts";
                        }
    
                        leaf ldp-auto-config {
                          type empty;
                          description
                            "Enable MPLS LDP Auto Config";
                        }
    
                        container security {
                          description
                            "Container class for security related
    configuration parameters";
                          container ttl {
                            description
                              "Enabling turns on TTL security";
                            leaf enable {
                              type boolean;
                              description
                                "Enable TTL security";
                            }
    
                            leaf hop-count {
                              type uint32 {
                                range "1..254";
                              }
                              description
                                "Hop count";
                            }
                          }  // container ttl
                        }  // container security
    
                        container delay-norm-interval {
                          presence
                            "Indicates a delay-norm-interval node is configured.";
                          description
                            "Interface delay normalization params";
                          leaf delay-norm-interval {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Interval";
                          }
    
                          leaf delay-norm-offset {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Offset";
                          }
                        }  // container delay-norm-interval
    
                        leaf network-type {
                          type Ospf-network;
                          description
                            "Type of attached network";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf loopback-stub-network {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable advertising loopback as a stub
    network";
                        }
    
                        leaf prefix-suppression-secondary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for secondary
    addresses";
                        }
    
                        leaf demand-circuit {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF demand circuit";
                        }
    
                        leaf passive {
                          type boolean;
                          default "false";
                          description
                            "When enabled, prevent sending HELLO packets over
    link";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "576..10000";
                          }
                          description
                            "Customize size of OSPF packets upto MTU";
                        }
    
                        leaf ldp-sync {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync";
                        }
    
                        leaf database-filter {
                          type boolean;
                          default "false";
                          description
                            "Filter OSPF LSA during synchronization and
    flooding";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-prefix global configuration";
                            container remote-lfa {
                              description
                                "Remote LFA configuration";
                              leaf tunnel {
                                type Ospf-frr-rlfa-tunnel;
                                description
                                  "Enable/Disable remote LFA computation";
                              }
    
                              leaf maximum-cost {
                                type uint32 {
                                  range
                                    "1..4294967295";
                                }
                                description
                                  "Maximum path cost to remote LFA";
                              }
                            }  // container remote-lfa
    
                            container tiebreakers {
                              description
                                "Fast-reroute tiebreakers configurations";
                              list tiebreaker {
                                key "tiebreaker-type";
                                description
                                  "Fast-reroute tiebreakers configuration";
                                leaf tiebreaker-type {
                                  type Ospf-fast-reroute-tiebreakers-intf;
                                  description
                                    "Tiebreaker type";
                                }
    
                                leaf tiebreaker-index {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  mandatory
                                    true;
                                  description
                                    "Index value for a tiebreaker, 0 to disable";
                                }
                              }  // list tiebreaker
                            }  // container tiebreakers
    
                            leaf topology-independent-lfa {
                              type boolean;
                              description
                                "Topology Independet LFA configuration";
                            }
    
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospf-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
    
                        leaf link-down-fast-detect {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable registration for early interface
    down notifications";
                        }
    
                        leaf segment-routing-forwarding {
                          type Ospf-segment-routing-forwarding;
                          description
                            "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          default "1";
                          description
                            "Router priority for DR and BDR election";
                        }
    
                        container cost-fallback-anamoly-delay-igp {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-igp
    
                        leaf flood-reduction {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF flood reduction";
                        }
    
                        container cost-fallback {
                          description
                            "Interface fallback cost";
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..4294967";
                            }
                            description
                              "Bandwidth threshold";
                          }
                        }  // container cost-fallback
                      }  // container area-scope
    
                      container name-scopes {
                        description
                          "Name scope configurations";
                        list name-scope {
                          key "interface-name";
                          description
                            "Name scope configuration";
                          container flex-algo-prefix-sids {
                            description
                              "Prefix SID";
                            list flex-algo-prefix-sid {
                              key "flexalgo";
                              description
                                "Flex-algo prefix sid configuration";
                              leaf flexalgo {
                                type uint32 {
                                  range
                                    "128..255";
                                }
                                description
                                  "Flexalgo value";
                              }
    
                              leaf sid-value {
                                type uint32 {
                                  range
                                    "0..1048575";
                                }
                                mandatory true;
                                description
                                  "SID value";
                              }
    
                              leaf explicit-null {
                                type boolean;
                                default "false";
                                description
                                  "Force Penultimate Hop To Send
    Explicit-Null Label";
                              }
    
                              leaf type {
                                type Ospf-sid;
                                mandatory true;
                                description
                                  "OSPF SID Type";
                              }
    
                              leaf n-flag-clear {
                                type boolean;
                                default "false";
                                description
                                  "Not a node SID";
                              }
                            }  // list flex-algo-prefix-sid
                          }  // container flex-algo-prefix-sids
    
                          container adjacency-sids {
                            description
                              "Configured Adjacency SID information";
                            list adjacency-sid {
                              key "sid-type sid-value";
                              description
                                "Configured Adjacency SID";
                              leaf sid-type {
                                type Ospf-sid;
                                description
                                  "OSPF Adj SID Type";
                              }
    
                              leaf sid-value {
                                type uint32 {
                                  range
                                    "0..1048575";
                                }
                                description
                                  "SID Value";
                              }
    
                              leaf protected {
                                type boolean;
                                default "false";
                                description
                                  "Adj SID eligible for protection";
                              }
    
                              leaf neighbor-address {
                                type inet:ipv4-address-no-zone;
                                default
                                  "0.0.0.0";
                                description
                                  "Neighbor IP address";
                              }
                            }  // list adjacency-sid
                          }  // container adjacency-sids
    
                          container prefix-sid {
                            presence
                              "Indicates a prefix-sid node is configured.";
                            description
                              "Prefix SID";
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value";
                            }
    
                            leaf explicit-null {
                              type boolean;
                              default "false";
                              description
                                "Force Penultimate Hop To Send Explicit-Null
    Label";
                            }
    
                            leaf type {
                              type Ospf-sid;
                              mandatory true;
                              description
                                "OSPF SID Type";
                            }
    
                            leaf n-flag-clear {
                              type boolean;
                              default "false";
                              description
                                "Not a node SID";
                            }
                          }  // container prefix-sid
    
                          container interface-affinities {
                            description
                              "Configure Flex-algo interface affinity";
                            list interface-affinity {
                              key "attribute";
                              description
                                "Configure interface affinity attribute";
                              leaf attribute {
                                type xr:Cisco-ios-xr-string;
                                description
                                  "attribute name";
                              }
                            }  // list interface-affinity
                          }  // container interface-affinities
    
                          container prefix-sid-strict {
                            presence
                              "Indicates a prefix-sid-strict node is configured.";
                            description
                              "Strict Prefix SID";
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value";
                            }
    
                            leaf explicit-null {
                              type boolean;
                              default "false";
                              description
                                "Force Penultimate Hop To Send Explicit-Null
    Label";
                            }
    
                            leaf type {
                              type Ospf-sid;
                              mandatory true;
                              description
                                "OSPF SID Type";
                            }
    
                            leaf n-flag-clear {
                              type boolean;
                              default "false";
                              description
                                "Not a node SID";
                            }
                          }  // container prefix-sid-strict
    
                          leaf advertise-prefix-policy {
                            type string;
                            description
                              "Route policy name for Conditionally
    advertising this prefix";
                          }
    
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Name of Interface to configure";
                          }
    
                          container cost-fallback-anamoly-delay-te {
                            description
                              "Interface delay igp-metric fallback cost";
                            leaf penalty-type {
                              type Ospf-penalty;
                              description
                                "Type of penalty";
                            }
    
                            leaf value {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
                          }  // container cost-fallback-anamoly-delay-te
    
                          container distribute-list {
                            presence
                              "enable distribute-list";
                            description
                              "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                            leaf access-list-name {
                              type string;
                              must
                                "not(../route-policy-name)";
                              description
                                "Access Control List name";
                            }
    
                            leaf route-policy-name {
                              type string;
                              must
                                "not(../access-list-name)";
                              description
                                "Route Policy name";
                            }
                          }  // container distribute-list
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          container bfd {
                            description
                              "BFD configuration";
                            leaf interval {
                              type uint32 {
                                range "3..30000";
                              }
                              units
                                "millisecond";
                              description
                                "Hello interval for BFD sessions created by OSPF";
                            }
    
                            leaf detection-multiplier {
                              type uint32 {
                                range "2..50";
                              }
                              description
                                "Detection multiplier for BFD sessions created
    by OSPF";
                            }
    
                            leaf fast-detect-mode {
                              type Bfd-enable-mode;
                              description
                                " use of Bidirectional Forwarding Detection";
                            }
                          }  // container bfd
    
                          leaf weight {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Interface weight";
                          }
    
                          leaf prefix-suppression-primary {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable prefix suppression for primary
    addresses";
                          }
    
                          leaf mtu-ignore {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable ignoring of MTU in DBD packets";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          leaf ldp-sync-igp-shortcuts {
                            type boolean;
                            description
                              "Enable/Disable MPLS LDP sync for igp-shortcuts";
                          }
    
                          leaf ldp-auto-config {
                            type empty;
                            description
                              "Enable MPLS LDP Auto Config";
                          }
    
                          container security {
                            description
                              "Container class for security related
    configuration parameters";
                            container ttl {
                              description
                                "Enabling turns on TTL security";
                              leaf enable {
                                type boolean;
                                description
                                  "Enable TTL security";
                              }
    
                              leaf hop-count {
                                type uint32 {
                                  range "1..254";
                                }
                                description
                                  "Hop count";
                              }
                            }  // container ttl
                          }  // container security
    
                          container delay-norm-interval {
                            presence
                              "Indicates a delay-norm-interval node is configured.";
                            description
                              "Interface delay normalization params";
                            leaf delay-norm-interval {
                              type uint32 {
                                range
                                  "1..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Interval";
                            }
    
                            leaf delay-norm-offset {
                              type uint32 {
                                range
                                  "0..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Offset";
                            }
                          }  // container delay-norm-interval
    
                          container neighbors {
                            description
                              "Neighbor router configuration information";
                            list neighbor {
                              key "neighbor-address";
                              description
                                "Router configuration information for a
    particular neighbor";
                              leaf neighbor-address {
                                type inet:ipv4-address-no-zone;
                                description
                                  "Neighbor IP address";
                              }
    
                              leaf priority {
                                type uint32 {
                                  range "0..255";
                                }
                                default "0";
                                description
                                  "OSPF priority of non-broadcast neighbor";
                              }
    
                              leaf poll-interval {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                units "second";
                                default "40";
                                description
                                  "OSPF dead router poll-interval in seconds";
                              }
    
                              leaf cost {
                                type uint32 {
                                  range
                                    "1..65535";
                                }
                                default "1";
                                description
                                  "OSPF cost for point-to-multipoint neighbor";
                              }
    
                              leaf database-filter {
                                type boolean;
                                default "false";
                                description
                                  "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                              }
                            }  // list neighbor
                          }  // container neighbors
    
                          leaf network-type {
                            type Ospf-network;
                            description
                              "Type of attached network";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf loopback-stub-network {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable advertising loopback as a stub
    network";
                          }
    
                          leaf prefix-suppression-secondary {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable prefix suppression for secondary
    addresses";
                          }
    
                          leaf demand-circuit {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable OSPF demand circuit";
                          }
    
                          leaf passive {
                            type boolean;
                            default "false";
                            description
                              "When enabled, prevent sending HELLO packets over
    link";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          leaf packet-size {
                            type uint32 {
                              range "576..10000";
                            }
                            description
                              "Customize size of OSPF packets upto MTU";
                          }
    
                          leaf ldp-sync {
                            type boolean;
                            description
                              "Enable/Disable MPLS LDP sync";
                          }
    
                          leaf database-filter {
                            type boolean;
                            default "false";
                            description
                              "Filter OSPF LSA during synchronization and
    flooding";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          container fast-reroute {
                            description
                              "Fast-reroute configuration";
                            container per-link {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-link
    
                            container per-prefix {
                              description
                                "Fast-reroute per-prefix global configuration";
                              container remote-lfa {
                                description
                                  "Remote LFA configuration";
                                leaf tunnel {
                                  type Ospf-frr-rlfa-tunnel;
                                  description
                                    "Enable/Disable remote LFA computation";
                                }
    
                                leaf maximum-cost {
                                  type uint32 {
                                    range
                                      "1..4294967295";
                                  }
                                  description
                                    "Maximum path cost to remote LFA";
                                }
                              }  // container remote-lfa
    
                              container tiebreakers {
                                description
                                  "Fast-reroute tiebreakers configurations";
                                list tiebreaker {
                                  key "tiebreaker-type";
                                  description
                                    "Fast-reroute tiebreakers configuration";
                                  leaf tiebreaker-type {
                                    type Ospf-fast-reroute-tiebreakers-intf;
                                    description
                                      "Tiebreaker type";
                                  }
    
                                  leaf tiebreaker-index {
                                    type uint32 {
                                      range
                                        "0..255";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Index value for a tiebreaker, 0 to disable";
                                  }
                                }  // list tiebreaker
                              }  // container tiebreakers
    
                              leaf topology-independent-lfa {
                                type boolean;
                                description
                                  "Topology Independet LFA configuration";
                              }
    
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-prefix
    
                            leaf fast-reroute-enable {
                              type Ospf-fast-reroute;
                              description
                                "Enable/Disable Fast-reroute per-link or
    per-prefix";
                            }
                          }  // container fast-reroute
    
                          leaf link-down-fast-detect {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable registration for early interface
    down notifications";
                          }
    
                          leaf segment-routing-forwarding {
                            type Ospf-segment-routing-forwarding;
                            description
                              "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
    
                          leaf priority {
                            type uint32 {
                              range "0..255";
                            }
                            default "1";
                            description
                              "Router priority for DR and BDR election";
                          }
    
                          container cost-fallback-anamoly-delay-igp {
                            description
                              "Interface delay igp-metric fallback cost";
                            leaf penalty-type {
                              type Ospf-penalty;
                              description
                                "Type of penalty";
                            }
    
                            leaf value {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
                          }  // container cost-fallback-anamoly-delay-igp
    
                          leaf flood-reduction {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable OSPF flood reduction";
                          }
    
                          container cost-fallback {
                            description
                              "Interface fallback cost";
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
    
                            leaf threshold {
                              type uint32 {
                                range
                                  "1..4294967";
                              }
                              description
                                "Bandwidth threshold";
                            }
                          }  // container cost-fallback
                        }  // list name-scope
                      }  // container name-scopes
    
                      container multi-area-interface-scopes {
                        description
                          "Multi Area Interface scope configurations";
                        list multi-area-interface-scope {
                          key "interface-name";
                          description
                            "Multi Area Interface configuration";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Name of Multi Area Interface to configure";
                          }
    
                          container distribute-list {
                            presence
                              "enable distribute-list";
                            description
                              "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                            leaf access-list-name {
                              type string;
                              must
                                "not(../route-policy-name)";
                              description
                                "Access Control List name";
                            }
    
                            leaf route-policy-name {
                              type string;
                              must
                                "not(../access-list-name)";
                              description
                                "Route Policy name";
                            }
                          }  // container distribute-list
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          leaf mtu-ignore {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable ignoring of MTU in DBD packets";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          container delay-norm-interval {
                            presence
                              "Indicates a delay-norm-interval node is configured.";
                            description
                              "Interface delay normalization params";
                            leaf delay-norm-interval {
                              type uint32 {
                                range
                                  "1..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Interval";
                            }
    
                            leaf delay-norm-offset {
                              type uint32 {
                                range
                                  "0..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Offset";
                            }
                          }  // container delay-norm-interval
    
                          container neighbors {
                            description
                              "Neighbor router configuration information";
                            list neighbor {
                              key "neighbor-address";
                              description
                                "Router configuration information for a
    particular neighbor";
                              leaf neighbor-address {
                                type inet:ipv4-address-no-zone;
                                description
                                  "Neighbor IP address";
                              }
    
                              leaf priority {
                                type uint32 {
                                  range "0..255";
                                }
                                default "0";
                                description
                                  "OSPF priority of non-broadcast neighbor";
                              }
    
                              leaf poll-interval {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                units "second";
                                default "40";
                                description
                                  "OSPF dead router poll-interval in seconds";
                              }
    
                              leaf cost {
                                type uint32 {
                                  range
                                    "1..65535";
                                }
                                default "1";
                                description
                                  "OSPF cost for point-to-multipoint neighbor";
                              }
    
                              leaf database-filter {
                                type boolean;
                                default "false";
                                description
                                  "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                              }
                            }  // list neighbor
                          }  // container neighbors
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf passive {
                            type boolean;
                            default "false";
                            description
                              "When enabled, prevent sending HELLO packets over
    link";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          leaf packet-size {
                            type uint32 {
                              range "576..10000";
                            }
                            description
                              "Customize size of OSPF packets upto MTU";
                          }
    
                          leaf database-filter {
                            type boolean;
                            default "false";
                            description
                              "Filter OSPF LSA during synchronization and
    flooding";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          container fast-reroute {
                            description
                              "Fast-reroute configuration";
                            container per-link {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-link
    
                            container per-prefix {
                              description
                                "Fast-reroute per-prefix global configuration";
                              container remote-lfa {
                                description
                                  "Remote LFA configuration";
                                leaf tunnel {
                                  type Ospf-frr-rlfa-tunnel;
                                  description
                                    "Enable/Disable remote LFA computation";
                                }
    
                                leaf maximum-cost {
                                  type uint32 {
                                    range
                                      "1..4294967295";
                                  }
                                  description
                                    "Maximum path cost to remote LFA";
                                }
                              }  // container remote-lfa
    
                              container tiebreakers {
                                description
                                  "Fast-reroute tiebreakers configurations";
                                list tiebreaker {
                                  key "tiebreaker-type";
                                  description
                                    "Fast-reroute tiebreakers configuration";
                                  leaf tiebreaker-type {
                                    type Ospf-fast-reroute-tiebreakers-intf;
                                    description
                                      "Tiebreaker type";
                                  }
    
                                  leaf tiebreaker-index {
                                    type uint32 {
                                      range
                                        "0..255";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Index value for a tiebreaker, 0 to disable";
                                  }
                                }  // list tiebreaker
                              }  // container tiebreakers
    
                              leaf topology-independent-lfa {
                                type boolean;
                                description
                                  "Topology Independet LFA configuration";
                              }
    
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-prefix
    
                            leaf fast-reroute-enable {
                              type Ospf-fast-reroute;
                              description
                                "Enable/Disable Fast-reroute per-link or
    per-prefix";
                            }
                          }  // container fast-reroute
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
    
                          container cost-fallback {
                            description
                              "Interface fallback cost";
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
    
                            leaf threshold {
                              type uint32 {
                                range
                                  "1..4294967";
                              }
                              description
                                "Bandwidth threshold";
                            }
                          }  // container cost-fallback
                        }  // list multi-area-interface-scope
                      }  // container multi-area-interface-scopes
    
                      container area-ranges {
                        description
                          "Summarize routes matching address/mask (border
    routers only)";
                        list area-range {
                          key "address netmask";
                          description
                            "Ordering index";
                          leaf not-advertise {
                            type boolean;
                            description
                              "Do not advertise this range";
                          }
    
                          leaf address {
                            type inet:ipv4-address-no-zone;
                            description
                              "IP address to match";
                          }
    
                          leaf netmask {
                            type inet:ipv4-address-no-zone;
                            description
                              "IP netmask for address";
                          }
                        }  // list area-range
                      }  // container area-ranges
    
                      container nssa {
                        description
                          "Specify area as a NSSA area";
                        leaf no-redistribution {
                          type boolean;
                          default "false";
                          description
                            "No redistribution into this NSSA area";
                        }
    
                        leaf default-info-originate {
                          type boolean;
                          default "false";
                          description
                            "Originate Type 7 default into NSSA area";
                        }
    
                        leaf no-summary {
                          type boolean;
                          default "false";
                          description
                            "Do not send summary LSA into NSSA";
                        }
    
                        leaf nssa-def-metric {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "OSPF default metric";
                        }
    
                        leaf metric-type {
                          type Ospf-link-state-metric;
                          default "type2";
                          description
                            "OSPF External metric type";
                        }
                      }  // container nssa
    
                      leaf route-policy-in {
                        type string;
                        description
                          "Configure a route policy for inbound type-3
    lsa filtering";
                      }
    
                      leaf default-cost {
                        type uint32 {
                          range "1..16777215";
                        }
                        default "1";
                        description
                          "Set the summary default-cost of a NSSA/stub
    area";
                      }
    
                      leaf route-policy-out {
                        type string;
                        description
                          "Configure a route policy for outbound type-3
    lsa filtering";
                      }
    
                      leaf stub {
                        type boolean;
                        description
                          "Specify the area as a stub area (send summary
    LSA stub area)";
                      }
    
                      leaf type7-translate-always {
                        type boolean;
                        description
                          "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                      }
    
                      leaf mpls-traffic-eng {
                        type empty;
                        description
                          "Configure an OSPF area to run MPLS Traffic
    Engineering";
                      }
    
                      leaf external-out {
                        type boolean;
                        description
                          "Enable/Disable an OSPF area to advertise
    intra-area prefixes out of this area as external";
                      }
    
                      leaf summary-in {
                        type boolean;
                        description
                          "Enable/Disable an OSPF area to advertise
    external prefixes into this area as summary";
                      }
    
                      leaf segment-routing {
                        type Ospf-segment-routing;
                        description
                          "segment-routing configuration Applicable only in
    Default VRF";
                      }
                    }  // list area-address
    
                    list area-area-id {
                      key "area-id";
                      description
                        "Configuration for a particular area";
                      leaf area-id {
                        type uint32 {
                          range "0..4294967295";
                        }
                        description
                          "Area ID if in integer format";
                      }
    
                      container virtual-link-scopes {
                        description
                          "Virtual Link scope configurations";
                        list virtual-link-scope {
                          key "address";
                          description
                            "Virtual Link configuration";
                          leaf address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Router ID of virtual link neighbor";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
                        }  // list virtual-link-scope
                      }  // container virtual-link-scopes
    
                      container sham-link-scopes {
                        description
                          "Sham Link scope configurations";
                        list sham-link-scope {
                          key "source-address destination-address";
                          description
                            "Sham Link configuration";
                          leaf source {
                            type inet:ipv4-address-no-zone;
                            description
                              "Address of the local sham-link endpoint.
    Enter an IP Address";
                          }
    
                          leaf source-address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Address of the local sham-link endpoint";
                          }
    
                          leaf destination-address {
                            type inet:ipv4-address-no-zone;
                            description
                              "Address of the remote sham-link endpoint";
                          }
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
                        }  // list sham-link-scope
                      }  // container sham-link-scopes
    
                      container area-scope {
                        description
                          "Area scope configuration";
                        container cost-fallback-anamoly-delay-te {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-te
    
                        container distribute-list {
                          presence
                            "enable distribute-list";
                          description
                            "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                          leaf access-list-name {
                            type string;
                            must
                              "not(../route-policy-name)";
                            description
                              "Access Control List name";
                          }
    
                          leaf route-policy-name {
                            type string;
                            must
                              "not(../access-list-name)";
                            description
                              "Route Policy name";
                          }
                        }  // container distribute-list
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        container bfd {
                          description
                            "BFD configuration";
                          leaf interval {
                            type uint32 {
                              range "3..30000";
                            }
                            units "millisecond";
                            description
                              "Hello interval for BFD sessions created by OSPF";
                          }
    
                          leaf detection-multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detection multiplier for BFD sessions created
    by OSPF";
                          }
    
                          leaf fast-detect-mode {
                            type Bfd-enable-mode;
                            description
                              " use of Bidirectional Forwarding Detection";
                          }
                        }  // container bfd
    
                        leaf weight {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Interface weight";
                        }
    
                        leaf prefix-suppression-primary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for primary
    addresses";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf ldp-sync-igp-shortcuts {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync for igp-shortcuts";
                        }
    
                        leaf ldp-auto-config {
                          type empty;
                          description
                            "Enable MPLS LDP Auto Config";
                        }
    
                        container security {
                          description
                            "Container class for security related
    configuration parameters";
                          container ttl {
                            description
                              "Enabling turns on TTL security";
                            leaf enable {
                              type boolean;
                              description
                                "Enable TTL security";
                            }
    
                            leaf hop-count {
                              type uint32 {
                                range "1..254";
                              }
                              description
                                "Hop count";
                            }
                          }  // container ttl
                        }  // container security
    
                        container delay-norm-interval {
                          presence
                            "Indicates a delay-norm-interval node is configured.";
                          description
                            "Interface delay normalization params";
                          leaf delay-norm-interval {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Interval";
                          }
    
                          leaf delay-norm-offset {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Offset";
                          }
                        }  // container delay-norm-interval
    
                        leaf network-type {
                          type Ospf-network;
                          description
                            "Type of attached network";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf loopback-stub-network {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable advertising loopback as a stub
    network";
                        }
    
                        leaf prefix-suppression-secondary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for secondary
    addresses";
                        }
    
                        leaf demand-circuit {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF demand circuit";
                        }
    
                        leaf passive {
                          type boolean;
                          default "false";
                          description
                            "When enabled, prevent sending HELLO packets over
    link";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "576..10000";
                          }
                          description
                            "Customize size of OSPF packets upto MTU";
                        }
    
                        leaf ldp-sync {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync";
                        }
    
                        leaf database-filter {
                          type boolean;
                          default "false";
                          description
                            "Filter OSPF LSA during synchronization and
    flooding";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-prefix global configuration";
                            container remote-lfa {
                              description
                                "Remote LFA configuration";
                              leaf tunnel {
                                type Ospf-frr-rlfa-tunnel;
                                description
                                  "Enable/Disable remote LFA computation";
                              }
    
                              leaf maximum-cost {
                                type uint32 {
                                  range
                                    "1..4294967295";
                                }
                                description
                                  "Maximum path cost to remote LFA";
                              }
                            }  // container remote-lfa
    
                            container tiebreakers {
                              description
                                "Fast-reroute tiebreakers configurations";
                              list tiebreaker {
                                key "tiebreaker-type";
                                description
                                  "Fast-reroute tiebreakers configuration";
                                leaf tiebreaker-type {
                                  type Ospf-fast-reroute-tiebreakers-intf;
                                  description
                                    "Tiebreaker type";
                                }
    
                                leaf tiebreaker-index {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  mandatory
                                    true;
                                  description
                                    "Index value for a tiebreaker, 0 to disable";
                                }
                              }  // list tiebreaker
                            }  // container tiebreakers
    
                            leaf topology-independent-lfa {
                              type boolean;
                              description
                                "Topology Independet LFA configuration";
                            }
    
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospf-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
    
                        leaf link-down-fast-detect {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable registration for early interface
    down notifications";
                        }
    
                        leaf segment-routing-forwarding {
                          type Ospf-segment-routing-forwarding;
                          description
                            "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          default "1";
                          description
                            "Router priority for DR and BDR election";
                        }
    
                        container cost-fallback-anamoly-delay-igp {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-igp
    
                        leaf flood-reduction {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF flood reduction";
                        }
    
                        container cost-fallback {
                          description
                            "Interface fallback cost";
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..4294967";
                            }
                            description
                              "Bandwidth threshold";
                          }
                        }  // container cost-fallback
                      }  // container area-scope
    
                      container name-scopes {
                        description
                          "Name scope configurations";
                        list name-scope {
                          key "interface-name";
                          description
                            "Name scope configuration";
                          container flex-algo-prefix-sids {
                            description
                              "Prefix SID";
                            list flex-algo-prefix-sid {
                              key "flexalgo";
                              description
                                "Flex-algo prefix sid configuration";
                              leaf flexalgo {
                                type uint32 {
                                  range
                                    "128..255";
                                }
                                description
                                  "Flexalgo value";
                              }
    
                              leaf sid-value {
                                type uint32 {
                                  range
                                    "0..1048575";
                                }
                                mandatory true;
                                description
                                  "SID value";
                              }
    
                              leaf explicit-null {
                                type boolean;
                                default "false";
                                description
                                  "Force Penultimate Hop To Send
    Explicit-Null Label";
                              }
    
                              leaf type {
                                type Ospf-sid;
                                mandatory true;
                                description
                                  "OSPF SID Type";
                              }
    
                              leaf n-flag-clear {
                                type boolean;
                                default "false";
                                description
                                  "Not a node SID";
                              }
                            }  // list flex-algo-prefix-sid
                          }  // container flex-algo-prefix-sids
    
                          container adjacency-sids {
                            description
                              "Configured Adjacency SID information";
                            list adjacency-sid {
                              key "sid-type sid-value";
                              description
                                "Configured Adjacency SID";
                              leaf sid-type {
                                type Ospf-sid;
                                description
                                  "OSPF Adj SID Type";
                              }
    
                              leaf sid-value {
                                type uint32 {
                                  range
                                    "0..1048575";
                                }
                                description
                                  "SID Value";
                              }
    
                              leaf protected {
                                type boolean;
                                default "false";
                                description
                                  "Adj SID eligible for protection";
                              }
    
                              leaf neighbor-address {
                                type inet:ipv4-address-no-zone;
                                default
                                  "0.0.0.0";
                                description
                                  "Neighbor IP address";
                              }
                            }  // list adjacency-sid
                          }  // container adjacency-sids
    
                          container prefix-sid {
                            presence
                              "Indicates a prefix-sid node is configured.";
                            description
                              "Prefix SID";
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value";
                            }
    
                            leaf explicit-null {
                              type boolean;
                              default "false";
                              description
                                "Force Penultimate Hop To Send Explicit-Null
    Label";
                            }
    
                            leaf type {
                              type Ospf-sid;
                              mandatory true;
                              description
                                "OSPF SID Type";
                            }
    
                            leaf n-flag-clear {
                              type boolean;
                              default "false";
                              description
                                "Not a node SID";
                            }
                          }  // container prefix-sid
    
                          container interface-affinities {
                            description
                              "Configure Flex-algo interface affinity";
                            list interface-affinity {
                              key "attribute";
                              description
                                "Configure interface affinity attribute";
                              leaf attribute {
                                type xr:Cisco-ios-xr-string;
                                description
                                  "attribute name";
                              }
                            }  // list interface-affinity
                          }  // container interface-affinities
    
                          container prefix-sid-strict {
                            presence
                              "Indicates a prefix-sid-strict node is configured.";
                            description
                              "Strict Prefix SID";
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value";
                            }
    
                            leaf explicit-null {
                              type boolean;
                              default "false";
                              description
                                "Force Penultimate Hop To Send Explicit-Null
    Label";
                            }
    
                            leaf type {
                              type Ospf-sid;
                              mandatory true;
                              description
                                "OSPF SID Type";
                            }
    
                            leaf n-flag-clear {
                              type boolean;
                              default "false";
                              description
                                "Not a node SID";
                            }
                          }  // container prefix-sid-strict
    
                          leaf advertise-prefix-policy {
                            type string;
                            description
                              "Route policy name for Conditionally
    advertising this prefix";
                          }
    
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Name of Interface to configure";
                          }
    
                          container cost-fallback-anamoly-delay-te {
                            description
                              "Interface delay igp-metric fallback cost";
                            leaf penalty-type {
                              type Ospf-penalty;
                              description
                                "Type of penalty";
                            }
    
                            leaf value {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
                          }  // container cost-fallback-anamoly-delay-te
    
                          container distribute-list {
                            presence
                              "enable distribute-list";
                            description
                              "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                            leaf access-list-name {
                              type string;
                              must
                                "not(../route-policy-name)";
                              description
                                "Access Control List name";
                            }
    
                            leaf route-policy-name {
                              type string;
                              must
                                "not(../access-list-name)";
                              description
                                "Route Policy name";
                            }
                          }  // container distribute-list
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          container bfd {
                            description
                              "BFD configuration";
                            leaf interval {
                              type uint32 {
                                range "3..30000";
                              }
                              units
                                "millisecond";
                              description
                                "Hello interval for BFD sessions created by OSPF";
                            }
    
                            leaf detection-multiplier {
                              type uint32 {
                                range "2..50";
                              }
                              description
                                "Detection multiplier for BFD sessions created
    by OSPF";
                            }
    
                            leaf fast-detect-mode {
                              type Bfd-enable-mode;
                              description
                                " use of Bidirectional Forwarding Detection";
                            }
                          }  // container bfd
    
                          leaf weight {
                            type uint32 {
                              range
                                "1..16777214";
                            }
                            description
                              "Interface weight";
                          }
    
                          leaf prefix-suppression-primary {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable prefix suppression for primary
    addresses";
                          }
    
                          leaf mtu-ignore {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable ignoring of MTU in DBD packets";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          leaf ldp-sync-igp-shortcuts {
                            type boolean;
                            description
                              "Enable/Disable MPLS LDP sync for igp-shortcuts";
                          }
    
                          leaf ldp-auto-config {
                            type empty;
                            description
                              "Enable MPLS LDP Auto Config";
                          }
    
                          container security {
                            description
                              "Container class for security related
    configuration parameters";
                            container ttl {
                              description
                                "Enabling turns on TTL security";
                              leaf enable {
                                type boolean;
                                description
                                  "Enable TTL security";
                              }
    
                              leaf hop-count {
                                type uint32 {
                                  range "1..254";
                                }
                                description
                                  "Hop count";
                              }
                            }  // container ttl
                          }  // container security
    
                          container delay-norm-interval {
                            presence
                              "Indicates a delay-norm-interval node is configured.";
                            description
                              "Interface delay normalization params";
                            leaf delay-norm-interval {
                              type uint32 {
                                range
                                  "1..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Interval";
                            }
    
                            leaf delay-norm-offset {
                              type uint32 {
                                range
                                  "0..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Offset";
                            }
                          }  // container delay-norm-interval
    
                          container neighbors {
                            description
                              "Neighbor router configuration information";
                            list neighbor {
                              key "neighbor-address";
                              description
                                "Router configuration information for a
    particular neighbor";
                              leaf neighbor-address {
                                type inet:ipv4-address-no-zone;
                                description
                                  "Neighbor IP address";
                              }
    
                              leaf priority {
                                type uint32 {
                                  range "0..255";
                                }
                                default "0";
                                description
                                  "OSPF priority of non-broadcast neighbor";
                              }
    
                              leaf poll-interval {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                units "second";
                                default "40";
                                description
                                  "OSPF dead router poll-interval in seconds";
                              }
    
                              leaf cost {
                                type uint32 {
                                  range
                                    "1..65535";
                                }
                                default "1";
                                description
                                  "OSPF cost for point-to-multipoint neighbor";
                              }
    
                              leaf database-filter {
                                type boolean;
                                default "false";
                                description
                                  "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                              }
                            }  // list neighbor
                          }  // container neighbors
    
                          leaf network-type {
                            type Ospf-network;
                            description
                              "Type of attached network";
                          }
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf loopback-stub-network {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable advertising loopback as a stub
    network";
                          }
    
                          leaf prefix-suppression-secondary {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable prefix suppression for secondary
    addresses";
                          }
    
                          leaf demand-circuit {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable OSPF demand circuit";
                          }
    
                          leaf passive {
                            type boolean;
                            default "false";
                            description
                              "When enabled, prevent sending HELLO packets over
    link";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          leaf packet-size {
                            type uint32 {
                              range "576..10000";
                            }
                            description
                              "Customize size of OSPF packets upto MTU";
                          }
    
                          leaf ldp-sync {
                            type boolean;
                            description
                              "Enable/Disable MPLS LDP sync";
                          }
    
                          leaf database-filter {
                            type boolean;
                            default "false";
                            description
                              "Filter OSPF LSA during synchronization and
    flooding";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          container fast-reroute {
                            description
                              "Fast-reroute configuration";
                            container per-link {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-link
    
                            container per-prefix {
                              description
                                "Fast-reroute per-prefix global configuration";
                              container remote-lfa {
                                description
                                  "Remote LFA configuration";
                                leaf tunnel {
                                  type Ospf-frr-rlfa-tunnel;
                                  description
                                    "Enable/Disable remote LFA computation";
                                }
    
                                leaf maximum-cost {
                                  type uint32 {
                                    range
                                      "1..4294967295";
                                  }
                                  description
                                    "Maximum path cost to remote LFA";
                                }
                              }  // container remote-lfa
    
                              container tiebreakers {
                                description
                                  "Fast-reroute tiebreakers configurations";
                                list tiebreaker {
                                  key "tiebreaker-type";
                                  description
                                    "Fast-reroute tiebreakers configuration";
                                  leaf tiebreaker-type {
                                    type Ospf-fast-reroute-tiebreakers-intf;
                                    description
                                      "Tiebreaker type";
                                  }
    
                                  leaf tiebreaker-index {
                                    type uint32 {
                                      range
                                        "0..255";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Index value for a tiebreaker, 0 to disable";
                                  }
                                }  // list tiebreaker
                              }  // container tiebreakers
    
                              leaf topology-independent-lfa {
                                type boolean;
                                description
                                  "Topology Independet LFA configuration";
                              }
    
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-prefix
    
                            leaf fast-reroute-enable {
                              type Ospf-fast-reroute;
                              description
                                "Enable/Disable Fast-reroute per-link or
    per-prefix";
                            }
                          }  // container fast-reroute
    
                          leaf link-down-fast-detect {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable registration for early interface
    down notifications";
                          }
    
                          leaf segment-routing-forwarding {
                            type Ospf-segment-routing-forwarding;
                            description
                              "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                          }
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
    
                          leaf priority {
                            type uint32 {
                              range "0..255";
                            }
                            default "1";
                            description
                              "Router priority for DR and BDR election";
                          }
    
                          container cost-fallback-anamoly-delay-igp {
                            description
                              "Interface delay igp-metric fallback cost";
                            leaf penalty-type {
                              type Ospf-penalty;
                              description
                                "Type of penalty";
                            }
    
                            leaf value {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
                          }  // container cost-fallback-anamoly-delay-igp
    
                          leaf flood-reduction {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable OSPF flood reduction";
                          }
    
                          container cost-fallback {
                            description
                              "Interface fallback cost";
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
    
                            leaf threshold {
                              type uint32 {
                                range
                                  "1..4294967";
                              }
                              description
                                "Bandwidth threshold";
                            }
                          }  // container cost-fallback
                        }  // list name-scope
                      }  // container name-scopes
    
                      container multi-area-interface-scopes {
                        description
                          "Multi Area Interface scope configurations";
                        list multi-area-interface-scope {
                          key "interface-name";
                          description
                            "Multi Area Interface configuration";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Name of Multi Area Interface to configure";
                          }
    
                          container distribute-list {
                            presence
                              "enable distribute-list";
                            description
                              "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                            leaf access-list-name {
                              type string;
                              must
                                "not(../route-policy-name)";
                              description
                                "Access Control List name";
                            }
    
                            leaf route-policy-name {
                              type string;
                              must
                                "not(../access-list-name)";
                              description
                                "Route Policy name";
                            }
                          }  // container distribute-list
    
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Interface cost";
                          }
    
                          leaf mtu-ignore {
                            type boolean;
                            default "false";
                            description
                              "Enable/Disable ignoring of MTU in DBD packets";
                          }
    
                          container authentication {
                            description
                              "Authentication";
                            container type {
                              description
                                "Authentication type";
                              leaf authen-type {
                                type Ospf-authentication;
                                description
                                  "Authentication type code ";
                              }
    
                              leaf keychain-authen-type {
                                type Ospf-keychain-auth;
                                description
                                  "Keychain authentication type";
                              }
    
                              leaf keychain-name {
                                type string;
                                description
                                  "Keychain name";
                              }
                            }  // container type
    
                            container message-digest-keys {
                              description
                                "Message digest authentication password (key)
    configurations, first 16 chars used";
                              list message-digest-key {
                                key "key-id";
                                description
                                  "Message digest authentication password (key)
    configuration";
                                leaf key-id {
                                  type uint32 {
                                    range
                                      "1..255";
                                  }
                                  description
                                    "Key ID";
                                }
    
                                leaf password {
                                  type xr:Proprietary-password;
                                  mandatory
                                    true;
                                  description
                                    "Password";
                                }
                              }  // list message-digest-key
                            }  // container message-digest-keys
    
                            leaf key {
                              type xr:Proprietary-password;
                              description
                                "Authentication key configuration";
                            }
                          }  // container authentication
    
                          container delay-norm-interval {
                            presence
                              "Indicates a delay-norm-interval node is configured.";
                            description
                              "Interface delay normalization params";
                            leaf delay-norm-interval {
                              type uint32 {
                                range
                                  "1..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Interval";
                            }
    
                            leaf delay-norm-offset {
                              type uint32 {
                                range
                                  "0..16777215";
                              }
                              mandatory true;
                              description
                                "Delay Normalization Offset";
                            }
                          }  // container delay-norm-interval
    
                          container neighbors {
                            description
                              "Neighbor router configuration information";
                            list neighbor {
                              key "neighbor-address";
                              description
                                "Router configuration information for a
    particular neighbor";
                              leaf neighbor-address {
                                type inet:ipv4-address-no-zone;
                                description
                                  "Neighbor IP address";
                              }
    
                              leaf priority {
                                type uint32 {
                                  range "0..255";
                                }
                                default "0";
                                description
                                  "OSPF priority of non-broadcast neighbor";
                              }
    
                              leaf poll-interval {
                                type uint32 {
                                  range
                                    "0..65535";
                                }
                                units "second";
                                default "40";
                                description
                                  "OSPF dead router poll-interval in seconds";
                              }
    
                              leaf cost {
                                type uint32 {
                                  range
                                    "1..65535";
                                }
                                default "1";
                                description
                                  "OSPF cost for point-to-multipoint neighbor";
                              }
    
                              leaf database-filter {
                                type boolean;
                                default "false";
                                description
                                  "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                              }
                            }  // list neighbor
                          }  // container neighbors
    
                          leaf hello-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval between HELLO packets in seconds";
                          }
    
                          leaf passive {
                            type boolean;
                            default "false";
                            description
                              "When enabled, prevent sending HELLO packets over
    link";
                          }
    
                          leaf transmit-delay {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "1";
                            description
                              "Number of seconds to delay transmission of LSAs";
                          }
    
                          leaf packet-size {
                            type uint32 {
                              range "576..10000";
                            }
                            description
                              "Customize size of OSPF packets upto MTU";
                          }
    
                          leaf database-filter {
                            type boolean;
                            default "false";
                            description
                              "Filter OSPF LSA during synchronization and
    flooding";
                          }
    
                          container dead-interval-minimal {
                            description
                              "Interval after which a neighbor is declared dead";
                            leaf interval {
                              type uint32 {
                                range "1..65535";
                              }
                              units "second";
                              description
                                "Interval size in seconds after which a neighbor
    is declared dead";
                            }
    
                            leaf multiplier {
                              type uint32 {
                                range "3..20";
                              }
                              description
                                "Number of Hellos in one second";
                            }
                          }  // container dead-interval-minimal
    
                          container fast-reroute {
                            description
                              "Fast-reroute configuration";
                            container per-link {
                              description
                                "Fast-reroute per-link configuration";
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-link
    
                            container per-prefix {
                              description
                                "Fast-reroute per-prefix global configuration";
                              container remote-lfa {
                                description
                                  "Remote LFA configuration";
                                leaf tunnel {
                                  type Ospf-frr-rlfa-tunnel;
                                  description
                                    "Enable/Disable remote LFA computation";
                                }
    
                                leaf maximum-cost {
                                  type uint32 {
                                    range
                                      "1..4294967295";
                                  }
                                  description
                                    "Maximum path cost to remote LFA";
                                }
                              }  // container remote-lfa
    
                              container tiebreakers {
                                description
                                  "Fast-reroute tiebreakers configurations";
                                list tiebreaker {
                                  key "tiebreaker-type";
                                  description
                                    "Fast-reroute tiebreakers configuration";
                                  leaf tiebreaker-type {
                                    type Ospf-fast-reroute-tiebreakers-intf;
                                    description
                                      "Tiebreaker type";
                                  }
    
                                  leaf tiebreaker-index {
                                    type uint32 {
                                      range
                                        "0..255";
                                    }
                                    mandatory
                                      true;
                                    description
                                      "Index value for a tiebreaker, 0 to disable";
                                  }
                                }  // list tiebreaker
                              }  // container tiebreakers
    
                              leaf topology-independent-lfa {
                                type boolean;
                                description
                                  "Topology Independet LFA configuration";
                              }
    
                              leaf fast-reroute-use-candidate-only {
                                type boolean;
                                default "false";
                                description
                                  "Use only interfaces on the candidate list as a
    backup path";
                              }
    
                              container candidate-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                                list candidate-interface {
                                  key "interface-name";
                                  description
                                    "Candidate backup interface";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list candidate-interface
                              }  // container candidate-interfaces
    
                              container exclude-interfaces {
                                description
                                  "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                                list exclude-interface {
                                  key "interface-name";
                                  description
                                    "Exclude an interface from becoming a backup or
    UCMP";
                                  leaf interface-name {
                                    type xr:Interface-name;
                                    description
                                      "Interface";
                                  }
                                }  // list exclude-interface
                              }  // container exclude-interfaces
                            }  // container per-prefix
    
                            leaf fast-reroute-enable {
                              type Ospf-fast-reroute;
                              description
                                "Enable/Disable Fast-reroute per-link or
    per-prefix";
                            }
                          }  // container fast-reroute
    
                          leaf retransmit-interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            default "5";
                            description
                              "Time in seconds between retransmitting lost link
    state advertisements";
                          }
    
                          container cost-fallback {
                            description
                              "Interface fallback cost";
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              description
                                "Fallback cost of link";
                            }
    
                            leaf threshold {
                              type uint32 {
                                range
                                  "1..4294967";
                              }
                              description
                                "Bandwidth threshold";
                            }
                          }  // container cost-fallback
                        }  // list multi-area-interface-scope
                      }  // container multi-area-interface-scopes
    
                      container area-ranges {
                        description
                          "Summarize routes matching address/mask (border
    routers only)";
                        list area-range {
                          key "address netmask";
                          description
                            "Ordering index";
                          leaf not-advertise {
                            type boolean;
                            description
                              "Do not advertise this range";
                          }
    
                          leaf address {
                            type inet:ipv4-address-no-zone;
                            description
                              "IP address to match";
                          }
    
                          leaf netmask {
                            type inet:ipv4-address-no-zone;
                            description
                              "IP netmask for address";
                          }
                        }  // list area-range
                      }  // container area-ranges
    
                      container nssa {
                        description
                          "Specify area as a NSSA area";
                        leaf no-redistribution {
                          type boolean;
                          default "false";
                          description
                            "No redistribution into this NSSA area";
                        }
    
                        leaf default-info-originate {
                          type boolean;
                          default "false";
                          description
                            "Originate Type 7 default into NSSA area";
                        }
    
                        leaf no-summary {
                          type boolean;
                          default "false";
                          description
                            "Do not send summary LSA into NSSA";
                        }
    
                        leaf nssa-def-metric {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "OSPF default metric";
                        }
    
                        leaf metric-type {
                          type Ospf-link-state-metric;
                          default "type2";
                          description
                            "OSPF External metric type";
                        }
                      }  // container nssa
    
                      leaf route-policy-in {
                        type string;
                        description
                          "Configure a route policy for inbound type-3
    lsa filtering";
                      }
    
                      leaf default-cost {
                        type uint32 {
                          range "1..16777215";
                        }
                        default "1";
                        description
                          "Set the summary default-cost of a NSSA/stub
    area";
                      }
    
                      leaf route-policy-out {
                        type string;
                        description
                          "Configure a route policy for outbound type-3
    lsa filtering";
                      }
    
                      leaf stub {
                        type boolean;
                        description
                          "Specify the area as a stub area (send summary
    LSA stub area)";
                      }
    
                      leaf type7-translate-always {
                        type boolean;
                        description
                          "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                      }
    
                      leaf mpls-traffic-eng {
                        type empty;
                        description
                          "Configure an OSPF area to run MPLS Traffic
    Engineering";
                      }
    
                      leaf external-out {
                        type boolean;
                        description
                          "Enable/Disable an OSPF area to advertise
    intra-area prefixes out of this area as external";
                      }
    
                      leaf summary-in {
                        type boolean;
                        description
                          "Enable/Disable an OSPF area to advertise
    external prefixes into this area as summary";
                      }
    
                      leaf segment-routing {
                        type Ospf-segment-routing;
                        description
                          "segment-routing configuration Applicable only in
    Default VRF";
                      }
                    }  // list area-area-id
                  }  // container area-addresses
    
                  container timers {
                    description
                      "Adjust routing timers";
                    container spf-timer {
                      description
                        "OSPF SPF timers (in milliseconds)";
                      leaf initial-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        default "5000";
                        description
                          "Number of milliseconds before first SPF run";
                      }
    
                      leaf backoff-increment {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        default "10000";
                        description
                          "Number of milliseconds delay between
    successive SPF runs";
                      }
    
                      leaf max-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        default "10000";
                        description
                          "Max number of milliseconds between consecutive
    SPF calculations";
                      }
                    }  // container spf-timer
    
                    container lsa-generation-timer {
                      description
                        "OSPF LSA timers (in milliseconds)";
                      leaf initial-delay {
                        type uint32 {
                          range "0..600000";
                        }
                        units "millisecond";
                        default "50";
                        description
                          "Number of milliseconds before generating first
    LSA";
                      }
    
                      leaf backoff-increment {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        default "200";
                        description
                          "Number of milliseconds delay between
    successive LSA builds";
                      }
    
                      leaf max-delay {
                        type uint32 {
                          range "1..600000";
                        }
                        units "millisecond";
                        default "200";
                        description
                          "Max number of milliseconds between consecutive
    LSA builds ";
                      }
                    }  // container lsa-generation-timer
    
                    leaf lsa-pacing-flood {
                      type uint32 {
                        range "5..100";
                      }
                      units "second";
                      description
                        "Seconds between group of LSAs being refreshed
    or maxaged";
                    }
    
                    leaf fast-reroute-timer {
                      type uint32 {
                        range "50..600000";
                      }
                      units "millisecond";
                      default "500";
                      description
                        "Number of ms between end of SPF and start of
    IPFRR computation";
                    }
    
                    leaf lsa-refresh {
                      type uint32 {
                        range "1800..2700";
                      }
                      units "second";
                      default "1800";
                      description
                        "How often self-originated LSAs should be
    refreshed";
                    }
    
                    leaf lsa-group-pacing {
                      type uint32 {
                        range "10..1800";
                      }
                      units "second";
                      default "240";
                      description
                        "LSA group pacing timer (Seconds between group
    of LSAs being refreshed or maxaged)";
                    }
    
                    leaf lsa-min-arrival {
                      type uint32 {
                        range "0..600000";
                      }
                      units "millisecond";
                      default "100";
                      description
                        "MinLSArrival timer (minimum interval in
    milliseconds between accepting the same LSA)";
                    }
                  }  // container timers
    
                  leaf default-metric {
                    type uint32 {
                      range "1..16777214";
                    }
                    default "1";
                    description
                      "Set default metric of redistributed routes";
                  }
                }  // list vrf
              }  // container vrfs
    
              container trace-bufs {
                description
                  "Configuration to change size of trace buffer";
                list trace-buf {
                  key "trace-buf-name";
                  description
                    "Changes the size of the specified trace
                   buffer";
                  leaf trace-buf-name {
                    type xr:Cisco-ios-xr-string;
                    description
                      "Name for this trace buffer";
                  }
    
                  leaf bufsize {
                    type Ospf-trace-buf-size;
                    mandatory true;
                    description "Buffer size";
                  }
                }  // list trace-buf
              }  // container trace-bufs
    
              container graceful-shutdown-timers {
                description
                  "Adjust routing timers";
                leaf graceful-shutdown-retain-routes {
                  type uint32 {
                    range "0..90";
                  }
                  units "second";
                  default "5";
                  description
                    "Time to keep OSPF routes active after
                   graceful shutdown(in seconds)";
                }
    
                leaf graceful-shutdown-initial-delay {
                  type uint32 {
                    range "0..90";
                  }
                  units "second";
                  default "5";
                  description
                    "Number of seconds to delay before beginning
                   graceful shutdown";
                }
              }  // container graceful-shutdown-timers
    
              container default-vrf {
                description
                  "Default VRF related configuration";
                container monitor-convergence {
                  description
                    "Enable convergence monitoring";
                  leaf enable {
                    type empty;
                    description
                      "Enable convergence monitoring";
                  }
    
                  leaf prefix-list {
                    type string;
                    description
                      "Enable the monitoring of individual prefixes
                     (prefix list name)";
                  }
    
                  leaf track-ip-frr {
                    type empty;
                    description
                      "Enable the Tracking of IP-Frr Convergence";
                  }
    
                  leaf track-external-routes {
                    type empty;
                    description
                      "Enable the monitoring of External routes";
                  }
    
                  leaf track-summary-routes {
                    type empty;
                    description
                      "Enable the monitoring of Summary routes";
                  }
                }  // container monitor-convergence
    
                container flex-algos {
                  description
                    "Configured Flex-algo";
                  list flex-algo {
                    key "flexalgo";
                    description
                      "Flex-algo  configuration";
                    container affinity {
                      description
                        "Configuration for a particular Flex-algo
                       affinity";
                      container include-all-attributes {
                        description
                          "Configuration for Flex-algo affinity
                         include all";
                        list include-all-attribute {
                          key "attribute";
                          description
                            "Configure include-all attribute";
                          leaf attribute {
                            type xr:Cisco-ios-xr-string;
                            description
                              "attribute name";
                          }
                        }  // list include-all-attribute
                      }  // container include-all-attributes
    
                      container include-any-attributes {
                        description
                          "Configuration for Flex-algo affinity
                         include any";
                        list include-any-attribute {
                          key "attribute";
                          description
                            "Configure include-any attribute";
                          leaf attribute {
                            type xr:Cisco-ios-xr-string;
                            description
                              "attribute name";
                          }
                        }  // list include-any-attribute
                      }  // container include-any-attributes
    
                      container exclude-any-attributes {
                        description
                          "Configuration for Flex-algo affinity
                         exclude any";
                        list exclude-any-attribute {
                          key "attribute";
                          description
                            "Configure exclude-any attribute";
                          leaf attribute {
                            type xr:Cisco-ios-xr-string;
                            description
                              "attribute name";
                          }
                        }  // list exclude-any-attribute
                      }  // container exclude-any-attributes
                    }  // container affinity
    
                    leaf fast-reroute-disable {
                      type empty;
                      description
                        "Configuration to disable LFA in Flex Algo";
                    }
    
                    leaf metric-type {
                      type Ospf-flex-algo-metric;
                      description
                        "Configuration for a particular flexalgo
                       metric type";
                    }
    
                    leaf microloop-avoidance-disable {
                      type empty;
                      description
                        "Configuration to disable uloop in Flex Algo";
                    }
    
                    leaf priority {
                      type uint32 {
                        range "0..255";
                      }
                      default "128";
                      description
                        "Configuration for a particular flexalgo
                       priority";
                    }
    
                    leaf advertise-definition {
                      type empty;
                      description
                        "Configuration to Advertise Flex Algo in
                       RI-LSA";
                    }
    
                    leaf flexalgo {
                      type uint32 {
                        range "128..255";
                      }
                      description
                        "Flexalgo value";
                    }
                  }  // list flex-algo
                }  // container flex-algos
    
                container wsrlg {
                  description
                    "Weighted SRLG configurations";
                  container names {
                    description
                      "Weighted SRLG name table";
                    list name {
                      key "srlg-name";
                      description
                        "Weighted SRLG name configuration";
                      leaf admin-weight {
                        type uint32 {
                          range "0..65535";
                        }
                        description
                          "Admin-weight for given SRLG value";
                      }
    
                      leaf srlg-name {
                        type xr:Cisco-ios-xr-string;
                        description
                          "Name for this SRLG";
                      }
                    }  // list name
                  }  // container names
    
                  leaf admin-weight {
                    type uint32 {
                      range "0..65535";
                    }
                    default "1000";
                    description
                      "Default admin-weight for all SRLG values";
                  }
                }  // container wsrlg
    
                container segment-routing {
                  description
                    "Segment Routing instance scoped parameters";
                  container sr-prefer {
                    description
                      "Prefer segment routing labels over LDP
                     labels";
                    leaf enable {
                      type boolean;
                      description
                        "Enable SR labels to be preferred over LDP
                       labels";
                    }
    
                    leaf prefix-list-name {
                      type string;
                      description
                        "Name of the Prefix List";
                    }
                  }  // container sr-prefer
    
                  leaf prefix-sid-map-receive-disable {
                    type empty;
                    description
                      "Disable prefix-SID mapping client";
                  }
    
                  leaf prefix-sid-map-advertise-local {
                    type empty;
                    description
                      "Enable advertisement of local SRMS entries";
                  }
    
                  leaf strict-spf-disable {
                    type empty;
                    description
                      "Strict-SPF support and SID advertisement";
                  }
                }  // container segment-routing
    
                container affinity-maps {
                  description
                    "Configure Flex-algo affinity map";
                  list affinity-map {
                    key "attribute";
                    description
                      "Configure affinity map attribute bit
                     position";
                    leaf attribute {
                      type xr:Cisco-ios-xr-string;
                      description
                        "attribute name";
                    }
    
                    leaf bitposition {
                      type uint32 {
                        range "0..255";
                      }
                      mandatory true;
                      description
                        "attribute bit position";
                    }
                  }  // list affinity-map
                }  // container affinity-maps
    
                container mpls {
                  description
                    "Configure MPLS routing protocol parameters";
                  container mpls-router-id {
                    description
                      "MPLS-TE stable loopback address for this
                     OSPF process.Enter either as IP Address or
                     Interface name, but not both. Unused field
                     must be nil";
                    leaf address {
                      type inet:ipv4-address-no-zone;
                      description
                        "MPLS-TE stable IP address for this OSPF
                       process";
                    }
    
                    leaf interface-name {
                      type xr:Interface-name;
                      description
                        "MPLS-TE stable loopback interface for this
                       OSPF process";
                    }
                  }  // container mpls-router-id
    
                  leaf igp-intact {
                    type empty;
                    description
                      "Enable igp-intact mode in OSPF";
                  }
    
                  leaf ldp-sync-update {
                    type empty;
                    description
                      "Enable LDP sync induced metric propagation";
                  }
    
                  leaf multicast-intact {
                    type empty;
                    description
                      "Enable multicast-intact mode in OSPF";
                  }
    
                  leaf autoroute-exclude {
                    type string;
                    description
                      "Exclude IP destinations from using TE
                     tunnels";
                  }
                }  // container mpls
    
                container microloop {
                  description
                    "Microloop configuration";
                  container avoidance {
                    description
                      "Microloop avoidance configuration";
                    leaf enable {
                      type Ospf-uloop-avoidance;
                      default "all";
                      description
                        "MicroLoop avoidance feature enable
    configuration";
                    }
    
                    leaf rib-update-delay {
                      type uint32 {
                        range "1..600000";
                      }
                      units "millisecond";
                      default "5000";
                      description
                        "Delay to introduce between SPF and RIB update
    in msecs";
                    }
                  }  // container avoidance
                }  // container microloop
    
                leaf ignore-mospf {
                  type empty;
                  description
                    "Ignore MOSPF (Type 6) LSAs";
                }
    
                container maximum-redistribute-prefix {
                  description
                    "Maximum number of prefixes redistributed into
    OSPF";
                  leaf number-of-prefixes {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "Maximum number of prefixes redistributed";
                  }
    
                  leaf threshold {
                    type uint32 {
                      range "1..100";
                    }
                    description
                      "Threshold value (%) at which to generate a
    warning msg";
                  }
    
                  leaf warning-only {
                    type boolean;
                    description
                      "Only give warning messsage when limit is
    exceeded";
                  }
                }  // container maximum-redistribute-prefix
    
                container default-information {
                  description
                    "Control distribution of default information";
                  leaf always-advertise {
                    type boolean;
                    default "false";
                    description
                      "Always advertise default route";
                  }
    
                  leaf metric {
                    type uint32 {
                      range "1..16777214";
                    }
                    default "1";
                    description "OSPF metric";
                  }
    
                  leaf metric-type {
                    type Ospf-link-state-metric;
                    default "type2";
                    description
                      "OSPF External metric type";
                  }
    
                  leaf route-policy-name {
                    type string;
                    description
                      "Routing policy name";
                  }
                }  // container default-information
    
                container af {
                  presence
                    "Indicates a af node is configured.";
                  description
                    "OSPF address family";
                  leaf af-name {
                    type Ospf-address-family;
                    mandatory true;
                    description "Address family";
                  }
    
                  leaf saf-name {
                    type Ospf-sub-address-family;
                    description
                      "Sub-Address family";
                  }
                }  // container af
    
                container queue {
                  description
                    "Adjust OSPF input queue sizes and processing
    quantums";
                  leaf dispatch-rate-limited-flush {
                    type uint32 {
                      range "30..3000";
                    }
                    default "150";
                    description
                      "Maximum number of continuous rate-limited LSAs
    processed for FLUSH";
                  }
    
                  leaf limit-high {
                    type uint32 {
                      range "1000..30000";
                    }
                    default "9500";
                    description
                      "Hello events are dropped when incoming event
    queue exceeds this";
                  }
    
                  leaf dispatch-spf-lsa-limit {
                    type uint32 {
                      range "30..3000";
                    }
                    default "150";
                    description
                      "Maximum number of continuous summary or
    external LSAs processed";
                  }
    
                  leaf limit-low {
                    type uint32 {
                      range "1000..30000";
                    }
                    default "8000";
                    description
                      "DBDs/Updates are dropped when incoming event
    queue exceeds this";
                  }
    
                  leaf dispatch-rate-limited {
                    type uint32 {
                      range "30..3000";
                    }
                    default "150";
                    description
                      "Maximum number of continuous rate-limited LSAs
    processed";
                  }
    
                  leaf limit-medium {
                    type uint32 {
                      range "1000..30000";
                    }
                    default "9000";
                    description
                      "LSA ACKs are dropped when incoming event queue
    exceeds this";
                  }
    
                  leaf dispatch-incoming {
                    type uint32 {
                      range "30..3000";
                    }
                    default "300";
                    description
                      "Maximum number of continuous incoming
    packet-related events processed";
                  }
                }  // container queue
    
                leaf router-id {
                  type inet:ipv4-address-no-zone;
                  description
                    "Router ID for this OSPF process. Enter an IP
    Address.";
                }
    
                leaf type7 {
                  type empty;
                  description
                    "Prefer type7 externals over type5";
                }
    
                container max-metric {
                  description
                    "Set maximum metric configuration";
                  container max-metric-on-proc-restart {
                    description
                      "Set maximum metric on-proc-restart
    configuration";
                    leaf wait-for-bgp {
                      type boolean;
                      default "false";
                      description
                        "Let BGP decide when to originate router-LSA
    with normal metric";
                    }
    
                    leaf startup-max {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time in seconds to originate router-LSA with
    max-metric";
                    }
    
                    leaf include-stub {
                      type boolean;
                      description
                        "Set maximum metric for stub links in
    router-LSAs";
                    }
    
                    leaf summary-lsa {
                      type boolean;
                      description
                        "Override summary-lsa metric with max-metric
    value";
                    }
    
                    leaf summary-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in summary-LSAs (default
    16711680)";
                    }
    
                    leaf external-lsa {
                      type boolean;
                      description
                        "Override external-lsa metric with max-metric
    value";
                    }
    
                    leaf external-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in external-LSAs (default
    16711680)";
                    }
                  }  // container max-metric-on-proc-restart
    
                  container max-metric-on-startup {
                    description
                      "Set maximum metric on-startup configuration";
                    leaf wait-for-bgp {
                      type boolean;
                      default "false";
                      description
                        "Let BGP decide when to originate router-LSA
    with normal metric";
                    }
    
                    leaf startup-max {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time in seconds to originate router-LSA with
    max-metric";
                    }
    
                    leaf include-stub {
                      type boolean;
                      description
                        "Set maximum metric for stub links in
    router-LSAs";
                    }
    
                    leaf summary-lsa {
                      type boolean;
                      description
                        "Override summary-lsa metric with max-metric
    value";
                    }
    
                    leaf summary-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in summary-LSAs (default
    16711680)";
                    }
    
                    leaf external-lsa {
                      type boolean;
                      description
                        "Override external-lsa metric with max-metric
    value";
                    }
    
                    leaf external-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in external-LSAs (default
    16711680)";
                    }
                  }  // container max-metric-on-startup
    
                  container max-metric-on-proc-migration {
                    description
                      "Set maximum metric on-proc-migration
    configuration";
                    leaf wait-for-bgp {
                      type boolean;
                      default "false";
                      description
                        "Let BGP decide when to originate router-LSA
    with normal metric";
                    }
    
                    leaf startup-max {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time in seconds to originate router-LSA with
    max-metric";
                    }
    
                    leaf include-stub {
                      type boolean;
                      description
                        "Set maximum metric for stub links in
    router-LSAs";
                    }
    
                    leaf summary-lsa {
                      type boolean;
                      description
                        "Override summary-lsa metric with max-metric
    value";
                    }
    
                    leaf summary-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in summary-LSAs (default
    16711680)";
                    }
    
                    leaf external-lsa {
                      type boolean;
                      description
                        "Override external-lsa metric with max-metric
    value";
                    }
    
                    leaf external-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in external-LSAs (default
    16711680)";
                    }
                  }  // container max-metric-on-proc-migration
    
                  container max-metric-always {
                    description
                      "Set maximum metric always configuration";
                    leaf include-stub {
                      type boolean;
                      default "false";
                      description
                        "Set maximum metric for stub links in
    router-LSAs";
                    }
    
                    leaf summary-lsa {
                      type boolean;
                      description
                        "Override summary-lsa metric with max-metric
    value";
                    }
    
                    leaf summary-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in summary-LSAs (default
    16711680)";
                    }
    
                    leaf external-lsa {
                      type boolean;
                      description
                        "Override external-lsa metric with max-metric
    value";
                    }
    
                    leaf external-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in external-LSAs (default
    16711680)";
                    }
                  }  // container max-metric-always
    
                  container max-metric-on-switchover {
                    description
                      "Set maximum metric on-switchover configuration";
                    leaf wait-for-bgp {
                      type boolean;
                      default "false";
                      description
                        "Let BGP decide when to originate router-LSA
    with normal metric";
                    }
    
                    leaf startup-max {
                      type uint32 {
                        range "5..86400";
                      }
                      units "second";
                      description
                        "Time in seconds to originate router-LSA with
    max-metric";
                    }
    
                    leaf include-stub {
                      type boolean;
                      description
                        "Set maximum metric for stub links in
    router-LSAs";
                    }
    
                    leaf summary-lsa {
                      type boolean;
                      description
                        "Override summary-lsa metric with max-metric
    value";
                    }
    
                    leaf summary-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in summary-LSAs (default
    16711680)";
                    }
    
                    leaf external-lsa {
                      type boolean;
                      description
                        "Override external-lsa metric with max-metric
    value";
                    }
    
                    leaf external-lsa-maximum-metric {
                      type uint32 {
                        range "1..16777215";
                      }
                      description
                        "Overriding metric in external-LSAs (default
    16711680)";
                    }
                  }  // container max-metric-on-switchover
    
                  leaf max-metric-no-abr-off {
                    type empty;
                    description
                      "Block ABR-disable mode entry while in
    max-metric mode";
                  }
                }  // container max-metric
    
                leaf snmp-context {
                  type string;
                  description
                    "OSPF SNMP context configuration";
                }
    
                leaf maximum-interfaces {
                  type uint32 {
                    range "1..4294967295";
                  }
                  default "1024";
                  description
                    "Max number of interfaces allowed to be
    configured";
                }
    
                leaf no-opaque {
                  type empty;
                  description
                    "Disable opaque LSAs";
                }
    
                container nsf {
                  description
                    "Non Stop Forwarding configuration";
                  leaf lifetime {
                    type uint32 {
                      range "90..1800";
                    }
                    units "second";
                    default "90";
                    description
                      "Maximum route lifetime following restart in
    seconds";
                  }
    
                  leaf ietf {
                    type Ospf-ietf-nsf;
                    description
                      "Enable IETF Non Stop Forwarding";
                  }
    
                  leaf ietf-support-role {
                    type Ospf-ietf-nsf-support;
                    description
                      "Disable helper support role for IETF Non Stop
    Forwarding";
                  }
    
                  leaf cisco {
                    type Ospf-cisco-nsf;
                    description
                      "Enable Cisco Non Stop Forwarding";
                  }
    
                  leaf interval {
                    type uint32 {
                      range "90..3600";
                    }
                    units "second";
                    default "90";
                    description
                      "Minimum interval between Non Stop Forwarding
    restarts in seconds";
                  }
    
                  leaf flush-delay-time {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    default "60";
                    description
                      "Maximum time allowed for external route
    learning (seconds)";
                  }
    
                  leaf ietf-strict-lsa-checking {
                    type empty;
                    description
                      "Enable Strict LSA checking of IETF NSF";
                  }
                }  // container nsf
    
                container process-scope {
                  description
                    "Process scope configuration";
                  container srgb {
                    presence
                      "Indicates a srgb node is configured.";
                    description
                      "Segment Routing Global Block configuration";
                    leaf lower-bound {
                      type uint32 {
                        range "16000..1048575";
                      }
                      mandatory true;
                      description
                        "The lower bound of the SRGB";
                    }
    
                    leaf upper-bound {
                      type uint32 {
                        range "16000..1048575";
                      }
                      mandatory true;
                      description
                        "The upper bound of the SRGB";
                    }
                  }  // container srgb
    
                  container fast-reroute {
                    description
                      "Fast-reroute configuration";
                    container per-link {
                      description
                        "Fast-reroute per-link configuration";
                      container candidate-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                        list candidate-interface {
                          key "interface-name";
                          description
                            "Candidate backup interface";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list candidate-interface
                      }  // container candidate-interfaces
    
                      leaf fast-reroute-use-candidate-only {
                        type boolean;
                        default "false";
                        description
                          "Use only interfaces on the candidate list as a
    backup path";
                      }
    
                      container exclude-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                        list exclude-interface {
                          key "interface-name";
                          description
                            "Exclude an interface from becoming a backup or
    UCMP";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list exclude-interface
                      }  // container exclude-interfaces
                    }  // container per-link
    
                    container per-prefix {
                      description
                        "Fast-reroute per-prefix configuration";
                      container remote-lfa {
                        description
                          "Remote LFA configuration";
                        leaf tunnel {
                          type Ospf-proc-frr-rlfa-tunnel;
                          description
                            "Enable/Disable remote LFA computation";
                        }
    
                        leaf maximum-cost {
                          type uint32 {
                            range
                              "1..4294967295";
                          }
                          description
                            "Maximum path cost to remote LFA";
                        }
                      }  // container remote-lfa
    
                      leaf topology-independent-lfa {
                        type boolean;
                        description
                          "Topology Independet LFA configuration";
                      }
    
                      container candidate-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                        list candidate-interface {
                          key "interface-name";
                          description
                            "Candidate backup interface";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list candidate-interface
                      }  // container candidate-interfaces
    
                      leaf fast-reroute-use-candidate-only {
                        type boolean;
                        default "false";
                        description
                          "Use only interfaces on the candidate list as a
    backup path";
                      }
    
                      container exclude-interfaces {
                        description
                          "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                        list exclude-interface {
                          key "interface-name";
                          description
                            "Exclude an interface from becoming a backup or
    UCMP";
                          leaf interface-name {
                            type xr:Interface-name;
                            description
                              "Interface";
                          }
                        }  // list exclude-interface
                      }  // container exclude-interfaces
                    }  // container per-prefix
    
                    leaf fast-reroute-enable {
                      type Ospf-proc-fast-reroute;
                      description
                        "Enable/Disable Fast-reroute per-link or
    per-prefix";
                    }
                  }  // container fast-reroute
    
                  container cost-fallback-anamoly-delay-te {
                    description
                      "Interface delay igp-metric fallback cost";
                    leaf penalty-type {
                      type Ospf-penalty;
                      description
                        "Type of penalty";
                    }
    
                    leaf value {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Fallback cost of link";
                    }
                  }  // container cost-fallback-anamoly-delay-te
    
                  container distribute-list {
                    presence
                      "enable distribute-list";
                    description
                      "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                    leaf access-list-name {
                      type string;
                      must
                        "not(../route-policy-name)";
                      description
                        "Access Control List name";
                    }
    
                    leaf route-policy-name {
                      type string;
                      must
                        "not(../access-list-name)";
                      description
                        "Route Policy name";
                    }
                  }  // container distribute-list
    
                  leaf cost {
                    type uint32 {
                      range "1..65535";
                    }
                    description "Interface cost";
                  }
    
                  container bfd {
                    description
                      "BFD configuration";
                    leaf interval {
                      type uint32 {
                        range "3..30000";
                      }
                      units "millisecond";
                      description
                        "Hello interval for BFD sessions created by OSPF";
                    }
    
                    leaf detection-multiplier {
                      type uint32 {
                        range "2..50";
                      }
                      description
                        "Detection multiplier for BFD sessions created
    by OSPF";
                    }
    
                    leaf fast-detect-mode {
                      type Bfd-enable-mode;
                      description
                        " use of Bidirectional Forwarding Detection";
                    }
                  }  // container bfd
    
                  leaf weight {
                    type uint32 {
                      range "1..16777214";
                    }
                    description
                      "Interface weight";
                  }
    
                  leaf external-out {
                    type boolean;
                    description
                      "Enable/Disable an OSPF area to advertise
    intra-area prefixes out of this area as external";
                  }
    
                  leaf prefix-suppression-primary {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable prefix suppression for primary
    addresses";
                  }
    
                  leaf mtu-ignore {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable ignoring of MTU in DBD packets";
                  }
    
                  container authentication {
                    description "Authentication";
                    container type {
                      description
                        "Authentication type";
                      leaf authen-type {
                        type Ospf-authentication;
                        description
                          "Authentication type code ";
                      }
    
                      leaf keychain-authen-type {
                        type Ospf-keychain-auth;
                        description
                          "Keychain authentication type";
                      }
    
                      leaf keychain-name {
                        type string;
                        description
                          "Keychain name";
                      }
                    }  // container type
    
                    container message-digest-keys {
                      description
                        "Message digest authentication password (key)
    configurations, first 16 chars used";
                      list message-digest-key {
                        key "key-id";
                        description
                          "Message digest authentication password (key)
    configuration";
                        leaf key-id {
                          type uint32 {
                            range "1..255";
                          }
                          description "Key ID";
                        }
    
                        leaf password {
                          type xr:Proprietary-password;
                          mandatory true;
                          description "Password";
                        }
                      }  // list message-digest-key
                    }  // container message-digest-keys
    
                    leaf key {
                      type xr:Proprietary-password;
                      description
                        "Authentication key configuration";
                    }
                  }  // container authentication
    
                  leaf ldp-sync-igp-shortcuts {
                    type boolean;
                    description
                      "Enable/Disable MPLS LDP sync for igp-shortcuts";
                  }
    
                  leaf ldp-auto-config {
                    type empty;
                    description
                      "Enable MPLS LDP Auto Config";
                  }
    
                  container security {
                    description
                      "Container class for security related
    configuration parameters";
                    container ttl {
                      description
                        "Enabling turns on TTL security";
                      leaf enable {
                        type boolean;
                        description
                          "Enable TTL security";
                      }
    
                      leaf hop-count {
                        type uint32 {
                          range "1..254";
                        }
                        description "Hop count";
                      }
                    }  // container ttl
                  }  // container security
    
                  container delay-norm-interval {
                    presence
                      "Indicates a delay-norm-interval node is configured.";
                    description
                      "Interface delay normalization params";
                    leaf delay-norm-interval {
                      type uint32 {
                        range "1..16777215";
                      }
                      mandatory true;
                      description
                        "Delay Normalization Interval";
                    }
    
                    leaf delay-norm-offset {
                      type uint32 {
                        range "0..16777215";
                      }
                      mandatory true;
                      description
                        "Delay Normalization Offset";
                    }
                  }  // container delay-norm-interval
    
                  leaf summary-in {
                    type boolean;
                    description
                      "Enable/Disable an OSPF area to advertise
    external prefixes into this area as summary";
                  }
    
                  leaf network-type {
                    type Ospf-network;
                    description
                      "Type of attached network";
                  }
    
                  leaf hello-interval {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    description
                      "Interval between HELLO packets in seconds";
                  }
    
                  leaf loopback-stub-network {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable advertising loopback as a stub
    network";
                  }
    
                  leaf prefix-suppression-secondary {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable prefix suppression for secondary
    addresses";
                  }
    
                  leaf demand-circuit {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable OSPF demand circuit";
                  }
    
                  leaf segment-routing {
                    type Ospf-segment-routing;
                    description
                      "segment-routing configuration Applicable only in
    Default VRF";
                  }
    
                  leaf passive {
                    type boolean;
                    default "false";
                    description
                      "When enabled, prevent sending HELLO packets over
    link";
                  }
    
                  leaf transmit-delay {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    default "1";
                    description
                      "Number of seconds to delay transmission of LSAs";
                  }
    
                  leaf packet-size {
                    type uint32 {
                      range "576..10000";
                    }
                    description
                      "Customize size of OSPF packets upto MTU";
                  }
    
                  leaf ldp-sync {
                    type boolean;
                    description
                      "Enable/Disable MPLS LDP sync";
                  }
    
                  leaf database-filter {
                    type boolean;
                    default "false";
                    description
                      "Filter OSPF LSA during synchronization and
    flooding";
                  }
    
                  container dead-interval-minimal {
                    description
                      "Interval after which a neighbor is declared dead";
                    leaf interval {
                      type uint32 {
                        range "1..65535";
                      }
                      units "second";
                      description
                        "Interval size in seconds after which a neighbor
    is declared dead";
                    }
    
                    leaf multiplier {
                      type uint32 {
                        range "3..20";
                      }
                      description
                        "Number of Hellos in one second";
                    }
                  }  // container dead-interval-minimal
    
                  leaf link-down-fast-detect {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable registration for early interface
    down notifications";
                  }
    
                  leaf segment-routing-forwarding {
                    type Ospf-segment-routing-forwarding;
                    description
                      "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                  }
    
                  leaf retransmit-interval {
                    type uint32 {
                      range "1..65535";
                    }
                    units "second";
                    default "5";
                    description
                      "Time in seconds between retransmitting lost link
    state advertisements";
                  }
    
                  leaf priority {
                    type uint32 {
                      range "0..255";
                    }
                    default "1";
                    description
                      "Router priority for DR and BDR election";
                  }
    
                  container cost-fallback-anamoly-delay-igp {
                    description
                      "Interface delay igp-metric fallback cost";
                    leaf penalty-type {
                      type Ospf-penalty;
                      description
                        "Type of penalty";
                    }
    
                    leaf value {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Fallback cost of link";
                    }
                  }  // container cost-fallback-anamoly-delay-igp
    
                  leaf flood-reduction {
                    type boolean;
                    default "false";
                    description
                      "Enable/Disable OSPF flood reduction";
                  }
    
                  container cost-fallback {
                    description
                      "Interface fallback cost";
                    leaf cost {
                      type uint32 {
                        range "1..65535";
                      }
                      description
                        "Fallback cost of link";
                    }
    
                    leaf threshold {
                      type uint32 {
                        range "1..4294967";
                      }
                      description
                        "Bandwidth threshold";
                    }
                  }  // container cost-fallback
                }  // container process-scope
    
                leaf spf-prefix-priority {
                  type string;
                  description
                    "Configure a route-policy for prioritizing RIB
    route install.";
                }
    
                container redistribution {
                  description
                    "Redistribute configurations";
                  container redistributes {
                    description
                      "Redistribute information from another routing
    protocol";
                    list redistribute {
                      must
                        "connected-or-static-or-dagr-or-subscriber-or-mobile-or-rip or application-or-isis-or-ospf or bgp or eigrp" {
                        description
                          "Connected-or-Static-or-DAGR-or-Subscriber-or-Mobile-or-RIP or Application-or-ISIS-or-OSPF or BGP or EIGRP must be present.";
                      }
                      key "protocol-name";
                      description
                        "Redistribute information from another routing
    protocol";
                      container connected-or-static-or-dagr-or-subscriber-or-mobile-or-rip {
                        when
                          "../protocol-name = 'connected' or ../protocol-name = 'static' or ../protocol-name = 'dagr' or ../protocol-name = 'subscriber' or ../protocol-name = 'mobile' or ../protocol-name = 'rip'" {
                          description
                            "../ProtocolName = Connected or .
    ./ProtocolName = Static or ../ProtocolName
    = DAGR or ../ProtocolName = Subscriber or .
    ./ProtocolName = Mobile or ../ProtocolName
    = RIP";
                        }
                        presence
                          "Indicates that this node is configured.";
                        description
                          "connected or static or dagr or subscriber or
    mobile or rip";
                        leaf classful {
                          type boolean;
                          default "false";
                          description
                            "Disallow subnetting";
                        }
    
                        leaf default-redistributed-route-metric {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Default metric for routes being
    redistributed into OSPF";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPF";
                        }
    
                        leaf metric-type {
                          type Ospf-link-state-metric;
                          description
                            "Set OSPF External metric type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospf-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf isis-levels {
                          type Ospf-route-level;
                          description
                            "Levels of ISIS routes";
                        }
    
                        leaf ospf-internal {
                          type boolean;
                          description
                            "OSPF_Internal route type";
                        }
    
                        leaf ospf-external {
                          type Ospf-route-level;
                          description
                            "OSPF external route types";
                        }
    
                        leaf ospf-nssa-level {
                          type Ospf-route-level;
                          description
                            "OSPF NSSA external route types";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Routing policy name";
                        }
    
                        leaf bgp-preserve-med {
                          type boolean;
                          description
                            "Preserve MED of BGP routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type of BGP
    Default Route";
                        }
    
                        leaf ospf-redist-lsa-type {
                          type Ospf-redist-lsa;
                          default "external";
                          description
                            "LSA type for redistributed routes";
                        }
    
                        leaf ospfnssa-only {
                          type boolean;
                          description
                            "Only redistribute to NSSA areas";
                        }
    
                        leaf ospf-use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // container connected-or-static-or-dagr-or-subscriber-or-mobile-or-rip
    
                      leaf protocol-name {
                        type Ospf-redist-protocol;
                        description
                          "Distribute list protocol type";
                      }
    
                      list application-or-isis-or-ospf {
                        when
                          "../protocol-name = 'application' or ../protocol-name = 'isis' or ../protocol-name = 'ospf'" {
                          description
                            "../ProtocolName = Application or .
    ./ProtocolName = ISIS or ../ProtocolName =
    OSPF";
                        }
                        key "instance-name";
                        description
                          "application or isis or ospf";
                        leaf instance-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "OSPF or ISIS process name or protocol name:
    bgp, eigrp, connected";
                        }
    
                        leaf classful {
                          type boolean;
                          default "false";
                          description
                            "Disallow subnetting";
                        }
    
                        leaf default-redistributed-route-metric {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Default metric for routes being
    redistributed into OSPF";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPF";
                        }
    
                        leaf metric-type {
                          type Ospf-link-state-metric;
                          description
                            "Set OSPF External metric type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospf-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf isis-levels {
                          type Ospf-route-level;
                          description
                            "Levels of ISIS routes";
                        }
    
                        leaf ospf-internal {
                          type boolean;
                          description
                            "OSPF_Internal route type";
                        }
    
                        leaf ospf-external {
                          type Ospf-route-level;
                          description
                            "OSPF external route types";
                        }
    
                        leaf ospf-nssa-level {
                          type Ospf-route-level;
                          description
                            "OSPF NSSA external route types";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Routing policy name";
                        }
    
                        leaf bgp-preserve-med {
                          type boolean;
                          description
                            "Preserve MED of BGP routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type of BGP
    Default Route";
                        }
    
                        leaf ospf-redist-lsa-type {
                          type Ospf-redist-lsa;
                          default "external";
                          description
                            "LSA type for redistributed routes";
                        }
    
                        leaf ospfnssa-only {
                          type boolean;
                          description
                            "Only redistribute to NSSA areas";
                        }
    
                        leaf ospf-use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // list application-or-isis-or-ospf
    
                      list bgp {
                        when
                          "../protocol-name = 'bgp'" {
                          description
                            "../ProtocolName = BGP";
                        }
                        key "instance-name as-xx as-yy";
                        description "bgp";
                        leaf instance-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "OSPF or ISIS process name or protocol name:
    bgp, eigrp, connected";
                        }
    
                        leaf as-xx {
                          type uint32 {
                            range "0..65535";
                          }
                          description
                            "First half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero
    value if second half is zero.";
                        }
    
                        leaf as-yy {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Second half of BGP AS number in XX.YY format
    . Mandatory if Protocol is BGP or EIGRP and
    must not be specified otherwise. Must be a
    non-zero value if first half is zero.";
                        }
    
                        leaf classful {
                          type boolean;
                          default "false";
                          description
                            "Disallow subnetting";
                        }
    
                        leaf default-redistributed-route-metric {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Default metric for routes being
    redistributed into OSPF";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPF";
                        }
    
                        leaf metric-type {
                          type Ospf-link-state-metric;
                          description
                            "Set OSPF External metric type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospf-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf isis-levels {
                          type Ospf-route-level;
                          description
                            "Levels of ISIS routes";
                        }
    
                        leaf ospf-internal {
                          type boolean;
                          description
                            "OSPF_Internal route type";
                        }
    
                        leaf ospf-external {
                          type Ospf-route-level;
                          description
                            "OSPF external route types";
                        }
    
                        leaf ospf-nssa-level {
                          type Ospf-route-level;
                          description
                            "OSPF NSSA external route types";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Routing policy name";
                        }
    
                        leaf bgp-preserve-med {
                          type boolean;
                          description
                            "Preserve MED of BGP routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type of BGP
    Default Route";
                        }
    
                        leaf ospf-redist-lsa-type {
                          type Ospf-redist-lsa;
                          default "external";
                          description
                            "LSA type for redistributed routes";
                        }
    
                        leaf ospfnssa-only {
                          type boolean;
                          description
                            "Only redistribute to NSSA areas";
                        }
    
                        leaf ospf-use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // list bgp
    
                      list eigrp {
                        when
                          "../protocol-name = 'eigrp'" {
                          description
                            "../ProtocolName = EIGRP";
                        }
                        key "instance-name as-xx";
                        description "eigrp";
                        leaf instance-name {
                          type xr:Cisco-ios-xr-string;
                          description
                            "OSPF or ISIS process name or protocol name:
    bgp, eigrp, connected";
                        }
    
                        leaf as-xx {
                          type uint32 {
                            range "0..65535";
                          }
                          description
                            "First half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero
    value if second half is zero.";
                        }
    
                        leaf classful {
                          type boolean;
                          default "false";
                          description
                            "Disallow subnetting";
                        }
    
                        leaf default-redistributed-route-metric {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Default metric for routes being
    redistributed into OSPF";
                        }
    
                        leaf tag {
                          type uint32 {
                            range
                              "0..4294967295";
                          }
                          description
                            "Set tag for routes redistributed into OSPF";
                        }
    
                        leaf metric-type {
                          type Ospf-link-state-metric;
                          description
                            "Set OSPF External metric type";
                        }
    
                        leaf eigrp-route-type {
                          type Ospf-eigrp-route;
                          description
                            "EIGRP route type";
                        }
    
                        leaf isis-levels {
                          type Ospf-route-level;
                          description
                            "Levels of ISIS routes";
                        }
    
                        leaf ospf-internal {
                          type boolean;
                          description
                            "OSPF_Internal route type";
                        }
    
                        leaf ospf-external {
                          type Ospf-route-level;
                          description
                            "OSPF external route types";
                        }
    
                        leaf ospf-nssa-level {
                          type Ospf-route-level;
                          description
                            "OSPF NSSA external route types";
                        }
    
                        leaf route-policy-name {
                          type string;
                          description
                            "Routing policy name";
                        }
    
                        leaf bgp-preserve-med {
                          type boolean;
                          description
                            "Preserve MED of BGP routes";
                        }
    
                        leaf bgp-preserve-default-info {
                          type boolean;
                          description
                            "Preserve Metric and Metric Type of BGP
    Default Route";
                        }
    
                        leaf ospf-redist-lsa-type {
                          type Ospf-redist-lsa;
                          default "external";
                          description
                            "LSA type for redistributed routes";
                        }
    
                        leaf ospfnssa-only {
                          type boolean;
                          description
                            "Only redistribute to NSSA areas";
                        }
    
                        leaf ospf-use-rib-metric {
                          type boolean;
                          description
                            "Use metric from RIB for redistributed routes";
                        }
                      }  // list eigrp
                    }  // list redistribute
                  }  // container redistributes
                }  // container redistribution
    
                container adjacency-stagger {
                  description
                    "Staggering OSPF adjacency bring up";
                  leaf disable {
                    type empty;
                    description
                      "Disable OSPF adjacency stagger";
                  }
    
                  leaf initial-nbr {
                    type uint32 {
                      range "1..65535";
                    }
                    default "2";
                    description
                      "Adjacency Stagger: Initial number of neighbors
    to bring up per area";
                  }
    
                  leaf max-nbr {
                    type uint32 {
                      range "1..65535";
                    }
                    default "64";
                    description
                      "Adjacency Stagger: Subsequent simultaneous
    number of neighbors to bring up";
                  }
                }  // container adjacency-stagger
    
                container max-lsa {
                  presence
                    "Indicates a max-lsa node is configured.";
                  description
                    "Set max-lsa configuration";
                  leaf max-lsa-limit {
                    type uint32 {
                      range "1..4294967294";
                    }
                    mandatory true;
                    description
                      "Set maximum number of non self-generated LSAs";
                  }
    
                  leaf max-lsa-threshold {
                    type uint32 {
                      range "1..100";
                    }
                    description
                      "Set max-lsa threshold for generating a warning
    message";
                  }
    
                  leaf max-lsa-warning-only {
                    type boolean;
                    description
                      "Only give warning message when limit is
    exceeded";
                  }
    
                  leaf max-lsa-ignore-time {
                    type uint32 {
                      range "1..35791394";
                    }
                    description
                      "Set time during which all adjacencies are
    suppressed";
                  }
    
                  leaf max-lsa-ignore-count {
                    type uint32 {
                      range "1..4294967294";
                    }
                    description
                      "Set count on how many times adjacencies can be
    suppressed";
                  }
    
                  leaf max-lsa-reset-time {
                    type uint32 {
                      range "2..71582788";
                    }
                    units "minute";
                    description
                      "Set number of minutes after which ignore-count
    is reset to zero";
                  }
                }  // container max-lsa
    
                container auto-cost {
                  description
                    "Controls automatic cost based on bandwidth";
                  leaf disable {
                    type boolean;
                    default "false";
                    description
                      "Disabling auto costing";
                  }
    
                  leaf bandwidth {
                    type uint32 {
                      range "1..4294967";
                    }
                    units "Mbit/s";
                    default "100";
                    description
                      "The reference bandwidth in terms of Mbits per
    second";
                  }
                }  // container auto-cost
    
                container ucmp {
                  description
                    "Unequal Cost Multi-ptah configuration";
                  container enable {
                    description
                      "UCMP feature enable configuration";
                    leaf variance {
                      type uint32 {
                        range "101..10000";
                      }
                      default "200";
                      description
                        "Value of variance";
                    }
    
                    leaf prefix-list-name {
                      type string;
                      description
                        "Name of the Prefix List";
                    }
                  }  // container enable
    
                  leaf delay-interval {
                    type uint32 {
                      range "1..5000";
                    }
                    units "millisecond";
                    default "100";
                    description
                      "Delay in msecs between primary SPF and UCMP
    computation";
                  }
    
                  container exclude-interfaces {
                    description
                      "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                    list exclude-interface {
                      key "interface-name";
                      description
                        "Exclude an interface from becoming a backup or
    UCMP";
                      leaf interface-name {
                        type xr:Interface-name;
                        description "Interface";
                      }
                    }  // list exclude-interface
                  }  // container exclude-interfaces
                }  // container ucmp
    
                container apply-weight {
                  presence
                    "Indicates a apply-weight node is configured.";
                  description
                    "Apply weights feature enable configuration";
                  leaf bandwidth {
                    type boolean;
                    mandatory true;
                    description
                      "Use interface bandwidth when calculating
    weights";
                  }
    
                  leaf reference-bandwidth {
                    type uint32 {
                      range "1..4294967";
                    }
                    units "Mbit/s";
                    default "100";
                    description
                      "Reference bandwidth to use for calculation
    (Mbits/sec)";
                  }
    
                  leaf default-weight {
                    type uint32 {
                      range "1..16777214";
                    }
                    default "1";
                    description
                      "Default weight to use when weight not
    configured under interface";
                  }
                }  // container apply-weight
    
                leaf maximum-paths {
                  type uint32 {
                    range "1..64";
                  }
                  description
                    "Forward packets over multiple paths (number of
    paths)";
                }
    
                container fast-reroute {
                  description
                    "Fast-reroute instance scoped parameters";
                  container per-link {
                    description
                      "Fast-reroute per-link global configuration";
                    leaf priority {
                      type Ospf-fast-reroute-priority;
                      description
                        "Fast-reroute per-link/per-prefix priority-limit
    command";
                    }
                  }  // container per-link
    
                  container per-prefix {
                    description
                      "Fast-reroute per-prefix global configuration";
                    container tiebreakers {
                      description
                        "Fast-reroute tiebreakers configurations";
                      list tiebreaker {
                        key "tiebreaker-type";
                        description
                          "Fast-reroute tiebreakers configuration";
                        leaf tiebreaker-type {
                          type Ospf-fast-reroute-tiebreakers;
                          description
                            "Tiebreaker type";
                        }
    
                        leaf tiebreaker-index {
                          type uint32 {
                            range "0..255";
                          }
                          mandatory true;
                          description
                            "Index value for a tiebreaker, 0 to disable";
                        }
                      }  // list tiebreaker
                    }  // container tiebreakers
    
                    leaf weighted-srlg {
                      type empty;
                      description
                        "select SRLG protection mode (default: local)";
                    }
    
                    leaf load-sharing-disable {
                      type empty;
                      description
                        "Disable load sharing between multiple backups";
                    }
    
                    leaf priority {
                      type Ospf-fast-reroute-priority;
                      description
                        "Fast-reroute per-link/per-prefix priority-limit
    command";
                    }
                  }  // container per-prefix
                }  // container fast-reroute
    
                container summary-prefixes {
                  description
                    "Configure IP prefix summary";
                  container summary-prefix-data {
                    description
                      "Data container.";
                    leaf not-advertise {
                      type boolean;
                      default "false";
                      description
                        "Do not advertise when translating OSPF type-7
    LSA";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "32-bit tag value";
                    }
                  }  // container summary-prefix-data
    
                  list prefix-and-netmask {
                    key "prefix netmask";
                    description
                      "keys: prefix, netmask";
                    leaf prefix {
                      type inet:ipv4-address-no-zone;
                      description
                        "IP summary prefix";
                    }
    
                    leaf netmask {
                      type inet:ipv4-address-no-zone;
                      description
                        "Summary netmask";
                    }
    
                    leaf not-advertise {
                      type boolean;
                      default "false";
                      description
                        "Do not advertise when translating OSPF type-7
    LSA";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "32-bit tag value";
                    }
                  }  // list prefix-and-netmask
    
                  list prefix {
                    key "prefix";
                    description "keys: prefix";
                    leaf prefix {
                      type inet:ipv4-address-no-zone;
                      description
                        "IP summary prefix";
                    }
    
                    leaf not-advertise {
                      type boolean;
                      default "false";
                      description
                        "Do not advertise when translating OSPF type-7
    LSA";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "32-bit tag value";
                    }
                  }  // list prefix
    
                  list netmask {
                    key "netmask";
                    description "keys: netmask";
                    leaf netmask {
                      type inet:ipv4-address-no-zone;
                      description
                        "Summary netmask";
                    }
    
                    leaf not-advertise {
                      type boolean;
                      default "false";
                      description
                        "Do not advertise when translating OSPF type-7
    LSA";
                    }
    
                    leaf tag {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "32-bit tag value";
                    }
                  }  // list netmask
                }  // container summary-prefixes
    
                leaf adjacency-changes {
                  type Ospf-log-adj;
                  description
                    "Log changes in adjacency state";
                }
    
                container outgoing-route-updates {
                  description
                    "Filter outgoing routing updates";
                  list outgoing-route-update {
                    key "protocol-name";
                    description
                      "Filter outgoing routing updates for a
    particular protocol";
                    leaf protocol-name {
                      type Ospf-dist-list-protocol;
                      description
                        "Distribute list protocol type";
                    }
    
                    leaf access-list-name {
                      type string;
                      description
                        "Access Control List name";
                    }
    
                    leaf as-xx {
                      type uint32 {
                        range "0..65535";
                      }
                      description
                        "First half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero value
    if second half is zero.";
                    }
    
                    leaf as-yy {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Second half of BGP AS number in XX.YY format.
    Mandatory if Protocol is BGP and must not be
    specified otherwise. Must be a non-zero value
    if first half is zero.";
                    }
    
                    leaf ospf-process-name {
                      type string;
                      description
                        "OSPF process name";
                    }
                  }  // list outgoing-route-update
                }  // container outgoing-route-updates
    
                leaf paths-per-prefix-distribution {
                  type empty;
                  description
                    "Enable per prefix load balancing through
    distribution of paths";
                }
    
                container distance {
                  description
                    "Administrative distance configuration";
                  container ospf-distance {
                    description
                      "OSPF distance configuration";
                    leaf intra-area {
                      type uint32 {
                        range "1..255";
                      }
                      default "110";
                      description
                        "Distance for intra-area routes";
                    }
    
                    leaf inter-area {
                      type uint32 {
                        range "1..255";
                      }
                      default "110";
                      description
                        "Distance for inter-area routes";
                    }
    
                    leaf external-routes {
                      type uint32 {
                        range "1..255";
                      }
                      default "110";
                      description
                        "Distance for external type 5 and type 7 routes";
                    }
                  }  // container ospf-distance
    
                  container ip-distances {
                    description
                      "IP specific administrative distance
    configuration";
                    list ip-distance {
                      key "address wildcard";
                      description
                        "Administrative distance configuration for a
    particular IP address";
                      leaf address {
                        type inet:ipv4-address-no-zone;
                        description
                          "IP source address";
                      }
    
                      leaf wildcard {
                        type inet:ipv4-address-no-zone;
                        description
                          "IP wild card bits -- inverted mask";
                      }
    
                      leaf distance {
                        type uint32 {
                          range "1..255";
                        }
                        default "110";
                        description
                          "Administrative distance";
                      }
    
                      leaf access-list-name {
                        type string;
                        description
                          "Access Control List name";
                      }
                    }  // list ip-distance
                  }  // container ip-distances
    
                  leaf admin-distance {
                    type uint32 {
                      range "1..255";
                    }
                    default "110";
                    description
                      "Define an administrative distance";
                  }
                }  // container distance
    
                container area-addresses {
                  description
                    "Area configuration";
                  list area-address {
                    key "address";
                    description
                      "Configuration for a particular area";
                    leaf address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Area ID if in IP address format";
                    }
    
                    container virtual-link-scopes {
                      description
                        "Virtual Link scope configurations";
                      list virtual-link-scope {
                        key "address";
                        description
                          "Virtual Link configuration";
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Router ID of virtual link neighbor";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
                      }  // list virtual-link-scope
                    }  // container virtual-link-scopes
    
                    container sham-link-scopes {
                      description
                        "Sham Link scope configurations";
                      list sham-link-scope {
                        key "source-address destination-address";
                        description
                          "Sham Link configuration";
                        leaf source {
                          type inet:ipv4-address-no-zone;
                          description
                            "Address of the local sham-link endpoint.
    Enter an IP Address";
                        }
    
                        leaf source-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Address of the local sham-link endpoint";
                        }
    
                        leaf destination-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Address of the remote sham-link endpoint";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
                      }  // list sham-link-scope
                    }  // container sham-link-scopes
    
                    container area-scope {
                      description
                        "Area scope configuration";
                      container cost-fallback-anamoly-delay-te {
                        description
                          "Interface delay igp-metric fallback cost";
                        leaf penalty-type {
                          type Ospf-penalty;
                          description
                            "Type of penalty";
                        }
    
                        leaf value {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Fallback cost of link";
                        }
                      }  // container cost-fallback-anamoly-delay-te
    
                      container distribute-list {
                        presence
                          "enable distribute-list";
                        description
                          "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                        leaf access-list-name {
                          type string;
                          must
                            "not(../route-policy-name)";
                          description
                            "Access Control List name";
                        }
    
                        leaf route-policy-name {
                          type string;
                          must
                            "not(../access-list-name)";
                          description
                            "Route Policy name";
                        }
                      }  // container distribute-list
    
                      leaf cost {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Interface cost";
                      }
    
                      container bfd {
                        description
                          "BFD configuration";
                        leaf interval {
                          type uint32 {
                            range "3..30000";
                          }
                          units "millisecond";
                          description
                            "Hello interval for BFD sessions created by OSPF";
                        }
    
                        leaf detection-multiplier {
                          type uint32 {
                            range "2..50";
                          }
                          description
                            "Detection multiplier for BFD sessions created
    by OSPF";
                        }
    
                        leaf fast-detect-mode {
                          type Bfd-enable-mode;
                          description
                            " use of Bidirectional Forwarding Detection";
                        }
                      }  // container bfd
    
                      leaf weight {
                        type uint32 {
                          range "1..16777214";
                        }
                        description
                          "Interface weight";
                      }
    
                      leaf prefix-suppression-primary {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable prefix suppression for primary
    addresses";
                      }
    
                      leaf mtu-ignore {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable ignoring of MTU in DBD packets";
                      }
    
                      container authentication {
                        description
                          "Authentication";
                        container type {
                          description
                            "Authentication type";
                          leaf authen-type {
                            type Ospf-authentication;
                            description
                              "Authentication type code ";
                          }
    
                          leaf keychain-authen-type {
                            type Ospf-keychain-auth;
                            description
                              "Keychain authentication type";
                          }
    
                          leaf keychain-name {
                            type string;
                            description
                              "Keychain name";
                          }
                        }  // container type
    
                        container message-digest-keys {
                          description
                            "Message digest authentication password (key)
    configurations, first 16 chars used";
                          list message-digest-key {
                            key "key-id";
                            description
                              "Message digest authentication password (key)
    configuration";
                            leaf key-id {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Key ID";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              mandatory true;
                              description
                                "Password";
                            }
                          }  // list message-digest-key
                        }  // container message-digest-keys
    
                        leaf key {
                          type xr:Proprietary-password;
                          description
                            "Authentication key configuration";
                        }
                      }  // container authentication
    
                      leaf ldp-sync-igp-shortcuts {
                        type boolean;
                        description
                          "Enable/Disable MPLS LDP sync for igp-shortcuts";
                      }
    
                      leaf ldp-auto-config {
                        type empty;
                        description
                          "Enable MPLS LDP Auto Config";
                      }
    
                      container security {
                        description
                          "Container class for security related
    configuration parameters";
                        container ttl {
                          description
                            "Enabling turns on TTL security";
                          leaf enable {
                            type boolean;
                            description
                              "Enable TTL security";
                          }
    
                          leaf hop-count {
                            type uint32 {
                              range "1..254";
                            }
                            description
                              "Hop count";
                          }
                        }  // container ttl
                      }  // container security
    
                      container delay-norm-interval {
                        presence
                          "Indicates a delay-norm-interval node is configured.";
                        description
                          "Interface delay normalization params";
                        leaf delay-norm-interval {
                          type uint32 {
                            range "1..16777215";
                          }
                          mandatory true;
                          description
                            "Delay Normalization Interval";
                        }
    
                        leaf delay-norm-offset {
                          type uint32 {
                            range "0..16777215";
                          }
                          mandatory true;
                          description
                            "Delay Normalization Offset";
                        }
                      }  // container delay-norm-interval
    
                      leaf network-type {
                        type Ospf-network;
                        description
                          "Type of attached network";
                      }
    
                      leaf hello-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Interval between HELLO packets in seconds";
                      }
    
                      leaf loopback-stub-network {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable advertising loopback as a stub
    network";
                      }
    
                      leaf prefix-suppression-secondary {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable prefix suppression for secondary
    addresses";
                      }
    
                      leaf demand-circuit {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable OSPF demand circuit";
                      }
    
                      leaf passive {
                        type boolean;
                        default "false";
                        description
                          "When enabled, prevent sending HELLO packets over
    link";
                      }
    
                      leaf transmit-delay {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        default "1";
                        description
                          "Number of seconds to delay transmission of LSAs";
                      }
    
                      leaf packet-size {
                        type uint32 {
                          range "576..10000";
                        }
                        description
                          "Customize size of OSPF packets upto MTU";
                      }
    
                      leaf ldp-sync {
                        type boolean;
                        description
                          "Enable/Disable MPLS LDP sync";
                      }
    
                      leaf database-filter {
                        type boolean;
                        default "false";
                        description
                          "Filter OSPF LSA during synchronization and
    flooding";
                      }
    
                      container dead-interval-minimal {
                        description
                          "Interval after which a neighbor is declared dead";
                        leaf interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval size in seconds after which a neighbor
    is declared dead";
                        }
    
                        leaf multiplier {
                          type uint32 {
                            range "3..20";
                          }
                          description
                            "Number of Hellos in one second";
                        }
                      }  // container dead-interval-minimal
    
                      container fast-reroute {
                        description
                          "Fast-reroute configuration";
                        container per-link {
                          description
                            "Fast-reroute per-link configuration";
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup or
    UCMP";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-link
    
                        container per-prefix {
                          description
                            "Fast-reroute per-prefix global configuration";
                          container remote-lfa {
                            description
                              "Remote LFA configuration";
                            leaf tunnel {
                              type Ospf-frr-rlfa-tunnel;
                              description
                                "Enable/Disable remote LFA computation";
                            }
    
                            leaf maximum-cost {
                              type uint32 {
                                range
                                  "1..4294967295";
                              }
                              description
                                "Maximum path cost to remote LFA";
                            }
                          }  // container remote-lfa
    
                          container tiebreakers {
                            description
                              "Fast-reroute tiebreakers configurations";
                            list tiebreaker {
                              key "tiebreaker-type";
                              description
                                "Fast-reroute tiebreakers configuration";
                              leaf tiebreaker-type {
                                type Ospf-fast-reroute-tiebreakers-intf;
                                description
                                  "Tiebreaker type";
                              }
    
                              leaf tiebreaker-index {
                                type uint32 {
                                  range "0..255";
                                }
                                mandatory true;
                                description
                                  "Index value for a tiebreaker, 0 to disable";
                              }
                            }  // list tiebreaker
                          }  // container tiebreakers
    
                          leaf topology-independent-lfa {
                            type boolean;
                            description
                              "Topology Independet LFA configuration";
                          }
    
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup or
    UCMP";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-prefix
    
                        leaf fast-reroute-enable {
                          type Ospf-fast-reroute;
                          description
                            "Enable/Disable Fast-reroute per-link or
    per-prefix";
                        }
                      }  // container fast-reroute
    
                      leaf link-down-fast-detect {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable registration for early interface
    down notifications";
                      }
    
                      leaf segment-routing-forwarding {
                        type Ospf-segment-routing-forwarding;
                        description
                          "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                      }
    
                      leaf retransmit-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        default "5";
                        description
                          "Time in seconds between retransmitting lost link
    state advertisements";
                      }
    
                      leaf priority {
                        type uint32 {
                          range "0..255";
                        }
                        default "1";
                        description
                          "Router priority for DR and BDR election";
                      }
    
                      container cost-fallback-anamoly-delay-igp {
                        description
                          "Interface delay igp-metric fallback cost";
                        leaf penalty-type {
                          type Ospf-penalty;
                          description
                            "Type of penalty";
                        }
    
                        leaf value {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Fallback cost of link";
                        }
                      }  // container cost-fallback-anamoly-delay-igp
    
                      leaf flood-reduction {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable OSPF flood reduction";
                      }
    
                      container cost-fallback {
                        description
                          "Interface fallback cost";
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Fallback cost of link";
                        }
    
                        leaf threshold {
                          type uint32 {
                            range "1..4294967";
                          }
                          description
                            "Bandwidth threshold";
                        }
                      }  // container cost-fallback
                    }  // container area-scope
    
                    container name-scopes {
                      description
                        "Name scope configurations";
                      list name-scope {
                        key "interface-name";
                        description
                          "Name scope configuration";
                        container flex-algo-prefix-sids {
                          description
                            "Prefix SID";
                          list flex-algo-prefix-sid {
                            key "flexalgo";
                            description
                              "Flex-algo prefix sid configuration";
                            leaf flexalgo {
                              type uint32 {
                                range "128..255";
                              }
                              description
                                "Flexalgo value";
                            }
    
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value";
                            }
    
                            leaf explicit-null {
                              type boolean;
                              default "false";
                              description
                                "Force Penultimate Hop To Send
    Explicit-Null Label";
                            }
    
                            leaf type {
                              type Ospf-sid;
                              mandatory true;
                              description
                                "OSPF SID Type";
                            }
    
                            leaf n-flag-clear {
                              type boolean;
                              default "false";
                              description
                                "Not a node SID";
                            }
                          }  // list flex-algo-prefix-sid
                        }  // container flex-algo-prefix-sids
    
                        container adjacency-sids {
                          description
                            "Configured Adjacency SID information";
                          list adjacency-sid {
                            key "sid-type sid-value";
                            description
                              "Configured Adjacency SID";
                            leaf sid-type {
                              type Ospf-sid;
                              description
                                "OSPF Adj SID Type";
                            }
    
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              description
                                "SID Value";
                            }
    
                            leaf protected {
                              type boolean;
                              default "false";
                              description
                                "Adj SID eligible for protection";
                            }
    
                            leaf neighbor-address {
                              type inet:ipv4-address-no-zone;
                              default "0.0.0.0";
                              description
                                "Neighbor IP address";
                            }
                          }  // list adjacency-sid
                        }  // container adjacency-sids
    
                        container prefix-sid {
                          presence
                            "Indicates a prefix-sid node is configured.";
                          description
                            "Prefix SID";
                          leaf sid-value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value";
                          }
    
                          leaf explicit-null {
                            type boolean;
                            default "false";
                            description
                              "Force Penultimate Hop To Send Explicit-Null
    Label";
                          }
    
                          leaf type {
                            type Ospf-sid;
                            mandatory true;
                            description
                              "OSPF SID Type";
                          }
    
                          leaf n-flag-clear {
                            type boolean;
                            default "false";
                            description
                              "Not a node SID";
                          }
                        }  // container prefix-sid
    
                        container interface-affinities {
                          description
                            "Configure Flex-algo interface affinity";
                          list interface-affinity {
                            key "attribute";
                            description
                              "Configure interface affinity attribute";
                            leaf attribute {
                              type xr:Cisco-ios-xr-string;
                              description
                                "attribute name";
                            }
                          }  // list interface-affinity
                        }  // container interface-affinities
    
                        container prefix-sid-strict {
                          presence
                            "Indicates a prefix-sid-strict node is configured.";
                          description
                            "Strict Prefix SID";
                          leaf sid-value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value";
                          }
    
                          leaf explicit-null {
                            type boolean;
                            default "false";
                            description
                              "Force Penultimate Hop To Send Explicit-Null
    Label";
                          }
    
                          leaf type {
                            type Ospf-sid;
                            mandatory true;
                            description
                              "OSPF SID Type";
                          }
    
                          leaf n-flag-clear {
                            type boolean;
                            default "false";
                            description
                              "Not a node SID";
                          }
                        }  // container prefix-sid-strict
    
                        leaf advertise-prefix-policy {
                          type string;
                          description
                            "Route policy name for Conditionally
    advertising this prefix";
                        }
    
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Name of Interface to configure";
                        }
    
                        container cost-fallback-anamoly-delay-te {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-te
    
                        container distribute-list {
                          presence
                            "enable distribute-list";
                          description
                            "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                          leaf access-list-name {
                            type string;
                            must
                              "not(../route-policy-name)";
                            description
                              "Access Control List name";
                          }
    
                          leaf route-policy-name {
                            type string;
                            must
                              "not(../access-list-name)";
                            description
                              "Route Policy name";
                          }
                        }  // container distribute-list
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        container bfd {
                          description
                            "BFD configuration";
                          leaf interval {
                            type uint32 {
                              range "3..30000";
                            }
                            units "millisecond";
                            description
                              "Hello interval for BFD sessions created by OSPF";
                          }
    
                          leaf detection-multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detection multiplier for BFD sessions created
    by OSPF";
                          }
    
                          leaf fast-detect-mode {
                            type Bfd-enable-mode;
                            description
                              " use of Bidirectional Forwarding Detection";
                          }
                        }  // container bfd
    
                        leaf weight {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Interface weight";
                        }
    
                        leaf prefix-suppression-primary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for primary
    addresses";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf ldp-sync-igp-shortcuts {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync for igp-shortcuts";
                        }
    
                        leaf ldp-auto-config {
                          type empty;
                          description
                            "Enable MPLS LDP Auto Config";
                        }
    
                        container security {
                          description
                            "Container class for security related
    configuration parameters";
                          container ttl {
                            description
                              "Enabling turns on TTL security";
                            leaf enable {
                              type boolean;
                              description
                                "Enable TTL security";
                            }
    
                            leaf hop-count {
                              type uint32 {
                                range "1..254";
                              }
                              description
                                "Hop count";
                            }
                          }  // container ttl
                        }  // container security
    
                        container delay-norm-interval {
                          presence
                            "Indicates a delay-norm-interval node is configured.";
                          description
                            "Interface delay normalization params";
                          leaf delay-norm-interval {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Interval";
                          }
    
                          leaf delay-norm-offset {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Offset";
                          }
                        }  // container delay-norm-interval
    
                        container neighbors {
                          description
                            "Neighbor router configuration information";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "Router configuration information for a
    particular neighbor";
                            leaf neighbor-address {
                              type inet:ipv4-address-no-zone;
                              description
                                "Neighbor IP address";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              default "0";
                              description
                                "OSPF priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              units "second";
                              default "40";
                              description
                                "OSPF dead router poll-interval in seconds";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              default "1";
                              description
                                "OSPF cost for point-to-multipoint neighbor";
                            }
    
                            leaf database-filter {
                              type boolean;
                              default "false";
                              description
                                "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                            }
                          }  // list neighbor
                        }  // container neighbors
    
                        leaf network-type {
                          type Ospf-network;
                          description
                            "Type of attached network";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf loopback-stub-network {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable advertising loopback as a stub
    network";
                        }
    
                        leaf prefix-suppression-secondary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for secondary
    addresses";
                        }
    
                        leaf demand-circuit {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF demand circuit";
                        }
    
                        leaf passive {
                          type boolean;
                          default "false";
                          description
                            "When enabled, prevent sending HELLO packets over
    link";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "576..10000";
                          }
                          description
                            "Customize size of OSPF packets upto MTU";
                        }
    
                        leaf ldp-sync {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync";
                        }
    
                        leaf database-filter {
                          type boolean;
                          default "false";
                          description
                            "Filter OSPF LSA during synchronization and
    flooding";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-prefix global configuration";
                            container remote-lfa {
                              description
                                "Remote LFA configuration";
                              leaf tunnel {
                                type Ospf-frr-rlfa-tunnel;
                                description
                                  "Enable/Disable remote LFA computation";
                              }
    
                              leaf maximum-cost {
                                type uint32 {
                                  range
                                    "1..4294967295";
                                }
                                description
                                  "Maximum path cost to remote LFA";
                              }
                            }  // container remote-lfa
    
                            container tiebreakers {
                              description
                                "Fast-reroute tiebreakers configurations";
                              list tiebreaker {
                                key "tiebreaker-type";
                                description
                                  "Fast-reroute tiebreakers configuration";
                                leaf tiebreaker-type {
                                  type Ospf-fast-reroute-tiebreakers-intf;
                                  description
                                    "Tiebreaker type";
                                }
    
                                leaf tiebreaker-index {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  mandatory
                                    true;
                                  description
                                    "Index value for a tiebreaker, 0 to disable";
                                }
                              }  // list tiebreaker
                            }  // container tiebreakers
    
                            leaf topology-independent-lfa {
                              type boolean;
                              description
                                "Topology Independet LFA configuration";
                            }
    
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospf-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
    
                        leaf link-down-fast-detect {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable registration for early interface
    down notifications";
                        }
    
                        leaf segment-routing-forwarding {
                          type Ospf-segment-routing-forwarding;
                          description
                            "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          default "1";
                          description
                            "Router priority for DR and BDR election";
                        }
    
                        container cost-fallback-anamoly-delay-igp {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-igp
    
                        leaf flood-reduction {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF flood reduction";
                        }
    
                        container cost-fallback {
                          description
                            "Interface fallback cost";
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..4294967";
                            }
                            description
                              "Bandwidth threshold";
                          }
                        }  // container cost-fallback
                      }  // list name-scope
                    }  // container name-scopes
    
                    container multi-area-interface-scopes {
                      description
                        "Multi Area Interface scope configurations";
                      list multi-area-interface-scope {
                        key "interface-name";
                        description
                          "Multi Area Interface configuration";
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Name of Multi Area Interface to configure";
                        }
    
                        container distribute-list {
                          presence
                            "enable distribute-list";
                          description
                            "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                          leaf access-list-name {
                            type string;
                            must
                              "not(../route-policy-name)";
                            description
                              "Access Control List name";
                          }
    
                          leaf route-policy-name {
                            type string;
                            must
                              "not(../access-list-name)";
                            description
                              "Route Policy name";
                          }
                        }  // container distribute-list
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        container delay-norm-interval {
                          presence
                            "Indicates a delay-norm-interval node is configured.";
                          description
                            "Interface delay normalization params";
                          leaf delay-norm-interval {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Interval";
                          }
    
                          leaf delay-norm-offset {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Offset";
                          }
                        }  // container delay-norm-interval
    
                        container neighbors {
                          description
                            "Neighbor router configuration information";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "Router configuration information for a
    particular neighbor";
                            leaf neighbor-address {
                              type inet:ipv4-address-no-zone;
                              description
                                "Neighbor IP address";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              default "0";
                              description
                                "OSPF priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              units "second";
                              default "40";
                              description
                                "OSPF dead router poll-interval in seconds";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              default "1";
                              description
                                "OSPF cost for point-to-multipoint neighbor";
                            }
    
                            leaf database-filter {
                              type boolean;
                              default "false";
                              description
                                "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                            }
                          }  // list neighbor
                        }  // container neighbors
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf passive {
                          type boolean;
                          default "false";
                          description
                            "When enabled, prevent sending HELLO packets over
    link";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "576..10000";
                          }
                          description
                            "Customize size of OSPF packets upto MTU";
                        }
    
                        leaf database-filter {
                          type boolean;
                          default "false";
                          description
                            "Filter OSPF LSA during synchronization and
    flooding";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-prefix global configuration";
                            container remote-lfa {
                              description
                                "Remote LFA configuration";
                              leaf tunnel {
                                type Ospf-frr-rlfa-tunnel;
                                description
                                  "Enable/Disable remote LFA computation";
                              }
    
                              leaf maximum-cost {
                                type uint32 {
                                  range
                                    "1..4294967295";
                                }
                                description
                                  "Maximum path cost to remote LFA";
                              }
                            }  // container remote-lfa
    
                            container tiebreakers {
                              description
                                "Fast-reroute tiebreakers configurations";
                              list tiebreaker {
                                key "tiebreaker-type";
                                description
                                  "Fast-reroute tiebreakers configuration";
                                leaf tiebreaker-type {
                                  type Ospf-fast-reroute-tiebreakers-intf;
                                  description
                                    "Tiebreaker type";
                                }
    
                                leaf tiebreaker-index {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  mandatory
                                    true;
                                  description
                                    "Index value for a tiebreaker, 0 to disable";
                                }
                              }  // list tiebreaker
                            }  // container tiebreakers
    
                            leaf topology-independent-lfa {
                              type boolean;
                              description
                                "Topology Independet LFA configuration";
                            }
    
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospf-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
    
                        container cost-fallback {
                          description
                            "Interface fallback cost";
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..4294967";
                            }
                            description
                              "Bandwidth threshold";
                          }
                        }  // container cost-fallback
                      }  // list multi-area-interface-scope
                    }  // container multi-area-interface-scopes
    
                    container area-ranges {
                      description
                        "Summarize routes matching address/mask (border
    routers only)";
                      list area-range {
                        key "address netmask";
                        description
                          "Ordering index";
                        leaf not-advertise {
                          type boolean;
                          description
                            "Do not advertise this range";
                        }
    
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          description
                            "IP address to match";
                        }
    
                        leaf netmask {
                          type inet:ipv4-address-no-zone;
                          description
                            "IP netmask for address";
                        }
                      }  // list area-range
                    }  // container area-ranges
    
                    container nssa {
                      description
                        "Specify area as a NSSA area";
                      leaf no-redistribution {
                        type boolean;
                        default "false";
                        description
                          "No redistribution into this NSSA area";
                      }
    
                      leaf default-info-originate {
                        type boolean;
                        default "false";
                        description
                          "Originate Type 7 default into NSSA area";
                      }
    
                      leaf no-summary {
                        type boolean;
                        default "false";
                        description
                          "Do not send summary LSA into NSSA";
                      }
    
                      leaf nssa-def-metric {
                        type uint32 {
                          range "1..16777214";
                        }
                        description
                          "OSPF default metric";
                      }
    
                      leaf metric-type {
                        type Ospf-link-state-metric;
                        default "type2";
                        description
                          "OSPF External metric type";
                      }
                    }  // container nssa
    
                    leaf route-policy-in {
                      type string;
                      description
                        "Configure a route policy for inbound type-3
    lsa filtering";
                    }
    
                    leaf default-cost {
                      type uint32 {
                        range "1..16777215";
                      }
                      default "1";
                      description
                        "Set the summary default-cost of a NSSA/stub
    area";
                    }
    
                    leaf route-policy-out {
                      type string;
                      description
                        "Configure a route policy for outbound type-3
    lsa filtering";
                    }
    
                    leaf stub {
                      type boolean;
                      description
                        "Specify the area as a stub area (send summary
    LSA stub area)";
                    }
    
                    leaf type7-translate-always {
                      type boolean;
                      description
                        "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                    }
    
                    leaf mpls-traffic-eng {
                      type empty;
                      description
                        "Configure an OSPF area to run MPLS Traffic
    Engineering";
                    }
    
                    leaf external-out {
                      type boolean;
                      description
                        "Enable/Disable an OSPF area to advertise
    intra-area prefixes out of this area as external";
                    }
    
                    leaf summary-in {
                      type boolean;
                      description
                        "Enable/Disable an OSPF area to advertise
    external prefixes into this area as summary";
                    }
    
                    leaf segment-routing {
                      type Ospf-segment-routing;
                      description
                        "segment-routing configuration Applicable only in
    Default VRF";
                    }
                  }  // list area-address
    
                  list area-area-id {
                    key "area-id";
                    description
                      "Configuration for a particular area";
                    leaf area-id {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Area ID if in integer format";
                    }
    
                    container virtual-link-scopes {
                      description
                        "Virtual Link scope configurations";
                      list virtual-link-scope {
                        key "address";
                        description
                          "Virtual Link configuration";
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Router ID of virtual link neighbor";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
                      }  // list virtual-link-scope
                    }  // container virtual-link-scopes
    
                    container sham-link-scopes {
                      description
                        "Sham Link scope configurations";
                      list sham-link-scope {
                        key "source-address destination-address";
                        description
                          "Sham Link configuration";
                        leaf source {
                          type inet:ipv4-address-no-zone;
                          description
                            "Address of the local sham-link endpoint.
    Enter an IP Address";
                        }
    
                        leaf source-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Address of the local sham-link endpoint";
                        }
    
                        leaf destination-address {
                          type inet:ipv4-address-no-zone;
                          description
                            "Address of the remote sham-link endpoint";
                        }
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
                      }  // list sham-link-scope
                    }  // container sham-link-scopes
    
                    container area-scope {
                      description
                        "Area scope configuration";
                      container cost-fallback-anamoly-delay-te {
                        description
                          "Interface delay igp-metric fallback cost";
                        leaf penalty-type {
                          type Ospf-penalty;
                          description
                            "Type of penalty";
                        }
    
                        leaf value {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Fallback cost of link";
                        }
                      }  // container cost-fallback-anamoly-delay-te
    
                      container distribute-list {
                        presence
                          "enable distribute-list";
                        description
                          "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                        leaf access-list-name {
                          type string;
                          must
                            "not(../route-policy-name)";
                          description
                            "Access Control List name";
                        }
    
                        leaf route-policy-name {
                          type string;
                          must
                            "not(../access-list-name)";
                          description
                            "Route Policy name";
                        }
                      }  // container distribute-list
    
                      leaf cost {
                        type uint32 {
                          range "1..65535";
                        }
                        description
                          "Interface cost";
                      }
    
                      container bfd {
                        description
                          "BFD configuration";
                        leaf interval {
                          type uint32 {
                            range "3..30000";
                          }
                          units "millisecond";
                          description
                            "Hello interval for BFD sessions created by OSPF";
                        }
    
                        leaf detection-multiplier {
                          type uint32 {
                            range "2..50";
                          }
                          description
                            "Detection multiplier for BFD sessions created
    by OSPF";
                        }
    
                        leaf fast-detect-mode {
                          type Bfd-enable-mode;
                          description
                            " use of Bidirectional Forwarding Detection";
                        }
                      }  // container bfd
    
                      leaf weight {
                        type uint32 {
                          range "1..16777214";
                        }
                        description
                          "Interface weight";
                      }
    
                      leaf prefix-suppression-primary {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable prefix suppression for primary
    addresses";
                      }
    
                      leaf mtu-ignore {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable ignoring of MTU in DBD packets";
                      }
    
                      container authentication {
                        description
                          "Authentication";
                        container type {
                          description
                            "Authentication type";
                          leaf authen-type {
                            type Ospf-authentication;
                            description
                              "Authentication type code ";
                          }
    
                          leaf keychain-authen-type {
                            type Ospf-keychain-auth;
                            description
                              "Keychain authentication type";
                          }
    
                          leaf keychain-name {
                            type string;
                            description
                              "Keychain name";
                          }
                        }  // container type
    
                        container message-digest-keys {
                          description
                            "Message digest authentication password (key)
    configurations, first 16 chars used";
                          list message-digest-key {
                            key "key-id";
                            description
                              "Message digest authentication password (key)
    configuration";
                            leaf key-id {
                              type uint32 {
                                range "1..255";
                              }
                              description
                                "Key ID";
                            }
    
                            leaf password {
                              type xr:Proprietary-password;
                              mandatory true;
                              description
                                "Password";
                            }
                          }  // list message-digest-key
                        }  // container message-digest-keys
    
                        leaf key {
                          type xr:Proprietary-password;
                          description
                            "Authentication key configuration";
                        }
                      }  // container authentication
    
                      leaf ldp-sync-igp-shortcuts {
                        type boolean;
                        description
                          "Enable/Disable MPLS LDP sync for igp-shortcuts";
                      }
    
                      leaf ldp-auto-config {
                        type empty;
                        description
                          "Enable MPLS LDP Auto Config";
                      }
    
                      container security {
                        description
                          "Container class for security related
    configuration parameters";
                        container ttl {
                          description
                            "Enabling turns on TTL security";
                          leaf enable {
                            type boolean;
                            description
                              "Enable TTL security";
                          }
    
                          leaf hop-count {
                            type uint32 {
                              range "1..254";
                            }
                            description
                              "Hop count";
                          }
                        }  // container ttl
                      }  // container security
    
                      container delay-norm-interval {
                        presence
                          "Indicates a delay-norm-interval node is configured.";
                        description
                          "Interface delay normalization params";
                        leaf delay-norm-interval {
                          type uint32 {
                            range "1..16777215";
                          }
                          mandatory true;
                          description
                            "Delay Normalization Interval";
                        }
    
                        leaf delay-norm-offset {
                          type uint32 {
                            range "0..16777215";
                          }
                          mandatory true;
                          description
                            "Delay Normalization Offset";
                        }
                      }  // container delay-norm-interval
    
                      leaf network-type {
                        type Ospf-network;
                        description
                          "Type of attached network";
                      }
    
                      leaf hello-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        description
                          "Interval between HELLO packets in seconds";
                      }
    
                      leaf loopback-stub-network {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable advertising loopback as a stub
    network";
                      }
    
                      leaf prefix-suppression-secondary {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable prefix suppression for secondary
    addresses";
                      }
    
                      leaf demand-circuit {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable OSPF demand circuit";
                      }
    
                      leaf passive {
                        type boolean;
                        default "false";
                        description
                          "When enabled, prevent sending HELLO packets over
    link";
                      }
    
                      leaf transmit-delay {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        default "1";
                        description
                          "Number of seconds to delay transmission of LSAs";
                      }
    
                      leaf packet-size {
                        type uint32 {
                          range "576..10000";
                        }
                        description
                          "Customize size of OSPF packets upto MTU";
                      }
    
                      leaf ldp-sync {
                        type boolean;
                        description
                          "Enable/Disable MPLS LDP sync";
                      }
    
                      leaf database-filter {
                        type boolean;
                        default "false";
                        description
                          "Filter OSPF LSA during synchronization and
    flooding";
                      }
    
                      container dead-interval-minimal {
                        description
                          "Interval after which a neighbor is declared dead";
                        leaf interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval size in seconds after which a neighbor
    is declared dead";
                        }
    
                        leaf multiplier {
                          type uint32 {
                            range "3..20";
                          }
                          description
                            "Number of Hellos in one second";
                        }
                      }  // container dead-interval-minimal
    
                      container fast-reroute {
                        description
                          "Fast-reroute configuration";
                        container per-link {
                          description
                            "Fast-reroute per-link configuration";
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup or
    UCMP";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-link
    
                        container per-prefix {
                          description
                            "Fast-reroute per-prefix global configuration";
                          container remote-lfa {
                            description
                              "Remote LFA configuration";
                            leaf tunnel {
                              type Ospf-frr-rlfa-tunnel;
                              description
                                "Enable/Disable remote LFA computation";
                            }
    
                            leaf maximum-cost {
                              type uint32 {
                                range
                                  "1..4294967295";
                              }
                              description
                                "Maximum path cost to remote LFA";
                            }
                          }  // container remote-lfa
    
                          container tiebreakers {
                            description
                              "Fast-reroute tiebreakers configurations";
                            list tiebreaker {
                              key "tiebreaker-type";
                              description
                                "Fast-reroute tiebreakers configuration";
                              leaf tiebreaker-type {
                                type Ospf-fast-reroute-tiebreakers-intf;
                                description
                                  "Tiebreaker type";
                              }
    
                              leaf tiebreaker-index {
                                type uint32 {
                                  range "0..255";
                                }
                                mandatory true;
                                description
                                  "Index value for a tiebreaker, 0 to disable";
                              }
                            }  // list tiebreaker
                          }  // container tiebreakers
    
                          leaf topology-independent-lfa {
                            type boolean;
                            description
                              "Topology Independet LFA configuration";
                          }
    
                          leaf fast-reroute-use-candidate-only {
                            type boolean;
                            default "false";
                            description
                              "Use only interfaces on the candidate list as a
    backup path";
                          }
    
                          container candidate-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                            list candidate-interface {
                              key "interface-name";
                              description
                                "Candidate backup interface";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list candidate-interface
                          }  // container candidate-interfaces
    
                          container exclude-interfaces {
                            description
                              "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                            list exclude-interface {
                              key "interface-name";
                              description
                                "Exclude an interface from becoming a backup or
    UCMP";
                              leaf interface-name {
                                type xr:Interface-name;
                                description
                                  "Interface";
                              }
                            }  // list exclude-interface
                          }  // container exclude-interfaces
                        }  // container per-prefix
    
                        leaf fast-reroute-enable {
                          type Ospf-fast-reroute;
                          description
                            "Enable/Disable Fast-reroute per-link or
    per-prefix";
                        }
                      }  // container fast-reroute
    
                      leaf link-down-fast-detect {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable registration for early interface
    down notifications";
                      }
    
                      leaf segment-routing-forwarding {
                        type Ospf-segment-routing-forwarding;
                        description
                          "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                      }
    
                      leaf retransmit-interval {
                        type uint32 {
                          range "1..65535";
                        }
                        units "second";
                        default "5";
                        description
                          "Time in seconds between retransmitting lost link
    state advertisements";
                      }
    
                      leaf priority {
                        type uint32 {
                          range "0..255";
                        }
                        default "1";
                        description
                          "Router priority for DR and BDR election";
                      }
    
                      container cost-fallback-anamoly-delay-igp {
                        description
                          "Interface delay igp-metric fallback cost";
                        leaf penalty-type {
                          type Ospf-penalty;
                          description
                            "Type of penalty";
                        }
    
                        leaf value {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Fallback cost of link";
                        }
                      }  // container cost-fallback-anamoly-delay-igp
    
                      leaf flood-reduction {
                        type boolean;
                        default "false";
                        description
                          "Enable/Disable OSPF flood reduction";
                      }
    
                      container cost-fallback {
                        description
                          "Interface fallback cost";
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Fallback cost of link";
                        }
    
                        leaf threshold {
                          type uint32 {
                            range "1..4294967";
                          }
                          description
                            "Bandwidth threshold";
                        }
                      }  // container cost-fallback
                    }  // container area-scope
    
                    container name-scopes {
                      description
                        "Name scope configurations";
                      list name-scope {
                        key "interface-name";
                        description
                          "Name scope configuration";
                        container flex-algo-prefix-sids {
                          description
                            "Prefix SID";
                          list flex-algo-prefix-sid {
                            key "flexalgo";
                            description
                              "Flex-algo prefix sid configuration";
                            leaf flexalgo {
                              type uint32 {
                                range "128..255";
                              }
                              description
                                "Flexalgo value";
                            }
    
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              mandatory true;
                              description
                                "SID value";
                            }
    
                            leaf explicit-null {
                              type boolean;
                              default "false";
                              description
                                "Force Penultimate Hop To Send
    Explicit-Null Label";
                            }
    
                            leaf type {
                              type Ospf-sid;
                              mandatory true;
                              description
                                "OSPF SID Type";
                            }
    
                            leaf n-flag-clear {
                              type boolean;
                              default "false";
                              description
                                "Not a node SID";
                            }
                          }  // list flex-algo-prefix-sid
                        }  // container flex-algo-prefix-sids
    
                        container adjacency-sids {
                          description
                            "Configured Adjacency SID information";
                          list adjacency-sid {
                            key "sid-type sid-value";
                            description
                              "Configured Adjacency SID";
                            leaf sid-type {
                              type Ospf-sid;
                              description
                                "OSPF Adj SID Type";
                            }
    
                            leaf sid-value {
                              type uint32 {
                                range
                                  "0..1048575";
                              }
                              description
                                "SID Value";
                            }
    
                            leaf protected {
                              type boolean;
                              default "false";
                              description
                                "Adj SID eligible for protection";
                            }
    
                            leaf neighbor-address {
                              type inet:ipv4-address-no-zone;
                              default "0.0.0.0";
                              description
                                "Neighbor IP address";
                            }
                          }  // list adjacency-sid
                        }  // container adjacency-sids
    
                        container prefix-sid {
                          presence
                            "Indicates a prefix-sid node is configured.";
                          description
                            "Prefix SID";
                          leaf sid-value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value";
                          }
    
                          leaf explicit-null {
                            type boolean;
                            default "false";
                            description
                              "Force Penultimate Hop To Send Explicit-Null
    Label";
                          }
    
                          leaf type {
                            type Ospf-sid;
                            mandatory true;
                            description
                              "OSPF SID Type";
                          }
    
                          leaf n-flag-clear {
                            type boolean;
                            default "false";
                            description
                              "Not a node SID";
                          }
                        }  // container prefix-sid
    
                        container interface-affinities {
                          description
                            "Configure Flex-algo interface affinity";
                          list interface-affinity {
                            key "attribute";
                            description
                              "Configure interface affinity attribute";
                            leaf attribute {
                              type xr:Cisco-ios-xr-string;
                              description
                                "attribute name";
                            }
                          }  // list interface-affinity
                        }  // container interface-affinities
    
                        container prefix-sid-strict {
                          presence
                            "Indicates a prefix-sid-strict node is configured.";
                          description
                            "Strict Prefix SID";
                          leaf sid-value {
                            type uint32 {
                              range "0..1048575";
                            }
                            mandatory true;
                            description
                              "SID value";
                          }
    
                          leaf explicit-null {
                            type boolean;
                            default "false";
                            description
                              "Force Penultimate Hop To Send Explicit-Null
    Label";
                          }
    
                          leaf type {
                            type Ospf-sid;
                            mandatory true;
                            description
                              "OSPF SID Type";
                          }
    
                          leaf n-flag-clear {
                            type boolean;
                            default "false";
                            description
                              "Not a node SID";
                          }
                        }  // container prefix-sid-strict
    
                        leaf advertise-prefix-policy {
                          type string;
                          description
                            "Route policy name for Conditionally
    advertising this prefix";
                        }
    
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Name of Interface to configure";
                        }
    
                        container cost-fallback-anamoly-delay-te {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-te
    
                        container distribute-list {
                          presence
                            "enable distribute-list";
                          description
                            "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                          leaf access-list-name {
                            type string;
                            must
                              "not(../route-policy-name)";
                            description
                              "Access Control List name";
                          }
    
                          leaf route-policy-name {
                            type string;
                            must
                              "not(../access-list-name)";
                            description
                              "Route Policy name";
                          }
                        }  // container distribute-list
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        container bfd {
                          description
                            "BFD configuration";
                          leaf interval {
                            type uint32 {
                              range "3..30000";
                            }
                            units "millisecond";
                            description
                              "Hello interval for BFD sessions created by OSPF";
                          }
    
                          leaf detection-multiplier {
                            type uint32 {
                              range "2..50";
                            }
                            description
                              "Detection multiplier for BFD sessions created
    by OSPF";
                          }
    
                          leaf fast-detect-mode {
                            type Bfd-enable-mode;
                            description
                              " use of Bidirectional Forwarding Detection";
                          }
                        }  // container bfd
    
                        leaf weight {
                          type uint32 {
                            range "1..16777214";
                          }
                          description
                            "Interface weight";
                        }
    
                        leaf prefix-suppression-primary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for primary
    addresses";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        leaf ldp-sync-igp-shortcuts {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync for igp-shortcuts";
                        }
    
                        leaf ldp-auto-config {
                          type empty;
                          description
                            "Enable MPLS LDP Auto Config";
                        }
    
                        container security {
                          description
                            "Container class for security related
    configuration parameters";
                          container ttl {
                            description
                              "Enabling turns on TTL security";
                            leaf enable {
                              type boolean;
                              description
                                "Enable TTL security";
                            }
    
                            leaf hop-count {
                              type uint32 {
                                range "1..254";
                              }
                              description
                                "Hop count";
                            }
                          }  // container ttl
                        }  // container security
    
                        container delay-norm-interval {
                          presence
                            "Indicates a delay-norm-interval node is configured.";
                          description
                            "Interface delay normalization params";
                          leaf delay-norm-interval {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Interval";
                          }
    
                          leaf delay-norm-offset {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Offset";
                          }
                        }  // container delay-norm-interval
    
                        container neighbors {
                          description
                            "Neighbor router configuration information";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "Router configuration information for a
    particular neighbor";
                            leaf neighbor-address {
                              type inet:ipv4-address-no-zone;
                              description
                                "Neighbor IP address";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              default "0";
                              description
                                "OSPF priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              units "second";
                              default "40";
                              description
                                "OSPF dead router poll-interval in seconds";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              default "1";
                              description
                                "OSPF cost for point-to-multipoint neighbor";
                            }
    
                            leaf database-filter {
                              type boolean;
                              default "false";
                              description
                                "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                            }
                          }  // list neighbor
                        }  // container neighbors
    
                        leaf network-type {
                          type Ospf-network;
                          description
                            "Type of attached network";
                        }
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf loopback-stub-network {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable advertising loopback as a stub
    network";
                        }
    
                        leaf prefix-suppression-secondary {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable prefix suppression for secondary
    addresses";
                        }
    
                        leaf demand-circuit {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF demand circuit";
                        }
    
                        leaf passive {
                          type boolean;
                          default "false";
                          description
                            "When enabled, prevent sending HELLO packets over
    link";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "576..10000";
                          }
                          description
                            "Customize size of OSPF packets upto MTU";
                        }
    
                        leaf ldp-sync {
                          type boolean;
                          description
                            "Enable/Disable MPLS LDP sync";
                        }
    
                        leaf database-filter {
                          type boolean;
                          default "false";
                          description
                            "Filter OSPF LSA during synchronization and
    flooding";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-prefix global configuration";
                            container remote-lfa {
                              description
                                "Remote LFA configuration";
                              leaf tunnel {
                                type Ospf-frr-rlfa-tunnel;
                                description
                                  "Enable/Disable remote LFA computation";
                              }
    
                              leaf maximum-cost {
                                type uint32 {
                                  range
                                    "1..4294967295";
                                }
                                description
                                  "Maximum path cost to remote LFA";
                              }
                            }  // container remote-lfa
    
                            container tiebreakers {
                              description
                                "Fast-reroute tiebreakers configurations";
                              list tiebreaker {
                                key "tiebreaker-type";
                                description
                                  "Fast-reroute tiebreakers configuration";
                                leaf tiebreaker-type {
                                  type Ospf-fast-reroute-tiebreakers-intf;
                                  description
                                    "Tiebreaker type";
                                }
    
                                leaf tiebreaker-index {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  mandatory
                                    true;
                                  description
                                    "Index value for a tiebreaker, 0 to disable";
                                }
                              }  // list tiebreaker
                            }  // container tiebreakers
    
                            leaf topology-independent-lfa {
                              type boolean;
                              description
                                "Topology Independet LFA configuration";
                            }
    
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospf-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
    
                        leaf link-down-fast-detect {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable registration for early interface
    down notifications";
                        }
    
                        leaf segment-routing-forwarding {
                          type Ospf-segment-routing-forwarding;
                          description
                            "segment-routing forwarding configuration
    Applicableonly in Default VRF";
                        }
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
    
                        leaf priority {
                          type uint32 {
                            range "0..255";
                          }
                          default "1";
                          description
                            "Router priority for DR and BDR election";
                        }
    
                        container cost-fallback-anamoly-delay-igp {
                          description
                            "Interface delay igp-metric fallback cost";
                          leaf penalty-type {
                            type Ospf-penalty;
                            description
                              "Type of penalty";
                          }
    
                          leaf value {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
                        }  // container cost-fallback-anamoly-delay-igp
    
                        leaf flood-reduction {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable OSPF flood reduction";
                        }
    
                        container cost-fallback {
                          description
                            "Interface fallback cost";
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..4294967";
                            }
                            description
                              "Bandwidth threshold";
                          }
                        }  // container cost-fallback
                      }  // list name-scope
                    }  // container name-scopes
    
                    container multi-area-interface-scopes {
                      description
                        "Multi Area Interface scope configurations";
                      list multi-area-interface-scope {
                        key "interface-name";
                        description
                          "Multi Area Interface configuration";
                        leaf interface-name {
                          type xr:Interface-name;
                          description
                            "Name of Multi Area Interface to configure";
                        }
    
                        container distribute-list {
                          presence
                            "enable distribute-list";
                          description
                            "Filter networks intalled to RIB (disable as ACL
    name means filtering is disabled)";
                          leaf access-list-name {
                            type string;
                            must
                              "not(../route-policy-name)";
                            description
                              "Access Control List name";
                          }
    
                          leaf route-policy-name {
                            type string;
                            must
                              "not(../access-list-name)";
                            description
                              "Route Policy name";
                          }
                        }  // container distribute-list
    
                        leaf cost {
                          type uint32 {
                            range "1..65535";
                          }
                          description
                            "Interface cost";
                        }
    
                        leaf mtu-ignore {
                          type boolean;
                          default "false";
                          description
                            "Enable/Disable ignoring of MTU in DBD packets";
                        }
    
                        container authentication {
                          description
                            "Authentication";
                          container type {
                            description
                              "Authentication type";
                            leaf authen-type {
                              type Ospf-authentication;
                              description
                                "Authentication type code ";
                            }
    
                            leaf keychain-authen-type {
                              type Ospf-keychain-auth;
                              description
                                "Keychain authentication type";
                            }
    
                            leaf keychain-name {
                              type string;
                              description
                                "Keychain name";
                            }
                          }  // container type
    
                          container message-digest-keys {
                            description
                              "Message digest authentication password (key)
    configurations, first 16 chars used";
                            list message-digest-key {
                              key "key-id";
                              description
                                "Message digest authentication password (key)
    configuration";
                              leaf key-id {
                                type uint32 {
                                  range "1..255";
                                }
                                description
                                  "Key ID";
                              }
    
                              leaf password {
                                type xr:Proprietary-password;
                                mandatory true;
                                description
                                  "Password";
                              }
                            }  // list message-digest-key
                          }  // container message-digest-keys
    
                          leaf key {
                            type xr:Proprietary-password;
                            description
                              "Authentication key configuration";
                          }
                        }  // container authentication
    
                        container delay-norm-interval {
                          presence
                            "Indicates a delay-norm-interval node is configured.";
                          description
                            "Interface delay normalization params";
                          leaf delay-norm-interval {
                            type uint32 {
                              range
                                "1..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Interval";
                          }
    
                          leaf delay-norm-offset {
                            type uint32 {
                              range
                                "0..16777215";
                            }
                            mandatory true;
                            description
                              "Delay Normalization Offset";
                          }
                        }  // container delay-norm-interval
    
                        container neighbors {
                          description
                            "Neighbor router configuration information";
                          list neighbor {
                            key "neighbor-address";
                            description
                              "Router configuration information for a
    particular neighbor";
                            leaf neighbor-address {
                              type inet:ipv4-address-no-zone;
                              description
                                "Neighbor IP address";
                            }
    
                            leaf priority {
                              type uint32 {
                                range "0..255";
                              }
                              default "0";
                              description
                                "OSPF priority of non-broadcast neighbor";
                            }
    
                            leaf poll-interval {
                              type uint32 {
                                range "0..65535";
                              }
                              units "second";
                              default "40";
                              description
                                "OSPF dead router poll-interval in seconds";
                            }
    
                            leaf cost {
                              type uint32 {
                                range "1..65535";
                              }
                              default "1";
                              description
                                "OSPF cost for point-to-multipoint neighbor";
                            }
    
                            leaf database-filter {
                              type boolean;
                              default "false";
                              description
                                "Database filter: Filter OSPF LSA during
    synchronization and flooding for
    point-to-multipoint";
                            }
                          }  // list neighbor
                        }  // container neighbors
    
                        leaf hello-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          description
                            "Interval between HELLO packets in seconds";
                        }
    
                        leaf passive {
                          type boolean;
                          default "false";
                          description
                            "When enabled, prevent sending HELLO packets over
    link";
                        }
    
                        leaf transmit-delay {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "1";
                          description
                            "Number of seconds to delay transmission of LSAs";
                        }
    
                        leaf packet-size {
                          type uint32 {
                            range "576..10000";
                          }
                          description
                            "Customize size of OSPF packets upto MTU";
                        }
    
                        leaf database-filter {
                          type boolean;
                          default "false";
                          description
                            "Filter OSPF LSA during synchronization and
    flooding";
                        }
    
                        container dead-interval-minimal {
                          description
                            "Interval after which a neighbor is declared dead";
                          leaf interval {
                            type uint32 {
                              range "1..65535";
                            }
                            units "second";
                            description
                              "Interval size in seconds after which a neighbor
    is declared dead";
                          }
    
                          leaf multiplier {
                            type uint32 {
                              range "3..20";
                            }
                            description
                              "Number of Hellos in one second";
                          }
                        }  // container dead-interval-minimal
    
                        container fast-reroute {
                          description
                            "Fast-reroute configuration";
                          container per-link {
                            description
                              "Fast-reroute per-link configuration";
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-link
    
                          container per-prefix {
                            description
                              "Fast-reroute per-prefix global configuration";
                            container remote-lfa {
                              description
                                "Remote LFA configuration";
                              leaf tunnel {
                                type Ospf-frr-rlfa-tunnel;
                                description
                                  "Enable/Disable remote LFA computation";
                              }
    
                              leaf maximum-cost {
                                type uint32 {
                                  range
                                    "1..4294967295";
                                }
                                description
                                  "Maximum path cost to remote LFA";
                              }
                            }  // container remote-lfa
    
                            container tiebreakers {
                              description
                                "Fast-reroute tiebreakers configurations";
                              list tiebreaker {
                                key "tiebreaker-type";
                                description
                                  "Fast-reroute tiebreakers configuration";
                                leaf tiebreaker-type {
                                  type Ospf-fast-reroute-tiebreakers-intf;
                                  description
                                    "Tiebreaker type";
                                }
    
                                leaf tiebreaker-index {
                                  type uint32 {
                                    range
                                      "0..255";
                                  }
                                  mandatory
                                    true;
                                  description
                                    "Index value for a tiebreaker, 0 to disable";
                                }
                              }  // list tiebreaker
                            }  // container tiebreakers
    
                            leaf topology-independent-lfa {
                              type boolean;
                              description
                                "Topology Independet LFA configuration";
                            }
    
                            leaf fast-reroute-use-candidate-only {
                              type boolean;
                              default "false";
                              description
                                "Use only interfaces on the candidate list as a
    backup path";
                            }
    
                            container candidate-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix candidate
    interface configuration";
                              list candidate-interface {
                                key "interface-name";
                                description
                                  "Candidate backup interface";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list candidate-interface
                            }  // container candidate-interfaces
    
                            container exclude-interfaces {
                              description
                                "Fast-reroute per-link/per-prefix or UCMP exclude
    interface configuration";
                              list exclude-interface {
                                key "interface-name";
                                description
                                  "Exclude an interface from becoming a backup or
    UCMP";
                                leaf interface-name {
                                  type xr:Interface-name;
                                  description
                                    "Interface";
                                }
                              }  // list exclude-interface
                            }  // container exclude-interfaces
                          }  // container per-prefix
    
                          leaf fast-reroute-enable {
                            type Ospf-fast-reroute;
                            description
                              "Enable/Disable Fast-reroute per-link or
    per-prefix";
                          }
                        }  // container fast-reroute
    
                        leaf retransmit-interval {
                          type uint32 {
                            range "1..65535";
                          }
                          units "second";
                          default "5";
                          description
                            "Time in seconds between retransmitting lost link
    state advertisements";
                        }
    
                        container cost-fallback {
                          description
                            "Interface fallback cost";
                          leaf cost {
                            type uint32 {
                              range "1..65535";
                            }
                            description
                              "Fallback cost of link";
                          }
    
                          leaf threshold {
                            type uint32 {
                              range "1..4294967";
                            }
                            description
                              "Bandwidth threshold";
                          }
                        }  // container cost-fallback
                      }  // list multi-area-interface-scope
                    }  // container multi-area-interface-scopes
    
                    container area-ranges {
                      description
                        "Summarize routes matching address/mask (border
    routers only)";
                      list area-range {
                        key "address netmask";
                        description
                          "Ordering index";
                        leaf not-advertise {
                          type boolean;
                          description
                            "Do not advertise this range";
                        }
    
                        leaf address {
                          type inet:ipv4-address-no-zone;
                          description
                            "IP address to match";
                        }
    
                        leaf netmask {
                          type inet:ipv4-address-no-zone;
                          description
                            "IP netmask for address";
                        }
                      }  // list area-range
                    }  // container area-ranges
    
                    container nssa {
                      description
                        "Specify area as a NSSA area";
                      leaf no-redistribution {
                        type boolean;
                        default "false";
                        description
                          "No redistribution into this NSSA area";
                      }
    
                      leaf default-info-originate {
                        type boolean;
                        default "false";
                        description
                          "Originate Type 7 default into NSSA area";
                      }
    
                      leaf no-summary {
                        type boolean;
                        default "false";
                        description
                          "Do not send summary LSA into NSSA";
                      }
    
                      leaf nssa-def-metric {
                        type uint32 {
                          range "1..16777214";
                        }
                        description
                          "OSPF default metric";
                      }
    
                      leaf metric-type {
                        type Ospf-link-state-metric;
                        default "type2";
                        description
                          "OSPF External metric type";
                      }
                    }  // container nssa
    
                    leaf route-policy-in {
                      type string;
                      description
                        "Configure a route policy for inbound type-3
    lsa filtering";
                    }
    
                    leaf default-cost {
                      type uint32 {
                        range "1..16777215";
                      }
                      default "1";
                      description
                        "Set the summary default-cost of a NSSA/stub
    area";
                    }
    
                    leaf route-policy-out {
                      type string;
                      description
                        "Configure a route policy for outbound type-3
    lsa filtering";
                    }
    
                    leaf stub {
                      type boolean;
                      description
                        "Specify the area as a stub area (send summary
    LSA stub area)";
                    }
    
                    leaf type7-translate-always {
                      type boolean;
                      description
                        "Translate Type 7 to Type 5, even if not
    elected NSSA translator";
                    }
    
                    leaf mpls-traffic-eng {
                      type empty;
                      description
                        "Configure an OSPF area to run MPLS Traffic
    Engineering";
                    }
    
                    leaf external-out {
                      type boolean;
                      description
                        "Enable/Disable an OSPF area to advertise
    intra-area prefixes out of this area as external";
                    }
    
                    leaf summary-in {
                      type boolean;
                      description
                        "Enable/Disable an OSPF area to advertise
    external prefixes into this area as summary";
                    }
    
                    leaf segment-routing {
                      type Ospf-segment-routing;
                      description
                        "segment-routing configuration Applicable only in
    Default VRF";
                    }
                  }  // list area-area-id
                }  // container area-addresses
    
                container timers {
                  description
                    "Adjust routing timers";
                  container spf-timer {
                    description
                      "OSPF SPF timers (in milliseconds)";
                    leaf initial-delay {
                      type uint32 {
                        range "1..600000";
                      }
                      units "millisecond";
                      default "5000";
                      description
                        "Number of milliseconds before first SPF run";
                    }
    
                    leaf backoff-increment {
                      type uint32 {
                        range "1..600000";
                      }
                      units "millisecond";
                      default "10000";
                      description
                        "Number of milliseconds delay between
    successive SPF runs";
                    }
    
                    leaf max-delay {
                      type uint32 {
                        range "1..600000";
                      }
                      units "millisecond";
                      default "10000";
                      description
                        "Max number of milliseconds between consecutive
    SPF calculations";
                    }
                  }  // container spf-timer
    
                  container lsa-generation-timer {
                    description
                      "OSPF LSA timers (in milliseconds)";
                    leaf initial-delay {
                      type uint32 {
                        range "0..600000";
                      }
                      units "millisecond";
                      default "50";
                      description
                        "Number of milliseconds before generating first
    LSA";
                    }
    
                    leaf backoff-increment {
                      type uint32 {
                        range "1..600000";
                      }
                      units "millisecond";
                      default "200";
                      description
                        "Number of milliseconds delay between
    successive LSA builds";
                    }
    
                    leaf max-delay {
                      type uint32 {
                        range "1..600000";
                      }
                      units "millisecond";
                      default "200";
                      description
                        "Max number of milliseconds between consecutive
    LSA builds ";
                    }
                  }  // container lsa-generation-timer
    
                  leaf lsa-pacing-flood {
                    type uint32 {
                      range "5..100";
                    }
                    units "second";
                    description
                      "Seconds between group of LSAs being refreshed
    or maxaged";
                  }
    
                  leaf fast-reroute-timer {
                    type uint32 {
                      range "50..600000";
                    }
                    units "millisecond";
                    default "500";
                    description
                      "Number of ms between end of SPF and start of
    IPFRR computation";
                  }
    
                  leaf lsa-refresh {
                    type uint32 {
                      range "1800..2700";
                    }
                    units "second";
                    default "1800";
                    description
                      "How often self-originated LSAs should be
    refreshed";
                  }
    
                  leaf lsa-group-pacing {
                    type uint32 {
                      range "10..1800";
                    }
                    units "second";
                    default "240";
                    description
                      "LSA group pacing timer (Seconds between group
    of LSAs being refreshed or maxaged)";
                  }
    
                  leaf lsa-min-arrival {
                    type uint32 {
                      range "0..600000";
                    }
                    units "millisecond";
                    default "100";
                    description
                      "MinLSArrival timer (minimum interval in
    milliseconds between accepting the same LSA)";
                  }
                }  // container timers
    
                leaf default-metric {
                  type uint32 {
                    range "1..16777214";
                  }
                  default "1";
                  description
                    "Set default metric of redistributed routes";
                }
              }  // container default-vrf
    
              leaf nsr {
                type Nsr;
                default "true";
                description
                  "Enable non-stop routing";
              }
    
              leaf protocol-shutdown {
                type Ospf-shutdown;
                description
                  "Type of protocol shutdown";
              }
    
              leaf process-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Name for this OSPF process";
              }
            }  // list process
          }  // container processes
    
          container global {
            description
              "OSPF global configuration data";
            leaf dns-name-lookup {
              type empty;
              description
                "Display OSPF router ids as DNS names";
            }
          }  // container global
        }  // container ospf
      }  // module Cisco-IOS-XR-ipv4-ospf-cfg
    

© 2024 YumaWorks, Inc. All rights reserved.