< draft-acee-lsr-ospfv3-extended-lsa-yang-04.txt   draft-acee-lsr-ospfv3-extended-lsa-yang-05.txt >
Internet A. Lindem Internet A. Lindem
Internet-Draft S. Palani Internet-Draft S. Palani
Intended status: Informational Cisco Systems Intended status: Informational Cisco Systems
Expires: January 8, 2020 Y. Qu Expires: January 8, 2020 Y. Qu
Futurewei Futurewei
July 7, 2019 July 7, 2019
YANG Model for OSPFv3 Extended LSAs YANG Model for OSPFv3 Extended LSAs
draft-acee-lsr-ospfv3-extended-lsa-yang-04 draft-acee-lsr-ospfv3-extended-lsa-yang-05
Abstract Abstract
This document defines a YANG data model augmenting the IETF OSPF YANG This document defines a YANG data model augmenting the IETF OSPF YANG
model to provide support for OSPFv3 Link State Advertisment (LSA) model to provide support for OSPFv3 Link State Advertisment (LSA)
Extensibility as defined in RFC 8362. OSPFv3 Extended LSAs provide Extensibility as defined in RFC 8362. OSPFv3 Extended LSAs provide
extensible TLV-based LSAs for the base LSA types defined in RFC 5340. extensible TLV-based LSAs for the base LSA types defined in RFC 5340.
Status of This Memo Status of This Memo
skipping to change at page 2, line 12 skipping to change at page 2, line 12
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2
2. OSPFv3 Extended LSAs . . . . . . . . . . . . . . . . . . . . 2 2. OSPFv3 Extended LSAs . . . . . . . . . . . . . . . . . . . . 2
3. OSPFv3 Extended LSA Yang Module . . . . . . . . . . . . . . . 14 3. OSPFv3 Extended LSA Yang Module . . . . . . . . . . . . . . . 10
4. Security Considerations . . . . . . . . . . . . . . . . . . . 29 4. Security Considerations . . . . . . . . . . . . . . . . . . . 25
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.1. Normative References . . . . . . . . . . . . . . . . . . 30 7.1. Normative References . . . . . . . . . . . . . . . . . . 26
7.2. Informative References . . . . . . . . . . . . . . . . . 31 7.2. Informative References . . . . . . . . . . . . . . . . . 28
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28
1. Overview 1. Overview
YANG [RFC6020] [RFC7950] is a data definition language used to define YANG [RFC6020] [RFC7950] is a data definition language used to define
the contents of a conceptual data store that allows networked devices the contents of a conceptual data store that allows networked devices
to be managed using NETCONF [RFC6241]. YANG is proving relevant to be managed using NETCONF [RFC6241]. YANG is proving relevant
beyond its initial confines, as bindings to other interfaces (e.g., beyond its initial confines, as bindings to other interfaces (e.g.,
ReST) and encodings other than XML (e.g., JSON) are being defined. ReST) and encodings other than XML (e.g., JSON) are being defined.
Furthermore, YANG data models can be used as the basis for Furthermore, YANG data models can be used as the basis for
implementation of other interfaces, such as CLI and programmatic implementation of other interfaces, such as CLI and programmatic
skipping to change at page 3, line 13 skipping to change at page 3, line 13
LSA types defined in [RFC5340]. LSA types defined in [RFC5340].
The OSPFv3 Extended LSA YANG module requires support for the OSPF The OSPFv3 Extended LSA YANG module requires support for the OSPF
base model[I-D.ietf-ospf-yang] which defines basic OSPF configuration base model[I-D.ietf-ospf-yang] which defines basic OSPF configuration
and state. The OSPF YANG model augments the ietf-routing YANG model and state. The OSPF YANG model augments the ietf-routing YANG model
defined in [RFC8022]. The augmentations defined in the ietf-ospfv3- defined in [RFC8022]. The augmentations defined in the ietf-ospfv3-
extended-lsa YANG model will provide global configuration, area extended-lsa YANG model will provide global configuration, area
configuration, and addition of OSPFv3 Extended LSAs to the Link State configuration, and addition of OSPFv3 Extended LSAs to the Link State
Database (LSDB) operational state. Database (LSDB) operational state.
module: ietf-ospfv3-extended-lsa module: ietf-ospfv3-extended-lsa
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf: /rt:control-plane-protocol/ospf:ospf:
+--rw extended-lsa-support? boolean {extended-lsa-support}? +--rw extended-lsa-support? boolean {extended-lsa-support}?
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area: /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area:
+--rw extended-lsa-support? boolean {extended-lsa-support}? +--rw extended-lsa-support? boolean {extended-lsa-support}?
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
/ospf:interfaces/ospf:interface/ospf:database /ospf:interfaces/ospf:interface/ospf:database
/ospf:link-scope-lsa-type/ospf:link-scope-lsas /ospf:link-scope-lsa-type/ospf:link-scope-lsas
/ospf:link-scope-lsa/ospf:version/ospf:ospfv3 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3
/ospf:ospfv3/ospf:body: /ospf:ospfv3/ospf:body:
+--ro e-router augment /rt:routing/rt:control-plane-protocols
| +--ro flags? bits /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area
| +--ro options bits /ospf:database/ospf:area-scope-lsa-type
| +--ro e-router-tlvs* /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version
| +--ro unknown-tlv /ospf:ospfv3/ospf:ospfv3/ospf:body:
| | +--ro type? uint16 +--ro e-router
| | +--ro length? uint16 | +--ro flags? bits
| | +--ro value? yang:hex-string | +--ro options bits
| +--ro link-tlv | +--ro e-router-tlvs*
| +--ro link-tlv-length? uint16 | +--ro unknown-tlv
| +--ro interface-id? uint32 | | +--ro type? uint16
| +--ro neighbor-interface-id? uint32 | | +--ro length? uint16
| +--ro neighbor-router-id? rt-types:router-id | | +--ro value? yang:hex-string
| +--ro type? uint8 | +--ro link-tlv
| +--ro metric? uint16 | +--ro link-tlv-length? uint16
| +--ro sub-tlvs* | +--ro interface-id? uint32
| +--ro unknown-sub-tlv | +--ro neighbor-interface-id? uint32
| +--ro type? uint16 | +--ro neighbor-router-id? rt-types:router-id
| +--ro length? uint16 | +--ro type? uint8
| +--ro value? yang:hex-string | +--ro metric? uint16
+--ro e-network | +--ro sub-tlvs*
| +--ro options bits | +--ro unknown-sub-tlv
| +--ro e-network-tlvs* | +--ro type? uint16
| +--ro unknown--tlv | +--ro length? uint16
| | +--ro type? uint16 | +--ro value? yang:hex-string
| | +--ro length? uint16 +--ro e-network
| | +--ro value? yang:hex-string | +--ro options bits
| +--ro attached-router-tlv | +--ro e-network-tlvs*
| +--ro attached-router-tlv-length? uint16 | +--ro unknown--tlv
| +--ro Adjacent-neighbor-router-id? rt-types:router-id | | +--ro type? uint16
| +--ro sub-tlvs* | | +--ro length? uint16
| +--ro unknown-sub-tlv | | +--ro value? yang:hex-string
| +--ro type? uint16 | +--ro attached-router-tlv
| +--ro length? uint16 | +--ro attached-router-tlv-length? uint16
| +--ro value? yang:hex-string | +--ro Adjacent-neighbor-router-id? rt-types:router-id
+--ro e-inter-area-prefix | +--ro sub-tlvs*
| +--ro e-inter-prefix-tlvs* | +--ro unknown-sub-tlv
| +--ro unknown--tlv | +--ro type? uint16
| | +--ro type? uint16 | +--ro length? uint16
| | +--ro length? uint16 | +--ro value? yang:hex-string
| | +--ro value? yang:hex-string +--ro e-inter-area-prefix
| +--ro inter-prefix-tlv | +--ro e-inter-prefix-tlvs*
| +--ro inter-prefix-tlv-length? uint16 | +--ro unknown--tlv
| +--ro metric? rt-types:uint24 | | +--ro type? uint16
| +--ro prefix? inet:ip-prefix | | +--ro length? uint16
| +--ro prefix-options? bits | | +--ro value? yang:hex-string
| +--ro sub-tlvs* | +--ro inter-prefix-tlv
| +--ro unknown-sub-tlv | +--ro inter-prefix-tlv-length? uint16
| +--ro type? uint16 | +--ro metric? rt-types:uint24
| +--ro length? uint16 | +--ro prefix? inet:ip-prefix
| +--ro value? yang:hex-string | +--ro prefix-options? bits
+--ro e-inter-area-router | +--ro sub-tlvs*
| +--ro e-inter-router-tlvs* | +--ro unknown-sub-tlv
| +--ro unknown-tlv | +--ro type? uint16
| | +--ro type? uint16 | +--ro length? uint16
| | +--ro length? uint16 | +--ro value? yang:hex-string
| | +--ro value? yang:hex-string +--ro e-inter-area-router
| +--ro inter-router-tlv | +--ro e-inter-router-tlvs*
| +--ro inter-router-tlv-length? uint16 | +--ro unknown-tlv
| +--ro flags? bits | | +--ro type? uint16
| +--ro options bits | | +--ro length? uint16
| +--ro metric? rt-types:uint24 | | +--ro value? yang:hex-string
| +--ro destination-router-id? rt-types:router-id | +--ro inter-router-tlv
| +--ro sub-tlvs* | +--ro inter-router-tlv-length? uint16
| +--ro unknown-sub-tlv | +--ro flags? bits
| +--ro type? uint16 | +--ro options bits
| +--ro length? uint16 | +--ro metric? rt-types:uint24
| +--ro value? yang:hex-string | +--ro destination-router-id? rt-types:router-id
+--ro e-as-external | +--ro sub-tlvs*
| +--ro e-external-tlvs* | +--ro unknown-sub-tlv
| +--ro unknown-tlv | +--ro type? uint16
| | +--ro type? uint16 | +--ro length? uint16
| | +--ro length? uint16 | +--ro value? yang:hex-string
| | +--ro value? yang:hex-string +--ro e-as-external
| +--ro external-prefix-tlv | +--ro e-external-tlvs*
| +--ro external-prefix-tlv-length? uint16 | +--ro unknown-tlv
| +--ro flags? bits | | +--ro type? uint16
| +--ro metric? rt-types:uint24 | | +--ro length? uint16
| +--ro prefix? inet:ip-prefix | | +--ro value? yang:hex-string
| +--ro prefix-options? bits | +--ro external-prefix-tlv
| +--ro sub-tlvs* | +--ro external-prefix-tlv-length? uint16
| +--ro unknown-sub-tlv | +--ro flags? bits
| | +--ro type? uint16 | +--ro metric? rt-types:uint24
| | +--ro length? uint16 | +--ro prefix? inet:ip-prefix
| | +--ro value? yang:hex-string | +--ro prefix-options? bits
| +--ro ipv6-fwd-addr-sub-tlv | +--ro sub-tlvs*
| | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 | +--ro unknown-sub-tlv
| | +--ro forwarding-address? inet:ipv6-address | | +--ro type? uint16
| +--ro ipv4-fwd-addr-sub-tlv | | +--ro length? uint16
| | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 | | +--ro value? yang:hex-string
| | +--ro forwarding-address? inet:ipv4-address | +--ro ipv6-fwd-addr-sub-tlv
| +--ro route-tag-sub-tlv | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16
| +--ro route-tag-sub-tlv-length? uint16 | | +--ro forwarding-address? inet:ipv6-address
| +--ro route-tag? uint32 | +--ro ipv4-fwd-addr-sub-tlv
+--ro e-nssa | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16
| +--ro e-external-tlvs* | | +--ro forwarding-address? inet:ipv4-address
| +--ro unknown-tlv | +--ro route-tag-sub-tlv
| | +--ro type? uint16 | +--ro route-tag-sub-tlv-length? uint16
| | +--ro length? uint16 | +--ro route-tag? uint32
| | +--ro value? yang:hex-string +--ro e-nssa
| +--ro external-prefix-tlv | +--ro e-external-tlvs*
| +--ro external-prefix-tlv-length? uint16 | +--ro unknown-tlv
| +--ro flags? bits | | +--ro type? uint16
| +--ro metric? rt-types:uint24 | | +--ro length? uint16
| +--ro prefix? inet:ip-prefix | | +--ro value? yang:hex-string
| +--ro prefix-options? bits | +--ro external-prefix-tlv
| +--ro sub-tlvs* | +--ro external-prefix-tlv-length? uint16
| +--ro unknown-sub-tlv | +--ro flags? bits
| | +--ro type? uint16 | +--ro metric? rt-types:uint24
| | +--ro length? uint16 | +--ro prefix? inet:ip-prefix
| | +--ro value? yang:hex-string | +--ro prefix-options? bits
| +--ro ipv6-fwd-addr-sub-tlv | +--ro sub-tlvs*
| | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 | +--ro unknown-sub-tlv
| | +--ro forwarding-address? inet:ipv6-address | | +--ro type? uint16
| +--ro ipv4-fwd-addr-sub-tlv | | +--ro length? uint16
| | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 | | +--ro value? yang:hex-string
| | +--ro forwarding-address? inet:ipv4-address | +--ro ipv6-fwd-addr-sub-tlv
| +--ro route-tag-sub-tlv | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16
| +--ro route-tag-sub-tlv-length? uint16 | | +--ro forwarding-address? inet:ipv6-address
| +--ro route-tag? uint32 | +--ro ipv4-fwd-addr-sub-tlv
+--ro e-link | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16
| +--ro rtr-priority? uint8 | | +--ro forwarding-address? inet:ipv4-address
| +--ro options bits | +--ro route-tag-sub-tlv
| +--ro e-link-tlvs* | +--ro route-tag-sub-tlv-length? uint16
| +--ro unknown-tlv | +--ro route-tag? uint32
| | +--ro type? uint16 +--ro e-link
| | +--ro length? uint16 | +--ro rtr-priority? uint8
| | +--ro value? yang:hex-string | +--ro options bits
| +--ro intra-prefix-tlv | +--ro e-link-tlvs*
| | +--ro intra-prefix-tlv-length? uint16 | +--ro unknown-tlv
| | +--ro metric? rt-types:uint24 | | +--ro type? uint16
| | +--ro prefix? inet:ip-prefix | | +--ro length? uint16
| | +--ro prefix-options? bits | | +--ro value? yang:hex-string
| | +--ro sub-tlvs* | +--ro intra-prefix-tlv
| | +--ro unknown-sub-tlv | | +--ro intra-prefix-tlv-length? uint16
| | +--ro type? uint16 | | +--ro metric? rt-types:uint24
| | +--ro length? uint16 | | +--ro prefix? inet:ip-prefix
| | +--ro value? yang:hex-string | | +--ro prefix-options? bits
| +--ro ipv6-link-local-tlv | | +--ro sub-tlvs*
| | +--ro ipv6-link-local-tlv-length? uint16 | | +--ro unknown-sub-tlv
| | +--ro link-local-address? inet:ipv6-address | | +--ro type? uint16
| | +--ro sub-tlvs* | | +--ro length? uint16
| | +--ro unknown-sub-tlv | | +--ro value? yang:hex-string
| | +--ro type? uint16 | +--ro ipv6-link-local-tlv
| | +--ro length? uint16 | | +--ro ipv6-link-local-tlv-length? uint16
| | +--ro value? yang:hex-string | | +--ro link-local-address? inet:ipv6-address
| +--ro ipv4-link-local-tlv | | +--ro sub-tlvs*
| +--ro ipv4-link-local-tlv-length? uint16 | | +--ro unknown-sub-tlv
| +--ro link-local-address? inet:ipv4-address | | +--ro type? uint16
| +--ro sub-tlvs* | | +--ro length? uint16
| +--ro unknown-sub-tlv | | +--ro value? yang:hex-string
| +--ro type? uint16 | +--ro ipv4-link-local-tlv
| +--ro length? uint16 | +--ro ipv4-link-local-tlv-length? uint16
| +--ro value? yang:hex-string | +--ro link-local-address? inet:ipv4-address
+--ro e-intra-area-prefix | +--ro sub-tlvs*
+--ro referenced-ls-type? uint16 | +--ro unknown-sub-tlv
+--ro referenced-link-state-id? uint32 | +--ro type? uint16
+--ro referenced-adv-router? rt-types:router-id | +--ro length? uint16
+--ro e-intra-prefix-tlvs* | +--ro value? yang:hex-string
+--ro unknown-tlv +--ro e-intra-area-prefix
| +--ro type? uint16 +--ro referenced-ls-type? uint16
| +--ro length? uint16 +--ro referenced-link-state-id? uint32
| +--ro value? yang:hex-string +--ro referenced-adv-router? rt-types:router-id
+--ro intra-prefix-tlv +--ro e-intra-prefix-tlvs*
+--ro intra-prefix-tlv-length? uint16 +--ro unknown-tlv
+--ro metric? rt-types:uint24 | +--ro type? uint16
+--ro prefix? inet:ip-prefix | +--ro length? uint16
+--ro prefix-options? bits | +--ro value? yang:hex-string
+--ro sub-tlvs* +--ro intra-prefix-tlv
+--ro unknown-sub-tlv +--ro intra-prefix-tlv-length? uint16
+--ro type? uint16 +--ro metric? rt-types:uint24
+--ro length? uint16 +--ro prefix? inet:ip-prefix
+--ro value? yang:hex-string +--ro prefix-options? bits
augment /rt:routing/rt:control-plane-protocols +--ro sub-tlvs*
/rt:control-plane-protocol/ospf:ospf/ospf:areas +--ro unknown-sub-tlv
/ospf:area/ospf:database/ospf:area-scope-lsa-type +--ro type? uint16
/ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version +--ro length? uint16
/ospf:ospfv3/ospf:ospfv3/ospf:body: +--ro value? yang:hex-string
+--ro e-router augment /rt:routing/rt:control-plane-protocols
| +--ro flags? bits /rt:control-plane-protocol/ospf:ospf/ospf:database
| +--ro options bits /ospf:as-scope-lsa-type/ospf:as-scope-lsas
| +--ro e-router-tlvs* /ospf:as-scope-lsa/ospf:version/ospf:ospfv3
| +--ro unknown-tlv /ospf:ospfv3/ospf:body:
| | +--ro type? uint16 +--ro e-router
| | +--ro length? uint16 | +--ro flags? bits
| | +--ro value? yang:hex-string | +--ro options bits
| +--ro link-tlv | +--ro e-router-tlvs*
| +--ro link-tlv-length? uint16 | +--ro unknown-tlv
| +--ro interface-id? uint32 | | +--ro type? uint16
| +--ro neighbor-interface-id? uint32 | | +--ro length? uint16
| +--ro neighbor-router-id? rt-types:router-id | | +--ro value? yang:hex-string
| +--ro type? uint8 | +--ro link-tlv
| +--ro metric? uint16 | +--ro link-tlv-length? uint16
| +--ro sub-tlvs* | +--ro interface-id? uint32
| +--ro unknown-sub-tlv | +--ro neighbor-interface-id? uint32
| +--ro type? uint16 | +--ro neighbor-router-id? rt-types:router-id
| +--ro length? uint16 | +--ro type? uint8
| +--ro value? yang:hex-string | +--ro metric? uint16
+--ro e-network | +--ro sub-tlvs*
| +--ro options bits | +--ro unknown-sub-tlv
| +--ro e-network-tlvs* | +--ro type? uint16
| +--ro unknown--tlv | +--ro length? uint16
| | +--ro type? uint16 | +--ro value? yang:hex-string
| | +--ro length? uint16 +--ro e-network
| | +--ro value? yang:hex-string | +--ro options bits
| +--ro attached-router-tlv | +--ro e-network-tlvs*
| +--ro attached-router-tlv-length? uint16 | +--ro unknown--tlv
| +--ro Adjacent-neighbor-router-id? rt-types:router-id | | +--ro type? uint16
| +--ro sub-tlvs* | | +--ro length? uint16
| +--ro unknown-sub-tlv | | +--ro value? yang:hex-string
| +--ro type? uint16 | +--ro attached-router-tlv
| +--ro length? uint16 | +--ro attached-router-tlv-length? uint16
| +--ro value? yang:hex-string | +--ro Adjacent-neighbor-router-id? rt-types:router-id
+--ro e-inter-area-prefix | +--ro sub-tlvs*
| +--ro e-inter-prefix-tlvs* | +--ro unknown-sub-tlv
| +--ro unknown--tlv | +--ro type? uint16
| | +--ro type? uint16 | +--ro length? uint16
| | +--ro length? uint16 | +--ro value? yang:hex-string
| | +--ro value? yang:hex-string +--ro e-inter-area-prefix
| +--ro inter-prefix-tlv | +--ro e-inter-prefix-tlvs*
| +--ro inter-prefix-tlv-length? uint16 | +--ro unknown--tlv
| +--ro metric? rt-types:uint24 | | +--ro type? uint16
| +--ro prefix? inet:ip-prefix | | +--ro length? uint16
| +--ro prefix-options? bits | | +--ro value? yang:hex-string
| +--ro sub-tlvs* | +--ro inter-prefix-tlv
| +--ro unknown-sub-tlv | +--ro inter-prefix-tlv-length? uint16
| +--ro type? uint16 | +--ro metric? rt-types:uint24
| +--ro length? uint16 | +--ro prefix? inet:ip-prefix
| +--ro value? yang:hex-string | +--ro prefix-options? bits
+--ro e-inter-area-router | +--ro sub-tlvs*
| +--ro e-inter-router-tlvs* | +--ro unknown-sub-tlv
| +--ro unknown-tlv | +--ro type? uint16
| | +--ro type? uint16 | +--ro length? uint16
| | +--ro length? uint16 | +--ro value? yang:hex-string
| | +--ro value? yang:hex-string +--ro e-inter-area-router
| +--ro inter-router-tlv | +--ro e-inter-router-tlvs*
| +--ro inter-router-tlv-length? uint16 | +--ro unknown-tlv
| +--ro flags? bits | | +--ro type? uint16
| +--ro options bits | | +--ro length? uint16
| +--ro metric? rt-types:uint24 | | +--ro value? yang:hex-string
| +--ro destination-router-id? rt-types:router-id | +--ro inter-router-tlv
| +--ro sub-tlvs* | +--ro inter-router-tlv-length? uint16
| +--ro unknown-sub-tlv | +--ro flags? bits
| +--ro type? uint16 | +--ro options bits
| +--ro length? uint16 | +--ro metric? rt-types:uint24
| +--ro value? yang:hex-string | +--ro destination-router-id? rt-types:router-id
+--ro e-as-external | +--ro sub-tlvs*
| +--ro e-external-tlvs* | +--ro unknown-sub-tlv
| +--ro unknown-tlv | +--ro type? uint16
| | +--ro type? uint16 | +--ro length? uint16
| | +--ro length? uint16 | +--ro value? yang:hex-string
| | +--ro value? yang:hex-string +--ro e-as-external
| +--ro external-prefix-tlv | +--ro e-external-tlvs*
| +--ro external-prefix-tlv-length? uint16 | +--ro unknown-tlv
| +--ro flags? bits | | +--ro type? uint16
| +--ro metric? rt-types:uint24 | | +--ro length? uint16
| +--ro prefix? inet:ip-prefix | | +--ro value? yang:hex-string
| +--ro prefix-options? bits | +--ro external-prefix-tlv
| +--ro sub-tlvs* | +--ro external-prefix-tlv-length? uint16
| +--ro unknown-sub-tlv | +--ro flags? bits
| | +--ro type? uint16 | +--ro metric? rt-types:uint24
| | +--ro length? uint16 | +--ro prefix? inet:ip-prefix
| | +--ro value? yang:hex-string | +--ro prefix-options? bits
| +--ro ipv6-fwd-addr-sub-tlv | +--ro sub-tlvs*
| | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 | +--ro unknown-sub-tlv
| | +--ro forwarding-address? inet:ipv6-address | | +--ro type? uint16
| +--ro ipv4-fwd-addr-sub-tlv | | +--ro length? uint16
| | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 | | +--ro value? yang:hex-string
| | +--ro forwarding-address? inet:ipv4-address | +--ro ipv6-fwd-addr-sub-tlv
| +--ro route-tag-sub-tlv | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16
| +--ro route-tag-sub-tlv-length? uint16 | | +--ro forwarding-address? inet:ipv6-address
| +--ro route-tag? uint32 | +--ro ipv4-fwd-addr-sub-tlv
+--ro e-nssa | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16
| +--ro e-external-tlvs* | | +--ro forwarding-address? inet:ipv4-address
| +--ro unknown-tlv | +--ro route-tag-sub-tlv
| | +--ro type? uint16 | +--ro route-tag-sub-tlv-length? uint16
| | +--ro length? uint16 | +--ro route-tag? uint32
| | +--ro value? yang:hex-string +--ro e-nssa
| +--ro external-prefix-tlv | +--ro e-external-tlvs*
| +--ro external-prefix-tlv-length? uint16 | +--ro unknown-tlv
| +--ro flags? bits | | +--ro type? uint16
| +--ro metric? rt-types:uint24 | | +--ro length? uint16
| +--ro prefix? inet:ip-prefix | | +--ro value? yang:hex-string
| +--ro prefix-options? bits | +--ro external-prefix-tlv
| +--ro sub-tlvs* | +--ro external-prefix-tlv-length? uint16
| +--ro unknown-sub-tlv | +--ro flags? bits
| | +--ro type? uint16 | +--ro metric? rt-types:uint24
| | +--ro length? uint16 | +--ro prefix? inet:ip-prefix
| | +--ro value? yang:hex-string | +--ro prefix-options? bits
| +--ro ipv6-fwd-addr-sub-tlv | +--ro sub-tlvs*
| | +--ro ipv6-fwd-addr-sub-tlv-length? uint16 | +--ro unknown-sub-tlv
| | +--ro forwarding-address? inet:ipv6-address | | +--ro type? uint16
| +--ro ipv4-fwd-addr-sub-tlv | | +--ro length? uint16
| | +--ro ipv4-fwd-addr-sub-tlv-length? uint16 | | +--ro value? yang:hex-string
| | +--ro forwarding-address? inet:ipv4-address | +--ro ipv6-fwd-addr-sub-tlv
| +--ro route-tag-sub-tlv | | +--ro ipv6-fwd-addr-sub-tlv-length? uint16
| +--ro route-tag-sub-tlv-length? uint16 | | +--ro forwarding-address? inet:ipv6-address
| +--ro route-tag? uint32 | +--ro ipv4-fwd-addr-sub-tlv
+--ro e-link | | +--ro ipv4-fwd-addr-sub-tlv-length? uint16
| +--ro rtr-priority? uint8 | | +--ro forwarding-address? inet:ipv4-address
| +--ro options bits | +--ro route-tag-sub-tlv
| +--ro e-link-tlvs* | +--ro route-tag-sub-tlv-length? uint16
| +--ro unknown-tlv | +--ro route-tag? uint32
| | +--ro type? uint16 +--ro e-link
| | +--ro length? uint16 | +--ro rtr-priority? uint8
| | +--ro value? yang:hex-string | +--ro options bits
| +--ro intra-prefix-tlv | +--ro e-link-tlvs*
| | +--ro intra-prefix-tlv-length? uint16 | +--ro unknown-tlv
| | +--ro metric? rt-types:uint24 | | +--ro type? uint16
| | +--ro prefix? inet:ip-prefix | | +--ro length? uint16
| | +--ro prefix-options? bits | | +--ro value? yang:hex-string
| | +--ro sub-tlvs* | +--ro intra-prefix-tlv
| | +--ro unknown-sub-tlv | | +--ro intra-prefix-tlv-length? uint16
| | +--ro type? uint16 | | +--ro metric? rt-types:uint24
| | +--ro length? uint16 | | +--ro prefix? inet:ip-prefix
| | +--ro value? yang:hex-string | | +--ro prefix-options? bits
| +--ro ipv6-link-local-tlv | | +--ro sub-tlvs*
| | +--ro ipv6-link-local-tlv-length? uint16 | | +--ro unknown-sub-tlv
| | +--ro link-local-address? inet:ipv6-address | | +--ro type? uint16
| | +--ro sub-tlvs* | | +--ro length? uint16
| | +--ro unknown-sub-tlv | | +--ro value? yang:hex-string
| | +--ro type? uint16 | +--ro ipv6-link-local-tlv
| | +--ro length? uint16 | | +--ro ipv6-link-local-tlv-length? uint16
| | +--ro value? yang:hex-string | | +--ro link-local-address? inet:ipv6-address
| +--ro ipv4-link-local-tlv | | +--ro sub-tlvs*
| +--ro ipv4-link-local-tlv-length? uint16 | | +--ro unknown-sub-tlv
| +--ro link-local-address? inet:ipv4-address | | +--ro type? uint16
| +--ro sub-tlvs* | | +--ro length? uint16
| +--ro unknown-sub-tlv | | +--ro value? yang:hex-string
| +--ro type? uint16 | +--ro ipv4-link-local-tlv
| +--ro length? uint16 | +--ro ipv4-link-local-tlv-length? uint16
| +--ro value? yang:hex-string | +--ro link-local-address? inet:ipv4-address
+--ro e-intra-area-prefix | +--ro sub-tlvs*
+--ro referenced-ls-type? uint16 | +--ro unknown-sub-tlv
+--ro referenced-link-state-id? uint32 | +--ro type? uint16
+--ro referenced-adv-router? rt-types:router-id | +--ro length? uint16
+--ro e-intra-prefix-tlvs* | +--ro value? yang:hex-string
+--ro unknown-tlv +--ro e-intra-area-prefix
| +--ro type? uint16 +--ro referenced-ls-type? uint16
| +--ro length? uint16 +--ro referenced-link-state-id? uint32
| +--ro value? yang:hex-string +--ro referenced-adv-router? rt-types:router-id
+--ro intra-prefix-tlv +--ro e-intra-prefix-tlvs*
+--ro intra-prefix-tlv-length? uint16 +--ro unknown-tlv
+--ro metric? rt-types:uint24 | +--ro type? uint16
+--ro prefix? inet:ip-prefix | +--ro length? uint16
+--ro prefix-options? bits | +--ro value? yang:hex-string
+--ro sub-tlvs* +--ro intra-prefix-tlv
+--ro unknown-sub-tlv +--ro intra-prefix-tlv-length? uint16
+--ro type? uint16 +--ro metric? rt-types:uint24
+--ro length? uint16 +--ro prefix? inet:ip-prefix
+--ro value? yang:hex-string +--ro prefix-options? bits
augment /rt:routing/rt:control-plane-protocols +--ro sub-tlvs*
/rt:control-plane-protocol/ospf:ospf/ospf:database +--ro unknown-sub-tlv
/ospf:as-scope-lsa-type/ospf:as-scope-lsas +--ro type? uint16
/ospf:as-scope-lsa/ospf:version/ospf:ospfv3 +--ro length? uint16
/ospf:ospfv3/ospf:body: +--ro value? yang:hex-string
+--ro e-router
| +--ro flags? bits
| +--ro options bits
| +--ro e-router-tlvs*
| +--ro unknown-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro link-tlv
| +--ro link-tlv-length? uint16
| +--ro interface-id? uint32
| +--ro neighbor-interface-id? uint32
| +--ro neighbor-router-id? rt-types:router-id
| +--ro type? uint8
| +--ro metric? uint16
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| +--ro type? uint16
| +--ro length? uint16
| +--ro value? yang:hex-string
+--ro e-network
| +--ro options bits
| +--ro e-network-tlvs*
| +--ro unknown--tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro attached-router-tlv
| +--ro attached-router-tlv-length? uint16
| +--ro Adjacent-neighbor-router-id? rt-types:router-id
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| +--ro type? uint16
| +--ro length? uint16
| +--ro value? yang:hex-string
+--ro e-inter-area-prefix
| +--ro e-inter-prefix-tlvs*
| +--ro unknown--tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro inter-prefix-tlv
| +--ro inter-prefix-tlv-length? uint16
| +--ro metric? rt-types:uint24
| +--ro prefix? inet:ip-prefix
| +--ro prefix-options? bits
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| +--ro type? uint16
| +--ro length? uint16
| +--ro value? yang:hex-string
+--ro e-inter-area-router
| +--ro e-inter-router-tlvs*
| +--ro unknown-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro inter-router-tlv
| +--ro inter-router-tlv-length? uint16
| +--ro flags? bits
| +--ro options bits
| +--ro metric? rt-types:uint24
| +--ro destination-router-id? rt-types:router-id
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| +--ro type? uint16
| +--ro length? uint16
| +--ro value? yang:hex-string
+--ro e-as-external
| +--ro e-external-tlvs*
| +--ro unknown-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro external-prefix-tlv
| +--ro external-prefix-tlv-length? uint16
| +--ro flags? bits
| +--ro metric? rt-types:uint24
| +--ro prefix? inet:ip-prefix
| +--ro prefix-options? bits
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro ipv6-fwd-addr-sub-tlv
| | +--ro ipv6-fwd-addr-sub-tlv-length? uint16
| | +--ro forwarding-address? inet:ipv6-address
| +--ro ipv4-fwd-addr-sub-tlv
| | +--ro ipv4-fwd-addr-sub-tlv-length? uint16
| | +--ro forwarding-address? inet:ipv4-address
| +--ro route-tag-sub-tlv
| +--ro route-tag-sub-tlv-length? uint16
| +--ro route-tag? uint32
+--ro e-nssa
| +--ro e-external-tlvs*
| +--ro unknown-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro external-prefix-tlv
| +--ro external-prefix-tlv-length? uint16
| +--ro flags? bits
| +--ro metric? rt-types:uint24
| +--ro prefix? inet:ip-prefix
| +--ro prefix-options? bits
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro ipv6-fwd-addr-sub-tlv
| | +--ro ipv6-fwd-addr-sub-tlv-length? uint16
| | +--ro forwarding-address? inet:ipv6-address
| +--ro ipv4-fwd-addr-sub-tlv
| | +--ro ipv4-fwd-addr-sub-tlv-length? uint16
| | +--ro forwarding-address? inet:ipv4-address
| +--ro route-tag-sub-tlv
| +--ro route-tag-sub-tlv-length? uint16
| +--ro route-tag? uint32
+--ro e-link
| +--ro rtr-priority? uint8
| +--ro options bits
| +--ro e-link-tlvs*
| +--ro unknown-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro intra-prefix-tlv
| | +--ro intra-prefix-tlv-length? uint16
| | +--ro metric? rt-types:uint24
| | +--ro prefix? inet:ip-prefix
| | +--ro prefix-options? bits
| | +--ro sub-tlvs*
| | +--ro unknown-sub-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro ipv6-link-local-tlv
| | +--ro ipv6-link-local-tlv-length? uint16
| | +--ro link-local-address? inet:ipv6-address
| | +--ro sub-tlvs*
| | +--ro unknown-sub-tlv
| | +--ro type? uint16
| | +--ro length? uint16
| | +--ro value? yang:hex-string
| +--ro ipv4-link-local-tlv
| +--ro ipv4-link-local-tlv-length? uint16
| +--ro link-local-address? inet:ipv4-address
| +--ro sub-tlvs*
| +--ro unknown-sub-tlv
| +--ro type? uint16
| +--ro length? uint16
| +--ro value? yang:hex-string
+--ro e-intra-area-prefix
+--ro referenced-ls-type? uint16
+--ro referenced-link-state-id? uint32
+--ro referenced-adv-router? rt-types:router-id
+--ro e-intra-prefix-tlvs*
+--ro unknown-tlv
| +--ro type? uint16
| +--ro length? uint16
| +--ro value? yang:hex-string
+--ro intra-prefix-tlv
+--ro intra-prefix-tlv-length? uint16
+--ro metric? rt-types:uint24
+--ro prefix? inet:ip-prefix
+--ro prefix-options? bits
+--ro sub-tlvs*
+--ro unknown-sub-tlv
+--ro type? uint16
+--ro length? uint16
+--ro value? yang:hex-string
3. OSPFv3 Extended LSA Yang Module 3. OSPFv3 Extended LSA Yang Module
<CODE BEGINS> file "ietf-ospfv3-extended-lsa@2019-07-05.yang" <CODE BEGINS> file "ietf-ospfv3-extended-lsa@2019-07-05.yang"
module ietf-ospfv3-extended-lsa { module ietf-ospfv3-extended-lsa {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa"; "urn:ietf:params:xml:ns:yang:ietf-ospfv3-extended-lsa";
prefix ospfv3-e-lsa; prefix ospfv3-e-lsa;
skipping to change at page 28, line 11 skipping to change at page 24, line 33
+ "ospf:ospf/ospf:areas/ospf:area/" + "ospf:ospf/ospf:areas/ospf:area/"
+ "ospf:interfaces/ospf:interface/ospf:database/" + "ospf:interfaces/ospf:interface/ospf:database/"
+ "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/"
+ "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body" { + "ospf:ospfv3/ospf:body" {
when "/rt:routing/rt:control-plane-protocols" when "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" {
description description
"This augmentation is only valid for OSPFv3."; "This augmentation is only valid for OSPFv3.";
} }
uses ospfv3-e-lsa-body;
description description
"OSPFv3 Link-Scoped Extended LSAs"; "OSPFv3 Link-Scoped Extended LSAs";
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol/" + "rt:control-plane-protocols/rt:control-plane-protocol/"
+ "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + "ospf:ospf/ospf:areas/ospf:area/ospf:database/"
+ "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/"
+ "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/"
+ "ospf:ospfv3/ospf:body" { + "ospf:ospfv3/ospf:body" {
 End of changes. 4 change blocks. 
552 lines changed or deleted 378 lines changed or added

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