[email protected] Maven / Gradle / Ivy
module ospf-topology {
yang-version 1;
namespace "urn:TBD:params:xml:ns:yang:ospf-topology";
// replace with IANA namespace when assigned
prefix "ospf";
import network-topology {
prefix "nt";
revision-date 2013-10-21;
}
import l3-unicast-igp-topology {
prefix "l3t";
revision-date 2013-10-21;
}
import ietf-inet-types {
prefix "inet";
revision-date 2013-07-15;
}
import ted {
prefix "ted";
revision-date 2013-10-21;
}
organization "TBD";
contact "TBD";
description "OSPF Topology model";
revision "2013-10-21" {
description "Initial revision";
reference "TBD";
}
typedef area-id {
description "OSPF Area ID";
type uint32;
}
grouping ospf-topology-type {
container ospf {
presence "indiates OSPF Topology";
}
}
augment "/nt:network-topology/nt:topology/nt:topology-types/l3t:l3-unicast-igp-topology" {
uses ospf-topology-type;
}
augment "/nt:network-topology/nt:topology/l3t:igp-topology-attributes" {
when "../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
container ospf-topology-attributes {
leaf area-id {
type area-id;
}
}
}
augment "/nt:network-topology/nt:topology/nt:node/l3t:igp-node-attributes" {
when "../../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
uses ospf-node-attributes;
}
augment "/nt:network-topology/nt:topology/nt:link/l3t:igp-link-attributes" {
when "../../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
uses ospf-link-attributes;
}
augment "/nt:network-topology/nt:topology/nt:node/l3t:igp-node-attributes/l3t:prefix" {
when "../../../nt:topology-types/l3t:l3-unicast-igp-topology/ospf";
uses ospf-prefix-attributes;
}
grouping ospf-node-attributes {
container ospf-node-attributes {
choice router-type {
case abr {
leaf abr {
type empty;
}
}
case asbr {
leaf asbr {
type empty;
}
}
case internal {
leaf internal {
type empty;
}
}
case pseudonode {
leaf pseudonode {
type empty;
}
}
}
leaf dr-interface-id {
when "../router-type/pseudonode";
description "For pseudonodes, DR interface-id";
default "0";
type uint32;
}
leaf-list multi-topology-id {
description "List of Multi-Topology Identifier up-to 128 (0-127). RFC 4915";
max-elements "128";
type uint8 {
range "0..127";
}
}
leaf capabilities {
description "OSPF capabilities as bit vector. RFC 4970";
type bits {
bit graceful-restart-capable {
position 0;
}
bit graceful-restart-helper {
position 1;
}
bit stub-router-support {
position 2;
}
bit traffic-engineering-support {
position 3;
}
bit point-to-point-over-lan {
position 4;
}
bit experimental-te {
position 5;
}
}
}
container ted {
uses ted:ted-node-attributes;
}
} // ospf
} // ospf-node-attributes
grouping ospf-link-attributes {
container ospf-link-attributes {
leaf multi-topology-id {
type uint8 {
range "0..127";
}
}
container ted {
uses ted:ted-link-attributes;
}
}
} // ospf-link-attributes
grouping ospf-prefix-attributes {
container ospf-prefix-attributes {
leaf forwarding-address {
when "../../l3t:l3-unicast-igp-topology/l3t:ospf/l3t:router-type/l3t:asbr";
type inet:ipv4-address;
}
}
}
augment "/l3t:igp-node-event" {
uses ospf-topology-type;
uses ospf:ospf-node-attributes;
}
augment "/l3t:igp-link-event" {
uses ospf-topology-type;
uses ospf:ospf-link-attributes;
}
augment "/l3t:igp-prefix-event" {
uses ospf-topology-type;
uses ospf:ospf-prefix-attributes;
}
}