Bias current limits misread

Hi all,

I’m having a strange issue with one port on a Cisco Nexus 7706, N77-F348XP-23 linecard. It is alarming for low bias current, however it appears that LibreNMS is misreading the bias current limits for this particular port (and this particular port only, all other ports on the linecard it’s reading correctly). It seems to be taking the high alarm as the low limit.

Screenshot:

From the switch:

# show int e1/22 transceiver details
Ethernet1/22
    transceiver is present
    type is 10Gbase-SR
    name is OEM
    part number is SFP-10G-SR
    revision is
    serial number is 202212051370
    nominal bitrate is 10300 MBit/sec
    Link length supported for 50/125um OM2 fiber is 82 m
    Link length supported for 50/125um OM3 fiber is 300 m
    cisco id is 3
    cisco extended id number is 4
    cisco part number is 10-2415-02
    cisco product id is SFP-10G-SR
    cisco vendor id is V02
    number of lanes 1

           SFP Detail Diagnostics Information (internal calibration)
  ----------------------------------------------------------------------------
                Current              Alarms                  Warnings
                Measurement     High        Low         High          Low
  ----------------------------------------------------------------------------
  Temperature   41.25 C        95.00 C    -50.00 C     85.00 C      -40.00 C
  Voltage        3.38 V         3.59 V      3.00 V      3.50 V        3.09 V
  Current        6.76 mA       15.00 mA     0.00 mA    12.00 mA       0.00 mA
  Tx Power      -1.66 dBm       3.00 dBm   -9.29 dBm    2.00 dBm     -7.30 dBm
  Rx Power      -2.18 dBm       3.00 dBm  -13.09 dBm    2.00 dBm    -11.10 dBm
  Transmit Fault Count = 0
  ----------------------------------------------------------------------------
  Note: ++  high-alarm; +  high-warning; --  low-alarm; -  low-warning

Here’s my validate.php output: -bash-4.2$ ./validate.php===========================================Componen - Pastebin.com

I have manually updated the threshold values so that it doesn’t alarm, however I am curious as to where LibreNMS is getting those values. If I do a “reset” for the port to go back to default, it immediately alarms again.

Any help is greatly appreciated!

Is there a way to fetch the limits? I’m currently working on Transceiver Support by murrant · Pull Request #16165 · librenms/librenms · GitHub and didn’t see a way to fetch limits.

I don’t know of any way to fetch the limits from LibreNMS if that’s what you’re asking, just to manually update them. The limits from Cisco are above from the show transciever details, which is what I used to manually update LibreNMS.

No, I mean to fetch the limits from the switch. I don’t think it is possible. Likely the limits you are looking at are guessed and looking at the initial value on the graphs it being wonky made the guess bad.

Sorry I’m confused now. Are you saying that the measured values, as well as the high and low limits that I posted from the switch in the original post are guessed by Cisco?

No. I’m saying only the bias value is collected from the switch.

LibreNMS has a feature where it guesses limits if they are not supplied by the device or statically in the os definition. It is based on the value returned by the switch when it is first discovered. If that first value was odd the guessed values will be off.

You can manually set the limits. Which I suggest you do based on the manufacturers limits.

Some devices return the limits that are in the transceiver’s eeprom via snmp, which means the limits will then be accurate. That is not the case for your device.

In summary, the Cisco switch knows the limits but won’t give them to LibreNMS because there is no way to get them via SNMP.

(My question was asking if the values are available via SNMP)