Thread (17 messages) 17 messages, 5 authors, 2009-09-25

Re: Getting physical packet counts with LRO enabled with ixgbe?

From: Ben Greear <hidden>
Date: 2009-09-23 18:46:34

On 09/23/2009 11:32 AM, Peter P Waskiewicz Jr wrote:
On Wed, 2009-09-23 at 09:40 -0700, Ben Greear wrote:
quoted
I notice that with LRO enabled, the interface stats count the LRO'd pkts,
not the physical ones on the wire.

I also tried using ethtool -S, but it seems those counters are the same.

Is there any way to get the actual rx/tx packet count on the wire?
Depending on which device you're using ixgbe with, there are slightly
different registers to get what you want.

The only suggestion I have for you though is to refer to the datasheets
for each device on our SourceForge site (e1000.sf.net).  Some of the
relevant counters to look at are PRC64, PRC127, etc, and GPRC/GPTC.  For
the per-queue stuff, you'll need to look at the TQSMR and RQSMR mapping
registers.  Let me know if you need assistance in using these registers.
Thanks, I'll look at the data-sheet.

I don't care about per-queue stats at this time, just
over-all NIC stats.
quoted
Also, for the rx/tx bytes, I assume that isn't counting the protocol headers
for the physical pkts that have been merged into a single LRO packet.  Is
there any way to get the wire stats for bytes as well?
The counters for per-byte are purely software-based, so if the packet is
LRO'd, you can probably do some somewhat trivial math with the MTU to
find the actual wire stats.  But we only compute what we pass to the
stack, so it'd be the LRO'd packet.
That's a bummer.  I'm guessing you might get close to right on average with some
trivial math, but if someone is sending you pkts with size of 1000 and
your MTU is 1500, would there be any way to tell that the pkts were originally
1000 bytes instead of 1500?

Next time you guys re-compile your hardware, please consider adding byte counters :)

Thanks,
Ben

-- 
Ben Greear [off-list ref]
Candela Technologies Inc  http://www.candelatech.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help