> From: Stephen Hemminger [mailto:step...@networkplumber.org] > Sent: Thursday, 1 August 2024 01.46 > > On Wed, 31 Jul 2024 22:58:16 +0000 > Morten Brørup <m...@smartsharesystems.com> wrote: > > > + > > +static inline void > > +virtio_update_packet_stats(struct virtnet_stats *const stats, const > struct rte_mbuf *const mbuf) > > +{ > > + uint32_t s = mbuf->pkt_len; > > + const struct rte_ether_addr *ea = rte_pktmbuf_mtod(mbuf, const > struct rte_ether_addr *); > > + > > + stats->bytes += s; > > + > > + if (s >= 1024) > > + stats->size_bins[6 + (s > 1518)]++; > > + else if (s <= 64) > > + stats->size_bins[s >> 6]++; > > + else > > + stats->size_bins[32UL - rte_clz32(s) - 5]++; > > + > > + RTE_BUILD_BUG_ON(offsetof(struct virtnet_stats, broadcast) != > > + offsetof(struct virtnet_stats, multicast) + > sizeof(uint64_t)); > > + if (unlikely(rte_is_multicast_ether_addr(ea))) > > + (&stats->multicast)[rte_is_broadcast_ether_addr(ea)]++; > > +} > > > > Why move it to virtio_rxtx.h it was fine where it was.
Because it is also called from the vector implementations [1], where it was not inlined before. [1]: https://elixir.bootlin.com/dpdk/v24.07/A/ident/virtio_update_packet_stats