idnits 2.17.1 draft-zhuang-i2rs-yang-dc-fabric-network-topology-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 38 instances of too long lines in the document, the longest one being 49 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 279 has weird spacing: '...ice-ref fab...' == Line 282 has weird spacing: '...ink-ref fab...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (July 3, 2017) is 2487 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: '6020' on line 95 -- Looks like a reference, but probably isn't: '7950' on line 95 == Missing Reference: 'I-D.ietf-i2rs-yang-network-topo' is mentioned on line 110, but not defined == Unused Reference: 'I-D.draft-ietf-i2rs-yang-l3-topology' is defined on line 953, but no explicit reference was found in the text == Unused Reference: 'I-D.draft-ietf-i2rs-yang-network-topo' is defined on line 959, but no explicit reference was found in the text == Unused Reference: 'I-D.draft-ietf-nvo3-vxlan-gpe' is defined on line 965, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 975, but no explicit reference was found in the text == Unused Reference: 'RFC6991' is defined on line 979, but no explicit reference was found in the text == Unused Reference: 'RFC7950' is defined on line 982, but no explicit reference was found in the text == Unused Reference: 'I-D.draft-ietf-i2rs-usecase-reqs-summary' is defined on line 987, but no explicit reference was found in the text == Outdated reference: A later version (-16) exists of draft-ietf-i2rs-yang-l3-topology-04 == Outdated reference: A later version (-20) exists of draft-ietf-i2rs-yang-network-topo-06 == Outdated reference: A later version (-20) exists of draft-ietf-i2rs-yang-network-topo-02 -- Duplicate reference: draft-ietf-i2rs-yang-network-topo, mentioned in 'I-D.draft-ietf-nvo3-vxlan-gpe', was also mentioned in 'I-D.draft-ietf-i2rs-yang-network-topo'. == Outdated reference: A later version (-03) exists of draft-ietf-i2rs-usecase-reqs-summary-01 Summary: 2 errors (**), 0 flaws (~~), 16 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 I2RS Working Group Y. Zhuang 3 Internet-Draft D. Shi 4 Intended status: Standards Track Huawei 5 Expires: January 4, 2018 R. Gu 6 China Mobile 7 H. Ananthakrishnan 8 Packet Design 9 July 3, 2017 11 A YANG Data Model for Fabric Topology in Data Center Network 12 draft-zhuang-i2rs-yang-dc-fabric-network-topology-04 14 Abstract 16 This document defines a YANG data model for fabric topology in Data 17 Center Network. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at http://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on January 4, 2018. 36 Copyright Notice 38 Copyright (c) 2017 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 2. Definitions an Acronyms . . . . . . . . . . . . . . . . . . . 3 55 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 56 2.2. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 4 57 3. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4 58 3.1. Topology Model structure . . . . . . . . . . . . . . . . 4 59 3.2. Fabric Topology Model . . . . . . . . . . . . . . . . . . 5 60 3.2.1. Fabric Topology . . . . . . . . . . . . . . . . . . . 5 61 3.2.2. Fabric node extension . . . . . . . . . . . . . . . . 6 62 3.2.3. Fabric termination-point extension . . . . . . . . . 7 63 4. Fabric YANG Module . . . . . . . . . . . . . . . . . . . . . 8 64 5. Security Consideration . . . . . . . . . . . . . . . . . . . 21 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 67 7.1. Normative References . . . . . . . . . . . . . . . . . . 21 68 7.2. Informative References . . . . . . . . . . . . . . . . . 22 69 Appendix A. Non NMDA -state modules . . . . . . . . . . . . . . 22 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 72 1. Introduction 74 Normally, a data center network is composed of single or multiple 75 fabrics which are also known as PODs (a Point Of Delivery). These 76 fabrics may be heterogeneous due to implementation of different 77 technologies while DC network upgrading or enrolling new techniques 78 and features. For example, Fabric A may use VXLAN while Fabric B may 79 use VLAN within a DC network. Likewise, a legacy Fabric may use 80 VXLAN while a new Fabric B implemented technique discussed in NVO3 WG 81 such as GPE[I-D. draft-ietf-nvo3-vxlan-gpe] may be built due to DC 82 expansion and upgrading. The configuration and management of such DC 83 networks with heterogeneous fabrics will be sophisticated and 84 complex. 86 Luckily, for a DC network, a fabric can be considered as an atomic 87 structure to provide network services and management, as well as 88 expand network capacity. From this point of view, the miscellaneous 89 DC network management can be decomposed to task of managing each 90 fabric respectively along with their connections, which can make the 91 entire management much concentrated and flexible, also easy to 92 expand. 94 With this purpose, this document defines a YANG data model for the 95 Fabric-based Data center topology by using YANG [6020][7950]. To do 96 so, it augments the generic network and network topology data models 97 defined in [I-D.ietf-i2rs-yang-network-topo] with information 98 specific to Data Center fabric network. 100 This model defines the generic configuration and operational state 101 for a fabric-based network topology, which can be extended by vendors 102 with specific information. This model can then be used by a network 103 controller to represent its view of the fabric topology that it 104 controls and expose it to network administrators or applications for 105 DC network management. 107 With the context of topology architecture defined in [I-D.ietf-i2rs- 108 yang-network-topo] and [I.D. draft-ietf-i2rs-usecase-reqs-summary], 109 this model can also be treated as an application of I2RS network 110 topology model [I-D.ietf-i2rs-yang-network-topo] in the scenario of 111 Data center network management. It can also act as a service 112 topology when mapping network elements at fabric layer to elements to 113 other topologies, such as L3 topology defined in [I.D. draft-ietf- 114 i2rs-yang-l3-topology-01. 116 By using this fabric topology model, people can treat a fabric as an 117 entity and focus on characteristics of fabrics (such as encapsulation 118 type, gateway type, etc.) as well as their interconnections while 119 putting the underlay topology aside. As such, clients can consume 120 the topology information at fabric level, while no need to be aware 121 of entire set of links and nodes in underlay networks. The 122 configuration of a fabric topology can be made by a network 123 administractor to the controller by adding physical devices and links 124 of a fabric into a fabric network. Alternatively, the fabric 125 topology can also learnt from the underlay network infrastructure. 127 2. Definitions an Acronyms 129 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 130 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 131 document are to be interpreted as described in [RFC2119]. 133 2.1. Terminology 135 DC Fabric: also known as POD, is a module of network, compute, 136 storage, and application components that work together to deliver 137 networking services. It is a repeatable design pattern, and its 138 components maximize the modularity, scalability, and manageability of 139 data centers. 141 2.2. Tree diagram 143 The following notations are used within the data tree and carry the 144 meaning as below. 146 Each node is printed as: 147 149 is one of: 150 + for current 151 x for deprecated 152 o for obsolete 153 is one of: 154 rw for configuration data 155 ro for non-configuration data 156 -x for rpcs 157 -n for notifications 158 is the name of the node 160 If the node is augmented into the tree from another module, its name 161 is printed as :. 162 is one of: 163 ? for an optional leaf or choice 164 ! for a presence container 165 * for a leaf-list or list 166 [] for a list's keys 167 is the name of the type for leafs and leaf-lists 169 In this document, these words will appear with that interpretation 170 only when in ALL CAPS. Lower case uses of these words are not to be 171 interpreted as carrying RFC-2119 significance. 173 3. Model Overview 175 This section provides an overview of the DC Fabric topology model and 176 its relationship with other topology models. 178 3.1. Topology Model structure 180 The relationship of the DC fabric topology model and other topology 181 models is shown in the following figure (dotted lines in the figure 182 denote augmentations). 184 +------------------------+ 185 | network model | 186 +------------------------+ 187 | 188 | 189 +------------V-----------+ 190 | network topology model | 191 +------------------------+ 192 | 193 +-----------+-----+------+-------------+ 194 | | | | 195 +---V----+ +---V----+ +---V----+ +----V---+ 196 | L1 | | L2 | | L3 | | Fabric | 197 |topology| |topology| |topology| |topology| 198 | model | | model | | model | | model | 199 +--------+ +--------+ +--------+ +--------+ 201 From the perspective of resource management and service provisioning 202 for a Data Center network, the fabric topology model augments the 203 basic network topology model with definitions and features specific 204 to a DC fabric, to provide common configuration and operations for 205 heterogeneous fabrics. 207 3.2. Fabric Topology Model 209 The fabric topology model module is designed to be generic and can be 210 applied to data center fabrics built with different technologies, 211 such as VLAN, VXLAN etc al. The main purpose of this module is to 212 configure and manage fabrics and their connections. provide a fabric- 213 based topology view for data center network applications. 215 3.2.1. Fabric Topology 217 In the fabric topology module, a fabric is modeled as a node in the 218 network, while the fabric-based Data center network consists of a set 219 of fabric nodes and their connections known as "fabric port". The 220 following is the snatch of the definition to show the main structure 221 of the model: 223 module: ietf-fabric-topology 224 augment /nw:networks/nw:network/nw:network-types: 225 +--rw fabric-network! 226 augment /nw:networks/nw:network/nw:node: 227 +--rw fabric-attribute 228 +--rw name? string 229 +--rw type? fabrictype:underlayer-network-type 230 +--rw description? string 231 +--rw options 232 +--... 233 augment /nw:networks/nw:network/nw:node/nt:termination-point: 234 +--ro fport-attribute 235 +--ro name? string 236 +--ro role? fabric-port-role 237 +--ro type? fabric-port-type 239 The fabric topology module augments the generic ietf-network and 240 ietf-network-topology modules as follows: 242 o A new topology type "ietf-fabric-topology" is introduced and added 243 under the "network-types" container of the ietf-network module. 245 o Fabric is defined as a node under the network/node container. A 246 new container of "fabric-attribute" is defined to carry attributes 247 for a fabric network such as gateway mode, fabric types, involved 248 device nodes and links etc al. 250 o Termination points (in network topology module) are augmented with 251 fabric port attributes defined in a container. The "termination- 252 point" here can represent the "port" of a fabric that provides 253 connections to other nodes, such as device internally, another 254 fabric externally and also end hosts. 256 Details of fabric node and fabric termination point extension will be 257 explained in the following sections. 259 3.2.2. Fabric node extension 261 As a network, a fabric itself is composed of set of network elements 262 i.e. devices, and related links. As stated previously, the 263 configuration of a fabric is contained under the "fabric-attribute" 264 container depicted as follows: 266 +--rw fabric-attribute 267 +--rw fabric-id? fabric-id 268 +--rw name? string 269 +--rw type? fabrictype:underlayer-network-type 270 +--rw vni-capacity 271 | +--rw min? int32 272 | +--rw max? int32 273 +--rw description? string 274 +--rw options 275 | +--rw gateway-mode? enumeration 276 | +--rw traffic-behavior? enumeration 277 | +--rw capability-supported* fabrictype:service-capabilities 278 +--rw device-nodes* [device-ref] 279 | +--rw device-ref fabrictype:node-ref 280 | +--rw role? fabrictype:device-role 281 +--rw device-links* [link-ref] 282 | +--rw link-ref fabrictype:link-ref 283 +--rw device-ports* [port-ref] 284 +--rw port-ref fabrictype:tp-ref 285 +--rw port-type? enumeration 286 +--rw bandwith? Enumeration 288 As in the module, additional data objects for nodes are introduced by 289 augmenting the "node" list of the network module. New objects 290 include fabric name, type of the fabric, descriptions of the fabric 291 as well as a set of options defined in an "options" container. The 292 options container includes type of the gateway-mode (centralized or 293 distributed) and traffic-behavior (whether acl needed for the 294 traffic). 296 Also, it defines a list of device-nodes and related links as 297 supporting-nodes to form a fabric network. These device nodes and 298 links are leaf-ref of existing nodes and links in the physical 299 topology. For the device-node, the "role" object is defined to 300 represents the role of the device within the fabric, such as "SPINE" 301 or "LEAF", which should work together with gateway-mode. 303 3.2.3. Fabric termination-point extension 305 Since the fabric is considered as a node, in this concept, 306 "termination-points" can represent "ports" of a fabric that connects 307 to other fabrics or end hosts, besides representing ports that 308 connect devices inside the fabric itself. 310 As such, the "termination-point" in the fabric topology has three 311 roles, including internal TP that connects to devices within a 312 fabric, external TP that connects to outside network, as well as 313 access TP to end hosts. 315 A set of "termination-point" indicates all connections of a fabric 316 including its internal connections, interconnections with other 317 fabrics and also connections to end hosts for a DC network. 319 The structure of fabric ports is as follows: 321 augment /nw:networks/nw:network/nw:node/nt:termination-point: 322 +--ro fport-attribute 323 +--ro name? string 324 +--ro role? fabric-port-role 325 +--ro type? fabric-port-type 326 +--ro device-port? tp-ref 327 +--ro (tunnel-option)? 328 +--:(gre) 329 +--ro src-ip? inet:ip-prefix 330 +--ro dest-ip? inet:ip-address 332 It augments the termination points (in network topology module) with 333 fabric port attributes defined in a container. 335 New nodes are defined for fabric ports which include name, role of 336 the port within the fabric (internal port, external port to outside 337 network, access port to end hosts), port type (l2 interface, l3 338 interface etc al). By using the device-port defined as a tp-ref, 339 this fabric port can be mapped to a device node in the underlay 340 network. 342 Also, a new container for tunnel-options is introduced as well to 343 present the tunnel configuration on the port. 345 The terminiation points information are all learnt from the underlay 346 networks but not configured by the fabric topology layer. 348 4. Fabric YANG Module 350 file "ietf-fabric-types@2016-09-29.yang" 351 module ietf-fabric-types { 353 yang-version 1.1; 354 namespace "urn:ietf:params:xml:ns:yang:ietf-fabric-types"; 355 prefix fabrictypes; 357 import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; } 358 import ietf-network-topology { prefix nt; } 360 organization 361 "IETF I2RS (Interface to the Routing System) Working Group"; 363 contact 364 "WG Web: 365 WG List: 367 WG Chair: Susan Hares 368 370 WG Chair: Russ White 371 373 Editor: Yan Zhuang 374 376 Editor: Danian Shi 377 "; 379 description 380 "This module contains a collection of YANG definitions for Fabric."; 382 revision "2016-09-29" { 383 description 384 "Initial revision of faas."; 385 reference 386 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-02"; 387 } 389 identity fabric-type { 390 description 391 "base type for fabric networks"; 392 } 394 identity vxlan-fabric { 395 base fabric-type; 396 description 397 "vxlan fabric"; 398 } 400 identity vlan-fabric { 401 base fabric-type; 402 description 403 "vlan fabric"; 404 } 405 typedef service-capabilities { 406 type enumeration { 407 enum ip-mapping { 408 description "NAT"; 409 } 410 enum acl-redirect{ 411 description "acl redirect, which can provide SFC function"; 412 } 413 enum dynamic-route-exchange{ 414 description "dynamic route exchange"; 415 } 416 } 417 description 418 "capability of the device"; 419 } 421 /* 422 * Typedefs 423 */ 424 typedef node-ref { 425 type instance-identifier; 426 description "A reference to a node in topology"; 427 } 429 typedef tp-ref { 430 type instance-identifier; 431 description "A reference to a termination point in topology"; 432 } 434 typedef link-ref { 435 type instance-identifier; 436 description "A reference to a link in topology"; 437 } 439 typedef device-role { 440 type enumeration { 441 enum SPINE { 442 description "a spine node"; 443 } 444 enum LEAF { 445 description "a leaf node"; 446 } 447 enum BORDER { 448 description "a border node"; 449 } 450 } 451 default "LEAF"; 452 description "device role type"; 454 } 456 typedef fabric-port-role { 457 type enumeration { 458 enum internal { 459 description "the port used for devices to access each other."; 460 } 461 enum external { 462 description "the port used for fabric to access outside network."; 463 } 464 enum access { 465 description "the port used for Endpoint to access fabric."; 466 } 467 enum reserved { 468 description " not decided yet. "; 469 } 470 } 471 description "the role of the physical port "; 472 } 474 typedef fabric-port-type { 475 type enumeration { 476 enum layer2interface { 477 description "l2 if"; 478 } 479 enum layer3interface { 480 description "l3 if"; 481 } 482 enum layer2Tunnel { 483 description "l2 tunnel"; 484 } 485 enum layer3Tunnel { 486 description "l3 tunnel"; 487 } 488 } 489 description 490 "fabric port type"; 491 } 493 typedef underlayer-network-type { 494 type enumeration { 495 enum VXLAN { 496 description "vxlan"; 497 } 498 enum TRILL { 499 description "trill"; 500 } 501 enum VLAN { 502 description "vlan"; 503 } 504 } 505 description ""; 506 } 508 typedef layer2-protocol-type-enum { 509 type enumeration { 510 enum VLAN{ 511 description "vlan"; 512 } 513 enum VXLAN{ 514 description "vxlan"; 515 } 516 enum TRILL{ 517 description "trill"; 518 } 519 enum NvGRE{ 520 description "nvgre"; 521 } 522 } 523 description ""; 524 } 526 typedef access-type { 527 type enumeration { 528 enum exclusive{ 529 description "exclusive"; 530 } 531 enum vlan{ 532 description "vlan"; 533 } 534 } 535 description ""; 536 } 538 grouping fabric-port { 539 description 540 "attributes of a fabric port"; 541 leaf name { 542 type string; 543 description "name of the port"; 544 } 545 leaf role { 546 type fabric-port-role; 547 description "role of the port in a fabric"; 548 } 549 leaf type { 550 type fabric-port-type; 551 description "type of the port"; 552 } 553 leaf device-port { 554 type tp-ref; 555 description "the device port it mapped to"; 556 } 557 choice tunnel-option { 558 description "tunnel options"; 560 case gre { 561 leaf src-ip { 562 type inet:ip-prefix; 563 description "source address"; 564 } 565 leaf dest-ip { 566 type inet:ip-address; 567 description "destination address"; 568 } 569 } 570 } 571 } 573 grouping route-group { 574 description 575 "route attributes"; 576 list route { 577 key "destination-prefix"; 578 description "route list"; 580 leaf description { 581 type string; 582 description "Textual description of the route."; 583 } 584 leaf destination-prefix { 585 type inet:ipv4-prefix; 586 mandatory true; 587 description "IPv4 destination prefix."; 588 } 589 choice next-hop-options { 590 description "choice of next hop options"; 591 case simple-next-hop { 592 leaf next-hop { 593 type inet:ipv4-address; 594 description "IPv4 address of the next hop."; 595 } 596 leaf outgoing-interface { 597 type nt:tp-id; 598 description "Name of the outgoing interface."; 599 } 600 } 601 } 602 } 603 } 605 grouping port-functions { 606 description 607 "port functions"; 609 container port-function { 610 description "port functions"; 611 choice function-type { 612 description "type of functions"; 613 case ip-mapping { 614 list ip-mapping-entry { 615 key "external-ip"; 616 description "list of NAT entry"; 617 leaf external-ip { 618 type inet:ipv4-address; 619 description "external address"; 620 } 621 leaf internal-ip { 622 type inet:ipv4-address; 623 description "internal address"; 624 } 625 } 626 } 627 } 628 } 629 } 630 grouping acl-list { 631 description "acl list"; 632 list fabric-acl { 633 key fabric-acl-name; 634 description "fabric acl list"; 635 leaf fabric-acl-name { 636 type string; 637 description "acl name"; 638 } 639 } 640 } 641 } 642 644 file "ietf-fabric-topology@2017-03-10.yang" 645 module ietf-fabric-topology { 646 yang-version 1.1; 647 namespace "urn:ietf:params:xml:ns:yang:ietf-fabric-topology"; 648 prefix fabric; 650 import ietf-network { prefix nw; } 651 import ietf-network-topology { prefix nt; } 652 import ietf-fabric-types { prefix fabrictype; revision-date "2016-09-29"; } 654 organization 655 "IETF I2RS (Interface to the Routing System) Working Group"; 657 contact 658 "WG Web: 659 WG List: 661 WG Chair: Susan Hares 662 664 WG Chair: Russ White 665 667 Editor: Yan Zhuang 668 670 Editor: Danian Shi 671 "; 673 description 674 "This module contains a collection of YANG definitions for Fabric. 676 Copyright (c) 2016 IETF Trust and the persons identified as 677 authors of the code. All rights reserved. 679 Redistribution and use in source and binary forms, with or 680 without modification, is permitted pursuant to, and subject 681 to the license terms contained in, the Simplified BSD License 682 set forth in Section 4.c of the IETF Trust's Legal Provisions 683 Relating to IETF Documents 684 (http://trustee.ietf.org/license-info). 686 This version of this YANG module is part of 687 draft-zhuang-i2rs-yang-dc-fabric-network-topology; 688 see the RFC itself for full legal notices."; 690 revision "2017-03-10" { 691 description 692 "remove the rpcs and add extra attributes"; 694 reference 695 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-03"; 696 } 697 revision "2016-09-29" { 698 description 699 "Initial revision of fabric topology."; 700 reference 701 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-02"; 702 } 704 identity fabric-context { 705 description 706 "identity of fabric context"; 707 } 709 typedef fabric-id { 710 type nw:node-id; 711 description 712 "An identifier for a fabric in a topology. 713 The identifier is generated by compose-fabric RPC."; 714 } 716 //grouping statements 717 grouping fabric-network-type { 718 description "Identify the topology type to be fabric."; 719 container fabric-network { 720 presence "indicates fabric Network"; 721 description 722 "The presence of the container node indicates 723 fabric Topology"; 724 } 725 } 727 grouping fabric-options { 728 description "options for a fabric"; 730 leaf gateway-mode { 731 type enumeration { 732 enum centralized { 733 description "centerilized gateway"; 734 } 735 enum distributed { 736 description "distributed gateway"; 737 } 738 } 739 default "distributed"; 740 description "gateway mode"; 741 } 742 leaf traffic-behavior { 743 type enumeration { 744 enum normal { 745 description "normal"; 746 } 747 enum policy-driven { 748 description "policy driven"; 749 } 750 } 751 default "normal"; 752 description "traffic behavior of the fabric"; 753 } 755 leaf-list capability-supported { 756 type fabrictype:service-capabilities; 757 description 758 "supported services of the fabric"; 759 } 760 } 762 grouping device-attributes { 763 description "device attributes"; 764 leaf device-ref { 765 type fabrictype:node-ref; 766 description 767 "the device it includes to"; 768 } 769 leaf role { 770 type fabrictype:device-role; 771 default "LEAF"; 772 description 773 "role of the node"; 774 } 775 } 777 grouping link-attributes { 778 description "link attributes"; 779 leaf link-ref { 780 type fabrictype:link-ref; 781 description 782 "the link it includes"; 783 } 784 } 786 grouping port-attributes { 787 description "port attributes"; 788 leaf port-ref { 789 type fabrictype:tp-ref; 790 description 791 "port reference"; 792 } 793 leaf port-type { 794 type enumeration { 795 enum ETH { 796 description "ETH"; 797 } 798 enum SERIAL { 799 description "Serial"; 800 } 801 } 802 description 803 "port type: ethernet or serial"; 804 } 805 leaf bandwith { 806 type enumeration { 807 enum 1G { 808 description "1G"; 809 } 810 enum 10G { 811 description "10G"; 812 } 813 enum 40G { 814 description "40G"; 815 } 816 enum 100G { 817 description "100G"; 818 } 819 enum 10M { 820 description "10M"; 821 } 822 enum 100M { 823 description "100M"; 824 } 825 enum 1M { 826 description "1M"; 827 } 828 } 829 description 830 "bandwidth on the port"; 831 } 832 } 834 grouping fabric-attributes { 835 description "attributes of a fabric"; 837 leaf fabric-id { 838 type fabric-id; 839 description 840 "fabric id"; 841 } 843 leaf name { 844 type string; 845 description 846 "name of the fabric"; 847 } 849 leaf type { 850 type fabrictype:underlayer-network-type; 851 description 852 "The type of physical network that implements this fabric.Examples are vlan, and trill."; 853 } 855 container vni-capacity { 856 description "number of vnis the fabric has"; 857 leaf min { 858 type int32; 859 description 860 "vni min capacity"; 861 } 863 leaf max { 864 type int32; 865 description 866 "vni max capacity"; 867 } 868 } 870 leaf description { 871 type string; 872 description 873 "description of the fabric"; 874 } 876 container options { 877 description "options of the fabric"; 878 uses fabric-options; 879 } 881 list device-nodes { 882 key device-ref; 883 description "include device nodes in the fabric"; 884 uses device-attributes; 885 } 886 list device-links { 887 key link-ref; 888 description "include device links within the fabric"; 889 uses link-attributes; 890 } 892 list device-ports { 893 key port-ref; 894 description "include device ports within the fabric"; 895 uses port-attributes; 896 } 898 } 900 // augment statements 902 augment "/nw:networks/nw:network/nw:network-types" { 903 description 904 "Introduce new network type for Fabric-based logical topology"; 906 uses fabric-network-type; 907 } 909 augment "/nw:networks/nw:network/nw:node" { 910 when "/nw:networks/nw:network/nw:network-types/fabric-network" { 911 description 912 "Augmentation parameters apply only for networks 913 with fabric topology"; 914 } 915 description "Augmentation for fabric nodes created by faas."; 917 container fabric-attribute { 918 description 919 "attributes for a fabric network"; 921 uses fabric-attributes; 922 } 923 } 925 augment "/nw:networks/nw:network/nw:node/nt:termination-point" { 926 when "/nw:networks/nw:network/nw:network-types/fabric-network" { 927 description 928 "Augmentation parameters apply only for networks 929 with fabric topology"; 930 } 931 description "Augmentation for port on fabric."; 933 container fport-attribute { 934 config false; 935 description 936 "attributes for fabric ports"; 937 uses fabrictype:fabric-port; 938 } 939 } 940 } 941 943 5. Security Consideration 945 TBD 947 6. Acknowledgements 949 7. References 951 7.1. Normative References 953 [I-D.draft-ietf-i2rs-yang-l3-topology] 954 Clemm, A., Medved, J., Tkacik, T., Liu, X., Bryskin, I., 955 Guo, A., Ananthakrishnan, H., Bahadur, N., and V. Beeram, 956 "A YANG Data Model for Layer 3 Topologies", I-D draft- 957 ietf-i2rs-yang-l3-topology-04, September 2016. 959 [I-D.draft-ietf-i2rs-yang-network-topo] 960 Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., 961 and H. Ananthakrishnan, "A YANG Data Model for Network 962 Topologies", I-D draft-ietf-i2rs-yang-network-topo-06, 963 September 2016. 965 [I-D.draft-ietf-nvo3-vxlan-gpe] 966 Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol 967 Extension for VXLAN", I-D draft-ietf-i2rs-yang-network- 968 topo-02, October 2016. 970 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 971 Requirement Levels", BCP 14, RFC 2119, 972 DOI 10.17487/RFC2119, March 1997, 973 . 975 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 976 Network Configuration Protocol (NETCONF)", RFC 6020, 977 October 2010. 979 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 980 July 2013. 982 [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", 983 RFC 7950, DOI 10.17487/RFC7950, Auguest 2016. 985 7.2. Informative References 987 [I-D.draft-ietf-i2rs-usecase-reqs-summary] 988 Hares, S. and M. Chen, "Summary of I2RS Use Case 989 Requirements", I-D draft-ietf-i2rs-usecase-reqs-summary- 990 01, May 2015. 992 Appendix A. Non NMDA -state modules 994 file "ietf-fabric-topology-state@2017-06-29.yang" 995 module ietf-fabric-topology-state { 997 yang-version 1.1; 998 namespace "urn:ietf:params:xml:ns:yang:ietf-fabric-topology-state"; 999 prefix sfabric; 1001 import ietf-network { prefix nw; } 1002 import ietf-fabric-types { prefix fabrictype; revision-date "2016-09-29"; } 1003 import ietf-fabric-topology {prefix fp;} 1004 organization 1005 "IETF I2RS (Interface to the Routing System) Working Group"; 1007 contact 1008 "WG Web: 1009 WG List: 1011 WG Chair: Susan Hares 1012 1014 WG Chair: Russ White 1015 1017 Editor: Yan Zhuang 1018 1020 Editor: Danian Shi 1021 "; 1023 description 1024 "This module contains a collection of YANG definitions for Fabric topology state for non NMDA. 1026 Copyright (c) 2016 IETF Trust and the persons identified as 1027 authors of the code. All rights reserved. 1029 Redistribution and use in source and binary forms, with or 1030 without modification, is permitted pursuant to, and subject 1031 to the license terms contained in, the Simplified BSD License 1032 set forth in Section 4.c of the IETF Trust's Legal Provisions 1033 Relating to IETF Documents 1034 (http://trustee.ietf.org/license-info). 1036 This version of this YANG module is part of 1037 draft-zhuang-i2rs-yang-dc-fabric-network-topology; 1038 see the RFC itself for full legal notices."; 1040 revision "2017-06-29"{ 1041 description 1042 "update to NMDA compliant format"; 1043 reference 1044 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-04"; 1045 } 1047 //grouping statements 1048 grouping fabric-network-type { 1049 description "Identify the topology type to be fabric."; 1050 container fabric-network { 1051 presence "indicates fabric Network"; 1052 description 1053 "The presence of the container node indicates 1054 fabric Topology"; 1055 } 1056 } 1058 grouping fabric-options { 1059 description "options for a fabric"; 1061 leaf gateway-mode { 1062 type enumeration { 1063 enum centralized { 1064 description "centerilized gateway"; 1065 } 1066 enum distributed { 1067 description "distributed gateway"; 1068 } 1069 } 1070 default "distributed"; 1071 description "gateway mode"; 1072 } 1074 leaf traffic-behavior { 1075 type enumeration { 1076 enum normal { 1077 description "normal"; 1078 } 1079 enum policy-driven { 1080 description "policy driven"; 1081 } 1082 } 1083 default "normal"; 1084 description "traffic behavior of the fabric"; 1085 } 1087 leaf-list capability-supported { 1088 type fabrictype:service-capabilities; 1089 description 1090 "supported services of the fabric"; 1091 } 1092 } 1094 grouping device-attributes { 1095 description "device attributes"; 1096 leaf device-ref { 1097 type fabrictype:node-ref; 1098 description 1099 "the device it includes to"; 1100 } 1101 leaf role { 1102 type fabrictype:device-role; 1103 default "LEAF"; 1104 description 1105 "role of the node"; 1106 } 1107 } 1109 grouping link-attributes { 1110 description "link attributes"; 1111 leaf link-ref { 1112 type fabrictype:link-ref; 1113 description 1114 "the link it includes"; 1115 } 1116 } 1118 grouping port-attributes { 1119 description "port attributes"; 1120 leaf port-ref { 1121 type fabrictype:tp-ref; 1122 description 1123 "port reference"; 1124 } 1125 leaf port-type { 1126 type enumeration { 1127 enum ETH { 1128 description "ETH"; 1129 } 1130 enum SERIAL { 1131 description "Serial"; 1132 } 1133 } 1134 description 1135 "port type: ethernet or serial"; 1136 } 1137 leaf bandwith { 1138 type enumeration { 1139 enum 1G { 1140 description "1G"; 1141 } 1142 enum 10G { 1143 description "10G"; 1144 } 1145 enum 40G { 1146 description "40G"; 1147 } 1148 enum 100G { 1149 description "100G"; 1150 } 1151 enum 10M { 1152 description "10M"; 1153 } 1154 enum 100M { 1155 description "100M"; 1156 } 1157 enum 1M { 1158 description "1M"; 1159 } 1160 } 1161 description 1162 "bandwidth on the port"; 1163 } 1164 } 1166 grouping fabric-attributes { 1167 description "attributes of a fabric"; 1169 leaf fabric-id { 1170 type fp:fabric-id; 1171 description 1172 "fabric id"; 1174 } 1176 leaf name { 1177 type string; 1178 description 1179 "name of the fabric"; 1180 } 1182 leaf type { 1183 type fabrictype:underlayer-network-type; 1184 description 1185 "The type of physical network that implements this fabric.Examples are vlan, and trill."; 1186 } 1188 container vni-capacity { 1189 description "number of vnis the fabric has"; 1190 leaf min { 1191 type int32; 1192 description 1193 "vni min capacity"; 1194 } 1196 leaf max { 1197 type int32; 1198 description 1199 "vni max capacity"; 1200 } 1201 } 1203 leaf description { 1204 type string; 1205 description 1206 "description of the fabric"; 1207 } 1209 container options { 1210 description "options of the fabric"; 1211 uses fabric-options; 1212 } 1214 list device-nodes { 1215 key device-ref; 1216 description "include device nodes in the fabric"; 1217 uses device-attributes; 1218 } 1220 list device-links { 1221 key link-ref; 1222 description "include device links within the fabric"; 1223 uses link-attributes; 1224 } 1226 list device-ports { 1227 key port-ref; 1228 description "include device ports within the fabric"; 1229 uses port-attributes; 1230 } 1232 } 1234 // augment statements 1236 augment "/nw:networks/nw:network/nw:network-types" { 1237 description 1238 "Introduce new network type for Fabric-based logical topology"; 1240 uses fabric-network-type; 1241 } 1243 augment "/nw:networks/nw:network/nw:node" { 1244 when "/nw:networks/nw:network/nw:network-types/fabric-network" { 1245 description 1246 "Augmentation parameters apply only for networks 1247 with fabric topology."; 1248 } 1249 description "Augmentation for fabric nodes."; 1251 container fabric-attribute-state { 1252 config false; 1253 description 1254 "attributes for a fabric network"; 1256 uses fabric-attributes; 1257 } 1258 } 1259 } 1261 1263 Authors' Addresses 1264 Yan Zhuang 1265 Huawei 1266 101 Software Avenue, Yuhua District 1267 Nanjing, Jiangsu 210012 1268 China 1270 Email: zhuangyan.zhuang@huawei.com 1272 Danian Shi 1273 Huawei 1274 101 Software Avenue, Yuhua District 1275 Nanjing, Jiangsu 210012 1276 China 1278 Email: shidanian@huawei.com 1280 Rong Gu 1281 China Mobile 1282 32 Xuanwumen West Ave, Xicheng District 1283 Beijing, Beijing 100053 1284 China 1286 Email: gurong_cmcc@outlook.com 1288 Hariharan Ananthakrishnan 1289 Packet Design 1291 Email: hari@packetdesign.com