Monitoring Interfaces and Transceivers with NVUE

NVUE enables you to check the status of an interface, and view and clear interface counters. Interface counters provide information about an interface, such as the number of packets dropped, the number of inbound and outbound packets not transmitted because of errors, and so on.

Show Interface Configuration and Statistics

To check the configuration and statistics for an interface, run the nv show interface <interface-id> command:

cumulus@switch:~$ nv show interface swp1
                          operational        applied  pending
------------------------  -----------------  -------  -------
type                       swp                swp      
[acl]                                                  
evpn                                                   
  multihoming                                          
    uplink                                    off      
ptp                                                    
  enable                                      off      
router                                                 
  adaptive-routing                                     
    enable                                    off      
  ospf                                                 
    enable                                    on       
    area                                      none     
    cost                                      auto     
    mtu-ignore                                off      
    network-type                              broadcast
    passive                                   on       
    priority                                  1        
    authentication                                     
      enable                                  off      
    bfd                                                
      enable                                  off      
    timers                                             
      dead-interval                           40       
      hello-interval                          10       
      retransmit-interval                     5        
      transmit-delay                          1        
  ospf6                                                
    enable                                    off      
  pbr                                                  
    [map]                                              
  pim                                                  
    enable                                    off      
synce                                                  
  enable                                      off      
ip                                                     
  igmp                                                 
    enable                                    off      
  ipv4                                                 
    forward                                   on       
  ipv6                                                 
    enable                                    on       
    forward                                   on       
  neighbor-discovery                                   
    enable                                    on       
    [dnssl]                                            
    home-agent                                         
      enable                                  off      
    [prefix]                                           
    [rdnss]                                            
    router-advertisement                               
      enable                                  on       
      fast-retransmit                         on       
      hop-limit                               64       
      interval                                600000   
      interval-option                         off      
      lifetime                                1800     
      managed-config                          off      
      other-config                            off      
      reachable-time                          0        
      retransmit-time                         0        
      router-preference                       medium   
  vrrp                                                 
    enable                                    off      
  vrf                                         default  
  [gateway]                                            
link                                                   
  auto-negotiate           disabled           enabled       
  duplex                   full               full     
  speed                    1G                 auto     
  fec                                         auto     
  mtu                      9216               9216     
  [breakout]                                           
  physical-name            swp1c1c2                    
  state                    up                 up       
  stats                                                
    carrier-transitions    4                           
    in-bytes               300 Bytes                   
    in-drops               5                           
    in-errors              0                           
    in-pkts                5                           
    out-bytes              9.73 MB
    out-drops              0                           
    out-errors             0                           
    out-pkts               140188                      
  mac                      48:b0:2d:ef:52:b8           
ifindex                    3

Show Interface Counters

NVUE provides the following commands to show counters (statistics) for the interfaces on the switch.

NVUE Command
Description
nv show interface --view counters Shows all statistics for all the interfaces configured on the switch, such as the total number of received and transmitted packets, and the number of received and transmitted dropped packets and error packets.
nv show interface <interface-id> counters Shows all statistics for a specific interface, such as the number of received and transmitted unicast, multicast and broadcast packets, the number of received and transmitted dropped packets and error packets, and the number of received and transmitted packets of a certain size.
nv show interface <interface-id> counters errors Shows the number of error packets for a specific interface, such as the number of received and transmitted packet alignment, oversize, undersize, and jabber errors.
nv show interface <interface-id> counters drops Shows the number of received and transmitted packet drops for a specific interface, such as ACL drops, buffer drops, queue drops, and non-queue drops.
nv show interface <interface-id> counters pktdist Shows the number of received and transmitted packets of a certain size for a specific interface.
nv show interface <interface-id> counters qos Shows QoS statistics for the specified interface. See Show Qos Counters.
nv show interface <interface-id> counters ptp Shows PTP statistics for a specific interface. See Show PTP Counters.

The following example shows all statistics for all the interfaces configured on the switch:

cumulus@switch$ nv show interface --view counters
Interface       MTU    RX_OK  RX_ERR  RX_DRP  RX_OVR  TX_OK  TX_ERR  TX_DRP  TX_OVR  Flg  
--------------  -----  -----  ------  ------  ------  -----  ------  ------  ------  -----
BLUE            65575  1      0       0       0       0      0       4       0       OmRU 
RED             65575  1      0       0       0       0      0       4       0       OmRU 
bond1           9000   718    0       0       0       1091   0       0       0       BMmRU
bond2           9000   727    0       0       0       1088   0       0       0       BMmRU
bond3           9000   722    0       0       0       1089   0       0       0       BMmRU
br_default      9216   360    0       10      0       475    0       0       0       BMRU 
eth0            1500   946    0       0       0       299    0       0       0       BMRU 
lo              65536  651    0       0       0       651    0       0       0       LRU  
mgmt            65575  283    0       0       0       0      0       4       0       OmRU 
peerlink        9216   4972   0       0       0       5028   0       0       0       BMmRU
peerlink.4094   9216   3263   0       0       0       3224   0       0       0       BMRU 
swp1            9000   721    0       0       0       1091   0       0       0       BMsRU
swp2            9000   730    0       0       0       1088   0       0       0       BMsRU
swp3            9000   725    0       0       0       1089   0       0       0       BMsRU
swp49           9216   2807   0       0       0       2691   0       0       0       BMsRU
swp50           9216   2165   0       0       0       2337   0       0       0       BMsRU
swp51           9216   685    0       0       0       690    0       0       0       BMRU 
swp52           9216   703    0       0       0       722    0       0       0       BMRU 
swp53           9216   738    0       0       0       710    0       0       0       BMRU 
swp54           9216   682    0       0       0       730    0       0       0       BMRU 
vlan10          9216   108    0       20      0       91     0       0       0       BMRU 
vlan10-v0       9216   63     0       20      0       45     0       0       0       BMRU 
vlan20          9216   104    0       20      0       88     0       0       0       BMRU 
vlan20-v0       9216   58     0       20      0       44     0       0       0       BMRU 
vlan30          9216   112    0       20      0       94     0       0       0       BMRU 
vlan30-v0       9216   61     0       20      0       44     0       0       0       BMRU 
vlan4024_l3     9216   1      0       0       0       82     0       0       0       BMRU 
vlan4024_l3-v0  9216   0      0       0       0       36     0       0       0       BMRU 
vlan4036_l3     9216   1      0       0       0       85     0       0       0       BMRU 
vlan4036_l3-v0  9216   0      0       0       0       37     0       0       0       BMRU 
vxlan48         9216   45     0       0       0       21     0       0       0       BMRU

