Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-transceiver@2022-12-05.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 "2022-12-05" {
50     description
51       "version 11.0.0
52
53       1) enable more than one interface to be accessible through a transceiver";
54
55     reference "ORAN-WG4.M.0-v11.00";
56   }
57
58
59   revision "2022-08-15" {
60     description
61       "version 10.0.0
62
63       1) introduced new SFP compliance codes and updated references";
64
65     reference "ORAN-WG4.M.0-v10.00";
66   }
67
68   revision "2021-12-01" {
69     description
70       "version 2.1.0
71
72       1) typographical corrections in descriptions
73       2) clarifying vendor name follows SFF 8472";
74
75     reference "ORAN-WG4.M.0-v02.00";
76   }
77
78
79   revision "2019-07-03" {
80     description
81       "version 2.0.0
82
83       1) introduction of reporting for QSFP.
84       2) backward compatible changes to introduce groupings.";
85
86     reference "ORAN-WG4.M.0-v02.00";
87   }
88
89   revision "2019-02-04" {
90     description
91       "version 1.0.0
92
93       1) imported model from xRAN
94       2) changed namespace and reference from xran to o-ran";
95
96     reference "ORAN-WG4.M.0-v01.00";
97   }
98
99
100   // Groupings
101
102   grouping transceiver-group {
103     description "a transceiver grouping";
104     list port-transceiver-data {
105       key "interface-name port-number";
106       description
107       "Data recovered from port transceivers.
108       A single entry in the list is created per transceiver.";
109       leaf interface-name {
110         type leafref {
111           path "/if:interfaces/if:interface/if:name";
112         }
113         description
114         "Name of an interface accessible through the transceiver.
115
116         If operating with a QSFP, then the interface corresponds
117         to an interface accessible through the lane/channel 1 of the QSFP.
118
119         If more than one interface is accessible through the transceiver
120         or the lane/channel 1 of the QSFP, then O-RU arbitrarily chooses
121         the referenced interface instance.";
122       }
123
124       leaf port-number {
125         type leafref {
126           path "/if:interfaces/if:interface[if:name = current()/../interface-name]" + "/o-ran-int:port-reference/o-ran-int:port-number";
127         }
128         description
129         "A number which identifies a port. In case of SFP/SFP+
130         port, port number value is 0 to N-1 where N is number of ports
131         in the device. Numbers 0 to N-1 are assigned to ports in order
132         following order of labels on the device (labels for ports are
133         not necessarily numbers starting from zero)";
134       }
135
136       leaf-list interface-names {
137         type leafref {
138           path "/if:interfaces/if:interface/if:name";
139         }
140         description
141         "Names of all interfaces accessible through the transceiver.
142
143         If operating with a QSFP, then the interfaces correspond
144         to all interfaces accessible through the lane/channel 1 of the QSFP.
145
146         O-RU provides the values only if more than one interface is
147         accessible through the transceiver or the lane/channel 1 of the QSFP.";
148       }
149
150       leaf name {
151         type string {
152           length "1..255";
153         }
154         description
155           "A name that is unique across the O-RU that identifies a transceiver instance.
156           This name may be used in fault management to refer to a fault source
157           or affected object";
158       }
159
160       leaf present {
161         type boolean;
162         config false;
163         mandatory true;
164         description
165           "Indicates if pluggable transceiver module is present.";
166       }
167
168       leaf vendor-id {
169         type string {
170           length 1..16;
171         }
172         config false;
173         description
174           "Name of the transceiver vendor Full name of transceiver vendor,
175           that contains ASCII characters, left-aligned with
176           any padding on the right with ASCII spaces (20h), or ASCII nul
177           (00h) removed, and ASCII less-than (3Ch) replaced with ASCII
178           open-brace (7Bh) and ASCII more-than (3Eh) replaced with ASCII
179           close-brace (7Dh).
180
181           Optional node included when the NETCONF Server has determined
182           the vendor ID. When used, the content of this schema node
183           follows the definition of Vendor name field in SFF-8472.";
184       }
185
186       leaf vendor-part {
187         type string {
188           length 1..16;
189         }
190         config false;
191         description
192           "Transceiver vendors part number, that contains ASCII characters,
193           left-aligned with any padding on the right with ASCII spaces
194           (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
195           replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
196           replaced with ASCII close-brace (7Dh).
197
198           Optional node included when the NETCONF Server has determined
199           the vendor part number. When used, the content of this schema node
200           follows the definition of Vendor PN field in SFF-8472.";
201       }
202
203       leaf vendor-rev {
204         type string {
205           length 1..2;
206         }
207         config false;
208         description
209           "Transceiver vendors revision number. 2-octet field that
210           contains ASCII characters.
211
212           Optional node included when the NETCONF Server has determined
213           the vendor revision number. When used, the content of this schema
214           node follows the definition of Vendor Rev field in SFF-8472.";
215       }
216
217       leaf serial-no {
218         type string {
219           length 1..16;
220         }
221         config false;
222         description
223           "Transceiver serial number encoded using ASCII characters,
224           left-aligned with any padding on the right with ASCII spaces
225           (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
226           replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
227           replaced with ASCII close-brace (7Dh).
228
229           Optional node included when the NETCONF Server has determined
230           the serial number.";
231       }
232
233       leaf SFF8472-compliance-code {
234         type enumeration {
235           enum diagnostics-undefined {
236             description "undefined compliance code";
237           }
238           enum rev9.3-diagnostics {
239             description "diagnostics published 08-01-02";
240           }
241           enum rev9.5-diagnostics{
242             description "diagnostics published 06-01-04";
243           }
244           enum rev10.2-diagnostics{
245             description "diagnostics published 06-01-07";
246           }
247           enum rev11.0-diagnostics{
248             description "diagnostics published 05-21-10";
249           }
250           enum rev11.3-diagnostics{
251             description "diagnostics published 06-11-13";
252           }
253           enum rev11.4-diagnostics{
254             description "diagnostics published 07-24-14";
255           }
256           enum rev12.0-diagnostics{
257             status deprecated;
258             description
259               "diagnostics published 08-28-14
260                Note: Deprecated as it does not exists in SFF-8472 v12.4";
261           }
262           enum rev10.4-diagnostics{
263             description "diagnostics published 30-01-09";
264           }
265           enum rev12.3-diagnostics{
266             description "diagnostics published 29-07-18";
267           }
268           enum rev12.4-diagnostics{
269             description "diagnostics published 31-03-21";
270           }
271         }
272         config false;
273         description
274           "Indication of which feature set(s) are
275           implemented in the transceiver from Byte 94 of address A0h
276           https://members.snia.org/document/dl/25916 v12.4
277
278           Optional node included when the NETCONF Server has determined
279           the compliance code.";
280
281         reference "https://members.snia.org/document/dl/25916";
282       }
283
284        leaf connector-type {
285         type enumeration {
286           enum unknown {
287             description "encoded as 00h in Table 4-3 of SFF-8024";
288           }
289           enum subscrber-connector {
290             description "encoded as 01h in Table 4-3 of SFF-8024";
291           }
292           enum fiber-jack {
293             description "encoded as 06h in Table 4-3 of SFF-8024";
294           }
295           enum lucent-connector {
296             description "encoded as 07h in Table 4-3 of SFF-8024";
297           }
298           enum mt-rj {
299             description "encoded as 08h in Table 4-3 of SFF-8024";
300           }
301           enum multiple-optical {
302             description "encoded as 09h in Table 4-3 of SFF-8024";
303           }
304           enum sg {
305             description "encoded as 0Ah in Table 4-3 of SFF-8024";
306           }
307           enum optical-pigtail {
308             description "encoded as 0Bh in Table 4-3 of SFF-8024";
309           }
310           enum multi-fiber-parralel-optic-1x12 {
311             description "encoded as 0Ch in Table 4-3 of SFF-8024";
312           }
313           enum multi-fiber-parralel-optic-2x16 {
314             description "encoded as 0Dh in Table 4-3 of SFF-8024";
315           }
316           enum hssdc_2{
317             description "encoded as 20h in Table 4-3 of SFF-8024";
318           }
319           enum copper-pigtail{
320             description "encoded as 21h in Table 4-3 of SFF-8024";
321           }
322           enum rj45{
323             description "encoded as 22h in Table 4-3 of SFF-8024";
324           }
325           enum no-separable-connector{
326             description "encoded as 23h in Table 4-3 of SFF-8024";
327           }
328           enum mxc-2x16{
329             description "encoded as 24h in Table 4-3 of SFF-8024";
330           }
331         }
332         config false;
333         // TOCHECK: Remove any enumerations which are not applicable
334         description
335           "Connector-type indicates the external optical or electrical cable
336           connector provided as the media interface as defined in the connector
337           types derived from table 4-3 in SFF-8024.
338
339           Optional node included when the NETCONF Server has determined
340           the connector type.";
341         reference "https://ta.snia.org/higherlogic/ws/public/document?document_id=944";
342       }
343
344       leaf identifier {
345         type enumeration {
346           enum unknown {
347             description "encoded as 00h in Table 4-1 of SFF-8024";
348           }
349           enum gbic {
350             description "encoded as 01h in Table 4-1 of SFF-8024";
351           }
352           enum soldered {
353             description "encoded as 02h in Table 4-1 of SFF-8024";
354           }
355           enum sfp {
356             description "encoded as 03h in Table 4-1 of SFF-8024";
357           }
358           enum xbi {
359             description "encoded as 04h in Table 4-1 of SFF-8024";
360           }
361           enum xenpack {
362             description "encoded as 05h in Table 4-1 of SFF-8024";
363           }
364           enum xfp {
365             description "encoded as 06h in Table 4-1 of SFF-8024";
366           }
367           enum xff {
368             description "encoded as 07h in Table 4-1 of SFF-8024";
369           }
370           enum xfp-e {
371             description "encoded as 08h in Table 4-1 of SFF-8024";
372           }
373           enum xpak {
374             description "encoded as 09h in Table 4-1 of SFF-8024";
375           }
376           enum x2 {
377             description "encoded as 0Ah in Table 4-1 of SFF-8024";
378           }
379           enum dwdm-sfp {
380             description "encoded as 0Bh in Table 4-1 of SFF-8024";
381           }
382           enum qsfp {
383             description "encoded as 0Ch in Table 4-1 of SFF-8024";
384           }
385           enum qsfp+ {
386             description "encoded as 0Dh in Table 4-1 of SFF-8024";
387           }
388         }
389         config false;
390         description
391           "Connector identifier as defined in the identifier
392           types derived from table 4-1 in SFF-8024.
393
394           Optional node included when the NETCONF Server has determined
395           the identifier type.";
396         reference "https://members.snia.org/document/dl/26423";
397       }
398
399       leaf nominal-bitrate {
400         type uint32;
401         config false;
402         description
403           "Nominal bitrate in Mb/s (10^6 bits per second).
404           If needed actual value is rounded to the nearest integer.
405
406           Optional node included when the NETCONF Server has determined
407           the nominal bit rate.";
408       }
409
410       leaf low-bitrate-margin {
411         type uint8;
412         config false;
413         description
414           "Minimum supported bitrate as percentage of nominal bitrate
415           below nominal bitrate.
416
417           Optional node included when the NETCONF Server has determined
418           the low bit rate margin";
419       }
420
421       leaf high-bitrate-margin {
422         type uint8;
423         config false;
424         description
425           "Maximum supported bitrate as percentage of nominal bitrate
426           above nominal bitrate.
427
428           Optional node included when the NETCONF Server has determined
429           the high bitrate margin.";
430       }
431
432       leaf rx-power-type {
433         type enumeration {
434           enum oma {
435             description "oma = optical modulation amplitude";
436           }
437           enum avp{
438             description "avp = average power";
439           }
440         }
441         config false;
442         description
443           "Received power measurement type
444           oma = optical modulation amplitude
445           avp = average power
446
447           Optional node included when the NETCONF Server has determined
448           the rx power type.";
449       }
450
451       leaf rx-power {
452         type decimal64{
453           fraction-digits 4;
454         }
455         config false;
456         description
457           "Measured RX input power in mW.
458
459           Optional node included when the NETCONF Server has determined
460           the measured RX power.
461
462           If operating with QSFP, this power corresponds to that of
463           Lane/Channel 1.";
464       }
465
466       leaf tx-power {
467         type decimal64{
468           fraction-digits 4;
469         }
470         config false;
471         description
472           "Measured coupled TX output power in mW.
473
474           Optional node included when the NETCONF Server has determined
475           the measured coupled TX power.";
476       }
477
478       leaf tx-bias-current {
479         type decimal64{
480           fraction-digits 4;
481         }
482         config false;
483         description
484           "Measured transmitter laser bias current in mA.
485
486           Optional node included when the NETCONF Server has determined
487           the tx bias current.
488
489           If operating with QSFP, this bias current corresponds to that of
490           Lane/Channel 1.";
491       }
492
493       leaf voltage {
494         type decimal64{
495           fraction-digits 4;
496         }
497         config false;
498         description
499           "Internally measured supply voltage in mV.
500
501           Optional node included when the NETCONF Server has determined
502           the internally measured voltage.";
503       }
504
505       leaf temperature {
506         type decimal64 {
507           fraction-digits 4;
508         }
509         config false;
510         description
511           "Internally measured module temperature in degrees Celsius.
512
513           Optional node included when the NETCONF Server has determined
514           the temperature.";
515       }
516
517       list additional-multi-lane-reporting {
518         when "(../identifier ='qsfp')or(../identifier ='qsfp+')";
519         key lane;
520         config false;
521         description
522           "Additional reporting according to SFF8436 which specifies real time
523           channel monitoring for each transmit and receive channel and includes
524           optical input power and Tx bias current. ";
525
526         leaf lane {
527           type uint8 {
528             range "2..4";
529           }
530           description
531             "the specific lane/channel associated with the report parameters";
532         }
533         leaf-list interface-names {
534           type leafref {
535             path "/if:interfaces/if:interface/if:name";
536           }
537           description
538           "Names of all interfaces accessible through a particular lane/channel.";
539         }
540         leaf rx-power {
541           type decimal64{
542             fraction-digits 4;
543           }
544           config false;
545           description
546             "Measured RX input power in mW.
547
548             Optional node included when the NETCONF Server has determined
549             the measured RX power for a particular lane/channel
550             - see tabel 7-10 of SFF-8636.";
551         }
552         leaf tx-bias-current {
553           type decimal64{
554             fraction-digits 4;
555           }
556           config false;
557           description
558             "Measured transmitter laser bias current in mA.
559
560             Optional node included when the NETCONF Server has determined
561             the tx bias current for a particular lane/channel
562             - see tabel 7-10 of SFF-8636.";
563         }
564         leaf tx-power {
565           type decimal64{
566             fraction-digits 4;
567           }
568           config false;
569           description
570             "Measured coupled TX output power in mW.
571
572             Optional node included when the NETCONF Server has determined
573             the measured coupled TX power or a particular lane/channel
574             - see tabel 7010 of SFF-8636.";
575         }
576       }
577     }
578
579   }
580
581   // Top Level Container
582
583   container port-transceivers {
584     description
585       "Container for Port transceiver information.
586       Leaf nodes providing  parameters status and diagnostic
587       information for pluggable transceiver module (like SFP,
588       SFP+, SFP28)";
589
590     uses transceiver-group;
591   }
592 }