BLOG

Reporting Optical Signal Level

Reporting Optical Signal Level

Let's have a look on Optical Signal Level that is reported by ONT.

First of all - ONTs receive signal @1490nm and transmit @1310nm. To be able to synchronize receiver, the signal level must be better than -28dBm. Well, I've seen situations when -30 was still ok and without errors, but it strictly depends on the particular ONT's optical receiver unit.

Each receiver is different, each laser is different - that's why calibration for each unit is done in a factory, and unique calibration parameters are written in EEPROM/flash to be used by an optical driver (LDD)... Let's say I will discuss all that optical hardware in another chapter later on – so stay tuned!

OMCI MIB - quite important to be remembered - has no relation to SNMP MIBs, so if you don't know what it is, reset your mind for a second.

OMCI (ONT Management Control Interface) is a protocol used for signaling exchange between OLT and ONT. Like - OLT may want to create a datapath that will be used for internet transmission, or OLT wants to check ONT's LAN port state or other ONT's parameters, like - RX signal level @1490nm. For all of that (and much more) - OMCI applies.

OMCI MIBs is a database, set of database objects, with entries that have some predefined meaning. MIB object can be public (defined in ITU-T like G.988 specification) or private (not defined in ITU-T, but with ID that is in a range of private IDs defined by ITU-T).

In standard OMCI implementations, to cover Optical Signal Level - public OMCI MIB is used. The name of that MIB is Ani-G (Access Network Interface, G - GPON). Its specification can be found in ITU-T G.988 document, and in real ONT it looks like that:

 # omcicli mib get Anig
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 Anig
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 =================================
 EntityID: 0x8001
 SRInd: 1
 NumOfTcont: 31
 GemBlkLen: 48
 PbDbaRpt: 0
 OnuDbaRpt: 0
 SFThreshold: 5
 SDThreshold: 9
 ARC: 0
 ARCInterval: 0
 OpticalSignalLevel: 0xdb3b
 LowOpThreshold: 0xff
 UppOpThreshold: 0xff
 OntRspTime: 35000
 TranOpticLevel: 0x047c
 LowTranPowThreshold: 0x81
 UppTranPowThreshold: 0x81
 LowDflRxThreshold: 0x38
 UppDflRxThreshold: 0x10
 LowDflTxThreshold: 0xf8
 UppDflTxThreshold: 0x06
 =================================
 #
 
    Let's look at 2 bolded parameters:
  • EntityID: - 0x8001 - it is shortened number of that interface. It consists of a slot (0x80) and a number (0x01). In most cases this value is 0x8001, but I have seen ONTs where Ani-G used 0x8000, and also, much worse 0x0000... that is also a story for a separate chapter;
  • OpticalSigalLevel: - this is what we will focus on - 16bits (2bytes) value that magically contains RX Signal level that ONT reads from an optical module.
Currently, value read from the receiver is:
 # diag
 RTK.0> pon get transceiver rx-power
 Rx Power: -18.827108 dBm
 
So we have OpticalSignalLevel: 0xdb3b and Rx Power: -18.827108 dBm
 

Now, let's focus on a magic formula changing floating point value to raw hex in Ani-G.

G.988 contains such description:

 
"Optical signal level: This attribute reports the current measurement of the total downstream optical signal level. Its value is a 2s complement integer referred to 1 mW (i.e., 1 dBm), with 0.002 dB granularity. (R) (optional) (2 bytes)."
 
Actually, it's quite simple. Let's say that:
 rx_float = -18.827108
 OpticalSignalLevel = (INT16)(rx_float * 500) = (INT16)(-9413.554) = 0xdb3b
 
On the other side - OLT does reversed operation:
 Olt_show_value = OpticalSignalLevel / 500 = -18.826 dBm
 
As you can see, we are losing a bit of how precise the number is, however - this is still very accurate.
 

And - technically - how does this OMCI communication look?

OLT sends GET message, after which ONT responds with values. Example:
 
(parsed messages below)
 
Request:
 
 0x00aa AnigGet(0x8001,SRInd,NumOfTcont,GemBlkLen,PbDbaRpt,OnuDbaRpt,SFThreshold,SDThreshold,ARC,ARCInterval,
OpticalSignalLevel,LowOpThreshold,UppOpThreshold,OntRspTime,TranOpticLevel,LowTranPowThreshold,UppTranPowThreshold)
 
Response:
 
 0x00aa AnigGetRsp(0x8001,Result=0x0,SRInd=0x01,NumOfTcont=0x001f,GemBlkLen=0x0030,PbDbaRpt=0x00,
OnuDbaRpt=0x00,SFThreshold=0x05,SDThreshold=0x09,ARC=0x00,ARCInterval=0x00,OpticalSignalLevel=0xdb3b,
LowOpThreshold=0xff,UppOpThreshold=0xff,OntRspTime=0x88b8,TranOpticLevel=0x04c9,LowTranPowThreshold=0x81,
UppTranPowThreshold=0x81)
 
(raw hex message below)
 
Request:
 
 80 aa 49 0a 01 07 80 01 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 5a e3 81 a3
 
Response:
 
 80 aa 29 0a 01 07 80 01 00 ff ff 01 00 1f 00 30 00 00 05 09 00 00 db 3b ff ff 88 b8 04 c9 81 81 00 00 00 00 00 00 00 00 00 00 00 28 72 fc 30 50
 
(examples are dumps of communication between Dasan OLT and Leox ONT)
 
OLT output below:
 
 DASAN-OLT-V5824G(config-gpon-olt[1])# show onu info 9
 ----------------------------------------------------------------------------------
 OLT | ONU | STATUS | Serial No. | Distance | Rx Power | Profile
 ----------------------------------------------------------------------------------
 1 | 9 | Active | LEOXff000002 | 193m | - 18.8 dBm | LXT-240W-F
 DASAN-OLT-V5824G(config-gpon-olt[1])#
 
However, as Ani-G is mandatory, not all OLTs use this simple GET method. Some of them also use (and some of them ONLY) - another method of handling Ani-G - it is called TEST. Ani-G TEST method can deliver much more transceiver-related information and....
 

.... it is covered in the next chapter - Optical signal level and other parameters in test procedure!

 
If you have any questions about reporting Optical Signal Level, or other questions related to PON in your fiber network  – we will gladly help, just let us know - contact@leolabs.pl