The following example shows all statistics for swp1:

cumulus@switch$ nv show interface swp1 counters
                     operational  applied
-------------------  -----------  -------
carrier-transitions  4                   

Detailed Counters
====================
    Counter            Receive  Transmit
    -----------------  -------  --------
    Broadcast Packets  0        0       
    Multicast Packets  0        0       
    Total Octets       0        0       
    Total Packets      0        0       
    Unicast Packets    0        0       

Drop Counters
================
    Counter          Receive  Transmit
    ---------------  -------  --------
    ACL Drops        0        n/a     
    Buffer Drops     0        n/a     
    Non-Queue Drops  n/a      0       
    Queue Drops      n/a      0       
    Total Drops      0        0       

Error Counters
=================
    Counter           Receive  Transmit
    ----------------  -------  --------
    Alignment Errors  0        n/a     
    FCS Errors        0        n/a     
    Jabber Errors     0        n/a     
    Length Errors     0        n/a     
    Oversize Errors   0        n/a     
    Symbol Errors     0        n/a     
    Total Errors      0        0       
    Undersize Errors  0        n/a     

Packet Size Statistics
=========================
    Counter     Receive  Transmit
    ----------  -------  --------
    64          0        0       
    65-127      0        0       
    128-255     0        0       
    256-511     0        0       
    512-1023    0        0       
    1024-1518   0        0       
    1519-2047   0        0       
    2048-4095   0        0       
    4096-16383  0        0

Ingress Buffer Statistics
============================
    priority-group  rx-frames  rx-buffer-discards  rx-shared-buffer-discards
    --------------  ---------  ------------------  -------------------------
    0               0          0 Bytes             0 Bytes                  
    1               0          0 Bytes             0 Bytes                  
    2               0          0 Bytes             0 Bytes                  
    3               0          0 Bytes             0 Bytes                  
    4               0          0 Bytes             0 Bytes                  
    5               0          0 Bytes             0 Bytes                  
    6               0          0 Bytes             0 Bytes                  
    7               0          0 Bytes             0 Bytes 
...

The following example shows error counters for swp1:

cumulus@switch$ nv show interface swp1 counters errors
Counter           Receive  Transmit
----------------  -------  --------
Alignment Errors  0        n/a     
FCS Errors        0        n/a     
Jabber Errors     0        n/a     
Length Errors     0        n/a     
Oversize Errors   0        n/a     
Symbol Errors     0        n/a     
Total Errors      0        0       
Undersize Errors  0        n/a   

  • NVUE does not show detailed statistics for logical interfaces, such as bonds, VLAN interfaces or subinterfaces. To see basic statistics for logical interfaces, run the nv show interface <interface-id> link stats command.
  • On NVIDIA Spectrum switches, Cumulus Linux updates physical counters to the kernel every two seconds and virtual interfaces (such as VLAN interfaces) every ten seconds. You cannot change these values. Because the update process takes a lower priority than other switchd processes, the interval might be longer when the system is under a heavy load.

Interface Fault Detection

You can view interface status along with any detected local or remote fault with the nv show interface status command:

cumulus@switch:mgmt:~$ nv show interface status

Interface  Admin Status  Oper Status  Protodown  Protodown Reason  Fault  
---------  ------------  -----------  ---------  ----------------  --------
...
swp45      up            down         disabled                     Local Fault  
swp46      up            down         disabled                     Remote Fault
swp47      down          down         disabled                     No Fault   
swp48      down          down         disabled                     No Fault 
...

To view additional fault information for a specific interface, run the nv show interface <interface> link phy detail command:

cumulus@switch:mgmt:~$ nv show interface swp45 link phy detail
                                  operational       
--------------------------------  -------------------
...
linkdown-reason-code-local        23                
linkdown-reason-status-local      CABLE_WAS_UNPLUGGED
linkdown-reason-code-remote       1                 
linkdown-reason-status-remote     UNKNOWN_REASON
...

  • Interface fault detection is supported on NVIDIA Spectrum-4 and later platforms.
  • Fault status reported by the nv show interface status command is only supported on physical switch ports and breakout interfaces. Fault state is not applicable to logical interfaces such as VLAN sub-interfaces, SVIs, loopback interfaces, VRF interfaces, and bonds.
  • Fault detection data is not retained across reboots or when the switchd service is restarted.

