Historic archive of defunct list bloat-devel@lists.bufferbloat.net
 help / color / mirror / Atom feed
From: Fred Baker <fred@cisco.com>
To: Justin McCann <jneilm@gmail.com>
Cc: bloat <bloat-devel@lists.bufferbloat.net>
Subject: Re: Getting current interface queue sizes
Date: Mon, 28 Feb 2011 16:29:24 -0800	[thread overview]
Message-ID: <7A1666CF-3E98-4668-A265-F89B50D23909@cisco.com> (raw)
In-Reply-To: <AANLkTimpq5JtVXA-YgeA-iDJCKGuLnNX5kBw0WbtAZ6_@mail.gmail.com>


On Feb 28, 2011, at 2:26 PM, Justin McCann wrote:

> This may be well-known, but how does one retrieve the current outgoing and incoming queue sizes from the link-layer interfaces? I mean the number of packets/bytes in the various queues, not the size of the buffers (potential queue size). I've mucked around with ethtool and netlink to grab other statistics, but haven't found any way to pull the current queue sizes into userspace. 

When the SNMP MIB was first developed, they originally specified ifOutQLen as "The length of the output packet queue (in packets)." One problem: Cisco implements that as "how many packets can I put into the queue in the deepest possible case". The outfit I worked for before Cisco implemented it as "what is the current depth of the output queue". Interoperable implementation...


There are a few issues with the "current" model. Suppose you are in this network

         +---+        +------+
         |NMS|        |Target|
         +-+-+        +---+--+
           |              |
        ---+--------------+----

and you ask the target what the length of its Ethernet queue is. When you get the answer, what is the length of its Ethernet queue?

To determine the answer, think through the process.

   - NMS sends a question to Target
   - Target thinks about it, concocts an answer, and puts it in the Ethernet queue
   - Packets ahead of response in Ethernet queue drain
   - response packet is transmitted.
   - NMS receives response

At the time the NMS receives the response, there's a reasonable chance that the queue is absolutely empty. Or that it is twice as full as it was before. Or some other number. All you can really say is that at the time the agent answered the question, the queue had ifOutQLen packets in it.

The object got deprecated on the grounds that it didn't make a lot of sense.

When I try to measure queue lengths, I do so by trying to pass a message though the queue. That lets me measure the impact of the queue on delay, which is actually far more interesting.

  reply	other threads:[~2011-03-01  0:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-28 22:26 Justin McCann
2011-03-01  0:29 ` Fred Baker [this message]
2011-03-06 22:31   ` Justin McCann
2011-03-07  7:21     ` Fred Baker
2011-03-07 18:28       ` Jim Gettys
2011-03-07 21:18         ` Justin McCann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7A1666CF-3E98-4668-A265-F89B50D23909@cisco.com \
    --to=fred@cisco.com \
    --cc=bloat-devel@lists.bufferbloat.net \
    --cc=jneilm@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox