Displaying detail Hardware NIC information
Monitoring the hardware NIC is important because interface errors indicate data link or physical layer issues which may impact the performance of the FortiGate.
To monitor hardware network operations in the CLI:
diagnose hardware deviceinfo nic <interface>
or
diagnose netlink interface list <interface>
Sample output:
The following is sample output when the <interface> is set to port1:
# diagnose netlink interface list port1
if=port1 family=00 type=1 index=3 mtu=1500 link=0 master=0 flags=up broadcast run multicast Qdisc=mq hw_addr=00:0c:29:fc:18:54 broadcast_addr=ff:ff:ff:ff:ff:ff stat: rxp=61149 txp=81109 rxb=5839308 txb=52396373 rxe=0 txe=0 rxd=0 txd=0 mc=95 collision=0 @ time=1678486883 re: rxl=0 rxo=0 rxc=0 rxf=0 rxfi=0 rxm=0 te: txa=0 txc=0 txfi=0 txh=0 txw=0 misc rxc=0 txc=0
Field descriptions
The diagnose hardware deviceinfo nic and diagnose netlink interface list commands display lists of error names and values that are related to hardware.
The following table describes possible hardware errors:
|
Field |
Description |
|---|---|
|
Rx packets (rxp) |
Number of received packets. |
|
Tx packets (txp) |
Number of transmitted packets. |
|
Rx bytes (rxb) |
Number of received bytes. |
|
Tx bytes (txb) |
Number of transmitted bytes. |
|
Rx_Errors (rxe) = rx error count |
Bad frame was marked as error by PHY. |
|
Tx_Errors (txe) = Tx_Aborted_Errors |
ECOL (Excessive Collisions Count); only valid in half-duplex mode. |
|
Rx_CRC_Errors + Rx_Length_Errors - Rx_Align_Errors |
This error is only valid in 10/100M mode. |
|
Rx_Dropped (rxd) or Rx_No_Buffer_Count |
Running out of buffer space. |
|
Tx_Dropped (txd) |
Number of dropped packet. |
|
Multicast (mc) |
Number of multicast packets received. |
|
Collisions |
Total number of collisions experienced by the transmitter; valid in half-duplex mode. |
|
Rx_Length_Errors (rxl) |
Number of packets dropped due to invalid length. |
|
Rx_Over_Errors (rxo) |
Receive FIFO overflow event counter. |
|
Rx_CRC_Errors (rxc) |
Number of received packets with Frame CRC error. |
|
Rx_Frame_Errors (rxf) |
Same as Rx_Align_Errors. This error is only valid in 10/100M mode. |
|
Rx_FIFO_Errors (rxfi) |
Same as Rx_Missed_Errors - a missed packet count |
|
Rx_Missed_Errors (rxm) |
Equals Rx_FIFO_Errors + CEXTERR (Carrier Extension Error Count). Only valid in 1000M mode, which is marked by PHY. |
|
Tx_Aborted_Errors (txa) |
See Tx_Errors. |
|
Tx_Carrier_Errors (txc) |
The PHY should assert the internal carrier sense signal during every transmission. Failure to do so may indicate that the link has failed or the PHY has an incorrect link configuration. This register only increments if transmits are enabled. This register isn't valid in internal SerDes 1 mode (TBI mode for the 82544GC/EI) and is valid only when the Ethernet controller is operating at full duplex. |
|
Tx_FIFO_Errors (txfi) |
Number of Frame transmission error due to underflow. |
|
Tx_Heartbeat_Errors (txh) |
Number of heartbeat error. |
|
Tx_Window_Errors (txw) |
Late Collisions (LATECOL) Count Late collisions are collisions that occur after 64-byte time into the transmission of the packet while working in 10 to 100 Mb/s data rate and 512-byte time into the transmission of the packet while working in the 1,000 Mb/s data rate. This register only increments if transmits are enabled and the device is in half-duplex mode. |
|
Rx compressed (misc rxc) |
Number of received compressed packets. |
|
Tx compressed (misc txc) |
Number of transmitted compressed packets. |
|
Tx_Single_Collision_Frames |
Counts the number of times that a successfully transmitted packet encountered a single collision. The value increments only if transmits are enabled and the Ethernet controller is in half-duplex mode. |
|
Tx_Multiple_Collision_Frames |
A Multiple Collision Count which indicates the number of times that a transmit encountered more than one collision, but less than 16. The value increments only if transmits are enabled and the Ethernet controller is in half-duplex mode. |
|
Tx_Deferred |
Counts defer events. A deferred event occurs when the transmitter cannot immediately send a packet due to:
This register only increments if transmits are enabled. This counter does not increment for streaming transmits that are deferred due to TX IPG. |
|
Rx_Frame_Too_Longs |
The Rx frame is oversized. |
|
Rx_Frame_Too_Shorts |
The Rx frame is too short. |
|
Rx_Align_Errors |
This error is only valid in 10/100M mode. |
|
Symbol Error Count |
Counts the number of symbol errors (SYMERRS) between reads. The count increases for every bad symbol that's received, whether or not a packet is currently being received and whether or not the link is up. This register increments only in internal SerDes mode. |
Specialized NIC interface diagnostics
Commands are available for displaying Forward Error Correction (FEC) status, RX/TX bits per second (bps), packets per second (pps), and host-level RX drop statistics in NIC interface diagnostics. This provides enhanced visibility to assist with debugging and performance analysis.
|
|
This feature is currently only supported on FortiGate model 1801F and interfaces that support FEC CL91. |
The diagnose hardware deviceinfo nic-details port<number> command was added to display the current FEC status. The following example demonstrates reviewing the FEC status for port 37.
# diagnose hardware deviceinfo nic-details port37
System time: Thu Jun 12 17:25:22 2025
fec_stats_acc changes last change
corr codewds :0 0 never
uncorr codewds :0 0 never
lane 0 :0 0 never
lane 1 :0 0 never
lane 2 :0 0 never
lane 3 :0 0 never
FEC BER: 0.000000
FEC symbol err rate: 0.000000
The diagnose hardware deviceinfo nic port<number> command was updated to add additional counters for a debug-related analysis. The htx_drop, RX pps, Rx bps, Tx pps, and Tx bps counters have been added. The htx_drop counter indicates if there is an FCS, oversized, or jabber error.
The following example demonstrates reviewing the hardware NIC information for port17.
# diagnose hardware deviceinfo nic port17 Description :FortiASIC NP7 Adapter Driver Name :FortiASIC Unified NPU Driver pid :17 oid :145 vid :18 macid :16 eif_id :127 promiscous :1 local_port :0 vlan_wa_done :0 mtu :9216 netdev oid :145 dev-flags :1903 dev-promis :1 Current_HWaddr e0:23:ff:50:31:6a Permanent_HWaddr e0:23:ff:50:31:6a ==== Default Link Settings ===== auto-nego :Disable s_speed :1000 s_duplex :Full ==== Current Link Settings ===== auto-nego :Enable s_status :Up s_speed :1000 s_duplex :Full FEC :OFF (0x2) FEC_cap :None (0x0) SerDes_if :SGMII SerDes_if_cap :SGMII (0x4) SerDes_dflt :2 pm_mode_setting :0 pm_mode :0x0 pm_mode_dflt :0 pm_port :No medium_mode :0 ==== Link Status =============== Admin :Up link_status :Up Speed :1000 Duplex :Full ==== Netdev Status ============= dev_running :Yes dev_carrier :On ==== Host Counters ============= hrx_pkts :233 hrx_bytes :26831 htx_pkts :1940 htx_bytes :210405 htx_drop :0 htx_e_busy :0 htx_e_noheadroom:0 htx_e_oid :0 htx_e_adapter :0 htx_e_pad :0 htx_e_frag :0 htx_e_other :0 ==== Netdev Counters =========== Rx Pkts :233 Rx Bytes :31025 Tx Pkts :1939 Tx Bytes :218713 Rx pps :1 Rx bps :1483 Tx pps :1 Tx bps :1313 ==== Switch Poll Counters ====== sw_tx_pkts :1939 sw_tx_bytes :218713 sw_tx_bc_pkts :0 sw_tx_mc_pkts :0 sw_rx_pkts :233 sw_rx_bytes :31025 sw_rx_bc_bytes :27 sw_rx_mc_bytes :159 ==== Switch Error Counters ===== rx_err :0 rx_crc_err :0 rx_len_err :0 rx_carrier_err :0 rx_over_err :0 rx_under_err :0 rx_drop_pkts :0 tx_collision_err:0 tx_drop_pkts :0 ======Queue Counters =========== uc_que0_pkts :0 uc_que1_pkts :0 uc_que2_pkts :0 uc_que3_pkts :0 uc_que4_pkts :0 uc_que5_pkts :0 uc_que6_pkts :0 uc_que7_pkts :0 -------------------------------- uc_drop_que0_pkts:0 uc_drop_que1_pkts:0 uc_drop_que2_pkts:0 uc_drop_que3_pkts:0 uc_drop_que4_pkts:0 uc_drop_que5_pkts:0 uc_drop_que6_pkts:0 uc_drop_que7_pkts:0 ==== Transceiver Info ========== tx_disable : N/A rx_los : N/A tx_fault : N/A present : N/A last_spd : 0