1 module CoreModel-CoreNetworkModule-ObjectClasses {
2 namespace "uri:onf:CoreModel-CoreNetworkModule-ObjectClasses";
3 prefix CoreModel-CoreNetworkModule-ObjectClasses;
5 import CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages {
6 prefix CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages;
8 import CoreModel-CoreNetworkModule-TypeDefinitions {
9 prefix CoreModel-CoreNetworkModule-TypeDefinitions;
13 'ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project';
16 'WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
17 WG List: <mailto:wireless-transport@login.opennetworking.org >
19 <mailto:lyong@ciena.com>
20 WG Chair: Giorgio Cazzaniga
21 <mailto:giorgio.cazzaniga@sm-optics.com>';
24 'This module contains a collection of YANG definitions for
25 managing microwave transport networks.';
31 "ONF TR xyz: A YANG Data Model for Microwave Transport Networks.";
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.
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.";
45 type CoreModel-CoreNetworkModule-TypeDefinitions:LayerProtocolName;
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).";
55 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_fdRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
58 leaf-list _fcRefList {
59 description "An FD contains one or more FCs. A contained FC connects LTPs that bound the FD.";
62 path '/CoreModel-CoreNetworkModule-ObjectClasses:ForwardingConstruct/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
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.";
70 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
74 list ForwardingConstruct {
78 uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
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.";
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.
99 path '/CoreModel-CoreNetworkModule-ObjectClasses:ForwardingConstruct/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
103 description "The association of the FC to LTPs is made via FcPorts (essentially the ports of the FC).";
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";
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.";
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";
136 uses CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages:GlobalClass;
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.
146 uses ForwardingDomain;
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.";
155 uses LogicalTerminationPoint;
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.
170 - Bidirectional FcPort to two Uni Ltps
172 - BreakBeforeMake transition
173 - Planned Ltp not yet in place
174 - Off-network LTP referenced through other mechanism";
177 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
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. ";
185 leaf fcPortDirection {
186 type CoreModel-CoreNetworkModule-TypeDefinitions:PortDirection;
187 description "The orientation of defined flow at the FcPort.";
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.";
197 leaf configuredClientCapacity {
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.";
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";
209 leaf terminationState {
211 description "Indicates whether the layer is terminated and if so how.";
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).";
222 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
225 leaf-list _clientLtpRefList {
226 description "References contained LTPs representing client traffic of this LTP for normal cases of multiplexing.";
229 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
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)";
240 leaf _connectedLtpRef {
242 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
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.";
249 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
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.";
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";
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.";
264 path '/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/CoreModel-CoreNetworkModule-ObjectClasses:_ltpRefList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';
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";
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;
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. ";
292 leaf waitToRestoreTime {
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. ";
297 type CoreModel-CoreNetworkModule-TypeDefinitions:ProtectionType;
298 description "Indicates the protection scheme that is used for the ProtectionGroup.";
301 type CoreModel-CoreNetworkModule-TypeDefinitions:OperType;
302 description "This attribute whether or not the protection scheme is revertive or non-revertive. ";
304 leaf-list _selectedFcPortRefList {
305 description "Indicates which points are selected by the switch.";
308 path '/CoreModel-CoreNetworkModule-ObjectClasses:ForwardingConstruct/CoreModel-CoreNetworkModule-ObjectClasses:_fcPortList/CoreModel-CoreNetworkModule-ObjectClasses:uuid';