summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang2355
1 files changed, 0 insertions, 2355 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang
deleted file mode 100644
index b345724..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang
+++ /dev/null
@@ -1,2355 +0,0 @@
-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.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- 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";
- }
- }
- }
- }
- }
- }
- }
- }
-}