Remove openroadm and tapi models building
[transportpce.git] / api / src / main / yang / service_path / transportpce-pathDescription@2021-07-05.yang
1 module transportpce-pathDescription {
2   namespace "http://org/transportpce/B-C-interface/pathDescription";
3   prefix transportpce-pathDescription;
4
5   import org-openroadm-common-optical-channel-types {
6     prefix org-openroadm-common-optical-channel-types;
7   }
8
9   import org-openroadm-common-state-types {
10     prefix org-openroadm-common-state-types;
11     revision-date 2019-11-29;
12   }
13   import org-openroadm-otn-common-types {
14     prefix org-openroadm-otn-common-types;
15   }
16
17   organization
18     "transportPCE";
19   contact
20     "transportPCE committers - ODL";
21   description
22     "YANG definitions of B interface (transportPCE). Adapted from service definition (openroadm)
23      Copyright © 2017 Orange, Inc. and others.  All rights reserved.
24
25      openroadm copyright:
26       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
27       AT&T Intellectual Property.  All other rights reserved.
28
29       Redistribution and use in source and binary forms, with or without modification,
30       are permitted provided that the following conditions are met:
31
32       * Redistributions of source code must retain the above copyright notice, this
33         list of conditions and the following disclaimer.
34       * Redistributions in binary form must reproduce the above copyright notice,
35         this list of conditions and the following disclaimer in the documentation and/or
36         other materials provided with the distribution.
37       * Neither the Members of the Open ROADM MSA Agreement nor the names of its
38         contributors may be used to endorse or promote products derived from this software
39         without specific prior written permission.
40
41       THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
42       AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
43       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
44       IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
45       INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46       NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
47       OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
48       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50       POSSIBILITY OF SUCH DAMAGE";
51
52   revision 2021-07-05 {
53     description
54       "Version 1.6.4. To add a list of trib-slots and complex-trib-slots
55       to be compliant with transportpce-device-renderer yang model";
56   }
57   revision 2020-12-10 {
58     description
59       "Version 1.6.3. To add states in path description elements";
60   }
61   revision 2020-11-26 {
62     description
63       "Version 1.6.2. To manage flexgrid";
64   }
65   revision 2020-06-29 {
66     description
67       "Version 1.6.1. To manage otn services";
68   }
69   revision 2017-10-17 {
70     description
71       "Version 1.6";
72   }
73   revision 2017-04-26 {
74     description
75       "Version 1.5";
76   }
77
78   grouping PCE-resource {
79     description
80       "This resource identifier is intended to provide a generic identifer
81        for any resource that can be used without specific knowledge of
82        the resource.";
83     container resource {
84       choice resource {
85         case termination-point {
86           leaf tp-id {
87             type string;
88             //to be clarified with topology model
89           }
90           leaf tp-node-id {
91             type string;
92             //to be clarified with topology model
93           }
94         }
95         case link {
96           leaf link-id {
97             type string;
98             //to be clarified with topology model
99           }
100         }
101         case node {
102           leaf node-id {
103             type string;
104             // to be clarified with topology model
105           }
106         }
107       }
108       leaf state {
109         type org-openroadm-common-state-types:state;
110         mandatory true;
111         description "Operational state of pce-resource";
112       }
113     }
114   }
115
116   grouping path-description {
117     description
118       "Topology reports the individual hops along the service in the A to Z direction and Z to A directions.  This includes both ports internal to a device and those
119        at its edge that are available for externally connections. It includes both physical and logical ports.
120        Physical ports are ordered with the logical ports that run over them as follows:
121        a.\tOn ingress to a node/card, physical then logical
122        b.\tOn egress to a node/card, logical then physical";
123     container aToZ-direction {
124       leaf aToZ-wavelength-number {
125         type uint32;
126       }
127       leaf aToZ-min-frequency {
128          type org-openroadm-common-optical-channel-types:frequency-THz;
129          description
130          "Minimum frequency in THz.";
131       }
132       leaf aToZ-max-frequency {
133            type org-openroadm-common-optical-channel-types:frequency-THz;
134          description
135          "Maximum frequency in THz.";
136       }
137       leaf min-trib-slot {
138           type org-openroadm-otn-common-types:opucn-trib-slot-def;
139           description
140               "Minimum trib slots in the form of 'A.B',
141               where A and B correspond to port-number and trib-slots respectively";
142       }
143       leaf max-trib-slot {
144           type org-openroadm-otn-common-types:opucn-trib-slot-def;
145           description
146               "Maximum trib slots in the form of 'A.B',
147               where A and B correspond to port-number and trib-slots respectively";
148       }
149       leaf rate {
150         type uint32;
151         mandatory true;
152       }
153       leaf modulation-format {
154         type string;
155         // enum ?
156       }
157       list aToZ {
158         key "id";
159         leaf id {
160           type string;
161           description
162             "Unique identifier for this topology component within this service";
163         }
164         uses hop;
165       }
166     }
167     container zToA-direction {
168       leaf zToA-wavelength-number {
169         type uint32;
170       }
171       leaf zToA-min-frequency {
172          type org-openroadm-common-optical-channel-types:frequency-THz;
173          description
174          "Minimum frequency in THz.";
175       }
176       leaf zToA-max-frequency {
177            type org-openroadm-common-optical-channel-types:frequency-THz;
178          description
179          "Maximum frequency in THz.";
180       }
181       leaf min-trib-slot {
182           type org-openroadm-otn-common-types:opucn-trib-slot-def;
183           description
184               "Minimum trib slots in the form of 'A.B',
185               where A and B correspond to port-number and trib-slots respectively";
186       }
187       leaf max-trib-slot {
188           type org-openroadm-otn-common-types:opucn-trib-slot-def;
189           description
190               "Maximum trib slots in the form of 'A.B',
191               where A and B correspond to port-number and trib-slots respectively";
192       }
193       leaf rate {
194         type uint32;
195         mandatory true;
196       }
197       leaf modulation-format {
198         type string;
199         // enum ?
200       }
201       list zToA {
202         key "id";
203         leaf id {
204           type string;
205           description
206             "Unigue identifier for this topology component within this service";
207         }
208         uses hop;
209       }
210     }
211   }
212
213   grouping hop {
214     uses PCE-resource;
215   }
216 }