AmBER PHY Health Management

To show physical layer information, such as the error counters for each lane on a port and SNR information for media and host lanes (lane0 through lane7), run the nv show interface <interface-id> link phy health command.

This command highlights link integrity issues.

The nv show interface <interface-id> link phy health command shows SNR information for media and host lanes for OSFP 100G per lane capable transceivers on certain switches with the Spectrum-4 ASIC and later. The command does not show SNR information for SFP28 bonus ports.

  • For lanes not in use for the optical cable, the command output shows 0.
  • For copper ports, the command output shows n/a.

The effective-ber in the command output represents the uncorrectable bit error rate, which is the same as uncorrected FEC errors.

cumulus@switch$ nv show interface swp1 link phy health
                           operational  
-------------------------  -------------
time-since-last-clear-min  1            
symbol-errors              0            
symbol-ber                 15E-255      
raw-ber                    15E-255      
phy-received-bits          6214400000000
effective-errors           0            
effective-ber              15E-255      

Lane Stats
=============
    Lane  raw-ber  snr-host   snr-media  phy-raw-errors
    ----  -------  ---------  ---------  --------------
    0     15E-255  22.32 dB   23.14 dB   0             
    1     15E-255  25.24 dB   22.47 dB   0             
    2     15E-255  21.18 dB   22.30 dB   0             
    3     15E-255  25.12 dB   25.01 dB   0             
    4     15E-255  24.50 dB   24.62 dB   0             
    5     15E-255  0     dB   0     dB   0             
    6     15E-255  25    dB   24.62 dB   0             
    7     15E-255  22.18 dB   23.48 dB   0

To show a tabular summary of PHY health statistics for all switch port interfaces in a single command, such as the error counters for all ports, run the nv show interface --view ber command:

cumulus@switch$ nv show interface --view ber
Interface  Eff-BER  Raw-BER  Sym-BER  Sym-Errs  Eff-Errs  Last-Clr(min) 
---------  -------  -------  -------  --------  --------  -------------
swp1       15E-255  15E-255  15E-255  0         0         1            
swp2       15E-255  15E-255  15E-255  0         0         1            
swp3       15E-255  15E-255  15E-255  0         0         1            
swp49      15E-255  15E-255  15E-255  0         0         1            
swp50      15E-255  15E-255  15E-255  0         0         1            
swp51      15E-255  15E-255  15E-255  0         0         1            
swp52      15E-255  15E-255  15E-255  0         0         1            
swp53      15E-255  15E-255  15E-255  0         0         1            
swp54      15E-255  15E-255  15E-255  0         0         1 
  • To filter the view for a range of interfaces, use the --filter option; for example, the nv show interface --view ber --filter "*>=swp49&*<=swp54" command shows PHY health statistics for swp49 through swp54.
  • To show the information in json format, use the -o json option; for example, the nv show interface --view ber --filter "*>=swp49&*<=swp54" -o json command shows PHY health statistics for swp49 through swp54 in json format.

To show physical layer diagnostic information for a port, run the nv show interface <interface-id> link phy detail command:

cumulus@switch$ nv show interface swp2 link phy detail 
                                  operational
--------------------------------  -----------
loopback-mode                     0          
fec-mode-request                  4          
module-info-ext                   0          
ethernet-compliance-code          128        
ext-ethernet-compliance-code      24         
memory-map-rev                    7          
module-fw-version                 538837258  
module-st                         0          
error-code-response               0          
cable-proto-cap-ext               0          
cable-rx-amp                      0          
cable-rx-pre-emphasis             0          
cable-rx-post-emphasis            0          
cable-tx-equalization             0          
cable-attenuation-53g             0          
cable-attenuation-25g             0          
cable-attenuation-12g             0          
cable-attenuation-7g              0          
cable-attenuation-5g              0          
pd-fsm-state                      8          
eth-an-fsm-state                  6          
phy-hst-fsm-state                 0          
psi-fsm-state                     0          
retran-mode-request               0          
retran-mode-active                0          
profile-fec-in-use                4          
pd-link-enabled                   16744453   
phy-hst-link-enabled              0          
eth-an-link-enabled               97452034   
phy-manager-state                 3          
eth-proto-admin                   0          
ext-eth-proto-admin               0          
eth-proto-capability              0          
ext-eth-proto-capability          0          
data-rate-oper                    0          
an-status                         0          
an-disable-admin                  0          
proto-mask                        2          
linear-direct-drive               0          
cable-breakout                    16         
rx-output-valid                   0          
rx-power-type                     1          
active-set-host-compliance-code   0          
active-set-media-compliance-code  0          
mod-fw-fault                      0          
dp-fw-fault                       0          
rx-los-cap                        0          
tx-ad-eq-fault                    0          
rx-output-valid-change            0          
tx-input-freq-sync                0          
tx-cdr-state                      15         
rx-cdr-state                      15         
phy-manager-link-enabled          6130       
core-to-phy-link-enabled          754        
zero-hist                         0          
linkdown-reason-code-local        -1         
linkdown-reason-status-local      N/A        
linkdown-reason-code-remote       -1         
linkdown-reason-status-remote     N/A

