draft-ietf-i2rs-yang-l2-network-topology-08.txt   draft-ietf-i2rs-yang-l2-network-topology-09.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: January 24, 2020 Huawei Expires: February 19, 2020 Huawei
M. Boucadair M. Boucadair
Orange Orange
A. Liu A. Liu
Tecent Tecent
July 23, 2019 August 18, 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-08 draft-ietf-i2rs-yang-l2-network-topology-09
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 January 24, 2020. This Internet-Draft will expire on February 19, 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 26 skipping to change at page 2, line 26
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. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Layer 2 Topology Model . . . . . . . . . . . . . . . . . . . 3 3. Layer 2 Topology Model . . . . . . . . . . . . . . . . . . . 3
4. Layer 2 Topology YANG Module . . . . . . . . . . . . . . . . 6 4. Layer 2 Topology YANG Module . . . . . . . . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.1. Normative References . . . . . . . . . . . . . . . . . . 20 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 . . . . . . . . . . . . . . . . . . . . . 25 Appendix B. An Example . . . . . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30
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
skipping to change at page 6, line 7 skipping to change at page 6, line 7
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 [RFC6991] and types This module uses the common YANG types defined in
defined in [RFC8345]. [RFC6991][RFC7224][IEEE802.1Q] and types defined in [RFC8345], and it
references [RFC4761][RFC4762][RFC6325][RFC6326][RFC7348][RFC4202].
<CODE BEGINS> file "ietf-l2-topology@2019-06-21.yang"
module ietf-l2-topology {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology";
prefix "l2t";
import ietf-network {
prefix "nw";
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-topology {
prefix "nt";
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-inet-types {
prefix "inet";
reference "Section 4 of RFC 6991";
}
import ietf-yang-types {
prefix "yang";
reference "Section 3 of RFC 6991";
}
organization
"IETF I2RS (Interface to the Routing System) Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/i2rs/>
WG List: <mailto:i2rs@ietf.org>
Editor: Jie Dong
<mailto:jie.dong@huawei.com>
Editor: Xiugang Wei <CODE BEGINS> file "ietf-l2-topology@2019-06-04.yang"
<mailto:weixiugang@huawei.com> module ietf-l2-topology {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology";
prefix "l2t";
Editor: Qin Wu import ietf-network {
<mailto:bill.wu@huawei.com> prefix "nw";
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-topology {
prefix "nt";
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-inet-types {
prefix "inet";
reference "Section 4 of RFC 6991";
}
import ietf-yang-types {
prefix "yang";
reference "Section 3 of RFC 6991";
}
import iana-if-type {
prefix ift;
reference
"RFC 7224: IANA Interface Type YANG Module";
}
import ieee802-dot1q-types {
prefix dot1q-type;
reference
"IEEE Std 802.1Q-2017: Virtual Bridged Local Area Networks.";
}
organization
"IETF I2RS (Interface to the Routing System) Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/i2rs/>
WG List: <mailto:i2rs@ietf.org>
Editor: Jie Dong
<mailto:jie.dong@huawei.com>
Editor: Mohamed Boucadair Editor: Xiugang Wei
<mailto:mohamed.boucadair@orange.com> <mailto:weixiugang@huawei.com>
Editor: Anders Liu Editor: Qin Wu
<andersliu@tencent.com>"; <mailto:bill.wu@huawei.com>
description Editor: Mohamed Boucadair
"This module defines a basic model for <mailto:mohamed.boucadair@orange.com>
the layer-2 topology of a network.
Copyright (c) 2019 IETF Trust and the persons identified as Editor: Anders Liu
authors of the code. All rights reserved. <andersliu@tencent.com>";
Redistribution and use in source and binary forms, with or description
without modification, is permitted pursuant to, and subject "This module defines a basic model for
to the license terms contained in, the Simplified BSD License the layer-2 topology of a network.
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of Copyright (c) 2019 IETF Trust and the persons identified as
draft-ietf-i2rs-yang-l2-network-topo-07; authors of the code. All rights reserved.
see the RFC itself for full legal notices.";
revision "2019-06-21" { Redistribution and use in source and binary forms, with or
description "Initial revision"; without modification, is permitted pursuant to, and subject
reference to the license terms contained in, the Simplified BSD License
"RFC XXXX: A YANG Data Model for Layer-2 Network Topologies"; set forth in Section 4.c of the IETF Trust's Legal Provisions
} Relating to IETF Documents
(http://trustee.ietf.org/license-info).
/* This version of this YANG module is part of
* Typedefs RFC XXXX: A YANG Data Model for Layer-2 Network Topologies
*/ see the RFC itself for full legal notices.";
typedef vlan { revision "2019-06-04" {
type uint16 { description "Initial revision";
range "1..4094"; reference
} "RFC XXXX: A YANG Data Model for Layer-2 Network Topologies";
description "VLAN ID"; }
reference "IEEE 802.1Q";
}
typedef trill-nickname { /*
type uint16; * Typedefs
description "TRILL Nickname"; */
reference "RFC 6326";
}
typedef vni { typedef trill-nickname {
type uint32 { type uint16;
range "1..16777215"; description "TRILL Nickname";
} reference
description "VxLAN Network Identifier"; "RFC 6326: Transparent Interconnection of Lots
reference "RFC 7348"; of Links (TRILL) Use of IS-IS";
}
typedef vni {
type uint32 {
range "1..16777215";
} }
description "VxLAN Network Identifier";
reference
"RFC 7348: Virtual eXtensible Local Area
Network (VXLAN): A Framework for Overlaying
Virtualized Layer 2 Networks over Layer 3
Networks";
}
typedef l2-flag-type { typedef l2-flag-type {
type identityref { type identityref {
base "flag-identity"; base "flag-identity";
}
description "Base type for l2 flags";
} }
typedef node-flag-type { description "Base type for l2 flags";
type identityref { }
base "flag-identity"; typedef node-flag-type {
} type identityref {
description "Node flag attributes"; base "flag-identity";
} }
typedef link-flag-type { description "Node flag attributes";
type identityref { }
base "flag-identity"; typedef link-flag-type {
} type identityref {
description "Link flag attributes"; base "flag-identity";
} }
description "Link flag attributes";
}
typedef l2-network-event-type { typedef l2-network-event-type {
type enumeration { type enumeration {
enum "add" { enum "add" {
value 0; value 0;
description "An L2 node or link or termination-point description "An L2 node or link or termination-point
has been added"; has been added";
} }
enum "remove" { enum "remove" {
value 1; value 1;
description "An L2 node or link or termination-point description "An L2 node or link or termination-point
has been removed"; has been removed";
} }
enum "update" { enum "update" {
value 2; value 2;
description "An L2 node or link or termination-point description "An L2 node or link or termination-point
has been updated"; has been updated";
}
} }
description "l2 network event type for notifications";
} // l2-topology-event-type
/*
* Features
*/
feature VLAN {
description
"Indicates that the system supports the
vlan functions.";
}
feature QinQ {
description
"Indicates that the system supports the
qinq functions";
reference "IEEE 802.1ad.";
} }
description "l2 network event type for notifications";
} // l2-topology-event-type
feature PBB { /*
description
"Indicates that the device supports the
provider-backbone-bridging functions";
reference "IEEE 802.1ah.";
}
feature VPLS { * Features
description */
"Indicates that the device supports the
VPLS functions.";
reference "RFC 4761, RFC 4762";
}
feature TRILL { feature VLAN {
description description
"Indicates that the device supports the "Indicates that the system supports the
TRILL functions."; vlan functions (also known as an IEEE 802.1Q tag).";
reference "RFC 6325"; }
}
feature VXLAN { feature QinQ {
description description
"Indicates that the device supports the "Indicates that the system supports the
VXLAN functions."; qinq functions (also known as IEEE 802.1ad double tag)";
reference "RFC 7348"; }
}
/* feature PBB {
* Identities description
*/ "Indicates that the device supports the
provider-backbone-bridging functions developed
in IEEE 802.1ah.";
}
identity flag-identity { feature VPLS {
description "Base type for flags."; description
} "Indicates that the device supports the
identity encapsulation-type { VPLS functions.";
description reference
"Base identity from which specific encapsulation "RFC 4761: Virtual Private LAN Service (VPLS) Using
types are derived."; BGP for Auto-Discovery and Signaling
} RFC 4762: Virtual Private LAN Service (VPLS) Using
Label Distribution Protocol (LDP) Signaling";
}
identity eth-encapsulation-type { feature TRILL {
base encapsulation-type; description
description "Indicates that the device supports the
"Base identity from which specific Ethernet TRILL functions.";
encapsulation types are derived."; reference
"RFC 6325: Routing Bridges (RBridges): Base Protocol
Specification";
}
feature VXLAN {
description
"Indicates that the device supports the
VXLAN functions.";
reference
"RFC 7348: Virtual eXtensible Local Area Network (VXLAN):
A Framework for Overlaying Virtualized Layer 2 Networks
over Layer 3 Networks";
}
} /*
* Identities
*/
identity ethernet { identity flag-identity {
base eth-encapsulation-type; description "Base type for flags.";
description }
"native Ethernet encapsulation.";
}
identity vlan { identity eth-encapsulation-type {
base eth-encapsulation-type; base ift:iana-interface-type;
description description
"VLAN encapsulation."; "Base identity from which specific Ethernet
} encapsulation types are derived.";
reference
"RFC 7224: IANA Interface Type YANG Module";
}
identity qinq { identity ethernet {
base eth-encapsulation-type; base eth-encapsulation-type;
description description
"QinQ encapsulation."; "Native Ethernet encapsulation.";
} }
identity pbb { identity vlan {
base eth-encapsulation-type; base eth-encapsulation-type;
description description
"PBB encapsulation."; "VLAN encapsulation.";
} }
identity trill { identity qinq {
base eth-encapsulation-type; base eth-encapsulation-type;
description description
"TRILL encapsulation."; "QinQ encapsulation.";
} }
identity vpls { identity pbb {
base eth-encapsulation-type; base eth-encapsulation-type;
description description
"VPLS encapsulation."; "PBB encapsulation.";
}
} identity trill {
base eth-encapsulation-type;
description
"TRILL encapsulation.";
}
identity vxlan { identity vpls {
base eth-encapsulation-type; base eth-encapsulation-type;
description description
"VXLAN encapsulation."; "Ethernet VPLS interface encapsulation.";
} }
identity frame-relay { identity vxlan {
base encapsulation-type; base eth-encapsulation-type;
description description
"Frame Relay encapsulation."; "VXLAN MAC in UDP encapsulation.";
} }
identity ppp { /*
base encapsulation-type; * Groupings
description */
"PPP encapsulation";
}
identity hdlc { grouping l2-network-type {
base encapsulation-type; description "Identify the topology type to be L2.";
container l2-network {
presence "indicates L2 Network";
description description
"HDLC encapsulation."; "The presence of the container node indicates
L2 Topology.";
} }
}
identity atm { grouping l2-network-attributes {
base encapsulation-type; description "L2 Topology scope attributes";
description container l2-network-attributes {
"Base identity from which specific ATM description "Containing L2 network attributes";
encapsulation types are derived."; leaf name {
type string;
description "Name of the L2 network.";
}
} leaf-list flag {
type l2-flag-type;
description "L2 network flags";
identity pwe3 { }
base encapsulation-type;
description
"Base identity from which specific PW
encapsulation types are derived.";
} }
}
/* grouping l2-node-attributes {
* Groupings description "L2 node attributes";
*/ container l2-node-attributes {
description "Containing L2 node attributes";
grouping l2-network-type { leaf name {
description "Identify the topology type to be L2."; type string;
container l2-network { description "Node name.";
presence "indicates L2 Network"; }
description leaf description {
"The presence of the container node indicates type string;
L2 Topology."; description "Node description.";
}
leaf-list management-address {
type inet:ip-address;
description "System management address.";
}
leaf sys-mac-address {
type yang:mac-address;
description "System MAC-address.";
}
leaf management-vid {
if-feature VLAN;
type dot1q-type:vlanid;
description "System management VID.";
}
leaf-list flag {
type node-flag-type;
description "Node operational flags.";
} }
} }
} // grouping l2-node-attributes
grouping l2-network-attributes { grouping l2-link-attributes {
description "L2 Topology scope attributes"; description "L2 link attributes";
container l2-network-attributes { container l2-link-attributes {
description "Containing L2 network attributes"; description "Containing L2 link attributes.";
leaf name { leaf name {
type string; type string;
description "Name of the L2 network."; description "Link name.";
}
leaf-list flag {
type link-flag-type;
description "Link flags.";
}
leaf rate {
type decimal64 {
fraction-digits 2;
} }
description "Link rate.";
leaf-list flag { }
type l2-flag-type; leaf delay {
description "L2 network flags"; type uint32;
} description "Link delay in microseconds.";
}
leaf-list srlg {
type uint32;
description
"List of Shared Risk Link Groups
this link belongs to.";
reference
"RFC 4202: Routing Extensions in Support of
Generalized Multi-Protocol Label Switching
(GMPLS)";
} }
} }
} // grouping l2-link-attributes
grouping l2-node-attributes { grouping l2-termination-point-attributes {
description "L2 node attributes"; description "L2 termination point attributes";
container l2-node-attributes { container l2-termination-point-attributes {
description "Containing L2 node attributes"; description "Containing L2 TP attributes";
leaf name { leaf description {
type string; type string;
description "Node name."; description "Port description.";
}
leaf description {
type string;
description "Node description.";
}
leaf-list management-address {
type inet:ip-address;
description "System management address.";
}
leaf sys-mac-address {
type yang:mac-address;
description "System MAC-address.";
}
leaf management-vid {
if-feature VLAN;
type vlan;
description "System management VID.";
}
leaf-list flag {
type node-flag-type;
description "Node operational flags.";
}
} }
} // grouping l2-node-attributes
grouping l2-link-attributes { leaf maximum-frame-size {
description "L2 link attributes"; type uint32;
container l2-link-attributes { description "Maximum frame size.";
description "Containing L2 link attributes.";
leaf name {
type string;
description "Link name.";
}
leaf-list flag {
type link-flag-type;
description "Link flags.";
}
leaf rate {
type decimal64 {
fraction-digits 2;
}
description "Link rate.";
}
leaf delay {
type uint32;
description "Link delay in microseconds.";
}
leaf-list srlg {
type uint32;
description
"List of Shared Risk Link Groups
this link belongs to.";
reference "RFC 4202";
}
} }
} // grouping l2-link-attributes
grouping l2-termination-point-attributes { choice l2-termination-point-type {
description "L2 termination point attributes"; description
container l2-termination-point-attributes { "Indicates termination-point type
description "Containing L2 TP attributes"; specific attributes.";
leaf description { case ethernet {
type string; leaf mac-address {
description "Port description."; type yang:mac-address;
} description "Interface MAC address.";
}
leaf maximum-frame-size { leaf eth-encapsulation {
type uint32; type identityref {
description "Maximum frame size."; base eth-encapsulation-type;
}
choice l2-termination-point-type {
description
"Indicates termination-point type
specific attributes.";
case ethernet {
leaf mac-address {
type yang:mac-address;
description "Interface MAC address.";
} }
description
"Encapsulation type of this
ternimation point.";
}
leaf eth-encapsulation { leaf port-vlan-id {
type identityref { if-feature VLAN;
base eth-encapsulation-type; type dot1q-type:vlanid;
} description "Port VLAN ID is the VLAN id that
description will be assigned to any untagged frames entering
"Encapsulation type of this the switch on the specific port.";
ternimation point."; }
}
leaf port-vlan-id { list vlan-id-name {
if-feature VLAN; if-feature VLAN;
type vlan; key "vlan-id";
description "Port VLAN ID is the VLAN id that description "Interface configured VLANs.";
will be assigned to any untagged frames entering leaf vlan-id {
the switch on the specific port."; type dot1q-type:vlanid;
description "VLAN ID.";
} }
leaf vlan-name {
list vlan-id-name { type string;
if-feature VLAN; description "VLAN name.";
key "vlan-id";
description "Interface configured VLANs.";
leaf vlan-id {
type vlan;
description "VLAN ID.";
}
leaf vlan-name {
type string;
description "VLAN name.";
}
} }
}
} //case ethernet
} //case ethernet case legacy {
leaf layer-2-address {
case legacy { type yang:phys-address;
leaf layer-2-address { description "Interface Layer 2 address.";
type yang:phys-address; }
description "Interface Layer 2 address.";
}
leaf encapsulation { leaf encapsulation {
type identityref { type identityref {
base encapsulation-type; base ift:iana-interface-type;
}
description
"Encapsulation type of this termination point.";
} }
} //case legacy such as atm, ppp, hdlc,etc. description
"Other legacy encapsulation type of this termination point.";
} //choice termination-point-type }
} //case legacy such as atm, ppp, hdlc,etc.
leaf tp-state { } //choice termination-point-type
type enumeration { leaf tp-state {
enum in-use { type enumeration {
value 0; enum in-use {
description value 0;
"the termination point is in forwarding state."; description
} "the termination point is in forwarding state.";
enum blocking { }
value 1; enum blocking {
description value 1;
"the termination point is in blocking state."; description
} "the termination point is in blocking state.";
enum down { }
value 2; enum down {
description value 2;
"the termination point is in down state."; description
} "the termination point is in down state.";
enum others { }
value 3; enum others {
description value 3;
"the termination point is in other state."; description
} "the termination point is in other state.";
} }
config false;
description "State of the termination point";
} }
config false;
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
"Introduce new network type for L2 topology."; "Introduce new network type for L2 topology.";
uses l2-network-type; uses l2-network-type;
} }
augment "/nw:networks/nw:network" { augment "/nw:networks/nw:network" {
when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" { when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" {
description
"Augmentation parameters apply only for networks
with L2 topology.";
}
description description
"Configuration parameters for the L2 network "Augmentation parameters apply only for networks
as a whole"; with L2 topology.";
uses l2-network-attributes;
} }
description
"Configuration parameters for the L2 network
as a whole";
augment "/nw:networks/nw:network/nw:node" { uses l2-network-attributes;
when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" { }
description
"Augmentation parameters apply only for networks augment "/nw:networks/nw:network/nw:node" {
with L2 topology."; when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" {
}
description description
"Configuration parameters for L2 at the node "Augmentation parameters apply only for networks
level."; with L2 topology.";
uses l2-node-attributes;
} }
description
"Configuration parameters for L2 at the node
level.";
uses l2-node-attributes;
}
augment "/nw:networks/nw:network/nt:link" { augment "/nw:networks/nw:network/nt:link" {
when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" { when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" {
description description
"Augmentation parameters apply only for networks "Augmentation parameters apply only for networks
with L2 topology."; with L2 topology.";
}
description "Augment L2 topology link information";
uses l2-link-attributes;
} }
description "Augment L2 topology link information";
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/l2t:l2-network" { when "/nw:networks/nw:network/nw:network-types/l2t:l2-network" {
description
"Augmentation parameters apply only for networks
with L2 topology.";
}
description description
"Augment L2 topology termination point information."; "Augmentation parameters apply only for networks
uses l2-termination-point-attributes; with L2 topology.";
} }
description
"Augment L2 topology termination point information.";
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 {
type l2-network-event-type; type l2-network-event-type;
description "Event type."; description "Event type.";
}
uses nw:node-ref;
uses l2-network-type;
uses l2-node-attributes;
} }
uses nw:node-ref;
uses l2-network-type;
uses l2-node-attributes;
}
notification l2-link-event { notification l2-link-event {
description "Notification event for L2 link."; description "Notification event for L2 link.";
leaf event-type { leaf event-type {
type l2-network-event-type; type l2-network-event-type;
description "Event type"; description "Event type";
}
uses nt:link-ref;
uses l2-network-type;
uses l2-link-attributes;
} }
uses nt:link-ref;
uses l2-network-type;
uses l2-link-attributes;
}
notification l2-termination-point-event { notification l2-termination-point-event {
description "Notification event for L2 termination point."; description "Notification event for L2 termination point.";
leaf event-type { leaf event-type {
type l2-network-event-type; type l2-network-event-type;
description "Event type"; description "Event type";
}
uses nt:tp-ref;
uses l2-network-type;
uses l2-termination-point-attributes;
} }
uses nt:tp-ref;
} // module l2-topology uses l2-network-type;
<CODE ENDS> uses l2-termination-point-attributes;
}
} // module l2-topology
<CODE ENDS>
5. IANA Considerations 5. IANA Considerations
This document requests IANA to register the following URIs in the This document requests IANA to register the following URIs in the
"ns" subregistry within the "IETF XML Registry" [RFC3688]: "ns" subregistry within the "IETF XML Registry" [RFC3688]:
URI: urn:ietf:params:xml:ns:yang:ietf-l2-topology URI: urn:ietf:params:xml:ns:yang:ietf-l2-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-l2-topology-state URI: urn:ietf:params:xml:ns:yang:ietf-l2-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 requests IANA to register the following YANG modules in This document requests IANA to register the following YANG modules in
the "YANG Module Names" subregistry [RFC7950] within the "YANG the "YANG Module Names" subregistry [RFC6020] within the "YANG
Parameters" registry. Parameters" registry.
name: ietf-l2-topology name: ietf-l2-topology
namespace: urn:ietf:params:xml:ns:yang:ietf-l2-topology namespace: urn:ietf:params:xml:ns:yang:ietf-l2-topology
prefix: l2t prefix: l2t
reference: RFC XXXX reference: RFC XXXX
name: ietf-l2-topology-state name: ietf-l2-topology-state
namespace: urn:ietf:params:xml:ns:yang:ietf-l2-topology-state namespace: urn:ietf:params:xml:ns:yang:ietf-l2-topology-state
prefix: l2t-s prefix: l2t-s
skipping to change at page 20, line 15 skipping to change at page 19, line 41
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
in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005,
<https://www.rfc-editor.org/info/rfc4202>.
[RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private
LAN Service (VPLS) Using BGP for Auto-Discovery and
Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007,
<https://www.rfc-editor.org/info/rfc4761>.
[RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private
LAN Service (VPLS) Using Label Distribution Protocol (LDP)
Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007,
<https://www.rfc-editor.org/info/rfc4762>.
[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,
<https://www.rfc-editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6325] Perlman, R., Eastlake 3rd, D., Dutt, D., Gai, S., and A.
Ghanwani, "Routing Bridges (RBridges): Base Protocol
Specification", RFC 6325, DOI 10.17487/RFC6325, July 2011,
<https://www.rfc-editor.org/info/rfc6325>.
[RFC6326] Eastlake, D., Banerjee, A., Dutt, D., Perlman, R., and A.
Ghanwani, "Transparent Interconnection of Lots of Links
(TRILL) Use of IS-IS", RFC 6326, DOI 10.17487/RFC6326,
July 2011, <https://www.rfc-editor.org/info/rfc6326>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7224] Bjorklund, M., "IANA Interface Type YANG Module",
RFC 7224, DOI 10.17487/RFC7224, May 2014,
<https://www.rfc-editor.org/info/rfc7224>.
[RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
eXtensible Local Area Network (VXLAN): A Framework for
Overlaying Virtualized Layer 2 Networks over Layer 3
Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
<https://www.rfc-editor.org/info/rfc7348>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG",
RFC 7951, DOI 10.17487/RFC7951, August 2016, RFC 7951, DOI 10.17487/RFC7951, August 2016,
<https://www.rfc-editor.org/info/rfc7951>. <https://www.rfc-editor.org/info/rfc7951>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
skipping to change at page 22, line 29 skipping to change at page 22, line 42
in this document in conjunction with non-NMDA compliant in this document in conjunction with non-NMDA compliant
implementations, a corresponding companion module is defined that implementations, a corresponding companion module is defined that
represent the operational state of layer 2 network topologies. The represent the operational state of layer 2 network topologies. The
module ietf-l2-topology-state mirrors the module ietf-l2-topology module ietf-l2-topology-state mirrors the module ietf-l2-topology
defined earlier in this document. However, it augments ietf-network- defined earlier in this document. However, it augments ietf-network-
state and ietf-network-topology-state (instead of ietf-network and state and ietf-network-topology-state (instead of ietf-network and
ietf-network-topology) and all its data nodes are non-configurable. ietf-network-topology) and all its data nodes are non-configurable.
The companion module ietf-l2-topology SHOULD NOT be supported by The companion module ietf-l2-topology SHOULD NOT be supported by
implementations that support NMDA. It is for this reason that this implementations that support NMDA. It is for this reason that this
module is defined in the Appendix. module is defined in the informative Appendix.
As the structure of this modules mirrors that of its underlying As the structure of this modules mirrors that of its underlying
modules, the YANG tree is not depicted separately. modules, the YANG tree is not depicted separately.
<CODE BEGINS> file "ietf-l2-topology-state@2019-06-21.yang" <CODE BEGINS> file "ietf-l2-topology-state@2019-06-04.yang"
module ietf-l2-topology-state { module ietf-l2-topology-state {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology-state"; namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology-state";
prefix "l2t-s"; prefix "l2t-s";
import ietf-network-state {
prefix "nw-s";
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-state { import ietf-network-topology-state {
prefix "nw-s"; prefix "nt-s";
} reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-topology-state { import ietf-l2-topology {
prefix "nt-s"; prefix "l2t";
} reference
"RFC XXXX: A YANG Data Model for Layer-2 Network Topologies";
}
import ietf-l2-topology { organization
prefix "l2t"; "IETF I2RS (Interface to the Routing System) Working Group";
} contact
"WG Web: <http://tools.ietf.org/wg/i2rs/>
WG List: <mailto:i2rs@ietf.org>
Editor: Jie Dong
<mailto:jie.dong@huawei.com>
Editor: Xiugang Wei
<mailto:weixiugang@huawei.com>
Editor: Qin Wu
<mailto:bill.wu@huawei.com>
Editor: Mohamed Boucadair
<mailto:mohamed.boucadair@orange.com>
Editor: Anders Liu
<andersliu@tencent.com>";
organization description
"IETF I2RS (Interface to the Routing System) Working Group"; " This module defines a model for Layer 2 Network Topology
contact state, representing topology that either is learned or
"WG Web: <http://tools.ietf.org/wg/i2rs/> results from applying topology that has been configured per
WG List: <mailto:i2rs@ietf.org> the 'ietf-l2-topology' model, mirroring the
Editor: Jie Dong corresponding data nodes in this model.
<mailto:jie.dong@huawei.com>
Editor: Xiugang Wei
<mailto:weixiugang@huawei.com>";
description This model mirrors 'ietf-l2-topology' but contains only
"This module defines a basic model for read-only state data. The model is not needed when the
the layer-2 topology of a network. underlying implementation infrastructure supports the Network
Management Datastore Architecture (NMDA).
Copyright (c) 2018 IETF Trust and the persons identified as Copyright (c) 2018 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-l2-network-topo-07; RFC XXXX: A YANG Data Model for Layer-2 Network Topologies
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
revision "2019-06-21" { revision "2019-06-04" {
description "Initial revision"; description "Initial revision";
reference "draft-ietf-i2rs-l2-network-topology-07"; reference "RFC XXXX: A YANG Data Model for Layer-2 Network Topologies";
} }
/* /*
* Data nodes * Data nodes
*/ */
augment "/nw-s:networks/nw-s:network/nw-s:network-types" {
description
"Introduce new network type for L2 topology";
uses l2t:l2-network-type;
}
augment "/nw-s:networks/nw-s:network/nw-s:network-types" { augment "/nw-s:networks/nw-s:network" {
description when "/nw-s:networks/nw-s:network/nw-s:network-types/"+
"Introduce new network type for L2 topology"; "l2t-s:l2-network" {
uses l2t:l2-network-type; description
} "Augmentation parameters apply only for networks
with L2 topology";
}
description
"Configuration parameters for the L2 network
as a whole";
uses l2t:l2-network-attributes;
}
augment "/nw-s:networks/nw-s:network" { augment "/nw-s:networks/nw-s:network/nw-s:node" {
when "/nw-s:networks/nw-s:network/nw-s:network-types/"+ when "../nw-s:network-types/l2t-s:l2-network" {
"l2t-s:l2-network" { description
description "Augmentation parameters apply only for networks
"Augmentation parameters apply only for networks with L2 topology";
with L2 topology"; }
} description
description "Configuration parameters for L2 at the node
"Configuration parameters for the L2 network level";
as a whole"; uses l2t:l2-node-attributes;
uses l2t:l2-network-attributes;
}
augment "/nw-s:networks/nw-s:network/nw-s:node" { }
when "/nw-s:networks/nw-s:network/nw-s:network-types/"+
"l2t-s:l2-network" {
description
"Augmentation parameters apply only for networks
with L2 topology";
}
description
"Configuration parameters for L2 at the node
level";
uses l2t:l2-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:networks/nw-s:network/nw-s:network-types/"+ when "../nw-s:network-types/l2t-s:l2-network" {
"l2t-s:l2-network" { description
description "Augmentation parameters apply only for networks
"Augmentation parameters apply only for networks with L2 topology";
with L2 topology"; }
} description "Augment L2 topology link information";
description "Augment L2 topology link information"; uses l2t:l2-link-attributes;
uses l2t:l2-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:networks/nw-s:network/nw-s:network-types/"+ when "../../nw-s:network-types/l2t-s:l2-network" {
"l2t-s: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 information";
"Augment L2 topology termination point information"; uses l2t:l2-termination-point-attributes;
uses l2t: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 {
type l2t:l2-network-event-type; type l2t:l2-network-event-type;
description "Event type"; description "Event type";
} }
uses nw-s:node-ref; uses nw-s:node-ref;
uses l2t:l2-network-type; uses l2t:l2-network-type;
uses l2t:l2-node-attributes; uses l2t:l2-node-attributes;
} }
notification l2-link-event { notification l2-link-event {
description "Notification event for L2 link"; description "Notification event for L2 link";
leaf event-type { leaf event-type {
type l2t:l2-network-event-type; type l2t:l2-network-event-type;
description "Event type"; description "Event type";
} }
uses nt-s:link-ref; uses nt-s:link-ref;
uses l2t:l2-network-type; uses l2t:l2-network-type;
uses l2t:l2-link-attributes; uses l2t:l2-link-attributes;
}
notification l2-termination-point-event { }
description "Notification event for L2 termination point";
leaf event-type {
type l2t:l2-network-event-type;
description "Event type";
}
uses nt-s:tp-ref;
uses l2t:l2-network-type;
uses l2t:l2-termination-point-attributes;
}
} // module l2-topology-state notification l2-termination-point-event {
<CODE ENDS> description "Notification event for L2 termination point";
leaf event-type {
type l2t:l2-network-event-type;
description "Event type";
}
uses nt-s:tp-ref;
uses l2t:l2-network-type;
uses l2t:l2-termination-point-attributes;
}
} // module l2-topology-state
<CODE ENDS>
Appendix B. An Example Appendix B. 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-l2- topology" for encoding [RFC7951]. The example instantiates "ietf-l2- topology" for
the topology that is depicted in the following diagram. There are the topology that is depicted in the following diagram. There are
three nodes: D1, D2, and D3. D1 has three termination points: 1-0-1, 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 well: 2-1-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 and 3-2-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 nodes, In addition, there are six links, two between each pair of nodes,
with one going in each direction. with one going in each direction.
+------------+ +------------+ +------------+ +------------+
| D1 | | D2 | | D1 | | D2 |
/-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\
| | 1-0-1 | |---------------->| | 2-1-1 | | | | 1-0-1 | |---------------->| | 2-1-1 | |
| | 1-2-1 | |<----------------| | 2-0-1 | | | | 1-2-1 | |<----------------| | 2-0-1 | |
\-/ 1-3-1 \-/ \-/ 2-3-1 \-/ \-/ 1-3-1 \-/ \-/ 2-3-1 \-/
| /----\ | | /----\ | | /----\ | | /----\ |
skipping to change at page 26, line 51 skipping to change at page 27, line 25
}, },
"network-id": "l2-topo-example", "network-id": "l2-topo-example",
"node": [ "node": [
{ {
"node-id": "D1", "node-id": "D1",
"termination-point": [ "termination-point": [
{ {
"tp-id": "1-0-1", "tp-id": "1-0-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "A1:B2:C3:D4:E5:F0" "mac-address": "00-00-5E-00-53-D0"
} }
}, },
{ {
"tp-id": "1-2-1", "tp-id": "1-2-1",
"ietf-l2-topology: "ietf-l2-topology:
l2-termination-point-attributes": { l2-termination-point-attributes": {
"mac-address": "A1:B2:C3:D4:E5:F1" "mac-address": "00-00-5E-00-53-D1"
} }
}, },
{ {
"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": "A1:B2:C3:D4:E5:F2" "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": ["10.1.1.1"]
} }
}, },
{ {
"node-id": "D2", "node-id": "D2",
"termination-point": [ "termination-point": [
skipping to change at page 27, line 31 skipping to change at page 28, line 4
"ietf-l2-topology:l2-node-attributes": { "ietf-l2-topology:l2-node-attributes": {
"management-address": ["10.1.1.1"] "management-address": ["10.1.1.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": "A2:B2:C3:D4:E5:F0" "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": "A2:B2:C3:D4:E5:F2" "mac-address": "00-00-5E-00-53-E1"
} }
}, },
{ {
"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": "A2:B2:C3:D4:E5:F3" "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": ["10.1.1.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": "A3:B2:C3:D4:E5:F0" "mac-address": "00-00-5E-00-53-F0"
} }
}, },
{ {
"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": "A3:B2:C3:D4:E5: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": ["10.1.1.3"]
} }
} }
], ],
"ietf-network-topology:link": [ "ietf-network-topology:link": [
{ {
 End of changes. 137 change blocks. 
631 lines changed or deleted 665 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/