blob: 99641915c00efc62aaa48b9f818656aa7b4eb617 [file] [log] [blame]
submodule openconfig-ospfv2-lsdb {
belongs-to openconfig-ospfv2 {
prefix "oc-ospfv2";
}
// import some basic types
import ietf-yang-types { prefix "yang"; }
import ietf-inet-types { prefix "inet"; }
import openconfig-types { prefix "oc-types"; }
import openconfig-extensions { prefix "oc-ext"; }
import openconfig-ospf-types { prefix "oc-ospf-types"; }
// meta
organization "OpenConfig working group";
contact
"OpenConfig working group
www.openconfig.net";
description
"An OpenConfig model for the Open Shortest Path First (OSPF)
version 2 link-state database (LSDB)";
oc-ext:openconfig-version "0.1.0";
revision "2017-02-28"{
description
"Initial public release of OSPFv2";
reference "0.1.0";
}
revision "2016-06-24" {
description
"Initial revision";
reference "0.0.1";
}
grouping ospfv2-lsdb-common-prefix-properties {
description
"Common properties used in the LSDB that relate to IPv4 prefixes";
leaf prefix-length {
type uint8 {
range "0..32";
}
description
"The length of the IPv4 prefix contained in the Extended Prefix LSA";
}
leaf address-family {
// TODO: should this be an identity?
type enumeration {
enum IPV4_UNICAST {
value 0;
description
"The prefix contained within the Extended Prefix LSA is an IPv4
unicast prefix";
}
}
description
"The address family of the prefix contained in the Extended Prefix
LSA";
}
}
grouping ospfv2-lsdb-common-link-specification {
description
"Generic attributes used to identify links within OSPFv2";
leaf link-id {
type yang:dotted-quad;
description
"The identifier for the link specified. The value of the link
identifier is dependent upon the type of the LSA. The value is
specified to be, per sub-type:
1) Neighbouring router's router ID.
2) IP address of DR.
3) IP network address.
4) Neighbouring router router's ID.";
}
leaf link-data {
type union {
type yang:dotted-quad;
type uint32;
}
description
"The data associated with the link type. The value is
dependent upon the subtype of the LSA. When the connection is
to a stub network it represents the mask; for p2p connections
that are unnumbered it represents the ifIndex value of the
router's interface; for all other connections it represents
the local system's IP address";
}
}
grouping ospfv2-lsdb-common-unknown-tlv {
description
"A generic specification of a TLV to be used when the
value cannot be decoded by the local system";
leaf type {
type uint16;
description
"The type value of the unknown TLV";
}
leaf length {
type uint16;
description
"The length value of the unknown TLV";
}
leaf value {
type binary;
description
"The value portion of the unknwon TLV";
}
}
grouping ospfv2-lsdb-common-unknown-tlv-structure {
description
"A generic specification of an unknown TLV";
container unknown-tlv {
description
"An unknown TLV within the context. Unknown TLVs are
defined to be the set of TLVs that are not modelled
within the OpenConfig model, or are unknown to the
local system such that it cannot decode their value.";
container state {
description
"Contents of an unknown TLV within the LSA";
uses ospfv2-lsdb-common-unknown-tlv;
}
}
}
grouping ospfv2-lsdb-common-unknown-subtlv-structure {
description
"A generic specification of an unknown TLV";
container unknown-subtlv {
description
"An unknown SubTLV within the context. Unknown Sub-TLV
are defined to be the set of SubTLVs that are not modelled
by the OpenConfig schema, or are unknown to the local system
such that it cannot decode their value.";
container state {
description
"Contents of an unknown TLV within the LSA";
uses ospfv2-lsdb-common-unknown-tlv;
}
}
}
grouping ospfv2-lsdb-common-tos-metric {
description
"Common LSDB LSA parameters for type of service and metric";
leaf tos {
type uint8;
description
"OSPF encoding of the type of service referred to by this
LSA. Encoding for OSPF TOS are described in RFC2328.";
}
leaf metric {
type oc-ospf-types:ospf-metric;
description
"The metric value to be used for the TOS specified. This value
represents the cost of use of the link for the specific type
of service.";
}
}
grouping ospfv2-lsdb-common-sr-sid-spec {
description
"Re-usable specification of a segment routing SID";
leaf sid-type {
type oc-ospf-types:sr-sid-type;
description
"The type of the value contained within the sub-TLV";
}
leaf sid-value {
type uint32;
description
"The value of the binding included within the sub-TLV. The type of
this binding is indicated by the type leaf.";
}
}
grouping ospfv2-lsdb-area-state {
description
"Per-area operational state parameters for an OSPFv2 area";
leaf identifier {
type oc-ospf-types:ospf-area-identifier;
description
"An identifier for the area, expressed as a dotted quad or
an unsigned 32-bit integer";
}
}
grouping ospfv2-lsdb-area-lsa-type-state {
description
"Per-LSA type operational state parameters for an OSPFv2 area";
leaf type {
type identityref {
base "oc-ospf-types:OSPF_LSA_TYPE";
}
description
"The type of LSA being described. The type of the LSA is
expressed as a canonical name.";
}
}
grouping ospfv2-lsdb-area-lsa-state {
description
"Generic parameters of an OSPFv2 LSA";
leaf link-state-id {
type yang:dotted-quad;
description
"The Link State ID for the specified LSA type. The exact
defined value of the Link State ID is dependent on the LSA
type.";
}
leaf advertising-router {
type yang:dotted-quad;
description
"The router ID of the router that originated the LSA";
}
leaf sequence-number {
type int32;
description
"A signed 32-bit integer used to detect old and duplicate
LSAs. The greater the sequence number the more recent the
LSA.";
}
leaf checksum {
type uint16;
description
"The checksum of the complete contents of the LSA excluding
the age field.";
}
leaf age {
type uint16;
units seconds;
description
"The time since the LSA's generation in seconds";
}
}
grouping ospfv2-lsdb-router-lsa-structure {
description
"Structural grouping for Router LSA contents within the LSDB";
container router-lsa {
description
"Contents of the router LSA";
container state {
description
"State parameters of the router LSA";
uses ospfv2-lsdb-router-lsa-state;
}
uses ospfv2-lsdb-generic-lsa-tos-metric-structure;
}
}
grouping ospfv2-lsdb-generic-lsa-tos-metric-structure {
description
"Grouping including a generic TOS/metric structure for an
LSA";
container types-of-service {
description
"Breakdown of LSA contents specifying multiple
TOS values";
list type-of-service {
key "tos";
description
"Per-type of service parameters for the LSA";
leaf tos {
type leafref {
path "../state/tos";
}
description
"Reference to the type of service identifier which is
specified in the LSA";
}
container state {
description
"Per-TOS parameters for the LSA";
uses ospfv2-lsdb-generic-lsa-tos-metric-state;
}
}
}
}
grouping ospfv2-lsdb-network-lsa-structure {
description
"Structural grouping for Network LSA contents within the LSDB";
container network-lsa {
description
"Contents of the network LSA";
container state {
description
"State parameters of the network LSA";
uses ospfv2-lsdb-network-lsa-state;
}
}
}
grouping ospfv2-lsdb-summary-lsa-structure {
description
"Structural grouping for the Summary LSA contents within the
LSDB";
container summary-lsa {
description
"Contents of the summary LSA";
container state {
description
"State parameters of the summary LSA";
uses ospfv2-lsdb-summary-lsa-state;
}
uses ospfv2-lsdb-generic-lsa-tos-metric-structure;
}
}
grouping ospfv2-lsdb-asexternal-lsa-structure {
description
"Structural grouping for the AS External LSA contents within
the LSDB";
container as-external-lsa {
description
"Contents of the AS External LSA";
container state {
description
"State parameters for the AS external LSA";
uses ospfv2-lsdb-asexternal-lsa-state;
}
container types-of-service {
description
"Breakdown of External LSA contents specifying multiple
TOS values";
list type-of-service {
key "tos";
description
"Per-type of service parameters for the AS External LSA";
leaf tos {
type leafref {
path "../state/tos";
}
description
"Reference to the type of service identifier which is
specified in the AS External LSA";
}
container state {
description
"Per-TOS parameters for the LSA";
uses ospfv2-lsdb-asexternal-tos-state;
}
}
}
}
}
grouping ospfv2-lsdb-nssa-external-lsa-structure {
description
"Structural grouping for the NSSA External LSA contents within
the LSDB";
container nssa-external-lsa {
description
"Contents of the NSSA External LSA";
container state {
description
"State parameters for the AS external LSA";
// Type 7 LSAs are are a super-set of Type 5 LSAs so we simply
// include the Type 5
uses ospfv2-lsdb-asexternal-lsa-state;
uses ospfv2-lsdb-nssa-external-lsa-state;
}
container types-of-service {
description
"Breakdown of the NSSA External LSA contents specifying multiple
TOS values";
list type-of-service {
key "tos";
description
"Per-type of service parameters for the NSSA external LSA";
leaf tos {
type leafref {
path "../state/tos";
}
description
"Reference to the type of services identifier which is specified
in the NSSA External LSA";
}
container state {
description
"Per-TOS parameters for the LSA";
uses ospfv2-lsdb-asexternal-tos-state;
}
}
}
}
}
grouping ospfv2-lsdb-opaque-lsa-structure {
description
"Structural grouping for Opaque LSA contents within the LSDB";
container opaque-lsa {
description
"Contents of the opaque LSA";
container state {
description
"State parameters for the opaque LSA";
uses ospfv2-lsdb-opaque-lsa-state;
}
container traffic-engineering {
when "../state/type = 'TRAFFIC_ENGINEERING'" {
description
"Include the traffic-engineering information when
the Opaque LSA being described is a Traffic Engineering
LSA";
}
description
"Contents of the Traffic Engineering Opaque LSA";
container tlvs {
description
"The TLVs contained in the TE Opaque LSA";
list tlv {
// this is an unkeyed list
description
"The Type-Length-Value tuples included in the TE LSA";
container state {
description
"The contents of the TLV tuple within the TE LSA";
uses ospfv2-lsdb-opaque-lsa-te-tlv-state;
}
uses ospfv2-lsdb-common-unknown-tlv-structure;
container router-address {
when "../state/type = 'TE_ROUTER_ADDRESS'" {
description
"Include the router address container only when the type
of the TLV is Router Address";
}
description
"Parameters included in the Router Address TLV";
container state {
description
"State parameters of the router address TLV";
uses ospfv2-lsdb-opaque-te-router-address-state;
}
}
container link {
when "../state/type = 'TE_ROUTER_LINK'" {
description
"Include the link container only when the type of the
TLV describes a traffic engineering link";
}
description
"Parameters included in the Link TLV";
container sub-tlvs {
description
"Sub-TLVs included in the Link TLV";
list sub-tlv {
// unkeyed list
description
"The Sub-TLVs included within the Traffic Engineering
LSA's sub-TLV";
container state {
description
"State parameters of the Link Sub-TLV";
uses ospfv2-lsdb-opaque-te-link-state;
}
uses ospfv2-lsdb-common-unknown-subtlv-structure;
container unreserved-bandwidths {
description
"The unreserved link bandwidths for the Traffic
Engineering LSA - utilised when the sub-TLV type
indicates that the sub-TLV describes unreserved
bandwidth";
list unreserved-bandwidth {
key "priority";
description
"The unreserved bandwidth at each priority level";
leaf priority {
type leafref {
path "../state/priority";
}
description
"A reference to the priority level being described";
}
container state {
description
"State parameters relating to the unreserved
bandwidth of the link being described";
uses ospfv2-lsdb-opaque-te-link-unreserved-bw-state;
}
}
}
container administrative-groups {
description
"The administrative groups that are set for the
Traffic Engineering LSA - utilised when the sub-TLV type
indicates that the sub-TLV describes administrative
groups";
list admin-group {
key "bit-index";
description
"The administrative group described within the
sub-TLV";
leaf bit-index {
type leafref {
path "../state/bit-index";
}
description
"A reference to the bit index being described";
}
container state {
description
"State parameters relating to the administrative
groups being described for the link";
uses ospfv2-lsdb-opaque-te-link-admin-group-state;
}
}
}
}
}
}
container node-attribute {
when "../state/type = 'TE_NODE_ATTRIBUTE'" {
description
"Include the node-attribute container only when the type of
the TLV describes a node attribute";
}
description
"Parameters included in the Node Attribute TLV";
container sub-tlvs {
description
"Sub-TLVs of the Node Attribute TLV of the Traffic
Engineering LSA";
list sub-tlv {
// unkeyed list
description
"List of the Sub-TLVs contained within the Node Attribute
TLV";
container state {
description
"State parameters of the Node Attribute TLV sub-TLV";
uses ospfv2-lsdb-opaque-te-node-attribute-state;
}
uses ospfv2-lsdb-common-unknown-subtlv-structure;
}
}
}
// A set of TLVs are omitted here - based on operational
// requirements, these are:
// * link-local
// * ipv6-address (OSPFv3 only)
// * optical-node-property
}
}
} // traffic-engineering
container grace-lsa {
when "../state/type = 'GRACE_LSA'" {
description
"Include the grace-lsa container when the opaque LSA is specified
to be of that type.";
}
description
"The Grace LSA is utilised when a remote system is undergoing
graceful restart";
container tlvs {
description
"TLVs of the Grace LSA";
list tlv {
description
"TLV entry in the Grace LSA, advertised by a system undergoing
graceful restart";
// unkeyed list
container state {
description
"Per-TLV state parameters of the Grace LSA";
uses ospfv2-lsdb-opaque-grace-state;
}
uses ospfv2-lsdb-common-unknown-tlv-structure;
}
}
} // grace LSA
container router-information {
when "../state/type = 'ROUTER_INFORMATION_LSA'" {
description
"Include the router-information container when the opaque LSA
type is specified to be an RI LSA";
}
description
"The router information LSA is utilised to advertise capabilities
of a system to other systems who receive the LSA";
container tlvs {
description
"The TLVs included within the Router Information LSA.";
list tlv {
description
"TLV entry in the Router Information LSA";
// unkeyed list
container state {
description
"Per-TLV state parameters of the RI LSA";
uses ospfv2-lsdb-opaque-ri-state;
}
uses ospfv2-lsdb-common-unknown-tlv-structure;
container informational-capabilities {
when "../state/type = 'RI_INFORMATIONAL_CAPABILITIES'" {
description
"Include the informational capabilities specification when
the TLV of the RI LSA is specified to be of this type";
}
description
"Information related to the capabilities of the advertising
router within the scope that the opaque RI LSA is being
advertised";
container state {
description
"State parameters of the informational capabilitis of the
RI LSA";
uses ospfv2-lsdb-opaque-ri-informational-state;
}
}
container node-administrative-tags {
when "../state/type = 'RI_NODE_ADMIN_TAG'" {
description
"Include the node administrative tags specification when
the TLV of the RI LSA is specified to be of this type";
}
description
"Per-node administrative tags associated with the local system
specified by the operator";
container state {
description
"State parameters of the node administrative tags advertised
in the RI LSA";
uses ospfv2-lsdb-opaque-ri-admintag-state;
}
}
container segment-routing-algorithm {
when "../state/type = 'RI_SR_ALGORITHM'" {
description
"Include the segment routing algorithm specific parameters when
the TLV of the RI LSA is specified to be of this type";
}
description
"The algorithms supported for Segment Routing by the local system";
container state {
description
"State parameters of the Segment Routing algorithm advertised in
the RI LSA";
uses ospfv2-lsdb-opaque-ri-sralgo-state;
}
}
container segment-routing-sid-label-range {
when "../state/type = 'RI_SR_SID_LABEL_RANGE'" {
description
"Include the segment routing SID/Label range TLV specific state when
the TLV of the RI LSA is specified to be of this type";
}
description
"The Segment Identifier (SID) or label ranges that are supported by
the local system for Segment Routing";
container tlvs {
description
"Sub-TLVs of the SID/Label range TLV of the RI LSA";
list tlv {
// unkeyed list
description
"Sub-TLVs of the SID/Label range TLV";
uses ospfv2-lsdb-common-unknown-tlv-structure;
container state {
description
"State parameters of the sub-TLVs of the SR/Label range TLV";
uses ospfv2-lsdb-opaque-ri-srrange-tlv-state;
}
container sid-label {
description
"Sub-TLV used to advertise the SID or label associated with the
subset of the SRGB being advertised";
container state {
description
"State parameters of the SID/Label sub-TLV of the SR/Label
range TLV of the RI LSA";
uses ospfv2-lsdb-opaque-ri-srrange-sid-label-tlv-state;
}
}
}
}
}
}
}
} // router-information
container extended-prefix {
when "../state/type = 'OSPFV2_EXTENDED_PREFIX'" {
description
"Include the extended-prefix container when the opaque LSA
type is specified to be an extended prefix LSA";
}
description
"An OSPFv2 Extended Prefix Opaque LSA, used to encapsulate
TLV attributes associated with a prefix advertised in OSPF.";
reference "RFC7684 - OSPFv2 Prefix/Link Attribute Advertisement";
container state {
description
"State parameters of the Extended Prefix LSA";
uses ospfv2-lsdb-extended-prefix-state;
}
container tlvs {
description
"TLVs contained within the Extended Prefix LSA";
list tlv {
// unkeyed list
description
"A TLV contained within the extended prefix LSA";
container state {
description
"State parameters relating to the sub-TLV of the extended
prefix LSA";
uses ospfv2-lsdb-extended-prefix-tlv-state;
}
container extended-prefix-range {
when "../state/type = 'EXTENDED_PREFIX_RANGE'" {
description
"Include the prefix range sub-TLV when the type of the
sub-TLV is specified as such";
}
description
"State parameters relating to the extended prefix range
sub-TLV of the extended prefix LSA";
container state {
description
"State parameters relating to the Extended Prefix Range
sub-TLV of the Extended Prefix LSA";
uses ospfv2-lsdb-extended-prefix-range-state;
}
}
container prefix-sid {
when "../state/type = 'PREFIX_SID'" {
description
"Include parameters relating to the Prefix SID when the type
of the sub-TLV is indicated as such";
}
description
"State parameters relating to the Prefix SID sub-TLV of the
extended prefix LSA";
container state {
description
"State parameters relating to the Prefix SID sub-TLV of the
extended prefix LSA";
uses ospfv2-lsdb-extended-prefix-prefix-sid-state;
}
} // prefix-sid
container sid-label-binding {
when "../state/type = 'SID_LABEL_BINDING'" {
description
"Include parameters relating to the SID/Label binding sub-TLV
only when the type is indicated as such";
}
description
"State parameters relating to the SID/Label binding sub-TLV
of the extended prefix LSA";
container state {
description
"State parameters relating to the SID/Label binding sub-TLV
of the extended prefix LSA";
uses ospfv2-lsdb-extended-prefix-sid-label-binding-state;
}
container tlvs {
description
"TLVs contained within the SID/Label Binding sub-TLV of the
SID/Label Binding TLV";
list tlv {
description
"A TLV contained within the SID/Label Binding sub-TLV";
container state {
description
"State parameters relating to the SID/Label Binding
sub-TLV";
uses ospfv2-lsdb-extended-prefix-sid-label-binding-tlv-state;
}
container sid-label-binding {
when "../state/type = 'SID_LABEL_BINDING'" {
description
"Include the SID/Label Binding sub-TLV parameters only
when the type is indicated as such";
}
description
"Parameters for the SID/Label Binding sub-TLV of the
SID/Label binding TLV";
container state {
description
"State parameteres relating to the SID/Label Binding
sub-TLV";
uses ospfv2-lsdb-extprefix-sid-label-binding-state;
}
} // sid-label-binding
container ero-metric {
when "../state/type = 'ERO_METRIC'" {
description
"Include the ERO Metric sub-TLV parameters only when
the type is indicated as such";
}
description
"Parameters for the ERO Metric Sub-TLV of the SID/Label
binding TLV";
container state {
description
"State parameters relating to the ERO Metric Sub-TLV of
the SID/Label binding TLV";
uses ospfv2-lsdb-extprefix-sid-label-ero-metric-state;
}
} // ero-metric
container ero-path {
when "../state/type = 'ERO_PATH'" {
description
"Include the ERO Path sub-TLV parameters only when the
type is indicated as such";
}
description
"Parameters for the ERO Path Sub-TLV of the SID/Label
binding TLV";
container segments {
description
"Segments of the path described within the SID/Label
Binding sub-TLV";
list segment {
description
"A segment of the path described within the sub-TLV";
container state {
description
"State parameters relating to the path segment
contained within the sub-TLV";
uses ospfv2-lsdb-extprefix-sid-lbl-ero-path-seg-state;
}
container ipv4-segment {
when "../state/type = 'IPV4_SEGMENT'" {
description
"Include the IPv4 segment only when the type is
indicated as such";
}
description
"Details of the IPv4 segment interface of the ERO";
container state {
description
"State parameters of the IPv4 segment of the ERO";
uses ospfv2-lsdb-extprefix-sid-lbl-ero-ipv4-state;
}
} // ipv4-segment
container unnumbered-hop {
when "../state/type = 'UNNUMBERED_INTERFACE_SEGMENT'" {
description
"Include the unnumbered segment only when the
type is indicated as such";
}
description
"Details of the unnumbered interface segment of the
ERO";
container state {
description
"State parameters of the unnumbered interface
segment of the ERO";
uses ospfv2-lsdb-extprefix-sid-lbl-ero-unnum-state;
}
} // unnumbered-hop
} // tlv
} // tlvs
}
}
}
} // sid-label-binding
uses ospfv2-lsdb-common-unknown-tlv-structure;
}
}
} // extended-prefix
container extended-link {
description
"The OSPFv2 Extended Link Opaque LSA, used to encapsulate TLV
attributes associated with a link advertised in OSPF.";
reference "RFC7684 - OSPFv2 Prefix/Link Attribute Advertisement";
container state {
description
"State parameters of the Extended Link LSA";
uses ospfv2-lsdb-extended-link-state;
}
container tlvs {
description
"TLVs contained within the Extended Link LSA";
list tlv {
description
"List of TLVs within the Extended Link LSA";
container state {
description
"State parameters relating to the sub-TLV of the extended link
LSA";
uses ospfv2-lsdb-extended-link-tlv-state;
}
uses ospfv2-lsdb-common-unknown-tlv-structure;
container adjacency-sid {
when "../state/type = 'ADJACENCY_SID'" {
description
"Include the Adjacency SID parameters only when the type of
the sub-TLV is indicated as such";
}
description
"Parameters relating to an Adjacency SID sub-TLV of the
extended link LSA";
container state {
description
"State parameters relating to an Adjacency SID";
uses ospfv2-lsdb-extended-link-adj-sid-state;
}
}
}
}
} // extended-link
uses ospfv2-lsdb-common-unknown-tlv-structure;
}
}
grouping ospfv2-lsdb-generic-lsa-tos-metric-state {
description
"Per-TOS state parameters for the Router LSA";
uses ospfv2-lsdb-common-tos-metric;
}
grouping ospfv2-lsdb-router-lsa-state {
description
"Parameters of the router LSA";
leaf type {
type identityref {
base "oc-ospf-types:ROUTER_LSA_TYPES";
}
description
"The sub-type of the Router LSA.";
}
uses ospfv2-lsdb-common-link-specification;
leaf metric {
type oc-ospf-types:ospf-metric;
description
"The cost of utilising the link specified independent of TOS";
}
leaf number-links {
type uint16;
description
"The number of links that are described within the LSA";
}
leaf number-tos-metrics {
type uint16;
description
"The number of different TOS metrics given for this link, not
including the link metric (which is referred to as TOS 0).";
}
}
grouping ospfv2-lsdb-network-lsa-state {
description
"Parameters of the Network LSA";
leaf network-mask {
type uint8 {
range "0..32";
}
description
"The mask of the network described by the Network LSA
represented as a CIDR mask.";
}
leaf-list attached-router {
type yang:dotted-quad;
description
"A list of the router ID of the routers that are attached to
the network described by the Network LSA";
}
}
grouping ospfv2-lsdb-summary-lsa-state {
description
"Parameters of the Summary LSA";
leaf network-mask {
type uint8 {
range "0..32";
}
description
"The mask of the network described by the Summary LSA
represented as a CIDR mask.";
}
}
grouping ospfv2-lsdb-asexternal-lsa-common-parameters {
description
"Common parameters that are used for OSPFv2 AS External LSAs";
leaf forwarding-address {
type inet:ipv4-address-no-zone;
description
"The destination to which traffic for the external prefix
should be advertised. When this value is set to 0.0.0.0 then
traffic should be forwarded to the LSA's originator";
}
leaf external-route-tag {
type uint32;
description
"An opaque tag that set by the LSA originator to carry
information relating to the external route";
}
}
grouping ospfv2-lsdb-asexternal-lsa-state {
description
"Parameters for the AS External LSA";
leaf mask {
type uint8 {
range "0..32";
}
description
"The subnet mask for the advertised destination";
}
leaf metric-type {
type enumeration {
enum "TYPE_1" {
description
"When the metric of a prefix is specified as Type 1
then it is considered to be expressed in the same units as
the link-state metrics carried in OSPF. That is to say
that the metric advertised is directly compared to the
internal cost";
}
enum "TYPE_2" {
description
"When the metric of a prefix is specified as Type 2 then
it is considered to be expressed as a cost in addition to
that of the link-state metric to the advertising router.
That is to say that the metric is considered to be the
cost to the advertising router plus the advertised metric
for the external entity";
}
}
description
"The type of metric included within the AS External LSA.";
}
leaf metric {
type oc-ospf-types:ospf-metric;
description
"The cost to reach the external network specified. The exact
interpretation of this cost is dependent on the type of
metric specified";
}
uses ospfv2-lsdb-asexternal-lsa-common-parameters;
}
grouping ospfv2-lsdb-asexternal-tos-state {
description
"Per-TOS parameters for the AS External LSA";
uses ospfv2-lsdb-asexternal-lsa-common-parameters;
uses ospfv2-lsdb-common-tos-metric;
}
grouping ospfv2-lsdb-nssa-external-lsa-state {
description
"Operational state parameters specific to the NSSA External
LSA";
leaf propagate {
type boolean;
description
"When this bit is set to true, an NSSA border router will
translate a Type 7 LSA (NSSA External) to a Type 5 LSA
(AS External).";
reference "RFC3101, Section 2.3";
}
}
grouping ospfv2-lsdb-opaque-lsa-state {
description
"Operational state parameters specific to an Opaque LSA";
leaf scope {
type enumeration {
enum LINK {
description
"The scope of the LSA is the current link. The LSA
is not flooded beyond the local network. This
enumeration denotes a Type 9 LSA.";
}
enum AREA {
description
"The scope of the LSA is the local area. The LSA
is not flooded beyond the area of origin. This
enumeration denotes a Type 10 LSA.";
}
enum AS {
description
"The scope of the LSA is the local autonomous
system (AS). The flooding domain is the same
as a Type 5 LSA - it is not flooded into
stub areas or NSSAs. This enumeration denotes a
Type 11 LSA.";
}
}
description
"The scope of the opaque LSA. The type of the LSA
indicates its scope - the value of this leaf
determines both the flooding domain, and the type
of the LSA.";
}
leaf type {
type identityref {
base "oc-ospf-types:OSPF_OPAQUE_LSA_TYPE";
}
description
"The Opaque Type of the LSA. This value is used to
indicate the type of data carried by the opaque LSA";
}
}
grouping ospfv2-lsdb-opaque-lsa-te-tlv-state {
description
"The contents of the Traffic Engineering LSA";
leaf type {
type identityref {
base "oc-ospf-types:OSPF_TE_LSA_TLV_TYPE";
}
description
"The type of TLV within the Traffic Engineering LSA";
}
}
grouping ospfv2-lsdb-opaque-te-unknown-state {
description
"The contents of the unknown TLV within the Traffic Engineering LSA";
uses ospfv2-lsdb-common-unknown-tlv;
}
grouping ospfv2-lsdb-opaque-te-link-state {
description
"The contents of the sub-TLVs of a Traffic Engineering LSA Link TLV";
leaf type {
type union {
type identityref {
base "oc-ospf-types:OSPF_TE_LINK_TLV_TYPE";
}
type enumeration {
enum UNKNOWN {
description
"The sub-TLV received in the LSA is unknown to the local
system";
}
}
}
description
"The sub-TLV type specified in the Link TLV. When the value is
known by the local system, a canonical name of the sub-TLV is utilised
- the special UNKNOWN value indicates that the system did not
support the sub-TLV type received in the LSA.";
}
leaf unknown-type {
when "../type = 'UNKNOWN'" {
description
"Include the unknown type field only when the sub-TLV was not
known to the local system";
}
type uint16;
description
"The value of the type field of an unknown sub-TLV";
}
leaf unknown-value {
when "../type = 'UNKNOWN'" {
description
"Include the unknown value field only when the sub-TLV was not
known to the local system";
}
type binary;
description
"The binary contents of the unknown TLV";
}
leaf link-type {
when "../type = 'TE_LINK_TYPE'" {
description
"Include the link-type field only when the sub-TLV type was a TE
link type";
}
type enumeration {
enum POINT_TO_POINT {
description
"The link being described by the TE LSA Link sub-TLV is a
point-to-point link to exactly one other system";
}
enum MULTI_ACCESS {
description
"The link being described by the TE LSA Link sub-TLV is a
multi-access link that supports connectivity to multiple remote
systems";
}
enum UNKNOWN {
description
"The link type received was unknown to the local system";
}
}
description
"The type of the link that is being described by the TE LSA Link
sub-TLV";
}
leaf link-id {
when "../type = 'TE_LINK_ID'" {
description
"Include the link ID field only when the sub-TLV type was a TE
Link identifier";
}
type yang:dotted-quad;
description
"The ID of the remote system. For point-to-point links, this is the
router ID of the neighbor. For multi-access links it is the address
of the designated router.";
}
leaf-list local-ip-address {
when "../type = 'TE_LINK_LOCAL_IP'" {
description
"Include the local IP address field only when the sub-TLV type was
a local IP address";
}
type inet:ipv4-address-no-zone;
description
"The IP address(es) of the local system that correspond to the
specified TE link";
}
leaf-list remote-ip-address {
when "../type = 'TE_LINK_REMOTE_IP'" {
description
"Include the remote IP address field only when the sub-TLV type was
a remote IP address";
}
type inet:ipv4-address-no-zone;
description
"The IP address(es) of the remote systems that are attached to the
specified TE link";
}
leaf metric {
when "../type = 'TE_LINK_METRIC'" {
description
"Include the traffic engineering metric only when the sub-TLV type
is a TE metric";
}
type uint32;
description
"The metric of the link that should be used for traffic engineering
purposes. This link may be different than the standard OSPF link
metric.";
}
leaf maximum-bandwidth {
when "../type = 'TE_LINK_MAXIMUM_BANDWIDTH'" {
description
"Include the traffic engineering metric only when the sub-TLV type
is the maximum bandwidth";
}
type oc-types:ieeefloat32;
units "bytes per second";
description
"The maximum bandwidth of the link. This value reflects the actual
bandwidth of the link expressed asn IEEE 32-bit floating point
number";
}
leaf maximum-reservable-bandwidth {
when "../type = 'TE_LINK_MAXIUMUM_RESERVABLE_BANDWIDTH'" {
description
"Include the maximum reservable bandwidth field only when the
sub-TLV type is the maximum reservable bandwidth";
}
type oc-types:ieeefloat32;
units "bytes per second";
description
"The maximum reservable bandwidth for the link. This value represents
the total bandwidth which may be used for traffic engineering
purposes. The value may exceed the maximum-bandwidth value
in cases where the link is oversubscribed. The value is reflected as
a 32-bit IEEE floating-point number";
}
}
grouping ospfv2-lsdb-opaque-te-link-unreserved-bw-state {
description
"The per-priority unreserved bandwidth described within the unreserved
bandwidth sub-TLV of the Link TLV of the Traffic Engineering LSA";
leaf priority {
type uint8 {
range "0..7";
}
description
"The priority level being described";
}
leaf unreserved-bandwidth {
type oc-types:ieeefloat32;
description
"The unreserved bandwidth for at priority level P, where P is
equal to the priority of the current list entry. The reservable
bandwidth at priority P is equal to the sum of the reservable
bandwidth at all levels 0..P.";
}
}
grouping ospfv2-lsdb-opaque-te-link-admin-group-state {
description
"Per bit administrative group status";
leaf bit-index {
type uint8 {
range "0..31";
}
description
"The index of the bit within the 32-bit administrative group field
of the Administrative Group sub-TLV of the Traffic Engineering LSA";
}
leaf set {
type boolean;
default false;
description
"Whether the bit is set within the administrative group field";
}
}
grouping ospfv2-lsdb-opaque-te-node-attribute-state {
description
"State parameters relating to the Traffic Engineering Node Attribute
TLV of the Traffic Engineering LSA";
leaf type {
type union {
type identityref {
base "oc-ospf-types:TE_NODE_ATTRIBUTE_TLV_TYPE";
}
type enumeration {
enum UNKNOWN {
description
"The sub-TLV type received within the TE LSA Node Attribute TLV
was unknown the the local system";
}
}
}
description
"The type of the sub-TLV of the Node Attribute TLV contained within
the TE LSA. If the local system can interpret the value received the
canonical name of the type is utilised, otherwise the special UNKNOWN
value is used";
}
leaf-list local-ipv4-addresses {
when "../type = 'NODE_IPV4_LOCAL_ADDRESS'" {
description
"Include the local IPv4 addresses when the type of the sub-TLV
indicates that this is the contained data";
}
type inet:ipv4-prefix;
description
"The local IPv4 addresses of the node expressed in CIDR notation";
}
leaf-list local-ipv6-addresses {
when "../type = 'NODE_LOCAL_IPV6_ADDRESS'" {
description
"Include the local IPv6 addresses when the type of the sub-TLV
indicfates that this is the contained data";
}
type inet:ipv6-prefix;
description
"The local IPv6 addreses of the node";
}
}
grouping ospfv2-lsdb-opaque-te-router-address-state {
description
"The contents of the value field of the Router Address TLV of the
Traffic Engineering LSA.";
leaf address {
type inet:ipv4-address-no-zone;
description
"A stable IP address of the advertising router, that is always
reachable when the router is connected to the network. Typically this
is a loopback address.";
}
}
grouping ospfv2-lsdb-opaque-grace-state {
description
"State parameters on a per-TLV basis of the Grace LSA";
leaf type {
type identityref {
base "oc-ospf-types:GRACE_LSA_TLV_TYPES";
}
description
"The type of the sub-TLV received within the Grace LSA";
}
leaf period {
when "../type = 'GRACE_PERIOD'" {
description
"Include the period specification when the sub-TLV type is indicated
to be of this type";
}
type uint32;
units seconds;
description
"The number of seconds that the router's neighbors should advertise
the local system as fully adjacent regardless of database
synchronization state";
reference "RFC3623";
}
leaf reason {
when "../type = 'GRACE_RESTART_REASON'" {
description
"Include the restart reason when the sub-TLV type specifies this
is included";
}
type enumeration {
enum UNKNOWN {
value 0;
description
"The reason for the graceful restart is unknown";
}
enum SOFTWARE_RESTART {
value 1;
description
"The local system is restarting due to a software component
restart";
}
enum SOFTWARE_RELOAD_UPGRADE {
value 2;
description
"The local system is restarting due to a software reload or
upgrade";
}
enum CONTROL_PROCESSOR_SWITCH {
value 3;
description
"The local system is restarting due to a switch to a redundant
control plane element";
}
}
description
"The reason for the graceful restart event occurring, as advertised
by the restarting system";
reference "RFC3623";
}
leaf ip-interface-address {
when "../type = 'GRACE_IP_INTERFACE_ADDRESS'" {
description
"Include the interface address when the sub-TLV type specifies that
it is included";
}
type inet:ipv4-address-no-zone;
description
"The restarting system's IP address on the interface via which the
Grace LSA is being advertised.";
}
}
grouping ospfv2-lsdb-opaque-ri-state {
description
"State parameters of the Router Information Opaque LSA";
leaf type {
type union {
type identityref {
base "oc-ospf-types:RI_LSA_TLV_TYPES";
}
type enumeration {
enum UNKNOWN {
description
"The TLV received within the RI LSA is unknown";
}
}
}
description
"The type of sub-TLV of the Router Information opaque LSA";
}
}
grouping ospfv2-lsdb-opaque-ri-informational-state {
description
"State parmaeters of the Router Information Informational Capabilities
sub-TLV";
leaf graceful-restart-capable {
type boolean;
default false;
description
"When this leaf is set to true, the advertising system is capable of
OSPF graceful restart.";
}
leaf graceful-restart-helper {
type boolean;
default false;
description
"When this leaf is set to true, the advertising system is capable of
being a helper for OSPF graceful restart";
}
leaf stub-router {
type boolean;
default false;
description
"When this leaf is set to true, the advertising system is able to
advertise its status as a stub router";
reference "RFC6987";
}
leaf traffic-engineering {
type boolean;
default false;
description
"When this leaf is set to true, the advertising system supports OSPFv2
traffic engineering capabilities";
}
leaf point-to-point-over-lan {
type boolean;
default false;
description
"When this leaf is set to true, the advertising system supports treating
LAN adjacencies as though they were point to point";
reference "RFC5309";
}
leaf experimental-te {
type boolean;
default false;
description
"When this leaf is set to ture, the advertising system supports the
experimental extensions to OSPF for TE described in RFC4973";
reference "RFC4973";
}
}
grouping ospfv2-lsdb-opaque-ri-admintag-state {
description
"State parameters relating to the administrative tags specified for
a node within the RI LSA";
leaf-list administrative-tags {
type uint32;
description
"The set of administrative tags assigned to the local system by
the network operator. The meaning of these tags is opaque to OSPF
- and their interpretation is per-domain specific";
reference "RFC7777";
}
}
grouping ospfv2-lsdb-opaque-ri-unknown-state {
description
"State parameters relating to an unknown TLV within the RI LSA";
uses ospfv2-lsdb-common-unknown-tlv;
}
grouping ospfv2-lsdb-opaque-ri-sralgo-state {
description
"State parameters relating to the SR Algorithms TLV of the RI LSA";
leaf-list supported-algorithms {
type identityref {
base "oc-ospf-types:SR_ALGORITHM";
}
description
"A list of the algorithms that are supported for segment routing
by the advertising system";
}
}
grouping ospfv2-lsdb-opaque-ri-srrange-tlv-state {
description
"State parameters relating to the SR SID/Label range TLV of the
RI LSA";
leaf type {
type union {
type identityref {
base "oc-ospf-types:OSPF_RI_SR_SID_LABEL_TLV_TYPES";
}
type enumeration {
enum UNKNOWN {
description
"The type of the sub-TLV advertised with the SID/Label range
TLV of the RI LSA is unknown to the receiving system";
}
}
}
description
"The type of the sub-TLV received by the local system within the
SR SID/Label Range TLV of the RI LSA";
}
leaf range-size {
type uint32 {
range "0..16777216";
}
description
"The number of entries within the range being described within the
SID/Label range TLV";
}
}
grouping ospfv2-lsdb-opaque-ri-srrange-sid-label-tlv-state {
description
"State parameters relating to the SR SID/Label sub-TLV of the SR SID/Label
range TLV of the RI LSA";
leaf entry-type {
type oc-ospf-types:sr-sid-type;
description
"The type of entry that is contained within the sub-TLV. The range may
be represented as either a range of MPLS labels, or numeric segment
identifiers";
}
leaf first-value {
type uint32;
description
"The first value within the SRGB range being specified. The type of the
entry is determined based on the value of the entry type as this value
may represent either a segment identifier or an MPLS label.";
}
}
grouping ospfv2-lsdb-extended-prefix-state {
description
"State parameters relating to an Extended Prefix LSA";
leaf route-type {
type enumeration {
enum UNSPECIFIED {
value 0;
description
"The prefix described in the extended prefix LSA is of an
unspecified type";
}
enum INTRA_AREA {
value 1;
description
"The prefix described in the extended prefix LSA is an intra-area
prefix for the advertising system";
}
enum INTER_AREA {
value 3;
description
"The prefix described in the extended prefix LSA is an inter-area
prefix for the advertising system";
}
enum AS_EXTERNAL {
value 5;
description
"The prefix described in the extended prefix LSA is external to the
autonomous system of the advertising system";
}
enum NSSA_EXTERNAL {
value 7;
description
"The prefix described in the extended prefix LSA externally
advertised from an NSSA area visibile to the advertising system";
}
}
description
"The type of prefix that is contained within the Extended Prefix LSA.
The information contained in sub-TLVs of the attribute is applicable
regardless of this value.";
}
uses ospfv2-lsdb-common-prefix-properties;
leaf attached {
type boolean;
default false;
description
"If this value is set to true, the prefix being advertised was
generated by an ABR for an inter-area prefix. The value corresponds
to the A-flag of the flags field of the Extended Prefix LSA";
}
leaf node {
type boolean;
default false;
description
"If this value is set to true, the prefix being advertised represents
the advertising router. Typically, the prefix within the LSA is
expected to be globally-reachable prefix associated with a loopback
interface";
}
leaf prefix {
type inet:ipv4-address-no-zone;
description
"The IPv4 prefix contained within the extended prefix LSA";
}
}
grouping ospfv2-lsdb-extended-link-state {
description
"State parameters related to an extended link LSA";
leaf link-type {
type identityref {
base "oc-ospf-types:OSPFV2_ROUTER_LINK_TYPE";
}
description
"The type of link with which extended attributes are associated";
}
uses ospfv2-lsdb-common-link-specification;
}
grouping ospfv2-lsdb-extended-link-tlv-state {
description
"State parameters relating to a sub-TLV of the extended link LSA";
leaf type {
type identityref {
base "oc-ospf-types:OSPFV2_EXTENDED_LINK_SUBTLV_TYPE";
}
description
"The type of the sub-TLV contained within the extended link TLV";
}
}
grouping ospfv2-lsdb-extended-prefix-tlv-state {
description
"State parameters related to a sub-TLV of an Extended Prefix LSA";
leaf type {
type identityref {
base "oc-ospf-types:OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE";
}
description
"The type of sub-TLV as indicated by the Extended Prefix LSA";
}
}
grouping ospfv2-lsdb-extended-prefix-range-state {
description
"Parameters of the Extended Prefix Range SubTLV";
uses ospfv2-lsdb-common-prefix-properties;
leaf range-size {
type uint16;
description
"The number of prefixes that are covered by the advertisement.";
}
leaf inter-area {
type boolean;
default false;
description
"When this leaf is set to true, then the prefix range is inter-area -
the flag is set by the ABR that advertises the Extended Prefix Range
TLV";
}
leaf prefix {
type inet:ipv4-prefix;
description
"The first prefix in the range of prefixes being described by the
extended prefix range sub-TLV";
}
}
grouping ospfv2-lsdb-extended-prefix-prefix-sid-state {
description
"Parameters of the Prefix-SID sub-TLV";
leaf no-php {
type boolean;
default false;
description
"If this leaf is set the advertising system has indicated that the
prefix SID must not be popped before delivering packets to it";
}
leaf mapping-server {
type boolean;
default false;
description
"If this leaf is set the SID was advertised by a Segment Routing
mapping server";
}
leaf explicit-null {
type boolean;
default false;
description
"If this leaf is set, the advertising system has requested that the
prefix SID value should be replaced with the explicit null label
value";
}
leaf sid-value-type {
type enumeration {
enum ABSOLUTE {
description
"The SID contained in the Prefix-SID sub-TLV is an absolute
value";
}
enum INDEX {
description
"The SID contained in the Prefix-SID sub-TLV is an index to the
SRGB";
}
}
description
"Specifies the type of the value specified within the Prefix SID
sub-TLV - in particular, whether the value is an index or an
absolute value. This value corresponds with the V-flag of the Prefix
SID sub-TLV";
}
leaf sid-scope {
type enumeration {
enum LOCAL {
description
"The value of the SID is
significant only to the advertising system";
}
enum GLOBAL {
description
"The value of the SID is globally significant";
}
}
description
"Specifies the scope of the SID advertisement within the Prefix SID
sub-TLV. The scope of the SID is independent of whether the SID
contained is an index, or an absolute value";
}
leaf multi-topology-identifier {
type uint8;
description
"The identifier for the topology to which the Prefix SID relates. The
value of this leaf is a MT-ID as defined in RFC4915";
}
leaf algorithm {
type uint8;
description
"The algorithm that computes the path associated with the Prefix SID";
}
leaf sid-value {
type uint32;
description
"The value of the Prefix SID. The meaning of this value is dependent
upon the type of SID, and its scope. The value contained is either a
32-bit value indicating the index of the SID, or a 24-bit label where
the 20 right-most bits are used for encoding the label value";
}
}
grouping ospfv2-lsdb-extended-prefix-sid-label-binding-state {
description
"State parameters relating to the extended prefix SID SID/Label binding
sub-TLV";
leaf mirroring {
type boolean;
default false;
description
"When set to true, this indicates that the SID/Label Binding sub-TLV
entries contained within this TLV are indicative of a mirroring
context";
}
leaf multi-topology-identifier {
type uint8;
description
"The identifier for the topology to which the SID/Label Binding
sub-TLV is associated. The value of this leaf is a MT-ID as defined
in RFC4915";
}
leaf weight {
type uint8;
description
"The weight of the advertised binding when used for load-balancing
purposes";
}
}
grouping ospfv2-lsdb-extended-prefix-sid-label-binding-tlv-state {
description
"State parameters directly relating to the SID/Label Binding TLV";
leaf type {
type identityref {
base
"oc-ospf-types:OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE";
}
description
"The type of sub-TLV that is being contained within the SID/Label
sub-TLV";
}
}
grouping ospfv2-lsdb-extprefix-sid-label-binding-state {
description
"State parameters relating to the SID/Label binding sub-TLV of the
SID/Label/Binding TLV";
uses ospfv2-lsdb-common-sr-sid-spec;
}
grouping ospfv2-lsdb-extprefix-sid-label-ero-metric-state {
description
"State parameters relating to the ERO Metric Sub-TLV of the SID/Label
Binding TLV";
leaf metric {
type uint32;
description
"The metric representing the aggregate IGP or TE path cost for the
binding included within the SID/Label Binding TLV";
}
}
grouping ospfv2-lsdb-extprefix-sid-lbl-ero-path-seg-state {
description
"State parameters relating to the a segment included within the
ERO Path Sub-TLV of the SID/Label Binding TLV";
leaf type {
type identityref {
base "oc-ospf-types:OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE";
}
description
"The type of the segment being specified as part of the ERO";
}
leaf loose {
type boolean;
default false;
description
"If this leaf is set the segment is identifier as a loose path
segment, otherwise the path strictly follows the path specified";
}
}
grouping ospfv2-lsdb-extprefix-sid-lbl-ero-ipv4-state {
description
"State parameters relating to an IPv4 address segment included within
the ERO path";
leaf address {
type inet:ipv4-address-no-zone;
description
"The IPv4 address of the hop within the ERO";
}
}
grouping ospfv2-lsdb-extprefix-sid-lbl-ero-unnum-state {
description
"State parameters relating to an unnumbered hop within the ERO path";
leaf router-id {
type inet:ipv4-address-no-zone;
description
"The IPv4 router identtifier of the remote system";
}
leaf interface-id {
type uint32;
description
"The identifier assigned to the link by the remote system";
}
}
grouping ospfv2-lsdb-extended-link-adj-sid-state {
description
"State parameters relating to the Adjacency SID sub-TLV of the
Extended Link LSA";
leaf backup {
type boolean;
default false;
description
"When this flag is set, it indicates that the adjacency SID refers to
an adjacency which is eligible for protection";
}
leaf group {
type boolean;
default false;
description
"When this flag is set it indicates that the adjacency SID refers to
a group of adjacencies that have a common value";
}
uses ospfv2-lsdb-common-sr-sid-spec;
leaf weight {
type uint8;
description
"The weight of the Adjacency SID when used for load-balancing";
}
leaf multi-topology-identifier {
type uint8;
description
"The multi-topology identifier with which the adjacency SID is
associated";
}
}
grouping ospfv2-lsdb-structure {
description
"Structural grouping for per-area LSDB contents";
container lsdb {
// Top-level RO, if this were ever to become writeable then
// the state containers lower down need config false added
config false;
description
"The link-state database for the OSPFv2 area";
container state {
description
"Operational state parameters relating to the OSPFv2
area";
uses ospfv2-lsdb-area-state;
}
container lsa-types {
description
"Enclosing container for a list of LSA types that are
in the LSDB for the specified area";
list lsa-type {
key "type";
description
"List of LSA types in the LSDB for the specified
area";
leaf type {
type leafref {
path "../state/type";
}
description
"A reference for the LSA type being described within
the LSDB";
}
container state {
description
"Top-level operational state parameters relating to
an LSA within the area";
uses ospfv2-lsdb-area-lsa-type-state;
}
container lsas {
description
"Enclosing container for a list of the LSAs of
the specified type received by the system";
list lsa {
key "link-state-id";
description
"List of the LSAs of a specified type in the
LSDB for the specified area";
leaf link-state-id {
type leafref {
path "../state/link-state-id";
}
description
"Reference to the Link State ID of the LSA";
}
container state {
description
"Operational state parameters relating to all
LSA types";
uses ospfv2-lsdb-area-lsa-state;
}
uses ospfv2-lsdb-router-lsa-structure {
when "../../../state/type = 'ROUTER_LSA'" {
description
"Include the router LSA hierarchy solely when
that LSA type is being described";
}
}
uses ospfv2-lsdb-network-lsa-structure {
when "../../../state/type = 'NETWORK_LSA'" {
description
"Include the network LSA hierarchy solely when
that LSA type is being described";
}
}
uses ospfv2-lsdb-summary-lsa-structure {
// rjs TODO: check this syntax
when "../../../state/type = " +
"'SUMMARY_IP_NETWORK_LSA' or " +
"../../../state/type = 'SUMMARY_ASBR_LSA'" {
description
"Include the summary LSA hierarchy solely when
that LSA type is being described";
}
}
uses ospfv2-lsdb-asexternal-lsa-structure {
when "../../../state/type = 'AS_EXTERNAL_LSA'" {
description
"Include the AS external LSA hierarchy solely when
that LSA type is being described";
}
}
uses ospfv2-lsdb-nssa-external-lsa-structure {
when "../../../state/type = 'NSSA_AS_EXTERNAL_LSA'" {
description
"Include the NSSA External LSA hierarchy solely
when that LSA type is being described";
}
}
uses ospfv2-lsdb-opaque-lsa-structure {
when "../../../state/type = 'OSPFV2_LINK_SCOPE_OPAQUE_LSA'
or ../../../state/type = 'OSPFV2_AREA_SCOPE_OPAQUE_LSA'
or ../../../state/type = 'OSPFV2_AS_SCOPE_OPAQUE_LSA'" {
description
"Include the Opaque LSA structure when type of entry
being described in an opaque LSA";
}
}
}
}
}
}
}
}
}