ietf-ospf.yang   ietf-ospf-formatted.yang 
module ietf-ospf { module ietf-ospf {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf"; namespace "urn:ietf:params:xml:ns:yang:ietf-ospf";
prefix ospf; prefix ospf;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix if;
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix rt-types;
reference reference
"RFC 8294: Common YANG Data Types for the Routing Area"; "RFC 8294: Common YANG Data Types for the Routing Area";
} }
import iana-routing-types { import iana-routing-types {
prefix "iana-rt-types"; prefix iana-rt-types;
reference reference
"RFC 8294: Common YANG Data Types for the Routing Area"; "RFC 8294: Common YANG Data Types for the Routing Area";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix rt;
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix key-chain;
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix bfd-types;
reference reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding "RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)"; Detection (BFD)";
} }
organization organization
"IETF Link State Routing (lsr) Working Group"; "IETF Link State Routing (lsr) Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/lsr/> "WG Web: <https://datatracker.ietf.org/wg/lsr/>
WG List: <mailto:lsr@ietf.org> WG List: <mailto:lsr@ietf.org>
Editor: Derek Yeung Editor: Derek Yeung
<mailto:derek@arrcus.com> <mailto:derek@arrcus.com>
Author: Acee Lindem Author: Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.com>
Author: Yingzhen Qu Author: Yingzhen Qu
<mailto:yingzhen.qu@futurewei.com> <mailto:yingzhen.qu@futurewei.com>
skipping to change at line 192 skipping to change at line 183
"Graceful OSPF restart as defined in RFCs 3623 and 5187."; "Graceful OSPF restart as defined in RFCs 3623 and 5187.";
reference reference
"RFC 3623: Graceful OSPF Restart "RFC 3623: Graceful OSPF Restart
RFC 5187: OSPFv3 Graceful Restart"; RFC 5187: OSPFv3 Graceful Restart";
} }
feature auto-cost { feature auto-cost {
description description
"Calculates the OSPF interface cost according to "Calculates the OSPF interface cost according to
reference bandwidth."; reference bandwidth.";
reference reference
"RFC 2328: OSPF Version 2"; "RFC 2328: OSPF Version 2";
} }
feature max-ecmp { feature max-ecmp {
description description
"Sets the maximum number of ECMP paths."; "Sets the maximum number of ECMP paths.";
} }
feature max-lsa { feature max-lsa {
description description
"Sets the maximum number of Link State Advertisements (LSAs) "Sets the maximum number of Link State Advertisements (LSAs)
skipping to change at line 255 skipping to change at line 246
feature ospfv3-authentication-trailer { feature ospfv3-authentication-trailer {
description description
"Support for the OSPFv3 Authentication Trailer for OSPFv3 "Support for the OSPFv3 Authentication Trailer for OSPFv3
authentication."; authentication.";
reference reference
"RFC 7166: Supporting Authentication Trailer for OSPFv3"; "RFC 7166: Supporting Authentication Trailer for OSPFv3";
} }
feature fast-reroute { feature fast-reroute {
description description
"Support for IP Fast Reroute (IP-FRR)."; "Support for IP Fast Reroute (IP-FRR).";
reference reference
"RFC 5714: IP Fast Reroute Framework"; "RFC 5714: IP Fast Reroute Framework";
} }
feature key-chain { feature key-chain {
description description
"Support of key chains for authentication."; "Support of key chains for authentication.";
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
feature node-flag { feature node-flag {
description description
"Support for node flags for OSPF prefixes."; "Support for node flags for OSPF prefixes.";
reference reference
"RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; "RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement";
} }
feature node-tag { feature node-tag {
description description
"Support for node administrative tags for OSPF routing "Support for node administrative tags for OSPF routing
instances."; instances.";
reference reference
"RFC 7777: Advertising Node Administrative Tags in OSPF"; "RFC 7777: Advertising Node Administrative Tags in OSPF";
} }
feature lfa { feature lfa {
description description
"Support for Loop-Free Alternates (LFAs)."; "Support for Loop-Free Alternates (LFAs).";
reference reference
"RFC 5286: Basic Specification for IP Fast Reroute: "RFC 5286: Basic Specification for IP Fast Reroute:
Loop-Free Alternates"; Loop-Free Alternates";
} }
feature remote-lfa { feature remote-lfa {
description description
"Support for Remote LFAs (R-LFAs)."; "Support for Remote LFAs (R-LFAs).";
reference reference
"RFC 7490: Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)"; "RFC 7490: Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)";
} }
feature stub-router { feature stub-router {
description description
"Support for OSPF stub router advertisements as defined in "Support for OSPF stub router advertisements as defined in
RFC 6987."; RFC 6987.";
reference reference
"RFC 6987: OSPF Stub Router Advertisement"; "RFC 6987: OSPF Stub Router Advertisement";
} }
skipping to change at line 344 skipping to change at line 335
feature hybrid-interface { feature hybrid-interface {
description description
"Support for the OSPF Hybrid interface type."; "Support for the OSPF Hybrid interface type.";
reference reference
"RFC 6845: OSPF Hybrid Broadcast and "RFC 6845: OSPF Hybrid Broadcast and
Point-to-Multipoint Interface Type"; Point-to-Multipoint Interface Type";
} }
identity ospf { identity ospf {
base "rt:routing-protocol"; base rt:routing-protocol;
description description
"Any OSPF protocol version."; "Any OSPF protocol version.";
} }
identity ospfv2 { identity ospfv2 {
base "ospf"; base ospf;
description description
"OSPFv2 protocol."; "OSPFv2 protocol.";
} }
identity ospfv3 { identity ospfv3 {
base "ospf"; base ospf;
description description
"OSPFv3 protocol."; "OSPFv3 protocol.";
} }
identity area-type { identity area-type {
description description
"Base identity for an OSPF area type."; "Base identity for an OSPF area type.";
} }
identity normal-area { identity normal-area {
skipping to change at line 918 skipping to change at line 909
"OSPF type 2 NSSA route."; "OSPF type 2 NSSA route.";
} }
} }
description description
"OSPF route type."; "OSPF route type.";
} }
typedef if-state-type { typedef if-state-type {
type enumeration { type enumeration {
enum down { enum down {
value "1"; value 1;
description description
"Interface is in the 'Down' state."; "Interface is in the 'Down' state.";
} }
enum loopback { enum loopback {
value "2"; value 2;
description description
"Interface is in the 'Loopback' state."; "Interface is in the 'Loopback' state.";
} }
enum waiting { enum waiting {
value "3"; value 3;
description description
"Interface is in the 'Waiting' state."; "Interface is in the 'Waiting' state.";
} }
enum point-to-point { enum point-to-point {
value "4"; value 4;
description description
"Interface is in the 'Point-to-point' state."; "Interface is in the 'Point-to-point' state.";
} }
enum dr { enum dr {
value "5"; value 5;
description description
"Interface is in the 'DR' (Designated Router) state."; "Interface is in the 'DR' (Designated Router) state.";
} }
enum bdr { enum bdr {
value "6"; value 6;
description description
"Interface is in the 'Backup' (Backup Designated Router "Interface is in the 'Backup' (Backup Designated Router
(BDR)) state."; (BDR)) state.";
} }
enum dr-other { enum dr-other {
value "7"; value 7;
description description
"Interface is in the 'DR Other' state."; "Interface is in the 'DR Other' state.";
} }
} }
description description
"OSPF interface state type."; "OSPF interface state type.";
reference reference
"RFC 2328: OSPF Version 2"; "RFC 2328: OSPF Version 2";
} }
typedef router-link-type { typedef router-link-type {
type enumeration { type enumeration {
enum point-to-point-link { enum point-to-point-link {
value "1"; value 1;
description description
"Point-to-point link to the router."; "Point-to-point link to the router.";
} }
enum transit-network-link { enum transit-network-link {
value "2"; value 2;
description description
"Link to the transit network, identified by the DR."; "Link to the transit network, identified by the DR.";
} }
enum stub-network-link { enum stub-network-link {
value "3"; value 3;
description description
"Link to the stub network, identified by the subnet."; "Link to the stub network, identified by the subnet.";
} }
enum virtual-link { enum virtual-link {
value "4"; value 4;
description description
"Virtual link across a transit area."; "Virtual link across a transit area.";
} }
} }
description description
"OSPF router link type."; "OSPF router link type.";
} }
typedef nbr-state-type { typedef nbr-state-type {
type enumeration { type enumeration {
enum down { enum down {
value "1"; value 1;
description description
"Neighbor is in the 'Down' state."; "Neighbor is in the 'Down' state.";
} }
enum attempt { enum attempt {
value "2"; value 2;
description description
"Neighbor is in the 'Attempt' state."; "Neighbor is in the 'Attempt' state.";
} }
enum init { enum init {
value "3"; value 3;
description description
"Neighbor is in the 'Init' state."; "Neighbor is in the 'Init' state.";
} }
enum 2-way { enum 2-way {
value "4"; value 4;
description description
"Neighbor is in the '2-Way' state."; "Neighbor is in the '2-Way' state.";
} }
enum exstart { enum exstart {
value "5"; value 5;
description description
"Neighbor is in the 'ExStart' (exchange start) state."; "Neighbor is in the 'ExStart' (exchange start) state.";
} }
enum exchange { enum exchange {
value "6"; value 6;
description description
"Neighbor is in the 'Exchange' state."; "Neighbor is in the 'Exchange' state.";
} }
enum loading { enum loading {
value "7"; value 7;
description description
"Neighbor is in the 'Loading' state."; "Neighbor is in the 'Loading' state.";
} }
enum full { enum full {
value "8"; value 8;
description description
"Neighbor is in the 'Full' state."; "Neighbor is in the 'Full' state.";
} }
} }
description description
"OSPF neighbor state type."; "OSPF neighbor state type.";
reference reference
"RFC 2328: OSPF Version 2"; "RFC 2328: OSPF Version 2";
} }
typedef restart-helper-status-type { typedef restart-helper-status-type {
type enumeration { type enumeration {
enum not-helping { enum not-helping {
value "1"; value 1;
description description
"Restart helper status of 'not-helping'."; "Restart helper status of 'not-helping'.";
} }
enum helping { enum helping {
value "2"; value 2;
description description
"Restart helper status of 'helping'."; "Restart helper status of 'helping'.";
} }
} }
description description
"Restart helper status type."; "Restart helper status type.";
} }
typedef restart-exit-reason-type { typedef restart-exit-reason-type {
type enumeration { type enumeration {
enum none { enum none {
value "1"; value 1;
description description
"Restart not attempted."; "Restart not attempted.";
} }
enum in-progress { enum in-progress {
value "2"; value 2;
description description
"Restart in progress."; "Restart in progress.";
} }
enum completed { enum completed {
value "3"; value 3;
description description
"Restart successfully completed."; "Restart successfully completed.";
} }
enum timed-out { enum timed-out {
value "4"; value 4;
description description
"Restart timed out."; "Restart timed out.";
} }
enum topology-changed { enum topology-changed {
value "5"; value 5;
description description
"Restart aborted due to a topology change."; "Restart aborted due to a topology change.";
} }
} }
description description
"Describes the outcome of the last attempt at a "Describes the outcome of the last attempt at a
graceful restart, either by itself or acting graceful restart, either by itself or acting
as a helper."; as a helper.";
} }
typedef packet-type { typedef packet-type {
type enumeration { type enumeration {
enum hello { enum hello {
value "1"; value 1;
description description
"OSPF Hello packet."; "OSPF Hello packet.";
} }
enum database-description { enum database-description {
value "2"; value 2;
description description
"OSPF Database Description packet."; "OSPF Database Description packet.";
} }
enum link-state-request { enum link-state-request {
value "3"; value 3;
description description
"OSPF Link State Request packet."; "OSPF Link State Request packet.";
} }
enum link-state-update { enum link-state-update {
value "4"; value 4;
description description
"OSPF Link State Update packet."; "OSPF Link State Update packet.";
} }
enum link-state-ack { enum link-state-ack {
value "5"; value 5;
description description
"OSPF Link State Acknowledgment packet."; "OSPF Link State Acknowledgment packet.";
} }
} }
description description
"OSPF packet type."; "OSPF packet type.";
} }
typedef nssa-translator-state-type { typedef nssa-translator-state-type {
type enumeration { type enumeration {
enum enabled { enum enabled {
value "1"; value 1;
description description
"NSSA translator enabled state."; "NSSA translator enabled state.";
} }
enum elected { enum elected {
value "2"; value 2;
description description
"NSSA translator elected state."; "NSSA translator elected state.";
} }
enum disabled { enum disabled {
value "3"; value 3;
description description
"NSSA translator disabled state."; "NSSA translator disabled state.";
} }
} }
description description
"OSPF NSSA translator state type."; "OSPF NSSA translator state type.";
} }
typedef restart-status-type { typedef restart-status-type {
type enumeration { type enumeration {
enum not-restarting { enum not-restarting {
value "1"; value 1;
description description
"The router is not restarting."; "The router is not restarting.";
} }
enum planned-restart { enum planned-restart {
value "2"; value 2;
description description
"The router is going through a planned restart."; "The router is going through a planned restart.";
} }
enum unplanned-restart { enum unplanned-restart {
value "3"; value 3;
description description
"The router is going through an unplanned restart."; "The router is going through an unplanned restart.";
} }
} }
description description
"OSPF graceful restart status type."; "OSPF graceful restart status type.";
} }
typedef fletcher-checksum16-type { typedef fletcher-checksum16-type {
type string { type string {
pattern '(0x)?[0-9a-fA-F]{4}'; pattern '(0x)?[0-9a-fA-F]{4}';
} }
description description
"Fletcher 16-bit checksum in hex-string format 0xXXXX."; "Fletcher 16-bit checksum in hex-string format 0xXXXX.";
reference reference
"RFC 905: ISO Transport Protocol Specification ISO DP 8073"; "RFC 905: ISO Transport Protocol Specification ISO DP 8073";
} }
typedef ospfv2-auth-trailer-rfc-version { typedef ospfv2-auth-trailer-rfc-version {
type enumeration { type enumeration {
enum rfc5709 { enum rfc5709 {
description description
"Support for the OSPF Authentication Trailer as "Support for the OSPF Authentication Trailer as
described in RFC 5709."; described in RFC 5709.";
reference reference
"RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication"; "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication";
skipping to change at line 1260 skipping to change at line 1251
leaf-list informational-capabilities { leaf-list informational-capabilities {
type identityref { type identityref {
base informational-capability; base informational-capability;
} }
description description
"List of informational capabilities. This list will "List of informational capabilities. This list will
contain the identities for the informational contain the identities for the informational
capabilities supported by the router."; capabilities supported by the router.";
} }
description description
"OSPF Router Informational Flag definitions."; "OSPF Router Informational Flag definitions.";
} }
list informational-capabilities-flags { list informational-capabilities-flags {
leaf informational-flag { leaf informational-flag {
type uint32; type uint32;
description description
"Individual informational capability flag."; "Individual informational capability flag.";
} }
description description
"List of informational capability flags. This will "List of informational capability flags. This will
return all the 32-bit informational flags, irrespective return all the 32-bit informational flags, irrespective
skipping to change at line 1388 skipping to change at line 1379
description description
"Router-LSA link type."; "Router-LSA link type.";
} }
} }
grouping ospfv2-lsa-body { grouping ospfv2-lsa-body {
description description
"OSPFv2 LSA body."; "OSPFv2 LSA body.";
container router { container router {
when "derived-from-or-self(../../header/type, " when "derived-from-or-self(../../header/type, "
+ "'ospfv2-router-lsa')" { + "'ospfv2-router-lsa')" {
description description
"Only applies to Router-LSAs."; "Only applies to Router-LSAs.";
} }
description description
"Router LSA."; "Router LSA.";
uses ospf-router-lsa-bits; uses ospf-router-lsa-bits;
leaf num-of-links { leaf num-of-links {
type uint16; type uint16;
description description
"Number of links in the Router LSA."; "Number of links in the Router LSA.";
skipping to change at line 1430 skipping to change at line 1421
description description
"Metric for the topology."; "Metric for the topology.";
} }
} }
} }
} }
} }
} }
container network { container network {
when "derived-from-or-self(../../header/type, " when "derived-from-or-self(../../header/type, "
+ "'ospfv2-network-lsa')" { + "'ospfv2-network-lsa')" {
description description
"Only applies to Network LSAs."; "Only applies to Network LSAs.";
} }
description description
"Network LSA."; "Network LSA.";
leaf network-mask { leaf network-mask {
type yang:dotted-quad; type yang:dotted-quad;
description description
"The IP address mask for the network."; "The IP address mask for the network.";
} }
skipping to change at line 1687 skipping to change at line 1669
} }
} }
leaf admin-group { leaf admin-group {
type uint32; type uint32;
description description
"Administrative Group / Resource Class/Color."; "Administrative Group / Resource Class/Color.";
} }
uses unknown-tlvs; uses unknown-tlvs;
} }
} }
container extended-prefix-opaque { container extended-prefix-opaque {
description description
"All Extended Prefix TLVs in the LSA."; "All Extended Prefix TLVs in the LSA.";
list extended-prefix-tlv { list extended-prefix-tlv {
description description
"Extended Prefix TLV."; "Extended Prefix TLV.";
leaf route-type { leaf route-type {
type enumeration { type enumeration {
enum unspecified { enum unspecified {
value "0"; value 0;
description description
"Unspecified."; "Unspecified.";
} }
enum intra-area { enum intra-area {
value "1"; value 1;
description description
"OSPF intra-area route."; "OSPF intra-area route.";
} }
enum inter-area { enum inter-area {
value "3"; value 3;
description description
"OSPF inter-area route."; "OSPF inter-area route.";
} }
enum external { enum external {
value "5"; value 5;
description description
"OSPF external route."; "OSPF external route.";
} }
enum nssa { enum nssa {
value "7"; value 7;
description description
"OSPF NSSA external route."; "OSPF NSSA external route.";
} }
} }
description description
"Route type."; "Route type.";
} }
container flags { container flags {
leaf-list extended-prefix-flags { leaf-list extended-prefix-flags {
type identityref { type identityref {
skipping to change at line 1919 skipping to change at line 1893
leaf type { leaf type {
type router-link-type; type router-link-type;
description description
"Link type: 1 - Point-to-Point Link "Link type: 1 - Point-to-Point Link
2 - Transit Network Link 2 - Transit Network Link
3 - Stub Network Link 3 - Stub Network Link
4 - Virtual Link."; 4 - Virtual Link.";
} }
leaf metric { leaf metric {
type uint16; type uint16;
description description
"Link metric."; "Link metric.";
} }
} }
} }
} }
container network { container network {
when "derived-from-or-self(../../header/type, " when "derived-from-or-self(../../header/type, "
+ "'ospfv3-network-lsa')" { + "'ospfv3-network-lsa')" {
description description
"Only applies to Network LSAs."; "Only applies to Network LSAs.";
} }
skipping to change at line 2591 skipping to change at line 2551
description description
"The current length of the retransmission queue."; "The current length of the retransmission queue.";
} }
} }
grouping instance-fast-reroute-config { grouping instance-fast-reroute-config {
description description
"This group defines the global configuration of "This group defines the global configuration of
IP Fast Reroute (IP-FRR)."; IP Fast Reroute (IP-FRR).";
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature "fast-reroute";
description description
"This container may be augmented with global "This container may be augmented with global
parameters for IP-FRR."; parameters for IP-FRR.";
container lfa { container lfa {
if-feature lfa; if-feature "lfa";
description description
"This container may be augmented with "This container may be augmented with
global parameters for Loop-Free Alternates (LFAs). global parameters for Loop-Free Alternates (LFAs).
Container creation has no effect on LFA activation."; Container creation has no effect on LFA activation.";
} }
} }
} }
grouping instance-fast-reroute-state { grouping instance-fast-reroute-state {
description description
skipping to change at line 2608 skipping to change at line 2568
"This container may be augmented with "This container may be augmented with
global parameters for Loop-Free Alternates (LFAs). global parameters for Loop-Free Alternates (LFAs).
Container creation has no effect on LFA activation."; Container creation has no effect on LFA activation.";
} }
} }
} }
grouping instance-fast-reroute-state { grouping instance-fast-reroute-state {
description description
"IP-FRR state data grouping."; "IP-FRR state data grouping.";
container protected-routes { container protected-routes {
if-feature fast-reroute; if-feature "fast-reroute";
config false; config false;
description description
"Instance protection statistics."; "Instance protection statistics.";
list address-family-stats { list address-family-stats {
key "address-family prefix alternate"; key "address-family prefix alternate";
description description
"Per-Address-Family (AF) protected prefix information."; "Per-Address-Family (AF) protected prefix information.";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family."; "Address family.";
} }
leaf prefix { leaf prefix {
type inet:ip-prefix; type inet:ip-prefix;
description description
"Protected prefix."; "Protected prefix.";
} }
skipping to change at line 2732 skipping to change at line 2689
description description
"Metric from the PLR to the alternate node."; "Metric from the PLR to the alternate node.";
} }
leaf alternate-metric3 { leaf alternate-metric3 {
type uint32; type uint32;
description description
"Metric from the alternate node to the destination."; "Metric from the alternate node to the destination.";
} }
} }
} }
container unprotected-routes { container unprotected-routes {
if-feature fast-reroute; if-feature "fast-reroute";
config false; config false;
description description
"List of prefixes that are not protected."; "List of prefixes that are not protected.";
list address-family-stats { list address-family-stats {
key "address-family prefix"; key "address-family prefix";
description description
"Per-AF unprotected prefix statistics."; "Per-AF unprotected prefix statistics.";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family."; "Address family.";
} }
leaf prefix { leaf prefix {
type inet:ip-prefix; type inet:ip-prefix;
description description
"Unprotected prefix."; "Unprotected prefix.";
} }
skipping to change at line 2756 skipping to change at line 2710
description description
"Address family."; "Address family.";
} }
leaf prefix { leaf prefix {
type inet:ip-prefix; type inet:ip-prefix;
description description
"Unprotected prefix."; "Unprotected prefix.";
} }
} }
} }
list protection-statistics { list protection-statistics {
key frr-protection-method; key "frr-protection-method";
config false; config false;
description description
"List of protection method statistics."; "List of protection method statistics.";
leaf frr-protection-method { leaf frr-protection-method {
type string; type string;
description description
"Protection method used."; "Protection method used.";
} }
list address-family-stats { list address-family-stats {
key address-family; key "address-family";
description description
"Per-AF protection statistics."; "Per-AF protection statistics.";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family."; "Address family.";
} }
leaf total-routes { leaf total-routes {
type uint32; type uint32;
description description
"Total prefixes."; "Total prefixes.";
} }
skipping to change at line 2811 skipping to change at line 2762
"Total prefixes that are node protected."; "Total prefixes that are node protected.";
} }
} }
} }
} }
grouping interface-fast-reroute-config { grouping interface-fast-reroute-config {
description description
"This group defines interface configuration of IP-FRR."; "This group defines interface configuration of IP-FRR.";
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature "fast-reroute";
container lfa { container lfa {
if-feature lfa; if-feature "lfa";
leaf candidate-enable { leaf candidate-enable {
type boolean; type boolean;
default true; default "true";
description description
"Enables the interface to be used as a backup."; "Enables the interface to be used as a backup.";
} }
leaf enable { leaf enable {
type boolean; type boolean;
default false; default "false";
description description
"Activates an LFA. Per-prefix LFA computation "Activates an LFA. Per-prefix LFA computation
is assumed."; is assumed.";
} }
container remote-lfa { container remote-lfa {
if-feature remote-lfa; if-feature "remote-lfa";
leaf enable { leaf enable {
type boolean; type boolean;
default false; default "false";
description description
"Activates a Remote LFA (R-LFA)."; "Activates a Remote LFA (R-LFA).";
} }
description description
"R-LFA configuration."; "R-LFA configuration.";
} }
description description
"LFA configuration."; "LFA configuration.";
} }
description description
skipping to change at line 2856 skipping to change at line 2807
grouping interface-physical-link-config { grouping interface-physical-link-config {
description description
"Interface cost configuration that only applies to "Interface cost configuration that only applies to
physical interfaces (non-virtual) and sham links."; physical interfaces (non-virtual) and sham links.";
leaf cost { leaf cost {
type ospf-link-metric; type ospf-link-metric;
description description
"Interface's cost."; "Interface's cost.";
} }
leaf mtu-ignore { leaf mtu-ignore {
if-feature mtu-ignore; if-feature "mtu-ignore";
type boolean; type boolean;
description description
"Enables/disables bypassing the MTU mismatch check in "Enables/disables bypassing the MTU mismatch check in
Database Description packets as specified in Section 10.6 Database Description packets as specified in Section 10.6
of RFC 2328."; of RFC 2328.";
reference reference
"RFC 2328: OSPF Version 2, Section 10.6"; "RFC 2328: OSPF Version 2, Section 10.6";
} }
leaf prefix-suppression { leaf prefix-suppression {
if-feature prefix-suppression; if-feature "prefix-suppression";
type boolean; type boolean;
description description
"Suppresses advertisement of the prefixes associated "Suppresses advertisement of the prefixes associated
with the interface."; with the interface.";
} }
} }
grouping interface-common-config { grouping interface-common-config {
description description
"Common configuration for all types of interfaces, "Common configuration for all types of interfaces,
skipping to change at line 2878 skipping to change at line 2829
description description
"Suppresses advertisement of the prefixes associated "Suppresses advertisement of the prefixes associated
with the interface."; with the interface.";
} }
} }
grouping interface-common-config { grouping interface-common-config {
description description
"Common configuration for all types of interfaces, "Common configuration for all types of interfaces,
including virtual links and sham links."; including virtual links and sham links.";
leaf hello-interval { leaf hello-interval {
type uint16; type uint16;
units seconds; units "seconds";
description description
"Interval between Hello packets (seconds). It must "Interval between Hello packets (seconds). It must
be the same for all routers on the same network. be the same for all routers on the same network.
Different networks, implementations, and deployments Different networks, implementations, and deployments
will use different Hello intervals. A sample value will use different Hello intervals. A sample value
for a LAN network would be 10 seconds."; for a LAN network would be 10 seconds.";
reference reference
"RFC 2328: OSPF Version 2, Appendix C.3"; "RFC 2328: OSPF Version 2, Appendix C.3";
} }
leaf dead-interval { leaf dead-interval {
type uint16; type uint16;
units seconds; units "seconds";
must "../dead-interval > ../hello-interval" { must '../dead-interval > ../hello-interval' {
error-message "The dead interval must be " error-message "The dead interval must be "
+ "larger than the Hello interval"; + "larger than the Hello interval";
description description
"The value must be greater than 'hello-interval'."; "The value must be greater than 'hello-interval'.";
} }
description description
"Interval after which a neighbor is declared down "Interval after which a neighbor is declared down
(seconds) if Hello packets are not received. It is (seconds) if Hello packets are not received. It is
typically 3 or 4 times the 'hello-interval' period. typically 3 or 4 times the 'hello-interval' period.
A typical value for LAN networks is 40 seconds."; A typical value for LAN networks is 40 seconds.";
reference reference
"RFC 2328: OSPF Version 2, Appendix C.3"; "RFC 2328: OSPF Version 2, Appendix C.3";
} }
leaf retransmit-interval { leaf retransmit-interval {
type uint16 { type uint16 {
range "1..3600"; range "1..3600";
} }
units seconds; units "seconds";
description description
"Interval between retransmitting unacknowledged Link "Interval between retransmitting unacknowledged Link
State Advertisements (LSAs) (seconds). This should State Advertisements (LSAs) (seconds). This should
be well over the round-trip transmit delay for be well over the round-trip transmit delay for
any two routers on the network. A sample value any two routers on the network. A sample value
would be 5 seconds."; would be 5 seconds.";
reference reference
"RFC 2328: OSPF Version 2, Appendix C.3"; "RFC 2328: OSPF Version 2, Appendix C.3";
} }
leaf transmit-delay { leaf transmit-delay {
type uint16; type uint16;
units seconds; units "seconds";
description description
"Estimated time needed to transmit Link State Update "Estimated time needed to transmit Link State Update
(LSU) packets on the interface (seconds). LSAs have (LSU) packets on the interface (seconds). LSAs have
their age incremented by this amount when advertised their age incremented by this amount when advertised
on the interface. A sample value would be 1 second."; on the interface. A sample value would be 1 second.";
reference reference
"RFC 2328: OSPF Version 2, Appendix C.3"; "RFC 2328: OSPF Version 2, Appendix C.3";
} }
leaf lls { leaf lls {
if-feature lls; if-feature "lls";
type boolean; type boolean;
description description
"Enables/disables link-local signaling (LLS) support."; "Enables/disables link-local signaling (LLS) support.";
} }
container ttl-security { container ttl-security {
if-feature ttl-security; if-feature "ttl-security";
description description
"Time to Live (TTL) security checking."; "Time to Live (TTL) security checking.";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Enables/disables TTL security checking."; "Enables/disables TTL security checking.";
} }
leaf hops { leaf hops {
type uint8 { type uint8 {
range "1..254"; range "1..254";
} }
default 1; default "1";
description description
"Maximum number of hops that an OSPF packet may "Maximum number of hops that an OSPF packet may
have traversed before reception."; have traversed before reception.";
} }
} }
leaf enable { leaf enable {
type boolean; type boolean;
default true; default "true";
description description
"Enables/disables the OSPF protocol on the interface."; "Enables/disables the OSPF protocol on the interface.";
} }
container authentication { container authentication {
description description
"Authentication configuration."; "Authentication configuration.";
choice auth-type-selection { choice auth-type-selection {
description description
"Options for OSPFv2/OSPFv3 authentication "Options for OSPFv2/OSPFv3 authentication
configuration."; configuration.";
case ospfv2-auth { case ospfv2-auth {
when "derived-from-or-self(../../../../../../rt:type, " when "derived-from-or-self(../../../../../../rt:type, "
+ "'ospfv2')" { + "'ospfv2')" {
description description
"Applied to OSPFv2 only."; "Applied to OSPFv2 only.";
} }
leaf ospfv2-auth-trailer-rfc { leaf ospfv2-auth-trailer-rfc {
if-feature ospfv2-authentication-trailer; if-feature "ospfv2-authentication-trailer";
type ospfv2-auth-trailer-rfc-version; type ospfv2-auth-trailer-rfc-version;
description description
"Version of OSPFv2 Authentication Trailer support. "Version of OSPFv2 Authentication Trailer support.
See RFCs 5709 and 7474."; See RFCs 5709 and 7474.";
reference reference
"RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication "RFC 5709: OSPFv2 HMAC-SHA Cryptographic Authentication
RFC 7474: Security Extension for OSPFv2 When Using RFC 7474: Security Extension for OSPFv2 When Using
Manual Key Management"; Manual Key Management";
} }
choice ospfv2-auth-specification { choice ospfv2-auth-specification {
description description
"Key chain or explicit key parameter specification."; "Key chain or explicit key parameter specification.";
case auth-key-chain { case auth-key-chain {
if-feature key-chain; if-feature "key-chain";
leaf ospfv2-key-chain { leaf ospfv2-key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Name of the key chain."; "Name of the key chain.";
} }
} }
case auth-key-explicit { case auth-key-explicit {
leaf ospfv2-key-id { leaf ospfv2-key-id {
type uint32; type uint32;
description description
skipping to change at line 3030 skipping to change at line 2974
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
description description
"Cryptographic algorithm associated with the key."; "Cryptographic algorithm associated with the key.";
} }
} }
} }
} }
case ospfv3-auth-ipsec { case ospfv3-auth-ipsec {
when "derived-from-or-self(../../../../../../rt:type, " when "derived-from-or-self(../../../../../../rt:type, "
+ "'ospfv3')" { + "'ospfv3')" {
description description
"Applied to OSPFv3 only."; "Applied to OSPFv3 only.";
} }
if-feature ospfv3-authentication-ipsec; if-feature "ospfv3-authentication-ipsec";
leaf sa { leaf sa {
type string; type string;
description description
"Name of the Security Association (SA)."; "Name of the Security Association (SA).";
} }
} }
case ospfv3-auth-trailer { case ospfv3-auth-trailer {
when "derived-from-or-self(../../../../../../rt:type, " when "derived-from-or-self(../../../../../../rt:type, "
+ "'ospfv3')" { + "'ospfv3')" {
description description
"Applied to OSPFv3 only."; "Applied to OSPFv3 only.";
} }
if-feature ospfv3-authentication-trailer; if-feature "ospfv3-authentication-trailer";
choice ospfv3-auth-specification { choice ospfv3-auth-specification {
description description
"Key chain or explicit key parameter specification."; "Key chain or explicit key parameter specification.";
case auth-key-chain { case auth-key-chain {
if-feature key-chain; if-feature "key-chain";
leaf ospfv3-key-chain { leaf ospfv3-key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Name of the key chain."; "Name of the key chain.";
} }
} }
case auth-key-explicit { case auth-key-explicit {
leaf ospfv3-sa-id { leaf ospfv3-sa-id {
type uint16; type uint16;
description description
skipping to change at line 3089 skipping to change at line 3033
} }
} }
} }
} }
} }
} }
grouping interface-config { grouping interface-config {
description description
"Configuration for real interfaces."; "Configuration for real interfaces.";
leaf interface-type { leaf interface-type {
type enumeration { type enumeration {
enum "broadcast" { enum broadcast {
description description
"Specifies an OSPF broadcast multi-access network."; "Specifies an OSPF broadcast multi-access network.";
} }
enum "non-broadcast" { enum non-broadcast {
description description
"Specifies an OSPF Non-Broadcast Multi-Access "Specifies an OSPF Non-Broadcast Multi-Access
(NBMA) network."; (NBMA) network.";
} }
enum "point-to-multipoint" { enum point-to-multipoint {
description description
"Specifies an OSPF point-to-multipoint network."; "Specifies an OSPF point-to-multipoint network.";
} }
enum "point-to-point" { enum point-to-point {
description description
"Specifies an OSPF point-to-point network."; "Specifies an OSPF point-to-point network.";
} }
enum "hybrid" { enum hybrid {
if-feature hybrid-interface; if-feature "hybrid-interface";
description description
"Specifies an OSPF Hybrid Broadcast / "Specifies an OSPF Hybrid Broadcast /
point-to-multipoint network."; point-to-multipoint network.";
} }
} }
description description
"Interface type."; "Interface type.";
} }
leaf passive { leaf passive {
type boolean; type boolean;
description description
"Enables/disables a passive interface. A passive "Enables/disables a passive interface. A passive
interface's prefix will be advertised, but no neighbor interface's prefix will be advertised, but no neighbor
adjacencies will be formed on the interface."; adjacencies will be formed on the interface.";
} }
leaf demand-circuit { leaf demand-circuit {
if-feature demand-circuit; if-feature "demand-circuit";
type boolean; type boolean;
description description
"Enables/disables a demand circuit."; "Enables/disables a demand circuit.";
} }
leaf priority { leaf priority {
type uint8; type uint8;
description description
"Configures OSPF router priority. In a multi-access "Configures OSPF router priority. In a multi-access
network, this value is for Designated Router (DR) election. network, this value is for Designated Router (DR) election.
The priority is ignored on other interface types. A router The priority is ignored on other interface types. A router
with a higher priority will be preferred in the election. with a higher priority will be preferred in the election.
A value of 0 indicates that the router is not eligible to A value of 0 indicates that the router is not eligible to
become the DR or Backup DR (BDR)."; become the DR or Backup DR (BDR).";
} }
skipping to change at line 3145 skipping to change at line 3085
leaf priority { leaf priority {
type uint8; type uint8;
description description
"Configures OSPF router priority. In a multi-access "Configures OSPF router priority. In a multi-access
network, this value is for Designated Router (DR) election. network, this value is for Designated Router (DR) election.
The priority is ignored on other interface types. A router The priority is ignored on other interface types. A router
with a higher priority will be preferred in the election. with a higher priority will be preferred in the election.
A value of 0 indicates that the router is not eligible to A value of 0 indicates that the router is not eligible to
become the DR or Backup DR (BDR)."; become the DR or Backup DR (BDR).";
} }
container multi-areas { container multi-areas {
if-feature multi-area-adj; if-feature "multi-area-adj";
description description
"Container for multi-area configuration."; "Container for multi-area configuration.";
list multi-area { list multi-area {
key multi-area-id; key "multi-area-id";
description description
"Configures an OSPF multi-area adjacency."; "Configures an OSPF multi-area adjacency.";
leaf multi-area-id { leaf multi-area-id {
type area-id-type; type area-id-type;
description description
"Multi-area adjacency area ID."; "Multi-area adjacency area ID.";
} }
leaf cost { leaf cost {
type ospf-link-metric; type ospf-link-metric;
description description
skipping to change at line 3193 skipping to change at line 3128
type ospf-link-metric; type ospf-link-metric;
description description
"Neighbor's cost. Different implementations have "Neighbor's cost. Different implementations have
different default costs, with some defaulting to a different default costs, with some defaulting to a
cost inversely proportional to the interface speed. cost inversely proportional to the interface speed.
Others will default to 1, equating the cost to a Others will default to 1, equating the cost to a
hop count."; hop count.";
} }
leaf poll-interval { leaf poll-interval {
type uint16; type uint16;
units seconds; units "seconds";
description description
"Neighbor's poll interval (seconds) for sending OSPF "Neighbor's poll interval (seconds) for sending OSPF
Hello packets to discover the neighbor on NBMA Hello packets to discover the neighbor on NBMA
networks. This interval dictates the granularity for networks. This interval dictates the granularity for
discovery of new neighbors. A sample would be discovery of new neighbors. A sample would be
120 seconds (2 minutes) for a legacy Packet Data 120 seconds (2 minutes) for a legacy Packet Data
Network (PDN) X.25 network."; Network (PDN) X.25 network.";
reference reference
"RFC 2328: OSPF Version 2, Appendix C.5"; "RFC 2328: OSPF Version 2, Appendix C.5";
} }
skipping to change at line 3214 skipping to change at line 3149
leaf priority { leaf priority {
type uint8; type uint8;
description description
"Neighbor's priority for DR election. A router with a "Neighbor's priority for DR election. A router with a
higher priority will be preferred in the election. higher priority will be preferred in the election.
A value of 0 indicates that the router is not A value of 0 indicates that the router is not
eligible to become the DR or BDR."; eligible to become the DR or BDR.";
} }
} }
} }
leaf node-flag { leaf node-flag {
if-feature node-flag; if-feature "node-flag";
type boolean; type boolean;
default false; default "false";
description description
"Sets the prefix as identifying the advertising router."; "Sets the prefix as identifying the advertising router.";
reference reference
"RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement"; "RFC 7684: OSPFv2 Prefix/Link Attribute Advertisement";
} }
container bfd { container bfd {
if-feature bfd; if-feature "bfd";
description description
"BFD client configuration."; "BFD client configuration.";
uses bfd-types:client-cfg-parms; uses bfd-types:client-cfg-parms;
reference reference
"RFC 9127: YANG Data Model for Bidirectional Forwarding "RFC 9127: YANG Data Model for Bidirectional Forwarding
Detection (BFD)"; Detection (BFD)";
} }
uses interface-fast-reroute-config; uses interface-fast-reroute-config;
uses interface-common-config; uses interface-common-config;
uses interface-physical-link-config; uses interface-physical-link-config;
} }
grouping neighbor-state { grouping neighbor-state {
description description
"OSPF neighbor operational state."; "OSPF neighbor operational state.";
leaf address { leaf address {
type inet:ip-address; type inet:ip-address;
config false; config false;
description description
"Neighbor's address."; "Neighbor's address.";
} }
leaf dr-router-id { leaf dr-router-id {
type rt-types:router-id; type rt-types:router-id;
config false; config false;
description description
skipping to change at line 3499 skipping to change at line 3412
"IPv4 or IPv6 prefix."; "IPv4 or IPv6 prefix.";
} }
leaf advertise { leaf advertise {
type boolean; type boolean;
description description
"Advertise or hide."; "Advertise or hide.";
} }
leaf cost { leaf cost {
type ospf-metric; type ospf-metric;
description description
"Advertised cost of a summary route."; "Advertised cost of a summary route.";
} }
} }
} }
} }
grouping area-common-config { grouping area-common-config {
description description
"OSPF area common configuration state."; "OSPF area common configuration state.";
leaf summary { leaf summary {
when "derived-from(../area-type,'stub-nssa-area')" { when "derived-from(../area-type,'stub-nssa-area')" {
description description
"Summary advertisement into the stub area / NSSA."; "Summary advertisement into the stub area / NSSA.";
} }
type boolean; type boolean;
description description
"Enables/disables a summary advertisement into the stub "Enables/disables a summary advertisement into the stub
area or NSSA."; area or NSSA.";
} }
skipping to change at line 3521 skipping to change at line 3433
description description
"Summary advertisement into the stub area / NSSA."; "Summary advertisement into the stub area / NSSA.";
} }
type boolean; type boolean;
description description
"Enables/disables a summary advertisement into the stub "Enables/disables a summary advertisement into the stub
area or NSSA."; area or NSSA.";
} }
leaf default-cost { leaf default-cost {
when "derived-from(../area-type,'stub-nssa-area')" { when "derived-from(../area-type,'stub-nssa-area')" {
description description
"Cost for the LSA default route advertised into the "Cost for the LSA default route advertised into the
stub area or NSSA."; stub area or NSSA.";
} }
type ospf-metric; type ospf-metric;
description description
"Sets the summary default route cost for a stub area "Sets the summary default route cost for a stub area
or NSSA."; or NSSA.";
} }
} }
grouping area-config { grouping area-config {
description description
skipping to change at line 3535 skipping to change at line 3447
type ospf-metric; type ospf-metric;
description description
"Sets the summary default route cost for a stub area "Sets the summary default route cost for a stub area
or NSSA."; or NSSA.";
} }
} }
grouping area-config { grouping area-config {
description description
"OSPF area configuration state."; "OSPF area configuration state.";
leaf area-type { leaf area-type {
type identityref { type identityref {
base area-type; base area-type;
} }
default normal-area; default "normal-area";
description description
"Area type."; "Area type.";
} }
uses area-common-config; uses area-common-config;
uses address-family-area-config; uses address-family-area-config;
} }
grouping area-state { grouping area-state {
description description
"OSPF area operational state."; "OSPF area operational state.";
container statistics { container statistics {
config false; config false;
description description
"Per-area statistics."; "Per-area statistics.";
uses area-stat; uses area-stat;
} }
container database { container database {
config false; config false;
description description
"Area-scope LSDB."; "Area-scope LSDB.";
list area-scope-lsa-type { list area-scope-lsa-type {
key "lsa-type"; key "lsa-type";
description description
"List of OSPF area-scope LSAs."; "List of OSPF area-scope LSAs.";
leaf lsa-type { leaf lsa-type {
type uint16; type uint16;
skipping to change at line 3636 skipping to change at line 3544
list next-hop { list next-hop {
key "next-hop"; key "next-hop";
description description
"List of next hops for the route."; "List of next hops for the route.";
leaf outgoing-interface { leaf outgoing-interface {
type if:interface-ref; type if:interface-ref;
description description
"Name of the outgoing interface."; "Name of the outgoing interface.";
} }
leaf next-hop { leaf next-hop {
type inet:ip-address; type inet:ip-address;
description description
"Address of the next hop."; "Address of the next hop.";
} }
} }
} }
leaf metric { leaf metric {
type uint32; type uint32;
description description
"Metric for this route."; "Metric for this route.";
} }
leaf route-type { leaf route-type {
type route-type; type route-type;
skipping to change at line 3664 skipping to change at line 3572
description description
"Route tag for this route."; "Route tag for this route.";
} }
} }
} }
} }
grouping ietf-spf-delay { grouping ietf-spf-delay {
leaf initial-delay { leaf initial-delay {
type uint32; type uint32;
units milliseconds; units "milliseconds";
description description
"Delay used while in the 'QUIET' state (milliseconds)."; "Delay used while in the 'QUIET' state (milliseconds).";
} }
leaf short-delay { leaf short-delay {
type uint32; type uint32;
units milliseconds; units "milliseconds";
description description
"Delay used while in the 'SHORT_WAIT' state (milliseconds)."; "Delay used while in the 'SHORT_WAIT' state (milliseconds).";
} }
leaf long-delay { leaf long-delay {
type uint32; type uint32;
units milliseconds; units "milliseconds";
description description
"Delay used while in the 'LONG_WAIT' state (milliseconds)."; "Delay used while in the 'LONG_WAIT' state (milliseconds).";
} }
leaf hold-down { leaf hold-down {
type uint32; type uint32;
units milliseconds; units "milliseconds";
description description
"This timer value defines the period without any changes "This timer value defines the period without any changes
for the IGP to be considered stable (milliseconds)."; for the IGP to be considered stable (milliseconds).";
} }
leaf time-to-learn { leaf time-to-learn {
type uint32; type uint32;
units milliseconds; units "milliseconds";
description description
"Duration used to learn all the IGP events "Duration used to learn all the IGP events
related to a single component failure (milliseconds)."; related to a single component failure (milliseconds).";
} }
leaf current-state { leaf current-state {
type enumeration { type enumeration {
enum "quiet" { enum quiet {
description description
"'QUIET' state."; "'QUIET' state.";
} }
enum "short-wait" { enum short-wait {
description description
"'SHORT_WAIT' state."; "'SHORT_WAIT' state.";
} }
enum "long-wait" { enum long-wait {
description description
"'LONG_WAIT' state."; "'LONG_WAIT' state.";
} }
} }
config false; config false;
description description
"Current SPF back-off algorithm state."; "Current SPF back-off algorithm state.";
} }
leaf remaining-time-to-learn { leaf remaining-time-to-learn {
type rt-types:timer-value-milliseconds; type rt-types:timer-value-milliseconds;
skipping to change at line 3742 skipping to change at line 3650
type yang:timestamp; type yang:timestamp;
config false; config false;
description description
"Time when the next SPF has been scheduled."; "Time when the next SPF has been scheduled.";
} }
leaf last-spf-time { leaf last-spf-time {
type yang:timestamp; type yang:timestamp;
config false; config false;
description description
"Time of the last SPF computation."; "Time of the last SPF computation.";
} }
description description
"Grouping for IETF SPF delay configuration and state."; "Grouping for IETF SPF delay configuration and state.";
} }
grouping node-tag-config { grouping node-tag-config {
description description
"OSPF node tag configuration state."; "OSPF node tag configuration state.";
container node-tags { container node-tags {
if-feature node-tag; if-feature "node-tag";
list node-tag { list node-tag {
key tag; key "tag";
leaf tag { leaf tag {
type uint32; type uint32;
description description
"Node tag value."; "Node tag value.";
} }
description description
"List of tags."; "List of tags.";
} }
description description
"Container for node administrative tags."; "Container for node administrative tags.";
} }
} }
grouping instance-config { grouping instance-config {
skipping to change at line 3770 skipping to change at line 3678
"List of tags."; "List of tags.";
} }
description description
"Container for node administrative tags."; "Container for node administrative tags.";
} }
} }
grouping instance-config { grouping instance-config {
description description
"OSPF instance configuration state."; "OSPF instance configuration state.";
leaf enable { leaf enable {
type boolean; type boolean;
default true; default "true";
description description
"Enables/disables the protocol."; "Enables/disables the protocol.";
} }
leaf explicit-router-id { leaf explicit-router-id {
if-feature explicit-router-id; if-feature "explicit-router-id";
type rt-types:router-id; type rt-types:router-id;
description description
"Defined in RFC 2328. A 32-bit number "Defined in RFC 2328. A 32-bit number
that uniquely identifies the router."; that uniquely identifies the router.";
reference reference
"RFC 2328: OSPF Version 2"; "RFC 2328: OSPF Version 2";
} }
container preference { container preference {
description description
"Route preference configuration. In many "Route preference configuration. In many
implementations, preference is referred to as implementations, preference is referred to as
administrative distance."; administrative distance.";
reference reference
"RFC 8349: A YANG Data Model for Routing Management "RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
choice scope { choice scope {
description description
skipping to change at line 3842 skipping to change at line 3747
} }
} }
leaf external { leaf external {
type uint8; type uint8;
description description
"Preference for AS external routes."; "Preference for AS external routes.";
} }
} }
} }
} }
container nsr { container nsr {
if-feature nsr; if-feature "nsr";
description description
"Non-Stop Routing (NSR) configuration state."; "Non-Stop Routing (NSR) configuration state.";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Enables/disables NSR."; "Enables/disables NSR.";
} }
} }
container graceful-restart { container graceful-restart {
if-feature graceful-restart; if-feature "graceful-restart";
description description
"Graceful restart configuration state."; "Graceful restart configuration state.";
reference reference
"RFC 3623: Graceful OSPF Restart "RFC 3623: Graceful OSPF Restart
RFC 5187: OSPFv3 Graceful Restart"; RFC 5187: OSPFv3 Graceful Restart";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Enables/disables graceful restart as defined in RFC 3623 "Enables/disables graceful restart as defined in RFC 3623
for OSPFv2 and RFC 5187 for OSPFv3."; for OSPFv2 and RFC 5187 for OSPFv3.";
skipping to change at line 3877 skipping to change at line 3780
leaf helper-enable { leaf helper-enable {
type boolean; type boolean;
description description
"Enables graceful restart helper support for restarting "Enables graceful restart helper support for restarting
routers (Section 3 of RFC 3623)."; routers (Section 3 of RFC 3623).";
reference reference
"RFC 3623: Graceful OSPF Restart, Section 3"; "RFC 3623: Graceful OSPF Restart, Section 3";
} }
leaf restart-interval { leaf restart-interval {
type uint16 { type uint16 {
range "1..1800"; range "1..1800";
} }
units seconds; units "seconds";
default "120"; default "120";
description description
"Interval during which to attempt graceful restart prior "Interval during which to attempt graceful restart prior
to failing (seconds) (Appendix B.1 of RFC 3623)."; to failing (seconds) (Appendix B.1 of RFC 3623).";
reference reference
"RFC 3623: Graceful OSPF Restart, Appendix B.1"; "RFC 3623: Graceful OSPF Restart, Appendix B.1";
} }
leaf helper-strict-lsa-checking { leaf helper-strict-lsa-checking {
type boolean; type boolean;
description description
skipping to change at line 3896 skipping to change at line 3799
} }
leaf helper-strict-lsa-checking { leaf helper-strict-lsa-checking {
type boolean; type boolean;
description description
"Terminates graceful restart when an LSA topology change "Terminates graceful restart when an LSA topology change
is detected (Appendix B.2 of RFC 3623)."; is detected (Appendix B.2 of RFC 3623).";
reference reference
"RFC 3623: Graceful OSPF Restart, Appendix B.2"; "RFC 3623: Graceful OSPF Restart, Appendix B.2";
} }
} }
container auto-cost { container auto-cost {
if-feature auto-cost; if-feature "auto-cost";
description description
"Interface auto-cost configuration state."; "Interface auto-cost configuration state.";
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Enables/disables interface auto-cost."; "Enables/disables interface auto-cost.";
} }
leaf reference-bandwidth { leaf reference-bandwidth {
when "../enable = 'true'" { when "../enable = 'true'" {
description description
"Only when auto-cost is enabled."; "Only when auto-cost is enabled.";
} }
type uint32 { type uint32 {
range "1..4294967"; range "1..4294967";
} }
units Mbits; units "Mbits";
description description
"Configures reference bandwidth used to automatically "Configures reference bandwidth used to automatically
determine interface cost (Mbits). The cost is the determine interface cost (Mbits). The cost is the
reference bandwidth divided by the interface speed, reference bandwidth divided by the interface speed,
with 1 being the minimum cost."; with 1 being the minimum cost.";
} }
} }
container spf-control { container spf-control {
leaf paths { leaf paths {
if-feature max-ecmp; if-feature "max-ecmp";
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
description description
"Maximum number of Equal-Cost Multi-Path (ECMP) paths."; "Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
} }
container ietf-spf-delay { container ietf-spf-delay {
if-feature ietf-spf-delay; if-feature "ietf-spf-delay";
uses ietf-spf-delay; uses ietf-spf-delay;
description description
"IETF SPF delay algorithm configuration."; "IETF SPF delay algorithm configuration.";
} }
description description
"SPF calculation control."; "SPF calculation control.";
} }
container database-control { container database-control {
leaf max-lsa { leaf max-lsa {
if-feature max-lsa; if-feature "max-lsa";
type uint32 { type uint32 {
range "1..4294967294"; range "1..4294967294";
} }
description description
"Maximum number of OSPF LSAs the router will accept."; "Maximum number of OSPF LSAs the router will accept.";
} }
description description
"Database maintenance control."; "Database maintenance control.";
} }
container stub-router { container stub-router {
if-feature stub-router; if-feature "stub-router";
description description
"Sets the maximum metric configuration."; "Sets the maximum metric configuration.";
choice trigger { choice trigger {
description description
"Specific triggers that will enable stub router state."; "Specific triggers that will enable stub router state.";
container always { container always {
presence presence "Enables unconditional stub router support";
"Enables unconditional stub router support";
description description
"Unconditional stub router state (advertises "Unconditional stub router state (advertises
transit links with 'MaxLinkMetric')."; transit links with 'MaxLinkMetric').";
reference reference
"RFC 6987: OSPF Stub Router Advertisement"; "RFC 6987: OSPF Stub Router Advertisement";
} }
} }
} }
container mpls { container mpls {
description description
"OSPF MPLS configuration state."; "OSPF MPLS configuration state.";
container te-rid { container te-rid {
if-feature te-rid; if-feature "te-rid";
description description
"Stable OSPF Router IP address used for TE."; "Stable OSPF Router IP address used for TE.";
leaf ipv4-router-id { leaf ipv4-router-id {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Explicitly configures the TE IPv4 Router ID."; "Explicitly configures the TE IPv4 Router ID.";
} }
leaf ipv6-router-id { leaf ipv6-router-id {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Explicitly configures the TE IPv6 Router ID."; "Explicitly configures the TE IPv6 Router ID.";
} }
} }
container ldp { container ldp {
description description
"OSPF MPLS LDP configuration state."; "OSPF MPLS LDP configuration state.";
leaf igp-sync { leaf igp-sync {
if-feature ldp-igp-sync; if-feature "ldp-igp-sync";
type boolean; type boolean;
description description
"Enables LDP IGP synchronization."; "Enables LDP IGP synchronization.";
} }
} }
} }
uses instance-fast-reroute-config; uses instance-fast-reroute-config;
uses node-tag-config; uses node-tag-config;
} }
skipping to change at line 4107 skipping to change at line 3999
type ospf-metric; type ospf-metric;
description description
"Sets the summary default route cost for a "Sets the summary default route cost for a
stub area or NSSA."; stub area or NSSA.";
} }
} }
grouping multi-topology-area-config { grouping multi-topology-area-config {
description description
"OSPF multi-topology area configuration state."; "OSPF multi-topology area configuration state.";
uses multi-topology-area-common-config; uses multi-topology-area-common-config;
uses address-family-area-config; uses address-family-area-config;
} }
grouping multi-topology-state { grouping multi-topology-state {
description description
"OSPF multi-topology operational state."; "OSPF multi-topology operational state.";
uses local-rib; uses local-rib;
} }
grouping multi-topology-interface-config { grouping multi-topology-interface-config {
description description
"OSPF multi-topology configuration state."; "OSPF multi-topology configuration state.";
leaf cost { leaf cost {
type ospf-link-metric; type ospf-link-metric;
description description
"Interface cost for this topology."; "Interface cost for this topology.";
} }
} }
grouping ospfv3-interface-config { grouping ospfv3-interface-config {
description description
"OSPFv3 interface-specific configuration state."; "OSPFv3 interface-specific configuration state.";
leaf instance-id { leaf instance-id {
type uint8 { type uint8 {
range "0 .. 31"; range "0 .. 31";
} }
description description
"OSPFv3 instance ID."; "OSPFv3 instance ID.";
} }
} }
grouping ospfv3-interface-state { grouping ospfv3-interface-state {
skipping to change at line 4196 skipping to change at line 4083
} }
grouping spf-log { grouping spf-log {
description description
"Grouping for the SPF log."; "Grouping for the SPF log.";
container spf-log { container spf-log {
config false; config false;
description description
"This container lists the SPF log entries."; "This container lists the SPF log entries.";
list event { list event {
key id; key "id";
description description
"List of SPF log entries represented "List of SPF log entries represented
as a wrapping buffer in chronological as a wrapping buffer in chronological
order, with the oldest entry returned order, with the oldest entry returned
first."; first.";
leaf id { leaf id {
type uint32; type uint32;
description description
"Event identifier. A purely internal value."; "Event identifier. A purely internal value.";
} }
skipping to change at line 4269 skipping to change at line 4156
grouping lsa-log { grouping lsa-log {
description description
"Grouping for the LSA log."; "Grouping for the LSA log.";
container lsa-log { container lsa-log {
config false; config false;
description description
"This container lists the LSA log entries. "This container lists the LSA log entries.
Local LSA modifications are also included Local LSA modifications are also included
in the list."; in the list.";
list event { list event {
key id; key "id";
description description
"List of LSA log entries represented "List of LSA log entries represented
as a wrapping buffer in chronological order, as a wrapping buffer in chronological order,
with the oldest entry returned first."; with the oldest entry returned first.";
leaf id { leaf id {
type uint32; type uint32;
description description
"Event identifier. A purely internal value."; "Event identifier. A purely internal value.";
} }
container lsa { container lsa {
skipping to change at line 4304 skipping to change at line 4191
} }
description description
"Reason for the LSA log entry."; "Reason for the LSA log entry.";
} }
} }
} }
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "derived-from(rt:type, 'ospf')" { when "derived-from(rt:type, 'ospf')" {
description description
"This augmentation is only valid for a routing protocol "This augmentation is only valid for a routing protocol
instance of OSPF (type 'ospfv2' or 'ospfv3')."; instance of OSPF (type 'ospfv2' or 'ospfv3').";
} }
description description
"OSPF protocol 'ietf-routing' module 'control-plane-protocol' "OSPF protocol 'ietf-routing' module 'control-plane-protocol'
augmentation."; augmentation.";
container ospf { container ospf {
description description
"OSPF protocol instance."; "OSPF protocol instance.";
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address family of the instance."; "Address family of the instance.";
} }
uses instance-config; uses instance-config;
uses instance-state; uses instance-state;
container areas { container areas {
description description
"All areas."; "All areas.";
list area { list area {
key "area-id"; key "area-id";
description description
"List of OSPF areas."; "List of OSPF areas.";
leaf area-id { leaf area-id {
type area-id-type; type area-id-type;
description description
skipping to change at line 4338 skipping to change at line 4221
"All areas."; "All areas.";
list area { list area {
key "area-id"; key "area-id";
description description
"List of OSPF areas."; "List of OSPF areas.";
leaf area-id { leaf area-id {
type area-id-type; type area-id-type;
description description
"Area ID."; "Area ID.";
} }
uses area-config; uses area-config;
uses area-state; uses area-state;
container virtual-links { container virtual-links {
when "derived-from-or-self(../area-type, 'normal-area') " when "derived-from-or-self(../area-type, 'normal-area') "
+ "and ../area-id = '0.0.0.0'" { + "and ../area-id = '0.0.0.0'" {
description description
"Virtual links must be in a backbone area."; "Virtual links must be in a backbone area.";
} }
description description
"All virtual links."; "All virtual links.";
list virtual-link { list virtual-link {
key "transit-area-id router-id"; key "transit-area-id router-id";
description description
"OSPF virtual link."; "OSPF virtual link.";
leaf transit-area-id { leaf transit-area-id {
type leafref { type leafref {
path "../../../../area/area-id"; path "../../../../area/area-id";
} }
must "derived-from-or-self(" must "derived-from-or-self("
+ "../../../../area[area-id=current()]/area-type, " + "../../../../area[area-id=current()]/area-type, "
+ "'normal-area') and " + "'normal-area') and "
+ "../../../../area[area-id=current()]/area-id != " + "../../../../area[area-id=current()]/area-id != "
+ "'0.0.0.0'" { + "'0.0.0.0'" {
error-message "The virtual link transit area must " error-message "The virtual link transit area must "
+ "be non-zero."; + "be non-zero.";
description description
"The virtual link transit area must be a "The virtual link transit area must be a
non-zero area."; non-zero area.";
} }
description description
"Virtual link transit area ID."; "Virtual link transit area ID.";
} }
leaf router-id { leaf router-id {
skipping to change at line 4377 skipping to change at line 4258
non-zero area."; non-zero area.";
} }
description description
"Virtual link transit area ID."; "Virtual link transit area ID.";
} }
leaf router-id { leaf router-id {
type rt-types:router-id; type rt-types:router-id;
description description
"Virtual link remote endpoint Router ID."; "Virtual link remote endpoint Router ID.";
} }
uses virtual-link-config; uses virtual-link-config;
uses virtual-link-state; uses virtual-link-state;
} }
} }
container sham-links { container sham-links {
if-feature pe-ce-protocol; if-feature "pe-ce-protocol";
description description
"All sham links."; "All sham links.";
list sham-link { list sham-link {
key "local-id remote-id"; key "local-id remote-id";
description description
"OSPF sham link."; "OSPF sham link.";
leaf local-id { leaf local-id {
type inet:ip-address; type inet:ip-address;
description description
"Address of the local sham link endpoint."; "Address of the local sham link endpoint.";
skipping to change at line 4432 skipping to change at line 4312
} }
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf" { + "rt:control-plane-protocol/ospf" {
when "derived-from(../rt:type, 'ospf')" { when "derived-from(../rt:type, 'ospf')" {
description description
"This augmentation is only valid for OSPF "This augmentation is only valid for OSPF
(type 'ospfv2' or 'ospfv3')."; (type 'ospfv2' or 'ospfv3').";
} }
if-feature multi-topology; if-feature "multi-topology";
description description
"OSPF multi-topology instance configuration "OSPF multi-topology instance configuration
state augmentation."; state augmentation.";
container topologies { container topologies {
description description
"All topologies."; "All topologies.";
list topology { list topology {
key "name"; key "name";
description description
"OSPF topology. The OSPF topology address family "OSPF topology. The OSPF topology address family
skipping to change at line 4466 skipping to change at line 4345
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf/" + "rt:control-plane-protocol/ospf/"
+ "areas/area" { + "areas/area" {
when "derived-from-or-self(../../../rt:type, " when "derived-from-or-self(../../../rt:type, "
+ "'ospfv2')" { + "'ospfv2')" {
description description
"This augmentation is only valid for OSPFv2."; "This augmentation is only valid for OSPFv2.";
} }
if-feature multi-topology; if-feature "multi-topology";
description description
"OSPF multi-topology area configuration state "OSPF multi-topology area configuration state
augmentation."; augmentation.";
container topologies { container topologies {
description description
"All topologies for the area."; "All topologies for the area.";
list topology { list topology {
key "name"; key "name";
description description
"OSPF area topology."; "OSPF area topology.";
skipping to change at line 4499 skipping to change at line 4377
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/ospf/" + "rt:control-plane-protocol/ospf/"
+ "areas/area/interfaces/interface" { + "areas/area/interfaces/interface" {
when "derived-from-or-self(../../../../../rt:type, " when "derived-from-or-self(../../../../../rt:type, "
+ "'ospfv2')" { + "'ospfv2')" {
description description
"This augmentation is only valid for OSPFv2."; "This augmentation is only valid for OSPFv2.";
} }
if-feature multi-topology; if-feature "multi-topology";
description description
"OSPF multi-topology interface configuration state "OSPF multi-topology interface configuration state
augmentation."; augmentation.";
container topologies { container topologies {
description description
"All topologies for the interface."; "All topologies for the interface.";
list topology { list topology {
key "name"; key "name";
description description
"OSPF interface topology."; "OSPF interface topology.";
skipping to change at line 4587 skipping to change at line 4464
"This RPC request clears a particular set of OSPF neighbors. "This RPC request clears a particular set of OSPF neighbors.
If the operation fails for an OSPF-internal reason, then If the operation fails for an OSPF-internal reason, then
'error-tag' and 'error-app-tag' should be set to meaningful 'error-tag' and 'error-app-tag' should be set to meaningful
values."; values.";
input { input {
leaf routing-protocol-name { leaf routing-protocol-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"OSPF protocol instance for which information for neighbors "OSPF protocol instance for which information for neighbors
is to be cleared. is to be cleared.
If the referenced OSPF instance doesn't exist, then If the referenced OSPF instance doesn't exist, then
this operation SHALL fail with an 'error-tag' setting of this operation SHALL fail with an 'error-tag' setting of
'data-missing' and an 'error-app-tag' setting of 'data-missing' and an 'error-app-tag' setting of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"Name of the OSPF interface for which neighbors are to "Name of the OSPF interface for which neighbors are to
be cleared. be cleared.
If the referenced OSPF interface doesn't exist, then If the referenced OSPF interface doesn't exist, then
this operation SHALL fail with an 'error-tag' setting this operation SHALL fail with an 'error-tag' setting
of 'data-missing' and an 'error-app-tag' setting of of 'data-missing' and an 'error-app-tag' setting of
'ospf-interface-not-found'."; 'ospf-interface-not-found'.";
} }
} }
} }
rpc clear-database { rpc clear-database {
description description
"This RPC request clears a particular OSPF LSDB. "This RPC request clears a particular OSPF LSDB.
If the operation fails for an OSPF-internal reason, If the operation fails for an OSPF-internal reason,
then 'error-tag' and 'error-app-tag' should be set to then 'error-tag' and 'error-app-tag' should be set to
meaningful values."; meaningful values.";
input { input {
leaf routing-protocol-name { leaf routing-protocol-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"OSPF protocol instance whose LSDB is to be cleared. "OSPF protocol instance whose LSDB is to be cleared.
If the referenced OSPF instance doesn't exist, then If the referenced OSPF instance doesn't exist, then
this operation SHALL fail with an 'error-tag' setting of this operation SHALL fail with an 'error-tag' setting of
'data-missing' and an 'error-app-tag' setting of 'data-missing' and an 'error-app-tag' setting of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
} }
} }
skipping to change at line 4644 skipping to change at line 4520
} }
/* /*
* Notifications * Notifications
*/ */
grouping notification-instance-hdr { grouping notification-instance-hdr {
description description
"This grouping describes common instance-specific "This grouping describes common instance-specific
data for OSPF notifications."; data for OSPF notifications.";
leaf routing-protocol-name { leaf routing-protocol-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
must "derived-from( " must "derived-from( "
+ "/rt:routing/rt:control-plane-protocols/" + "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol[rt:name=current()]/" + "rt:control-plane-protocol[rt:name=current()]/"
+ "rt:type, 'ospf')"; + "rt:type, 'ospf')";
description description
"Name of the OSPF routing protocol instance."; "Name of the OSPF routing protocol instance.";
} }
leaf address-family { leaf address-family {
type leafref { type leafref {
path "/rt:routing/" path "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "[rt:name=current()/../routing-protocol-name]/" + "[rt:name=current()/../routing-protocol-name]/"
+ "ospf/address-family"; + "ospf/address-family";
} }
description description
"Address family of the OSPF instance."; "Address family of the OSPF instance.";
} }
skipping to change at line 4758 skipping to change at line 4628
"Interface state."; "Interface state.";
} }
description description
"This notification is sent when an interface "This notification is sent when an interface
state change is detected."; state change is detected.";
} }
notification if-config-error { notification if-config-error {
uses notification-instance-hdr; uses notification-instance-hdr;
uses notification-interface; uses notification-interface;
leaf packet-source { leaf packet-source {
type inet:ip-address; type inet:ip-address;
description description
"Source address."; "Source address.";
} }
leaf packet-type { leaf packet-type {
type packet-type; type packet-type;
description description
"OSPF packet type."; "OSPF packet type.";
} }
leaf error { leaf error {
type enumeration { type enumeration {
enum "bad-version" { enum bad-version {
description description
"Bad version."; "Bad version.";
} }
enum "area-mismatch" { enum area-mismatch {
description description
"Area mismatch."; "Area mismatch.";
} }
enum "unknown-nbma-nbr" { enum unknown-nbma-nbr {
description description
"Unknown NBMA neighbor."; "Unknown NBMA neighbor.";
} }
enum "unknown-virtual-nbr" { enum unknown-virtual-nbr {
description description
"Unknown virtual link neighbor."; "Unknown virtual link neighbor.";
} }
enum "auth-type-mismatch" { enum auth-type-mismatch {
description description
"Authentication type mismatch."; "Authentication type mismatch.";
} }
enum "auth-failure" { enum auth-failure {
description description
"Authentication failure."; "Authentication failure.";
} }
enum "net-mask-mismatch" { enum net-mask-mismatch {
description description
"Network mask mismatch."; "Network mask mismatch.";
} }
enum "hello-interval-mismatch" { enum hello-interval-mismatch {
description description
"Hello interval mismatch."; "Hello interval mismatch.";
} }
enum "dead-interval-mismatch" { enum dead-interval-mismatch {
description description
"Dead interval mismatch."; "Dead interval mismatch.";
} }
enum "option-mismatch" { enum option-mismatch {
description description
"Option mismatch."; "Option mismatch.";
} }
enum "mtu-mismatch" { enum mtu-mismatch {
description description
"MTU mismatch."; "MTU mismatch.";
} }
enum "duplicate-router-id" { enum duplicate-router-id {
description description
"Duplicate Router ID."; "Duplicate Router ID.";
} }
enum "no-error" { enum no-error {
description description
"No error."; "No error.";
} }
} }
description description
"Error codes."; "Error codes.";
} }
description description
"This notification is sent when an interface "This notification is sent when an interface
configuration error is detected."; configuration error is detected.";
skipping to change at line 4882 skipping to change at line 4744
"Restart helper exit reason."; "Restart helper exit reason.";
} }
description description
"This notification is sent when a neighbor restart "This notification is sent when a neighbor restart
helper status change is detected."; helper status change is detected.";
} }
notification if-rx-bad-packet { notification if-rx-bad-packet {
uses notification-instance-hdr; uses notification-instance-hdr;
uses notification-interface; uses notification-interface;
leaf packet-source { leaf packet-source {
type inet:ip-address; type inet:ip-address;
description description
"Source address."; "Source address.";
} }
leaf packet-type { leaf packet-type {
type packet-type; type packet-type;
description description
"OSPF packet type."; "OSPF packet type.";
} }
description description
"This notification is sent when an OSPF packet that "This notification is sent when an OSPF packet that
cannot be parsed is received on an OSPF interface."; cannot be parsed is received on an OSPF interface.";
} }
notification lsdb-approaching-overflow { notification lsdb-approaching-overflow {
uses notification-instance-hdr; uses notification-instance-hdr;
leaf ext-lsdb-limit { leaf ext-lsdb-limit {
type uint32; type uint32;
description description
"The maximum number of non-default AS-external LSA "The maximum number of non-default AS-external LSA
entries that can be stored in the LSDB."; entries that can be stored in the LSDB.";
} }
description description
"This notification is sent when the number of LSAs "This notification is sent when the number of LSAs
in the router's LSDB has exceeded ninety percent of the in the router's LSDB has exceeded ninety percent of the
AS-external limit ('ext-lsdb-limit')."; AS-external limit ('ext-lsdb-limit').";
} }
notification lsdb-overflow { notification lsdb-overflow {
uses notification-instance-hdr; uses notification-instance-hdr;
leaf ext-lsdb-limit { leaf ext-lsdb-limit {
type uint32; type uint32;
description description
"The maximum number of non-default AS-external LSA "The maximum number of non-default AS-external LSA
entries that can be stored in the LSDB."; entries that can be stored in the LSDB.";
} }
description description
"This notification is sent when the number of LSAs "This notification is sent when the number of LSAs
in the router's LSDB has exceeded the AS-external limit in the router's LSDB has exceeded the AS-external limit
('ext-lsdb-limit')."; ('ext-lsdb-limit').";
} }
notification nssa-translator-status-change { notification nssa-translator-status-change {
uses notification-instance-hdr; uses notification-instance-hdr;
leaf area-id { leaf area-id {
type area-id-type; type area-id-type;
description description
"Area ID."; "Area ID.";
} }
leaf status { leaf status {
type nssa-translator-state-type; type nssa-translator-state-type;
description description
"NSSA translator status."; "NSSA translator status.";
} }
description description
"This notification is sent when there is a change "This notification is sent when there is a change
in the router's role in translating OSPF NSSA LSAs in the router's role in translating OSPF NSSA LSAs
to OSPF AS-External LSAs."; to OSPF AS-External LSAs.";
} }
notification restart-status-change { notification restart-status-change {
uses notification-instance-hdr; uses notification-instance-hdr;
leaf status { leaf status {
type restart-status-type; type restart-status-type;
description description
"Restart status."; "Restart status.";
} }
leaf restart-interval { leaf restart-interval {
type uint16 { type uint16 {
range 1..1800; range "1..1800";
} }
units seconds; units "seconds";
default "120"; default "120";
description description
"Restart interval."; "Restart interval.";
} }
leaf exit-reason { leaf exit-reason {
type restart-exit-reason-type; type restart-exit-reason-type;
description description
"Restart exit reason."; "Restart exit reason.";
} }
description description
"This notification is sent when the graceful restart "This notification is sent when the graceful restart
state for the router has changed."; state for the router has changed.";
} }
} }
 End of changes. 254 change blocks. 
298 lines changed or deleted 215 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/