Datapath State
=================
    Lane  DP St Lanes
    ----  -----------
    0     0          
    1     0          
    2     0          
    3     0          
    4     0          
    5     0          
    6     0          
    7     0

Switches with the Spectrum 1 ASIC do not support the nv show interface <interface-id> link phy health command or the nv show interface <interface-id> link phy detail command.

Clear Interface Counters

To clear counters (statistics) for all interfaces, run the nv action clear interface counters command.

cumulus@switch$ nv action clear interface counters
all interface counters cleared
Action succeeded

To clear the counters for an interface, run the nv action clear interface <interface-id> counters command:

cumulus@switch$ nv action clear interface swp1 counters
swp1 counters cleared
Action succeeded

The nv action clear interface <interface-id> counters command does not clear counters in the hardware.

Clear Interface Physical Layer Error Counters

To clear interface physical layer error counters, run the nv action clear interface <interface-id> link phy health command. The command clears the counters at the software level, but not the hardware level.

cumulus@switch:~$ nv action clear interface swp1 link phy health
Action executing ... 
swp1 link phy health counters cleared. 
Action succeeded

To clear physical layer error counters for a range of interfaces:

cumulus@switch:~$ nv action clear interface swp1-3,swp5,swp7-10 link phy health 
Action executing ...
swp1 link phy health counters cleared.
Action executing ...
swp2 link phy health counters cleared.
swp3 link phy health counters cleared.
Action executing ...
swp5 link phy health counters cleared.
swp7 link phy health counters cleared.
Action executing ...
swp8 link phy health counters cleared.
swp9 link phy health counters cleared.
swp10 link phy health counters cleared.

If the specified interface is out of range; for example, if the switch supports up to 32 switch ports but you try to clear swp33, NVUE displays an error.

The nv action clear interface <interface-id> link phy health command does not clear counters in the hardware.

Reset a Transceiver

NVUE provides a command to reset a specific transceiver to its initial, stable state without having to be present physically in the data center to pull the transceiver.

The following example resets the transceiver in swp1:

cumulus@switch:~$ nv action reset platform transceiver swp1 
Action executing ... 
Resetting module swp1 ... OK 
Action succeeded 

The following example resets a range of transceivers:

cumulus@switch:~$ nv action reset platform transceiver swp1-3 
Action executing ... 
Resetting module swp1 ... OK 
Action executing ... 
Resetting module swp2 ... OK 
Action executing ... 
Resetting module swp3 ... OK 
Action succeeded 

The following example resets the transceiver in swp5 and swp7:

cumulus@switch:~$ nv action reset platform transceiver swp5,swp7 
Action executing ... 
Resetting module swp5 ... OK 
Action executing ... 
Resetting module swp7 ... OK 
Action executing ... 
Action succeeded 

When the reset completes successfully, you see syslog messages similar to the following:

2024-12-06T07:12:37.996339+00:00 cumulus nvue-port-reset: The module reset was successfully completed on swp1

  • To reset a transceiver on a split port, specify the parent port; for example, to reset swp1s0, run the nv action reset platform transceiver swp1 command.
  • If a cable is faulty, the nv action reset platform transceiver <transceiver-id command completes successfully, but the details of the transceiver do not show until you resolve the issue or reboot the system if necessary,

Manage Transceiver Firmware

You can show and install firmware for a transceiver module directly through NVUE.

To show the current firmware version for a transceiver, upgrade status, and the firmware files available, run the nv show platform transceiver <transceiver-id> firmware command:

cumulus@switch:~$ nv show platform transceiver swp1 firmware
                     operational
-------------------  ---------------------
actual-firmware      38.100.121
fw-upgrade-status    ok
[files]              fw-rel-38_100_121.bin
[files]              fw-rel-38_100_122.bin

To show only the available firmware files and their paths, run the nv show platform transceiver <transceiver-id> firmware files command. Add a file name to show a single file:

cumulus@switch:~$ nv show platform transceiver swp1 firmware files
Available Firmware Files  File Path
-------------------------  --------------------------------------------------------------
fw-rel-38_100_121.bin      /etc/fae_platform_firmware/transceiver/fw-rel-38_100_121.bin
fw-rel-38_100_122.bin      /tmp/firmware_downloads/transceiver/fw-rel-38_100_122.bin

To install a firmware file on a transceiver module, run the nv action install platform transceiver <transceiver-id> firmware files <file> command:

cumulus@switch:~$ nv action install platform transceiver swp1 firmware files fw-rel-38_100_121.bin
Action executing ...
Burning fw-rel-38_100_121.bin on swp1 ...
Firmware burned on swp1 (mt4129_pciconf0_cable_0). Reset the module or power cycle the system to activate it
Action succeeded

Installing firmware on a transceiver does not activate it immediately. Reset the transceiver, or power cycle the switch, to bring the new firmware into use.

If the specified file is not staged for that transceiver, the action fails:

cumulus@switch:~$ nv action install platform transceiver swp1 firmware files fw-rel-38_100_121.bin
Action executing ...
Action failed
Firmware file not found: fw-rel-38_100_121.bin

Transceiver Thermal Control

To optimize transceiver thermal performance and maintain a cooler operating environment before reaching critical temperatures, you can set temperature thresholds for fan activation in the FAN algorithm, ensuring that they are below the module’s high warning threshold.

