module ietf-l3-ospf-topology {
yang-version 1.1;
namespace
"urn:ietf:params:xml:ns:yang:ietf-l3-ospf-topology";
prefix "ospfnt";
import ietf-yang-types {
prefix "yang";
}
import ietf-network {
prefix "nw";
}
import ietf-network-topology {
prefix "nt";
}
import ietf-l3-unicast-topology {
prefix "l3t";
}
organization
"IETF OPSA (Operations and Management Area) Working Group";
contact
"WG Web:
WG List:
Editor: Oscar Gonzalez de Dios
Editor: Samier Barguil
Editor: Victor Lopez
";
description
"This module defines a model for Layer 3 OSPF
topologies.
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 XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.";
revision 2022-03-07 {
description
"Initial version";
reference
"RFC XXXX: A YANG Data Model for Open Shortest Path First
(OSPF) Topology"; }
typedef area-id-type {
type yang:dotted-quad;
description
"An identifier for the OSPFv2 area.";
reference
"RFC 2328: OSPF Version 2";
}
identity inf-type {
description
"Identity for the OSPF interface type.";
reference
"RFC 2328: OSPF Version 2";
}
identity nbma {
base inf-type;
description
"Identity for the NBMA interface.";
reference
"RFC 2328: OSPF Version 2";
}
identity p2mp {
base inf-type;
description
"Identity for the p2mp interface.";
reference
"RFC 2328: OSPF Version 2";
}
identity p2mp-over-lan {
base inf-type;
description
"Identity for the p2mp-over-lan interface.";
reference
"RFC 2328: OSPF Version 2";
}
identity p2p {
base inf-type;
description
"Identity for the p2p interface.";
reference
"RFC 2328: OSPF Version 2";
}
grouping ospfv2-topology-type {
description "Identifies the topology type to be OSPF v2.";
container ospfv2-topology {
presence "indicates OSPF v2 topology";
description
"The presence of the container node indicates OSPF v2
topology";
}
}
grouping ospfv2-node-attributes {
description "OSPF v2 node scope attributes";
container ospf-timer-attributes {
description
"Contains OSPFv2 node timer attributes";
leaf wait-timer {
type uint32;
units msec;
description
"The amount of time to wait without detecting SPF
trigger events before going back to the rapid delay.";
reference
"RFC 8541: SPF Impact on IGP Micro-loops";
}
leaf rapid-delay {
type uint32;
units msec;
description
"The amount of time to wait before running SPF after
the initial SPF trigger event.";
reference
"RFC 8541: SPF Impact on IGP Micro-loops";
}
leaf slow-delay {
type uint32;
units msec;
description
"The amount of time to wait before running an SPF.";
reference
"RFC 8541: SPF Impact on IGP Micro-loops";
}
leaf timer-type {
type enumeration {
enum LINEAR_BACKOFF {
description
"The link state routing protocol uses linear
back-off.";
}
enum EXPONENTIAL_BACKOFF {
description
"The link state routing protocol uses exponential
back-off.";
}
}
description
"The timer mode that is utilised by the SPF algorithm.";
reference
"RFC 8541: SPF Impact on IGP Micro-loops";
}
}
}
grouping ospfv2-termination-point-attributes {
description "OSPF termination point scope attributes";
container ospfv2-termination-point-attributes {
description
"Indicates the termination point from the
which the OSPF is configured. A termination
point can be a physical port, an interface, etc.";
leaf interface-type {
type identityref {
base inf-type ;
}
description
"OSPF interface type.";
reference
"RFC 2328: OSPF Version 2";
}
leaf area-id {
type area-id-type;
description
"An identifier for the OSPFv2 area.";
reference
"RFC 2328: OSPF Version 2";
}
leaf metric {
type uint64;
description
"OSFP Protocol metric";
reference
"RFC 2328: OSPF Version 2";
}
leaf is-passive{
type boolean;
description
"Interface passive mode";
reference
"RFC 2328: OSPF Version 2";
}
}
}
augment "/nw:networks/nw:network/nw:network-types" {
description
"Introduces new network type for L3 Unicast topology";
uses ospfv2-topology-type;
}
augment "/nw:networks/nw:network/nw:node/"
+"l3t:l3-node-attributes" {
when
"/nw:networks/nw:network/nw:network-types/"
+"ospfnt:ospfv2-topology" {
description
"Augmentation parameters apply only for networks with
OSPF topology";
}
description
"OSPF node-level attributes ";
uses ospfv2-node-attributes;
}
augment "/nw:networks/nw:network/"
+ "nt:link/l3t:l3-link-attributes" {
when "/nw:networks/nw:network/nw:network-types/"
+"ospfnt:ospfv2-topology" {
description
"Augmentation parameters apply only for networks with
OSFP topology";
}
description "Augments topology link configuration";
uses ospfv2-termination-point-attributes;
}
augment "/nw:networks/nw:network/nw:node/"
+"nt:termination-point/l3t:l3-termination-point-attributes" {
when "/nw:networks/nw:network/nw:network-types/"
+"ospfnt:ospfv2-topology" {
description
"Augmentation parameters apply only for networks with
OSFP topology";
}
description "Augments topology termination point configuration";
uses ospfv2-termination-point-attributes;
}
}