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 are looking for FTTx/xPON experts community to join, check out our - LinkedIn group, founded to exchange knowledge and connect people in ICT industry. 
 
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