This YANG module defines the generic configuration and operational state for the OSPF protocol common to all vendor implementati...
Version: 2022-10-19
module ietf-ospf { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf"; prefix ospf; import ietf-inet-types { prefix inet; reference "RFC 6991: Common YANG Data Types"; } import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types"; } import ietf-interfaces { prefix if; reference "RFC 8343: A YANG Data Model for Interface Management"; } import ietf-routing-types { prefix rt-types; reference "RFC 8294: Common YANG Data Types for the Routing Area"; } import iana-routing-types { prefix iana-rt-types; reference "RFC 8294: Common YANG Data Types for the Routing Area"; } import ietf-routing { prefix rt; reference "RFC 8349: A YANG Data Model for Routing Management (NMDA Version)"; } import ietf-key-chain { prefix key-chain; reference "RFC 8177: YANG Data Model for Key Chains"; } import ietf-bfd-types { prefix bfd-types; reference "RFC 9314: YANG Data Model for Bidirectional Forwarding Detection (BFD)"; } organization "IETF Link State Routing (lsr) Working Group"; contact "WG Web: <https://datatracker.ietf.org/wg/lsr/> WG List: <mailto:lsr@ietf.org> Editor: Derek Yeung <mailto:derek@arrcus.com> Author: Acee Lindem <mailto:acee@cisco.com> Author: Yingzhen Qu <mailto:yingzhen.qu@futurewei.com> Author: Jeffrey Zhang <mailto:zzhang@juniper.net> Author: Ing-Wher Chen <mailto:ingwherchen@mitre.org>"; description "This YANG module defines the generic configuration and operational state for the OSPF protocol common to all vendor implementations. It is intended that the module will be extended by vendors to define vendor-specific OSPF configuration parameters and policies -- for example, route maps or route policies. This YANG data model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 9129; see the RFC itself for full legal notices."; revision "2022-10-19" { description "Initial revision."; reference "RFC 9129: YANG Data Model for the OSPF Protocol"; } feature multi-topology { description "Support for Multi-Topology (MT) routing."; reference "RFC 4915: Multi-Topology (MT) Routing in OSPF"; } feature multi-area-adj { description "Support for OSPF multi-area adjacencies as described in RFC 5185."; reference "RFC 5185: OSPF Multi-Area Adjacency"; } feature explicit-router-id { description "Sets the Router ID per instance explicitly."; } feature demand-circuit { description "Support for OSPF demand circuits as defined in RFC 1793."; reference "RFC 1793: Extending OSPF to Support Demand Circuits"; } feature mtu-ignore { description "Disable OSPF Database Description packet MTU mismatch checking as specified in the OSPFv2 protocol specification (RFC 2328). This mismatch checking also applies to OSPFv3 (RFC 5340)."; reference "RFC 2328: OSPF Version 2, Section 10.6 RFC 5340: OSPF for IPv6"; } feature lls { description "OSPF link-local signaling (LLS) as defined in RFC 5613."; reference "RFC 5613: OSPF Link-Local Signaling"; } feature prefix-suppression { description "OSPF prefix suppression support as described in RFC 6860."; reference "RFC 6860: Hiding Transit-Only Networks in OSPF"; } feature ttl-security { description "Support for OSPF Time to Live (TTL) security checking."; reference "RFC 5082: The Generalized TTL Security Mechanism (GTSM)"; } feature nsr { description "Non-Stop-Routing (NSR) support. The OSPF NSR feature allows a router with redundant control-plane capability (e.g., dual Route Processor (RP) cards) to maintain its state and adjacencies during planned and unplanned OSPF instance restarts. It differs from graceful restart or Non-Stop Forwarding (NSF) in that no protocol signaling or assistance from adjacent OSPF neighbors is required to recover control-plane state."; } feature graceful-restart { description "Graceful OSPF restart as defined in RFCs 3623 and 5187."; reference "RFC 3623: Graceful OSPF Restart RFC 5187: OSPFv3 Graceful Restart"; } feature auto-cost { description "Calculates the OSPF interface cost according to reference bandwidth."; reference "RFC 2328: OSPF Version 2"; } feature max-ecmp { description "Sets the maximum number of ECMP paths."; } feature max-lsa { description "Sets the maximum number of Link State Advertisements (LSAs) the OSPF instance will accept."; reference "RFC 1765: OSPF Database Overflow"; } feature te-rid { description "Support for configuration of the Traffic Engineering (TE) Router ID, i.e., the Router Address TLV as described in Section 2.4.1 of RFC 3630 or the Router IPv6 Address TLV as described in Section 3 of RFC 5329."; reference "RFC 3630: Traffic Engineering (TE) Extensions to OSPF Version 2, Section 2.4.1 RFC 5329: Traffic Engineering Extensions to OSPF Version 3, Section 3"; } feature ldp-igp-sync { description "LDP IGP synchronization."; reference "RFC 5443: LDP IGP Synchronization"; } feature ospfv2-authentication-trailer { description "Support for the OSPFv2 authentication trailer."; reference "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication RFC 7474: Security Extension for OSPFv2 When Using Manual Key Management"; } feature ospfv3-authentication-ipsec { description "Support for IPsec for OSPFv3 authentication."; reference "RFC 4552: Authentication/Confidentiality for OSPFv3"; } feature ospfv3-authentication-trailer { description "Support for the OSPFv3 authentication trailer."; reference "RFC 7166: Supporting Authentication Trailer for OSPFv3"; } feature fast-reroute { description "Support for IP Fast Reroute (IP-FRR)."; reference "RFC 5714: IP Fast Reroute Framework"; } feature key-chain { description "Support of key chains for authentication."; reference "RFC 8177: YANG Data Model for Key Chains"; } feature node-flag { description "Support for node flags for OSPF prefixes."; reference "RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; } feature node-tag { description "Support for node administrative tags for OSPF routing instances."; reference "RFC 7777: Advertising Node Administrative Tags in OSPF"; } feature lfa { description "Support for Loop-Free Alternates (LFAs)."; reference "RFC 5286: Basic Specification for IP Fast Reroute: Loop-Free Alternates"; } feature remote-lfa { description "Support for Remote LFAs (R-LFAs)."; reference "RFC 7490: Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)"; } feature stub-router { description "Support for OSPF stub router advertisement as defined in RFC 6987."; reference "RFC 6987: OSPF Stub Router Advertisement"; } feature pe-ce-protocol { description "Support for OSPF as a Provider Edge to Customer Edge (PE-CE) protocol."; reference "RFC 4577: OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs) RFC 6565: OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol"; } feature ietf-spf-delay { description "Support for the IETF Shortest Path First (SPF) delay algorithm."; reference "RFC 8405: Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs"; } feature bfd { description "Support for BFD to detect OSPF neighbor reachability."; reference "RFC 5880: Bidirectional Forwarding Detection (BFD) RFC 5881: Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)"; } feature hybrid-interface { description "Support for the OSPF hybrid interface type."; reference "RFC 6845: OSPF Hybrid Broadcast and Point-to-Multipoint Interface Type"; } identity ospf { base rt:routing-protocol; description "Any OSPF protocol version."; } identity ospfv2 { base ospf; description "OSPFv2 protocol."; } identity ospfv3 { base ospf; description "OSPFv3 protocol."; } identity area-type { description "Base identity for an OSPF area type."; } identity normal-area { base area-type; description "OSPF normal area."; } identity stub-nssa-area { base area-type; description "OSPF stub area or Not-So-Stubby Area (NSSA)."; } identity stub-area { base stub-nssa-area; description "OSPF stub area."; } identity nssa-area { base stub-nssa-area; description "OSPF NSSA."; reference "RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option"; } identity ospf-lsa-type { description "Base identity for OSPFv2 and OSPFv3 Link State Advertisement (LSA) types."; } identity ospfv2-lsa-type { base ospf-lsa-type; description "OSPFv2 LSA types."; } identity ospfv2-router-lsa { base ospfv2-lsa-type; description "OSPFv2 Router-LSA - Type 1."; } identity ospfv2-network-lsa { base ospfv2-lsa-type; description "OSPFv2 Network-LSA - Type 2."; } identity ospfv2-summary-lsa-type { base ospfv2-lsa-type; description "OSPFv2 summary LSA types."; } identity ospfv2-network-summary-lsa { base ospfv2-summary-lsa-type; description "OSPFv2 Network summary LSA - Type 3."; } identity ospfv2-asbr-summary-lsa { base ospfv2-summary-lsa-type; description "OSPFv2 Autonomous System Boundary Router (ASBR) summary LSA - Type 4."; } identity ospfv2-external-lsa-type { base ospfv2-lsa-type; description "OSPFv2 External-LSA types."; } identity ospfv2-as-external-lsa { base ospfv2-external-lsa-type; description "OSPFv2 AS-External-LSA - Type 5."; } identity ospfv2-nssa-lsa { base ospfv2-external-lsa-type; description "OSPFv2 NSSA-LSA - Type 7."; } identity ospfv2-opaque-lsa-type { base ospfv2-lsa-type; description "OSPFv2 Opaque-LSA types."; reference "RFC 5250: The OSPF Opaque LSA Option"; } identity ospfv2-link-scope-opaque-lsa { base ospfv2-opaque-lsa-type; description "OSPFv2 Link-Scope Opaque-LSA - Type 9."; } identity ospfv2-area-scope-opaque-lsa { base ospfv2-opaque-lsa-type; description "OSPFv2 Area-Scope Opaque-LSA - Type 10."; } identity ospfv2-as-scope-opaque-lsa { base ospfv2-opaque-lsa-type; description "OSPFv2 AS-Scope Opaque-LSA - Type 11."; } identity ospfv2-unknown-lsa-type { base ospfv2-lsa-type; description "OSPFv2 unknown LSA type."; } identity ospfv3-lsa-type { base ospf-lsa-type; description "OSPFv3 LSA types."; reference "RFC 5340: OSPF for IPv6"; } identity ospfv3-router-lsa { base ospfv3-lsa-type; description "OSPFv3 Router-LSA - Type 0x2001."; } identity ospfv3-network-lsa { base ospfv3-lsa-type; description "OSPFv3 Network-LSA - Type 0x2002."; } identity ospfv3-summary-lsa-type { base ospfv3-lsa-type; description "OSPFv3 summary LSA types."; } identity ospfv3-inter-area-prefix-lsa { base ospfv3-summary-lsa-type; description "OSPFv3 Inter-Area-Prefix-LSA - Type 0x2003."; } identity ospfv3-inter-area-router-lsa { base ospfv3-summary-lsa-type; description "OSPFv3 Inter-Area-Router-LSA - Type 0x2004."; } identity ospfv3-external-lsa-type { base ospfv3-lsa-type; description "OSPFv3 External-LSA types."; } identity ospfv3-as-external-lsa { base ospfv3-external-lsa-type; description "OSPFv3 AS-External-LSA - Type 0x4005."; } identity ospfv3-nssa-lsa { base ospfv3-external-lsa-type; description "OSPFv3 NSSA-LSA - Type 0x2007."; } identity ospfv3-link-lsa { base ospfv3-lsa-type; description "OSPFv3 Link-LSA - Type 0x0008."; } identity ospfv3-intra-area-prefix-lsa { base ospfv3-lsa-type; description "OSPFv3 Intra-Area-Prefix-LSA - Type 0x2009."; } identity ospfv3-router-information-lsa { base ospfv3-lsa-type; description "OSPFv3 Router-Information-LSA - Types 0x800C, 0xA00C, and 0xC00C."; } identity ospfv3-unknown-lsa-type { base ospfv3-lsa-type; description "OSPFv3 unknown LSA type."; } identity lsa-log-reason { description "Base identity for an LSA log reason."; } identity lsa-refresh { base lsa-log-reason; description "Identity used when an LSA is logged as a result of receiving a refresh LSA."; } identity lsa-content-change { base lsa-log-reason; description "Identity used when an LSA is logged as a result of a change in the contents of the LSA."; } identity lsa-purge { base lsa-log-reason; description "Identity used when an LSA is logged as a result of being purged."; } identity informational-capability { description "Base identity for router informational capabilities."; } identity graceful-restart { base informational-capability; description "When set, the router is capable of restarting gracefully."; reference "RFC 3623: Graceful OSPF Restart RFC 5187: OSPFv3 Graceful Restart"; } identity graceful-restart-helper { base informational-capability; description "When set, the router is capable of acting as a graceful restart helper."; reference "RFC 3623: Graceful OSPF Restart RFC 5187: OSPFv3 Graceful Restart"; } identity stub-router { base informational-capability; description "When set, the router is capable of acting as an OSPF stub router."; reference "RFC 6987: OSPF Stub Router Advertisement"; } identity traffic-engineering { base informational-capability; description "When set, the router is capable of OSPF TE."; reference "RFC 3630: Traffic Engineering (TE) Extensions to OSPF Version 2 RFC 5329: Traffic Engineering Extensions to OSPF Version 3"; } identity p2p-over-lan { base informational-capability; description "When set, the router is capable of OSPF point-to-point over a LAN."; reference "RFC 5309: Point-to-Point Operation over LAN in Link State Routing Protocols"; } identity experimental-te { base informational-capability; description "When set, the router is capable of OSPF experimental TE."; reference "RFC 4973: OSPF-xTE: Experimental Extension to OSPF for Traffic Engineering"; } identity router-lsa-bit { description "Base identity for Router-LSA bits."; } identity vlink-end-bit { base router-lsa-bit; description "V-bit. When set, the router is an endpoint of one or more virtual links."; } identity asbr-bit { base router-lsa-bit; description "E-bit. When set, the router is an Autonomous System Boundary Router (ASBR)."; } identity abr-bit { base router-lsa-bit; description "B-bit. When set, the router is an Area Border Router (ABR)."; } identity nssa-bit { base router-lsa-bit; description "Nt-bit. When set, the router is an NSSA border router that is unconditionally translating NSSA-LSAs into AS-External-LSAs."; } identity ospfv3-lsa-option { description "Base identity for OSPF LSA Options."; } identity af-bit { base ospfv3-lsa-option; description "AF-bit. When set, the router supports OSPFv3 Address Families (AFs) as described in RFC 5838."; reference "RFC 5838: Support of Address Families in OSPFv3"; } identity dc-bit { base ospfv3-lsa-option; description "DC-bit. When set, the router supports demand circuits."; } identity r-bit { base ospfv3-lsa-option; description "R-bit. When set, the originator is an active router."; } identity n-bit { base ospfv3-lsa-option; description "N-bit. When set, the router is attached to an NSSA."; } identity e-bit { base ospfv3-lsa-option; description "E-bit. This bit describes the way AS-External-LSAs are flooded."; } identity v6-bit { base ospfv3-lsa-option; description "V6-bit. If clear, the router/link should be excluded from IPv6 routing calculations."; } identity ospfv3-prefix-option { description "Base identity for OSPFv3 prefix options."; } identity nu-bit { base ospfv3-prefix-option; description "NU-bit. When set, the prefix should be excluded from IPv6 unicast calculations."; } identity la-bit { base ospfv3-prefix-option; description "LA-bit. When set, the prefix is actually an IPv6 interface address of the advertising router."; } identity p-bit { base ospfv3-prefix-option; description "P-bit. When set, the NSSA prefix should be translated to an AS-External-LSA and advertised by the translating NSSA border router."; } identity dn-bit { base ospfv3-prefix-option; description "DN-bit. When set, the Inter-Area-Prefix-LSA or AS-External-LSA prefix has been advertised as an L3VPN prefix."; } identity ospfv2-lsa-option { description "Base identity for OSPFv2 LSA Options."; } identity mt-bit { base ospfv2-lsa-option; description "MT-bit. When set, the router supports multi-topology as described in RFC 4915."; reference "RFC 4915: Multi-Topology (MT) Routing in OSPF"; } identity v2-dc-bit { base ospfv2-lsa-option; description "DC-bit. When set, the router supports demand circuits."; } identity v2-p-bit { base ospfv2-lsa-option; description "P-bit. Only used in type-7 LSAs. When set, an NSSA border router should translate the type-7 LSA to a type-5 LSA."; } identity mc-bit { base ospfv2-lsa-option; description "MC-bit. When set, the router supports Multicast Extensions to OSPF (MOSPF)."; } identity v2-e-bit { base ospfv2-lsa-option; description "E-bit. This bit describes the way AS-External-LSAs are flooded."; } identity o-bit { base ospfv2-lsa-option; description "O-bit. When set, the router is opaque capable as described in RFC 5250."; reference "RFC 5250: The OSPF Opaque LSA Option"; } identity v2-dn-bit { base ospfv2-lsa-option; description "DN-bit. When a type 3, type 5, or type 7 LSA is sent from a PE to a CE, the DN-bit must be set. See RFC 4576."; reference "RFC 4576: Using a Link State Advertisement (LSA) Options Bit to Prevent Looping in BGP/MPLS IP Virtual Private Networks (VPNs)"; } identity ospfv2-extended-prefix-flag { description "Base identity for the Extended Prefix TLV flag."; } identity a-flag { base ospfv2-extended-prefix-flag; description "Attach flag. When set, it indicates that the prefix corresponds to a route that is directly connected to the advertising router."; } identity node-flag { base ospfv2-extended-prefix-flag; description "Node flag. When set, it indicates that the prefix is used to represent the advertising node, e.g., a loopback address."; } typedef ospf-metric { type uint32 { range "0 .. 16777215"; } description "OSPF metric. 24-bit unsigned integer."; } typedef ospf-link-metric { type uint16 { range "0 .. 65535"; } description "OSPF link metric. 16-bit unsigned integer."; } typedef opaque-id { type uint32 { range "0 .. 16777215"; } description "Opaque-LSA ID. 24-bit unsigned integer."; } typedef area-id-type { type yang:dotted-quad; description "Area ID type."; } typedef route-type { type enumeration { enum "intra-area" { value 0; description "OSPF intra-area route."; } enum "inter-area" { value 1; description "OSPF inter-area route."; } enum "external-1" { value 2; description "OSPF type 1 external route."; } enum "external-2" { value 3; description "OSPF type 2 external route."; } enum "nssa-1" { value 4; description "OSPF type 1 NSSA route."; } enum "nssa-2" { value 5; description "OSPF type 2 NSSA route."; } } description "OSPF route type."; } typedef if-state-type { type enumeration { enum "down" { value 1; description "Interface is in the 'Down' state."; } enum "loopback" { value 2; description "Interface is in the 'Loopback' state."; } enum "waiting" { value 3; description "Interface is in the 'Waiting' state."; } enum "point-to-point" { value 4; description "Interface is in the 'Point-to-point' state."; } enum "dr" { value 5; description "Interface is in the 'DR' (Designated Router) state."; } enum "bdr" { value 6; description "Interface is in the 'Backup' (Backup Designated Router (BDR)) state."; } enum "dr-other" { value 7; description "Interface is in the 'DR Other' state."; } } description "OSPF interface state type."; reference "RFC 2328: OSPF Version 2"; } typedef router-link-type { type enumeration { enum "point-to-point-link" { value 1; description "Point-to-point link to another router."; } enum "transit-network-link" { value 2; description "Link to a transit network, identified by the DR."; } enum "stub-network-link" { value 3; description "Link to a stub network, identified by the subnet."; } enum "virtual-link" { value 4; description "Virtual link across a transit area."; } } description "OSPF router link type."; } typedef nbr-state-type { type enumeration { enum "down" { value 1; description "Neighbor is in the 'Down' state."; } enum "attempt" { value 2; description "Neighbor is in the 'Attempt' state."; } enum "init" { value 3; description "Neighbor is in the 'Init' state."; } enum "2-way" { value 4; description "Neighbor is in the '2-Way' state."; } enum "exstart" { value 5; description "Neighbor is in the 'ExStart' (exchange start) state."; } enum "exchange" { value 6; description "Neighbor is in the 'Exchange' state."; } enum "loading" { value 7; description "Neighbor is in the 'Loading' state."; } enum "full" { value 8; description "Neighbor is in the 'Full' state."; } } description "OSPF neighbor state type."; reference "RFC 2328: OSPF Version 2"; } typedef restart-helper-status-type { type enumeration { enum "not-helping" { value 1; description "Restart helper status of 'not-helping'."; } enum "helping" { value 2; description "Restart helper status of 'helping'."; } } description "Restart helper status type."; } typedef restart-exit-reason-type { type enumeration { enum "none" { value 1; description "Restart not attempted."; } enum "in-progress" { value 2; description "Restart in progress."; } enum "completed" { value 3; description "Restart successfully completed."; } enum "timed-out" { value 4; description "Restart timed out."; } enum "topology-changed" { value 5; description "Restart aborted due to a topology change."; } } description "Describes the outcome of the last graceful restart attempt. The local router is being restarted or acting as a helper."; } typedef packet-type { type enumeration { enum "hello" { value 1; description "OSPF Hello packet."; } enum "database-description" { value 2; description "OSPF Database Description packet."; } enum "link-state-request" { value 3; description "OSPF Link State Request packet."; } enum "link-state-update" { value 4; description "OSPF Link State Update packet."; } enum "link-state-ack" { value 5; description "OSPF Link State Acknowledgment packet."; } } description "OSPF packet type."; } typedef nssa-translator-state-type { type enumeration { enum "enabled" { value 1; description "NSSATranslatorState is 'enabled'."; } enum "elected" { value 2; description "NSSATranslatorState is 'elected'."; } enum "disabled" { value 3; description "NSSATranslatorState is 'disabled'."; } } description "OSPF NSSA translator state type."; reference "RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option"; } typedef restart-status-type { type enumeration { enum "not-restarting" { value 1; description "The router is not restarting."; } enum "planned-restart" { value 2; description "The router is going through a planned restart."; } enum "unplanned-restart" { value 3; description "The router is going through an unplanned restart."; } } description "OSPF graceful restart status type."; } typedef fletcher-checksum16-type { type string { pattern '(0x)?[0-9a-fA-F]{4}'; } description "Fletcher 16-bit checksum in hex-string format 0xXXXX."; reference "RFC 905: ISO Transport Protocol Specification ISO DP 8073"; } typedef ospfv2-auth-trailer-rfc-version { type enumeration { enum "rfc5709" { value 0; description "Support for the OSPF authentication trailer as described in RFC 5709."; reference "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication"; } enum "rfc7474" { value 1; description "Support for the OSPF authentication trailer as described in RFC 7474."; reference "RFC 7474: Security Extension for OSPFv2 When Using Manual Key Management"; } } description "OSPFv2 authentication trailer support."; } rpc clear-neighbor { description "This RPC request clears a particular set of OSPF neighbors. If the operation fails for an OSPF-internal reason, then 'error-tag' and 'error-app-tag' should be set to values indicating the error."; input { leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } mandatory true; description "OSPF protocol instance for which information for neighbors is to be cleared. If the referenced OSPF instance doesn't exist, then this operation SHALL fail with an 'error-tag' setting of 'data-missing' and an 'error-app-tag' setting of 'routing-protocol-instance-not-found'."; } leaf interface { type if:interface-ref; description "Name of the OSPF interface for which neighbors are to be cleared. If the referenced OSPF interface doesn't exist, then this operation SHALL fail with an 'error-tag' setting of 'data-missing' and an 'error-app-tag' setting of 'ospf-interface-not-found'."; } } } // rpc clear-neighbor rpc clear-database { description "This RPC request clears a particular OSPF Link State Database. Additionally, all neighbor adjacencies will be forced to the DOWN state and self-originated LSAs will be reoriginated. If the operation fails for an OSPF-internal reason, then 'error-tag' and 'error-app-tag' should be set to values indicating the error."; input { leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } mandatory true; description "OSPF protocol instance whose LSDB is to be cleared. If the referenced OSPF instance doesn't exist, then this operation SHALL fail with an 'error-tag' setting of 'data-missing' and an 'error-app-tag' setting of 'routing-protocol-instance-not-found'."; } } } // rpc clear-database notification if-state-change { description "This notification is sent when an interface state change is detected."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } choice if-link-type-selection { description "Options for link types."; container interface { description "Normal interface."; leaf interface { type if:interface-ref; description "Interface."; } } // container interface container virtual-link { description "Virtual link."; leaf transit-area-id { type area-id-type; description "Area ID."; } leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } } // container virtual-link container sham-link { description "Sham link."; leaf area-id { type area-id-type; description "Area ID."; } leaf local-ip-addr { type inet:ip-address; description "Sham link's local address."; } leaf remote-ip-addr { type inet:ip-address; description "Sham link's remote address."; } } // container sham-link } // choice if-link-type-selection leaf state { type if-state-type; description "Interface state."; } } // notification if-state-change notification if-config-error { description "This notification is sent when a packet is received indicating an interface configuration error on the sending OSPF router."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } choice if-link-type-selection { description "Options for link types."; container interface { description "Normal interface."; leaf interface { type if:interface-ref; description "Interface."; } } // container interface container virtual-link { description "Virtual link."; leaf transit-area-id { type area-id-type; description "Area ID."; } leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } } // container virtual-link container sham-link { description "Sham link."; leaf area-id { type area-id-type; description "Area ID."; } leaf local-ip-addr { type inet:ip-address; description "Sham link's local address."; } leaf remote-ip-addr { type inet:ip-address; description "Sham link's remote address."; } } // container sham-link } // choice if-link-type-selection leaf packet-source { type inet:ip-address; description "Source address."; } leaf packet-type { type packet-type; description "OSPF packet type."; } leaf error { type enumeration { enum "bad-version" { value 0; description "Bad version."; } enum "area-mismatch" { value 1; description "Area mismatch."; } enum "unknown-nbma-nbr" { value 2; description "Unknown NBMA neighbor."; } enum "unknown-virtual-nbr" { value 3; description "Unknown virtual link neighbor."; } enum "auth-type-mismatch" { value 4; description "Authentication type mismatch."; } enum "auth-failure" { value 5; description "Authentication failure."; } enum "net-mask-mismatch" { value 6; description "Network mask mismatch."; } enum "hello-interval-mismatch" { value 7; description "Hello interval mismatch."; } enum "dead-interval-mismatch" { value 8; description "Dead interval mismatch."; } enum "option-mismatch" { value 9; description "Option mismatch."; } enum "mtu-mismatch" { value 10; description "MTU mismatch."; } enum "duplicate-router-id" { value 11; description "Duplicate Router ID."; } enum "no-error" { value 12; description "No error."; } } description "Error codes."; } } // notification if-config-error notification nbr-state-change { description "This notification is sent when a neighbor state change is detected."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } choice if-link-type-selection { description "Options for link types."; container interface { description "Normal interface."; leaf interface { type if:interface-ref; description "Interface."; } } // container interface container virtual-link { description "Virtual link."; leaf transit-area-id { type area-id-type; description "Area ID."; } leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } } // container virtual-link container sham-link { description "Sham link."; leaf area-id { type area-id-type; description "Area ID."; } leaf local-ip-addr { type inet:ip-address; description "Sham link's local address."; } leaf remote-ip-addr { type inet:ip-address; description "Sham link's remote address."; } } // container sham-link } // choice if-link-type-selection leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } leaf neighbor-ip-addr { type inet:ip-address; description "Neighbor's address."; } leaf state { type nbr-state-type; description "Neighbor state."; } } // notification nbr-state-change notification nbr-restart-helper-status-change { description "This notification is sent when a neighbor restart helper status change is detected."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } choice if-link-type-selection { description "Options for link types."; container interface { description "Normal interface."; leaf interface { type if:interface-ref; description "Interface."; } } // container interface container virtual-link { description "Virtual link."; leaf transit-area-id { type area-id-type; description "Area ID."; } leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } } // container virtual-link container sham-link { description "Sham link."; leaf area-id { type area-id-type; description "Area ID."; } leaf local-ip-addr { type inet:ip-address; description "Sham link's local address."; } leaf remote-ip-addr { type inet:ip-address; description "Sham link's remote address."; } } // container sham-link } // choice if-link-type-selection leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } leaf neighbor-ip-addr { type inet:ip-address; description "Neighbor's address."; } leaf status { type restart-helper-status-type; description "Restart helper status."; } leaf age { type rt-types:timer-value-seconds16; description "Remaining time in the current OSPF graceful restart interval when the router is acting as a restart helper for the neighbor."; } leaf exit-reason { type restart-exit-reason-type; description "Restart helper exit reason."; } } // notification nbr-restart-helper-status-change notification if-rx-bad-packet { description "This notification is sent when an OSPF packet that cannot be parsed is received on an OSPF interface."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } choice if-link-type-selection { description "Options for link types."; container interface { description "Normal interface."; leaf interface { type if:interface-ref; description "Interface."; } } // container interface container virtual-link { description "Virtual link."; leaf transit-area-id { type area-id-type; description "Area ID."; } leaf neighbor-router-id { type rt-types:router-id; description "Neighbor's Router ID."; } } // container virtual-link container sham-link { description "Sham link."; leaf area-id { type area-id-type; description "Area ID."; } leaf local-ip-addr { type inet:ip-address; description "Sham link's local address."; } leaf remote-ip-addr { type inet:ip-address; description "Sham link's remote address."; } } // container sham-link } // choice if-link-type-selection leaf packet-source { type inet:ip-address; description "Source address."; } leaf packet-type { type packet-type; description "OSPF packet type."; } } // notification if-rx-bad-packet notification lsdb-approaching-overflow { description "This notification is sent when the number of LSAs in the router's LSDB has exceeded ninety percent of the AS-External-LSA limit ('ext-lsdb-limit')."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } leaf ext-lsdb-limit { type uint32; description "The maximum number of non-default AS-External-LSA entries that can be stored in the LSDB."; } } // notification lsdb-approaching-overflow notification lsdb-overflow { description "This notification is sent when the number of LSAs in the router's LSDB has exceeded the AS-External-LSA limit ('ext-lsdb-limit')."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } leaf ext-lsdb-limit { type uint32; description "The maximum number of non-default AS-External-LSA entries that can be stored in the LSDB."; } } // notification lsdb-overflow notification nssa-translator-status-change { description "This notification is sent when there is a change in the router's role in translating OSPF NSSA-LSAs to OSPF AS-External-LSAs."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } leaf area-id { type area-id-type; description "Area ID."; } leaf status { type nssa-translator-state-type; description "NSSA translator status."; } } // notification nssa-translator-status-change notification restart-status-change { description "This notification is sent when the graceful restart state for the router has changed."; leaf routing-protocol-name { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; } must "derived-from( /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()]/rt:type, 'ospf')"; description "Name of the OSPF routing protocol instance."; } leaf address-family { type leafref { path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol[rt:name=current()/../routing-protocol-name]/ospf/address-family"; } description "Address family of the OSPF instance."; } leaf status { type restart-status-type; description "Restart status."; } leaf restart-interval { type uint16 { range "1..1800"; } units "seconds"; default "120"; description "Restart interval."; } leaf exit-reason { type restart-exit-reason-type; description "Restart exit reason."; } } // notification restart-status-change } // module ietf-ospf
© 2023 YumaWorks, Inc. All rights reserved.