Hello, Harry.

Understood about size of packets. It's a bit confusing, because in all other 
drivers undersized packet is an error. Maybe we should add another one size bin 
for virtio - 60 to 63 bytes?

I already checked about multicast/broadcast counters - broadcast packets are 
counted twice:

        vq->multicast += is_multicast_ether_addr(ea);
        vq->broadcast += is_broadcast_ether_addr(ea);

I think it should be something like:

        if (is_multicast_ether_addr(ea)) {
                if (is_broadcast_ether_addr(ea)) {
                        vq->broadcast++;
                } else {
                        vq->multicast++;
                }
        }

Best regards,
Igor

> 26 ????. 2016 ?., ? 17:29, Van Haaren, Harry <harry.van.haaren at intel.com> 
> ???????(?):
> 
>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Igor Ryzhov
>> I found some problem with virtio xstats counters.
>> 
>> Example:
>> 
>> rx_good_packets: 3
>> rx_good_bytes: 180
>> rx_errors: 0
>> 
>> rx_q0_good_packets: 3
>> rx_q0_good_bytes: 180
>> rx_q0_errors: 0
>> 
>> rx_q0_multicast_packets: 3
>> rx_q0_broadcast_packets: 1
>> rx_q0_undersize_packets: 3
> 
>> It means that undersize packets are counted as good packets instead of 
>> errors.
> 
> Are you sending 64 byte packets? There are no 4 bytes of CRC on virtual
> interfaces, so 60 bytes per packet is OK.
> 
>> Or maybe
>> size of packet is calculated wrong.
>> I don't have time now to check it more deeply - I can do it sometime later, 
>> but maybe
>> someone want to help.
> 
> Are the packets multicast or broadcast?
> It looks like one of the counters there is wrong.
> 
>> PS. Is it a common practice to count broadcast packets twice - in broadcast 
>> and multicast
>> counters?
> 
> No packet should be counted twice - it must be put into one bucket of mutli, 
> broad or unicast.
> 
> -Harry

Reply via email to