Lowering the thresholds leads to earlier and more frequent fan operation, increasing power usage and noise but protecting hardware performance and lifespan.

Setting the temperature thresholds does not change the module EEPROM-based alarm thresholds. The optical module continues reporting temperature alarms based on alarms or warning thresholds preprogrammed in the transceiver EEPROM.

Setting the temperature thresholds without proper guidance can result in transceiver damage, and might void your warranty and support agreements. This is an advanced configuration task; NVIDIA recommends you use the default transceiver temperature settings. Only modify this setting with approval from NVIDIA Technical Support.

  • You can set temperature thresholds on the SN5610 switch only.
  • Always use the parent transceiver name for configuration; for example, use swp1 not swp1s0.

To set the temperature threshold for a single port, run the nv set platform transceiver <transceiver-id> temperature setpoint command. You can set a value between 30 and 80. The temperature threshold for an interface must be below the module advertised high warning threshold. If you configure the setpoint to be above the module advertised high temperature warning threshold, the FAN algorithm uses the module advertised threshold.

cumulus@switch:~$ nv set platform transceiver swp2 temperature setpoint 60 
cumulus@switch:~$ nv config apply

To set the temperature threshold for a group of ports:

cumulus@switch:~$ nv set platform transceiver swp2-10 temperature setpoint 60 
cumulus@switch:~$ nv config apply

To set the temperature threshold for a group of comma-separated ports:

cumulus@switch:~$ nv set platform transceiver swp1,4,5,30 temperature setpoint 65
cumulus@switch:~$ nv config apply

  • When you set the temperature threshold, the hardware management service (hw-managament-tc.service) and switchd restart.
  • If you try to set the temperature threshold above the module advertised high temperature warning or if the module is not DOM capable, Cumulus Linux reports an invalid configuration warning.

To unset the temperature threshold and return to the default value, run the nv unset platform transceiver <transceiver-id> temperature setpoint command.

If you run the nv unset platform command, the switch clears out the temperature setpoints for all ports.

To verify the temperature threshold configuration for a port, run the nv show platform transceiver <transceiver-id> temperature command:

cumulus@switch:~$ nv show platform transceiver swp1 temperature 
          operational  applied 
--------  -----------  ------- 
setpoint  60           60 

The nv show platform transceiver <transceiver-id> command also shows the temperature threshold for the specified port. See below.

Show Transceiver Information

To show the identifier, vendor name, part number, serial number, and revision for all modules, run the nv show platform transceiver command:

cumulus@switch:~$ nv show platform transceiver 
Transceiver  Identifier  Vendor name  Vendor PN         Vendor SN      Vendor revision
-----------  ----------  -----------  ----------------  -------------  --------------- 
swp1         QSFP28      Mellanox     MCP1600-C001E30N  MT2039VB01185  A3 
swp10        QSFP28      Mellanox     MCP1600-C001E30N  MT2211VS01792  A3 
swp11        QSFP28      Mellanox     MCP1600-C001E30N  MT2211VS01792  A3 
swp12        QSFP28      Mellanox     MCP1650-V00AE30   MT2122VB02220  A2 
swp13        QSFP28      Mellanox     MCP1650-V00AE30   MT2122VB02220  A2 
swp14        QSFP-DD     Mellanox     MCP1660-W00AE30   MT2121VS01645  A3 
swp15        QSFP-DD     Mellanox     MCP1660-W00AE30   MT2121VS01645  A3 
swp18        QSFP28      Mellanox     MCP1600-C001E30N  MT2211VS01967  A3 
swp20        QSFP28      Mellanox     MFA1A00-C003      MT2108FT02204  B2 
swp21        QSFP28      Mellanox     MFA1A00-C003      MT2108FT02204  B2 
swp22        QSFP28      Mellanox     MFA1A00-C003      MT2108FT02194  B2 
swp23        QSFP28      Mellanox     MFA1A00-C003      MT2108FT02194  B2 
swp31        QSFP28      Mellanox     MCP1600-C001E30N  MT2039VB01191  A3 

To show a detailed view of module information for all ports that includes cable length, type, and diagnostics, current status and error status, run the nv show platform transceiver details command.

To show hardware capabilities and measurement information on the module in a particular port, run the nv show platform transceiver <transceiver-id> command:

cumulus@switch:~$ nv show platform transceiver swp2
cable-type             : Active cable 
cable-length           : 3m 
supported-cable-length : 0m om1, 0m om2, 0m om3, 3m om4, 0m om5 
diagnostics-status     : Diagnostic Data Available 
status                 : plugged_enabled 
error-status           : N/A 
vendor-date-code       : 210215__ 
identifier             : QSFP28 
vendor-rev             : B2 
vendor-name            : Mellanox 
vendor-pn              : MFA1A00-C003 
vendor-sn              : MT2108FT02204 
temperature: 
  temperature           : 42.56 C 
  high-alarm-threshold  : 80.00 C 
  low-alarm-threshold   : -10.00 C 
  high-warning-threshold: 70.00 C 
  low-warning-threshold : 0.00 C
  temperature-setpoint  : 60.00 C
  alarm                 : Off 
voltage: 
  voltage               : 3.2862 V 
  high-alarm-threshold  : 3.5000 V 
  low-alarm-threshold   : 3.1000 V 
  high-warning-threshold: 3.4650 V 
  low-warning-threshold : 3.1350 V
  alarm                 : Off 
