ixgbe_update_stats_counters() read only IXGBE_MPC(0) into stats->mpc[0]
and left missed_rx and total_missed_rx at zero. Two things broke as a
result: the "gprc counts missed packets" hardware workaround subtracted
zero (stats->gprc -= missed_rx), so IPACKETS was inflated by dropped
packets; and IXGBE_SET_IQDROPS() always published zero, so input drops
from RX overruns were invisible to netstat(1) and ifconfig(8).
The 82599 spreads missed-packet counts across eight per-traffic-class MPC
registers. Restore the eight-entry accumulation loop so missed_rx feeds
the gprc correction and total_missed_rx feeds IQDROPS. This is a
regression from the iflib conversion, which replaced the loop with a
single MPC(0) read.
Also fold in the per-queue QPRDC (Queue Packet Receive Drop Count)
registers, which were read into stats->qprdc[] but never consumed. QPRDC
counts packets dropped because a queue had no RX descriptor available --
a distinct input drop from the packet-buffer overflow counted by MPC (a
no-descriptor packet either drops at the queue or backs up and overflows
the buffer, never both), so summing both into IQDROPS does not double
count. QPRDC is not valid on 82598; Linux likewise accumulates it (as
hw_rx_no_dma_resources) only on 82599 and later parts.
Finally, stop summing mpc into the IERRORS aggregate: missed packets are
input drops reported via IQDROPS, not receive errors, and only mpc[0] was
being added there anyway. Linux likewise keeps missed packets out of
rx_errors.