1 module tapi-connectivity {
2 namespace "urn:mef:yang:TapiConnectivity";
3 prefix tapi-connectivity;
10 organization "Metro Ethernet Forum (MEF)";
14 description "MEF NRP 1.0.alpha";
15 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020 and RFC 6087";
17 augment "/tapi-common:context" {
18 uses connectivity-context;
21 /***********************
22 * package object-classes
23 **********************/
25 list connection-end-point {
29 uses connection-end-point;
40 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
53 uses tapi-common:operational-state-pac;
56 leaf layer-protocol-name {
57 type tapi-common:layer-protocol-name;
62 type tapi-common:forwarding-direction;
66 uses tapi-common:resource-spec;
67 description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
68 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
70 grouping connection-end-point {
75 uses tapi-common:layer-protocol;
78 leaf-list client-node-edge-point {
80 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
85 leaf server-node-edge-point {
87 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
92 leaf peer-connection-end-point {
94 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
101 uses tapi-common:operational-state-pac;
104 leaf termination-direction {
105 type tapi-common:termination-direction;
109 leaf connection-port-direction {
110 type tapi-common:port-direction;
112 description "The orientation of defined flow at the EndPoint.";
114 leaf connection-port-role {
115 type tapi-common:port-role;
117 description "Each EP of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function. ";
119 uses tapi-common:resource-spec;
120 description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
121 The structure of LTP supports all transport protocols including circuit and packet forms.";
123 grouping connectivity-constraint {
132 description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
134 container requested-capacity {
136 uses tapi-topology:capacity;
139 list cost-characteristic {
140 key 'cost-name cost-value cost-algorithm';
142 uses tapi-topology:cost-characteristic;
143 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
145 list latency-characteristic {
146 key 'traffic-property-name traffic-property-queing-latency';
148 uses tapi-topology:latency-characteristic;
149 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
151 leaf coroute-inclusion {
153 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
158 leaf-list diversity-exclusion {
160 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
165 uses tapi-common:local-class;
168 grouping connectivity-service {
169 leaf-list connection {
171 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
176 list service-end-point {
179 uses connectivity-service-end-point;
182 container conn-constraint {
183 uses connectivity-constraint;
186 container topo-constraint {
187 uses topology-constraint;
191 uses tapi-common:time-range;
195 uses tapi-common:admin-state-pac;
199 type tapi-common:forwarding-direction;
202 leaf layer-protocol-name {
203 type tapi-common:layer-protocol-name;
206 uses tapi-common:service-spec;
207 description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.
208 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
210 grouping connectivity-service-end-point {
211 leaf service-interface-point {
213 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
219 type tapi-common:port-role;
221 description "Each EP of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function. ";
224 type tapi-common:port-direction;
226 description "The orientation of defined flow at the EndPoint.";
228 leaf layer-protocol-name {
229 type tapi-common:layer-protocol-name;
233 uses tapi-common:local-class;
234 description "The association of the FC to LTPs is made via EndPoints.
235 The EndPoint (EP) object class models the access to the FC function.
236 The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
237 In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
238 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
239 The EP replaces the Protection Unit of a traditional protection model.
240 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
243 leaf-list lower-connection {
245 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
251 uses tapi-common:local-class;
252 description "The FC Route (FcRoute) object class models the individual routes of an FC.
253 The route of an FC object is represented by a list of FCs at a lower level.
254 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
256 grouping connectivity-context {
257 list connectivity-service {
259 uses connectivity-service;
271 leaf-list selected-connection-end-point {
273 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
278 leaf-list selected-route {
280 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
285 leaf selection-control {
286 type selection-control;
287 description "Degree of administrative control applied to the switch selection.";
289 leaf selection-reason {
290 type selection-reason;
292 description "The reason for the current switch selection.";
294 leaf switch-direction {
295 type tapi-common:port-direction;
296 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
298 uses tapi-common:local-class;
299 description "The class models the switched forwarding of traffic (traffic flow) between FcPorts (ConnectionEndPoints) and is present where there is protection functionality in the FC (Connection).
300 If an FC exposes protection (having two or more FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects to represent the alternative flow choices visible at the edge of the FC.
301 The FC switch represents and defines a protection switch structure encapsulated in the FC.
302 Essentially performs one of the functions of the Protection Group in a traditional model. It associates to 2 or more FcPorts each playing the role of a Protection Unit.
303 One or more protection, i.e. standby/backup, FcPorts provide protection for one or more working (i.e. regular/main/preferred) FcPorts where either protection or working can feed one or more protected FcPort.
304 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
305 It may be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 and 1:1).
306 It may be locked out (prevented from switching), force switched or manual switched.
307 It will indicate switch state and change of state.
308 The switch can be switched away from all sources such that it becomes open and hence two coordinated switches can both feed the same LTP so long as at least one of the two is switched away from all sources (is 'open').
309 The ability for a Switch to be 'high impedance' allows bidirectional ForwardingConstructs to be overlaid on the same bidirectional LTP where the appropriate control is enabled to prevent signal conflict.
310 This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
312 grouping switch-control {
313 leaf-list sub-switch-control {
315 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:local-id';
324 container control-parameters {
325 uses control-parameters-pac;
328 uses tapi-common:local-class;
329 description "Represents the capability to control and coordinate switches, to add/delete/modify FCs and to add/delete/modify LTPs/LPs so as to realize a protection scheme.";
331 grouping control-parameters-pac {
333 type protection-type;
334 description "Indicates the protection scheme that is used for the ProtectionGroup.";
336 leaf reversion-mode {
338 description "Indcates whether the protection scheme is revertive or non-revertive.";
340 leaf wait-to-revert-time {
343 description "If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource.";
347 description "This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm.";
357 leaf is-coordinated-switching-both-ends {
359 description "Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends.";
361 description "A list of control parameters to apply to a switch.";
363 grouping topology-constraint {
364 leaf-list include-topology {
366 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
371 leaf-list avoid-topology {
373 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
378 leaf-list include-path {
383 leaf-list exclude-path {
388 leaf-list include-link {
390 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
395 leaf-list exclude-link {
397 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
402 leaf-list preferred-transport-layer {
403 type tapi-common:layer-protocol-name;
405 description "soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers";
407 uses tapi-common:local-class;
411 /***********************
412 * package type-definitions
413 **********************/
414 typedef service-type {
416 enum point-to-point-connectivity {
419 enum point-to-multipoint-connectivty {
422 enum multipoint-connectivity {
428 typedef reversion-mode {
431 description "An FC switched to a lower priority (non-preferred) resource will revert to a higher priority (preferred) resource when that recovers (potentially after some hold-off time).";
434 description "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
437 description "The reversion mode associated with protection.";
439 typedef selection-control {
442 description "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
443 This overrides all other protection control states including forced.
444 If the item is locked out then it cannot be used under any circumstances.
445 Note: Only relevant when part of a protection scheme.";
457 description "Possible degrees of administrative control applied to the Route selection.";
459 typedef selection-reason {
473 enum wait-to-revert {
476 enum signal-degrade {
483 description "The cause of the current route selection.";
485 typedef protection-type {
487 enum linear-1-plus-1 {
490 enum linear-1-for-1 {
497 /***********************
499 **********************/
500 rpc get-connection-details {
503 leaf service-id-or-name {
507 leaf connection-id-or-name {
513 container connection {
519 rpc get-connectivity-service-list {
523 uses connectivity-service;
528 rpc get-connectivity-service-details {
531 leaf service-id-or-name {
538 uses connectivity-service;
543 rpc create-connectivity-service {
548 uses connectivity-service-end-point;
551 container conn-constraint {
552 uses connectivity-constraint;
555 container topo-constraint {
556 uses topology-constraint;
570 uses connectivity-service;
575 rpc update-connectivity-service {
578 leaf service-id-or-name {
583 uses connectivity-service-end-point;
586 container conn-constraint {
587 uses connectivity-constraint;
590 container topo-constraint {
591 uses topology-constraint;
605 uses connectivity-service;
610 rpc delete-connectivity-service {
613 leaf service-id-or-name {
620 uses connectivity-service;