diff --git a/sys/dev/netmap/netmap.c b/sys/dev/netmap/netmap.c index 448d9a81eefb..37723fb36fe8 100644 --- a/sys/dev/netmap/netmap.c +++ b/sys/dev/netmap/netmap.c @@ -4329,8 +4329,10 @@ netmap_transmit(struct ifnet *ifp, struct mbuf *m) mbq_unlock(q); done: - if (m) + if (m) { + if_inc_counter(ifp, IFCOUNTER_OQDROPS, 1); m_freem(m); + } /* unconditionally wake up listeners */ kring->nm_notify(kring, 0); /* this is normally netmap_notify(), but for nics diff --git a/sys/dev/netmap/netmap_generic.c b/sys/dev/netmap/netmap_generic.c index f075cd4bd306..83908f10a3fe 100644 --- a/sys/dev/netmap/netmap_generic.c +++ b/sys/dev/netmap/netmap_generic.c @@ -837,8 +837,10 @@ generic_rx_handler(struct ifnet *ifp, struct mbuf *m) * support RX scatter-gather. */ nm_prlim(2, "Warning: driver pushed up big packet " "(size=%d)", (int)MBUF_LEN(m)); + if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); m_freem(m); } else if (unlikely(mbq_len(&kring->rx_queue) > na->num_rx_desc)) { + if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); m_freem(m); } else { mbq_safe_enqueue(&kring->rx_queue, m);