Description

This article explains how to query ASIC drops for different queues using snmp/MIB.  

Symptoms

{master:0}
root@qfx> show interfaces queue xe-0/0/36:2    
Physical interface: xe-0/0/36:2, Enabled, Physical link is Up
  Interface index: 652, SNMP ifIndex: 522
  Description: qfx10002-lab
Forwarding classes: 16 supported, 4 in use
Egress queues: 8 supported, 4 in use
Queue: 0, Forwarding classes: best-effort
  Queued:
    Packets              :           56931013242                290315 pps
    Bytes                :       286012518577662           11678661624 bps
  Transmitted:
    Packets              :           48801703945                248805 pps
    Bytes                :       244860250796204            9998839240 bps
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:            8129309297                 41510 pps
    Total-dropped bytes  :        41152267781458            1679822384 bps
Queue: 3, Forwarding classes: fcoe
  Queued:
    Packets              :                     0                     0 pps
    Bytes                :                     0                     0 bps
  Transmitted:
    Packets              :                     0                     0 pps
    Bytes                :                     0                     0 bps
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps
Queue: 4, Forwarding classes: no-loss
  Queued:
    Packets              :                     0                     0 pps
    Bytes                :                     0                     0 bps
  Transmitted:
    Packets              :                     0                     0 pps
    Bytes                :                     0                     0 bps
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps
Queue: 7, Forwarding classes: network-control
  Queued:
    Packets              :                201019                     0 pps
    Bytes                :              32309428                  1152 bps
  Transmitted:
    Packets              :                201019                     0 pps
    Bytes                :              32309428                  1152 bps
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps

Solution

There are 2 MIBs to query ​the total dropped packets:

  • jnxCosQstatTotalDropPkts is the total Number of packets dropped on the queue
  • jnxCosQstatTotalDropPktRate is the output queue's packet total drop rate, expressed in packets per second
{master:0}
root@qfx
> show interfaces queue xe-0/0/36:2 | match "Queue:|drop" 
Queue: 0, Forwarding classes: best-effort
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:            8272069913                 41441 pps
    Total-dropped bytes  :        41874432460484            1675329520 bps
Queue: 3, Forwarding classes: fcoe
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps
Queue: 4, Forwarding classes: no-loss
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps
Queue: 7, Forwarding classes: network-control
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps

For example, If you want to query the total number of packets dropped on queue 0 (best effort), specify the interface index and the queue number to get the output. 

{master:0}
root@qfx> show interfaces queue xe-0/0/36:2 | match "Queue:|drop|SNMP" 
  Interface index: 652, SNMP ifIndex: 522  <-- interface snmp index number  
Queue: 0, Forwarding classes: best-effort
<-- <Queue number 0 (best Effort)</code>
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:            8306456612                 41574 pps   <-- packets dropped on the queue and their rate
    Total-dropped bytes  :        42048360999465            1683224608 bps
Queue: 3, Forwarding classes: fcoe
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps
Queue: 4, Forwarding classes: no-loss
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps
    Total-dropped bytes  :                     0                     0 bps
Queue: 7, Forwarding classes: network-control
  Queued:
    Tail-dropped packets : Not Available  
    RL-dropped packets   :                     0                     0 pps
    RL-dropped bytes     :                     0                     0 bps
    Total-dropped packets:                     0                     0 pps


{master:0}
root@qfx> show snmp mib get jnxCosQstatTotalDropPkts.522.0    
jnxCosQstatTotalDropPkts.522.0 = 8306456612
 

{master:0}
root@qfx> show snmp mib get jnxCosQstatTotalDropPktRate.522.0    
jnxCosQstatTotalDropPktRate.522.0 = 41574

You can also use an external server to do snmpwalk and query this data. Here is the syntax:
snmpwalk [options] [community string/authentification information] [host name/address] [OID]

juniper@server1:~$ snmpwalk -v2c -c JUNIPER 10.85.150.190 1.3.6.1.4.1.2636.3.15.4.1.54.522  <-- This gives the drops for all queues
iso.3.6.1.4.1.2636.3.15.4.1.54.522.0 = Counter64: 41574
iso.3.6.1.4.1.2636.3.15.4.1.54.522.1 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.2 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.3 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.4 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.5 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.6 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.7 = Counter64: 0

juniper@test-113:~$ snmpwalk -v2c -c JUNIPER 10.85.150.190 1.3.6.1.4.1.2636.3.15.4.1.54.522.0  <-- This gives the drops for queue 0
iso.3.6.1.4.1.2636.3.15.4.1.54.522.0 = Counter64: 41574
juniper@jtac-server1:~$ snmpwalk -v2c -c JUNIPER 10.85.150.190 1.3.6.1.4.1.2636.3.15.4.1.53.522
iso.3.6.1.4.1.2636.3.15.4.1.53.522.0 = Counter64: 8306456612 
iso.3.6.1.4.1.2636.3.15.4.1.53.522.1 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.2 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.3 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.4 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.5 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.6 = Counter64: 0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.7 = Counter64: 0

juniper@test-113:~$ snmpwalk -v2c -c JUNIPER 10.85.150.190 1.3.6.1.4.1.2636.3.15.4.1.53.522.0
iso.3.6.1.4.1.2636.3.15.4.1.53.522.0 = Counter64: 8362625096