Assign image keyname and pubkey at vnf level
[ccsdk/apps.git] / sdnr / wireless-transport / code-Carbon-SR1 / apps / devicemodel / src / main / yang / CoreModel-CoreNetworkModule-ObjectClasses@2016-08-11.yang
1 module CoreModel-CoreNetworkModule-ObjectClasses {
2     namespace "uri:onf:CoreModel-CoreNetworkModule-ObjectClasses";
3     prefix CoreModel-CoreNetworkModule-ObjectClasses;
4
5     import CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages {
6         prefix CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages;
7     }
8     import CoreModel-CoreNetworkModule-TypeDefinitions {
9         prefix CoreModel-CoreNetworkModule-TypeDefinitions;
10     }
11
12     organization 
13         'ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project';
14
15     contact 
16         'WG Web:   <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
17          WG List:  <mailto:wireless-transport@login.opennetworking.org >
18          WG Chair: Lyndon Ong
19                    <mailto:lyong@ciena.com>
20          WG Chair: Giorgio Cazzaniga
21                    <mailto:giorgio.cazzaniga@sm-optics.com>';
22
23     description 
24         'This module contains a collection of YANG definitions for 
25          managing microwave transport networks.';
26
27     revision 2016-08-11 {
28         description 
29             "Initial revision."; 
30         reference 
31             "ONF TR xyz: A YANG Data Model for Microwave Transport Networks."; 
32     }
33
34     grouping ForwardingDomain {
35         description "The ForwardingDomain (FD) object class models the topological component which represents the opportunity to enable forwarding (of specific transport characteristic information at one or more protocol layers) between points represented by the LTP in the model.
36             The FD object provides the context for instructing the formation, adjustment and removal of FCs and hence offers the potential to enable forwarding. 
37             The LTPs available are those defined at the boundary of the FD.
38             At a lowere level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). 
39             Note that an NE can encompass multiple switch matrices (FDs) and the FD representing the switch matrix can be further partitioned.
40             ";
41         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
42         leaf-list layerProtocolNameList {
43             description "One or more protocol layers at which the FD represents the opportunity to enable forwarding between LTP that bound it.";
44             ordered-by system;
45             type CoreModel-CoreNetworkModule-TypeDefinitions:LayerProtocolName;
46             min-elements 1;
47         }
48         leaf-list _lowerLevelFdRefList {
49             description "The FD object class supports a recursive aggregation relationship (HigherLevelFdEncompassesLowerLevelFds) such that the internal construction of an FD can be exposed as multiple lower level FDs and associated Links (partitioning).
50 The aggregated FDs and Links form an interconnected topology that provides and describes the capability of the aggregating FD.
51 Note that the model actually represents aggregation of lower level FDs into higher level FDs as views rather than FD partition, and supports multiple views. 
52 Aggregation allow reallocation of capacity from lower level FDs to different higher level FDs as if the network is reorganized  (as the association is aggregation not composition).";
53             ordered-by system;
54             type leafref {
55                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_fdRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
56             }
57         }
58         leaf-list _fcRefList {
59             description "An FD contains one or more FCs. A contained FC connects LTPs that bound the FD.";
60             ordered-by system;
61             type leafref {
62                 path '/CoreModel-CoreNetworkModule-ObjectClasses:ForwardingConstruct/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
63             }
64         }
65         leaf-list _ltpRefList {
66             description "An instance of FD is associated with zero or more LTP objects. 
67 The LTPs that bound the FD provide capacity for forwarding.";
68             ordered-by system;
69             type leafref {
70                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
71             }
72         }
73     }
74     list ForwardingConstruct {
75         key 'uuid';
76         config true;
77         ordered-by system;
78         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
79     }
80     grouping ForwardingConstruct {
81         description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs at a particular specific layerProtocol.
82             Like the LTP the FC supports any transport protocol including all circuit and packet forms.
83             It is used to effect forwarding of transport characteristic (layer protocol) information.
84             An FC can be in only one FD.
85             The ForwardingConstruct is a Forwarding entity.
86             At a low level of the recursion, a FC represents a cross-connection within an NE. It may also represent a fragment of a cross-connection under certain circumstances.
87             The FC object can be used to represent many different structures including point-to-point (P2P), point-to-multipoint (P2MP), rooted-multipoint (RMP) and multipoint-to-multipoint (MP2MP) bridge and selector structure for linear, ring or mesh protection schemes.";
88         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
89         leaf layerProtocolName {
90             type CoreModel-CoreNetworkModule-TypeDefinitions:LayerProtocolName;
91             description "The layerProtocol at which the FC enables potential for forwarding.";
92         }
93         leaf-list _lowerLevelFcRefList {
94             description "An FC object supports a recursive aggregation relationship such that the internal construction of an FC can be exposed as multiple lower level FC objects (partitioning).
95 Aggregation is used as for the FD to allow changes in hierarchy.
96 ";
97             ordered-by system;
98             type leafref {
99                 path '/CoreModel-CoreNetworkModule-ObjectClasses:ForwardingConstruct/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
100             }
101         }
102         list _fcPortList {
103             description "The association of the FC to LTPs is made via FcPorts (essentially the ports of the FC).";
104             key 'uuid';
105             config true;
106             ordered-by system;
107             uses FcPort;
108             min-elements 2;
109         }
110         list _fcSwitchList {
111             description "If an FC exposes protection (having two FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects.
112                 The arrangement of switches for a particular instance is described by a referenced FcSpec";
113             key 'uuid';
114             config true;
115             ordered-by system;
116             uses FcSwitch;
117         }
118         leaf forwardingDirection {
119             type CoreModel-CoreNetworkModule-TypeDefinitions:ForwardingDirection;
120             description "The directionality of the ForwardingConstruct. 
121                 Is applicable to simple ForwardingConstructs where all FcPorts are BIDIRECTIONAL (the ForwardingConstruct will be BIDIRECTIONAL) or UNIDIRECTIONAL (the ForwardingConstruct will be UNIDIRECTIONAL). 
122                 Is not present in more complex cases.";
123         }
124     }
125     container NetworkElement {
126         presence "Enables ONF CoreModel support";
127         description "The Network Element (NE) object class represents a network element (traditional NE) in the data plane.
128             A data plane network element is essentially a consolidation of capabilities that can be viewed and controlled through a 'single' management-control port.
129             In the direct interface from an SDN controller to a network element in the data plane, the NetworkElement object defines the scope of control for the resources within the network element
130             For example internal transfer of user information between the external terminations (ports of the NE), encapsulation, multiplexing/demultiplexing, and OAM functions, etc. 
131             The NetworkElement provides the scope of the naming space for identifying objects representing the resources within the data plane network element.
132             NE is really a product bundling or some view of management scope, management access, session. 
133             The NE is not directly part of topology but brings meaning to the FD context and the LTP context (and hence the links). 
134             lifecycle:LikelyToChange";
135         config true;
136         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
137         list _fdRefList {
138             description "Represents the FD that is completely within the boundary of the NE.
139                 At a low level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). 
140                 Note that an NE can encompass multiple switch matrices (FDs) and the FD representing the switch matrix can be further partitioned.
141                 Where an FD is referenced by the NeEncompassesFd association, any FDs that it encompasses (i.e., that are associated with it by HigherLevelFdEncompassesLowerLevelFds), must also be encompassed by the NE and hence must have the NeEncompassesFd association.
142                 ";
143             key 'uuid';
144             config true;
145             ordered-by system;
146             uses ForwardingDomain;
147         }
148         list _ltpRefList {
149             description "An NE has associated LTPs that are at its boundary.
150                 The NeEncompassesFd association occurs for FDs that are within the bounds of the NetworkElement definition such that the FD is bounded by LTPs, all of which are on the boundary of the NetworkElement or are within the NetworkElement. 
151                 An LTP can be independent of an NE.";
152             key 'uuid';
153             config true;
154             ordered-by system;
155             uses LogicalTerminationPoint;
156         }
157     }
158     grouping FcPort {
159         description "The association of the FC to LTPs is made via FcPorts.
160             The FcPort object class models the access to the FC function. 
161             The traffic forwarding between the associated FcPorts of the FC depends upon the type of FC and may be associated with FcSwitch object instances.  
162             In cases where there is resilience the FcPort may convey the resilience role of the access to the FC. 
163             It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
164             The FcPort replaces the Protection Unit of a traditional protection model. 
165             The ForwadingConstruct can be considered as a component and the FcPort as a Port on that component";
166         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:LocalClass;
167         leaf-list _ltpRefList {
168             description "The FcPort may be associated with more than one LTP when the FcPort is bidirectional and the LTPs are unidirectional.
169 Multiple Ltp
170 - Bidirectional FcPort to two Uni Ltps
171 Zero Ltp
172 - BreakBeforeMake transition
173 - Planned Ltp not yet in place
174 - Off-network LTP referenced through other mechanism";
175             ordered-by system;
176             type leafref {
177                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
178             }
179             max-elements 2;
180         }
181         leaf role {
182             type CoreModel-CoreNetworkModule-TypeDefinitions:PortRole;
183             description "Each FcPort 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. ";
184         }
185         leaf fcPortDirection {
186             type CoreModel-CoreNetworkModule-TypeDefinitions:PortDirection;
187             description "The orientation of defined flow at the FcPort.";
188         }
189     }
190     grouping LayerProtocol {
191         description "Each transport layer is represented by a LayerProtocol (LP) instance. The LayerProtocol instances it can be used for controlling termination and monitoring functionality. It can also be used for controlling the adaptation (i.e. encapsulation and/or multiplexing of client signal), tandem connection monitoring, traffic conditioning and/or shaping functionality at an intermediate point along a connection. Where the client - server relationship is fixed 1:1 and immutable, the layers can be encapsulated in a single LTP instance. Where the is a n:1 relationship between client and server, the layers must be split over two separate instances of LTP. ";
192         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:LocalClass;
193         leaf layerProtocolName {
194             type CoreModel-CoreNetworkModule-TypeDefinitions:LayerProtocolName;
195             description "Indicate the specific layer-protocol described by the LayerProtocol entity.";
196         }
197         leaf configuredClientCapacity {
198             type string;
199             description "Provides a summarized view of the client capacity that is configurable for use.
200                 Note the cleint LTP association should provide all necessary detail hence this attribute is questionable.";
201         }
202         leaf lpDirection {
203             type CoreModel-CoreNetworkModule-TypeDefinitions:TerminationDirection;
204             description "The overall directionality of the LP. 
205                 - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flowss.
206                 - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows
207                 - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows";
208         }
209         leaf terminationState {
210             type boolean;
211             description "Indicates whether the layer is terminated and if so how.";
212         }
213     }
214     grouping LogicalTerminationPoint {
215         description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers. 
216             The structure of LTP supports all transport protocols including circuit and packet forms.";
217         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
218         leaf-list _serverLtpRefList {
219             description "References contained LTPs representing servers of this LTP in an inverse multiplexing configuration (e.g. VCAT).";
220             ordered-by system;
221             type leafref {
222                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
223             }
224         }
225         leaf-list _clientLtpRefList {
226             description "References contained LTPs representing client traffic of this LTP for normal cases of multiplexing.";
227             ordered-by system;
228             type leafref {
229                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
230             }
231         }
232         list _lpList {
233             description "Ordered list of LayerProtocols that this LTP is comprised of where the first entry in the list is the lowest server layer (e.g. physical)";
234             key 'uuid';
235             config true;
236             ordered-by system;
237             uses LayerProtocol;
238             min-elements 1;
239         }
240         leaf _connectedLtpRef {
241             type leafref {
242                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
243             }
244             description "Applicable in a simple context where two LTPs are associated via a non-adjustable enabled forwarding.
245                 Reduces clutter removing the need for two additional LTPs and an FC with a pair of FcPorts.";
246         }
247         leaf _peerLtpRef {
248             type leafref {
249                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
250             }
251             description "References contained LTPs representing the reversal of orientation of flow where two LTPs are associated via a non-adjustable enabled forwarding and where the referenced LTP is fully dependent on the this LTP.";
252         }
253         leaf-list physicalPortReference {
254             description "One or more text labels for the unmodelled physical port associated with the LTP.
255 In many cases there is no associated physical port";
256             ordered-by system;
257             type string;
258         }
259         leaf-list _ltpRefList {
260             description "References one or more LTPs in other views that represent this LTP. 
261 The referencing LTP is the rovider of capability.";
262             ordered-by system;
263             type leafref {
264                 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
265             }
266         }
267         leaf ltpDirection {
268             type CoreModel-CoreNetworkModule-TypeDefinitions:TerminationDirection;
269             description "The overall directionality of the LTP. 
270                 - A BIDIRECTIONAL LTP must have at least some LPs that are BIDIRECTIONAL but may also have some SINK and/or SOURCE LPs.
271                 - A SINK LTP can only contain SINK LPs
272                 - A SOURCE LTP can only contain SOURCE LPs";
273         }
274     }
275     grouping FcSwitch {
276         description "The FcSwitch object class models the switched forwarding of traffic (traffic flow) between FcPorts and is present where there is protection functionality in the FC. 
277             If an FC exposes protection (having two 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.
278             The FC switch represents and defines a protection switch structure encapsulated in the FC. 
279             Essentially performs the functoion of the Protection Group in a traditional model. 
280             Associates to 2 or more FcPorts each playing the role of a Protection Unit. 
281             One or more protection FcPorts (standby/backup) provide protection for one or more working (i.e. regular/main/preferred) FcPorts where eith protection or working can feed one or more protected FcPort.
282             May be used in revertive or non-revertive (symmetric) mode. 
283             When in revertive mode may define waitToRestore time.
284             May be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as  1+1 ane 1:1).. 
285             May be lockout (prevented from switching), force switched or manual switched.
286             Will indicate switch state and change of state.";
287         uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:LocalClass;
288         leaf holdOffTime {
289             type int32;
290             description "This attribute indicates the time, in seconds, between declaration of unacceptable quality of signal on the currently selected FcPort, and the initialization of the protection switching algorithm. ";
291         }
292         leaf waitToRestoreTime {
293             type int32;
294             description "If the protection system is revertive, this attribute specifies the amount of time, in seconds, to wait after the preferred FcPort returns to an acceptable state of operaion (e.g a fault has cleared) before restoring traffic to that preferred FcPort. ";
295         }
296         leaf protType {
297             type CoreModel-CoreNetworkModule-TypeDefinitions:ProtectionType;
298             description "Indicates the protection scheme that is used for the ProtectionGroup.";
299         }
300         leaf operType {
301             type CoreModel-CoreNetworkModule-TypeDefinitions:OperType;
302             description "This attribute whether or not the protection scheme is revertive or non-revertive. ";
303         }
304         leaf-list _selectedFcPortRefList {
305             description "Indicates which points are selected by the switch.";
306             ordered-by system;
307             type leafref {
308                 path '/CoreModel-CoreNetworkModule-ObjectClasses:ForwardingConstruct/CoreModel-CoreNetworkModule-ObjectClasses:_fcPortList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
309             }
310             min-elements 1;
311         }
312     }
313 }