Sent a patch: http://dpdk.org/dev/patchwork/patch/10887/ <http://dpdk.org/dev/patchwork/patch/10887/>.
> 26 ????. 2016 ?., ? 17:35, Igor Ryzhov <iryzhov at nfware.com> ???????(?): > > 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 >