Add supoprt for D release use-case.
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / o-ran-transceiver@2019-07-03.yang
1 module o-ran-transceiver {
2   yang-version 1.1;
3   namespace "urn:o-ran:transceiver:1.0";
4   prefix "o-ran-transceiver";
5
6   import o-ran-interfaces {
7     prefix "o-ran-int";
8   }
9
10   import ietf-interfaces {
11     prefix "if";
12   }
13
14   organization "O-RAN Alliance";
15
16   contact
17     "www.o-ran.org";
18
19   description
20     "This module defines the operational state data for SFP transceivers used in
21     an O-RAN Radio Unit.
22
23     Copyright 2019 the O-RAN Alliance.
24
25     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
26     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35     POSSIBILITY OF SUCH DAMAGE.
36
37     Redistribution and use in source and binary forms, with or without
38     modification, are permitted provided that the following conditions are met:
39
40     * Redistributions of source code must retain the above copyright notice,
41     this list of conditions and the above disclaimer.
42     * Redistributions in binary form must reproduce the above copyright notice,
43     this list of conditions and the above disclaimer in the documentation
44     and/or other materials provided with the distribution.
45     * Neither the Members of the O-RAN Alliance nor the names of its
46     contributors may be used to endorse or promote products derived from
47     this software without specific prior written permission.";
48
49   revision "2019-07-03" {
50     description
51       "version 2.0.0
52
53       1) introduction of reporting for QSFP.
54       2) backward compatible changes to introduce groupings.";
55
56     reference "ORAN-WG4.M.0-v02.00";
57   }
58
59   revision "2019-02-04" {
60     description
61       "version 1.0.0
62
63       1) imported model from xRAN
64       2) changed namespace and reference from xran to o-ran";
65
66     reference "ORAN-WG4.M.0-v01.00";
67   }
68
69
70   // Groupings
71
72   grouping transceiver-group {
73     list port-transceiver-data {
74       key "interface-name port-number";
75       description "data recovered from port transceivers";
76       leaf interface-name {
77         type leafref {
78           path "/if:interfaces/if:interface/if:name";
79         }
80         description "Name of interface";
81       }
82       leaf port-number {
83         type leafref {
84           path "/if:interfaces/if:interface[if:name = current()/../interface-name]" + "/o-ran-int:port-reference/o-ran-int:port-number";
85         }
86         description
87         "A number which identifies a port. In case of SFP/SFP+
88         port, port number value is 0 to N-1 where N is number of ports
89         in the device. Numbers 0 to N-1 are assigned to ports in order
90         following order of labels on the device (labels for ports are
91         not necessarily numbers starting from zero)";
92       }
93
94       leaf name {
95         type string {
96           length "1..255";
97         }
98         description
99           "A name that is unique across the O-RU that identifies a transceiver instance.
100           This name may be used in fault management to refer to a fault source
101           or affected object";
102       }
103
104       leaf present {
105         type boolean;
106         config false;
107         mandatory true;
108         description
109           "Indicates if pluggable transceiver module is present.";
110       }
111
112       leaf vendor-id {
113         type string {
114           length 1..16;
115         }
116         config false;
117         description
118           "Name of the transciever vendor Full name of transceiver vendor,
119           that contains ASCII characters, left-aligned with
120           any padding on the right with ASCII spaces (20h), or ASCII nul
121           (00h) removed, and ASCII less-than (3Ch) replaced with ASCII
122           open-brace (7Bh) and ASCII more-than (3Eh) replaced with ASCII
123           close-brace (7Dh).
124
125           Optional node included when the NETCONF Server has determined
126           the vendor ID.";
127       }
128
129       leaf vendor-part {
130         type string {
131           length 1..16;
132         }
133         config false;
134         description
135           "Transceiver vendors part number, that contains ASCII characters,
136           left-aligned with any padding on the right with ASCII spaces
137           (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
138           replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
139           replaced with ASCII close-brace (7Dh).
140
141           Optional node included when the NETCONF Server has determined
142           the vendor part number.";
143       }
144
145       leaf vendor-rev {
146         type string {
147           length 1..2;
148         }
149         config false;
150         description
151           "Transceiver vendors revision number. 2-octet field that
152           contains ASCII characters.
153
154           Optional node included when the NETCONF Server has determined
155           the vendor revision number";
156       }
157
158       leaf serial-no {
159         type string {
160           length 1..16;
161         }
162         config false;
163         description
164           "Transceiver serial number encoded using ASCII characters,
165           left-aligned with any padding on the right with ASCII spaces
166           (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
167           replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
168           replaced with ASCII close-brace (7Dh).
169
170           Optional node included when the NETCONF Server has determined
171           the serial number.";
172       }
173
174       leaf SFF8472-compliance-code {
175         type enumeration {
176           enum diagnostics-undefined {
177             description "undefined compliance code";
178           }
179           enum rev9.3-diagnostics {
180             description "diagnostics published 08-01-02";
181           }
182           enum rev9.5-diagnostics{
183             description "diagnostics published 06-01-04";
184           }
185           enum rev10.2-diagnostics{
186             description "diagnostics published 06-01-07";
187           }
188           enum rev11.0-diagnostics{
189             description "diagnostics published 05-21-10";
190           }
191           enum rev11.3-diagnostics{
192             description "diagnostics published 06-11-13";
193           }
194           enum rev11.4-diagnostics{
195             description "diagnostics published 07-24-14";
196           }
197           enum rev12.0-diagnostics{
198             description "diagnostics published 08-28-14";
199           }
200         }
201         config false;
202         description
203           "Indication of which feature set(s) are
204           implemented in the transceiver from Byte 94 of address A0h
205           https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF
206
207           Optional node included when the NETCONF Server has determined
208           the compliance code.";
209
210         reference "https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF";
211       }
212
213        leaf connector-type {
214         type enumeration {
215           enum unknown {
216             description "encoded as 00h in Table 4-3 of SFF-8024";
217           }
218           enum subscrber-connector {
219             description "encoded as 01h in Table 4-3 of SFF-8024";
220           }
221           enum fiber-jack {
222             description "encoded as 06h in Table 4-3 of SFF-8024";
223           }
224           enum lucent-connector {
225             description "encoded as 07h in Table 4-3 of SFF-8024";
226           }
227           enum mt-rj {
228             description "encoded as 08h in Table 4-3 of SFF-8024";
229           }
230           enum multiple-optical {
231             description "encoded as 09h in Table 4-3 of SFF-8024";
232           }
233           enum sg {
234             description "encoded as 0Ah in Table 4-3 of SFF-8024";
235           }
236           enum optical-pigtail {
237             description "encoded as 0Bh in Table 4-3 of SFF-8024";
238           }
239           enum multi-fiber-parralel-optic-1x12 {
240             description "encoded as 0Ch in Table 4-3 of SFF-8024";
241           }
242           enum multi-fiber-parralel-optic-2x16 {
243             description "encoded as 0Dh in Table 4-3 of SFF-8024";
244           }
245           enum hssdc_2{
246             description "encoded as 20h in Table 4-3 of SFF-8024";
247           }
248           enum copper-pigtail{
249             description "encoded as 21h in Table 4-3 of SFF-8024";
250           }
251           enum rj45{
252             description "encoded as 22h in Table 4-3 of SFF-8024";
253           }
254           enum no-separable-connector{
255             description "encoded as 23h in Table 4-3 of SFF-8024";
256           }
257           enum mxc-2x16{
258             description "encoded as 24h in Table 4-3 of SFF-8024";
259           }
260         }
261         config false;
262         // TOCHECK: Remove any enumerations which are not applicable
263         description
264           "Connector-type indicates the external optical or electrical cable
265           connector provided as the media interface as defined in the connector
266           types derived from table 4-3 in SFF-8024.
267
268           Optional node included when the NETCONF Server has determined
269           the connector type.";
270         reference "https://ta.snia.org/higherlogic/ws/public/document?document_id=944";
271       }
272
273       leaf identifier {
274         type enumeration {
275           enum unknown {
276             description "encoded as 00h in Table 4-1 of SFF-8024";
277           }
278           enum gbic {
279             description "encoded as 01h in Table 4-1 of SFF-8024";
280           }
281           enum soldered {
282             description "encoded as 02h in Table 4-1 of SFF-8024";
283           }
284           enum sfp {
285             description "encoded as 03h in Table 4-1 of SFF-8024";
286           }
287           enum xbi {
288             description "encoded as 04h in Table 4-1 of SFF-8024";
289           }
290           enum xenpack {
291             description "encoded as 05h in Table 4-1 of SFF-8024";
292           }
293           enum xfp {
294             description "encoded as 06h in Table 4-1 of SFF-8024";
295           }
296           enum xff {
297             description "encoded as 07h in Table 4-1 of SFF-8024";
298           }
299           enum xfp-e {
300             description "encoded as 08h in Table 4-1 of SFF-8024";
301           }
302           enum xpak {
303             description "encoded as 09h in Table 4-1 of SFF-8024";
304           }
305           enum x2 {
306             description "encoded as 0Ah in Table 4-1 of SFF-8024";
307           }
308           enum dwdm-sfp {
309             description "encoded as 0Bh in Table 4-1 of SFF-8024";
310           }
311           enum qsfp {
312             description "encoded as 0Ch in Table 4-1 of SFF-8024";
313           }
314           enum qsfp+ {
315             description "encoded as 0Dh in Table 4-1 of SFF-8024";
316           }
317         }
318         config false;
319         description
320           "Connector identifier as defined in the identifer
321           types derived from table 4-1 in SFF-8024.
322
323           Optional node included when the NETCONF Server has determined
324           the identifier type.";
325         reference "https://members.snia.org/document/dl/26423";
326       }
327
328       leaf nominal-bitrate {
329         type uint32;
330         config false;
331         description
332           "Nominal bitrate in Mb/s (10^6 bits per second).
333           If needed actual value is rounded to nearest integer.
334
335           Optional node included when the NETCONF Server has determined
336           the nominal bit rate.";
337       }
338
339       leaf low-bitrate-margin {
340         type uint8;
341         config false;
342         description
343           "Minimum supported bitrate as percentage of nominal bitrate
344           below nominal bitrate.
345
346           Optional node included when the NETCONF Server has determined
347           the low bit rate margin";
348       }
349
350       leaf high-bitrate-margin {
351         type uint8;
352         config false;
353         description
354           "Maximum supported bitrate as percentage of nominal bitrate
355           above nominal bitrate.
356
357           Optional node included when the NETCONF Server has determined
358           the high bitrate margin.";
359       }
360
361       leaf rx-power-type {
362         type enumeration {
363           enum oma {
364             description "oma = optical modulation amplitude";
365           }
366           enum avp{
367             description "avp = average power";
368           }
369         }
370         config false;
371         description
372           "Receieved power measurement type
373           oma = optical modulation amplitude
374           avp = average power
375
376           Optional node included when the NETCONF Server has determined
377           the rx power type.";
378       }
379
380       leaf rx-power {
381         type decimal64{
382           fraction-digits 4;
383         }
384         config false;
385         description
386           "Measured RX input power in mW.
387
388           Optional node included when the NETCONF Server has determined
389           the measured RX power.
390
391           If operating with QSFP, this power corresponds to that of
392           Lane/Channel 1.";
393       }
394
395       leaf tx-power {
396         type decimal64{
397           fraction-digits 4;
398         }
399         config false;
400         description
401           "Measured coupled TX output power in mW.
402
403           Optional node included when the NETCONF Server has determined
404           the measured coupled TX power.";
405       }
406
407       leaf tx-bias-current {
408         type decimal64{
409           fraction-digits 4;
410         }
411         config false;
412         description
413           "Measured transmitter laser bias current in mA.
414
415           Optional node included when the NETCONF Server has determined
416           the tx bias current.
417
418           If operating with QSFP, this bias current corresponds to that of
419           Lane/Channel 1.";
420       }
421
422       leaf voltage {
423         type decimal64{
424           fraction-digits 4;
425         }
426         config false;
427         description
428           "Internally measured supply voltage in mV.
429
430           Optional node included when the NETCONF Server has determined
431           the internally measured voltage.";
432       }
433
434       leaf temperature {
435         type decimal64 {
436           fraction-digits 4;
437         }
438         config false;
439         description
440           "Internally measured module temperature in degrees Celcius.
441
442           Optional node included when the NETCONF Server has determined
443           the temperature.";
444       }
445
446       list additional-multi-lane-reporting {
447         when "(../identifier ='qsfp')or(../identifier ='qsfp+')";
448         config false;
449         description
450           "Additional reporting according to SFF8436 which specifies real time
451           channel monitoring for each transmit and receive channel and includes
452           optical input power and Tx bias current. ";
453         key lane;
454         leaf lane {
455           type uint8 {
456             range "2..4";
457           }
458           description
459             "the specific lane/channel associated with the report parameters";
460         }
461         leaf rx-power {
462           type decimal64{
463             fraction-digits 4;
464           }
465           config false;
466           description
467             "Measured RX input power in mW.
468
469             Optional node included when the NETCONF Server has determined
470             the measured RX power for a particular lane/channel
471             - see tabel 7-10 of SFF-8636.";
472         }
473         leaf tx-bias-current {
474           type decimal64{
475             fraction-digits 4;
476           }
477           config false;
478           description
479             "Measured transmitter laser bias current in mA.
480
481             Optional node included when the NETCONF Server has determined
482             the tx bias current for a particular lane/channel
483             - see tabel 7-10 of SFF-8636.";
484         }
485         leaf tx-power {
486           type decimal64{
487             fraction-digits 4;
488           }
489           config false;
490           description
491             "Measured coupled TX output power in mW.
492
493             Optional node included when the NETCONF Server has determined
494             the measured coupled TX power or a particular lane/channel
495             - see tabel 7010 of SFF-8636.";
496         }
497       }
498     }
499
500   }
501
502   // Top Level Container
503
504   container port-transceivers {
505     description
506       "Container for Port transceiver information.
507       Leaf nodes providing  parameters status and diagnostic
508       information for pluggable transceiver module (like SFP,
509       SFP+, SFP28)";
510
511     uses transceiver-group;
512   }
513 }