draft-ietf-i2rs-yang-l2-network-topology-02.txt   draft-ietf-i2rs-yang-l2-network-topology-03.txt 
Network Working Group J. Dong Network Working Group J. Dong
Internet-Draft X. Wei Internet-Draft X. Wei
Intended status: Standards Track Huawei Technologies Intended status: Standards Track Huawei Technologies
Expires: June 24, 2016 December 22, 2015 Expires: January 9, 2017 July 08, 2016
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-02 draft-ietf-i2rs-yang-l2-network-topology-03
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.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 1, line 37 skipping to change at page 1, line 37
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 June 24, 2016. This Internet-Draft will expire on January 9, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Layer 2 Topology Model . . . . . . . . . . . . . . . . . . . 2 2. Layer 2 Topology Model . . . . . . . . . . . . . . . . . . . 2
3. Layer-2 Topology Yang Module . . . . . . . . . . . . . . . . 6 3. Layer-2 Topology Yang Module . . . . . . . . . . . . . . . . 6
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
5. Security Considerations . . . . . . . . . . . . . . . . . . . 18 5. Security Considerations . . . . . . . . . . . . . . . . . . . 19
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.1. Normative References . . . . . . . . . . . . . . . . . . 18 7.1. Normative References . . . . . . . . . . . . . . . . . . 19
7.2. Informative References . . . . . . . . . . . . . . . . . 19 7.2. Informative References . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction 1. Introduction
[I-D.ietf-i2rs-yang-network-topo] defines the Yang [RFC6020] [I-D.ietf-i2rs-yang-network-topo] defines the YANG [RFC6020]
[RFC6991] [I-D.ietf-netmod-rfc6020bis]data models of the abstract [RFC6991] [I-D.ietf-netmod-rfc6020bis] data models of the abstract
(generic) network and network topology. Such models can be augmented (generic) network and network topology. Such models can be augmented
with technology-specific details to build more specific topology with technology-specific details to build more specific topology
models. 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
data models with L2 specific topology attributes. data models with L2 specific topology attributes.
2. Layer 2 Topology Model 2. Layer 2 Topology Model
The Layer 2 network topology model is designed to be generic and The Layer 2 network topology model is designed to be generic and
applicable to Layer 2 networks built with different L2 technologies. applicable to Layer 2 networks built with different L2 technologies.
It can be used to describe both the physical and the logical
(virtual) L2 network topologies.
The Layer 2 topology model applies the generic network and network The Layer 2 topology model applies the generic network and network
topology models to Layer 2 network topologies, and augments the topology models to Layer 2 network topologies, and augments the
generic models with information specific in Layer 2 networks. The generic models with information specific in Layer 2 networks. The
relationship between the Layer 2 topology model and the generic relationship between the Layer 2 topology model and the generic
network and network topology model is shown in the figure below: network and network topology model is shown in the figure below:
+---------------------+ +---------------------+
| ietf-network | | ietf-network |
+----------^----------+ +----------^----------+
skipping to change at page 3, line 24 skipping to change at page 3, line 24
| |
+----------^----------+ +----------^----------+
| ietf-l2-topology | | ietf-l2-topology |
+---------------------+ +---------------------+
Figure 1. L2-topology model structure Figure 1. L2-topology model structure
In order to represent a Layer 2 network topology, the generic network In order to represent a Layer 2 network topology, the generic network
and topology models are augmented with Layer-2 specific information, and topology models are augmented with Layer-2 specific information,
such as the identifiers, descriptions, attributes and states of the such 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 Protocl (LLDP) information may be collected via Link Layer Discovery Protocol (LLDP)
or other Layer-2 protocols, and some of them may be locally or other Layer-2 protocols, and some of them may be locally
configured. configured.
The structure of "ietf-l2-topology" data model is depicted in the The structure of "ietf-l2-topology" data model is depicted in the
following diagram. Brackets enclose list keys, "rw" means following diagram. Brackets enclose list keys, "rw" means
configuration data, "ro" means operational state data, "?" designates configuration data, "ro" means operational state data, "?" designates
optional nodes, "*" designates nodes that can have multiple optional nodes, "*" designates nodes that can have multiple
instances. instances.
module: ietf-l2-topology module: ietf-l2-topology
skipping to change at page 3, line 46 skipping to change at page 3, line 46
+--rw l2-network! +--rw l2-network!
augment /nw:networks/nw:network: augment /nw:networks/nw:network:
+--rw l2-network-attributes +--rw l2-network-attributes
+--rw name? string +--rw name? string
+--rw flag* flag-type +--rw flag* flag-type
augment /nw:networks/nw:network/nw:node: augment /nw:networks/nw:network/nw:node:
+--rw l2-node-attributes +--rw l2-node-attributes
+--rw name? string +--rw name? string
+--rw description? string +--rw description? string
+--rw management-address* inet:ip-address +--rw management-address* inet:ip-address
+--rw sys-mac-address? yang:mac-address
+--rw management-vid? vlan {VLAN}? +--rw management-vid? vlan {VLAN}?
+--rw nick-name* trill-nickname {TRILL}? +--rw nick-name* trill-nickname {TRILL}?
+--rw vn-id* vni {VXLAN}?
+--rw flag* flag-type +--rw flag* flag-type
augment /nw:networks/nw:network/nt:link: augment /nw:networks/nw:network/nt:link:
+--rw l2-link-attributes +--rw l2-link-attributes
+--rw name? string +--rw name? string
+--rw flag* flag-type +--rw flag* flag-type
+--rw rate? decimal64 +--rw rate? decimal64
+--rw delay? uint32 +--rw delay? uint32
+--rw srlg* uint32 +--rw srlg* uint32
augment /nw:networks/nw:network/nw:node/nt:termination-point: augment /nw:networks/nw:network/nw:node/nt:termination-point:
+--rw l2-termination-point-attributes +--rw l2-termination-point-attributes
skipping to change at page 4, line 20 skipping to change at page 4, line 22
+--rw maximum-frame-size? uint32 +--rw maximum-frame-size? uint32
+--rw (l2-termination-point-type)? +--rw (l2-termination-point-type)?
| +--:(ethernet) | +--:(ethernet)
| | +--rw mac-address? yang:mac-address | | +--rw mac-address? yang:mac-address
| | +--rw eth-encapsulation? identityref | | +--rw eth-encapsulation? identityref
| | +--rw port-vlan-id? vlan {VLAN}? | | +--rw port-vlan-id? vlan {VLAN}?
| | +--rw vlan-id-name* [vlan-id] {VLAN}? | | +--rw vlan-id-name* [vlan-id] {VLAN}?
| | +--rw vlan-id vlan | | +--rw vlan-id vlan
| | +--rw vlan-name? string | | +--rw vlan-name? string
| +--:(legacy) | +--:(legacy)
| +--rw layer-2-address? yang:phys-address
| +--rw encapsulation? identityref | +--rw encapsulation? identityref
+--ro tp-state? enumeration +--ro tp-state? enumeration
notifications: notifications:
+---n l2-node-event +---n l2-node-event
| +--ro event-type? l2-network-event-type | +--ro event-type? l2-network-event-type
| +--ro network-ref? -> /nw:networks/network/network-id | +--ro network-ref? -> /nw:networks/network/network-id
| +--ro node-ref? -> /nw:networks/network[nw:network-id = current()/../network-ref]/node/node-id | +--ro node-ref? -> /nw:networks/network[nw:network-id = current()/../network-ref]/node/node-id
| +--ro l2-network! | +--ro l2-network!
| +--ro l2-node-attributes | +--ro l2-node-attributes
| +--ro name? string | +--ro name? string
| +--ro description? string | +--ro description? string
| +--ro management-address* inet:ip-address | +--ro management-address* inet:ip-address
| +--ro sys-mac-address? yang:mac-address
| +--ro management-vid? vlan {VLAN}? | +--ro management-vid? vlan {VLAN}?
| +--ro nick-name* trill-nickname {TRILL}? | +--ro nick-name* trill-nickname {TRILL}?
| +--ro vn-id* vni {VXLAN}?
| +--ro flag* flag-type | +--ro flag* flag-type
+---n l2-link-event +---n l2-link-event
| +--ro event-type? l2-network-event-type | +--ro event-type? l2-network-event-type
| +--ro network-ref? -> /nw:networks/network/network-id | +--ro network-ref? -> /nw:networks/network/network-id
| +--ro link-ref? -> /nw:networks/network[nw:network-id = current()/../network-ref]/nt:link/link-id | +--ro link-ref? -> /nw:networks/network[nw:network-id = current()/../network-ref]/nt:link/link-id
| +--ro l2-network! | +--ro l2-network!
| +--ro l2-link-attributes | +--ro l2-link-attributes
| +--ro name? string | +--ro name? string
| +--ro flag* flag-type | +--ro flag* flag-type
| +--ro rate? decimal64 | +--ro rate? decimal64
skipping to change at page 5, line 16 skipping to change at page 5, line 21
+--ro maximum-frame-size? uint32 +--ro maximum-frame-size? uint32
+--ro (l2-termination-point-type)? +--ro (l2-termination-point-type)?
| +--:(ethernet) | +--:(ethernet)
| | +--ro mac-address? yang:mac-address | | +--ro mac-address? yang:mac-address
| | +--ro eth-encapsulation? identityref | | +--ro eth-encapsulation? identityref
| | +--ro port-vlan-id? vlan {VLAN}? | | +--ro port-vlan-id? vlan {VLAN}?
| | +--ro vlan-id-name* [vlan-id] {VLAN}? | | +--ro vlan-id-name* [vlan-id] {VLAN}?
| | +--ro vlan-id vlan | | +--ro vlan-id vlan
| | +--ro vlan-name? string | | +--ro vlan-name? string
| +--:(legacy) | +--:(legacy)
| +--ro layer-2-address? yang:phys-address
| +--ro encapsulation? identityref | +--ro encapsulation? identityref
+--ro tp-state? enumeration +--ro tp-state? enumeration
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 in "network-types" container of the generic ietf-network module in
[I-D.ietf-i2rs-yang-network-topo]. [I-D.ietf-i2rs-yang-network-topo].
skipping to change at page 6, line 7 skipping to change at page 6, line 14
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.
3. Layer-2 Topology Yang Module 3. Layer-2 Topology Yang Module
<CODE BEGINS> file "ietf-l2-topology@2015-12-22.yang" <CODE BEGINS> file "ietf-l2-topology@2016-07-07.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";
} }
import ietf-network-topology { import ietf-network-topology {
skipping to change at page 6, line 32 skipping to change at page 6, line 39
prefix "inet"; prefix "inet";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
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>
WG Chair: Susan Hares WG Chair: Susan Hares
<mailto:shares@ndzh.com> <mailto:shares@ndzh.com>
WG Chair: Jeffrey Haas WG Chair: Russ White
<mailto:jhaas@pfrc.org> <mailto:russ@riw.us>
Editor: Jie Dong Editor: Jie Dong
<mailto:jie.dong@huawei.com> <mailto:jie.dong@huawei.com>
Editor: Xiugang Wei Editor: Xiugang Wei
<mailto:weixiugang@huawei.com>"; <mailto:weixiugang@huawei.com>";
description description
"This module defines a basic model for "This module defines a basic model for
the layer-2 topology of a network"; the layer-2 topology of a network";
revision "2015-12-22" { revision "2016-07-07" {
description "Initial revision"; description "Initial revision";
reference "draft-ietf-i2rs-l2-network-topology-02"; reference "draft-ietf-i2rs-l2-network-topology-03";
} }
/* /*
* Typedefs * Typedefs
*/ */
typedef vlan { typedef vlan {
type uint16 { type uint16 {
range "0..4095"; range "0..4095";
} }
description "VLAN ID"; description "VLAN ID";
} }
typedef trill-nickname { typedef trill-nickname {
type uint16; type uint16;
description "TRILL Nickname"; description "TRILL Nickname";
} }
typedef vni {
type uint32 {
range "1..16777215";
}
description "VxLAN Network Identifier";
}
typedef flag-type { typedef flag-type {
type identityref { type identityref {
base "flag-identity"; base "flag-identity";
} }
description "Base type for flags"; description "Base type for flags";
} }
typedef l2-network-event-type { typedef l2-network-event-type {
type enumeration { type enumeration {
enum "add" { enum "add" {
skipping to change at page 11, line 48 skipping to change at page 12, line 15
description "Node name"; description "Node name";
} }
leaf description { leaf description {
type string; type string;
description "Node description"; description "Node description";
} }
leaf-list management-address { leaf-list management-address {
type inet:ip-address; type inet:ip-address;
description "System management address"; description "System management address";
} }
leaf sys-mac-address {
type yang:mac-address;
description "System MAC-address";
}
leaf management-vid { leaf management-vid {
if-feature VLAN; if-feature VLAN;
type vlan; type vlan;
description "System management VID"; description "System management VID";
} }
leaf-list nick-name { leaf-list nick-name {
if-feature TRILL; if-feature TRILL;
type trill-nickname; type trill-nickname;
description "Nickname of the RBridge"; description "Nickname of the RBridge";
} }
leaf-list vn-id {
if-feature VXLAN;
type vni;
description "VNI of the VxLAN";
}
leaf-list flag { leaf-list flag {
type flag-type; type flag-type;
description "Node operational flags"; description "Node operational flags";
} }
} }
} // grouping l2-node-attributes } // grouping l2-node-attributes
grouping l2-link-attributes { grouping l2-link-attributes {
description "L2 link attributes"; description "L2 link attributes";
container l2-link-attributes { container l2-link-attributes {
skipping to change at page 14, line 4 skipping to change at page 14, line 28
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 vlan; type vlan;
description "VLAN ID"; description "VLAN ID";
} }
leaf vlan-name { leaf vlan-name {
type string; type string;
description "VLAN Name"; description "VLAN Name";
} }
} }
} //case ethernet } //case ethernet
case legacy { case legacy {
leaf layer-2-address {
type yang:phys-address;
description "Interface Layer 2 address";
}
leaf encapsulation { leaf encapsulation {
type identityref { type identityref {
base encapsulation-type; base encapsulation-type;
} }
description description
"Encapsulation type of this termination point."; "Encapsulation type of this termination point.";
} }
} //case legacy } //case legacy
} //choice termination-point-type } //choice termination-point-type
skipping to change at page 17, line 19 skipping to change at page 17, line 48
uses l2-link-attributes; uses l2-link-attributes;
} }
augment "/nw:networks/nw:network/nw:node/nt:termination-point" { augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
when "/nw:networks/nw:network/nw:network-types/l2-network" { when "/nw:networks/nw:network/nw:network-types/l2-network" {
description description
"Augmentation parameters apply only for networks "Augmentation parameters apply only for networks
with L2 topology"; with L2 topology";
} }
description description
"Augment L2 topology termination point configuration"; "Augment L2 topology termination point information";
uses l2-termination-point-attributes; uses l2-termination-point-attributes;
} }
/* /*
* Notifications * Notifications
*/ */
notification l2-node-event { notification l2-node-event {
description "Notification event for L2 node"; description "Notification event for L2 node";
leaf event-type { leaf event-type {
skipping to change at page 18, line 40 skipping to change at page 19, line 23
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.
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-i2rs-yang-network-topo] [I-D.ietf-i2rs-yang-network-topo]
Clemm, A., Medved, J., Varga, R., Tkacik, T., Bahadur, N., Clemm, A., Medved, J., Varga, R., Tkacik, T., Bahadur, N.,
and H. Ananthakrishnan, "A Data Model for Network Ananthakrishnan, H., and X. Liu, "A Data Model for Network
Topologies", draft-ietf-i2rs-yang-network-topo-02 (work in Topologies", draft-ietf-i2rs-yang-network-topo-03 (work in
progress), December 2015. progress), June 2016.
[I-D.ietf-netmod-rfc6020bis] [I-D.ietf-netmod-rfc6020bis]
Bjorklund, M., "The YANG 1.1 Data Modeling Language", Bjorklund, M., "The YANG 1.1 Data Modeling Language",
draft-ietf-netmod-rfc6020bis-09 (work in progress), draft-ietf-netmod-rfc6020bis-14 (work in progress), June
December 2015. 2016.
[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,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, DOI 10.17487/RFC6020, October 2010,
<http://www.rfc-editor.org/info/rfc6020>. <http://www.rfc-editor.org/info/rfc6020>.
 End of changes. 31 change blocks. 
30 lines changed or deleted 57 lines changed or added

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