Network Working Group L.Contreras Internet Draft Telefonica I+D Intended status: Standard Track Andrew Qu Expires: April 2015 Mediatek October 27, 2014 A YANG Data Model for Network Topologies draft-contreras-supa-yang-network-topo-01 Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire on April 27, 2013. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Contreras, et al. Expires April 27, 2015 [Page 1] Internet-Draft A YANG Data Model for Network Topologies October 2014 Abstract This document defines a YANG data model for network topologies. Table of Contents 1. Introduction ............................................. 2 2. Conventions used in this document .........................3 3. Terminology .............................................. 3 4. Network topology model overview........................... 3 4.1. Topology information model............................. 3 4.2. Topology data model.................................... 5 4.3. Topology data model structure ..........................6 4.4. Main building blocks................................... 8 5. SUPA topology YANG model.................................. 9 6. Security Considerations.................................. 23 7. IANA Considerations...................................... 23 8. Acknowledgments ......................................... 23 9. References .............................................. 23 9.1. Normative References.................................. 23 9.2. Informative References................................ 24 1. Introduction This document introduces a YANG data model for network topologies. The model allows an application to have a holistic view of an entire network. In order to capture information that is specific to a particular type of network topology, the data model contains such as nodes and links that constitute a topology graph, as well as termination points are contained in the nodes that actually terminate links of the graph, more specifically, termination points can also be consisted in the clients as well as servers. Besides, in order to provide views at different network layers, the network topology information model has a "layer" property to indicate the layer where the topology underlays. Now the "layer" property has four values: optical [editor's note: wireless is also important, and will be taken into account later], physical, datalink and IP and can be extended to layer 4,5 and 7. The data model is generic in nature and can depict the network topology in the specific network layer as the application expects. As a result, the data model can be applied to any type of network topology. Topology model abstracts the elements of a network, and provides a holistic view of the whole network to applications. Based on the topology model and vendor-neutral policy configurations, an application can configure policies at the network level rather than the device level. SUPA (Shared Unified Policy Automation) could Contreras, et al. Expires April 27, 2015 [Page 2] Internet-Draft A YANG Data Model for Network Topologies October 2014 translate the policy configuration from network level to device level, and deploy the policy configuration to the network. The data model is mainly defined in a YANG module named "topology", which contains a generic network topology model. It models a graph set of "connected" network elements, such as links, nodes, termination points, external nodes, external termination points, and external links. External nodes, external termination points, external links may not exist in a specific topology. Technically, a submatter can be virtualized as one node, shown as the node container in the next few sections. The model is also capable of depicting the topology at different layers, thus a network can be represented in the way as applications expect. In another word, different users or applications may have different views of the topology. 2. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119. In this document, these words will appear with that interpretation only when in ALL CAPS. Lower case uses of these words are not to be interpreted as carrying RFC-2119 significance. 3. Terminology NETCONF: Network Configuration Protocol SUPA: Shared Unified Policy Automation YANG: A data modeling language used to model configuration and state data manipulated by the NETCONF protocol. 4. Network topology model overview 4.1. Topology information model This section provides an overview of the network topology information model. As shown in figure 1, the information model is mainly focused on the hierarchy of the topology information. Topology information may be originated from network elements from different layers. Furthermore, SDN operation is basically the manipulation of managed object instances, the information model of network topology should be organized into a hierarchical manner in order to capture information Contreras, et al. Expires April 27, 2015 [Page 3] Internet-Draft A YANG Data Model for Network Topologies October 2014 that is specific to different network topology types. The scope of this document is focused on the generic and abstract topology model with certain typical models for specific topologies. Other topology models can be derived from the abstract one. +--------------------------------+ | | | Network topology | | | +---+----------------+-------+---+ | | | | | | +-----------------+--------------+ | | | IP topology | | | |-----------+---------+----------| | | | | | | | | | | | | | +----+-----------------------+ | IGP topology BGP topology | | | | | ^ ^ | | | Datalink topology model | | | | | | |----------------------------| | | | <----+ IEEE802.3 Ethernet PPP | |OSPF topology ISIS topology | | | | | ^ ^ | | | ATM token ring X.25 | | | | | | | | | | | | | +-------+--------------------+ | TE topology | | | +--------------------------+-----+ | | | | | | | | +----+-------+----------+---+ | | | Physical topology model | |---------------------------| | optical copper hub | | | | adapter repeater | | | +---------------------------+ Figure 1 Topology information model structure Physical topology: This type of topology consists of physical devices and the transmission medium among them. Besides topology information those electrical and electronic specifications are also the components of this physical topology. Contreras, et al. Expires April 27, 2015 [Page 4] Internet-Draft A YANG Data Model for Network Topologies October 2014 Data-link topology: This type of topology focuses on network elements that are visible with the help of different data-link protocols and their characteristics. Network topology: This type of topology emphasizes network elements and connections that can be discovered by protocols in network stack. It can be further classified into different subordinate topologies according to the protocol used. 4.2. Topology data model The topology data model in figure 2 defines a network topology at a general level of abstraction. It models aspects such as nodes, links and termination point. The universal elements of the data model are as follows: A network at any layer can contain multiple topologies. Each topology is captured in its own list elements, distinguished via a topology ID. Topology: A topology is used to describe network entities and their relationships. Usually a topology may contain different nodes, links and termination points. A topology can be uniquely identified by its topology ID. A network can be represented by several different topologies which may be organized into hierarchical manner.s. Node: A node, uniquely identified by its node ID in this topology, can represent one network entity either physical or logical. According to the controller scope that the nodes belong to, they can be referred as (internal) nodes or external nodes respectively. Link: A link, uniquely identified by its link ID, is a demonstration of the point-to-point connectivity between two nodes. It is expressed in a unidirectional manner and defines its direction with the help of its source and destination termination points. Similarly as nodes, links can be subcategorized into (internal) links or external links according to their controller scope. Termination point: A termination point is used to describe the attachment relationship between a node and one of its links. It can be uniquely identified by the termination point ID in the corresponding node. One node may contain multiple termination points but one termination point only associates one link to the node. ExtNode, extLink and extTerminationPoint of a topology are also defined to depict nodes, links and terminationPoints which are not Contreras, et al. Expires April 27, 2015 [Page 5] Internet-Draft A YANG Data Model for Network Topologies October 2014 under the control of the controller in the topology. These elements have the same attributes as the internal elements of the topology. The node, link, termination point also should be capable of being defined at different network layer. The design method of such elements will be described in following sections. An overview of the YANG module for topology is illustrated in the figure below. +-------------------------+ | | | topology | | | +-+-+----+---------+--+-+-+ | | | | | | | | | | | | | | | | | | | | | | | | +------------+ | | | | | | | | | | +------------------+ | +-----+ | | +--------+ | | | | +-+ | | | | | | | | +--+---+ +--+---+ +----+------++---+---+ +---+---+ +-----+-----+ |link | |node | |termination||extLink| |extNode| |extTerminat| +------+ +------+ |Point |+-------+ +-------+ |ionPoint | +-----------+ +-----------+ Figure 2 Topology information model structure 4.3. Topology data model structure The structure of the topology data model, as defined in the YANG module "SUPA- topology ", is described as follow. Brackets denote list keys, "rw" denotes configuration data, "ro" denotes operational state data, "*" denotes the parameter that can have multiple instances, and "?" denotes optional parameters. The figure is intended to provide an overall structure of the topology data model. module: SUPA-topology +--rw topologies | +--rw topology* [topoId] | +--rw topoId string | +--rw topoName? string | +--rw layer enumeration Contreras, et al. Expires April 27, 2015 [Page 6] Internet-Draft A YANG Data Model for Network Topologies October 2014 +--rw nodes | +--rw node* [nodeId] | +--rw nodeId string | +--rw nodeName? string | +--rw nodeType? enumeration | +--rw adminStatus? enumeration | +--ro operStatus? enumeration | +--rw parentTopoID? string +--rw extnodes | +--rw extnode* [nodeId] | +--rw nodeId string | +--rw nodeName? string | +--rw nodeType? enumeration | +--rw adminStatus? enumeration | +--ro operStatus? enumeration | +--rw parentTopoID? string +--rw terminationpoints | +--rw terminationpoint* [tpId] | +--rw tpId string | +--rw tpName? string | +--rw nodeId? string +--rw extterminationpoints | +--rw extterminationpoint* [tpId] | +--rw tpId string | +--rw tpName? string | +--rw nodeId? string | +--rw parentTopoID? string +--rw links | +--rw link* [linkId] | +--rw linkId string | +--rw linkName? string | +--rw linkType? enumeration | +--rw direction? enumeration | +--rw adminStatus? enumeration | +--ro operStatus? enumeration | +--rw sourceNodeId string | +--rw sourceTpId string | +--rw destinationNodeId string | +--rw destinationTpId string | +--rw parentTopoID? string | +--rw linkTeAttrCfg | | +--rw maxReservableBandwidth? uint32 | | +--rw teIfMetric? uint32 | | +--rw srlg-values* [srlg-value] | | | +--rw srlg-value uint32 | | +--rw administrativeGroups | | +--rw color? uint32 Contreras, et al. Expires April 27, 2015 [Page 7] Internet-Draft A YANG Data Model for Network Topologies October 2014 | +--rw linkAttrRun | +--ro physicalBandwidth? uint32 +--rw extlinks +--rw extlink* [linkId] +--rw linkId string +--rw linkName? string +--rw linkType? enumeration +--rw direction? enumeration +--rw adminStatus? enumeration +--ro operStatus? enumeration +--rw sourceNodeId string +--rw sourceTpId string +--rw destinationNodeId string +--rw destinationTpId string +--rw parentTopoID? string +--rw linkTeAttrCfg | +--rw maxReservableBandwidth? uint32 | +--rw teIfMetric? uint32 | +--rw administrativeGroups | +--rw administrativeGroup* [affinityName] | +--rw affinityName string +--rw linkAttrRun +--ro physicalBandwidth? uint32 4.4. Main building blocks A network at any layer can contain multiple topologies. Each topology is captured from its own list of elements, distinguished via a topology ID. A network topology can also be consisted of multiple layers, and one topology reflects all these layers which are hierarchized. A topology can be viewed from a certain layer, e.g., optical indicates layer 0, physical indicates layer 1, datalink indicates layer 2 and IP indicates layer 3. The layer is captured underneath container "layer". This serves as container for a data model that indicates the topology in which network layer. All these layers together construct a unified topology. A topology contains nodes, links, ternminationpoints, extNode, extLink and extTerminationPoint, and each of them is captured in their own lists. A node has a node ID. Node ID distinguishes the node from other nodes in the list. A node also has attributes such as nodeName, adminStatus, operStatus, and topoID, and the meaning of them can be found in the Contreras, et al. Expires April 27, 2015 [Page 8] Internet-Draft A YANG Data Model for Network Topologies October 2014 detailed topology YANG module in section 4. In addition, a node in a topology has three types: physical node, virtual node and container node. A "physical" node is a physical device, such as an actual router, an actual switch, and etc. A "virtual" node here denotes to a virtual isolated partition of a physical node. For example a router can be divided into several sub-routers, each of which has external connections. In this way, from external view, each sub-router can be treated as a "virtual" node which simulates the pseudo node in the ISIS broadcast network. The pseudo node is not an actual router. With the pseudo nodes, the network topology is simplified and the LSP is shortened. A "container" node is an abstract node. A sub topology may be regarded as a container node to simplify the parent topology. The parent topology has a container node that maps a sub topology. The type is captured underneath container "nodeType". A termination point is a begin point or end point of a link, it is identified by a termination point ID. A termination point also has containers such as "topoId", "tpName" and "tpId" whose descriptions can be found in section 4. A node has one or more termination points. A link is identified by a link ID, which uniquely identifies the link within the topology. Links are bidirectional or unidirectional. A link contains a "source" and a "destination". Both "source" and "destination" reference to a corresponding node, as well as a termination point on that node. External objects such as extNode, extLink and extTerminationPoint of a topology are objects not controlled by the controller which manage the topology. For example, a link is an internal link between nodes in the network managed by a SDN controller. An external link connects a node in the network managed by a SDN controller to a node in the network managed by the other SDN controller. A link is a connection line in a topology. An external link is a connection line between two different topologies. 5. SUPA topology YANG model module SUPA-topology { namespace "http://"; prefix "SUPA-topology"; organization " "; contact " "; description " "; revision "2014-08-13"{ description "Initial revision."; } Contreras, et al. Expires April 27, 2015 [Page 9] Internet-Draft A YANG Data Model for Network Topologies October 2014 container topologies { list topology { key "topoId"; description "Network Topology"; leaf topoId { description "Topology ID"; config true; type string { length "1..32"; } } leaf topoName { description "Topology Name"; config true; type string { length "0..32"; } } leaf layer { description "layer"; config true; mandatory true; type enumeration { enum optical { value 0; description "L0"; } enum physical { value 1; description "L1"; } enum datalink { value 2; description "L2"; } enum ip { value 3; description "L3"; } } } } Contreras, et al. Expires April 27, 2015 [Page 10] Internet-Draft A YANG Data Model for Network Topologies October 2014 } container nodes { list node { key "nodeId"; description "Topology Node"; leaf nodeId { description "Node Id"; config true; type string { length "0..32"; } } leaf nodeName { description "Node Name"; config true; type string { length "0..32"; } } leaf nodeType { description "Node Type"; config true; default physical; type enumeration { enum physical { value 0; description "physical"; } enum virtual { value 1; description "virtual"; } } } leaf adminStatus { description "administration status"; config true; default adminUp; type enumeration { enum adminDown { value 0; description "configured to be down"; } Contreras, et al. Expires April 27, 2015 [Page 11] Internet-Draft A YANG Data Model for Network Topologies October 2014 enum adminUp { value 1; description "configured to be up"; } } } leaf operStatus { description "running status"; config false; type enumeration { enum down { value 0; description "down"; } enum up { value 1; description "up"; } } } leaf parentTopoID { description "topology ID the node belongs to";one topology may belong to more than one parent topologies? config true; type string { length "0..32"; } } } } container extnodes { list extnode { key "nodeId"; description "External Nodes"; leaf nodeId { description "Node Id"; config true; type string { length "0..32"; } } leaf nodeName { Contreras, et al. Expires April 27, 2015 [Page 12] Internet-Draft A YANG Data Model for Network Topologies October 2014 description "Node Name"; config true; type string { length "0..32"; } } leaf nodeType { description "Node Type"; config true; default physical; type enumeration { enum physical { value 0; description "physical"; } enum virtual { value 1; description "virtual"; } } } leaf adminStatus { description "administration status"; config true; default adminUp; type enumeration { enum adminDown { value 0; description "configured to be down"; } enum adminUp { value 1; description "configured to be up"; } } } leaf operStatus { description "running status"; config false; type enumeration { enum down { value 0; description "down"; } enum up { value 1; description "up"; Contreras, et al. Expires April 27, 2015 [Page 13] Internet-Draft A YANG Data Model for Network Topologies October 2014 } } } leaf parentTopoID { description "topology ID the node belongs to";same problem? config true; type string { length "0..32"; } } } } container terminationpoints { list terminationpoint { key "tpId"; description " "; leaf tpId { description "ID"; config true; type string { length "1..32"; } } leaf tpName { description "Name"; config true; type string { length "0..32"; } } leaf nodeId { description "the node ID the termination point belongs to"; config true; type string { length "1..32"; } } } } Contreras, et al. Expires April 27, 2015 [Page 14] Internet-Draft A YANG Data Model for Network Topologies October 2014 container extterminationpoints { list extterminationpoint { key "tpId"; description " "; leaf tpId { description "ID"; config true; type string { length "1..32"; } } leaf tpName { description "Name"; config true; type string { length "0..32"; } } leaf nodeId { description "the node ID the termination point belongs to"; config true; type string { length "1..32"; } } leaf parentTopoID { description "topology ID the termination point belongs to"; config true; type string { length "0..32"; } } } } container links { list link { key "linkId"; Contreras, et al. Expires April 27, 2015 [Page 15] Internet-Draft A YANG Data Model for Network Topologies October 2014 description "Link"; leaf linkId { description "Link Identifier"; config true; type string { length "0..32"; } } leaf linkName { description "Link Name"; config true; type string { length "0..32"; } } leaf linkType { description "Link Type"; config true; default physical; type enumeration { enum physical { value 0; description " "; } enum telink { value 1; description " "; } } } leaf direction { description "tunnel direction"; config true; default unidirectional; type enumeration { enum unidirectional { value 0; description "unidirectional"; } enum bidirectional { value 1; description "bidirectional"; } } } leaf adminStatus { Contreras, et al. Expires April 27, 2015 [Page 16] Internet-Draft A YANG Data Model for Network Topologies October 2014 description "administration status"; config true; default adminUp; type enumeration { enum adminDown { value 0; description "configured to be down"; } enum adminUp { value 1; description "configured to be up"; } } } leaf operStatus { description "running status"; config false; type enumeration { enum down { value 0; description "down"; } enum up { value 1; description "up"; } } } leaf sourceNodeId { description "Node Id"; config true; mandatory true; type string { length "1..32"; } } leaf sourceTpId { description "Source Termination Point Id"; config true; mandatory true; type string { length "1..32"; } } leaf destinationNodeId { description "Node Id"; config true; Contreras, et al. Expires April 27, 2015 [Page 17] Internet-Draft A YANG Data Model for Network Topologies October 2014 mandatory true; type string { length "1..32"; } } leaf destinationTpId { description "Destination Termination Point Id"; config true; mandatory true; type string { length "1..32"; } } leaf parentTopoID { description "topology ID the link belongs to"; config true; type string { length "0..32"; } } container linkTeAttrCfg { description "Link TE Attribute"; leaf maxReservableBandwidth { description "Max Reservable Bandwidth Attribute,kbps"; config true; default 0; type uint32 { range "0..4000000000"; } } leaf teIfMetric { description "TE-LINK metric"; config true; type uint32 { range "1..16777215"; } } list srlg-values { description "List of Shared Risk Link Group this interface belongs to."; key "srlg-value"; leaf srlg-value { description "Shared Risk Link Group value"; Contreras, et al. Expires April 27, 2015 [Page 18] Internet-Draft A YANG Data Model for Network Topologies October 2014 type uint32; } } container administrativeGroups { leaf color { description "Administrative group or color of the link"; type uint32; } } } container linkAttrRun { description "link value negotiated"; leaf physicalBandwidth { description "Physical Bandwidth,kbps"; config false; default 0; type uint32 { range "0..4000000000"; } } } } } container extlinks { list extlink { key "linkId"; description "External Links"; leaf linkId { description "Link Identifier"; config true; type string { length "0..32"; } } Contreras, et al. Expires April 27, 2015 [Page 19] Internet-Draft A YANG Data Model for Network Topologies October 2014 leaf linkName { description "Link Name"; config true; type string { length "0..32"; } } leaf linkType { description "Link Type"; config true; default physical; type enumeration { enum physical { value 0; description " "; } enum telink { value 1; description " "; } } } leaf direction { description "tunnel direction"; config true; default unidirectional; type enumeration { enum unidirectional { value 0; description "unidirectional"; } enum bidirectional { value 1; description "bidirectional"; } } } leaf adminStatus { description "administration status"; config true; default adminUp; type enumeration { enum adminDown { value 0; description "configured to be down"; } enum adminUp { Contreras, et al. Expires April 27, 2015 [Page 20] Internet-Draft A YANG Data Model for Network Topologies October 2014 value 1; description "configured to be up"; } } } leaf operStatus { description "running status"; config false; type enumeration { enum down { value 0; description "down"; } enum up { value 1; description "up"; } } } leaf sourceNodeId { description "Node Id"; config true; mandatory true; type string { length "1..32"; } } leaf sourceTpId { description "Source Termination Point Id"; config true; mandatory true; type string { length "1..32"; } } leaf destinationNodeId { description "Node Id"; config true; mandatory true; type string { length "1..32"; } } leaf destinationTpId { description "Destination Termination Point Id"; config true; mandatory true; Contreras, et al. Expires April 27, 2015 [Page 21] Internet-Draft A YANG Data Model for Network Topologies October 2014 type string { length "1..32"; } } leaf parentTopoID { description "topology ID the link belongs to"; config true; type string { length "0..32"; } } container linkTeAttrCfg { description "Link TE Attribute"; leaf maxReservableBandwidth { description "Max Reservable Bandwidth Attribute,kbps"; config true; default 0; type uint32 { range "0..4000000000"; } } leaf teIfMetric { description "TE-LINK metric"; config true; type uint32 { range "1..16777215"; } } container administrativeGroups { list administrativeGroup { key "affinityName"; description " A link may have one or more affinity name. Here is a group of those affinity information."; leaf affinityName { description "Affinity Name"; config true; type string { length "0..32"; } } } Contreras, et al. Expires April 27, 2015 [Page 22] Internet-Draft A YANG Data Model for Network Topologies October 2014 } } container linkAttrRun { description "link value negotiated"; leaf physicalBandwidth { description "Physical Bandwidth,kbps"; config false; default 0; type uint32 { range "0..4000000000"; } } } } } } 6. Security Considerations It will be considered in a future revision. 7. IANA Considerations 8. Acknowledgments TBD 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, October 2010. Contreras, et al. Expires April 27, 2015 [Page 23] Internet-Draft A YANG Data Model for Network Topologies October 2014 [RFC6021] Schoenwaelder, J., "Common YANG Data Types", RFC 6021, October 2010. 9.2. Informative References [APONF-architecture] C. Zhou, T. Tsou, Q. Sun, D. Lopez, G. Karagiannis, "APONF Architecture", IETF Internet draft, draft-zhou- aponf-architecture-00, June 2014 Authors' Addresses Luis M. Contreras Telefonica I+D Ronda de la Comunicacion, Sur-3 building, 3rd floor Madrid 28050 Spain Email: luismiguel.contrerasmurillo@telefonica.com URI: http://people.tid.es/LuisM.Contreras/ Andrew Qu MediaTek Email: andrew.qu@mediatek.com Contreras, et al. Expires April 27, 2015 [Page 24]