1 module ietf-dc-fabric-topology {
3 namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology";
9 "RFC 8345: A YANG Data Model for Network Topologies";
11 import ietf-network-topology {
14 "RFC 8345: A YANG Data Model for Network Topologies";
16 import ietf-dc-fabric-types {
19 "RFC 8542: A YANG Data Model for Fabric Topology in
20 Data-Center Networks";
23 "IETF I2RS (Interface to the Routing System) Working Group";
25 "WG Web: <https://datatracker.ietf.org/wg/i2rs/>
26 WG List: <mailto:i2rs@ietf.org>
29 <mailto:zhuangyan.zhuang@huawei.com>
32 <mailto:shidanian@huawei.com>";
34 "This module contains a collection of YANG definitions for
37 Copyright (c) 2019 IETF Trust and the persons identified
38 as authors of the code. All rights reserved.
40 Redistribution and use in source and binary forms, with
41 or without modification, is permitted pursuant to, and
42 subject to the license terms contained in, the Simplified
43 BSD License set forth in Section 4.c of the IETF Trust's
44 Legal Provisions Relating to IETF Documents
45 (https://trustee.ietf.org/license-info).
47 This version of this YANG module is part of RFC 8542;
48 see the RFC itself for full legal notices.";
54 "RFC 8542: A YANG Data Model for Fabric Topology
55 in Data-Center Networks";
60 grouping fabric-network-type {
62 "Identify the topology type to be fabric.";
63 container fabric-network {
64 presence "indicates fabric Network";
66 "The presence of the container node indicates
70 grouping fabric-options {
72 "Options for a fabric";
77 "The Fabric uses centralized
78 gateway, in which gateway is deployed on SPINE
83 "The Fabric uses distributed
84 gateway, in which gateway is deployed on LEAF
88 default "distributed";
90 "Gateway mode of the fabric";
92 leaf traffic-behavior {
96 "Normal means no policy is needed
101 "Policy driven means policy is
102 needed for the traffic; otherwise, the traffic
108 "Traffic behavior of the fabric";
110 leaf-list capability-supported {
111 type fabrictypes:service-capabilities;
113 "It provides a list of supported services of the
114 fabric. The service-capabilities is defined as
115 identity-ref. Users can define more services
116 by defining new identities.";
120 grouping device-attributes {
124 type fabrictypes:node-ref;
126 "The device that the fabric includes that refers
127 to a node in another topology.";
130 type fabrictypes:device-role;
131 default "fabrictypes:leaf";
133 "It is a list of device roles to represent the roles
134 that a device plays within a POD, such as SPINE,
135 LEAF, Border, or Border-Leaf.
136 The device role is defined as identity-ref. If more
137 than 2 stages are used for a POD, users can
138 define new identities for the device role.";
142 grouping link-attributes {
146 type fabrictypes:link-ref;
148 "The link that the fabric includes that refers to
149 a link in another topology.";
153 grouping port-attributes {
157 type fabrictypes:tp-ref;
159 "The port that the fabric includes that refers to
160 a termination-point in another topology.";
163 type fabrictypes:port-type;
165 "Port type is defined as identity-ref. The current
166 types include ethernet or serial. If more types
167 are needed, developers can define new identities.";
170 type fabrictypes:bandwidth;
172 "Bandwidth of the port. It is defined as identity-ref.
173 If more speeds are introduced, developers can define
174 new identities for them. Current speeds include 1M, 10M,
175 100M, 1G, 10G, 25G, 40G, 100G, and 400G.";
179 grouping fabric-attributes {
181 "Attributes of a fabric";
183 type fabrictypes:fabric-id;
185 "An identifier for a fabric in a topology.
186 This identifier can be generated when composing a fabric.
187 The composition of a fabric can be achieved by defining an
188 RPC, which is left for vendor-specific implementation and
189 not provided in this model.";
194 "Name of the fabric";
197 type fabrictypes:underlay-network-type;
199 "The type of physical network that implements this
200 fabric. Examples are VLAN and TRILL.";
202 container vni-capacity {
204 "The range of the VXLAN Network Identifier
205 (VNI) defined in RFC 7348 that the POD uses.";
209 "The lower-limit VNI.";
214 "The upper-limit VNI.";
220 "Description of the fabric";
224 "Options of the fabric";
230 "Device nodes that are included in a fabric.";
231 uses device-attributes;
236 "Links that are included within a fabric.";
237 uses link-attributes;
242 "Ports that are included in the fabric.";
243 uses port-attributes;
247 // augment statements
249 augment "/nw:networks/nw:network/nw:network-types" {
251 "Introduce a new network type for fabric-based topology";
252 uses fabric-network-type;
255 augment "/nw:networks/nw:network/nw:node" {
256 when '/nw:networks/nw:network/nw:network-types/'
257 + 'fabric:fabric-network' {
259 "Augmentation parameters apply only for networks
260 with fabric topology";
263 "Augmentation for fabric nodes created by
265 container fabric-attributes {
267 "Attributes for a fabric network";
268 uses fabric-attributes;
272 augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
273 when '/nw:networks/nw:network/nw:network-types/'
274 + 'fabric:fabric-network' {
276 "Augmentation parameters apply only for networks
277 with fabric topology";
280 "Augmentation for port on fabric.";
281 container fport-attributes {
284 "Attributes for fabric ports";
285 uses fabrictypes:fabric-port;