-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
ietf-dc-fabric-topology-state@2019-02-25.yang
274 lines (254 loc) · 7.55 KB
/
ietf-dc-fabric-topology-state@2019-02-25.yang
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
module ietf-dc-fabric-topology-state {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-dc-fabric-topology-state";
prefix sfabric;
import ietf-network-state {
prefix nws;
reference
"RFC 8345: A Data Model for Network Topologies";
}
import ietf-dc-fabric-types {
prefix fabrictypes;
reference
"RFC 8542: A YANG Data Model for Fabric Topology in
Data-Center Networks";
}
organization
"IETF I2RS (Interface to the Routing System) Working Group";
contact
"WG Web: <https://datatracker.ietf.org/wg/i2rs/>
WG List: <mailto:i2rs@ietf.org>
Editor: Yan Zhuang
<mailto:zhuangyan.zhuang@huawei.com>
Editor: Danian Shi
<mailto:shidanian@huawei.com>";
description
"This module contains a collection of YANG definitions for
fabric state, representing topology that either is learned
or results from applying topology that has been
configured per the ietf-dc-fabric-topology model, mirroring
the corresponding data nodes in this model.
This model mirrors the configuration tree of ietf-dc-fabric
-topology but contains only read-only state data. The model
is not needed when the implementation infrastructure supports
the Network Management Datastore Architecture (NMDA).
Copyright (c) 2019 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD
License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8542;
see the RFC itself for full legal notices.";
revision 2019-02-25 {
description
"Initial revision.";
reference
"RFC 8542: A YANG Data Model for Fabric Topology in
Data-Center Networks";
}
//grouping statements
grouping fabric-network-type {
description
"Identify the topology type to be fabric.";
container fabric-network {
presence "indicates fabric Network";
description
"The presence of the container node indicates
fabric topology";
}
}
grouping fabric-options {
description
"Options for a fabric";
leaf gateway-mode {
type enumeration {
enum centralized {
description
"The fabric uses centralized
gateway, in which gateway is deployed on SPINE
node.";
}
enum distributed {
description
"The fabric uses distributed
gateway, in which gateway is deployed on LEAF
node.";
}
}
default "distributed";
description
"Gateway mode of the fabric";
}
leaf traffic-behavior {
type enumeration {
enum normal {
description
"Normal means no policy is needed
for all traffic";
}
enum policy-driven {
description
"Policy driven means policy is
needed for the traffic; otherwise, the traffic
will be discarded.";
}
}
default "normal";
description
"Traffic behavior of the fabric";
}
leaf-list capability-supported {
type fabrictypes:service-capabilities;
description
"It provides a list of supported services of the
fabric. The service-capabilities is defined as
identity-ref. Users can define more services
by defining new identities.";
}
}
grouping device-attributes {
description
"device attributes";
leaf device-ref {
type fabrictypes:node-ref;
description
"The device that the fabric includes that refers
to a node in another topology.";
}
leaf-list role {
type fabrictypes:device-role;
default "fabrictypes:leaf";
description
"It is a list of device roles to represent the roles
that a device plays within a POD, such as SPINE,
LEAF, Border, or Border-Leaf.
The device role is defined as identity-ref. If more
than 2 stages are used for a POD, users can
define new identities for the device role.";
}
}
grouping link-attributes {
description
"Link attributes";
leaf link-ref {
type fabrictypes:link-ref;
description
"The link that the fabric includes that refers to
a link in another topology.";
}
}
grouping port-attributes {
description
"Port attributes";
leaf port-ref {
type fabrictypes:tp-ref;
description
"The port that the fabric includes that refers to
a termination-point in another topology.";
}
leaf port-type {
type fabrictypes:port-type;
description
"Port type is defined as identity-ref. The current
types include ethernet or serial. If more types
are needed, developers can define new identities.";
}
leaf bandwidth {
type fabrictypes:bandwidth;
description
"Bandwidth of the port. It is defined as
identity-ref. If more speeds are introduced,
developers can define new identities for them. Current
speeds include 1M, 10M, 100M, 1G, 10G,
25G, 40G, 100G, and 400G.";
}
}
grouping fabric-attributes {
description
"Attributes of a fabric";
leaf fabric-id {
type fabrictypes:fabric-id;
description
"Fabric ID";
}
leaf name {
type string;
description
"Name of the fabric";
}
leaf type {
type fabrictypes:underlay-network-type;
description
"The type of physical network that implements this
fabric. Examples are VLAN and TRILL.";
}
container vni-capacity {
description
"The range of the VXLAN Network
Identifier (VNI) defined in RFC 7348 that the POD uses.";
leaf min {
type int32;
description
"The lower-limit VNI.";
}
leaf max {
type int32;
description
"The upper-limit VNI.";
}
}
leaf description {
type string;
description
"Description of the fabric";
}
container options {
description
"Options of the fabric";
uses fabric-options;
}
list device-nodes {
key "device-ref";
description
"Device nodes that are included in a fabric.";
uses device-attributes;
}
list device-links {
key "link-ref";
description
"Links that are included within a fabric.";
uses link-attributes;
}
list device-ports {
key "port-ref";
description
"Ports that are included in the fabric.";
uses port-attributes;
}
}
// augment statements
augment "/nws:networks/nws:network/nws:network-types" {
description
"Introduce a new network type for fabric-based logical
topology";
uses fabric-network-type;
}
augment "/nws:networks/nws:network/nws:node" {
when '/nws:networks/nws:network/nws:network-types'
+ '/sfabric:fabric-network' {
description
"Augmentation parameters apply only for
networks with fabric topology.";
}
description
"Augmentation for fabric nodes.";
container fabric-attributes-state {
description
"Attributes for a fabric network";
uses fabric-attributes;
}
}
}