Thu, Jun 23, 2016 at 05:11:26PM CEST, anurad...@cumulusnetworks.com wrote: >>>>> we can't separate CPU and HW stats there. In some cases (or ASICs) HW >>>>> counters do >>>>> not include CPU generated packets....you will have to add CPU >>>>> generated pkt counters to the >>>>> hw counters for such virtual device stats. >>>> Can you please provide and example how that could happen? >>> >>>example is the bridge vlan stats I mention below. These are usually counted >>>by attaching hw virtual counter resources. And CPU generated packets >>>in some cases maybe setup to bypass the ASIC pipeline because the CPU >>>has already made the required decisions. So, they may not be counted by >>>by such hw virtual counters. >> >> Bypass ASIC? How do the packets get on the wire? >> > >Bypass the "forwarding pipeline" in the ASIC that is. Obviously the >ASIC ships the CPU generated packet out of the switch/front-panel >port. Continuing Roopa's example of vlan netdev stats.... To get the >HW stats counters are typically tied to the ingress and egress vlan hw >entries. All the incoming packets are subject to the ingress vlan >lookup irrespective of whether they get punted to the CPU or whether >they are forwarded to another front panel port. In that case the >ingress HW stats does represent all packets. However for CPU >originated packets egress vlan lookups are bypassed in the ASIC (this >is common forwarding option in most ASICs) and the packet shipped as >is out of front-panel port specified by the CPU. Which means these >packets will NOT be counted against the egress VLAN HW counter; hence >the need for summation.
Driver will know about this, and will provide the stats accordignly to the core. Who else than driver should resolve this.