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