channel: 
  channel-1: 
    rx-power: 
        power                 : 0.8625 mW / -0.64 dBm 
        high-alarm-threshold  : 5.40 dBm 
        low-alarm-threshold   : -13.31 dBm 
        high-warning-threshold: 2.40 dBm 
        low-warning-threshold : -10.30 dBm 
        alarm                 : Off 
    tx-power: 
        power                 : 0.8988 mW / -0.46 dBm 
        high-alarm-threshold  : 5.40 dBm 
        low-alarm-threshold   : -11.40 dBm 
        high-warning-threshold: 2.40 dBm 
        low-warning-threshold : -8.40 dBm 
        alarm                 : Off 
    tx-bias-current: 
        current               : 6.750 mA 
        high-alarm-threshold  : 8.500 mA 
        low-alarm-threshold   : 5.492 mA 
        high-warning-threshold: 8.000 mA 
        low-warning-threshold : 6.000 mA 
        alarm                 : Off
...  

  • The nv show platform transceiver commands show information for front panel physical ports only (for example swp1). The commands do not show information for logical ports, such as SVIs, bonds, or eth0.
  • To show information for subinterfaces; run the nv show interface <subinterface> transceiver commands.

You can also show transceiver data in a more condensed format with the nv show interface <interface-id> transceiver command:

cumulus@switch:~$ nv show interface swp1 transceiver
cable-type             : Active cable 
cable-length           : 3m 
supported-cable-length : 0m om1, 0m om2, 0m om3, 3m om4, 0m om5 
diagnostics-status     : Diagnostic Data Available 
status                 : plugged_enabled 
error-status           : N/A 
revision-compliance    : SFF-8636 Rev 2.5/2.6/2.7 
vendor-date-code       : 210215__ 
identifier             : QSFP28 
vendor-rev             : B2 
vendor-oui             : 00:02:c9 
vendor-name            : Mellanox 
vendor-pn              : MFA1A00-C003 
vendor-sn              : MT2108FT02204 
temperature            : 42.56 degrees C / 108.61 degrees F 
voltage                : 3.2888 V 
ch-1-rx-power          : 0.8625 mW / -0.64 dBm 
ch-1-tx-power          : 0.8988 mW / -0.46 dBm 
ch-1-tx-bias-current   : 6.750 mA 
ch-2-rx-power          : 0.8385 mW / -0.76 dBm 
ch-2-tx-power          : 0.9154 mW / -0.38 dBm 
ch-2-tx-bias-current   : 6.750 mA 
ch-3-rx-power          : 0.8556 mW / -0.68 dBm 
ch-3-tx-power          : 0.9537 mW / -0.21 dBm 
ch-3-tx-bias-current   : 6.750 mA 
ch-4-rx-power          : 0.8576 mW / -0.67 dBm 
ch-4-tx-power          : 0.9695 mW / -0.13 dBm 
ch-4-tx-bias-current   : 6.750 mA 

To show channel information for the module in a particular port, run the nv show platform transceiver <transceiver-id> channel command. To show specific channel information for the module in a particular port, run the nv show platform transceiver <transceiver-id> channel <channel-id> command.

cumulus@switch:~$ nv show platform transceiver swp25 channel 
channel: 
  channel-1: 
    rx-power: 
        power                 : 0.8625 mW / -0.64 dBm 
        high-alarm-threshold  : 5.40 dBm 
        low-alarm-threshold   : -13.31 dBm 
        high-warning-threshold: 2.40 dBm 
        low-warning-threshold : -10.30 dBm 
        alarm                 : Off 
    tx-power: 
        power                 : 0.8988 mW / -0.46 dBm 
        high-alarm-threshold  : 5.40 dBm 
        low-alarm-threshold   : -11.40 dBm 
        high-warning-threshold: 2.40 dBm 
        low-warning-threshold : -8.40 dBm 
        alarm                 : Off 
    tx-bias-current: 
        current               : 6.750 mA 
        high-alarm-threshold  : 8.500 mA 
        low-alarm-threshold   : 5.492 mA 
        high-warning-threshold: 8.000 mA 
        low-warning-threshold : 6.000 mA 
        alarm                 : Off 
  channel-2: 
    rx-power: 
        power                 : 0.8385 mW / -0.76 dBm 
        high-alarm-threshold  : 5.40 dBm 
        low-alarm-threshold   : -13.31 dBm 
        high-warning-threshold: 2.40 dBm 
        low-warning-threshold : -10.30 dBm 
        alarm                 : Off 
    tx-power: 
        power                 : 0.9154 mW / -0.38 dBm 
        high-alarm-threshold  : 5.40 dBm 
        low-alarm-threshold   : -11.40 dBm 
        high-warning-threshold: 2.40 dBm 
        low-warning-threshold : -8.40 dBm 
        alarm                 : Off
...

To show the thresholds for the module for a specific interface, run the nv show interface <interface-id> transceiver thresholds command:

cumulus@switch:~$ nv show interface swp3 transceiver thresholds
                     Ch    Value          High Alarm       High Warn        Low Warn       Low Alarm       Alt Value 
                                          Threshold        Threshold       Threshold       Threshold 
