Juniper SFP-SX RX Power sensor limits

Hi,

We’re getting a few RX power sensor limit errors for Juniper devices, but mostly for SFP-SX transceivers (2 different models). One of those examples is a QFX MX router, which, as you can see, has all the same SFPs in it:

> show chassis hardware
Hardware inventory:
Item             Version  Part number  Serial number     Description
[...]
FPC 0                     BUILTIN      BUILTIN           MPC BUILTIN
  MIC 0          REV 16   750-049846   CAGN9112          3D 20x 1GE(LAN)-E,SFP
    PIC 0                 BUILTIN      BUILTIN           10x 1GE(LAN) -E  SFP
      Xcvr 0     REV 01   740-031851   AM16332JV1N       SFP-SX
      Xcvr 1     REV 01   740-031851   AM16332JVUF       SFP-SX
      Xcvr 4     REV 01   740-031851   AM16332JVS6       SFP-SX
      Xcvr 5     REV 01   740-031851   AM16332JVBF       SFP-SX
    PIC 1                 BUILTIN      BUILTIN           10x 1GE(LAN) -E  SFP
      Xcvr 0     REV 01   740-031851   AM16332JV16       SFP-SX
      Xcvr 1     REV 01   740-031851   AM16332JV1G       SFP-SX
      Xcvr 4     REV 01   740-031851   AM16332JV1H       SFP-SX
      Xcvr 5     REV 01   740-031851   AM16332JVT6       SFP-SX

If I check the SNMP Warning thresholds, their current values are all between the high/low warning levels:

$ snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx  .1.3.6.1.4.1.2636.3.60.1.1.1.1.12
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.512 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.513 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.516 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.517 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.522 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.523 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.526 = INTEGER: -1698 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.527 = INTEGER: -1698 0.01 dbm

$ snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx  .1.3.6.1.4.1.2636.3.60.1.1.1.1.11
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.512 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.513 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.516 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.517 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.522 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.523 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.526 = INTEGER: 0 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerHighWarningThreshold.527 = INTEGER: 0 0.01 dbm


$ snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx  .1.3.6.1.4.1.2636.3.60.1.1.1.1.5
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.512 = INTEGER: -621 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.513 = INTEGER: -579 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.516 = INTEGER: -462 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.517 = INTEGER: -590 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.522 = INTEGER: -476 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.523 = INTEGER: -581 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.526 = INTEGER: -549 0.01 dbm
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower.527 = INTEGER: -554 0.01 dbm

And the interface indexes, as you can see below, map to the following interface names:

IF-MIB::ifName.512 = STRING: ge-0/0/0
IF-MIB::ifName.513 = STRING: ge-0/0/1
IF-MIB::ifName.516 = STRING: ge-0/0/4
IF-MIB::ifName.517 = STRING: ge-0/0/5
IF-MIB::ifName.522 = STRING: ge-0/1/0
IF-MIB::ifName.523 = STRING: ge-0/1/1
IF-MIB::ifName.526 = STRING: ge-0/1/4
IF-MIB::ifName.527 = STRING: ge-0/1/5

And although the values are above the warning thresholds, I still get alarms for the RX Power:

The TX value is OK (which part of it had been fixed in #7056), but looking at that file, it looks like they are looking at the right values, unless I don’t understand it well enough (which could be the case :slight_smile: )

If you need any additional information, please let me know.

Thanks again!

I dug a little deeper on this issue and figured out the issue, which is Juniper related… Basically, I missed an important detail in my original post. Although the jnxDomCurrentRxLaserPowerLowWarningThreshold is reported properly, the jnxDomCurrentRxLaserPowerLowAlarmThreshold is the source of the problem.

If I look at one of the 10G interfaces, even from within the device’s CLI, everything is fine:

> show interfaces diagnostics optics xe-0/0/16
[...]
Laser rx power high alarm threshold       :  1.5849 mW / 2.00 dBm
Laser rx power low alarm threshold        :  0.0407 mW / -13.90 dBm
Laser rx power high warning threshold     :  0.7943 mW / -1.00 dBm
Laser rx power low warning threshold      :  0.1023 mW / -9.90 dBm

The SNMP values are also OK:

$ snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx jnxDomCurrentRxLaserPowerLowWarningThreshold.527
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.527 = INTEGER: -990 0.01 dbm
$  snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx jnxDomCurrentRxLaserPowerLowAlarmThreshold.527
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowAlarmThreshold.527 = INTEGER: -1390 0.01 dbm

However, if I look at this SFP-SX interface, already from the CLI something is fishy for the Laser rx power low alarm threshold:

> show interfaces diagnostics optics ge-0/0/12
[...]
Laser rx power high alarm threshold       :  1.8000 mW / 2.55 dBm
Laser rx power low alarm threshold        :  0.0000 mW / - Inf dBm
Laser rx power high warning threshold     :  1.0000 mW / 0.00 dBm
Laser rx power low warning threshold      :  0.0200 mW / -16.99 dBm

And then looking at the SNMP values explains the source of the problem:

$ snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx jnxDomCurrentRxLaserPowerLowWarningThreshold.523
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowWarningThreshold.523 = INTEGER: -1698 0.01 dbm
$  snmpwalk -v2c -c xxxxxxxxxx -m +JUNIPER-DOM-MIB xxx.xxx.xxx.xxx jnxDomCurrentRxLaserPowerLowAlarmThreshold.523
JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPowerLowAlarmThreshold.523 = INTEGER: 0 0.01 dbm

So basically, they give out a low warning value, but a low alert value of 0, which is of course above the negative dbm value reported by the jnxDomCurrentRxLaserPower value.

I’ve also validated and the database had been properly populated with those values by the discovery process.

I’ll therefore follow-up with Juniper and see why they can’t provide a proper alert value, cause I think we had it working at some point for those SFPs, so it could be another firmware issue.