draft-ietf-i2rs-yang-dc-fabric-network-topology-04.txt   draft-ietf-i2rs-yang-dc-fabric-network-topology-05.txt 
I2RS Working Group Y. Zhuang I2RS Working Group Y. Zhuang
Internet-Draft D. Shi Internet-Draft D. Shi
Intended status: Standards Track Huawei Intended status: Standards Track Huawei
Expires: July 13, 2018 R. Gu Expires: August 15, 2018 R. Gu
China Mobile China Mobile
H. Ananthakrishnan H. Ananthakrishnan
Packet Design Packet Design
January 9, 2018 February 11, 2018
A YANG Data Model for Fabric Topology in Data Center Networks A YANG Data Model for Fabric Topology in Data Center Networks
draft-ietf-i2rs-yang-dc-fabric-network-topology-04 draft-ietf-i2rs-yang-dc-fabric-network-topology-05
Abstract Abstract
This document defines a YANG data model for fabric topology in Data This document defines a YANG data model for fabric topology in Data
Center Network. Center Network.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 35 skipping to change at page 1, line 35
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 July 13, 2018. This Internet-Draft will expire on August 15, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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 25 skipping to change at page 2, line 25
3.2.1. Fabric Topology . . . . . . . . . . . . . . . . . . . 5 3.2.1. Fabric Topology . . . . . . . . . . . . . . . . . . . 5
3.2.2. Fabric node extension . . . . . . . . . . . . . . . . 6 3.2.2. Fabric node extension . . . . . . . . . . . . . . . . 6
3.2.3. Fabric termination-point extension . . . . . . . . . 7 3.2.3. Fabric termination-point extension . . . . . . . . . 7
4. Fabric YANG Module . . . . . . . . . . . . . . . . . . . . . 7 4. Fabric YANG Module . . . . . . . . . . . . . . . . . . . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.1. Normative References . . . . . . . . . . . . . . . . . . 21 8.1. Normative References . . . . . . . . . . . . . . . . . . 21
8.2. Informative References . . . . . . . . . . . . . . . . . 22 8.2. Informative References . . . . . . . . . . . . . . . . . 22
Appendix A. Non NMDA -state modules . . . . . . . . . . . . . . 22 Appendix A. Non NMDA -state modules . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction 1. Introduction
Normally, a data center (DC) network is composed of single or Normally, a data center (DC) network is composed of single or
multiple fabrics which are also known as PODs (Points Of Delivery). multiple fabrics which are also known as PODs (Points Of Delivery).
These fabrics may be heterogeneous due to implementation of different These fabrics may be heterogeneous due to implementation of different
technologies when a DC network is upgraded or new techniques and technologies when a DC network is upgraded or new techniques and
features are enrolled. For example, Fabric A may use VXLAN while features are enrolled. For example, Fabric A may use VXLAN while
Fabric B may use VLAN within a DC network. Likewise, an existing Fabric B may use VLAN within a DC network. Likewise, an existing
fabric may use VXLAN while a new fabric, for example a fabric fabric may use VXLAN while a new fabric, for example a fabric
introduced for DC upgrade and expansion, may implement a technique introduced for DC upgrade and expansion, may implement a technique
discussed in NVO3 WG, such as GPE [I-D. draft-ietf-nvo3-vxlan-gpe]. discussed in NVO3 WG, such as Geneve [I-D. draft-ietf-nvo3-geneve].
The configuration and management of such DC networks with The configuration and management of such DC networks with
heterogeneous fabrics will result in considerable complexity, heterogeneous fabrics will result in considerable complexity,
requiring a fair amount of sophistication. requiring a fair amount of sophistication.
Luckily, for a DC network, a fabric can be considered as an atomic Luckily, for a DC network, a fabric can be considered as an atomic
structure for management purposes. From this point of view, the structure for management purposes. From this point of view, the
management of the DC network can be decomposed into a set of tasks to management of the DC network can be decomposed into a set of tasks to
manage each fabric separately, as well as the fabric manage each fabric separately, as well as the fabric
interconnections. This way, the overall management task becomes very interconnections. This way, the overall management task becomes very
flexible and makes it easy to expand and adopt to DC networks that flexible and makes it easy to expand and adopt to DC networks that
skipping to change at page 6, line 27 skipping to change at page 6, line 27
+--rw vni-capacity +--rw vni-capacity
| +--rw min? int32 | +--rw min? int32
| +--rw max? int32 | +--rw max? int32
+--rw description? string +--rw description? string
+--rw options +--rw options
| +--rw gateway-mode? enumeration | +--rw gateway-mode? enumeration
| +--rw traffic-behavior? enumeration | +--rw traffic-behavior? enumeration
| +--rw capability-supported* fabrictype:service-capabilities | +--rw capability-supported* fabrictype:service-capabilities
+--rw device-nodes* [device-ref] +--rw device-nodes* [device-ref]
| +--rw device-ref fabrictype:node-ref | +--rw device-ref fabrictype:node-ref
| +--rw role? fabrictype:device-role | +--rw role*? fabrictype:device-role
+--rw device-links* [link-ref] +--rw device-links* [link-ref]
| +--rw link-ref fabrictype:link-ref | +--rw link-ref fabrictype:link-ref
+--rw device-ports* [port-ref] +--rw device-ports* [port-ref]
+--rw port-ref fabrictype:tp-ref +--rw port-ref fabrictype:tp-ref
+--rw port-type? fabrictypes:port-type +--rw port-type? fabrictypes:port-type
+--rw bandwidth? fabrictypes:bandwidth +--rw bandwidth? fabrictypes:bandwidth
In the module, additional data objects for fabric nodes are In the module, additional data objects for fabric nodes are
introduced by augmenting the "node" list of the network module. New introduced by augmenting the "node" list of the network module. New
objects include fabric name, type of the fabric, descriptions of the objects include fabric name, type of the fabric, descriptions of the
skipping to change at page 13, line 20 skipping to change at page 13, line 20
description "The device port it mapped to."; description "The device port it mapped to.";
} }
choice tunnel-option { choice tunnel-option {
description "Tunnel options to connect two fabrics. description "Tunnel options to connect two fabrics.
It could be L2 Tunnel or L3 Tunnel."; It could be L2 Tunnel or L3 Tunnel.";
} }
} }
} }
<CODE ENDS> <CODE ENDS>
<CODE BEGINS> file "ietf-dc-fabric-topology@2017-12-21.yang" <CODE BEGINS> file "ietf-dc-fabric-topology@2018-02-11.yang"
module ietf-dc-fabric-topology { module ietf-dc-fabric-topology {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology"; namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology";
prefix fabric; prefix fabric;
import ietf-network { import ietf-network {
prefix nw; prefix nw;
reference reference
skipping to change at page 15, line 4 skipping to change at page 15, line 4
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-dc-fabric-network-topology;see the RFC draft-ietf-i2rs-yang-dc-fabric-network-topology;see the RFC
itself for full legal notices. itself for full legal notices.
NOTE TO RFC EDITOR: Please replace above reference to NOTE TO RFC EDITOR: Please replace above reference to
draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with RFC draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with RFC
number when published (i.e. RFC xxxx)."; number when published (i.e. RFC xxxx).";
revision "2017-12-21"{ revision "2018-02-11"{
description description
"Initial revision. "Initial revision.
NOTE TO RFC EDITOR: Please replace the following reference NOTE TO RFC EDITOR: Please replace the following reference
to draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with to draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with
RFC number when published (i.e. RFC xxxx)."; RFC number when published (i.e. RFC xxxx).";
reference reference
"draft-ietf-i2rs-yang-dc-fabric-network-topology-03"; "draft-ietf-i2rs-yang-dc-fabric-network-topology-05";
} }
identity fabric-context { identity fabric-context {
description description
"Identity of fabric context"; "Identity of fabric context";
} }
typedef fabric-id { typedef fabric-id {
type nw:node-id; type nw:node-id;
description description
skipping to change at page 16, line 10 skipping to change at page 16, line 10
} }
} }
default "distributed"; default "distributed";
description "Gateway mode of the fabric"; description "Gateway mode of the fabric";
} }
leaf traffic-behavior { leaf traffic-behavior {
type enumeration { type enumeration {
enum normal { enum normal {
description "Normal"; description "Normal, no policy is enforced.";
} }
enum policy-driven { enum policy-driven {
description "Policy driven"; description "Policy driven";
} }
} }
default "normal"; default "normal";
description "Traffic behavior of the fabric"; description "Traffic behavior of the fabric";
} }
leaf-list capability-supported { leaf-list capability-supported {
skipping to change at page 16, line 34 skipping to change at page 16, line 34
} }
} }
grouping device-attributes { grouping device-attributes {
description "device attributes"; description "device attributes";
leaf device-ref { leaf device-ref {
type fabrictypes:node-ref; type fabrictypes:node-ref;
description description
"The device the fabric includes."; "The device the fabric includes.";
} }
leaf role { leaf-list role {
type fabrictypes:device-role; type fabrictypes:device-role;
default fabrictypes:leaf; default fabrictypes:leaf;
description description
"Role of the device node"; "Role of the device node";
} }
} }
grouping link-attributes { grouping link-attributes {
description "Link attributes"; description "Link attributes";
leaf link-ref { leaf link-ref {
skipping to change at page 17, line 44 skipping to change at page 17, line 44
} }
leaf type { leaf type {
type fabrictypes:underlay-network-type; type fabrictypes:underlay-network-type;
description description
"The type of physical network that implements this "The type of physical network that implements this
fabric.Examples are vlan, and trill."; fabric.Examples are vlan, and trill.";
} }
container vni-capacity { container vni-capacity {
description "Number of vnis that the fabric has"; description "Number of vni(VXLAN Network Identifier, see [RFC7348])s that the fabric has";
leaf min { leaf min {
type int32; type int32;
description description
"Vni min capacity"; "Vni min capacity";
} }
leaf max { leaf max {
type int32; type int32;
description description
"Vni max capacity"; "Vni max capacity";
skipping to change at page 19, line 8 skipping to change at page 19, line 8
uses fabric-network-type; uses fabric-network-type;
} }
augment "/nw:networks/nw:network/nw:node" { augment "/nw:networks/nw:network/nw:node" {
when "/nw:networks/nw:network/nw:network-types/fabric:fabric-network" { when "/nw:networks/nw:network/nw:network-types/fabric:fabric-network" {
description description
"Augmentation parameters apply only for networks "Augmentation parameters apply only for networks
with fabric topology"; with fabric topology";
} }
description "Augmentation for fabric nodes created by faas."; description "Augmentation for fabric nodes created by fabric topology.";
container fabric-attributes { container fabric-attributes {
description description
"Attributes for a fabric network"; "Attributes for a fabric network";
uses fabric-attributes; uses fabric-attributes;
} }
} }
augment "/nw:networks/nw:network/nw:node/nt:termination-point" { augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
skipping to change at page 21, line 37 skipping to change at page 21, line 37
and H. Ananthakrishnan, "A YANG Data Model for Network and H. Ananthakrishnan, "A YANG Data Model for Network
Topologies", I-D draft-ietf-i2rs-yang-network-topo-06, Topologies", I-D draft-ietf-i2rs-yang-network-topo-06,
September 2016. September 2016.
[I-D.draft-ietf-netmod-revised-datastores-06] [I-D.draft-ietf-netmod-revised-datastores-06]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "A Revised Conceptual Model for YANG and R. Wilton, "A Revised Conceptual Model for YANG
Datastores", I-D draft-ietf-netmod-revised-datastores-06, Datastores", I-D draft-ietf-netmod-revised-datastores-06,
October 2017. October 2017.
[I-D.draft-ietf-nvo3-vxlan-gpe] [I-D.draft-ietf-nvo3-geneve]
Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol Gross, J., Ganga, I., and T. Sridhar, "Geneve: Generic
Extension for VXLAN", I-D draft-ietf-i2rs-yang-network- Network Virtualization Encapsulation", I-D draft-ietf-
topo-02, October 2016. i2rs-yang-network-topo-02, September 2017.
[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>.
[RFC5246] Dierks, T. and E. Rescorla, "Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "Transport Layer Security
(TLS) Protocol Version 1.2", August 2008, (TLS) Protocol Version 1.2", August 2008,
<http://www.rfc-editor.org/info/rfc5246>. <http://www.rfc-editor.org/info/rfc5246>.
skipping to change at page 22, line 24 skipping to change at page 22, line 24
Shell (SSH)", June 2011, Shell (SSH)", June 2011,
<http://www.rfc-editor.org/info/rfc6242>. <http://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and B. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and B. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", March 2012, Protocol (NETCONF) Access Control Model", March 2012,
<http://www.rfc-editor.org/info/rfc6536>. <http://www.rfc-editor.org/info/rfc6536>.
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991,
July 2013. July 2013.
[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", August 2014,
<http://www.rfc-editor.org/info/rfc7348>.
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, Auguest 2016. RFC 7950, DOI 10.17487/RFC7950, Auguest 2016.
[RFC8040] Bierman, A., Bjorklund, B., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, B., and K. Watsen, "RESTCONF
Protocol", Jan 2017, Protocol", Jan 2017,
<http://www.rfc-editor.org/info/rfc8040>. <http://www.rfc-editor.org/info/rfc8040>.
8.2. Informative References 8.2. Informative References
[I-D.draft-ietf-i2rs-usecase-reqs-summary] [I-D.draft-ietf-i2rs-usecase-reqs-summary]
skipping to change at page 23, line 22 skipping to change at page 23, line 34
Like ietf-network-state and ietf-network-topology-state, ietf-fabric- Like ietf-network-state and ietf-network-topology-state, ietf-fabric-
topology-state SHOULD NOT be supported by implementations that topology-state SHOULD NOT be supported by implementations that
support NMDA. It is for this reason that the module is defined in support NMDA. It is for this reason that the module is defined in
the Appendix. the Appendix.
The definition of the module follows below. As the structure of the The definition of the module follows below. As the structure of the
module mirrors that of its underlying module, the YANG tree is not module mirrors that of its underlying module, the YANG tree is not
depicted separately. depicted separately.
<CODE BEGINS> file "ietf-dc-fabric-topology-state@2017-12-21.yang" <CODE BEGINS> file "ietf-dc-fabric-topology-state@2018-02-11.yang"
module ietf-dc-fabric-topology-state { module ietf-dc-fabric-topology-state {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology-state"; namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology-state";
prefix sfabric; prefix sfabric;
import ietf-network-state { import ietf-network-state {
prefix nws; prefix nws;
reference reference
"draft-ietf-i2rs-yang-network-topo-20 "draft-ietf-i2rs-yang-network-topo-20
skipping to change at page 25, line 4 skipping to change at page 25, line 15
Architecture(NMDA). Architecture(NMDA).
Copyright (c) 2016 IETF Trust and the persons identified Copyright (c) 2016 IETF Trust and the persons identified
as authors of the code. All rights reserved. as 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(http://trustee.ietf.org/license-info). Relating to IETF Documents(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-dc-fabric-network-topology;see the RFC draft-ietf-i2rs-yang-dc-fabric-network-topology;see the RFC
itself for full legal notices. itself for full legal notices.
NOTE TO RFC EDITOR: Please replace above reference to NOTE TO RFC EDITOR: Please replace above reference to
draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with RFC number draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with RFC number
when published (i.e. RFC xxxx)."; when published (i.e. RFC xxxx).";
revision "2017-12-21" { revision "2018-02-11" {
description description
"Initial revision. "Initial revision.
NOTE TO RFC EDITOR: Please replace the following reference to NOTE TO RFC EDITOR: Please replace the following reference to
draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with RFC draft-ietf-i2rs-yang-dc-fabric-network-topology-03 with RFC
number when published (i.e. RFC xxxx)."; number when published (i.e. RFC xxxx).";
reference reference
"draft-ietf-i2rs-yang-dc-fabric-network-topology-03"; "draft-ietf-i2rs-yang-dc-fabric-network-topology-05";
} }
//grouping statements //grouping statements
grouping fabric-network-type { grouping fabric-network-type {
description "Identify the topology type to be fabric."; description "Identify the topology type to be fabric.";
container fabric-network { container fabric-network {
presence "indicates fabric Network"; presence "indicates fabric Network";
description description
"The presence of the container node indicates fabric Topology"; "The presence of the container node indicates fabric Topology";
} }
skipping to change at page 26, line 27 skipping to change at page 26, line 39
"Supported services of the fabric"; "Supported services of the fabric";
} }
} }
grouping device-attributes { grouping device-attributes {
description "device attributes"; description "device attributes";
leaf device-ref { leaf device-ref {
type fabrictypes:node-ref; type fabrictypes:node-ref;
description "The device the fabric includes."; description "The device the fabric includes.";
} }
leaf role { leaf-list role {
type fabrictypes:device-role; type fabrictypes:device-role;
default fabrictypes:leaf; default fabrictypes:leaf;
description "Role of the node"; description "Role of the node";
} }
} }
grouping link-attributes { grouping link-attributes {
description "Link attributes"; description "Link attributes";
leaf link-ref { leaf link-ref {
type fabrictypes:link-ref; type fabrictypes:link-ref;
skipping to change at page 28, line 5 skipping to change at page 28, line 17
description "Options of the fabric"; description "Options of the fabric";
uses fabric-options; uses fabric-options;
} }
list device-nodes { list device-nodes {
key device-ref; key device-ref;
description "Device nodes that include in a fabric."; description "Device nodes that include in a fabric.";
uses device-attributes; uses device-attributes;
} }
list device-links { list device-links {
key link-ref; key link-ref;
description "Links that include within a fabric."; description "Links that are included within the fabric.";
uses link-attributes; uses link-attributes;
} }
list device-ports { list device-ports {
key port-ref; key port-ref;
description "Ports that include in the fabric."; description "Ports that are included within the fabric.";
uses port-attributes; uses port-attributes;
} }
} }
// augment statements // augment statements
augment "/nws:networks/nws:network/nws:network-types" { augment "/nws:networks/nws:network/nws:network-types" {
description description
"Introduce new network type for Fabric-based logical topology"; "Introduce new network type for Fabric-based logical topology";
uses fabric-network-type; uses fabric-network-type;
 End of changes. 23 change blocks. 
25 lines changed or deleted 33 lines changed or added

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