2 * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
12 namespace "urn:opendaylight:params:xml:ns:yang:nemo:object";
\r
13 prefix "nemo-object";
\r
15 import nemo-common {prefix nemo-common;}
\r
17 revision "2015-10-10" {
\r
19 "Initial revision.";
\r
22 grouping property-definitions {
\r
23 list property-definition {
\r
25 "The property definitions for the type of node or connection.";
\r
27 key "property-name";
\r
28 leaf property-name {
\r
30 "A user-visible and unique name for the property.";
\r
31 type nemo-common:property-name;
\r
35 leaf property-value-type {
\r
37 "The type of the property value.";
\r
42 "An string-valued property.";
\r
46 "An integer-valued property.";
\r
50 "An integer-range property.";
\r
57 "Specify whether the property is required for the object.";
\r
62 "The property is required";
\r
66 "The property is optional";
\r
73 "Specify whether the property is read-only for object.";
\r
78 "The property can be read and written.";
\r
82 "The property is read-only.";
\r
89 container node-definitions {
\r
90 list node-definition {
\r
92 "Define new node model/type which can be used in other places,
\r
93 and include node type name and its property.";
\r
98 "A user-visible and unique identifier for the node type.";
\r
99 type nemo-common:node-type;
\r
103 uses property-definitions;
\r
107 container connection-definitions {
\r
108 list connection-definition {
\r
110 "Define new connection model/type which can be used in other places,
\r
111 and include connection type name and its property.";
\r
113 key "connection-type";
\r
114 leaf connection-type {
\r
116 "A user-visible and unique identifier for the connection type.";
\r
117 type nemo-common:connection-type;
\r
121 uses property-definitions;
\r
125 container match-item-definitions {
\r
126 list match-item-definition {
\r
128 "Define the match item which uses to match the flow.";
\r
130 key "match-item-name";
\r
131 leaf match-item-name {
\r
133 "A user-visible and unique name for the match item.";
\r
134 type nemo-common:match-item-name;
\r
138 leaf match-item-value-type {
\r
140 "The value type of the match item.";
\r
145 "A string-valued match item.";
\r
149 "An integer-valued match item.";
\r
153 "An integer-range match item.";
\r
160 container flow-property-definitions {
\r
162 "Contains the property definitions for the flow.";
\r
164 uses property-definitions;
\r
167 grouping property-instance {
\r
169 "The property instance and its associated metadata.";
\r
171 leaf property-name {
\r
173 "The name for the property which can be seen as a unique
\r
174 identifier of the property.";
\r
175 type nemo-common:property-name;
\r
179 container property-values {
\r
181 "The value list of the property.";
\r
183 list string-value {
\r
205 container range-value {
\r
219 grouping node-instance {
\r
221 "It represents the node instance and its metadata.
\r
222 A node represents the functions a network node may provide in a
\r
223 network such as network services,or a group of network elements.";
\r
227 "A unique ID for a node instance";
\r
228 type nemo-common:node-id;
\r
234 "A user-visible and unique name for a node instance.";
\r
235 type nemo-common:node-name;
\r
241 "A user-visible and unique type identifier for a node instance.";
\r
242 type nemo-common:node-type;
\r
248 "Represents the sub-nodes which have been included
\r
249 by the node instance logically.";
\r
254 "A unique ID for a node instance.";
\r
255 type nemo-common:node-id;
\r
260 "Specify the order of the node in a sequence node list.";
\r
267 "The property list of a node instance.";
\r
269 key "property-name";
\r
270 uses property-instance;
\r
274 grouping connection-instance {
\r
276 "It represents the connection instance and its metadata.
\r
277 The Connection describes the resource between node entities.
\r
278 This connection is not limited to any physical link, but just
\r
279 expresses the communication capacity between nodes.";
\r
281 leaf connection-id {
\r
283 "A unique ID for a connection instance.";
\r
284 type nemo-common:connection-id;
\r
288 leaf connection-name {
\r
290 "A user-visible and unique name for a connection instance.";
\r
291 type nemo-common:connection-name;
\r
295 leaf connection-type {
\r
297 "A user-visible and unique type identifier for a connection instance.";
\r
298 type nemo-common:connection-type;
\r
304 "Represents the nodes which will be connected by connection.
\r
305 At least two nodes in the list.";
\r
310 "A unique ID for a node instance.";
\r
311 type nemo-common:node-id;
\r
316 "Specify the order of the node in a sequence node list";
\r
325 "The property list of a connection instance.";
\r
327 key "property-name";
\r
328 uses property-instance;
\r
332 grouping match-item-instance {
\r
334 "Represents the match item and its metadata.";
\r
336 leaf match-item-name {
\r
338 "A name for a match item.";
\r
339 type nemo-common:match-item-name;
\r
343 container match-item-value {
\r
345 "The value of a match item.";
\r
347 leaf string-value {
\r
355 container range-value {
\r
369 grouping flow-instance {
\r
371 "Represents the flow instance and its metadata.
\r
372 The flow refers to the traffic in network which describes
\r
373 data packets have some certain characters.";
\r
377 "A unique ID for a flow instance.";
\r
378 type nemo-common:flow-id;
\r
384 "A user-visible and unique name for a flow instance.";
\r
385 type nemo-common:flow-name;
\r
391 "The match item list of a flow instance.";
\r
393 key "match-item-name";
\r
394 uses match-item-instance;
\r
399 "The property list of a flow instance.";
\r
401 key "property-name";
\r
402 uses property-instance;
\r