draft-ietf-i2rs-yang-l3-topology-13.txt | draft-ietf-i2rs-yang-l3-topology-14.txt | |||
---|---|---|---|---|
Network Working Group A. Clemm | Network Working Group A. Clemm | |||
Internet-Draft Huawei | Internet-Draft Huawei | |||
Intended status: Standards Track J. Medved | Intended status: Standards Track J. Medved | |||
Expires: May 19, 2018 Cisco | Expires: June 16, 2018 Cisco | |||
R. Varga | R. Varga | |||
Pantheon Technologies SRO | Pantheon Technologies SRO | |||
X. Liu | X. Liu | |||
Jabil | Jabil | |||
H. Ananthakrishnan | H. Ananthakrishnan | |||
Packet Design | Packet Design | |||
N. Bahadur | N. Bahadur | |||
Bracket Computing | Bracket Computing | |||
November 15, 2017 | December 13, 2017 | |||
A YANG Data Model for Layer 3 Topologies | A YANG Data Model for Layer 3 Topologies | |||
draft-ietf-i2rs-yang-l3-topology-13.txt | draft-ietf-i2rs-yang-l3-topology-14.txt | |||
Abstract | Abstract | |||
This document defines a YANG data model for layer 3 network | This document defines a YANG data model for layer 3 network | |||
topologies. | topologies. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 19, 2018. | This Internet-Draft will expire on June 16, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 18 | 12.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
Appendix A. Companion YANG model for non-NMDA compliant | Appendix A. Companion YANG model for non-NMDA compliant | |||
implementations . . . . . . . . . . . . . . . . . . 20 | implementations . . . . . . . . . . . . . . . . . . 20 | |||
Appendix B. Extending the Model . . . . . . . . . . . . . . . . 24 | Appendix B. Extending the Model . . . . . . . . . . . . . . . . 24 | |||
B.1. Example OSPF Topology . . . . . . . . . . . . . . . . . . 24 | B.1. Example OSPF Topology . . . . . . . . . . . . . . . . . . 24 | |||
B.1.1. Model Overview . . . . . . . . . . . . . . . . . . . 24 | B.1.1. Model Overview . . . . . . . . . . . . . . . . . . . 24 | |||
B.1.2. OSPF Topology YANG Module . . . . . . . . . . . . . . 26 | B.1.2. OSPF Topology YANG Module . . . . . . . . . . . . . . 26 | |||
Appendix C. An Example . . . . . . . . . . . . . . . . . . . . . 30 | Appendix C. An Example . . . . . . . . . . . . . . . . . . . . . 29 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
1. Introduction | 1. Introduction | |||
This document introduces a YANG [RFC7950] [RFC6991] data model for | This document introduces a YANG [RFC7950] [RFC6991] data model for | |||
Layer 3 network topologies, specifically Layer 3 Unicast. The model | Layer 3 network topologies, specifically Layer 3 Unicast. The model | |||
allows an application to have a holistic view of the topology of a | allows an application to have a holistic view of the topology of a | |||
Layer 3 network, all contained in a single conceptual YANG datastore. | Layer 3 network, all contained in a single conceptual YANG datastore. | |||
The data model builds on top of, and augments, the data model for | The data model builds on top of, and augments, the data model for | |||
network topologies defined in | network topologies defined in | |||
[I-D.draft-ietf-i2rs-yang-network-topo]. | [I-D.draft-ietf-i2rs-yang-network-topo]. | |||
This document also shows how the model can be further refined to | This document also shows how the model can be further refined to | |||
cover different Layer 3 Unicast topology types. For this purpose, | cover different Layer 3 Unicast topology types. For this purpose, an | |||
example model is introduced that covers OSPF [RFC2328]. This example | example model is introduced that covers OSPF [RFC2328]. This example | |||
is intended purely for illustrative purpose; we expect that full- | is intended purely for illustrative purpose; we expect that a | |||
blown OSPF model will be more comprehensive and refined than the | complete OSPF model will be more comprehensive and refined than the | |||
example shown here. | example shown here. | |||
There are multiple applications for a topology data model. A number | There are multiple applications for a topology data model. A number | |||
of use cases have been defined in section 6 of | of use cases have been defined in section 6 of | |||
[I-D.draft-ietf-i2rs-usecase-reqs-summary]. For example, nodes | [I-D.draft-ietf-i2rs-usecase-reqs-summary]. For example, nodes | |||
within the network can use the data model to capture their | within the network can use the data model to capture their | |||
understanding of the overall network topology and expose it to a | understanding of the overall network topology and expose it to a | |||
network controller. A network controller can then use the | network controller. A network controller can then use the | |||
instantiated topology data to compare and reconcile its own view of | instantiated topology data to compare and reconcile its own view of | |||
the network topology with that of the network elements that it | the network topology with that of the network elements that it | |||
controls. Alternatively, nodes within the network could propagate | controls. Alternatively, nodes within the network could propagate | |||
this understanding to compare and reconcile this understanding either | this understanding to compare and reconcile this understanding either | |||
amongst themselves or with help of a controller. Beyond the network | amongst themselves or with help of a controller. Beyond the network | |||
element itself, a network controller might even use the data model to | element itself, a network controller might even use the data model to | |||
represent its view of the topology that it controls and expose it to | represent its view of the topology that it controls and expose it to | |||
applications north of itself. | applications north of itself. | |||
The data model for Layer 3 Unicast topologies defined in this | The data model for Layer 3 Unicast topologies defined in this | |||
document is specified in a YANG module "ietf-l3-unicast-topology". | document is specified in a YANG module "ietf-l3-unicast-topology". | |||
To do so, it augments general network topology model defined in | To do so, it augments the general network topology model defined in | |||
[I-D.draft-ietf-i2rs-yang-network-topo] with information specific to | [I-D.draft-ietf-i2rs-yang-network-topo] with information specific to | |||
Layer 3 Unicast. This way, the general topology model is extended to | Layer 3 Unicast. This way, the general topology model is extended to | |||
be able to meet the needs of Layer 3 Unicast topologies. | be able to meet the needs of Layer 3 Unicast topologies. | |||
Information that is kept in the Traffic Engineering Database (TED) | Information that is kept in the Traffic Engineering Database (TED) | |||
will be specified in a separate model | will be specified in a separate model | |||
[I-D.draft-ietf-teas-yang-te-topo] and outside the scope of this | [I-D.draft-ietf-teas-yang-te-topo] and outside the scope of this | |||
specification. | specification. | |||
2. Key Words | 2. Key Words | |||
skipping to change at page 4, line 25 ¶ | skipping to change at page 4, line 25 ¶ | |||
NMDA: Network Management Datastore Architecture | NMDA: Network Management Datastore Architecture | |||
OSPF: Open Shortest Path First, a link state routing protocol | OSPF: Open Shortest Path First, a link state routing protocol | |||
URI: Uniform Resource Identifier | URI: Uniform Resource Identifier | |||
SRLG: Shared Risk Link Group | SRLG: Shared Risk Link Group | |||
TED: Traffic Engineering Database | TED: Traffic Engineering Database | |||
YANG: A data definition language for NETCONF | YANG: YANG is a data modeling language used to model configuration | |||
data, state data, Remote Procedure Calls, and notifications for | ||||
network management protocols [RFC7950] | ||||
4. Model Structure | 4. Model Structure | |||
The Layer 3 Unicast topology model is defined by YANG module "l3- | The Layer 3 Unicast topology model is defined by YANG module "l3- | |||
unicast-topology". The relationship of this module with other YANG | unicast-topology". The relationship of this module with other YANG | |||
modules is roughly depicted in the figure below. | modules is roughly depicted in the figure below. | |||
+-----------------------------+ | +-----------------------------+ | |||
| +-----------------------+ | | | +-----------------------+ | | |||
| | ietf-network | | | | | ietf-network | | | |||
skipping to change at page 5, line 35 ¶ | skipping to change at page 5, line 35 ¶ | |||
Figure 1: Overall model structure | Figure 1: Overall model structure | |||
YANG modules "ietf-network" and "ietf-network-topology" collectively | YANG modules "ietf-network" and "ietf-network-topology" collectively | |||
define the basic network topology model. YANG module "ietf-l3- | define the basic network topology model. YANG module "ietf-l3- | |||
unicast-topology" augments those models with additional definitions | unicast-topology" augments those models with additional definitions | |||
needed to represent Layer 3 Unicast topologies. This module in turn | needed to represent Layer 3 Unicast topologies. This module in turn | |||
can be augmented by YANG modules with additional definitions for | can be augmented by YANG modules with additional definitions for | |||
specific types of Layer 3 Unicast topologies, such as OSPF and for | specific types of Layer 3 Unicast topologies, such as OSPF and for | |||
IS-IS topologies. | IS-IS topologies. | |||
The YANG modules ietf-network and ietf-network are designed to be | The YANG modules ietf-network and ietf-network-topology are designed | |||
used in conjunction with implementations that support the Network | to be used in conjunction with implementations that support the | |||
Management Datastore Architecture (NMDA) defined in | Network Management Datastore Architecture (NMDA) defined in | |||
[I-D.draft-ietf-netmod-revised-datastores]. Accordingly, the same is | [I-D.draft-ietf-netmod-revised-datastores]. Accordingly, the same is | |||
true for the YANG modules that augment it. In order to allow | true for the YANG modules that augment it. In order to allow | |||
implementations to use the model even in cases when NMDA is not | implementations to use the model even in cases when NMDA is not | |||
supported, companion YANG modules (that SHOULD NOT be supported by | supported, companion YANG modules (that SHOULD NOT be supported by | |||
implementations that support NMDA) are defined in an Appendix, see | implementations that support NMDA) are defined in an Appendix, see | |||
Appendix A. | Appendix A. | |||
5. Layer 3 Unicast Topology Model Overview | 5. Layer 3 Unicast Topology Model Overview | |||
The Layer 3 Unicast topology model is defined by YANG module "ietf- | The Layer 3 Unicast topology model is defined by YANG module "ietf- | |||
skipping to change at page 7, line 31 ¶ | skipping to change at page 7, line 31 ¶ | |||
type of event, the topology from which it originated, and the | type of event, the topology from which it originated, and the | |||
affected node, or link, or prefix, or termination point. In | affected node, or link, or prefix, or termination point. In | |||
addition, as a convenience to applications, additional data of the | addition, as a convenience to applications, additional data of the | |||
affected node, or link, or termination point (respectively) is | affected node, or link, or termination point (respectively) is | |||
included. While this makes notifications larger in volume than they | included. While this makes notifications larger in volume than they | |||
would need to be, it avoids the need for subsequent retrieval of | would need to be, it avoids the need for subsequent retrieval of | |||
context information, which also might have changed in the meantime. | context information, which also might have changed in the meantime. | |||
6. Layer 3 Unicast Topology YANG Module | 6. Layer 3 Unicast Topology YANG Module | |||
<CODE BEGINS> file "ietf-l3-unicast-topology@2017-11-15.yang" | <CODE BEGINS> file "ietf-l3-unicast-topology@2017-12-13.yang" | |||
module ietf-l3-unicast-topology { | module ietf-l3-unicast-topology { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace | namespace | |||
"urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology"; | "urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology"; | |||
prefix "l3t"; | prefix "l3t"; | |||
import ietf-network { | import ietf-network { | |||
prefix "nw"; | prefix "nw"; | |||
} | } | |||
import ietf-network-topology { | import ietf-network-topology { | |||
prefix "nt"; | prefix "nt"; | |||
skipping to change at page 8, line 8 ¶ | skipping to change at page 8, line 8 ¶ | |||
"IETF I2RS (Interface to the Routing System) Working Group"; | "IETF I2RS (Interface to the Routing System) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/i2rs/> | "WG Web: <http://tools.ietf.org/wg/i2rs/> | |||
WG List: <mailto:i2rs@ietf.org> | WG List: <mailto:i2rs@ietf.org> | |||
Editor: Alexander Clemm | Editor: Alexander Clemm | |||
<mailto:ludwig@clemm.org> | <mailto:ludwig@clemm.org> | |||
Editor: Jan Medved | Editor: Jan Medved | |||
<mailto:jmedved@cisco.com> | <mailto:jmedved@cisco.com> | |||
Editor: Robert Varga | Editor: Robert Varga | |||
<mailto:robert.varga@pantheon.sk> | <mailto:robert.varga@pantheon.tech> | |||
Editor: Xufeng Liu | Editor: Xufeng Liu | |||
<mailto:xliu@kuatrotech.com> | <mailto:xliu@kuatrotech.com> | |||
Editor: Nitin Bahadur | Editor: Nitin Bahadur | |||
<mailto:nitin_bahadur@yahoo.com> | <mailto:nitin_bahadur@yahoo.com> | |||
Editor: Hariharan Ananthakrishnan | Editor: Hariharan Ananthakrishnan | |||
<mailto:hari@packetdesign.com>"; | <mailto:hari@packetdesign.com>"; | |||
description | description | |||
"This module defines a model for Layer 3 Unicast | "This module defines a model for Layer 3 Unicast | |||
topologies. | topologies. | |||
Copyright (c) 2017 IETF Trust and the persons identified as | Copyright (c) 2017 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of | This version of this YANG module is part of | |||
draft-ietf-i2rs-yang-l3-topology-13; | draft-ietf-i2rs-yang-l3-topology-14; | |||
see the RFC itself for full legal notices. | see the RFC itself for full legal notices. | |||
NOTE TO RFC EDITOR: Please replace above reference to | NOTE TO RFC EDITOR: Please replace above reference to | |||
draft-ietf-i2rs-yang-l3-topology-13 with RFC | draft-ietf-i2rs-yang-l3-topology-14 with RFC | |||
number when published (i.e. RFC xxxx)."; | number when published (i.e. RFC xxxx)."; | |||
revision "2017-11-15" { | revision "2017-12-13" { | |||
description | description | |||
"Initial revision. | "Initial revision. | |||
NOTE TO RFC EDITOR: Please replace the following reference | NOTE TO RFC EDITOR: Please replace the following reference | |||
to draft-ietf-i2rs-yang-l3-topology-13 with | to draft-ietf-i2rs-yang-l3-topology-14 with | |||
RFC number when published (i.e. RFC xxxx)."; | RFC number when published (i.e. RFC xxxx)."; | |||
reference | reference | |||
"draft-ietf-i2rs-yang-l3-topology-13"; | "draft-ietf-i2rs-yang-l3-topology-14"; | |||
} | } | |||
identity flag-identity { | identity flag-identity { | |||
description "Base type for flags"; | description "Base type for flags"; | |||
} | } | |||
typedef l3-event-type { | typedef l3-event-type { | |||
type enumeration { | type enumeration { | |||
enum "add" { | enum "add" { | |||
description | description | |||
skipping to change at page 13, line 8 ¶ | skipping to change at page 13, line 8 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
augment "/nw:networks/nw:network/nw:network-types" { | augment "/nw:networks/nw:network/nw:network-types" { | |||
description | description | |||
"Introduce new network type for L3 unicast topology"; | "Introduce new network type for L3 unicast topology"; | |||
uses l3-unicast-topology-type; | uses l3-unicast-topology-type; | |||
} | } | |||
augment "/nw:networks/nw:network" { | augment "/nw:networks/nw:network" { | |||
when "nw:network-types/l3-unicast-topology" { | when "nw:network-types/l3t:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description | description | |||
"L3 unicast for the network as a whole"; | "L3 unicast for the network as a whole"; | |||
uses l3-topology-attributes; | uses l3-topology-attributes; | |||
} | } | |||
augment "/nw:networks/nw:network/nw:node" { | augment "/nw:networks/nw:network/nw:node" { | |||
when "../nw:network-types/l3-unicast-topology" { | when "../nw:network-types/l3t:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description | description | |||
"L3 unicast node level attributes "; | "L3 unicast node level attributes "; | |||
uses l3-node-attributes; | uses l3-node-attributes; | |||
} | } | |||
augment "/nw:networks/nw:network/nt:link" { | augment "/nw:networks/nw:network/nt:link" { | |||
when "../nw:network-types/l3-unicast-topology" { | when "../nw:network-types/l3t:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description | description | |||
"Augment topology link attributes"; | "Augment topology link attributes"; | |||
uses l3-link-attributes; | uses l3-link-attributes; | |||
} | } | |||
augment "/nw:networks/nw:network/nw:node/" | augment "/nw:networks/nw:network/nw:node/" | |||
+"nt:termination-point" { | +"nt:termination-point" { | |||
when "../../nw:network-types/l3-unicast-topology" { | when "../../nw:network-types/l3t:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description "Augment topology termination point configuration"; | description "Augment topology termination point configuration"; | |||
uses l3-termination-point-attributes; | uses l3-termination-point-attributes; | |||
} | } | |||
notification l3-node-event { | notification l3-node-event { | |||
description | description | |||
"Notification event for L3 node"; | "Notification event for L3 node"; | |||
skipping to change at page 15, line 15 ¶ | skipping to change at page 15, line 15 ¶ | |||
7. Interactions with Other YANG Modules | 7. Interactions with Other YANG Modules | |||
As described in section Section 4, the model builds on top of, and | As described in section Section 4, the model builds on top of, and | |||
augments, the YANG modules defined in | augments, the YANG modules defined in | |||
[I-D.draft-ietf-i2rs-yang-network-topo]. Specifically, module ietf- | [I-D.draft-ietf-i2rs-yang-network-topo]. Specifically, module ietf- | |||
l3-unicast-topology augments modules "ietf-network" and "ietf- | l3-unicast-topology augments modules "ietf-network" and "ietf- | |||
network-topology". In addition, the model makes use of data types | network-topology". In addition, the model makes use of data types | |||
that have been defined in [RFC6991]. | that have been defined in [RFC6991]. | |||
The moodel defines a protocol independent YANG data model with layer | The model defines a protocol independent YANG data model with layer 3 | |||
3 topology information. It is separate from and not linked with data | topology information. It is separate from and not linked with data | |||
models that are used to configure routing protocols or routing | models that are used to configure routing protocols or routing | |||
information. This includes e.g. model "ietf-routing" [RFC8022] and | information. This includes e.g. model "ietf-routing" [RFC8022] and | |||
model "ietf-fb-rib" [I-D.draft-acee-rtgwg-yang-rib-extend]. | model "ietf-fb-rib" [I-D.draft-acee-rtgwg-yang-rib-extend]. | |||
The model obeys the requirements for the ephemeral state found in the | The model obeys the requirements for the ephemeral state found in the | |||
document [RFC8242]. For ephemeral topology data that is server | document [RFC8242]. For ephemeral topology data that is server | |||
provided, the process tasked with maintaining topology information | provided, the process tasked with maintaining topology information | |||
will load information from the routing process (such as OSPF) into | will load information from the routing process (such as OSPF) into | |||
the data model without relying on a configuration datastore. | the data model without relying on a configuration datastore. | |||
skipping to change at page 15, line 46 ¶ | skipping to change at page 15, line 46 ¶ | |||
URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state | URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state | |||
Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
This document registers the following YANG modules in the "YANG | This document registers the following YANG modules in the "YANG | |||
Module Names" registry [RFC6020]: | Module Names" registry [RFC6020]: | |||
Name: ietf-l3-unicast-topology | Name: ietf-l3-unicast-topology | |||
Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology | Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology | |||
Prefix: l3t | Prefix: l3t | |||
Reference: draft-ietf-i2rs-yang-l3-topology-13.txt (RFC form) | Reference: draft-ietf-i2rs-yang-l3-topology-14.txt (RFC form) | |||
Name: ietf-l3-unicast-topology-state | Name: ietf-l3-unicast-topology-state | |||
Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state | Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state | |||
Prefix: l3t-s | Prefix: l3t-s | |||
Reference: draft-ietf-i2rs-yang-l3-topology-13.txt (RFC form) | Reference: draft-ietf-i2rs-yang-l3-topology-14.txt (RFC form) | |||
9. Security Considerations | 9. Security Considerations | |||
The YANG module defined in this document is designed to be accessed | The YANG module defined in this document is designed to be accessed | |||
via network management protocols such as NETCONF [RFC6241] or | via network management protocols such as NETCONF [RFC6241] or | |||
RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | |||
layer, and the mandatory-to-implement secure transport is Secure | layer, and the mandatory-to-implement secure transport is Secure | |||
Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | |||
mandatory-to-implement secure transport is TLS [RFC5246]. | mandatory-to-implement secure transport is TLS [RFC5246]. | |||
skipping to change at page 17, line 30 ¶ | skipping to change at page 17, line 30 ¶ | |||
o Tony Tkacik | o Tony Tkacik | |||
o Aleksandr Zhdankin, Cisco | o Aleksandr Zhdankin, Cisco | |||
11. Acknowledgements | 11. Acknowledgements | |||
We wish to acknowledge the helpful contributions, comments, and | We wish to acknowledge the helpful contributions, comments, and | |||
suggestions that were received from Alia Atlas, Andy Bierman, Benoit | suggestions that were received from Alia Atlas, Andy Bierman, Benoit | |||
Claise, Joel Halpern, Susan Hares, Ladislav Lhotka, Carl Moberg, | Claise, Joel Halpern, Susan Hares, Ladislav Lhotka, Carl Moberg, | |||
Carlos Pignataro, Juergen Schoenwaelder, and Kent Watsen. | Carlos Pignataro, Juergen Schoenwaelder, Michal Vasco, and Kent | |||
Watsen. | ||||
12. References | 12. References | |||
12.1. Normative References | 12.1. Normative References | |||
[I-D.draft-ietf-i2rs-yang-network-topo] | [I-D.draft-ietf-i2rs-yang-network-topo] | |||
Clemm, A., Medved, J., Varga, R., Bahadur, N., | Clemm, A., Medved, J., Varga, R., Bahadur, N., | |||
Ananthakrishnan, H., and X. Liu, "A YANG Data Model for | Ananthakrishnan, H., and X. Liu, "A YANG Data Model for | |||
Network Topologies", I-D draft-ietf-i2rs-yang-network- | Network Topologies", I-D draft-ietf-i2rs-yang-network- | |||
topo-18, November 2017. | topo-19, December 2017. | |||
[I-D.draft-ietf-netmod-revised-datastores] | [I-D.draft-ietf-netmod-revised-datastores] | |||
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "A Revised Conceptual Model for YANG | and R. Wilton, "A Revised Conceptual Model for YANG | |||
Datastores", I-D draft-ietf-netmod-revised-datastores-02, | Datastores", I-D draft-ietf-netmod-revised-datastores-06, | |||
May 2017. | October 2017. | |||
[RFC1195] Callon, R., "Use of OSI IS-IS for Routing in TCP/IP and | [RFC1195] Callon, R., "Use of OSI IS-IS for Routing in TCP/IP and | |||
Dual Environments", RFC 1195, December 1990. | Dual Environments", RFC 1195, December 1990. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to indicate | |||
requirement levels", RFC 2119, March 1997. | requirement levels", RFC 2119, March 1997. | |||
[RFC2328] Moy, J., "OSPF Version 2", RFC 2328, April 1998. | [RFC2328] Moy, J., "OSPF Version 2", RFC 2328, April 1998. | |||
[RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group | [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group | |||
skipping to change at page 18, line 44 ¶ | skipping to change at page 18, line 47 ¶ | |||
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", | |||
RFC 7950, August 2016. | RFC 7950, August 2016. | |||
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
RFC 7951, August 2016. | RFC 7951, August 2016. | |||
12.2. Informative References | 12.2. Informative References | |||
[I-D.draft-acee-rtgwg-yang-rib-extend] | [I-D.draft-acee-rtgwg-yang-rib-extend] | |||
Lindem, A. and Y. Qu, "YANG Data Model for RIB | Lindem, A. and Y. Qu, "YANG Data Model for RIB | |||
Extensions", I-D draft-acee-rtgwg-yang-rib-extend-04, | Extensions", I-D draft-acee-rtgwg-yang-rib-extend-05, | |||
October 2017. | October 2017. | |||
[I-D.draft-ietf-i2rs-usecase-reqs-summary] | [I-D.draft-ietf-i2rs-usecase-reqs-summary] | |||
Hares, S. and M. Chen, "Summary of I2RS Use Case | Hares, S. and M. Chen, "Summary of I2RS Use Case | |||
Requirements", I-D draft-ietf-i2rs-usecase-reqs-summary- | Requirements", I-D draft-ietf-i2rs-usecase-reqs-summary- | |||
03, November 2016. | 03, November 2016. | |||
[I-D.draft-ietf-netmod-yang-tree-diagrams] | [I-D.draft-ietf-netmod-yang-tree-diagrams] | |||
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", I-D | Bjorklund, M. and L. Berger, "YANG Tree Diagrams", I-D | |||
draft-ietf-netmod-yang-tree-diagrams, June 2017. | draft-ietf-netmod-yang-tree-diagrams, October 2017. | |||
[I-D.draft-ietf-teas-yang-te-topo] | [I-D.draft-ietf-teas-yang-te-topo] | |||
Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and | Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and | |||
O. Gonzalez De Dios, "YANG Data Model for TE Topologies", | O. Gonzalez De Dios, "YANG Data Model for TE Topologies", | |||
I-D draft-ietf-teas-yang-te-topo-12, July 2017. | I-D draft-ietf-teas-yang-te-topo-13, October 2017. | |||
[RFC7223] Bjorklund, M., "A YANG Data Model for Routing Management", | [RFC7223] Bjorklund, M., "A YANG Data Model for Routing Management", | |||
RFC 7223, May 2014. | RFC 7223, May 2014. | |||
[RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
Management", RFC 8022, November 2016. | Management", RFC 8022, November 2016. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", RFC 8040, January 2017. | Protocol", RFC 8040, January 2017. | |||
skipping to change at page 20, line 28 ¶ | skipping to change at page 20, line 28 ¶ | |||
in this in this document in conjunction with non-NMDA compliant | in this in this document in conjunction with non-NMDA compliant | |||
implementations, a corresponding companion module needs to be | implementations, a corresponding companion module needs to be | |||
introduced as well. This companion module, ietf-l3-unicast-topology- | introduced as well. This companion module, ietf-l3-unicast-topology- | |||
state, mirrors ietf-l3-unicast-topology. However, the module | state, mirrors ietf-l3-unicast-topology. However, the module | |||
augments ietf-network-state and ietf-network-topology-state (instead | augments ietf-network-state and ietf-network-topology-state (instead | |||
of ietf-network and ietf-network-topology) and all of its data nodes | of ietf-network and ietf-network-topology) and all of its data nodes | |||
are non-configurable. | are non-configurable. | |||
Similar considerations apply for any modules that augment ietf-l3- | Similar considerations apply for any modules that augment ietf-l3- | |||
unicast-topology, such as the example modules defined in see | unicast-topology, such as the example modules defined in see | |||
Appendix B, example-ietf-ospf-topology. For non-NMDA compliant | Appendix B, example-ospf-topology. For non-NMDA compliant | |||
implementations, companion modules will need to be introduced that | implementations, companion modules will need to be introduced that | |||
represent state information and are non-configurable, augmenting | represent state information and are non-configurable, augmenting | |||
ietf-l3-unicast-topology-state instead of ietf-l3-unicast-topology. | ietf-l3-unicast-topology-state instead of ietf-l3-unicast-topology. | |||
Because they served as examples only, companion modules for those | Because they served as examples only, companion modules for those | |||
examples are not given. | examples are not given. | |||
Like ietf-network-state and ietf-network-topology-state, ietf-l3- | Like ietf-network-state and ietf-network-topology-state, ietf-l3- | |||
unicast-topology SHOULD NOT be supported by implementations that | unicast-topology SHOULD NOT be supported by implementations that | |||
support NMDA. It is for this reason that the module is defined in | support NMDA. It is for this reason that the module is defined in | |||
the Appendix. | the Appendix. | |||
The definition of the module follows below. As the structure of the | The definition of the module follows below. As the structure of the | |||
module mirrors that of its underlying module, the YANG tree is not | module mirrors that of its underlying module, the YANG tree is not | |||
depicted separately. | depicted separately. | |||
<CODE BEGINS> file "ietf-l3-unicast-topology-state@2017-11-15.yang" | <CODE BEGINS> file "ietf-l3-unicast-topology-state@2017-12-13.yang" | |||
module ietf-l3-unicast-topology-state { | module ietf-l3-unicast-topology-state { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace | namespace | |||
"urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state"; | "urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state"; | |||
prefix "l3t-s"; | prefix "l3t-s"; | |||
import ietf-network-state { | import ietf-network-state { | |||
prefix "nw-s"; | prefix "nw-s"; | |||
} | } | |||
import ietf-network-topology-state { | import ietf-network-topology-state { | |||
prefix "nt-s"; | prefix "nt-s"; | |||
skipping to change at page 21, line 20 ¶ | skipping to change at page 21, line 20 ¶ | |||
organization | organization | |||
"IETF I2RS (Interface to the Routing System) Working Group"; | "IETF I2RS (Interface to the Routing System) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/i2rs/> | "WG Web: <http://tools.ietf.org/wg/i2rs/> | |||
WG List: <mailto:i2rs@ietf.org> | WG List: <mailto:i2rs@ietf.org> | |||
Editor: Alexander Clemm | Editor: Alexander Clemm | |||
<mailto:ludwig@clemm.org> | <mailto:ludwig@clemm.org> | |||
Editor: Jan Medved | Editor: Jan Medved | |||
<mailto:jmedved@cisco.com> | <mailto:jmedved@cisco.com> | |||
Editor: Robert Varga | Editor: Robert Varga | |||
<mailto:robert.varga@pantheon.sk> | <mailto:robert.varga@pantheon.tech> | |||
Editor: Xufeng Liu | Editor: Xufeng Liu | |||
<mailto:xliu@kuatrotech.com> | <mailto:xliu@kuatrotech.com> | |||
Editor: Nitin Bahadur | Editor: Nitin Bahadur | |||
<mailto:nitin_bahadur@yahoo.com> | <mailto:nitin_bahadur@yahoo.com> | |||
Editor: Hariharan Ananthakrishnan | Editor: Hariharan Ananthakrishnan | |||
<mailto:hari@packetdesign.com>"; | <mailto:hari@packetdesign.com>"; | |||
description | description | |||
"This module defines a model for Layer 3 Unicast topology | "This module defines a model for Layer 3 Unicast topology | |||
state, representing topology that is either learned, or topology | state, representing topology that is either learned, or topology | |||
that results from applying topology that has been configured per | that results from applying topology that has been configured per | |||
skipping to change at page 21, line 48 ¶ | skipping to change at page 21, line 48 ¶ | |||
Copyright (c) 2017 IETF Trust and the persons identified as | Copyright (c) 2017 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of | This version of this YANG module is part of | |||
draft-ietf-i2rs-yang-l3-topology-13; | draft-ietf-i2rs-yang-l3-topology-14; | |||
see the RFC itself for full legal notices. | see the RFC itself for full legal notices. | |||
NOTE TO RFC EDITOR: Please replace above reference to | NOTE TO RFC EDITOR: Please replace above reference to | |||
draft-ietf-i2rs-yang-l3-topology-13 with RFC | draft-ietf-i2rs-yang-l3-topology-14 with RFC | |||
number when published (i.e. RFC xxxx)."; | number when published (i.e. RFC xxxx)."; | |||
revision "2017-11-15" { | revision "2017-12-13" { | |||
description | description | |||
"Initial revision. | "Initial revision. | |||
NOTE TO RFC EDITOR: Please replace the following reference | NOTE TO RFC EDITOR: Please replace the following reference | |||
to draft-ietf-i2rs-yang-l3-topology-13 with | to draft-ietf-i2rs-yang-l3-topology-14 with | |||
RFC number when published (i.e. RFC xxxx)."; | RFC number when published (i.e. RFC xxxx)."; | |||
reference | reference | |||
"draft-ietf-i2rs-yang-l3-topology-13"; | "draft-ietf-i2rs-yang-l3-topology-14"; | |||
} | } | |||
augment "/nw-s:networks/nw-s:network/nw-s:network-types" { | augment "/nw-s:networks/nw-s:network/nw-s:network-types" { | |||
description | description | |||
"Introduce new network type for L3 unicast topology"; | "Introduce new network type for L3 unicast topology"; | |||
uses l3t:l3-unicast-topology-type; | uses l3t:l3-unicast-topology-type; | |||
} | } | |||
augment "/nw-s:networks/nw-s:network" { | augment "/nw-s:networks/nw-s:network" { | |||
when "nw-s:network-types/l3-unicast-topology" { | when "nw-s:network-types/l3t-s:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description | description | |||
"L3 unicast for the network as a whole"; | "L3 unicast for the network as a whole"; | |||
uses l3t:l3-topology-attributes; | uses l3t:l3-topology-attributes; | |||
} | } | |||
augment "/nw-s:networks/nw-s:network/nw-s:node" { | augment "/nw-s:networks/nw-s:network/nw-s:node" { | |||
when "../nw-s:network-types/l3-unicast-topology" { | when "../nw-s:network-types/l3t-s:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description | description | |||
"L3 unicast node level attributes "; | "L3 unicast node level attributes "; | |||
uses l3t:l3-node-attributes; | uses l3t:l3-node-attributes; | |||
} | } | |||
augment "/nw-s:networks/nw-s:network/nt-s:link" { | augment "/nw-s:networks/nw-s:network/nt-s:link" { | |||
when "../nw-s:network-types/l3-unicast-topology" { | when "../nw-s:network-types/l3t-s:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description | description | |||
"Augment topology link attributes"; | "Augment topology link attributes"; | |||
uses l3t:l3-link-attributes; | uses l3t:l3-link-attributes; | |||
} | } | |||
augment "/nw-s:networks/nw-s:network/nw-s:node/" | augment "/nw-s:networks/nw-s:network/nw-s:node/" | |||
+"nt-s:termination-point" { | +"nt-s:termination-point" { | |||
when "../../nw-s:network-types/l3-unicast-topology" { | when "../../nw-s:network-types/l3t-s:l3-unicast-topology" { | |||
description | description | |||
"Augmentation parameters apply only for networks with | "Augmentation parameters apply only for networks with | |||
L3 unicast topology"; | L3 unicast topology"; | |||
} | } | |||
description "Augment topology termination point configuration"; | description "Augment topology termination point configuration"; | |||
uses l3t:l3-termination-point-attributes; | uses l3t:l3-termination-point-attributes; | |||
} | } | |||
notification l3-node-event { | notification l3-node-event { | |||
description | description | |||
"Notification event for L3 node"; | "Notification event for L3 node"; | |||
skipping to change at page 24, line 37 ¶ | skipping to change at page 24, line 37 ¶ | |||
model which may be more comprehensive and refined than the model that | model which may be more comprehensive and refined than the model that | |||
is described here. | is described here. | |||
B.1. Example OSPF Topology | B.1. Example OSPF Topology | |||
B.1.1. Model Overview | B.1.1. Model Overview | |||
The following model shows how the Layer 3 Unicast topology model can | The following model shows how the Layer 3 Unicast topology model can | |||
be extended to cover OSFP topologies. For this purpose, a set of | be extended to cover OSFP topologies. For this purpose, a set of | |||
augmentations are introduced in a separate YANG module, "example- | augmentations are introduced in a separate YANG module, "example- | |||
ietf-ospf-topology", whose structure is depicted in the following | ospf-topology", whose structure is depicted in the following diagram. | |||
diagram. As before, the notation syntax follows | As before, the notation syntax follows | |||
[I-D.draft-ietf-netmod-yang-tree-diagrams]. | [I-D.draft-ietf-netmod-yang-tree-diagrams]. | |||
module: example-ietf-ospf-topology | module: example-ospf-topology | |||
augment /nw:networks/nw:network/nw:network-types/l3t:l3-unicast-topology: | augment /nw:networks/nw:network/nw:network-types/l3t:l3-unicast-topology: | |||
+--rw ospf! | +--rw ospf! | |||
augment /nw:networks/nw:network/l3t:l3-topology-attributes: | augment /nw:networks/nw:network/l3t:l3-topology-attributes: | |||
+--rw ospf-topology-attributes | +--rw ospf-topology-attributes | |||
+--rw area-id? area-id-type | +--rw area-id? area-id-type | |||
augment /nw:networks/nw:network/nw:node/l3t:l3-node-attributes: | augment /nw:networks/nw:network/nw:node/l3t:l3-node-attributes: | |||
+--rw ospf-node-attributes | +--rw ospf-node-attributes | |||
+--rw (router-type)? | +--rw (router-type)? | |||
| +--:(abr) | | +--:(abr) | |||
| | +--rw abr? empty | | | +--rw abr? empty | |||
skipping to change at page 26, line 26 ¶ | skipping to change at page 26, line 26 ¶ | |||
OSPF routers or interfaces. | OSPF routers or interfaces. | |||
B.1.2. OSPF Topology YANG Module | B.1.2. OSPF Topology YANG Module | |||
The OSPF Topology YANG Module is specified below. As mentioned, the | The OSPF Topology YANG Module is specified below. As mentioned, the | |||
module is intended as an example for how the Layer 3 Unicast topology | module is intended as an example for how the Layer 3 Unicast topology | |||
model can be extended to cover OSFP topologies, but it is not | model can be extended to cover OSFP topologies, but it is not | |||
normative. Accordingly, the module is not delimited with CODE BEGINS | normative. Accordingly, the module is not delimited with CODE BEGINS | |||
and CODE ENDS tags. | and CODE ENDS tags. | |||
file "example-ietf-ospf-topology@2017-11-15.yang" | file "example-ospf-topology@2017-12-13.yang" | |||
module example-ietf-ospf-topology { | module example-ospf-topology { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:example-ietf-ospf-topology"; | namespace "urn:example:example-ospf-topology"; | |||
prefix "ospft"; | prefix "ex-ospft"; | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix "yang"; | prefix "yang"; | |||
} | } | |||
import ietf-network { | import ietf-network { | |||
prefix "nw"; | prefix "nw"; | |||
} | } | |||
import ietf-network-topology { | import ietf-network-topology { | |||
prefix "nt"; | prefix "nt"; | |||
} | } | |||
import ietf-l3-unicast-topology { | import ietf-l3-unicast-topology { | |||
prefix "l3t"; | prefix "l3t"; | |||
} | } | |||
organization | description | |||
"IETF I2RS (Interface to the Routing System) Working Group"; | "This module is intended as an example for how the | |||
contact | Layer 3 Unicast topology model can be extended to cover | |||
"WG Web: <http://tools.ietf.org/wg/i2rs/> | OSFP topologies."; | |||
WG List: <mailto:i2rs@ietf.org> | typedef area-id-type { | |||
Editor: Alexander Clemm | type yang:dotted-quad; | |||
<mailto:ludwig@clemm.org> | description | |||
Editor: Jan Medved | "Area ID type."; | |||
<mailto:jmedved@cisco.com> | } | |||
Editor: Robert Varga | grouping ospf-topology-type { | |||
<mailto:robert.varga@pantheon.sk> | description | |||
Editor: Xufeng Liu | "Identifies the OSPF topology type."; | |||
<mailto:xliu@kuatrotech.com> | container ospf { | |||
Editor: Nitin Bahadur | presence "indicates OSPF Topology"; | |||
<mailto:nitin_bahadur@yahoo.com> | description | |||
Editor: Hariharan Ananthakrishnan | "Its presence identifies the OSPF topology type."; | |||
<mailto:hari@packetdesign.com>"; | } | |||
description | } | |||
"This module defines a model for OSPF network topologies. | augment "/nw:networks/nw:network/nw:network-types/" | |||
Copyright (c) 2017 IETF Trust and the persons identified as | + "l3t:l3-unicast-topology" { | |||
authors of the code. All rights reserved. | description | |||
Redistribution and use in source and binary forms, with or | "Defines the OSPF topology type."; | |||
without modification, is permitted pursuant to, and subject | uses ospf-topology-type; | |||
to the license terms contained in, the Simplified BSD License | } | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | augment "/nw:networks/nw:network/l3t:l3-topology-attributes" { | |||
Relating to IETF Documents | when "../nw:network-types/l3t:l3-unicast-topology/" + | |||
(http://trustee.ietf.org/license-info). | "ex-ospft:ospf" { | |||
This version of this YANG module is part of | description | |||
draft-ietf-i2rs-yang-l3-topology-13; | "Augment only for OSPF topology"; | |||
see the RFC itself for full legal notices. | } | |||
NOTE TO RFC EDITOR: Please replace above reference to | description | |||
draft-ietf-i2rs-yang-l3-topology-13 with RFC | "Augment topology configuration"; | |||
number when published (i.e. RFC xxxx)."; | container ospf-topology-attributes { | |||
revision "2017-11-15" { | description | |||
description | "Containing topology attributes"; | |||
"Initial revision. | leaf area-id { | |||
NOTE TO RFC EDITOR: Please replace the following reference | type area-id-type; | |||
to draft-ietf-i2rs-yang-l3-topology-13 with | description | |||
RFC number when published (i.e. RFC xxxx)."; | "OSPF area ID"; | |||
reference | } | |||
"draft-ietf-i2rs-yang-l3-topology-13"; | } | |||
} | } | |||
typedef area-id-type { | augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" { | |||
type yang:dotted-quad; | when "../../nw:network-types/l3t:l3-unicast-topology/" + | |||
description | "ex-ospft:ospf" { | |||
"Area ID type."; | description | |||
} | "Augment only for OSPF topology"; | |||
grouping ospf-topology-type { | } | |||
description | description | |||
"Identifies the OSPF topology type."; | "Augment node configuration"; | |||
container ospf { | uses ospf-node-attributes; | |||
presence "indiates OSPF Topology"; | } | |||
description | augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" { | |||
"Its presence identifies the OSPF topology type."; | when "../../nw:network-types/l3t:l3-unicast-topology/" + | |||
} | "ex-ospft:ospf" { | |||
} | description | |||
augment "/nw:networks/nw:network/nw:network-types/" | "Augment only for OSPF topology"; | |||
+ "l3t:l3-unicast-topology" { | } | |||
description | description | |||
"Defines the OSPF topology type."; | "Augment link configuration"; | |||
uses ospf-topology-type; | uses ospf-link-attributes; | |||
} | } | |||
augment "/nw:networks/nw:network/l3t:l3-topology-attributes" { | grouping ospf-node-attributes { | |||
when "../nw:network-types/l3t:l3-unicast-topology/ospf" { | description | |||
description | "OSPF node scope attributes"; | |||
"Augment only for OSPF topology"; | container ospf-node-attributes { | |||
} | description | |||
description | "Containing node attributes"; | |||
"Augment topology configuration"; | choice router-type { | |||
container ospf-topology-attributes { | description | |||
description | "Indicates router type"; | |||
"Containing topology attributes"; | case abr { | |||
leaf area-id { | leaf abr { | |||
type area-id-type; | type empty; | |||
description | description | |||
"OSPF area ID"; | "The node is ABR"; | |||
} | } | |||
} | } | |||
} | case asbr { | |||
augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" { | leaf asbr { | |||
when "../../nw:network-types/l3t:l3-unicast-topology/ospf" { | type empty; | |||
description | description | |||
"Augment only for OSPF topology"; | "The node is ASBR"; | |||
} | } | |||
description | } | |||
"Augment node configuration"; | case internal { | |||
uses ospf-node-attributes; | leaf internal { | |||
} | type empty; | |||
augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" { | description | |||
when "../../nw:network-types/l3t:l3-unicast-topology/ospf" { | "The node is internal"; | |||
description | } | |||
"Augment only for OSPF topology"; | } | |||
} | case pseudonode { | |||
description | leaf pseudonode { | |||
"Augment link configuration"; | type empty; | |||
uses ospf-link-attributes; | description | |||
} | "The node is pseudonode"; | |||
grouping ospf-node-attributes { | } | |||
description | } | |||
"OSPF node scope attributes"; | } | |||
container ospf-node-attributes { | leaf dr-interface-id { | |||
description | when "../pseudonode" { | |||
"Containing node attributes"; | description | |||
choice router-type { | "Valid only for pseudonode"; | |||
description | } | |||
"Indicates router type"; | type uint32; | |||
default "0"; | ||||
case abr { | description | |||
leaf abr { | "For pseudonodes, DR interface-id"; | |||
type empty; | } | |||
description | } | |||
"The node is ABR"; | } | |||
} | grouping ospf-link-attributes { | |||
} | description | |||
case asbr { | "OSPF link scope attributes"; | |||
leaf asbr { | container ospf-link-attributes { | |||
type empty; | description | |||
description | "Containing OSPF link attributes"; | |||
"The node is ASBR"; | } | |||
} | } // ospf-link-attributes | |||
} | augment "/l3t:l3-node-event" { | |||
case internal { | description | |||
leaf internal { | "OSPF node event"; | |||
type empty; | uses ospf-topology-type; | |||
description | uses ospf-node-attributes; | |||
"The node is internal"; | } | |||
} | augment "/l3t:l3-link-event" { | |||
} | description | |||
case pseudonode { | "OSPF link event"; | |||
leaf pseudonode { | uses ospf-topology-type; | |||
type empty; | uses ospf-link-attributes; | |||
description | } | |||
"The node is pseudonode"; | } | |||
} | ||||
} | ||||
} | ||||
leaf dr-interface-id { | ||||
when "../pseudonode" { | ||||
description | ||||
"Valid only for pseudonode"; | ||||
} | ||||
type uint32; | ||||
default "0"; | ||||
description | ||||
"For pseudonodes, DR interface-id"; | ||||
} | ||||
} | ||||
} | ||||
grouping ospf-link-attributes { | ||||
description | ||||
"OSPF link scope attributes"; | ||||
container ospf-link-attributes { | ||||
description | ||||
"Containing OSPF link attributes"; | ||||
} | ||||
} // ospf-link-attributes | ||||
augment "/l3t:l3-node-event" { | ||||
description | ||||
"OSPF node event"; | ||||
uses ospf-topology-type; | ||||
uses ospft:ospf-node-attributes; | ||||
} | ||||
augment "/l3t:l3-link-event" { | ||||
description | ||||
"OSPF link event"; | ||||
uses ospf-topology-type; | ||||
uses ospft:ospf-link-attributes; | ||||
} | ||||
} | ||||
Appendix C. An Example | Appendix C. An Example | |||
This section contains an example of an instance data tree in JSON | This section contains an example of an instance data tree in JSON | |||
encoding [RFC7951]. The example instantiates ietf-l3-unicast- | encoding [RFC7951]. The example instantiates ietf-l3-unicast- | |||
topology for the topology that is depicted in the following diagram. | topology for the topology that is depicted in the following diagram. | |||
There are three nodes, D1, D2, and D3. D1 has three termination | There are three nodes, D1, D2, and D3. D1 has three termination | |||
points, 1-0-1, 1-2-1, and 1-3-1. D2 has three termination points as | points, 1-0-1, 1-2-1, and 1-3-1. D2 has three termination points as | |||
well, 2-1-1, 2-0-1, and 2-3-1. D3 has two termination points, 3-1-1 | well, 2-1-1, 2-0-1, and 2-3-1. D3 has two termination points, 3-1-1 | |||
and 3-2-1. In addition there are six links, two between each pair of | and 3-2-1. In addition there are six links, two between each pair of | |||
skipping to change at page 35, line 29 ¶ | skipping to change at page 34, line 29 ¶ | |||
EMail: ludwig@clemm.org | EMail: ludwig@clemm.org | |||
Jan Medved | Jan Medved | |||
Cisco | Cisco | |||
EMail: jmedved@cisco.com | EMail: jmedved@cisco.com | |||
Robert Varga | Robert Varga | |||
Pantheon Technologies SRO | Pantheon Technologies SRO | |||
EMail: robert.varga@pantheon.sk | EMail: robert.varga@pantheon.tech | |||
Xufeng Liu | Xufeng Liu | |||
Jabil | Jabil | |||
EMail: Xufeng_Liu@jabil.com | EMail: Xufeng_Liu@jabil.com | |||
Hariharan Ananthakrishnan | Hariharan Ananthakrishnan | |||
Packet Design | Packet Design | |||
EMail: hari@packetdesign.com | EMail: hari@packetdesign.com | |||
End of changes. 46 change blocks. | ||||
239 lines changed or deleted | 205 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |