draft-ietf-i2rs-yang-l3-topology-11.txt   draft-ietf-i2rs-yang-l3-topology-12.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: March 23, 2018 Cisco Expires: April 28, 2018 Cisco
R. Varga R. Varga
Pantheon Technologies SRO Pantheon Technologies SRO
X. Liu X. Liu
Ericsson Ericsson
H. Ananthakrishnan H. Ananthakrishnan
Packet Design Packet Design
N. Bahadur N. Bahadur
Bracket Computing Bracket Computing
September 19, 2017 October 25, 2017
A YANG Data Model for Layer 3 Topologies A YANG Data Model for Layer 3 Topologies
draft-ietf-i2rs-yang-l3-topology-11.txt draft-ietf-i2rs-yang-l3-topology-12.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 March 23, 2018. This Internet-Draft will expire on April 28, 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 6, line 6 skipping to change at page 6, line 6
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-
l3-unicast-topology". Its structure is depicted in the following l3-unicast-topology". Its structure is depicted in the following
diagram. The notation syntax follows diagram. The notation syntax follows
[I-D.draft-ietf-netmod-yang-tree-diagrams]. For purposes of brevity, [I-D.draft-ietf-netmod-yang-tree-diagrams]. For purposes of brevity,
notifications are not depicted. notifications are not depicted.
module: ietf-l3-unicast-topology module: ietf-l3-unicast-topology
augment /nd:networks/nd:network/nd:network-types: augment /nw:networks/nw:network/nw:network-types:
+--rw l3-unicast-topology! +--rw l3-unicast-topology!
augment /nd:networks/nd:network: augment /nw:networks/nw:network:
+--rw l3-topology-attributes +--rw l3-topology-attributes
+--rw name? string +--rw name? string
+--rw flag* l3-flag-type +--rw flag* l3-flag-type
augment /nd:networks/nd:network/nd:node: augment /nw:networks/nw:network/nw:node:
+--rw l3-node-attributes +--rw l3-node-attributes
+--rw name? inet:domain-name +--rw name? inet:domain-name
+--rw flag* node-flag-type +--rw flag* node-flag-type
+--rw router-id* inet:ip-address +--rw router-id* inet:ip-address
+--rw prefix* [prefix] +--rw prefix* [prefix]
+--rw prefix inet:ip-prefix +--rw prefix inet:ip-prefix
+--rw metric? uint32 +--rw metric? uint32
+--rw flag* prefix-flag-type +--rw flag* prefix-flag-type
augment /nd:networks/nd:network/lnk:link: augment /nw:networks/nw:network/nt:link:
+--rw l3-link-attributes +--rw l3-link-attributes
+--rw name? string +--rw name? string
+--rw flag* link-flag-type +--rw flag* link-flag-type
+--rw metric1? uint64 +--rw metric1? uint64
+--rw metric2? uint64 +--rw metric2? uint64
augment /nd:networks/nd:network/nd:node/lnk:termination-point: augment /nw:networks/nw:network/nw:node/nt:termination-point:
+--rw l3-termination-point-attributes +--rw l3-termination-point-attributes
+--rw (termination-point-type)? +--rw (termination-point-type)?
+--:(ip) +--:(ip)
| +--rw ip-address* inet:ip-address | +--rw ip-address* inet:ip-address
+--:(unnumbered) +--:(unnumbered)
| +--rw unnumbered-id? uint32 | +--rw unnumbered-id? uint32
+--:(interface-name) +--:(interface-name)
+--rw interface-name? string +--rw interface-name? string
The module augments the original ietf-network and ietf-network- The module augments the original ietf-network and ietf-network-
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-09-19.yang" <CODE BEGINS> file "ietf-l3-unicast-topology@2017-10-25.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 "nd"; prefix "nw";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "lnk"; prefix "nt";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
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
skipping to change at page 8, line 27 skipping to change at page 8, line 27
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-11; draft-ietf-i2rs-yang-l3-topology-12;
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-11 with RFC draft-ietf-i2rs-yang-l3-topology-12 with RFC
number when published (i.e. RFC xxxx)."; number when published (i.e. RFC xxxx).";
revision "2017-09-19" { revision "2017-10-25" {
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-11 with to draft-ietf-i2rs-yang-l3-topology-12 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-11"; "draft-ietf-i2rs-yang-l3-topology-12";
} }
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 12, line 50 skipping to change at page 12, line 50
RFC 7223. It should be noted that data type if-ref of RFC 7223. It should be noted that data type if-ref of
RFC 7223 cannot be used directly, as this data type RFC 7223 cannot be used directly, as this data type
is used to reference an interface in a datastore of is used to reference an interface in a datastore of
a single node in the network, not to uniquely a single node in the network, not to uniquely
reference interfaces across a network."; reference interfaces across a network.";
} }
} }
} }
} }
} }
augment "/nd:networks/nd:network/nd: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 "/nd:networks/nd:network" { augment "/nw:networks/nw:network" {
when "nd:network-types/l3-unicast-topology" { when "nw:network-types/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 "/nd:networks/nd:network/nd:node" { augment "/nw:networks/nw:network/nw:node" {
when "../nd:network-types/l3-unicast-topology" { when "../nw:network-types/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 "/nd:networks/nd:network/lnk:link" { augment "/nw:networks/nw:network/nt:link" {
when "../nd:network-types/l3-unicast-topology" { when "../nw:network-types/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 "/nd:networks/nd:network/nd:node/" augment "/nw:networks/nw:network/nw:node/"
+"lnk:termination-point" { +"nt:termination-point" {
when "../../nd:network-types/l3-unicast-topology" { when "../../nw:network-types/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";
leaf l3-event-type { leaf l3-event-type {
type l3-event-type; type l3-event-type;
description description
"Event type"; "Event type";
} }
uses nd:node-ref; uses nw:node-ref;
uses l3-unicast-topology-type; uses l3-unicast-topology-type;
uses l3-node-attributes; uses l3-node-attributes;
} }
notification l3-link-event { notification l3-link-event {
description description
"Notification event for L3 link"; "Notification event for L3 link";
leaf l3-event-type { leaf l3-event-type {
type l3-event-type; type l3-event-type;
description description
"Event type"; "Event type";
} }
uses lnk:link-ref; uses nt:link-ref;
uses l3-unicast-topology-type; uses l3-unicast-topology-type;
uses l3-link-attributes; uses l3-link-attributes;
} }
notification l3-prefix-event { notification l3-prefix-event {
description description
"Notification event for L3 prefix"; "Notification event for L3 prefix";
leaf l3-event-type { leaf l3-event-type {
type l3-event-type; type l3-event-type;
description description
"Event type"; "Event type";
} }
uses nd:node-ref; uses nw:node-ref;
uses l3-unicast-topology-type; uses l3-unicast-topology-type;
container prefix { container prefix {
description description
"Containing L3 prefix attributes"; "Containing L3 prefix attributes";
uses l3-prefix-attributes; uses l3-prefix-attributes;
} }
} }
notification termination-point-event { notification termination-point-event {
description description
"Notification event for L3 termination point"; "Notification event for L3 termination point";
leaf l3-event-type { leaf l3-event-type {
type l3-event-type; type l3-event-type;
description description
"Event type"; "Event type";
} }
uses lnk:tp-ref; uses nt:tp-ref;
uses l3-unicast-topology-type; uses l3-unicast-topology-type;
uses l3-termination-point-attributes; uses l3-termination-point-attributes;
} }
} }
<CODE ENDS> <CODE ENDS>
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
skipping to change at page 15, line 22 skipping to change at page 15, line 22
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 moodel defines a protocol independent YANG data model with layer
3 topology information. It is separate from and not linked with data 3 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 [I-D.draft-ietf-i2rs-ephemeral-state]. For ephemeral document [RFC8242]. For ephemeral topology data that is server
topology data that is server provided, the process tasked with provided, the process tasked with maintaining topology information
maintaining topology information will load information from the will load information from the routing process (such as OSPF) into
routing process (such as OSPF) into the data model without relying on the data model without relying on a configuration datastore.
a configuration datastore.
8. IANA Considerations 8. IANA Considerations
This document registers the following namespace URIs in the "IETF XML This document registers the following namespace URIs in the "IETF XML
Registry" [RFC3688]: Registry" [RFC3688]:
URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology
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.
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-11.txt (RFC form) Reference: draft-ietf-i2rs-yang-l3-topology-12.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-11.txt (RFC form) Reference: draft-ietf-i2rs-yang-l3-topology-12.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 18, line 41 skipping to change at page 18, line 41
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991,
July 2013. July 2013.
[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.
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-02, Extensions", I-D draft-acee-rtgwg-yang-rib-extend-04,
October 2016. October 2017.
[I-D.draft-ietf-i2rs-ephemeral-state]
Haas, J. and S. Hares, "I2RS Ephemeral State
Requirements", I-D draft-ietf-i2rs-ephemeral-state-23,
November 2016.
[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, June 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-09, June 2017. I-D draft-ietf-teas-yang-te-topo-12, July 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.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", RFC 8174, May 2017. 2119 Key Words", RFC 8174, May 2017.
[RFC8242] Haas, J. and S. Hares, "I2RS Ephemeral State
Requirements", RFC 8242, September 2017.
Appendix A. Companion YANG model for non-NMDA compliant implementations Appendix A. Companion YANG model for non-NMDA compliant implementations
The YANG module ietf-l3-unicast-topology defined in this document The YANG module ietf-l3-unicast-topology defined in this document
augments two modules, ietf-network and ietf-network-topology, that augments two modules, ietf-network and ietf-network-topology, that
are designed to be used in conjunction with implementations that are designed to be used in conjunction with implementations that
support the Network Management Datastore Architecture (NMDA) defined support the Network Management Datastore Architecture (NMDA) defined
in [I-D.draft-ietf-netmod-revised-datastores]. In order to allow in [I-D.draft-ietf-netmod-revised-datastores]. 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, a set of companion modules have been defined that supported, a set of companion modules have been defined that
represent a state model of networks and network topologies, ietf- represent a state model of networks and network topologies, ietf-
skipping to change at page 20, line 44 skipping to change at page 20, line 44
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-09-19.yang" <CODE BEGINS> file "ietf-l3-unicast-topology-state@2017-10-25.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 "nd-s"; prefix "nw-s";
} }
import ietf-network-topology-state { import ietf-network-topology-state {
prefix "lnk-s"; prefix "nt-s";
} }
import ietf-l3-unicast-topology { import ietf-l3-unicast-topology {
prefix "l3t"; prefix "l3t";
} }
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
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-11; draft-ietf-i2rs-yang-l3-topology-12;
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-11 with RFC draft-ietf-i2rs-yang-l3-topology-12 with RFC
number when published (i.e. RFC xxxx)."; number when published (i.e. RFC xxxx).";
revision "2017-09-19" { revision "2017-10-25" {
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-11 with to draft-ietf-i2rs-yang-l3-topology-12 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-11"; "draft-ietf-i2rs-yang-l3-topology-12";
} }
augment "/nw-s:networks/nw-s:network/nw-s:network-types" {
augment "/nd-s:networks/nd-s:network/nd-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 "/nd-s:networks/nd-s:network" { augment "/nw-s:networks/nw-s:network" {
when "nd-s:network-types/l3-unicast-topology" { when "nw-s:network-types/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 "/nd-s:networks/nd-s:network/nd-s:node" { augment "/nw-s:networks/nw-s:network/nw-s:node" {
when "../nd-s:network-types/l3-unicast-topology" { when "../nw-s:network-types/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 "/nd-s:networks/nd-s:network/lnk-s:link" { augment "/nw-s:networks/nw-s:network/nt-s:link" {
when "../nd-s:network-types/l3-unicast-topology" { when "../nw-s:network-types/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 "/nd-s:networks/nd-s:network/nd-s:node/" augment "/nw-s:networks/nw-s:network/nw-s:node/"
+"lnk-s:termination-point" { +"nt-s:termination-point" {
when "../../nw-s:network-types/l3-unicast-topology" {
when "../../nd-s:network-types/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";
leaf l3-event-type { leaf l3-event-type {
type l3t:l3-event-type; type l3t:l3-event-type;
description description
"Event type"; "Event type";
} }
uses nd-s:node-ref; uses nw-s:node-ref;
uses l3t:l3-unicast-topology-type; uses l3t:l3-unicast-topology-type;
uses l3t:l3-node-attributes; uses l3t:l3-node-attributes;
} }
notification l3-link-event { notification l3-link-event {
description description
"Notification event for L3 link"; "Notification event for L3 link";
leaf l3-event-type { leaf l3-event-type {
type l3t:l3-event-type; type l3t:l3-event-type;
description description
"Event type"; "Event type";
} }
uses lnk-s:link-ref; uses nt-s:link-ref;
uses l3t:l3-unicast-topology-type; uses l3t:l3-unicast-topology-type;
uses l3t:l3-link-attributes; uses l3t:l3-link-attributes;
} }
notification l3-prefix-event { notification l3-prefix-event {
description description
"Notification event for L3 prefix"; "Notification event for L3 prefix";
leaf l3-event-type { leaf l3-event-type {
type l3t:l3-event-type; type l3t:l3-event-type;
description description
"Event type"; "Event type";
} }
uses nd-s:node-ref; uses nw-s:node-ref;
uses l3t:l3-unicast-topology-type; uses l3t:l3-unicast-topology-type;
container prefix { container prefix {
description description
"Containing L3 prefix attributes"; "Containing L3 prefix attributes";
uses l3t:l3-prefix-attributes; uses l3t:l3-prefix-attributes;
} }
} }
notification termination-point-event { notification termination-point-event {
description description
"Notification event for L3 termination point"; "Notification event for L3 termination point";
leaf l3-event-type { leaf l3-event-type {
type l3t:l3-event-type; type l3t:l3-event-type;
description description
"Event type"; "Event type";
} }
uses lnk-s:tp-ref; uses nt-s:tp-ref;
uses l3t:l3-unicast-topology-type; uses l3t:l3-unicast-topology-type;
uses l3t:l3-termination-point-attributes; uses l3t:l3-termination-point-attributes;
} }
} }
<CODE ENDS> <CODE ENDS>
Appendix B. Extending the Model Appendix B. Extending the Model
The model can be extended for specific Layer 3 Unicast types. The model can be extended for specific Layer 3 Unicast types.
skipping to change at page 25, line 5 skipping to change at page 25, line 5
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 ietf-ospf-topology", whose structure is depicted in the following
diagram. As before, the notation syntax follows diagram. 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-ietf-ospf-topology
augment /nd:networks/nd:network/nd:network-types/l3t:l3-unicast-topology: augment /nw:networks/nw:network/nw:network-types/l3t:l3-unicast-topology:
+--rw ospf! +--rw ospf!
augment /nd:networks/nd: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 /nd:networks/nd:network/nd: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
| +--:(asbr) | +--:(asbr)
| | +--rw asbr? empty | | +--rw asbr? empty
| +--:(internal) | +--:(internal)
| | +--rw internal? empty | | +--rw internal? empty
| +--:(pseudonode) | +--:(pseudonode)
| +--rw pseudonode? empty | +--rw pseudonode? empty
+--rw dr-interface-id? uint32 +--rw dr-interface-id? uint32
augment /nd:networks/nd:network/lnk:link/l3t:l3-link-attributes: augment /nw:networks/nw:network/nt:link/l3t:l3-link-attributes:
+--rw ospf-link-attributes +--rw ospf-link-attributes
augment /l3t:l3-node-event: augment /l3t:l3-node-event:
+---- ospf! +---- ospf!
+---- ospf-node-attributes +---- ospf-node-attributes
+---- (router-type)? +---- (router-type)?
| +--:(abr) | +--:(abr)
| | +---- abr? empty | | +---- abr? empty
| +--:(asbr) | +--:(asbr)
| | +---- asbr? empty | | +---- asbr? empty
| +--:(internal) | +--:(internal)
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-09-19.yang" file "example-ietf-ospf-topology@2017-10-25.yang"
module example-ietf-ospf-topology { module example-ietf-ospf-topology {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:example-ietf-ospf-topology"; namespace "urn:ietf:params:xml:ns:yang:example-ietf-ospf-topology";
prefix "ospft"; prefix "ospft";
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
import ietf-network { import ietf-network {
prefix "nd"; prefix "nw";
} }
import ietf-network-topology { import ietf-network-topology {
prefix "lnk"; prefix "nt";
} }
import ietf-l3-unicast-topology { import ietf-l3-unicast-topology {
prefix "l3t"; prefix "l3t";
} }
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.sk>
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 OSPF network topologies. "This module defines a model for OSPF network 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-11; draft-ietf-i2rs-yang-l3-topology-12;
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-11 with RFC draft-ietf-i2rs-yang-l3-topology-12 with RFC
number when published (i.e. RFC xxxx)."; number when published (i.e. RFC xxxx).";
revision "2017-09-19" { revision "2017-10-25" {
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-11 with to draft-ietf-i2rs-yang-l3-topology-12 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-11"; "draft-ietf-i2rs-yang-l3-topology-12";
} }
typedef area-id-type { typedef area-id-type {
type yang:dotted-quad; type yang:dotted-quad;
description description
"Area ID type."; "Area ID type.";
} }
grouping ospf-topology-type { grouping ospf-topology-type {
description description
"Identifies the OSPF topology type."; "Identifies the OSPF topology type.";
container ospf { container ospf {
presence "indiates OSPF Topology"; presence "indiates OSPF Topology";
description description
"Its presence identifies the OSPF topology type."; "Its presence identifies the OSPF topology type.";
} }
} }
augment "/nd:networks/nd:network/nd:network-types/" augment "/nw:networks/nw:network/nw:network-types/"
+ "l3t:l3-unicast-topology" { + "l3t:l3-unicast-topology" {
description description
"Defines the OSPF topology type."; "Defines the OSPF topology type.";
uses ospf-topology-type; uses ospf-topology-type;
} }
augment "/nd:networks/nd:network/l3t:l3-topology-attributes" { augment "/nw:networks/nw:network/l3t:l3-topology-attributes" {
when "../nd:network-types/l3t:l3-unicast-topology/ospf" { when "../nw:network-types/l3t:l3-unicast-topology/ospf" {
description description
"Augment only for OSPF topology"; "Augment only for OSPF topology";
} }
description description
"Augment topology configuration"; "Augment topology configuration";
container ospf-topology-attributes { container ospf-topology-attributes {
description description
"Containing topology attributes"; "Containing topology attributes";
leaf area-id { leaf area-id {
type area-id-type; type area-id-type;
description description
"OSPF area ID"; "OSPF area ID";
} }
} }
} }
augment "/nd:networks/nd:network/nd:node/l3t:l3-node-attributes" { augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" {
when "../../nd:network-types/l3t:l3-unicast-topology/ospf" { when "../../nw:network-types/l3t:l3-unicast-topology/ospf" {
description description
"Augment only for OSPF topology"; "Augment only for OSPF topology";
} }
description description
"Augment node configuration"; "Augment node configuration";
uses ospf-node-attributes; uses ospf-node-attributes;
} }
augment "/nd:networks/nd:network/lnk:link/l3t:l3-link-attributes" { augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" {
when "../../nd:network-types/l3t:l3-unicast-topology/ospf" { when "../../nw:network-types/l3t:l3-unicast-topology/ospf" {
description description
"Augment only for OSPF topology"; "Augment only for OSPF topology";
} }
description description
"Augment link configuration"; "Augment link configuration";
uses ospf-link-attributes; uses ospf-link-attributes;
} }
grouping ospf-node-attributes { grouping ospf-node-attributes {
description description
"OSPF node scope attributes"; "OSPF node scope attributes";
container ospf-node-attributes { container ospf-node-attributes {
description description
"Containing node attributes"; "Containing node attributes";
choice router-type { choice router-type {
description description
"Indicates router type"; "Indicates router type";
case abr { case abr {
leaf abr { leaf abr {
type empty; type empty;
description description
"The node is ABR"; "The node is ABR";
} }
} }
case asbr { case asbr {
leaf asbr { leaf asbr {
type empty; type empty;
description description
"The node is ASBR"; "The node is ASBR";
} }
} }
case internal { case internal {
leaf internal { leaf internal {
type empty; type empty;
description description
"The node is internal"; "The node is internal";
} }
} }
case pseudonode { case pseudonode {
leaf pseudonode { leaf pseudonode {
type empty; type empty;
description description
"The node is pseudonode"; "The node is pseudonode";
} }
} }
} }
leaf dr-interface-id { leaf dr-interface-id {
when "../pseudonode" { when "../pseudonode" {
description description
"Valid only for pseudonode"; "Valid only for pseudonode";
} }
type uint32; type uint32;
default "0"; default "0";
description description
"For pseudonodes, DR interface-id"; "For pseudonodes, DR interface-id";
} }
} }
} }
grouping ospf-link-attributes { grouping ospf-link-attributes {
description description
"OSPF link scope attributes"; "OSPF link scope attributes";
container ospf-link-attributes { container ospf-link-attributes {
description description
"Containing OSPF link attributes"; "Containing OSPF link attributes";
} }
} // ospf-link-attributes } // ospf-link-attributes
augment "/l3t:l3-node-event" { augment "/l3t:l3-node-event" {
description description
"OSPF node event"; "OSPF node event";
uses ospf-topology-type; uses ospf-topology-type;
uses ospft:ospf-node-attributes; uses ospft:ospf-node-attributes;
} }
augment "/l3t:l3-link-event" { augment "/l3t:l3-link-event" {
description description
"OSPF link event"; "OSPF link event";
uses ospf-topology-type; uses ospf-topology-type;
uses ospft:ospf-link-attributes; uses ospft:ospf-link-attributes;
} }
} }
Authors' Addresses Authors' Addresses
Alexander Clemm Alexander Clemm
Huawei Huawei
EMail: ludwig@clemm.org EMail: ludwig@clemm.org
Jan Medved Jan Medved
Cisco Cisco
 End of changes. 56 change blocks. 
260 lines changed or deleted 255 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/