------------------------------------------------------------------------------------------------------------------------ 
temperature          -     42.74 C         80.00 C         70.00 C         0.00 C          -10.00 C        108.94F 
voltage              -     3.2862 V        3.5000 V        3.4650 V        3.1350 V        3.1000 V 
rx-power             1     -0.64 dBm       5.40 dBm        2.40 dBm        -10.30 dBm      -13.31 dBm      0.8625 mW 
                     2     -0.70 dBm       5.40 dBm        2.40 dBm        -10.30 dBm      -13.31 dBm      0.8514 mW 
                     3     -0.68 dBm       5.40 dBm        2.40 dBm        -10.30 dBm      -13.31 dBm      0.8556 mW 
                     4     -0.60 dBm       5.40 dBm        2.40 dBm        -10.30 dBm      -13.31 dBm      0.8704 mW 
tx-power             1     -0.48 dBm       5.40 dBm        2.40 dBm        -8.40 dBm       -11.40 dBm      0.8963 mW 
                     2     -0.38 dBm       5.40 dBm        2.40 dBm        -8.40 dBm       -11.40 dBm      0.9154 mW 
                     3     -0.19 dBm       5.40 dBm        2.40 dBm        -8.40 dBm       -11.40 dBm      0.9562 mW 
                     4     -0.13 dBm       5.40 dBm        2.40 dBm        -8.40 dBm       -11.40 dBm      0.9695 mW 
tx-bias-current      1     6.750 mA        8.500 mA        8.000 mA        6.000 mA        5.492 mA 
                     2     6.750 mA        8.500 mA        8.000 mA        6.000 mA        5.492 mA 
                     3     6.750 mA        8.500 mA        8.000 mA        6.000 mA        5.492 mA 
                     4     6.750 mA        8.500 mA        8.000 mA        6.000 mA        5.492 mA 

Show CPO Module and Laser Source Information

On a switch with co-packaged optics (CPO), the optics sit inside the switch ASIC package instead of in pluggable modules in the front panel ports, so optical data no longer maps to a single port. Cumulus Linux exposes this hardware through two new commands: nv show platform cpo, which holds the CPO modules, and nv show platform laser-source, which holds the external laser sources (ELS). Use these commands to inspect module state, per-channel optical power, and per-laser health when you suspect an optical fault.

A CPO module contains two optical engines (OE) and 32 lanes, which the CLI shows as channels. Each laser source is one ELS driving eight lasers. Cumulus Linux reads the mapping between ports, channels, and lasers from the switch firmware instead of assuming a fixed ratio, so the mapping can differ between platforms.

  • The nv show platform cpo and nv show platform laser-source commands are available on CPO platforms only. On other platforms, use the nv show platform transceiver commands described earlier.
  • CPO and laser source data is read-only. There is nothing to configure.
  • On a switch with more than one ASIC, these commands show the CPO modules for every ASIC.
  • When a module is absent, the entry can still appear with whatever subcomponent state is available. Cumulus Linux does not report a missing value as valid data.
  • When part of a module fails, the operational channels and lasers continue to report, and the failed components show an error status.
  • When Cumulus Linux cannot read or parse a value, it shows N/A or 0 for that field and logs the error instead of returning a stale or synthetic value. Run the command again to retry the read.
  • Interface state does not affect these readings. Bringing an interface down, or changing its IP or VLAN configuration, does not change the underlying optical measurements.

Show CPO Modules

To show a summary of every CPO module on the switch, including its status, firmware version, the ports it carries, and the laser source and optical engines it uses, run the nv show platform cpo command:

cumulus@switch:~$ nv show platform cpo
CPO   Status    Error-status         FW Version  Ports      Laser Source  Optical Engines
----  --------  -------------------  ----------  ---------  ------------  ---------------
cpo1  inserted  fiber contaminated   42.40.15    swp1-swp4  els1          oe1, oe2
cpo2  inserted  N/A                  42.40.15    swp5-swp8  els2          oe3, oe4

To show all the data for one module, run the nv show platform cpo <cpo-id> command. The output covers all 32 channels of both optical engines, so it runs to between 100 and 200 lines:

cumulus@switch:~$ nv show platform cpo cpo1
status         : inserted
error-status   : fiber contaminated
identifier     : CPO Virtual Module
fw-version     : 42.40.15
ports          : swp1,swp2,swp3,swp4
laser-source   : els1
optical-engine:
  oe1:
    identifier   : OE 16x
    serial-number: MT2219FT03171
    temperature  : 36.8
  oe2:
    identifier   : OE 16x
    serial-number: MT2219FT031712
    temperature  : 36.8
threshold:
  laser-source-input-power:
    high-alarm  : 2.0
    low-alarm   : -6.0
    high-warning: 1.0
    low-warning : -5.0
  rx-power:
    high-alarm  : 2.0
    low-alarm   : -8.0
    high-warning: 1.0
    low-warning : -7.0
  tx-power:
    high-alarm  : 2.0
    low-alarm   : -6.0
    high-warning: 1.0
    low-warning : -5.0
channel:
  channel-1:
    laser-source-input-power:
      power         : -1.0
      alarm-status  : off
      alarm-severity: none
    rx-power:
      power         : -1.0
      alarm-status  : off
      alarm-severity: none
    tx-power:
      power         : -0.6
      alarm-status  : off
      alarm-severity: none
    rx-los              : false
    tx-los              : false
    tx-fault            : false
    advanced-fault-opcode: none
    dp-state            : initialized
  channel-2:
