idnits 2.17.1 draft-zhuang-i2rs-yang-dc-fabric-network-topology-03.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 26 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 281 has weird spacing: '...ice-ref fab...' == Line 284 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 (March 10, 2017) is 2596 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 94 -- Looks like a reference, but probably isn't: '7950' on line 94 == Missing Reference: 'I-D.ietf-i2rs-yang-network-topo' is mentioned on line 111, but not defined == Unused Reference: 'I-D.draft-ietf-i2rs-yang-l3-topology' is defined on line 957, but no explicit reference was found in the text == Unused Reference: 'I-D.draft-ietf-i2rs-yang-network-topo' is defined on line 963, but no explicit reference was found in the text == Unused Reference: 'I-D.draft-ietf-nvo3-vxlan-gpe' is defined on line 969, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 979, but no explicit reference was found in the text == Unused Reference: 'RFC6991' is defined on line 983, but no explicit reference was found in the text == Unused Reference: 'RFC7950' is defined on line 986, but no explicit reference was found in the text == Unused Reference: 'I-D.draft-ietf-i2rs-usecase-reqs-summary' is defined on line 991, 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: September 11, 2017 R. Gu 6 China Mobile 7 H. Ananthakrishnan 8 Packet Design 9 March 10, 2017 11 A YANG Data Model for Fabric Topology in Data Center Network 12 draft-zhuang-i2rs-yang-dc-fabric-network-topology-03 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 September 11, 2017. 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 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 71 1. Introduction 73 Normally, a data center network is composed of single or multiple 74 fabrics which are also known as PODs (a Point Of Delivery). These 75 fabrics may be heterogeneous due to implementation of different 76 technologies while DC network upgrading or enrolling new techniques 77 and features. For example, Fabric A may use VXLAN while Fabric B may 78 use VLAN within a DC network. Likewise, a legacy Fabric may use 79 VXLAN while a new Fabric B implemented technique discussed in NVO3 WG 80 such as GPE[I-D. draft-ietf-nvo3-vxlan-gpe] may be built due to DC 81 expansion and upgrading. The configuration and management of such DC 82 networks with heterogeneous fabrics will be sophisticated and 83 complex. 85 Luckily, for a DC network, a fabric can be considered as an atomic 86 structure to provide network services and management, as well as 87 expand network capacity. From this point of view, the miscellaneous 88 DC network management can be decomposed to task of managing each 89 fabric respectively along with their connections, which can make the 90 entire management much concentrated and flexible, also easy to 91 expand. 93 With this purpose, this document defines a YANG data model for the 94 Fabric-based Data center topology by using YANG [6020][7950]. To do 95 so, it augments the generic network and network topology data models 96 defined in [I-D.ietf-i2rs-yang-network-topo] with information 97 specific to Data Center fabric network. 99 This model defines the generic configuration and operational state 100 for a fabric-based network topology, which can be extended by vendors 101 with specific information. This model can then be used by network 102 elements to expose to a network controller and capture their 103 understanding of the overall network topology and self role in the 104 overall network. Also, it can be used by a network controller to 105 represent its view of the fabric topology that it controls and expose 106 it to applications for DC network management. 108 With the context of topology architecture defined in [I-D.ietf-i2rs- 109 yang-network-topo] and [I.D. draft-ietf-i2rs-usecase-reqs-summary], 110 this model can also be treated as an application of I2RS network 111 topology model [I-D.ietf-i2rs-yang-network-topo] in the scenario of 112 Data center network management. It can also act as a service 113 topology when mapping network elements at fabric layer to elements to 114 other topologies, such as L3 topology defined in [I.D. draft-ietf- 115 i2rs-yang-l3-topology-01. 117 By using this fabric topology model, people can treat a fabric as an 118 entity and focus on characteristics of fabrics (such as encapsulation 119 type, gateway type, etc.) as well as their interconnections while 120 putting the underlay topology aside. As such, clients can consume 121 the topology information at fabric level, while no need to be aware 122 of entire set of links and nodes in underlay networks. The mapping 123 between fabric layer topology and underlay topology are made when 124 creating a fabric, when used with fabric service module and fabric- 125 capable device module in [I-D. draft-zhuang-i2rs-dc-fabric-service- 126 mode] to provide automatic deployment of user network services onto 127 the underlay network infrastructures. 129 2. Definitions an Acronyms 131 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 132 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 133 document are to be interpreted as described in [RFC2119]. 135 2.1. Terminology 137 DC Fabric: also known as POD, is a module of network, compute, 138 storage, and application components that work together to deliver 139 networking services. It is a repeatable design pattern, and its 140 components maximize the modularity, scalability, and manageability of 141 data centers. 143 2.2. Tree diagram 145 The following notations are used within the data tree and carry the 146 meaning as below. 148 Each node is printed as: 149 151 is one of: 152 + for current 153 x for deprecated 154 o for obsolete 155 is one of: 156 rw for configuration data 157 ro for non-configuration data 158 -x for rpcs 159 -n for notifications 160 is the name of the node 162 If the node is augmented into the tree from another module, its name 163 is printed as :. 164 is one of: 165 ? for an optional leaf or choice 166 ! for a presence container 167 * for a leaf-list or list 168 [] for a list's keys 169 is the name of the type for leafs and leaf-lists 171 In this document, these words will appear with that interpretation 172 only when in ALL CAPS. Lower case uses of these words are not to be 173 interpreted as carrying RFC-2119 significance. 175 3. Model Overview 177 This section provides an overview of the DC Fabric topology model and 178 its relationship with other topology models. 180 3.1. Topology Model structure 182 The relationship of the DC fabric topology model and other topology 183 models is shown in the following figure (dotted lines in the figure 184 denote augmentations). 186 +------------------------+ 187 | network model | 188 +------------------------+ 189 | 190 | 191 +------------V-----------+ 192 | network topology model | 193 +------------------------+ 194 | 195 +-----------+-----+------+-------------+ 196 | | | | 197 +---V----+ +---V----+ +---V----+ +----V---+ 198 | L1 | | L2 | | L3 | | Fabric | 199 |topology| |topology| |topology| |topology| 200 | model | | model | | model | | model | 201 +--------+ +--------+ +--------+ +--------+ 203 From the perspective of resource management and service provisioning 204 for a Data Center network, the fabric topology model augments the 205 basic network topology model with definitions and features specific 206 to a DC fabric, to provide common configuration and operations for 207 heterogeneous fabrics. 209 3.2. Fabric Topology Model 211 The fabric topology model module is designed to be generic and can be 212 applied to data center fabrics built with different technologies, 213 such as VLAN, VXLAN etc al. The main purpose of this module is to 214 configure and manage fabrics and their connections. provide a fabric- 215 based topology management for data center network applications. 217 3.2.1. Fabric Topology 219 In the fabric topology module, a fabric is modeled as a node in the 220 network, while the fabric-based Data center network consists of a set 221 of fabric nodes and their connections known as "fabric port". The 222 following is the snatch of the definition to show the main structure 223 of the model: 225 module: ietf-fabric-topology 226 augment /nw:networks/nw:network/nw:network-types: 227 +--rw fabric-network! 228 augment /nw:networks/nw:network/nw:node: 229 +--rw fabric-attribute 230 +--rw name? string 231 +--rw type? fabrictype:underlayer-network-type 232 +--rw description? string 233 +--rw options 234 +--... 235 augment /nw:networks/nw:network/nw:node/nt:termination-point: 236 +--ro fport-attribute 237 +--ro name? string 238 +--ro role? fabric-port-role 239 +--ro type? fabric-port-type 241 The fabric topology module augments the generic ietf-network and 242 ietf-network-topology modules as follows: 244 o A new topology type "ietf-fabric-topology" is introduced and added 245 under the "network-types" container of the ietf-network module. 247 o Fabric is defined as a node under the network/node container. A 248 new container of "fabric-attribute" is defined to carry attributes 249 for a fabric network such as gateway mode, fabric types, involved 250 device nodes and links etc al. 252 o Termination points (in network topology module) are augmented with 253 fabric port attributes defined in a container. The "termination- 254 point" here can represent the "port" of a fabric that provides 255 connections to other nodes, such as device internally, another 256 fabric externally and also end hosts. 258 Details of fabric node and fabric termination point extension will be 259 explained in the following sections. 261 3.2.2. Fabric node extension 263 As a network, a fabric itself is composed of set of network elements 264 i.e. devices, and related links. As stated previously, the 265 configuration of a fabric is contained under the "fabric-attribute" 266 container depicted as follows: 268 +--rw fabric-attribute 269 +--rw fabric-id? fabric-id 270 +--rw name? string 271 +--rw type? fabrictype:underlayer-network-type 272 +--rw vni-capacity 273 | +--rw min? int32 274 | +--rw max? int32 275 +--rw description? string 276 +--rw options 277 | +--rw gateway-mode? enumeration 278 | +--rw traffic-behavior? enumeration 279 | +--rw capability-supported* fabrictype:service-capabilities 280 +--rw device-nodes* [device-ref] 281 | +--rw device-ref fabrictype:node-ref 282 | +--rw role? fabrictype:device-role 283 +--rw device-links* [link-ref] 284 | +--rw link-ref fabrictype:link-ref 285 +--rw device-ports* [port-ref] 286 +--rw port-ref fabrictype:tp-ref 287 +--rw port-type? enumeration 288 +--rw bandwith? Enumeration 290 As in the module, additional data objects for nodes are introduced by 291 augmenting the "node" list of the network module. New objects 292 include fabric name, type of the fabric, descriptions of the fabric 293 as well as a set of options defined in an "options" container. The 294 options container includes type of the gateway-mode (centralized or 295 distributed) and traffic-behavior (whether acl needed for the 296 traffic). 298 Also, it defines a list of device-nodes and related links as 299 supporting-nodes to form a fabric network. These device nodes and 300 links are leaf-ref of existing nodes and links in the physical 301 topology. For the device-node, the "role" object is defined to 302 represents the role of the device within the fabric, such as "SPINE" 303 or "LEAF", which should work together with gateway-mode. 305 3.2.3. Fabric termination-point extension 307 Since the fabric is considered as a node, in this concept, 308 "termination-points" can represent "ports" of a fabric that connects 309 to other fabrics or end hosts, besides representing ports that 310 connect devices inside the fabric itself. 312 As such, the "termination-point" in the fabric topology has three 313 roles, including internal TP that connects to devices within a 314 fabric, external TP that connects to outside network, as well as 315 access TP to end hosts. 317 A set of "termination-point" indicates all connections of a fabric 318 including its internal connections, interconnections with other 319 fabrics and also connections to end hosts for a DC network. 321 The structure of fabric ports is as follows: 323 augment /nw:networks/nw:network/nw:node/nt:termination-point: 324 +--ro fport-attribute 325 +--ro name? string 326 +--ro role? fabric-port-role 327 +--ro type? fabric-port-type 328 +--ro device-port? tp-ref 329 +--ro (tunnel-option)? 330 +--:(gre) 331 +--ro src-ip? inet:ip-prefix 332 +--ro dest-ip? inet:ip-address 334 It augments the termination points (in network topology module) with 335 fabric port attributes defined in a container. 337 New nodes are defined for fabric ports which include name, role of 338 the port within the fabric (internal port, external port to outside 339 network, access port to end hosts), port type (l2 interface, l3 340 interface etc al). By using the device-port defined as a tp-ref, 341 this fabric port can be mapped to a device node in the underlay 342 network. 344 Also, a new container for tunnel-options is introduced as well to 345 present the tunnel configuration on the port. 347 4. Fabric YANG Module 349 file "ietf-fabric-types@2016-09-29.yang" 350 module ietf-fabric-types { 352 yang-version 1.1; 353 namespace "urn:ietf:params:xml:ns:yang:ietf-fabric-types"; 354 prefix fabrictypes; 356 import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; } 358 import ietf-network-topology { prefix nt; } 360 organization 362 "IETF I2RS (Interface to the Routing System) Working Group"; 364 contact 365 "WG Web: 366 WG List: 368 WG Chair: Susan Hares 369 371 WG Chair: Russ White 372 374 Editor: Yan Zhuang 375 377 Editor: Danian Shi 378 "; 380 description 381 "This module contains a collection of YANG definitions for Fabric."; 383 revision "2016-09-29" { 384 description 385 "Initial revision of faas."; 386 reference 387 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-02"; 388 } 390 identity fabric-type { 391 description 392 "base type for fabric networks"; 393 } 395 identity vxlan-fabric { 396 base fabric-type; 397 description 398 "vxlan fabric"; 399 } 401 identity vlan-fabric { 402 base fabric-type; 403 description 404 "vlan fabric"; 405 } 407 typedef service-capabilities { 408 type enumeration { 409 enum ip-mapping { 410 description "NAT"; 411 } 412 enum acl-redirect{ 413 description "acl redirect, which can provide SFC function"; 414 } 415 enum dynamic-route-exchange{ 416 description "dynamic route exchange"; 417 } 418 } 419 description 420 "capability of the device"; 421 } 423 /* 424 * Typedefs 425 */ 426 typedef node-ref { 427 type instance-identifier; 428 description "A reference to a node in topology"; 429 } 431 typedef tp-ref { 432 type instance-identifier; 433 description "A reference to a termination point in topology"; 434 } 436 typedef link-ref { 437 type instance-identifier; 438 description "A reference to a link in topology"; 439 } 441 typedef device-role { 442 type enumeration { 443 enum SPINE { 444 description "a spine node"; 445 } 446 enum LEAF { 447 description "a leaf node"; 448 } 449 enum BORDER { 450 description "a border node"; 451 } 452 } 453 default "LEAF"; 454 description "device role type"; 455 } 457 typedef fabric-port-role { 458 type enumeration { 459 enum internal { 460 description "the port used for devices to access each other."; 461 } 462 enum external { 463 description "the port used for fabric to access outside network."; 464 } 465 enum access { 466 description "the port used for Endpoint to access fabric."; 467 } 468 enum reserved { 469 description " not decided yet. "; 470 } 471 } 472 description "the role of the physical port "; 473 } 475 typedef fabric-port-type { 476 type enumeration { 477 enum layer2interface { 478 description "l2 if"; 479 } 480 enum layer3interface { 481 description "l3 if"; 482 } 483 enum layer2Tunnel { 484 description "l2 tunnel"; 485 } 486 enum layer3Tunnel { 487 description "l3 tunnel"; 488 } 489 } 490 description 491 "fabric port type"; 492 } 494 typedef underlayer-network-type { 495 type enumeration { 496 enum VXLAN { 497 description "vxlan"; 498 } 499 enum TRILL { 500 description "trill"; 501 } 502 enum VLAN { 503 description "vlan"; 504 } 505 } 506 description ""; 507 } 509 typedef layer2-protocol-type-enum { 510 type enumeration { 511 enum VLAN{ 512 description "vlan"; 513 } 514 enum VXLAN{ 515 description "vxlan"; 516 } 517 enum TRILL{ 518 description "trill"; 519 } 520 enum NvGRE{ 521 description "nvgre"; 522 } 523 } 524 description ""; 525 } 527 typedef access-type { 528 type enumeration { 529 enum exclusive{ 530 description "exclusive"; 531 } 532 enum vlan{ 533 description "vlan"; 534 } 535 } 536 description ""; 537 } 539 grouping fabric-port { 540 description 541 "attributes of a fabric port"; 542 leaf name { 543 type string; 544 description "name of the port"; 545 } 546 leaf role { 547 type fabric-port-role; 548 description "role of the port in a fabric"; 549 } 550 leaf type { 551 type fabric-port-type; 552 description "type of the port"; 553 } 554 leaf device-port { 555 type tp-ref; 556 description "the device port it mapped to"; 557 } 558 choice tunnel-option { 559 description "tunnel options"; 561 case gre { 562 leaf src-ip { 563 type inet:ip-prefix; 564 description "source address"; 565 } 566 leaf dest-ip { 567 type inet:ip-address; 568 description "destination address"; 569 } 570 } 571 } 572 } 574 grouping route-group { 575 description 576 "route attributes"; 577 list route { 578 key "destination-prefix"; 579 description "route list"; 581 leaf description { 582 type string; 583 description "Textual description of the route."; 584 } 585 leaf destination-prefix { 586 type inet:ipv4-prefix; 587 mandatory true; 588 description "IPv4 destination prefix."; 589 } 590 choice next-hop-options { 591 description "choice of next hop options"; 592 case simple-next-hop { 593 leaf next-hop { 594 type inet:ipv4-address; 595 description "IPv4 address of the next hop."; 596 } 597 leaf outgoing-interface { 598 type nt:tp-id; 599 description "Name of the outgoing interface."; 600 } 601 } 603 } 604 } 605 } 607 grouping port-functions { 608 description 609 "port functions"; 611 container port-function { 612 description "port functions"; 613 choice function-type { 614 description "type of functions"; 615 case ip-mapping { 616 list ip-mapping-entry { 617 key "external-ip"; 618 description "list of NAT entry"; 619 leaf external-ip { 620 type inet:ipv4-address; 621 description "external address"; 622 } 623 leaf internal-ip { 624 type inet:ipv4-address; 625 description "internal address"; 626 } 627 } 628 } 629 } 630 } 631 } 632 grouping acl-list { 633 description "acl list"; 634 list fabric-acl { 635 key fabric-acl-name; 636 description "fabric acl list"; 637 leaf fabric-acl-name { 638 type string; 639 description "acl name"; 640 } 641 } 642 } 643 } 644 646 file "ietf-fabric-topology@2017-03-10.yang" 647 module ietf-fabric-topology { 649 yang-version 1.1; 650 namespace "urn:ietf:params:xml:ns:yang:ietf-fabric-topology"; 651 prefix fabric; 653 import ietf-network { prefix nw; } 654 import ietf-network-topology { prefix nt; } 655 import ietf-fabric-types { prefix fabrictype; revision-date "2016-09-29"; } 657 organization 658 "IETF I2RS (Interface to the Routing System) Working Group"; 660 contact 661 "WG Web: 662 WG List: 664 WG Chair: Susan Hares 665 667 WG Chair: Russ White 668 670 Editor: Yan Zhuang 671 673 Editor: Danian Shi 674 "; 676 description 677 "This module contains a collection of YANG definitions for Fabric. 679 Copyright (c) 2016 IETF Trust and the persons identified as 680 authors of the code. All rights reserved. 682 Redistribution and use in source and binary forms, with or 683 without modification, is permitted pursuant to, and subject 684 to the license terms contained in, the Simplified BSD License 685 set forth in Section 4.c of the IETF Trust's Legal Provisions 686 Relating to IETF Documents 687 (http://trustee.ietf.org/license-info). 689 This version of this YANG module is part of 690 draft-zhuang-i2rs-yang-dc-fabric-network-topology; 691 see the RFC itself for full legal notices."; 693 revision "2017-03-10" { 694 description 695 "remove the rpcs and add extra attributes"; 696 reference 697 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-03"; 699 } 700 revision "2016-09-29" { 701 description 702 "Initial revision of fabric topology."; 703 reference 704 "draft-zhuang-i2rs-yang-dc-fabric-network-topology-02"; 705 } 707 identity fabric-context { 708 description 709 "identity of fabric context"; 710 } 712 typedef fabric-id { 713 type nw:node-id; 714 description 715 "An identifier for a fabric in a topology. 716 The identifier is generated by compose-fabric RPC."; 717 } 719 //grouping statements 720 grouping fabric-network-type { 721 description "Identify the topology type to be fabric."; 722 container fabric-network { 723 presence "indicates fabric Network"; 724 description 725 "The presence of the container node indicates 726 fabric Topology"; 727 } 728 } 730 grouping fabric-options { 731 description "options for a fabric"; 733 leaf gateway-mode { 734 type enumeration { 735 enum centralized { 736 description "centerilized gateway"; 737 } 738 enum distributed { 739 description "distributed gateway"; 740 } 741 } 742 default "distributed"; 743 description "gateway mode"; 744 } 746 leaf traffic-behavior { 747 type enumeration { 748 enum normal { 749 description "normal"; 750 } 751 enum policy-driven { 752 description "policy driven"; 753 } 754 } 755 default "normal"; 756 description "traffic behavior of the fabric"; 757 } 759 leaf-list capability-supported { 760 type fabrictype:service-capabilities; 761 description 762 "supported services of the fabric"; 763 } 764 } 766 grouping device-attributes { 767 description "device attributes"; 768 leaf device-ref { 769 type fabrictype:node-ref; 770 description 771 "the device it includes to"; 772 } 773 leaf role { 774 type fabrictype:device-role; 775 default "LEAF"; 776 description 777 "role of the node"; 778 } 779 } 781 grouping link-attributes { 782 description "link attributes"; 783 leaf link-ref { 784 type fabrictype:link-ref; 785 description 786 "the link it includes"; 787 } 788 } 790 grouping port-attributes { 791 description "port attributes"; 792 leaf port-ref { 793 type fabrictype:tp-ref; 794 description 795 "port reference"; 796 } 797 leaf port-type { 798 type enumeration { 799 enum ETH { 800 description "ETH"; 801 } 802 enum SERIAL { 803 description "Serial"; 804 } 805 } 806 description 807 "port type: ethernet or serial"; 808 } 809 leaf bandwith { 810 type enumeration { 811 enum 1G { 812 description "1G"; 813 } 814 enum 10G { 815 description "10G"; 816 } 817 enum 40G { 818 description "40G"; 819 } 820 enum 100G { 821 description "100G"; 822 } 823 enum 10M { 824 description "10M"; 825 } 826 enum 100M { 827 description "100M"; 828 } 829 enum 1M { 830 description "1M"; 831 } 832 } 833 description 834 "bandwidth on the port"; 835 } 836 } 838 grouping fabric-attributes { 839 description "attributes of a fabric"; 841 leaf fabric-id { 842 type fabric-id; 843 description 844 "fabric id"; 845 } 847 leaf name { 848 type string; 849 description 850 "name of the fabric"; 851 } 853 leaf type { 854 type fabrictype:underlayer-network-type; 855 description 856 "The type of physical network that implements this fabric.Examples are vlan, and trill."; 857 } 859 container vni-capacity { 860 description "number of vnis the fabric has"; 861 leaf min { 862 type int32; 863 description 864 "vni min capacity"; 865 } 867 leaf max { 868 type int32; 869 description 870 "vni max capacity"; 871 } 872 } 874 leaf description { 875 type string; 876 description 877 "description of the fabric"; 878 } 880 container options { 881 description "options of the fabric"; 882 uses fabric-options; 883 } 885 list device-nodes { 886 key device-ref; 887 description "include device nodes in the fabric"; 888 uses device-attributes; 889 } 890 list device-links { 891 key link-ref; 892 description "include device links within the fabric"; 893 uses link-attributes; 894 } 896 list device-ports { 897 key port-ref; 898 description "include device ports within the fabric"; 899 uses port-attributes; 900 } 902 } 904 // augment statements 906 augment "/nw:networks/nw:network/nw:network-types" { 907 description 908 "Introduce new network type for Fabric-based logical topology"; 910 uses fabric-network-type; 911 } 913 augment "/nw:networks/nw:network/nw:node" { 914 when "/nw:networks/nw:network/nw:network-types/fabric-network" { 915 description 916 "Augmentation parameters apply only for networks 917 with fabric topology"; 918 } 919 description "Augmentation for fabric nodes created by faas."; 921 container fabric-attribute { 922 description 923 "attributes for a fabric network"; 925 uses fabric-attributes; 926 } 927 } 929 augment "/nw:networks/nw:network/nw:node/nt:termination-point" { 930 when "/nw:networks/nw:network/nw:network-types/fabric-network" { 931 description 932 "Augmentation parameters apply only for networks 933 with fabric topology"; 934 } 935 description "Augmentation for port on fabric."; 937 container fport-attribute { 938 config false; 939 description 940 "attributes for fabric ports"; 941 uses fabrictype:fabric-port; 942 } 943 } 944 } 945 947 5. Security Consideration 949 TBD 951 6. Acknowledgements 953 7. References 955 7.1. Normative References 957 [I-D.draft-ietf-i2rs-yang-l3-topology] 958 Clemm, A., Medved, J., Tkacik, T., Liu, X., Bryskin, I., 959 Guo, A., Ananthakrishnan, H., Bahadur, N., and V. Beeram, 960 "A YANG Data Model for Layer 3 Topologies", I-D draft- 961 ietf-i2rs-yang-l3-topology-04, September 2016. 963 [I-D.draft-ietf-i2rs-yang-network-topo] 964 Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., 965 and H. Ananthakrishnan, "A YANG Data Model for Network 966 Topologies", I-D draft-ietf-i2rs-yang-network-topo-06, 967 September 2016. 969 [I-D.draft-ietf-nvo3-vxlan-gpe] 970 Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol 971 Extension for VXLAN", I-D draft-ietf-i2rs-yang-network- 972 topo-02, October 2016. 974 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 975 Requirement Levels", BCP 14, RFC 2119, 976 DOI 10.17487/RFC2119, March 1997, 977 . 979 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 980 Network Configuration Protocol (NETCONF)", RFC 6020, 981 October 2010. 983 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 984 July 2013. 986 [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", 987 RFC 7950, DOI 10.17487/RFC7950, Auguest 2016. 989 7.2. Informative References 991 [I-D.draft-ietf-i2rs-usecase-reqs-summary] 992 Hares, S. and M. Chen, "Summary of I2RS Use Case 993 Requirements", I-D draft-ietf-i2rs-usecase-reqs-summary- 994 01, May 2015. 996 Authors' Addresses 998 Yan Zhuang 999 Huawei 1000 101 Software Avenue, Yuhua District 1001 Nanjing, Jiangsu 210012 1002 China 1004 Email: zhuangyan.zhuang@huawei.com 1006 Danian Shi 1007 Huawei 1008 101 Software Avenue, Yuhua District 1009 Nanjing, Jiangsu 210012 1010 China 1012 Email: shidanian@huawei.com 1014 Rong Gu 1015 China Mobile 1016 32 Xuanwumen West Ave, Xicheng District 1017 Beijing, Beijing 100053 1018 China 1020 Email: gurong_cmcc@outlook.com 1022 Hariharan Ananthakrishnan 1023 Packet Design 1025 Email: hari@packetdesign.com