draft-ietf-i2rs-yang-l2-network-topology-09.txt   draft-ietf-i2rs-yang-l2-network-topology-10.txt 
Network Working Group J. Dong Network Working Group J. Dong
Internet-Draft X. Wei Internet-Draft X. Wei
Intended status: Standards Track Q. Wu Intended status: Standards Track Q. Wu
Expires: February 19, 2020 Huawei Expires: February 29, 2020 Huawei
M. Boucadair M. Boucadair
Orange Orange
A. Liu A. Liu
Tecent Tecent
August 18, 2019 August 28, 2019
A YANG Data Model for Layer-2 Network Topologies A YANG Data Model for Layer-2 Network Topologies
draft-ietf-i2rs-yang-l2-network-topology-09 draft-ietf-i2rs-yang-l2-network-topology-10
Abstract Abstract
This document defines a YANG data model for Layer 2 network This document defines a YANG data model for Layer 2 network
topologies. topologies.
Editorial Note (To be removed by RFC Editor) Editorial Note (To be removed by RFC Editor)
Please update these statements within the document with the RFC Please update these statements within the document with the RFC
number to be assigned to this document: number to be assigned to this document:
skipping to change at page 1, line 49 skipping to change at page 1, line 49
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 February 19, 2020. This Internet-Draft will expire on February 29, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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 35 skipping to change at page 2, line 35
4. Layer 2 Topology YANG Module . . . . . . . . . . . . . . . . 6 4. Layer 2 Topology YANG Module . . . . . . . . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.1. Normative References . . . . . . . . . . . . . . . . . . 19 8.1. Normative References . . . . . . . . . . . . . . . . . . 19
8.2. Informative References . . . . . . . . . . . . . . . . . 21 8.2. Informative References . . . . . . . . . . . . . . . . . 21
Appendix A. Companion YANG Module for Non-NMDA Compliant Appendix A. Companion YANG Module for Non-NMDA Compliant
Implementations . . . . . . . . . . . . . . . . . . 22 Implementations . . . . . . . . . . . . . . . . . . 22
Appendix B. An Example . . . . . . . . . . . . . . . . . . . . . 26 Appendix B. An Example . . . . . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31
1. Introduction 1. Introduction
[RFC8345] defines the YANG [RFC6020] [RFC7950] data models of the [RFC8345] defines the YANG [RFC6020] [RFC7950] data models of the
abstract (generic) network and network topology. Such models can be abstract (generic) network and network topology. Such models can be
augmented with technology-specific details to build more specific augmented with technology-specific details to build more specific
topology models. topology models.
This document defines the YANG data model for Layer 2 network This document defines the YANG data model for Layer 2 network
topologies by augmenting the generic network and network topology topologies by augmenting the generic network and network topology
skipping to change at page 3, line 31 skipping to change at page 3, line 31
technologies. It can be used to describe both the physical and the technologies. It can be used to describe both the physical and the
logical (virtual) L2 network topologies. logical (virtual) L2 network topologies.
The relationship between the Layer 2 topology module and the generic The relationship between the Layer 2 topology module and the generic
network and network topology module is shown in Figure 1. In order network and network topology module is shown in Figure 1. In order
to represent a Layer 2 network topology, the generic network and to represent a Layer 2 network topology, the generic network and
topology models are augmented with Layer-2 specific information, such topology models are augmented with Layer-2 specific information, such
as the identifiers, descriptions, attributes and states of the as the identifiers, descriptions, attributes and states of the
Layer-2 networks, nodes, links and termination points. Some of the Layer-2 networks, nodes, links and termination points. Some of the
information may be collected via Link Layer Discovery Protocol (LLDP) information may be collected via Link Layer Discovery Protocol (LLDP)
or other Layer-2 protocols, and some of them may be locally [IEEE802.1AB] or other Layer-2 protocols, and some of them may be
configured. locally configured.
+---------------------+ +---------------------+
| ietf-network | | ietf-network |
+----------^----------+ +----------^----------+
| |
| |
+---------------------+ +---------------------+
|ietf-network-topology| |ietf-network-topology|
+----------^----------+ +----------^----------+
| |
skipping to change at page 5, line 21 skipping to change at page 5, line 21
+--ro network-ref? +--ro network-ref?
+--ro l2-network! +--ro l2-network!
+--ro l2-termination-point-attributes +--ro l2-termination-point-attributes
The L2-topology module augments the generic 'ietf-network' and 'ietf- The L2-topology module augments the generic 'ietf-network' and 'ietf-
network-topology' modules as follows: network-topology' modules as follows:
o A new network type "l2-network-type" is introduced. This is o A new network type "l2-network-type" is introduced. This is
represented by a container object, and is inserted under the represented by a container object, and is inserted under the
"network-types" container of the generic 'ietf-network' module "network-types" container of the generic 'ietf-network' module
defned in [RFC8345]. defined in [RFC8345].
o Additional network attributes are introduced in a grouping "l2- o Additional network attributes are introduced in a grouping "l2-
network-attributes", which augments the "network" list of the network-attributes", which augments the "network" list of the
'ietf-network' module. The attributes include Layer-2 network 'ietf-network' module. The attributes include Layer-2 network
name and a set of flags. Each type of flag is represented by a name and a set of flags. Each type of flag is represented by a
separate identity. separate identity.
o Additional data objects for Layer-2 nodes are introduced by o Additional data objects for Layer-2 nodes are introduced by
augmenting the "node" list of the generic 'ietf-network' module. augmenting the "node" list of the generic 'ietf-network' module.
New objects include Layer-2 node identifier, description, New objects include Layer-2 node identifier, description,
skipping to change at page 6, line 8 skipping to change at page 6, line 8
o Links in the 'ietf-network-topology' module are augmented as well o Links in the 'ietf-network-topology' module are augmented as well
with a set of Layer-2 parameters, allowing to associate a link with a set of Layer-2 parameters, allowing to associate a link
with a name, a set of Layer-2 link attributes and flags. with a name, a set of Layer-2 link attributes and flags.
o The optional L2 technology specific attributes are introduced in o The optional L2 technology specific attributes are introduced in
this module as Layer-2 features. this module as Layer-2 features.
4. Layer 2 Topology YANG Module 4. Layer 2 Topology YANG Module
This module uses the common YANG types defined in This module uses the common YANG types defined in
[RFC6991][RFC7224][IEEE802.1Q] and types defined in [RFC8345], and it [RFC6991][RFC7224][IEEE802.1Qcp] and types defined in [RFC8345], and
references [RFC4761][RFC4762][RFC6325][RFC6326][RFC7348][RFC4202]. it references [RFC4761][RFC4762][RFC6325][RFC6326][RFC7348][RFC4202].
<CODE BEGINS> file "ietf-l2-topology@2019-06-04.yang" <CODE BEGINS> file "ietf-l2-topology@2019-06-04.yang"
module ietf-l2-topology { module ietf-l2-topology {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology"; namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology";
prefix "l2t"; prefix "l2t";
import ietf-network { import ietf-network {
prefix "nw"; prefix "nw";
reference reference
skipping to change at page 13, line 8 skipping to change at page 13, line 8
description "Link name."; description "Link name.";
} }
leaf-list flag { leaf-list flag {
type link-flag-type; type link-flag-type;
description "Link flags."; description "Link flags.";
} }
leaf rate { leaf rate {
type decimal64 { type decimal64 {
fraction-digits 2; fraction-digits 2;
} }
units "Mbps";
description "Link rate."; description "Link rate.";
} }
leaf delay { leaf delay {
type uint32; type uint32;
description "Link delay in microseconds."; description "Link delay in microseconds.";
} }
leaf-list srlg { leaf-list srlg {
type uint32; type uint32;
description description
"List of Shared Risk Link Groups "List of Shared Risk Link Groups
this link belongs to."; this link belongs to.";
skipping to change at page 13, line 39 skipping to change at page 13, line 39
description "L2 termination point attributes"; description "L2 termination point attributes";
container l2-termination-point-attributes { container l2-termination-point-attributes {
description "Containing L2 TP attributes"; description "Containing L2 TP attributes";
leaf description { leaf description {
type string; type string;
description "Port description."; description "Port description.";
} }
leaf maximum-frame-size { leaf maximum-frame-size {
type uint32; type uint32;
description "Maximum frame size."; description "Maximum L2 frame size. If L2 frame is an ethernet
frame, the ethernet header should be included; if L2 frame is
other type (e.g.,PPP), the L2 header should be
included.";
} }
choice l2-termination-point-type { choice l2-termination-point-type {
description description
"Indicates termination-point type "Indicates termination-point type
specific attributes."; specific attributes.";
case ethernet { case ethernet {
leaf mac-address { leaf mac-address {
type yang:mac-address; type yang:mac-address;
description "Interface MAC address."; description "Interface MAC address.";
skipping to change at page 14, line 4 skipping to change at page 14, line 6
choice l2-termination-point-type { choice l2-termination-point-type {
description description
"Indicates termination-point type "Indicates termination-point type
specific attributes."; specific attributes.";
case ethernet { case ethernet {
leaf mac-address { leaf mac-address {
type yang:mac-address; type yang:mac-address;
description "Interface MAC address."; description "Interface MAC address.";
} }
leaf eth-encapsulation { leaf eth-encapsulation {
type identityref { type identityref {
base eth-encapsulation-type; base eth-encapsulation-type;
} }
description description
"Encapsulation type of this "Encapsulation type of this
ternimation point."; termination point.";
} }
leaf port-vlan-id { leaf port-vlan-id {
if-feature VLAN; if-feature VLAN;
type dot1q-type:vlanid; type dot1q-type:vlanid;
description "Port VLAN ID is the VLAN id that description "Port VLAN ID is the VLAN id that
will be assigned to any untagged frames entering will be assigned to any untagged frames entering
the switch on the specific port."; the switch on the specific port.";
} }
list vlan-id-name { list vlan-id-name {
if-feature VLAN; if-feature VLAN;
key "vlan-id"; key "vlan-id";
description "Interface configured VLANs."; description "Interface configured VLANs.";
leaf vlan-id { leaf vlan-id {
type dot1q-type:vlanid; type dot1q-type:vlanid;
description "VLAN ID."; description "VLAN ID.";
} }
leaf vlan-name { leaf vlan-name {
type string; type string {
length "1..31";
}
description "VLAN name."; description "VLAN name.";
} }
} }
} //case ethernet } //case ethernet
case legacy { case legacy {
leaf layer-2-address { leaf layer-2-address {
type yang:phys-address; type yang:phys-address;
description "Interface Layer 2 address."; description "Interface Layer 2 address.";
} }
leaf encapsulation { leaf encapsulation {
type identityref { type identityref {
base ift:iana-interface-type; base ift:iana-interface-type;
} }
description description
"Other legacy encapsulation type of this termination point."; "Other legacy encapsulation type of this
termination point.";
} }
} //case legacy such as atm, ppp, hdlc,etc. } //case legacy such as atm, ppp, hdlc,etc.
} //choice termination-point-type } //choice termination-point-type
leaf tp-state { leaf tp-state {
type enumeration { type enumeration {
enum in-use { enum in-use {
value 0; value 1;
description description
"the termination point is in forwarding state."; "the termination point is in forwarding state.";
} }
enum blocking { enum blocking {
value 1; value 2;
description description
"the termination point is in blocking state."; "the termination point is in blocking state.";
} }
enum down { enum down {
value 2; value 3;
description description
"the termination point is in down state."; "the termination point is in down state.";
} }
enum others { enum others {
value 3; value 4;
description description
"the termination point is in other state."; "the termination point is in other state.";
} }
} }
config false; config false;
description "State of the termination point"; description "State of the termination point.";
} }
} }
} // grouping l2-termination-point-attributes } // grouping l2-termination-point-attributes
/* /*
* Data nodes * Data nodes
*/ */
augment "/nw:networks/nw:network/nw:network-types" { augment "/nw:networks/nw:network/nw:network-types" {
description description
skipping to change at page 19, line 41 skipping to change at page 19, line 44
7. Acknowledgements 7. Acknowledgements
The authors would like to acknowledge the comments and suggestions The authors would like to acknowledge the comments and suggestions
received from Susan Hares, Alia Atlas, Juergen Schoenwaelder, Mach received from Susan Hares, Alia Atlas, Juergen Schoenwaelder, Mach
Chen, Alexander Clemm and Sriganesh Kini. Chen, Alexander Clemm and Sriganesh Kini.
8. References 8. References
8.1. Normative References 8.1. Normative References
[IEEE802.1Q]
"Media Access Control (MAC) Bridges and Virtual Bridged
Local Area Networks", IEEE Std 802.1Q-2018, July 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions
skipping to change at page 21, line 33 skipping to change at page 21, line 29
Ananthakrishnan, H., and X. Liu, "A YANG Data Model for Ananthakrishnan, H., and X. Liu, "A YANG Data Model for
Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March
2018, <https://www.rfc-editor.org/info/rfc8345>. 2018, <https://www.rfc-editor.org/info/rfc8345>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
8.2. Informative References 8.2. Informative References
[IEEE802.1AB]
"Station and Media Access Control Connectivity Discovery",
IEEE Std 802.1AB-2016, 2016.
[IEEE802.1ad]
"Virtual Bridged Local Area Networks Amendment 4: Provider
Bridges", IEEE Std 802.1ad-2005, December 2005.
[IEEE802.1ah]
"Virtual Bridged Local Area Networks Amendment 4: Provider
Bridges", IEEE Std 802.1ah-2008, June 2008.
[IEEE802.1Qcp]
"Bridges and Bridged Networks - Amendment: YANG Data
Model", IEEE Std 802.1Qcp-2018, 2018.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, DOI 10.17487/RFC5246, August 2008,
<https://www.rfc-editor.org/info/rfc5246>. <https://www.rfc-editor.org/info/rfc5246>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
skipping to change at page 27, line 44 skipping to change at page 28, line 18
}, },
{ {
"tp-id": "1-3-1", "tp-id": "1-3-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "00-00-5E-00-53-D2" "mac-address": "00-00-5E-00-53-D2"
} }
} }
], ],
"ietf-l2-topology:l2-node-attributes": { "ietf-l2-topology:l2-node-attributes": {
"management-address": ["10.1.1.1"] "management-address": ["192.0.2.1"]
} }
}, },
{ {
"node-id": "D2", "node-id": "D2",
"termination-point": [ "termination-point": [
{ {
"tp-id": "2-0-1", "tp-id": "2-0-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "00-00-5E-00-53-E0" "mac-address": "00-00-5E-00-53-E0"
} }
}, },
{ {
"tp-id": "2-1-1", "tp-id": "2-1-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "00-00-5E-00-53-E1" "mac-address": "00-00-5E-00-53-E1"
} }
skipping to change at page 28, line 25 skipping to change at page 28, line 47
}, },
{ {
"tp-id": "2-3-1", "tp-id": "2-3-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "00-00-5E-00-53-E2" "mac-address": "00-00-5E-00-53-E2"
} }
} }
], ],
"ietf-l2-topology:l2-node-attributes": { "ietf-l2-topology:l2-node-attributes": {
"management-address": ["10.1.1.2"] "management-address": ["192.0.2.2"]
} }
}, },
{ {
"node-id": "D3", "node-id": "D3",
"termination-point": [ "termination-point": [
{ {
"tp-id": "3-1-1", "tp-id": "3-1-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "00-00-5E-00-53-F0" "mac-address": "00-00-5E-00-53-F0"
skipping to change at page 28, line 47 skipping to change at page 29, line 21
}, },
{ {
"tp-id": "3-2-1", "tp-id": "3-2-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "00-00-5E-00-53-F1" "mac-address": "00-00-5E-00-53-F1"
} }
} }
], ],
"ietf-l2-topology:l2-node-attributes": { "ietf-l2-topology:l2-node-attributes": {
"management-address": ["10.1.1.3"] "management-address": ["192.0.2.3"]
} }
} }
], ],
"ietf-network-topology:link": [ "ietf-network-topology:link": [
{ {
"link-id": "D1,1-2-1,D2,2-1-1", "link-id": "D1,1-2-1,D2,2-1-1",
"source": { "source": {
"source-node": "D1", "source-node": "D1",
"source-tp": "1-2-1" "source-tp": "1-2-1"
} }
 End of changes. 27 change blocks. 
28 lines changed or deleted 47 lines changed or added

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