This looks a bit out of place here. I assume it's meant to catch invalid packets of the ipv6 and up layers, for accounting. However, it's missing for layers that are below this, such as SLL, RAW, etc. In my mind it would make more sense to add this to the lowest level functions invoking the decoders, which would be the packet acquisition specific decode functions.