forked from ict-strauss/COP
-
Notifications
You must be signed in to change notification settings - Fork 1
/
service-topology.yang
221 lines (201 loc) · 4.73 KB
/
service-topology.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
module service-topology {
yang-version 1;
namespace "urn:ietf:params:xml:ns:yang:service-topology";
prefix s-topology;
organization "CTTC";
description "YANG version of the Common Orchestration Protocol (COP).";
revision "2016-12-02" {
description
"Service Topology module for 5G-Crosshaul";
}
typedef topology-ref {
type leafref {
path "/topologies/topology/topology_id";
}
description
"A type for an absolute reference a topology instance.";
}
typedef edge_type_enumeration {
type enumeration {
enum dwdm_edge {
value 1;
description "DWDM link";
}
enum eth_edge {
value 2;
description "Ethernet link";
}
enum wireless_edge {
value 3;
description "Wireless Ethernet link";
}
}
}
typedef switching_cap_enumeration {
type enumeration {
enum lsc {
value 1;
description "Label Switching Capability sw_cap";
}
enum psc {
value 2;
description "Packet Switching Capability sw_cap";
}
}
}
grouping topology{
leaf topology_id{
type string;
}
leaf-list underlay-topology {
description "List of topologies from which this depends on.";
type topology-ref;
}
list nodes{
config false;
key "node_id";
uses node;
}
list edges{
config false;
key "edge_id";
uses edge;
}
container topology_types{
description "Empty container used to be augmented with one or more empty optional
container to indicate the topology type(s)";
}
}
grouping edge_end{
leaf edge_end_id{
type string;
}
leaf switching_cap{
type switching_cap_enumeration;
}
leaf name{
type string;
}
leaf peer_node_id{
type string;
}
}
grouping node{
leaf node_id{
type string;
}
leaf-list underlay-abstract-topology{
description "List of topology_ids which are represented by this node.";
type topology-ref;
}
leaf name{
type string;
}
leaf domain{
type string;
}
container node_type{
description "Empty container used to be augmented with a new empty optional
container to indicate the new Node Type";
}
list edge_end{
key "edge_end_id";
uses edge_end;
}
}
grouping edge{
leaf edge_type{
mandatory true;
type edge_type_enumeration;
}
leaf edge_id{
mandatory true;
type string;
}
leaf name{
type string;
}
leaf switching_cap{
mandatory true;
type string;
}
leaf metric{
type string;
}
leaf max_resv_bw{
type string;
}
leaf unreserv_bw{
type string;
}
leaf latency{
type string;
}
container source{
uses node;
}
container target{
uses node;
}
container local_ifid{
uses edge_end;
}
container remote_ifid{
uses edge_end;
}
}
grouping dwdm_channel{
leaf g694_id{
type int32;
}
leaf state{
type int32;
}
}
grouping bitmap{
leaf numChannels{
type int16;
}
leaf-list arrayBits{
type int16;
}
}
grouping dwdm_edge{
container bitmap{
uses bitmap;
}
list channels{
key "g694_id";
uses dwdm_channel;
}
uses edge;
}
grouping eth_edge{
uses edge;
}
grouping service_end_point_type{
leaf sep_id{
type string;
}
leaf name{
type string;
}
leaf edge_end_id{
type string;
}
leaf node_id{
type string;
}
}
container topologies{
config false;
list topology{
key "topology_id";
uses topology;
}
list service_end_point{
key "sep_id";
uses service_end_point_type;
}
}
}