This module contains a collection of YANG definitions for Cisco IOS-XR router-ospf package configuration. This YANG module augm...
Version: 2021-03-26
module Cisco-IOS-XR-um-router-ospf-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-router-ospf-cfg"; prefix um-router-ospf-cfg; import cisco-semver { prefix semver; } import Cisco-IOS-XR-types { prefix xr; } import ietf-inet-types { prefix inet; } import Cisco-IOS-XR-um-snmp-server-cfg { prefix a1; } import tailf-common { prefix tailf; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 West Tasman Drive San Jose, CA 95134 Tel: +1 800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for Cisco IOS-XR router-ospf package configuration. This YANG module augments the modules with configuration data. Copyright (c) 2019-2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-03-26" { description "Added leaf dead-interval-minimal-hello-multiplier 2021-02-10 Added disable container in area_scope link-down fast-detect container 2021-01-08 Added microloop avoidance disable in flex-algos container 2020-12-24 Added cost-fallback anomaly container 2020-09-28 - Changed log/adjacency/changes container as presence 2020-05-22 - Added container fast-reroute and its child nodes"; } revision "2020-05-21" { description "- Added container srlg-protection and its child nodes 2020-05-06 - Added container srlg and delay and its child nodes - Added container advertise to its child nodes 2020-03-10 Made separate nodes for avoidance-rib-update-delay and ietf-helper"; } revision "2019-06-10" { description "Establish semantic version baseline."; } revision "2019-03-30" { description "Initial version"; } semver:module-version "3.0.0"; semver:module-version "2.0.0"; semver:module-version "1.0.0"; container ospf { description "Global OSPF configuration commands"; container name-lookup { presence "Indicates a name-lookup node is configured."; description "Display OSPF router ids as DNS names"; } // container name-lookup } // container ospf container router { description "Enable a routing process"; container ospf { description "OSPF configuration subcommands"; container processes { description "Name for this OSPF process"; list process { key "process-name"; description "Name for this OSPF process"; leaf process-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Name for this OSPF process"; } container mpls { description "Configure MPLS routing protocol parameters"; container traffic-eng { description "Routing protocol commands for MPLS Traffic Engineering"; container router-id { description "Traffic Engineering stable IP address for system"; leaf ip-address { type inet:ipv4-address-no-zone; must "not(../interface)"; description "configure this node"; } leaf interface { type xr:Interface-name; must "not(../ip-address)"; description "MPLS TE interface configuration for this OSPF process"; } } // container router-id container multicast-intact { presence "Indicates a multicast-intact node is configured."; description "Publish multicast-intact paths to RIB"; } // container multicast-intact container autoroute-exclude { description "Exclude IP address destinations from using TE tunnels"; leaf route-policy { type xr:Route-policy-name; description "Route Policy to exclude TE paths from routes"; } } // container autoroute-exclude container igp-intact { presence "Indicates a igp-intact node is configured."; description "Retain one or more IPv4 nexthops with tunnel nexthops"; } // container igp-intact container ldp-sync-update { presence "Indicates a ldp-sync-update node is configured."; description "Enable LDP sync induced metric propagation"; } // container ldp-sync-update } // container traffic-eng container ldp { description "Configure LDP parameters"; container sync { presence "Indicates a sync node is configured."; description "Enable LDP IGP synchronization"; } // container sync container sync-igp-shortcuts { presence "Indicates a sync-igp-shortcuts node is configured."; description "LDP sync for igp-shortcut tunnels"; } // container sync-igp-shortcuts container auto-config { presence "Indicates a auto-config node is configured."; description "Enable LDP IGP interface auto-configuration"; } // container auto-config } // container ldp } // container mpls leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { description "Cost fallback when anomaly is detected"; container anomaly { description "Penalty when a delay or loss is notified"; container delay { description "Penalty when a delay is notified"; container igp-metric { description "Penalty on IGP metric"; leaf increment { type uint32 { range "1..65534"; } must "not(../multiplier or ../value)"; description "Increment the IGP cost by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value)"; description "Multiply the IGP cost by the specified value"; } leaf value { type uint32 { range "1..65535"; } must "not(../increment or ../multiplier)"; description "Set the IGP cost to the specified value"; } } // container igp-metric container te-metric { description "Penalty on TE metric"; leaf increment { type uint32 { range "1..4294967294"; } must "not(../multiplier or ../value)"; description "Increment the TE metric by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value)"; description "Multiply the TE metric by the specified value"; } leaf value { type uint32 { range "1..4294967295"; } must "not(../increment or ../multiplier)"; description "Set the TE cost to the specified value"; } } // container te-metric } // container delay } // container anomaly } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Interval after which a neighbor is declared dead"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf priority { type uint32 { range "0..255"; } description "Router priority"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container flood-reduction { description "Enable/Disable OSPF Flood Reduction"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable OSPF Flood Reduction"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable OSPF Flood Reduction"; } // container disable } // container flood-reduction container demand-circuit { description "Enable/Disable OSPF demand circuit"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable OSPF demand circuit"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable OSPF demand circuit"; } // container disable } // container demand-circuit container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring the MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { presence "Indicates a out node is configured."; description "Outgoing LSA"; container enable { presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container log { description "Log ospf info"; container adjacency { description "Log adjacency state info"; container changes { presence "Indicates a detail node is configured."; description "Log changes"; container detail { must "not(../disable)"; presence "Indicates a detail node is configured."; description "Log all state changes"; } // container detail container disable { must "not(../detail)"; presence "Indicates a disable node is configured."; description "Disable logging"; } // container disable } // container changes } // container adjacency } // container log leaf router-id { type inet:ipv4-address-no-zone; description "configure this node"; } container redistribute { description "Redistribute information from another routing protocol"; container connected { presence "Indicates a connected node is configured."; description "Connected routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container connected container static { presence "Indicates a static node is configured."; description "Static routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container static container dagr { presence "Indicates a dagr node is configured."; description "Directed-attached gateway redundancy (DAGR)"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container dagr container subscriber { presence "Indicates a subscriber node is configured."; description "Subscriber routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container subscriber container mobile { presence "Indicates a mobile node is configured."; description "Mobile routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container mobile list eigrp { key "as-number"; description "Enhanced Interior Gateway Routing Protocol (EIGRP)"; leaf as-number { type uint32 { range "1..65535"; } description "Enhanced Interior Gateway Routing Protocol (EIGRP)"; } container match { description "Redistribution of EIGRP routes"; container internal { presence "Indicates a internal node is configured."; description "Redistribute EIGRP internal routes"; } // container internal container external { presence "Indicates a external node is configured."; description "Redistribute EIGRP external routes"; } // container external } // container match container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list eigrp container rip { presence "Indicates a rip node is configured."; description "Routing Information Protocol (RIP)"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container rip container bgp { description "Border Gateway Protocol (BGP)"; list as { key "as-number"; description "bgp as-number"; leaf as-number { type xr:Bgp-as-number; description "bgp as-number"; } container preserve-med { presence "Indicates a preserve-med node is configured."; description "Preserve med of BGP routes"; } // container preserve-med container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list as } // container bgp list isis { key "instance-name"; description "ISO IS-IS"; leaf instance-name { type string { length "1..1024"; } description "ISO IS-IS"; } container level-1 { presence "Indicates a level-1 node is configured."; description "IS-IS level-1 routes only"; } // container level-1 container level-2 { presence "Indicates a level-2 node is configured."; description "IS-IS level-2 routes only"; } // container level-2 container level-1-2 { presence "Indicates a level-1-2 node is configured."; description "IS-IS level-1 and level-2 routes"; } // container level-1-2 container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list isis list ospf { key "instance-name"; description "Open Shortest Path First (OSPF)"; leaf instance-name { type string { length "1..1024"; } description "Open Shortest Path First (OSPF)"; } container match { description "Redistribution of OSPF routes"; container internal { presence "Indicates a internal node is configured."; description "Redistribute OSPF internal routes"; } // container internal container external { presence "Indicates a external node is configured."; description "Redistribute OSPF external routes"; container one { presence "Indicates a one node is configured."; description "Redistribute external type 1 routes"; } // container one container two { presence "Indicates a two node is configured."; description "Redistribute external type 2 routes"; } // container two } // container external container nssa-external { presence "Indicates a nssa-external node is configured."; description "Redistribute OSPF NSSA external routes"; container one { presence "Indicates a one node is configured."; description "Redistribute NSSA external type 1 routes"; } // container one container two { presence "Indicates a two node is configured."; description "Redistribute NSSA external type 2 routes"; } // container two } // container nssa-external } // container match container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list ospf container applications { description "OnePK Application routes"; list application { key "application-name"; description "OnePK Application routes"; leaf application-name { type string { length "1..1024"; } description "OnePK Application routes"; } container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list application } // container applications } // container redistribute container distribute-list { description "Filter networks in routing updates"; container in { description "Filter incoming routing updates"; leaf access-list { type string { length "1..1024"; } description "In-bound access-list name"; } leaf route-policy { type xr:Route-policy-name; description "Route Policy to filter OSPF prefixes"; } } // container in container out { description "Filter outgoing routing updates"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } container connected { description "Connected"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container connected container static { description "Static routes"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container static container dagr { description "Directed-attached gateway redundancy (DAGR)"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container dagr container bgp { description "Border Gateway Protocol (BGP)"; leaf as { type xr:Bgp-as-number; description "bgp as-number"; } leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container bgp container ospf { description "Open Shortest Path First (OSPF)"; leaf instance-name { type string { length "1..1024"; } } leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container ospf } // container out } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container bfd { description "Configure BFD parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; container strict-mode { presence "Indicates a strict-mode node is configured."; description "Hold down neighbor session until BFD session is up"; } // container strict-mode } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Minimum interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container security { description "Enable security"; container ttl { presence "Indicates a ttl node is configured."; description "Enable ttl security"; leaf hops { type uint32 { range "1..254"; } description "IP hops"; } } // container ttl } // container security container prefix-suppression { description "Suppress advertisement of the prefixes"; container enable { presence "Indicates a enable node is configured."; description "Enable primary address suppression"; } // container enable container secondary-address { description "Enable/Disable secondary address suppression"; container enable { presence "Indicates a enable node is configured."; description "Enable secondary address suppression"; } // container enable } // container secondary-address } // container prefix-suppression container default-information { description "Control distribution of default information"; container originate { presence "Indicates a originate node is configured."; description "Distribute a default route"; container always { presence "Indicates a always node is configured."; description "Always advertise default route"; } // container always leaf metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } leaf metric-type { type uint32 { range "1..2"; } description "OSPF metric type for default routes"; } leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to default-information origination"; } } // container originate } // container default-information leaf default-metric { type uint32 { range "1..16777214"; } description "Default metric"; } container distance { description "Define an administrative distance"; container administrative-distance { description "Administrative distance"; leaf administrative-distance { type uint32 { range "1..255"; } default "110"; description "Administrative distance"; } container source-addresses { description "configure this node"; list source-address { key "address wildcard"; description "source 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"; } mandatory true; description "Administrative distance"; } leaf access-list-name { type string; description "Access Control List name"; } } // list source-address } // container source-addresses } // container administrative-distance container ospf { description "OSPF distance"; leaf intra-area { type uint32 { range "1..255"; } description "Intra-area routes"; } leaf inter-area { type uint32 { range "1..255"; } description "Inter-area routes"; } leaf external { type uint32 { range "1..255"; } description "External type 5 and type 7 routes"; } } // container ospf } // container distance container auto-cost { description "Calculate OSPF interface cost according to bandwidth"; leaf reference-bandwidth { type uint32 { range "1..4294967"; } description "Specify reference bandwidth for OSPF cost computations"; } container disable { presence "Indicates a disable node is configured."; description "Assign OSPF cost based on interface type"; } // container disable } // container auto-cost container ignore { description "Do not complain about specific event"; container lsa { description "Do not complain upon receiving LSA of the specified type"; container mospf { presence "Indicates a mospf node is configured."; description "MOSPF Type 6 LSA"; } // container mospf } // container lsa } // container ignore container capability { description "Enable specific OSPF feature"; container opaque { description "Opaque LSA"; container disable { presence "Indicates a disable node is configured."; description "Disable Opaque LSA capability"; } // container disable } // container opaque container type7 { description "NSSA capability"; container prefer { presence "Indicates a prefer node is configured."; description "Prefer type7 externals over type5"; } // container prefer } // container type7 } // container capability container max-metric { description "Set maximum metric"; container router-lsa { presence "Indicates a router-lsa node is configured."; description "Maximum metric in self-originated router-LSAs"; container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Override summary-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override summary-lsa metric with max-metric value"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa container router-lsa-no-abr-off { presence "Indicates a no-abr-off node is configured."; description "Do not temporarily suspend ABR duties in max-metric mode"; } // container router-lsa-no-abr-off container router-lsa-on-startup { description "On startup"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-startup container router-lsa-on-switchover { description "On switchover"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-switchover container router-lsa-on-proc-restart { description "On process restart"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-proc-restart container router-lsa-on-proc-migration { description "On process migration"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-proc-migration } // container max-metric container max-lsa { presence "Indicates a max-lsa node is configured."; description "Maximum number of LSAs OSPF process will receive"; leaf max-lsa { type uint32 { range "1..4294967294"; } mandatory true; description "Maximum number of LSAs OSPF process will receive"; } leaf threshold { type uint32 { range "1..100"; } description "Threshold value (%) at which to generate a warning msg"; } container warning-only { presence "Indicates a warning-only node is configured."; description "Only give warning message when limit is exceeded"; } // container warning-only leaf ignore-time { type uint32 { range "1..35791394"; } must "not(../warning-only)"; description "time during which all adjacencies are suppressed"; } leaf ignore-count { type uint32 { range "1..4294967294"; } must "not(../warning-only)"; description "maximum number of times adjacencies can be suppressed"; } leaf reset-time { type uint32 { range "2..71582788"; } must "not(../warning-only)"; description "time after which ignore-count is reset to zero"; } } // container max-lsa container timers { description "Adjust routing timers"; container throttle { description "OSPF throttle timers"; container spf { presence "Indicates a spf node is configured."; description "OSPF SPF throttle timers"; leaf initial-delay { type uint32 { range "1..600000"; } mandatory true; description "OSPF SPF throttle timers"; } leaf second-delay { type uint32 { range "1..600000"; } mandatory true; description "Delay between first and second SPF calculation in milliseconds"; } leaf maximum-delay { type uint32 { range "1..600000"; } mandatory true; description "Maximum wait time in milliseconds for SPF calculations"; } } // container spf container lsa { description "LSA throttle timers"; container all { presence "Indicates a all node is configured."; description "For all types of OSPF LSAs"; leaf initial-delay { type uint32 { range "0..600000"; } mandatory true; description "For all types of OSPF LSAs"; } leaf minimum-delay { type uint32 { range "1..600000"; } mandatory true; description "Minimum delay between originating the same LSA in milliseconds"; } leaf maximum-delay { type uint32 { range "1..600000"; } mandatory true; description "Maximum delay between originating the same LSA in milliseconds"; } } // container all } // container lsa leaf fast-reroute { type uint32 { range "50..600000"; } description "Fast-reroute throttle timer"; } } // container throttle container lsa { description "OSPF global LSA timers"; leaf group-pacing { type uint32 { range "10..1800"; } description "OSPF LSA group pacing timer"; } leaf min-arrival { type uint32 { range "0..600000"; } description "OSPF MinLSArrival timer"; } leaf refresh { type uint32 { range "1800..2700"; } description "OSPF LSA refresh interval"; } } // container lsa container pacing { description "OSPF pacing timers"; leaf flood { type uint32 { range "5..100"; } description "OSPF flood pacing timer"; } } // container pacing container graceful-shutdown { description "Timers for graceful shutdown"; container retain { description "Time to keep routes active after graceful shutdown"; leaf routes { type uint32 { range "0..90"; } description "Time to keep routes active after graceful shutdown"; } } // container retain container initial { description "Delay before starting graceful shutdown"; leaf delay { type uint32 { range "0..90"; } description "Delay before starting graceful shutdown"; } } // container initial } // container graceful-shutdown } // container timers container nsf { description "Enable Cisco Non Stop Forwarding"; container cisco { presence "Indicates a cisco node is configured."; description "Enable Cisco Non Stop Forwarding"; container enforce { description "Cancel NSF restart when non-NSF-aware neighbors detected"; container global { presence "Indicates a global node is configured."; description "For the whole OSPF process"; } // container global } // container enforce } // container cisco leaf interval { type uint32 { range "90..3600"; } description "Minimum interval between NSF restarts (seconds)"; } container ietf { presence "Indicates a ietf node is configured."; description "Enable ietf graceful restart"; } // container ietf container ietf-helper { description "router's helper support level"; container disable { presence "Indicates a disable node is configured."; description "router's helper support disabled"; } // container disable } // container ietf-helper leaf lifetime { type uint32 { range "90..1800"; } description "Maximum route lifetime following restart (seconds)"; } leaf flush-delay-time { type uint32 { range "1..3600"; } description "Maximum time allowed for external route learning (seconds)"; } } // container nsf container address-family { description "OSPF address family"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "IPV4 address family"; container unicast { presence "Indicates a unicast node is configured."; description "unicast topology"; } // container unicast } // container ipv4 } // container address-family container maximum { description "Set OSPF limits"; leaf interfaces { type uint32 { range "1..4294967295"; } description "Limit number of interfaces"; } leaf paths { type uint32 { range "1..64"; } description "Limit number of paths"; } container redistributed-prefixes { presence "Indicates a redistributed-prefixes node is configured."; description "Limit number of redistributed prefixes"; leaf prefixes { type uint32 { range "1..4294967295"; } mandatory true; description "Limit number of redistributed prefixes"; } leaf threshold { type uint32 { range "1..100"; } description "Threshold value (%) at which to generate a warning msg"; } container warning-only { presence "Indicates a warning-only node is configured."; description "Only give warning messsage when limit is exceeded"; } // container warning-only } // container redistributed-prefixes } // container maximum container queue { description "Adjust OSPF input queue"; container limit { description "High watermark for incoming priority events"; leaf high { type uint32 { range "1000..30000"; } description "High watermark for incoming high priority events (hello)"; } leaf medium { type uint32 { range "1000..30000"; } description "High watermark for incoming medium priority events (LSA ACK)"; } leaf low { type uint32 { range "1000..30000"; } description "High watermark for incoming low priority events (DBD/LSUpd/Req)"; } } // container limit container dispatch { description "Number of continuous events processed by type"; leaf incoming { type uint32 { range "30..3000"; } description "Number of continuous incoming events processed"; } leaf rate-limited-lsa { type uint32 { range "30..3000"; } description "Number of rate-limited LSAs processed"; } leaf flush-lsa { type uint32 { range "30..3000"; } description "Number of LSAs flushed"; } leaf spf-lsa-limit { type uint32 { range "30..3000"; } description "Number of summary or external LSAs processed per run"; } } // container dispatch } // container queue container summary-prefixes { description "Configure IP address summaries"; list summary-prefix { key "address mask"; leaf address { type inet:ipv4-address-no-zone; description "IP summary prefix address"; } leaf mask { type inet:ipv4-address-no-zone; description "IP smmary address mask"; } container not-advertise { presence "Indicates a not-advertise node is configured."; description "Suppress routes that match the specified prefix/mask pair"; } // container not-advertise leaf tag { type uint32 { range "0..4294967295"; } description "Set tag"; } } // list summary-prefix } // container summary-prefixes container spf { description "SPF configuration"; container prefix-priority { description "Configure SPF prefix priority route policy"; leaf route-policy { type xr:Route-policy-name; description "Specify the route-policy to prioritize route install"; } } // container prefix-priority } // container spf container fast-reroute { description "IP Fast Reroute"; container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container priority-limit { description "Limit backup computation upto the prefix priority"; container critical { must "not(../high) and not(../medium)"; presence "Indicates a critical node is configured."; description "Compute for critical priority prefixes only"; } // container critical container high { must "not(../critical) and not(../medium)"; presence "Indicates a high node is configured."; description "Compute for critical & high priority prefixes "; } // container high container medium { must "not(../high) and not(../critical)"; presence "Indicates a medium node is configured."; description "Compute for critical, high & medium priority prefixes "; } // container medium } // container priority-limit container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker container load-sharing { description "Load share prefixes across multiple backups"; container disable { presence "Indicates a disable node is configured."; description "Disable load sharing"; } // container disable } // container load-sharing container srlg-protection { description "select SRLG protection mode (default: local)"; container weighted-global { presence "Indicates a weighted-global node is configured."; description "weighted global srlg protection"; } // container weighted-global } // container srlg-protection container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only container remote-lfa { description "Remote LFA computation"; container tunnel { description "Enable remote LFA computation using tunnels"; container mpls-ldp { must "not(../../disable)"; presence "Indicates a mpls-ldp node is configured."; description "MPLS LDP tunnel"; } // container mpls-ldp } // container tunnel container disable { must "not(../tunnel/mpls-ldp)"; presence "Indicates a disable node is configured."; description "Disable remote LFA computation"; } // container disable leaf maximum-cost { type uint32 { range "1..4294967295"; } description "Maximum path cost to remote LFA"; } } // container remote-lfa container ti-lfa { description "Topology Independent LFA computation"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable TI LFA computation"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable TI LFA computation"; } // container disable } // container ti-lfa } // container per-prefix container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-link Computation"; } // container enable container priority-limit { description "Limit backup computation upto the prefix priority"; container critical { must "not(../high) and not(../medium)"; presence "Indicates a critical node is configured."; description "Compute for critical priority prefixes only"; } // container critical container high { must "not(../critical) and not(../medium)"; presence "Indicates a high node is configured."; description "Compute for critical & high priority prefixes "; } // container high container medium { must "not(../high) and not(../critical)"; presence "Indicates a medium node is configured."; description "Compute for critical, high & medium priority prefixes "; } // container medium } // container priority-limit container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container loopback { description "OSPF loopback configuration"; container stub-network { description "Advertise loopback as a stub network"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertising loopback as a stub network"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertising loopback as a stub network"; } // container disable } // container stub-network } // container loopback container link-down { description "Configure interface down parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast or early detection of link-down events"; } // container fast-detect } // container link-down leaf weight { type uint32 { range "1..16777214"; } description "Interface weight"; } container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay container microloop { description "Microloop configuration"; container avoidance { must "not(protected and segment-routing)"; presence "Indicates a avoidance node is configured."; description "Avoid microloops"; container protected { presence "Indicates a protected node is configured."; description "Avoid microloops for protected prefixes only"; } // container protected container segment-routing { presence "Indicates a segment-routing node is configured."; description "Enable segment routing microloop avoidance"; } // container segment-routing } // container avoidance leaf avoidance-rib-update-delay { type uint32 { range "1..600000"; } description "Delay to introduce between SPF and RIB update"; } } // container microloop container areas { description "Enter the OSPF area configuration submode"; list area { key "area-id"; description "Enter the OSPF area configuration submode"; leaf area-id { type xr:Ospf-area-id; description "Enter the OSPF area configuration submode"; } container ranges { description "Summarize routes matching address/mask (border routers only)"; list range { key "address mask"; description "Summarize routes matching address/mask (border routers only)"; leaf address { type inet:ipv4-address-no-zone; must "(../advertise and not(../not-advertise)) or (../not-advertise and not(../advertise))"; description "IP address"; } leaf mask { type inet:ipv4-address-no-zone; description "IP address mask"; } container advertise { presence "Indicates a advertise node is configured."; description "Advertise this range (default)"; } // container advertise container not-advertise { presence "Indicates a not-advertise node is configured."; description "DoNotAdvertise this range"; } // container not-advertise } // list range } // container ranges leaf default-cost { type uint32 { range "1..16777215"; } description "Set the summary default-cost of a NSSA/stub area"; } container stub { presence "Indicates a stub node is configured."; description "Specify the area as a stub area"; container no-summary { presence "Indicates a no-summary node is configured."; description "Do not send summary LSA into stub area"; } // container no-summary } // container stub container nssa { presence "Indicates a nssa node is configured."; description "Specify area as a NSSA area"; container no-redistribution { presence "Indicates a no-redistribution node is configured."; description "No redistribution into this NSSA area"; } // container no-redistribution container default-information-originate { presence "Indicates a default-information-originate node is configured."; description "Originate Type 7 default into NSSA area"; leaf metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } leaf metric-type { type uint32 { range "1..2"; } description "OSPF metric type for default routes"; } } // container default-information-originate container no-summary { presence "Indicates a no-summary node is configured."; description "Do not send summary LSA into NSSA"; } // container no-summary } // container nssa container nssa-translate { description "Translate NSSA LSA"; container type7 { description "Translate type 7 to type 5"; container always { presence "Indicates a always node is configured."; description "Always translate NSSA LSAs on this ABR"; } // container always } // container type7 } // container nssa-translate container multi-area-interfaces { description "Enable multi-area adjacency on this interface"; list multi-area-interface { key "multi-area-interface-name"; description "Enable multi-area adjacency on this interface"; leaf multi-area-interface-name { type xr:Interface-name; description "Enable multi-area adjacency on this interface"; } container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; mandatory true; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { presence "Indicates a cost-fallback node is configured."; description "Cost when cumulative bandwidth goes below the theshold"; leaf cost { type uint32 { range "1..65535"; } mandatory true; description "Cost when cumulative bandwidth goes below the theshold"; } leaf threshold { type uint32 { range "1..4294967"; } description "Threshold bandwidth when cost-fallback is applied"; } } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring of MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { description "Outgoing LSA"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container distribute-list { description "Filter networks in routing updates"; leaf access-list { type string; must "not(../route-policy)"; description "In-bound access-list name."; } leaf route-policy { type xr:Route-policy-name; must "not(../access-list)"; description "Route Policy to filter OSPF prefixes"; } } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container fast-reroute { description "IP Fast Reroute"; container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-link Computation"; } // container enable container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only container remote-lfa { description "Remote LFA computation"; container tunnel { description "Enable remote LFA computation using tunnels"; container mpls-ldp { must "not(../../disable)"; presence "Indicates a mpls-ldp node is configured."; description "MPLS LDP tunnel"; } // container mpls-ldp } // container tunnel container disable { must "not(../tunnel/mpls-ldp)"; presence "Indicates a disable node is configured."; description "Disable remote LFA computation"; } // container disable leaf maximum-cost { type uint32 { range "1..4294967295"; } description "Maximum path cost to remote LFA"; } } // container remote-lfa container ti-lfa { description "Topology Independent LFA computation"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable TI LFA computation"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable TI LFA computation"; } // container disable } // container ti-lfa container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker } // container per-prefix container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay } // list multi-area-interface } // container multi-area-interfaces container mpls { description "Configure MPLS routing protocol parameters"; container traffic-eng { presence "Indicates a traffic-eng node is configured."; description "Configure an ospf area to run MPLS Traffic Engineering"; } // container traffic-eng container ldp { description "Configure LDP parameters"; container sync { presence "Indicates a sync node is configured."; description "Enable LDP IGP synchronization"; container disable { presence "Indicates a disable node is configured."; description "Disable MPLS LDP sync"; } // container disable } // container sync container sync-igp-shortcuts { presence "Indicates a sync-igp-shortcuts node is configured."; description "LDP sync for igp-shortcut tunnels"; container disable { presence "Indicates a disable node is configured."; description "Disable MPLS LDP sync igp-shortcuts"; } // container disable } // container sync-igp-shortcuts container auto-config { presence "Indicates a auto-config node is configured."; description "Enable LDP IGP interface auto-configuration"; } // container auto-config } // container ldp } // container mpls container route-policy { description "Specify the route-policy to filter type 3 LSAs"; leaf in { type xr:Route-policy-name; description "route-policy to filter inbound"; } leaf out { type xr:Route-policy-name; description "route-policy to filter outbound"; } } // container route-policy container external-out { description "Enable/Disable advertisement of intra-area prefixes as external"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of intra-area routes as external"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of intra-area routes as external"; } // container disable } // container external-out container summary-in { description "Enable/Disable advertisement of external prefixes as inter-area"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of external prefixes as inter-area"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of external prefixes as inter-area"; } // container disable } // container summary-in container segment-routing { description "Segment Routing configuration"; container mpls { must "not(../disable)"; presence "Indicates a mpls node is configured."; description "SR using MPLS dataplane"; } // container mpls container disable { must "not(../mpls)"; presence "Indicates a disable node is configured."; description "Disable Segment Routing "; } // container disable container forwarding { description "Enable Segment-routing forwarding on interfaces"; container mpls { must "not(../disable)"; presence "Indicates a mpls node is configured."; description "Use MPLS for Segment-routing forwarding"; } // container mpls container disable { must "not(../mpls)"; presence "Indicates a disable node is configured."; description "Disable Segment-routing on Area interfaces"; } // container disable } // container forwarding } // container segment-routing container interfaces { description "Enable routing on an interface "; list interface { key "interface-name"; description "Enable routing on an interface "; leaf interface-name { type xr:Interface-name; description "Enable routing on an interface "; } container affinity { description "Interface affinity configuration"; container flex-algo { description "Flexible Algorithm"; container affinity-attributes { description "Affinity attribute name"; list affinity-attribute { key "affinity-attribute-name"; description "Affinity attribute name"; leaf affinity-attribute-name { type string { length "1..32"; } description "Affinity attribute name"; } } // list affinity-attribute } // container affinity-attributes } // container flex-algo } // container affinity container neighbors { description "Specify a neighbor router"; list neighbor { key "neighbor-address"; description "Specify a neighbor router"; leaf neighbor-address { type inet:ipv4-address-no-zone; description "Specify a neighbor router"; } container database-filter { description "Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor"; container all { description "Filter all LSA"; container out { presence "Indicates a out node is configured."; description "Outgoing LSA"; } // container out } // container all } // container database-filter leaf priority { type uint32 { range "0..255"; } description "OSPF priority of non-broadcast neighbor"; } leaf poll-interval { type uint32 { range "0..65535"; } description "OSPF dead-router polling interval"; } leaf cost { type uint32 { range "1..65535"; } description "OSPF cost for point-to-multipoint neighbor"; } } // list neighbor } // container neighbors container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; mandatory true; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication container network { description "Network type"; container broadcast { presence "Indicates a broadcast node is configured."; description "Specify OSPF broadcast multi-access network"; } // container broadcast container non-broadcast { presence "Indicates a non-broadcast node is configured."; description "Specify OSPF NBMA network"; } // container non-broadcast container point-to-point { presence "Indicates a point-to-point node is configured."; description "Specify OSPF point-to-point network"; } // container point-to-point container point-to-multipoint { presence "Indicates a point-to-multipoint node is configured."; description "Specify OSPF point-to-multipoint network"; } // container point-to-multipoint } // container network container mpls { description "Configure MPLS routing protocol parameters"; container ldp { description "Configure LDP parameters"; container sync { tailf:dependency "../../../interface-name"; when "(../../../interface-name[not(starts-with(text(),'tunnel-te'))])"; presence "Indicates a sync node is configured."; description "LDP IGP synchronization for interfaces"; container disable { presence "Indicates a disable node is configured."; description "Disable MPLS LDP sync on interfaces"; } // container disable } // container sync container sync-igp-shortcuts { tailf:dependency "../../../interface-name"; when "../../../interface-name[starts-with(text(),'tunnel-te')]"; presence "Indicates a sync-igp-shortcuts node is configured."; description "LDP sync for igp-shortcuts on tunnel interfaces"; container disable { presence "Indicates a disable node is configured."; description "Disable MPLS LDP sync igp-shortcuts"; } // container disable } // container sync-igp-shortcuts } // container ldp } // container mpls leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { presence "Indicates a cost-fallback node is configured."; description "Cost when cumulative bandwidth goes below the theshold"; leaf cost { type uint32 { range "1..65535"; } must "../threshold"; description "Cost when cumulative bandwidth goes below the theshold"; } leaf threshold { type uint32 { range "1..4294967"; } must "../cost"; description "Threshold bandwidth when cost-fallback is applied"; } container anomaly { description "Penalty when a delay or loss is notified"; container delay { description "Penalty when a delay is notified"; container igp-metric { description "Penalty on IGP metric"; leaf increment { type uint32 { range "1..65534"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the IGP cost by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the IGP cost by the specified value"; } leaf value { type uint32 { range "1..65535"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the IGP cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable igp-metric"; } // container disable } // container igp-metric container te-metric { description "Penalty on TE metric"; leaf increment { type uint32 { range "1..4294967294"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the TE metric by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the TE metric by the specified value"; } leaf value { type uint32 { range "1..4294967295"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the TE cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable te-metric"; } // container disable } // container te-metric } // container delay } // container anomaly } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf priority { type uint32 { range "0..255"; } description "Router priority"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container flood-reduction { description "OSPF Flood Reduction"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable flooding reduction"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable flooding reduction"; } // container disable } // container flood-reduction container demand-circuit { description "Enable/Disable demand circuits"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable demand circuits"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable demand circuits"; } // container disable } // container demand-circuit container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring of MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { description "Outgoing LSA"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container distribute-list { description "Filter networks in routing updates"; leaf access-list { type string; must "not(../route-policy)"; description "In-bound access-list name."; } leaf route-policy { type xr:Route-policy-name; must "not(../access-list)"; description "Route Policy to filter OSPF prefixes"; } } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container bfd { description "Configure BFD parameters"; container fast-detect { must "not(strict-mode and disable)"; presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; container strict-mode { presence "Indicates a strict-mode node is configured."; description "Hold down neighbor session until BFD session is up"; } // container strict-mode container disable { presence "Indicates a disable node is configured."; description "Prevent bfd settings from being inherited from the parent"; } // container disable } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Minimum interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container security { description "Enable security"; container ttl { must "not(hops and disable)"; presence "Indicates a ttl node is configured."; description "Enable ttl security"; leaf hops { type uint32 { range "1..254"; } description "IP hops"; } container disable { presence "Indicates a disable node is configured."; description "Disable TTL security"; } // container disable } // container ttl } // container security container prefix-suppression { description "Suppress advertisement of the prefixes"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable primary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable primary address suppression"; } // container disable container secondary-address { description "Enable/Disable secondary address suppression"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable secondary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable secondary address suppression"; } // container disable } // container secondary-address } // container prefix-suppression container fast-reroute { description "IP Fast Reroute"; container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-link Computation"; } // container enable container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only container remote-lfa { description "Remote LFA computation"; container tunnel { description "Enable remote LFA computation using tunnels"; container mpls-ldp { must "not(../../disable)"; presence "Indicates a mpls-ldp node is configured."; description "MPLS LDP tunnel"; } // container mpls-ldp } // container tunnel container disable { must "not(../tunnel/mpls-ldp)"; presence "Indicates a disable node is configured."; description "Disable remote LFA computation"; } // container disable leaf maximum-cost { type uint32 { range "1..4294967295"; } description "Maximum path cost to remote LFA"; } } // container remote-lfa container ti-lfa { description "Topology Independent LFA computation"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable TI LFA computation"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable TI LFA computation"; } // container disable } // container ti-lfa container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker } // container per-prefix container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container loopback { description "OSPF loopback configuration"; container stub-network { description "Advertise loopback as a stub network"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertising loopback as a stub network"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertising loopback as a stub network"; } // container disable } // container stub-network } // container loopback container link-down { description "Configure interface down parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast or early detection of link-down events"; container disable { presence "Indicates a disable node is configured."; description "Disable fast or early detection of link-down events"; } // container disable } // container fast-detect } // container link-down container prefix-sid { tailf:dependency "../interface-name"; when "../interface-name[starts-with(text(),'Loopback')]"; description "Prefix SID Configuration"; container index { presence "Indicates a index node is configured."; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } mandatory true; description "SID Index"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container index container absolute { presence "Indicates a absolute node is configured."; description "SID value"; leaf sid-label { type uint32 { range "16000..1048575"; } mandatory true; description "SID value"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container absolute container strict-spf { description "Strict-SPF Prefix SID Configuration"; container index { must "not(../absolute)"; presence "Indicates a index node is configured."; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } mandatory true; description "SID Index"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container index container absolute { must "not(../index)"; presence "Indicates a absolute node is configured."; description "SID value"; leaf sid-label { type uint32 { range "16000..1048575"; } mandatory true; description "SID value"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container absolute } // container strict-spf container algorithms { description "Algorithm Specific Prefix SID Configuration"; list algorithm { must "index or absolute"; key "algorithm-number"; description "Algorithm Specific Prefix SID Configuration"; leaf algorithm-number { type uint32 { range "128..255"; } description "Algorithm Specific Prefix SID Configuration"; } container index { presence "Indicates a index node is configured."; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } mandatory true; description "SID Index"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container index container absolute { presence "Indicates a absolute node is configured."; description "SID value"; leaf sid-label { type uint32 { range "16000..1048575"; } mandatory true; description "SID value"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container absolute } // list algorithm } // container algorithms } // container prefix-sid container segment-routing { description "Configure Segment-routing interface parameters"; container forwarding { description "Enable Segment-routing forwarding on interfaces"; container mpls { must "not(../disable)"; presence "Indicates a mpls node is configured."; description "Use MPLS for Segment-routing forwarding"; } // container mpls container disable { must "not(../mpls)"; presence "Indicates a disable node is configured."; description "Disable Segment-routing on interface"; } // container disable } // container forwarding } // container segment-routing container adjacency-sid { description "Adjacency SID Configuration"; container indexes { description "SID Index"; list index { key "sid-index"; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } description "SID Index"; } container protected { presence "Indicates a protected node is configured."; description "Protect the static adjacency SID"; } // container protected leaf neighbor-address { type inet:ipv4-address-no-zone; description "Provide Neighbor IP address associated with this SID"; } } // list index } // container indexes container absolutes { description "SID value"; list absolute { key "sid-value"; description "SID value"; leaf sid-value { type uint32 { range "15000..1048575"; } description "SID value"; } container protected { presence "Indicates a protected node is configured."; description "Protect the static adjacency SID"; } // container protected leaf neighbor-address { type inet:ipv4-address-no-zone; description "Provide Neighbor IP address associated with this SID"; } } // list absolute } // container absolutes } // container adjacency-sid leaf weight { type uint32 { range "1..16777214"; } description "Interface weight"; } container advertise { tailf:dependency "../interface-name"; when "../interface-name[starts-with(text(),'Loopback')]"; description "Conditionally advertise"; container prefix { description "Conditionally advertise this prefix"; leaf route-policy { type xr:Route-policy-name; description "Specify the route-policy for conditional advertising"; } } // container prefix } // container advertise container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay } // list interface } // container interfaces container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication container network { description "Network type"; container broadcast { presence "Indicates a broadcast node is configured."; description "Specify OSPF broadcast multi-access network"; } // container broadcast container non-broadcast { presence "Indicates a non-broadcast node is configured."; description "Specify OSPF NBMA network"; } // container non-broadcast container point-to-point { presence "Indicates a point-to-point node is configured."; description "Specify OSPF point-to-point network"; } // container point-to-point container point-to-multipoint { presence "Indicates a point-to-multipoint node is configured."; description "Specify OSPF point-to-multipoint network"; } // container point-to-multipoint } // container network leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { description "Cost fallback when anomaly is detected"; container anomaly { description "Penalty when a delay or loss is notified"; container delay { description "Penalty when a delay is notified"; container igp-metric { description "Penalty on IGP metric"; leaf increment { type uint32 { range "1..65534"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the IGP cost by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the IGP cost by the specified value"; } leaf value { type uint32 { range "1..65535"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the IGP cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable igp-metric"; } // container disable } // container igp-metric container te-metric { description "Penalty on TE metric"; leaf increment { type uint32 { range "1..4294967294"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the TE metric by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the TE metric by the specified value"; } leaf value { type uint32 { range "1..4294967295"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the TE cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable te-metric"; } // container disable } // container te-metric } // container delay } // container anomaly } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf priority { type uint32 { range "0..255"; } description "Router priority"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container flood-reduction { description "OSPF Flood Reduction"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable flooding reduction"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable flooding reduction"; } // container disable } // container flood-reduction container demand-circuit { description "Enable/Disable demand circuits"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable demand circuits"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable demand circuits"; } // container disable } // container demand-circuit container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring of MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { description "Outgoing LSA"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container distribute-list { description "Filter networks in routing updates"; leaf access-list { type string; must "not(../route-policy)"; description "In-bound access-list name."; } leaf route-policy { type xr:Route-policy-name; must "not(../access-list)"; description "Route Policy to filter OSPF prefixes"; } } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container bfd { description "Configure BFD parameters"; container fast-detect { must "not(strict-mode and disable)"; presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; container strict-mode { presence "Indicates a strict-mode node is configured."; description "Hold down neighbor session until BFD session is up"; } // container strict-mode container disable { presence "Indicates a disable node is configured."; description "Prevent bfd settings from being inherited from the parent"; } // container disable } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Minimum interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container security { description "Enable/Disable security"; container ttl { must "not(hops and disable)"; presence "Indicates a ttl node is configured."; description "TTL security"; leaf hops { type uint32 { range "1..254"; } description "IP hops"; } container disable { presence "Indicates a disable node is configured."; description "Disable TTL security"; } // container disable } // container ttl } // container security container prefix-suppression { description "Suppress advertisement of the prefixes"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable primary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable primary address suppression"; } // container disable container secondary-address { description "Enable/Disable secondary address suppression"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable secondary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable secondary address suppression"; } // container disable } // container secondary-address } // container prefix-suppression container fast-reroute { description "IP Fast Reroute"; container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-link Computation"; } // container enable container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only container remote-lfa { description "Remote LFA computation"; container tunnel { description "Enable remote LFA computation using tunnels"; container mpls-ldp { must "not(../../disable)"; presence "Indicates a mpls-ldp node is configured."; description "MPLS LDP tunnel"; } // container mpls-ldp } // container tunnel container disable { must "not(../tunnel/mpls-ldp)"; presence "Indicates a disable node is configured."; description "Disable remote LFA computation"; } // container disable leaf maximum-cost { type uint32 { range "1..4294967295"; } description "Maximum path cost to remote LFA"; } } // container remote-lfa container ti-lfa { description "Topology Independent LFA computation"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable TI LFA computation"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable TI LFA computation"; } // container disable } // container ti-lfa container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker } // container per-prefix container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container loopback { description "OSPF loopback configuration"; container stub-network { description "Advertise loopback as a stub network"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertising loopback as a stub network"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertising loopback as a stub network"; } // container disable } // container stub-network } // container loopback container link-down { description "Configure interface down parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast or early detection of link-down events"; container disable { presence "Indicates a disable node is configured."; description "Disable fast or early detection of link-down events"; } // container disable } // container fast-detect } // container link-down leaf weight { type uint32 { range "1..16777214"; } description "Interface weight"; } container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay container virtual-links { description "Define a virtual link"; list virtual-link { key "virtual-link-address"; description "Define a virtual link"; leaf virtual-link-address { type inet:ipv4-address-no-zone; description "Define a virtual link"; } leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Delay between LSA retransmissions"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Link state transmit delay"; } container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication } // list virtual-link } // container virtual-links } // list area } // container areas container segment-routing { description "Segment Routing configuration"; container global-block { presence "Indicates a global-block node is configured."; description "MPLS label range for SID allocation"; leaf minimum-mpls-label { type uint32 { range "16000..1048575"; } mandatory true; description "MPLS label range for SID allocation"; } leaf maximum-mpls-label { type uint32 { range "1..1048575"; } mandatory true; description "Maximum MPLS label value for Segment Routing"; } } // container global-block container prefix-sid-map { description "Configuring segment routing mapping server"; container advertise-local { presence "Indicates a advertise-local node is configured."; description "Advertise and use local mapping server entries"; } // container advertise-local container receive { description "Control the usage of remote mapping server advertisements"; container disable { presence "Indicates a disable node is configured."; description "Disable the usage of remote mapping server advertisements"; } // container disable } // container receive } // container prefix-sid-map container sr-prefer { presence "Indicates a sr-prefer node is configured."; description "Prefer segment routing labels over LDP labels"; leaf prefix-list { type string { length "1..1024"; } description "Filter prefixes for which SR preference is applied"; } } // container sr-prefer container forwarding { must "mpls or disable"; presence "Indicates a forwarding node is configured."; description "Enable Segment-routing forwarding on interfaces"; container mpls { presence "Indicates a mpls node is configured."; description "Use MPLS for Segment-routing forwarding"; } // container mpls container disable { presence "Indicates a disable node is configured."; description "Disable Segment-routing on process interfaces"; } // container disable } // container forwarding container mpls { must "not(../disable)"; presence "Indicates a mpls node is configured."; description "SR using MPLS dataplane"; } // container mpls container disable { must "not(../mpls)"; presence "Indicates a disable node is configured."; description "Disable Segment Routing "; } // container disable } // container segment-routing container affinity-map { description "Affinity map configuration"; container affinity-attributes { description "Affinity attribute name"; list affinity-attribute { key "affinity-attribute-name"; description "Affinity attribute name"; leaf affinity-attribute-name { type string { length "1..32"; } description "Affinity attribute name"; } leaf bit-position { type uint32 { range "0..255"; } description "Bit position for affinity attribute value"; } } // list affinity-attribute } // container affinity-attributes } // container affinity-map container flex-algos { description "Flex Algorithm definition"; list flex-algo { key "algorithm-number"; description "Flex Algorithm definition"; leaf algorithm-number { type uint32 { range "128..255"; } description "Flex Algorithm definition"; } leaf priority { type uint32 { range "0..255"; } description "Flex-Algo definition priority"; } container microloop { description "Microloop configuration"; container avoidance { presence "Indicates a avoidance node is configured."; description "Microloop avoidance state"; container disable { presence "Indicates a disable node is configured."; description "Disable microloop avoidance for Flex-Algo"; } // container disable } // container avoidance } // container microloop container metric-type { description "Metric-type used by flex-algo calculation"; container delay { presence "Indicates a delay node is configured."; description "Use delay as metric"; } // container delay container te-metric { presence "Indicates a te-metric node is configured."; description "Use te-metric"; } // container te-metric } // container metric-type container advertise-definition { presence "Indicates a advertise-definition node is configured."; description "Advertise the Flex-Algo Definition"; } // container advertise-definition container fast-reroute { description "Configure Fast ReRoute"; container disable { presence "Indicates a disable node is configured."; description "Disable Fast ReRoute for Flex-Algo"; } // container disable } // container fast-reroute container affinity { description "Specify affinity name"; container exclude-any { description "Exclude objects in flex-algo calculation"; container affinity-attributes { description "Affinity attribute name"; list affinity-attribute { key "affinity-attribute-name"; description "Affinity attribute name"; leaf affinity-attribute-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Affinity attribute name"; } } // list affinity-attribute } // container affinity-attributes } // container exclude-any container include-any { description "Include any objects in flex-algo calculation"; container affinity-attributes { description "Affinity attribute name"; list affinity-attribute { key "affinity-attribute-name"; description "Affinity attribute name"; leaf affinity-attribute-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Affinity attribute name"; } } // list affinity-attribute } // container affinity-attributes } // container include-any container include-all { description "Include all objects in flex-algo calculation"; container affinity-attributes { description "Affinity attribute name"; list affinity-attribute { key "affinity-attribute-name"; description "Affinity attribute name"; leaf affinity-attribute-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Affinity attribute name"; } } // list affinity-attribute } // container affinity-attributes } // container include-all } // container affinity } // list flex-algo } // container flex-algos container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication container network { description "Network type"; container broadcast { presence "Indicates a broadcast node is configured."; description "Specify OSPF broadcast multi-access network"; } // container broadcast container non-broadcast { presence "Indicates a non-broadcast node is configured."; description "Specify OSPF NBMA network"; } // container non-broadcast container point-to-point { presence "Indicates a point-to-point node is configured."; description "Specify OSPF point-to-point network"; } // container point-to-point container point-to-multipoint { presence "Indicates a point-to-multipoint node is configured."; description "Specify OSPF point-to-multipoint network"; } // container point-to-multipoint } // container network container external-out { description "Enable/Disable advertisement of intra-area prefixes as external"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of intra-area routes as external"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of intra-area routes as external"; } // container disable } // container external-out container summary-in { description "Enable/Disable advertisement of external prefixes as inter-area"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of external prefixes as inter-area"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of external prefixes as inter-area"; } // container disable } // container summary-in container adjacency { description "OSPF adjacency bring up"; container stagger { description "Stagger OSPF adjacency bring up"; container disable { must "not(../initial-number-of-neighbors)"; presence "Indicates a disable node is configured."; description "Disable stagger OSPF adjacency bring up"; } // container disable leaf initial-number-of-neighbors { type uint32 { range "1..65535"; } must "not(../disable)"; description "Initial number of neighbors to bring up per area (default 2)"; } leaf maximum-simultaneous-neighbors { type uint32 { range "1..65535"; } must "../initial-number-of-neighbors"; description "Maximum simultaneous neighbors to bring up (default 64)"; } } // container stagger } // container adjacency container snmp { description "SNMP configuration"; leaf context { type string { length "1..32"; pattern "[a-zA-Z0-9*/_]+"; } description "Specified SNMP context for OSPF instance"; } container trap { description "Adjust snmp trap parameters"; leaf rate-limit { type uint32 { range "2..60"; } description "Adjust trap rate-limit parameters"; } leaf max-number-of-traps { type uint32 { range "0..300"; } description "Max number of traps sent in window time"; } } // container trap } // container snmp container monitor-convergence { presence "Indicates a monitor-convergence node is configured."; description "Enables OSPF route convergence monitoring"; leaf prefix-list { type string { length "1..1024"; } description "Enables Individual Prefix Monitoring"; } container track-summary-routes { presence "Indicates a track-summary-routes node is configured."; description "Enables Tracking Summary(Inter-Area) Prefix Monitoring"; } // container track-summary-routes container track-external-routes { presence "Indicates a track-external-routes node is configured."; description "Enables Tracking External(Type-5/7) Prefix Monitoring"; } // container track-external-routes container track-ip-frr { presence "Indicates a track-ip-frr node is configured."; description "Enables Tracking IP-Frr Convergence"; } // container track-ip-frr } // container monitor-convergence container ucmp { description "Unequal Cost Load Balancing"; container enable { presence "Indicates a ucmp node is configured."; description "Enable ucmp"; leaf variance { type uint32 { range "101..10000"; } default "200"; description "Set the Variance for UCMP path metric"; } leaf prefix-list { type string { length "1..1024"; } description "Filter prefixes for which UCMP path are calculated"; } } // container enable container exclude { description "UCMP exclusion information"; container interfaces { description "Exclude an interface during UCMP computation"; list interface { key "interface-name"; description "Exclude an interface during UCMP computation"; leaf interface-name { type xr:Interface-name; description "Exclude an interface during UCMP computation"; } } // list interface } // container interfaces } // container exclude leaf delay-interval { type uint32 { range "1..5000"; } description "Interval between SPF and start of the UCMP calculation"; } } // container ucmp container apply-weight { description "Enable weights configured under interfaces for load sharing"; leaf bandwidth { type uint32 { range "1..4294967"; } description "Use interface bandwidth when calculating weights"; } leaf default-weight { type uint32 { range "1..16777214"; } description "Specify default weight value"; } } // container apply-weight container srlg { description "Weighted SRLG configurations"; leaf admin-weight { type uint32 { range "0..65535"; } description "Default admin weight for all SRLG values"; } container names { description "Weighted SRLG name configuration"; list name { key "srlg-name"; description "Weighted SRLG name configuration"; leaf srlg-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Weighted SRLG name configuration"; } leaf admin-weight { type uint32 { range "0..65535"; } description "Default admin weight for all SRLG values"; } } // list name } // container names } // container srlg container distribute { description "Enable Distribution of LSAs to external services"; container link-state { presence "Indicates a link-state node is configured."; description "Distribute the link-state database to external services"; leaf instance-id { type uint32 { range "0..4294967295"; } description "Set distribution process instance identifier"; } leaf throttle { type uint32 { range "1..3600"; } description "Throttle time between successive LSA updates"; } } // container link-state } // container distribute container nsr { presence "Indicates a nsr node is configured."; description "Enable NSR for all VRFs in this process"; container disable { presence "Indicates a disable node is configured."; description "Disable NSR for all VRFs in this process"; } // container disable } // container nsr container trace { description "OSPF tracing options"; list size { key "trace-buffer-name"; description "Delete existing buffer and create one with N entries"; leaf trace-buffer-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Delete existing buffer and create one with N entries"; } leaf trace-entry-size { type enumeration { enum "0" { value 0; description "disable trace"; } enum "256" { value 256; description "trace entries"; } enum "512" { value 512; description "trace entries"; } enum "1024" { value 1024; description "trace entries"; } enum "2048" { value 2048; description "trace entries"; } enum "4096" { value 4096; description "trace entries"; } enum "8192" { value 8192; description "trace entries"; } enum "16384" { value 16384; description "trace entries"; } enum "32768" { value 32768; description "trace entries"; } enum "65536" { value 65536; description "trace entries"; } } description "Number of trece entries"; } } // list size } // container trace container protocol { description "Protocol specific configuration"; container shutdown { presence "Indicates a shutdown node is configured."; description "Shutdown the OSPF protocol"; container host-mode { presence "Indicates a host-mode node is configured."; description "Only traffic destined for this box allowed"; } // container host-mode container on-reload { presence "Indicates a on-reload node is configured."; description "Shutdown post reload only"; } // container on-reload } // container shutdown } // container protocol container vrfs { description "Enter the OSPF vrf configuration submode"; list vrf { key "vrf-name"; description "Name for this OSPF vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Name for this OSPF vrf"; } container domain-id { description "Specify domain id"; leaf type { type enumeration { enum "0005" { value 5; description " Type 0x0005"; } enum "0105" { value 261; description " Type 0x0105"; } enum "0205" { value 517; description " Type 0x0205"; } enum "8005" { value 32773; description " Type 0x8005"; } } description "Primary OSPF domain ID type in Hex format"; } leaf value { type string { length "1..1024"; } description "OSPF domain ID value in Hex format"; } container secondaries { description "OSPF secondary domain-id"; list secondary { key "type value"; description "OSPF domain ID type in Hex format"; leaf type { type enumeration { enum "0005" { value 5; description " Type 0x0005"; } enum "0105" { value 261; description " Type 0x0105"; } enum "0205" { value 517; description " Type 0x0205"; } enum "8005" { value 32773; description " Type 0x8005"; } } description "OSPF domain ID type in Hex format"; } leaf value { type xr:Cisco-ios-xr-string { length "1..1024"; } description "OSPF domain ID value in Hex format"; } } // list secondary } // container secondaries } // container domain-id leaf domain-tag { type uint32 { range "1..4294967295"; } description "OSPF domain tag"; } container disable-dn-bit-check { presence "Indicates a disable-dn-bit-check node is configured."; description "Disable DN bit check"; } // container disable-dn-bit-check container log { description "Log ospf info"; container adjacency { description "Log adjacency state info"; container changes { description "Log changes"; container detail { must "not(../disable)"; presence "Indicates a detail node is configured."; description "Log all state changes"; } // container detail container disable { must "not(../detail)"; presence "Indicates a disable node is configured."; description "Disable logging"; } // container disable } // container changes } // container adjacency } // container log leaf router-id { type inet:ipv4-address-no-zone; description "configure this node"; } container redistribute { description "Redistribute information from another routing protocol"; container connected { presence "Indicates a connected node is configured."; description "Connected routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container connected container static { presence "Indicates a static node is configured."; description "Static routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container static container dagr { presence "Indicates a dagr node is configured."; description "Directed-attached gateway redundancy (DAGR)"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container dagr container subscriber { presence "Indicates a subscriber node is configured."; description "Subscriber routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container subscriber container mobile { presence "Indicates a mobile node is configured."; description "Mobile routes"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container mobile container applications { description "OnePK application routes"; list application { key "application-name"; description "OnePK application routes"; leaf application-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "OnePK application routes"; } container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list application } // container applications list eigrp { key "as-number"; description "Enhanced Interior Gateway Routing Protocol (EIGRP)"; leaf as-number { type uint32 { range "1..65535"; } description "Enhanced Interior Gateway Routing Protocol (EIGRP)"; } container match { description "Redistribution of EIGRP routes"; container internal { presence "Indicates a internal node is configured."; description "Redistribute EIGRP internal routes"; } // container internal container external { presence "Indicates a external node is configured."; description "Redistribute EIGRP external routes"; } // container external } // container match container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list eigrp container rip { presence "Indicates a rip node is configured."; description "Routing Information Protocol (RIP)"; container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // container rip container bgp { description "Border Gateway Protocol (BGP)"; list as { key "as-number"; description "bgp as-number"; leaf as-number { type xr:Bgp-as-number; description "bgp as-number"; } container preserve-med { presence "Indicates a preserve-med node is configured."; description "Preserve med of BGP routes"; } // container preserve-med container preserve-bgp-default-info { presence "Indicates a preserve-bgp-default-info node is configured."; description "Preserve metric and metric-type of BGP default route"; } // container preserve-bgp-default-info container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list as } // container bgp list isis { key "instance-name"; description "ISO IS-IS"; leaf instance-name { type string { length "1..1024"; } description "ISO IS-IS"; } container level-1 { presence "Indicates a level-1 node is configured."; description "IS-IS level-1 routes only"; } // container level-1 container level-2 { presence "Indicates a level-2 node is configured."; description "IS-IS level-2 routes only"; } // container level-2 container level-1-2 { presence "Indicates a level-1-2 node is configured."; description "IS-IS level-1 and level-2 routes"; } // container level-1-2 container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list isis list ospf { key "instance-name"; description "Open Shortest Path First (OSPF)"; leaf instance-name { type string { length "1..1024"; } description "Open Shortest Path First (OSPF)"; } container match { description "Redistribution of OSPF routes"; container internal { presence "Indicates a internal node is configured."; description "Redistribute OSPF internal routes"; } // container internal container external { presence "Indicates a external node is configured."; description "Redistribute OSPF external routes"; container one { presence "Indicates a one node is configured."; description "Redistribute external type 1 routes"; } // container one container two { presence "Indicates a two node is configured."; description "Redistribute external type 2 routes"; } // container two } // container external container nssa-external { presence "Indicates a nssa-external node is configured."; description "Redistribute OSPF NSSA external routes"; container one { presence "Indicates a one node is configured."; description "Redistribute NSSA external type 1 routes"; } // container one container two { presence "Indicates a two node is configured."; description "Redistribute NSSA external type 2 routes"; } // container two } // container nssa-external } // container match container metric { description "Metric for redistributed routes"; leaf default-metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } container use-rib-metric { presence "Indicates a use-rib-metric node is configured."; description "Use metric from RIB"; } // container use-rib-metric } // container metric leaf tag { type uint32 { range "0..4294967295"; } description "Set tag for routes redistributed into OSPF"; } leaf metric-type { type enumeration { enum "1" { value 1; description "Set OSPF External Type 1 metrics"; } enum "2" { value 2; description "Set OSPF External Type 2 metrics"; } } description "OSPF exterior metric type for redistributed routes"; } container lsa-type { description "LSA type for redistributed routes"; container summary { presence "Indicates a summary node is configured."; description "LSA type 3"; } // container summary } // container lsa-type leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to redistribution"; } container nssa-only { presence "Indicates a nssa-only node is configured."; description "Redistribute to NSSA areas only"; } // container nssa-only } // list ospf } // container redistribute container distribute-list { presence "Indicates a distribute-list node is configured."; description "Filter networks in routing updates"; container in { description "Filter incoming routing updates"; leaf access-list { type string { length "1..1024"; } description "In-bound access-list name"; } leaf route-policy { type xr:Route-policy-name; description "Route Policy to filter OSPF prefixes"; } } // container in container out { description "Filter outgoing routing updates"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } container connected { description "Connected"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container connected container static { description "Static routes"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container static container dagr { description "Directed-attached gateway redundancy (DAGR)"; leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container dagr container bgp { description "Border Gateway Protocol (BGP)"; leaf as { type xr:Bgp-as-number; description "bgp as-number"; } leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container bgp container ospf { description "Open Shortest Path First (OSPF)"; leaf instance-name { type string { length "1..1024"; } } leaf access-list { type string { length "1..1024"; } description "access-list name"; } } // container ospf } // container out } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container bfd { description "Configure BFD parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; container strict-mode { presence "Indicates a strict-mode node is configured."; description "Hold down neighbor session until BFD session is up"; } // container strict-mode } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Minimum interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container security { description "Enable security"; container ttl { presence "Indicates a ttl node is configured."; description "Enable ttl security"; leaf hops { type uint32 { range "1..254"; } description "IP hops"; } } // container ttl } // container security container prefix-suppression { description "Suppress advertisement of the prefixes"; container enable { presence "Indicates a enable node is configured."; description "Enable primary address suppression"; } // container enable container secondary-address { description "Enable/Disable secondary address suppression"; container enable { presence "Indicates a enable node is configured."; description "Enable secondary address suppression"; } // container enable } // container secondary-address } // container prefix-suppression container default-information { description "Control distribution of default information"; container originate { presence "Indicates a originate node is configured."; description "Distribute a default route"; container always { presence "Indicates a always node is configured."; description "Always advertise default route"; } // container always leaf metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } leaf metric-type { type uint32 { range "1..2"; } description "OSPF metric type for default routes"; } leaf route-policy { type xr:Route-policy-name; description "Apply route-policy to default-information origination"; } } // container originate } // container default-information leaf default-metric { type uint32 { range "1..16777214"; } description "Default metric"; } container distance { description "Define an administrative distance"; container administrative-distance { description "Administrative distance"; leaf administrative-distance { type uint32 { range "1..255"; } default "110"; description "Administrative distance"; } container source-addresses { description "Administrative distance source address"; list source-address { key "address wildcard"; description "source 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"; } mandatory true; description "Administrative distance"; } leaf access-list-name { type string; description "Access Control List name"; } } // list source-address } // container source-addresses } // container administrative-distance container ospf { description "OSPF distance"; leaf intra-area { type uint32 { range "1..255"; } description "Intra-area routes"; } leaf inter-area { type uint32 { range "1..255"; } description "Inter-area routes"; } leaf external { type uint32 { range "1..255"; } description "External type 5 and type 7 routes"; } } // container ospf } // container distance container auto-cost { description "Calculate OSPF interface cost according to bandwidth"; leaf reference-bandwidth { type uint32 { range "1..4294967"; } description "Specify reference bandwidth for OSPF cost computations"; } container disable { presence "Indicates a disable node is configured."; description "Assign OSPF cost based on interface type"; } // container disable } // container auto-cost container ignore { description "Do not complain about specific event"; container lsa { description "Do not complain upon receiving LSA of the specified type"; container mospf { presence "Indicates a mospf node is configured."; description "MOSPF Type 6 LSA"; } // container mospf } // container lsa } // container ignore container capability { description "Enable specific OSPF feature"; container opaque { description "Opaque LSA"; container disable { presence "Indicates a disable node is configured."; description "Disable Opaque LSA capability"; } // container disable } // container opaque container type7 { description "NSSA capability"; container prefer { presence "Indicates a prefer node is configured."; description "Prefer type7 externals over type5"; } // container prefer } // container type7 container vrf-lite { presence "Indicates a vrf-lite node is configured."; description "Enable VRF-lite support"; } // container vrf-lite } // container capability container max-metric { description "Set maximum metric"; container router-lsa { presence "Indicates a router-lsa node is configured."; description "Maximum metric in self-originated router-LSAs"; container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa container router-lsa-no-abr-off { presence "Indicates a no-abr-off node is configured."; description "Do not temporarily suspend ABR duties in max-metric mode"; } // container router-lsa-no-abr-off container router-lsa-on-startup { description "On startup"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-startup container router-lsa-on-switchover { description "On switchover"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-switchover container router-lsa-on-proc-restart { description "On process restart"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-proc-restart container router-lsa-on-proc-migration { description "On process migration"; leaf originate-time { type uint32 { range "5..86400"; } must "not(../wait-for-bgp)"; description "Time in seconds to originate router-LSA with max-metric"; } container wait-for-bgp { must "not(../originate-time)"; presence "Indicates a wait-for-bgp node is configured."; description "Let BGP decide when to originate router-LSA with normal metric"; } // container wait-for-bgp container include-stub { presence "Indicates a include-stub node is configured."; description "Set maximum metric for stub links in router-LSAs"; } // container include-stub container summary-lsa { presence "Indicates a summary-lsa node is configured."; description "Overriding metric in summary-LSAs (default 16711680)"; leaf metric { type uint32 { range "1..16777215"; } description "Overriding metric in summary-LSAs (default 16711680)"; } } // container summary-lsa container external-lsa { presence "Indicates a external-lsa node is configured."; description "Override external-lsa metric with max-metric value"; leaf metric { type uint32 { range "1..16777215"; } description "Override external-lsa metric with max-metric value"; } } // container external-lsa } // container router-lsa-on-proc-migration } // container max-metric container max-lsa { presence "Indicates a max-lsa node is configured."; description "Maximum number of LSAs OSPF process will receive"; leaf max-lsa { type uint32 { range "1..4294967294"; } mandatory true; description "Maximum number of LSAs OSPF process will receive"; } leaf threshold { type uint32 { range "1..100"; } description "Threshold value (%) at which to generate a warning msg"; } container warning-only { presence "Indicates a warning-only node is configured."; description "Only give warning message when limit is exceeded"; } // container warning-only leaf ignore-time { type uint32 { range "1..35791394"; } must "not(../warning-only)"; description "time during which all adjacencies are suppressed"; } leaf ignore-count { type uint32 { range "1..4294967294"; } must "not(../warning-only)"; description "maximum number of times adjacencies can be suppressed"; } leaf reset-time { type uint32 { range "2..71582788"; } must "not(../warning-only)"; description "time after which ignore-count is reset to zero"; } } // container max-lsa container timers { description "Adjust routing timers"; container throttle { description "OSPF throttle timers"; container spf { presence "Indicates a spf node is configured."; description "OSPF SPF throttle timers"; leaf initial-delay { type uint32 { range "1..600000"; } mandatory true; description "OSPF SPF throttle timers"; } leaf second-delay { type uint32 { range "1..600000"; } mandatory true; description "Delay between first and second SPF calculation in milliseconds"; } leaf maximum-delay { type uint32 { range "1..600000"; } mandatory true; description "Maximum wait time in milliseconds for SPF calculations"; } } // container spf container lsa { description "LSA throttle timers"; container all { presence "Indicates a all node is configured."; description "For all types of OSPF LSAs"; leaf initial-delay { type uint32 { range "0..600000"; } mandatory true; description "For all types of OSPF LSAs"; } leaf minimum-delay { type uint32 { range "1..600000"; } mandatory true; description "Minimum delay between originating the same LSA in milliseconds"; } leaf maximum-delay { type uint32 { range "1..600000"; } mandatory true; description "Maximum delay between originating the same LSA in milliseconds"; } } // container all } // container lsa leaf fast-reroute { type uint32 { range "50..600000"; } description "Fast-reroute throttle timer"; } } // container throttle container lsa { description "OSPF global LSA timers"; leaf group-pacing { type uint32 { range "10..1800"; } description "OSPF LSA group pacing timer"; } leaf min-arrival { type uint32 { range "0..600000"; } description "OSPF MinLSArrival timer"; } leaf refresh { type uint32 { range "1800..2700"; } description "OSPF LSA refresh interval"; } } // container lsa container pacing { description "OSPF pacing timers"; leaf flood { type uint32 { range "5..100"; } description "OSPF flood pacing timer"; } } // container pacing } // container timers container nsf { description "Enable Cisco Non Stop Forwarding"; container cisco { presence "Indicates a cisco node is configured."; description "Enable Cisco Non Stop Forwarding"; container enforce { description "Cancel NSF restart when non-NSF-aware neighbors detected"; container global { presence "Indicates a global node is configured."; description "For the whole OSPF process"; } // container global } // container enforce } // container cisco leaf interval { type uint32 { range "90..3600"; } description "Minimum interval between NSF restarts (seconds)"; } container ietf { presence "Indicates a ietf node is configured."; description "Enable ietf graceful restart"; } // container ietf container ietf-helper { description "router's helper support level"; container disable { presence "Indicates a disable node is configured."; description "router's helper support disabled"; } // container disable } // container ietf-helper leaf lifetime { type uint32 { range "90..1800"; } description "Maximum route lifetime following restart (seconds)"; } leaf flush-delay-time { type uint32 { range "1..3600"; } description "Maximum time allowed for external route learning (seconds)"; } } // container nsf container address-family { description "OSPF address family"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "IPV4 address family"; container unicast { presence "Indicates a unicast node is configured."; description "unicast topology"; } // container unicast } // container ipv4 } // container address-family container maximum { description "Set OSPF limits"; leaf interfaces { type uint32 { range "1..4294967295"; } description "Limit number of interfaces"; } leaf paths { type uint32 { range "1..64"; } description "Limit number of paths"; } container redistributed-prefixes { presence "Indicates a redistributed-prefixes node is configured."; description "Limit number of redistributed prefixes"; leaf prefixes { type uint32 { range "1..4294967295"; } mandatory true; description "Limit number of redistributed prefixes"; } leaf threshold { type uint32 { range "1..100"; } description "Threshold value (%) at which to generate a warning msg"; } container warning-only { presence "Indicates a warning-only node is configured."; description "Only give warning messsage when limit is exceeded"; } // container warning-only } // container redistributed-prefixes } // container maximum container queue { description "Adjust OSPF input queue"; container limit { description "High watermark for incoming priority events"; leaf high { type uint32 { range "1000..30000"; } description "High watermark for incoming high priority events (hello)"; } leaf medium { type uint32 { range "1000..30000"; } description "High watermark for incoming medium priority events (LSA ACK)"; } leaf low { type uint32 { range "1000..30000"; } description "High watermark for incoming low priority events (DBD/LSUpd/Req)"; } } // container limit container dispatch { description "Number of continuous events processed by type"; leaf incoming { type uint32 { range "30..3000"; } description "Number of continuous incoming events processed"; } leaf rate-limited-lsa { type uint32 { range "30..3000"; } description "Number of rate-limited LSAs processed"; } leaf flush-lsa { type uint32 { range "30..3000"; } description "Number of LSAs flushed"; } leaf spf-lsa-limit { type uint32 { range "30..3000"; } description "Number of summary or external LSAs processed per run"; } } // container dispatch } // container queue container summary-prefixes { description "Configure IP address summaries"; list summary-prefix { key "address mask"; leaf address { type inet:ipv4-address-no-zone; description "IP summary prefix address"; } leaf mask { type inet:ipv4-address-no-zone; description "IP smmary address mask"; } container not-advertise { must "not(../tag)"; presence "Indicates a not-advertise node is configured."; description "Suppress routes that match the specified prefix/mask pair"; } // container not-advertise leaf tag { type uint32 { range "0..4294967295"; } must "not(../not-advertise)"; description "Set tag"; } } // list summary-prefix } // container summary-prefixes container spf { description "SPF configuration"; container prefix-priority { description "Configure SPF prefix priority route policy"; leaf route-policy { type xr:Route-policy-name; description "Specify the route-policy to prioritize route install"; } } // container prefix-priority } // container spf container fast-reroute { description "IP Fast Reroute"; container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container priority-limit { description "Limit backup computation upto the prefix priority"; container critical { must "not(../high) and not(../medium)"; presence "Indicates a critical node is configured."; description "Compute for critical priority prefixes only"; } // container critical container high { must "not(../critical) and not(../medium)"; presence "Indicates a high node is configured."; description "Compute for critical & high priority prefixes "; } // container high container medium { must "not(../high) and not(../critical)"; presence "Indicates a medium node is configured."; description "Compute for critical, high & medium priority prefixes "; } // container medium } // container priority-limit container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker container load-sharing { description "Load share prefixes across multiple backups"; container disable { presence "Indicates a disable node is configured."; description "Disable load sharing"; } // container disable } // container load-sharing container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-prefix container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-link Computation"; } // container enable container priority-limit { description "Limit backup computation upto the prefix priority"; container critical { must "not(../high) and not(../medium)"; presence "Indicates a critical node is configured."; description "Compute for critical priority prefixes only"; } // container critical container high { must "not(../critical) and not(../medium)"; presence "Indicates a high node is configured."; description "Compute for critical & high priority prefixes "; } // container high container medium { must "not(../high) and not(../critical)"; presence "Indicates a medium node is configured."; description "Compute for critical, high & medium priority prefixes "; } // container medium } // container priority-limit container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container loopback { description "OSPF loopback configuration"; container stub-network { description "Advertise loopback as a stub network"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertising loopback as a stub network"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertising loopback as a stub network"; } // container disable } // container stub-network } // container loopback container link-down { description "Configure interface down parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast or early detection of link-down events"; } // container fast-detect } // container link-down leaf weight { type uint32 { range "1..16777214"; } description "Interface weight"; } container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay container microloop { description "Microloop configuration"; container avoidance { presence "Indicates a avoidance node is configured."; description "Avoid microloops"; container protected { presence "Indicates a protected node is configured."; description "Avoid microloops for protected prefixes only"; } // container protected container segment-routing { presence "Indicates a segment-routing node is configured."; description "Enable segment routing microloop avoidance"; } // container segment-routing } // container avoidance leaf avoidance-rib-update-delay { type uint32 { range "1..600000"; } description "Delay to introduce between SPF and RIB update"; } } // container microloop container areas { description "Enter the OSPF area configuration submode"; list area { key "area-id"; description "Enter the OSPF area configuration submode"; leaf area-id { type xr:Ospf-area-id; description "Enter the OSPF area configuration submode"; } container ranges { description "Summarize routes matching address/mask (border routers only)"; list range { key "address mask"; description "Summarize routes matching address/mask (border routers only)"; leaf address { type inet:ipv4-address-no-zone; must "(../advertise and not(../not-advertise)) or (../not-advertise and not(../advertise))"; description "IP address"; } leaf mask { type inet:ipv4-address-no-zone; description "IP address mask"; } container advertise { presence "Indicates a advertise node is configured."; description "Advertise this range (default)"; } // container advertise container not-advertise { presence "Indicates a not-advertise node is configured."; description "DoNotAdvertise this range"; } // container not-advertise } // list range } // container ranges leaf default-cost { type uint32 { range "1..16777215"; } description "Set the summary default-cost of a NSSA/stub area"; } container stub { presence "Indicates a stub node is configured."; description "Specify the area as a stub area"; container no-summary { presence "Indicates a no-summary node is configured."; description "Do not send summary LSA into stub area"; } // container no-summary } // container stub container nssa { presence "Indicates a nssa node is configured."; description "Specify area as a NSSA area"; container no-redistribution { presence "Indicates a no-redistribution node is configured."; description "No redistribution into this NSSA area"; } // container no-redistribution container default-information-originate { presence "Indicates a default-information-originate node is configured."; description "Originate Type 7 default into NSSA area"; leaf metric { type uint32 { range "1..16777214"; } description "OSPF default metric"; } leaf metric-type { type uint32 { range "1..2"; } description "OSPF metric type for default routes"; } } // container default-information-originate container no-summary { presence "Indicates a no-summary node is configured."; description "Do not send summary LSA into NSSA"; } // container no-summary } // container nssa container nssa-translate { description "Translate NSSA LSA"; container type7 { description "Translate type 7 to type 5"; container always { presence "Indicates a always node is configured."; description "Always translate NSSA LSAs on this ABR"; } // container always } // container type7 } // container nssa-translate container route-policy { description "Specify the route-policy to filter type 3 LSAs"; leaf in { type xr:Route-policy-name; description "route-policy to filter inbound"; } leaf out { type xr:Route-policy-name; description "route-policy to filter outbound"; } } // container route-policy container external-out { description "Enable/Disable advertisement of intra-area prefixes as external"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of intra-area routes as external"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of intra-area routes as external"; } // container disable } // container external-out container summary-in { description "Enable/Disable advertisement of external prefixes as inter-area"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of external prefixes as inter-area"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of external prefixes as inter-area"; } // container disable } // container summary-in container interfaces { description "Enable routing on an interface "; list interface { key "interface-name"; description "Enable routing on an interface "; leaf interface-name { type xr:Interface-name; description "Enable routing on an interface "; } container neighbors { description "Specify a neighbor router"; list neighbor { key "neighbor-address"; description "Specify a neighbor router"; leaf neighbor-address { type inet:ipv4-address-no-zone; description "Specify a neighbor router"; } container database-filter { description "Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor"; container all { description "Filter all LSA"; container out { presence "Indicates a out node is configured."; description "Outgoing LSA"; } // container out } // container all } // container database-filter leaf priority { type uint32 { range "0..255"; } description "OSPF priority of non-broadcast neighbor"; } leaf poll-interval { type uint32 { range "0..65535"; } description "OSPF dead-router polling interval"; } leaf cost { type uint32 { range "1..65535"; } description "OSPF cost for point-to-multipoint neighbor"; } } // list neighbor } // container neighbors container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; mandatory true; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication container network { description "Network type"; container broadcast { presence "Indicates a broadcast node is configured."; description "Specify OSPF broadcast multi-access network"; } // container broadcast container non-broadcast { presence "Indicates a non-broadcast node is configured."; description "Specify OSPF NBMA network"; } // container non-broadcast container point-to-point { presence "Indicates a point-to-point node is configured."; description "Specify OSPF point-to-point network"; } // container point-to-point container point-to-multipoint { presence "Indicates a point-to-multipoint node is configured."; description "Specify OSPF point-to-multipoint network"; } // container point-to-multipoint } // container network container mpls { description "Configure MPLS routing protocol parameters"; container ldp { description "Configure LDP parameters"; container sync { presence "Indicates a sync node is configured."; description "Enable LDP IGP synchronization on interfaces"; container disable { presence "Indicates a disable node is configured."; description "Disable MPLS LDP sync"; } // container disable } // container sync } // container ldp } // container mpls leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { presence "Indicates a cost-fallback node is configured."; description "Cost when cumulative bandwidth goes below the theshold"; leaf cost { type uint32 { range "1..65535"; } must "(../threshold)"; description "Cost when cumulative bandwidth goes below the theshold"; } leaf threshold { type uint32 { range "1..4294967"; } must "(../cost)"; description "Threshold bandwidth when cost-fallback is applied"; } container anomaly { description "Penalty when a delay or loss is notified"; container delay { description "Penalty when a delay is notified"; container igp-metric { description "Penalty on IGP metric"; leaf increment { type uint32 { range "1..65534"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the IGP cost by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the IGP cost by the specified value"; } leaf value { type uint32 { range "1..65535"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the IGP cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable igp-metric"; } // container disable } // container igp-metric container te-metric { description "Penalty on TE metric"; leaf increment { type uint32 { range "1..4294967294"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the TE metric by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the TE metric by the specified value"; } leaf value { type uint32 { range "1..4294967295"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the TE cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable te-metric"; } // container disable } // container te-metric } // container delay } // container anomaly } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf priority { type uint32 { range "0..255"; } description "Router priority"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container flood-reduction { description "OSPF Flood Reduction"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable flooding reduction"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable flooding reduction"; } // container disable } // container flood-reduction container demand-circuit { description "Enable/Disable demand circuits"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable demand circuits"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable demand circuits"; } // container disable } // container demand-circuit container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring of MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { description "Outgoing LSA"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container distribute-list { description "Filter networks in routing updates"; leaf access-list { type string; must "not(../route-policy)"; description "In-bound access-list name."; } leaf route-policy { type xr:Route-policy-name; must "not(../access-list)"; description "Route Policy to filter OSPF prefixes"; } } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container bfd { description "Configure BFD parameters"; container fast-detect { must "not(strict-mode and disable)"; presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; container strict-mode { presence "Indicates a strict-mode node is configured."; description "Hold down neighbor session until BFD session is up"; } // container strict-mode container disable { presence "Indicates a disable node is configured."; description "Prevent bfd settings from being inherited from the parent"; } // container disable } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Minimum interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container security { description "Enable security"; container ttl { must "not(hops and disable)"; presence "Indicates a ttl node is configured."; description "Enable ttl security"; leaf hops { type uint32 { range "1..254"; } description "IP hops"; } container disable { presence "Indicates a disable node is configured."; description "Disable TTL security"; } // container disable } // container ttl } // container security container prefix-suppression { description "Suppress advertisement of the prefixes"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable primary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable primary address suppression"; } // container disable container secondary-address { description "Enable/Disable secondary address suppression"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable secondary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable secondary address suppression"; } // container disable } // container secondary-address } // container prefix-suppression container fast-reroute { description "IP Fast Reroute"; container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-link Computation"; } // container enable container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker } // container per-prefix container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container loopback { description "OSPF loopback configuration"; container stub-network { description "Advertise loopback as a stub network"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertising loopback as a stub network"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertising loopback as a stub network"; } // container disable } // container stub-network } // container loopback container link-down { description "Configure interface down parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast or early detection of link-down events"; container disable { presence "Indicates a disable node is configured."; description "Disable fast or early detection of link-down events"; } // container disable } // container fast-detect } // container link-down container prefix-sid { tailf:dependency "../interface-name"; when "../interface-name[starts-with(text(),'Loopback')]"; description "Prefix SID Configuration"; container index { presence "Indicates a index node is configured."; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } mandatory true; description "SID Index"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container index container absolute { presence "Indicates a absolute node is configured."; description "SID value"; leaf sid-label { type uint32 { range "16000..1048575"; } mandatory true; description "SID value"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container absolute container strict-spf { description "Strict-SPF Prefix SID Configuration"; container index { must "not(../absolute)"; presence "Indicates a index node is configured."; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } mandatory true; description "SID Index"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container index container absolute { must "not(../index)"; presence "Indicates a absolute node is configured."; description "SID value"; leaf sid-label { type uint32 { range "16000..1048575"; } mandatory true; description "SID value"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container absolute } // container strict-spf container algorithms { description "Algorithm Specific Prefix SID Configuration"; list algorithm { must "index or absolute"; key "algorithm-number"; description "Algorithm Specific Prefix SID Configuration"; leaf algorithm-number { type uint32 { range "128..255"; } description "Algorithm Specific Prefix SID Configuration"; } container index { presence "Indicates a index node is configured."; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } mandatory true; description "SID Index"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container index container absolute { presence "Indicates a absolute node is configured."; description "SID value"; leaf sid-label { type uint32 { range "16000..1048575"; } mandatory true; description "SID value"; } container explicit-null { presence "Indicates a explicit-null node is configured."; description "Force penultimate hop to send explicit-null label"; } // container explicit-null container n-flag-clear { presence "Indicates a n-flag-clear node is configured."; description "Not a node SID (e.g. for anycast SID use)"; } // container n-flag-clear } // container absolute } // list algorithm } // container algorithms } // container prefix-sid container adjacency-sid { description "Adjacency SID Configuration"; container indexes { description "SID Index"; list index { key "sid-index"; description "SID Index"; leaf sid-index { type uint32 { range "0..1048575"; } description "SID Index"; } container protected { presence "Indicates a protected node is configured."; description "Protect the static adjacency SID"; } // container protected leaf neighbor-address { type inet:ipv4-address-no-zone; description "Provide Neighbor IP address associated with this SID"; } } // list index } // container indexes container absolutes { description "SID value"; list absolute { key "sid-label"; description "SID value"; leaf sid-label { type uint32 { range "15000..1048575"; } description "SID value"; } container protected { presence "Indicates a protected node is configured."; description "Protect the static adjacency SID"; } // container protected leaf neighbor-address { type inet:ipv4-address-no-zone; description "Provide Neighbor IP address associated with this SID"; } } // list absolute } // container absolutes } // container adjacency-sid leaf weight { type uint32 { range "1..16777214"; } description "Interface weight"; } container advertise { tailf:dependency "../interface-name"; when "../interface-name[starts-with(text(),'Loopback')]"; description "Conditionally advertise"; container prefix { description "Conditionally advertise this prefix"; leaf route-policy { type xr:Route-policy-name; description "Specify the route-policy for conditional advertising"; } } // container prefix } // container advertise container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay } // list interface } // container interfaces container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; mandatory true; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication container network { description "Network type"; container broadcast { presence "Indicates a broadcast node is configured."; description "Specify OSPF broadcast multi-access network"; } // container broadcast container non-broadcast { presence "Indicates a non-broadcast node is configured."; description "Specify OSPF NBMA network"; } // container non-broadcast container point-to-point { presence "Indicates a point-to-point node is configured."; description "Specify OSPF point-to-point network"; } // container point-to-point container point-to-multipoint { presence "Indicates a point-to-multipoint node is configured."; description "Specify OSPF point-to-multipoint network"; } // container point-to-multipoint } // container network container mpls { description "Configure MPLS routing protocol parameters"; container ldp { description "Configure LDP parameters"; container sync { presence "Indicates a sync node is configured."; description "Enable LDP IGP synchronization"; container disable { presence "Indicates a disable node is configured."; description "Disable MPLS LDP sync"; } // container disable } // container sync } // container ldp } // container mpls leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { description "Cost fallback when anomaly is detected"; container anomaly { description "Penalty when a delay or loss is notified"; container delay { description "Penalty when a delay is notified"; container igp-metric { description "Penalty on IGP metric"; leaf increment { type uint32 { range "1..65534"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the IGP cost by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the IGP cost by the specified value"; } leaf value { type uint32 { range "1..65535"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the IGP cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable igp-metric"; } // container disable } // container igp-metric container te-metric { description "Penalty on TE metric"; leaf increment { type uint32 { range "1..4294967294"; } must "not(../multiplier or ../value or ../disable)"; description "Increment the TE metric by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value or ../disable)"; description "Multiply the TE metric by the specified value"; } leaf value { type uint32 { range "1..4294967295"; } must "not(../increment or ../multiplier or ../disable)"; description "Set the TE cost to the specified value"; } container disable { must "not(../increment or ../multiplier or ../value)"; presence "Indicates a disable node is configured."; description "Disable te-metric"; } // container disable } // container te-metric } // container delay } // container anomaly } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf priority { type uint32 { range "0..255"; } description "Router priority"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container flood-reduction { description "OSPF Flood Reduction"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable flooding reduction"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable flooding reduction"; } // container disable } // container flood-reduction container demand-circuit { description "Enable/Disable demand circuits"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable demand circuits"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable demand circuits"; } // container disable } // container demand-circuit container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring of MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { description "Outgoing LSA"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container distribute-list { description "Filter networks in routing updates"; leaf access-list { type string; must "not(../route-policy)"; description "In-bound access-list name."; } leaf route-policy { type xr:Route-policy-name; must "not(../access-list)"; description "Route Policy to filter OSPF prefixes"; } } // container distribute-list leaf packet-size { type uint32 { range "576..10000"; } description "Customize size of OSPF packets upto MTU"; } container bfd { description "Configure BFD parameters"; container fast-detect { must "not(strict-mode and disable)"; presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; container strict-mode { presence "Indicates a strict-mode node is configured."; description "Hold down neighbor session until BFD session is up"; } // container strict-mode container disable { presence "Indicates a disable node is configured."; description "Prevent bfd settings from being inherited from the parent"; } // container disable } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Minimum interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container security { description "Enable/Disable security"; container ttl { must "not(hops and disable)"; presence "Indicates a ttl node is configured."; description "TTL security"; leaf hops { type uint32 { range "1..254"; } description "IP hops"; } container disable { presence "Indicates a disable node is configured."; description "Disable TTL security"; } // container disable } // container ttl } // container security container prefix-suppression { description "Suppress advertisement of the prefixes"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable primary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable primary address suppression"; } // container disable container secondary-address { description "Enable/Disable secondary address suppression"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable secondary address suppression"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable secondary address suppression"; } // container disable } // container secondary-address } // container prefix-suppression container fast-reroute { description "IP Fast Reroute"; container per-link { description "Per-link Computation"; container enable { presence "Indicates a enable node is configured."; description "Per-link Computation"; } // container enable container exclude { description "Per-link LFA exclusion information"; container interfaces { description "Exclude an interface from Per-link LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-link LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-link LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only } // container per-link container per-prefix { description "Per-prefix Computation"; container enable { presence "Indicates a enable node is configured."; description "Enable per-prefix Computation"; } // container enable container exclude { description "Per-prefix LFA exclusion information"; container interfaces { description "Exclude an interface from Per-prefix LFA"; list interface { key "interface-name"; description "Exclude an interface from Per-prefix LFA"; leaf interface-name { type xr:Interface-name; description "Exclude an interface from Per-prefix LFA"; } } // list interface } // container interfaces } // container exclude container lfa-candidate { description "FRR LFA candidate information"; container interfaces { description "Include an interface to LFA candidate in computation"; list interface { key "interface-name"; description "Include an interface to LFA candidate in computation"; leaf interface-name { type xr:Interface-name; description "Include an interface to LFA candidate in computation"; } } // list interface } // container interfaces } // container lfa-candidate container use-candidate-only { description "Enable/Disable backup selection from candidate-list only"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable backup selection from candidate-list only"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable backup selection from candidate-list only"; } // container disable } // container use-candidate-only container tiebreaker { description "Configure tiebreaker for multiple backups"; container downstream { description "Prefer backup path via downstream node"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container downstream container lc-disjoint { description "Prefer line card disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lc-disjoint container lowest-backup-metric { description "Prefer backup path with lowest total metric"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container lowest-backup-metric container node-protecting { description "Prefer node protecting backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container node-protecting container primary-path { description "Prefer backup path from ECMP set"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container primary-path container secondary-path { description "Prefer non-ECMP backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container secondary-path container interface-disjoint { description "Prefer Interface disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container interface-disjoint container srlg-disjoint { description "Prefer SRLG disjoint backup path"; leaf index { type uint32 { range "1..255"; } must "not(../disable)"; description "Set preference order among tiebreakers"; } container disable { must "not(../index)"; presence "Indicates a disable node is configured."; description "Disable tiebreaker"; } // container disable } // container srlg-disjoint } // container tiebreaker } // container per-prefix container disable { presence "Indicates a disable node is configured."; description "Disable IP Fast Reroute"; } // container disable } // container fast-reroute container loopback { description "OSPF loopback configuration"; container stub-network { description "Advertise loopback as a stub network"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertising loopback as a stub network"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertising loopback as a stub network"; } // container disable } // container stub-network } // container loopback container link-down { description "Configure interface down parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable fast or early detection of link-down events"; container disable { presence "Indicates a disable node is configured."; description "Disable fast or early detection of link-down events"; } // container disable } // container fast-detect } // container link-down leaf weight { type uint32 { range "1..16777214"; } description "Interface weight"; } container delay { description "Delay configuration setting"; container normalize { description "Delay normalization setting"; leaf interval { type uint32 { range "1..16777215"; } must "../offset"; description "Normalization interval"; } leaf offset { type uint32 { range "0..16777215"; } must "../interval"; description "Normalization offset"; } } // container normalize } // container delay container virtual-links { description "Define a virtual link"; list virtual-link { key "virtual-link-id"; description "Define a virtual link"; leaf virtual-link-id { type inet:ipv4-address-no-zone; description "Define a virtual link"; } leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Delay between LSA retransmissions"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Link state transmit delay"; } container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication } // list virtual-link } // container virtual-links container sham-links { description "Define a sham link"; list sham-link { key "local-address remote-address"; description "Define a sham link"; leaf local-address { type inet:ipv4-address-no-zone; description "Address of the local sham-link endpoint"; } leaf remote-address { type inet:ipv4-address-no-zone; description "Address of the remote sham-link endpoint"; } leaf cost { type uint32 { range "1..65535"; } description "Sham-link cost"; } leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Delay between LSA retransmissions"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Link state transmit delay"; } container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication } // list sham-link } // container sham-links } // list area } // container areas container authentication-key { description "Authentication password (key)"; leaf encrypted { type xr:Proprietary-password; description "Specifies an ENCRYPTED password (key) will follow"; } } // container authentication-key container message-digest-keys { description "Message digest authentication password (key)"; list message-digest-key { key "message-digest-key-id"; description "Message digest authentication password (key)"; leaf message-digest-key-id { type uint32 { range "1..255"; } description "Message digest authentication password (key)"; } container md5 { description "Use MD5 algorithm"; leaf encrypted { type xr:Proprietary-password; mandatory true; description "Specifies an ENCRYPTED password (key) will follow"; } } // container md5 } // list message-digest-key } // container message-digest-keys container authentication { presence "Indicates a authentication node is configured."; description "Enable authentication"; container message-digest { must "not(../null or ../keychain)"; presence "Indicates a message-digest node is configured."; description "Use message-digest authentication"; } // container message-digest container keychain { must "../keychain-name"; presence "Indicates a keychain node is configured."; description "Use keychain"; } // container keychain leaf keychain-name { type string { length "1..32"; } must "(../message-digest or ../keychain) and not(../null)"; description "Specify keychain name"; } container null { must "not(../message-digest or ../keychain)"; presence "Indicates a null node is configured."; description "Use no authentication"; } // container null } // container authentication container network { description "Network type"; container broadcast { presence "Indicates a broadcast node is configured."; description "Specify OSPF broadcast multi-access network"; } // container broadcast container non-broadcast { presence "Indicates a non-broadcast node is configured."; description "Specify OSPF NBMA network"; } // container non-broadcast container point-to-point { presence "Indicates a point-to-point node is configured."; description "Specify OSPF point-to-point network"; } // container point-to-point container point-to-multipoint { presence "Indicates a point-to-multipoint node is configured."; description "Specify OSPF point-to-multipoint network"; } // container point-to-multipoint } // container network container mpls { description "Configure MPLS routing protocol parameters"; container ldp { description "Configure LDP parameters"; container sync { presence "Indicates a sync node is configured."; description "Enable LDP IGP synchronization"; } // container sync } // container ldp } // container mpls leaf cost { type uint32 { range "1..65535"; } description "Interface cost"; } container cost-fallback { description "Cost fallback when anomaly is detected"; container anomaly { description "Penalty when a delay or loss is notified"; container delay { description "Penalty when a delay is notified"; container igp-metric { description "Penalty on IGP metric"; leaf increment { type uint32 { range "1..65534"; } must "not(../multiplier or ../value)"; description "Increment the IGP cost by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value)"; description "Multiply the IGP cost by the specified value"; } leaf value { type uint32 { range "1..65535"; } must "not(../increment or ../multiplier)"; description "Set the IGP cost to the specified value"; } } // container igp-metric container te-metric { description "Penalty on TE metric"; leaf increment { type uint32 { range "1..4294967294"; } must "not(../multiplier or ../value)"; description "Increment the TE metric by the specified value"; } leaf multiplier { type uint32 { range "1..255"; } must "not(../increment or ../value)"; description "Multiply the TE metric by the specified value"; } leaf value { type uint32 { range "1..4294967295"; } must "not(../increment or ../multiplier)"; description "Set the TE cost to the specified value"; } } // container te-metric } // container delay } // container anomaly } // container cost-fallback leaf hello-interval { type uint32 { range "1..65535"; } description "Time between HELLO packets"; } leaf dead-interval { type uint32 { range "1..65535"; } must "not(../dead-interval-minimal-hello-multiplier)"; description "Seconds"; } leaf dead-interval-minimal-hello-multiplier { type uint32 { range "3..20"; } must "not(../dead-interval)"; description "Set multiplier for Hellos"; } leaf priority { type uint32 { range "0..255"; } description "Router priority"; } leaf retransmit-interval { type uint32 { range "1..65535"; } description "Time between retransmitting lost link state advertisements"; } leaf transmit-delay { type uint32 { range "1..65535"; } description "Estimated time needed to send link-state update packet"; } container flood-reduction { description "Enable/Disable OSPF Flood Reduction"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable OSPF Flood Reduction"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable OSPF Flood Reduction"; } // container disable } // container flood-reduction container demand-circuit { description "Enable/Disable OSPF demand circuit"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable OSPF demand circuit"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable OSPF demand circuit"; } // container disable } // container demand-circuit container mtu-ignore { description "Enable/Disable ignoring of MTU in DBD packets"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Ignores the MTU in DBD packets"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable ignoring the MTU in DBD packets"; } // container disable } // container mtu-ignore container database-filter { description "Filter OSPF LSA during synchronization and flooding"; container all { description "Filter all LSA"; container out { description "Outgoing LSA"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable filtering"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable filtering"; } // container disable } // container out } // container all } // container database-filter container passive { description "Enable/Disable passive"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable passive"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable passive"; } // container disable } // container passive container external-out { description "Enable/Disable advertisement of intra-area prefixes as external"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of intra-area routes as external"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of intra-area routes as external"; } // container disable } // container external-out container summary-in { description "Enable/Disable advertisement of external prefixes as inter-area"; container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable advertisement of external prefixes as inter-area"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable advertisement of external prefixes as inter-area"; } // container disable } // container summary-in container adjacency { description "OSPF adjacency bring up"; container stagger { description "Stagger OSPF adjacency bring up"; container disable { must "not(../initial-number-of-neighbors)"; presence "Indicates a disable node is configured."; description "Disable stagger OSPF adjacency bring up"; } // container disable leaf initial-number-of-neighbors { type uint32 { range "1..65535"; } must "not(../disable)"; description "Initial number of neighbors to bring up per area (default 2)"; } leaf maximum-simultaneous-neighbors { type uint32 { range "1..65535"; } must "../initial-number-of-neighbors"; description "Maximum simultaneous neighbors to bring up (default 64)"; } } // container stagger } // container adjacency container snmp { description "SNMP configuration"; leaf context { type string { length "1..32"; pattern "[a-zA-Z0-9*/_]+"; } description "Specified SNMP context for OSPF instance"; } container trap { presence "Indicates a trap node is configured."; description "Enable SNMP trap for OSPF instance"; } // container trap } // container snmp container ucmp { description "Unequal Cost Load Balancing"; container enable { presence "Indicates a ucmp node is configured."; description "Enable ucmp"; leaf variance { type uint32 { range "101..10000"; } default "200"; description "Set the Variance for UCMP path metric"; } leaf prefix-list { type string { length "1..1024"; } description "Filter prefixes for which UCMP path are calculated"; } } // container enable container exclude { description "UCMP exclusion information"; container interfaces { description "Exclude an interface during UCMP computation"; list interface { key "interface-name"; description "Exclude an interface during UCMP computation"; leaf interface-name { type xr:Interface-name; description "Exclude an interface during UCMP computation"; } } // list interface } // container interfaces } // container exclude leaf delay-interval { type uint32 { range "1..5000"; } description "Interval between SPF and start of the UCMP calculation"; } } // container ucmp container apply-weight { description "Enable weights configured under interfaces for load sharing"; leaf bandwidth { type uint32 { range "1..4294967"; } description "Use interface bandwidth when calculating weights"; } leaf default-weight { type uint32 { range "1..16777214"; } description "Specify default weight value"; } } // container apply-weight } // list vrf } // container vrfs } // list process } // container processes } // container ospf } // container router } // module Cisco-IOS-XR-um-router-ospf-cfg
© 2023 YumaWorks, Inc. All rights reserved.