...
  channel-32:
...

For each channel, laser-source-input-power is the power the laser source delivers into the optical engine, rx-power and tx-power are the received and transmitted optical power, and each of the three carries an alarm-status and an alarm-severity derived from the module thresholds. The rx-los and tx-los fields report loss of signal in each direction, tx-fault reports a transmit failure, and dp-state reports the state of the data path.

Because the full view is long, three child commands limit the output:

  • nv show platform cpo <cpo-id> channel shows the channel block only.
  • nv show platform cpo <cpo-id> optical-engine shows the optical-engine block only.
  • nv show platform cpo <cpo-id> threshold shows the threshold block only.
cumulus@switch:~$ nv show platform cpo cpo1 optical-engine
optical-engine:
  oe1:
    identifier   : OE 16x
    serial-number: MT2219FT03171
    temperature  : 36.8
  oe2:
    identifier   : OE 16x
    serial-number: MT2219FT031712
    temperature  : 36.8

Show CPO Information for an Interface

To show only the part of a CPO module that carries a particular interface, run the nv show interface <interface-id> cpo command. The output has the same shape as the module view, adds a parent field naming the module, and restricts the channels and the optical engine to those the switch firmware assigns to that interface:

cumulus@switch:~$ nv show interface swp1 cpo
status         : inserted
error-status   : fiber contaminated
identifier     : CPO Virtual Module
fw-version     : 42.40.15
ports          : swp1,swp2,swp3,swp4
laser-source   : els1
parent         : cpo1
optical-engine:
  oe1:
    identifier   : OE 16x
    serial-number: MT2219FT03171
    temperature  : 36.8
threshold:
...
channel:
  channel-1:
...
  channel-8:
...

Show Laser Sources

A laser source is not a transceiver, so it has its own commands. To list the laser sources on the switch with their vendor information and firmware version, run the nv show platform laser-source command:

cumulus@switch:~$ nv show platform laser-source
Laser-source  Identifier  Vendor name  Vendor PN      Vendor SN      Vendor revision  FW Version
------------  ----------  -----------  -------------  -------------  ---------------  ----------
els1          ELS         NVIDIA       MCP7Y60-H01A   MT2233VS02221  A4               42.40.15
els2          ELS         NVIDIA       MCP7Y60-H01B   MT2233VS02222  A4               42.40.15

To show the detail for one laser source, including its temperature, power consumption, thresholds, and the state of all eight lasers, run the nv show platform laser-source <laser-source-id> command:

cumulus@switch:~$ nv show platform laser-source els1
status           : inserted
error-status     : laser_fiber_contaminated
vendor-date-code : 220505
identifier       : ELS
vendor-name      : NVIDIA
vendor-rev       : A4
vendor-pn        : MCP7Y60-H01A
vendor-sn        : MT2443FT01035
fw-version       : 42.40.15
parent           : cpo1
temperature      : 28.00
power-consumption: 3.52
icc-current      : 122
threshold:
  optical-power:
    high-alarm  : 1.0
    low-alarm   : -5.0
    high-warning: 0.0
    low-warning : -3.0
  bias-current:
    high-alarm  : 14.0
    low-alarm   : 8.0
    high-warning: 13.0
    low-warning : 9.0
laser:
  laser-1:
    enabled          : enabled
    oper-status      : off
    error-status     : laser_fiber_contaminated
    power-restriction: off
    health:
      laser-age   : 50
      laser-health: 25
      tec-health  : 15
    laser-optical-power:
      target        : 1.50
      power         : 32
      alarm-status  : off
      alarm-severity: none
    laser-bias-current:
      current       : 12.2
      alarm-status  : off
      alarm-severity: none
    frequency-error  : 2.3
    laser-mpd-current: 0.12
    tec:
      current    : 55
      voltage    : 2.9
      temperature: 23.5
  laser-2:
...
  laser-8:
...

The parent field names the CPO module the laser source feeds. For each laser, enabled is the administrative state and oper-status is the state the hardware reports, so a laser you enable that has not yet finished ramping shows enabled with an oper-status other than on. The health block reports the age of the laser and health values for the laser and its thermoelectric cooler (TEC), and the tec block reports the current, voltage, and temperature of that cooler.

As with the CPO commands, two child commands limit the output:

  • nv show platform laser-source <laser-source-id> laser shows the laser block only.
  • nv show platform laser-source <laser-source-id> threshold shows the threshold block only.
cumulus@switch:~$ nv show platform laser-source els1 threshold
threshold:
  optical-power:
    high-alarm  : 1.0
    low-alarm   : -5.0
    high-warning: 0.0
    low-warning : -3.0
  bias-current:
    high-alarm  : 14.0
    low-alarm   : 8.0
    high-warning: 13.0
    low-warning : 9.0

Upgrade Notes

When you upgrade a switch that has CPO hardware, Cumulus Linux detects the hardware and uses the CPO display automatically. You do not need to enable anything.

The scope of the data the transceiver commands return changes on CPO hardware: the switch reports CPO modules instead of front panel transceivers. Adjust any configuration file or script that parses nv show platform transceiver output on a CPO switch to use the nv show platform cpo and nv show platform laser-source commands instead. The output format does not change; it remains key-value pairs.

To export the same data to a monitoring system, see Platform Statistics.