[dpdk-dev] [PATCH] ixgbe: do not include CRC in Tx byte count

Stephen Hemminger stephen at networkplumber.org
Tue Jan 27 12:38:47 CET 2015


On Tue, 27 Jan 2015 11:11:39 +0100
Thomas Monjalon <thomas.monjalon at 6wind.com> wrote:

> Hi Stephen,
> 
> 2015-01-22 22:23, stephen at networkplumber.org:
> > From: Stephen Hemminger <shemming at brocade.com>
> > 
> > The ixgbe driver was including CRC in the transmit packet byte
> > count, but not for packets received. This was notice when forwarding and
> > the number of bytes received was greater than the number of bytes transmitted
> 
> Tx includes CRC and Rx count is greater, really?
> 
> > for the same number of packets. Make the driver behave like other
> > virtual devices and not include CRC in byte count. Use the same queue
> > counters already computed and used for Rx.
> 
> Please could you describe the difference between gptc/gotc and qptc/qbtc?
> 
> Thank you


The byte counts for global registers include CRC in the byte count.
This has been observed by experimentation and validated by QA and documented
in Intel HW specs.

The original code used queue counts for Rx because the global counters
include missed packets (which must not be included in the ipacket counts).
I suspect that is why the original developer used the queue counts, as
a good side effect the Rx byte count was correct (no CRC). I just extended
this for Tx.


More information about the dev mailing list