RE: [PATCH dpdk v2] net/tap: add software MAC address filtering

Morten Brørup
2026-03-21T05:48:45Z

> On Fri, 20 Mar 2026 17:45:24 +0100
> Robin Jarry <rjarry@redhat.com> wrote:
>
> > + dst = rte_pktmbuf_mtod(mbuf, struct rte_ether_addr *);
> > +
> > + if (likely(rte_is_unicast_ether_addr(dst))) {

The NULL addr check should go here:
if (unlikely(rte_is_zero_ether_addr(dst)))
return false; /* Invalid destination address in packet */

> > + for (i = 0; i < TAP_MAX_MAC_ADDRS; i++) {
> > + if (rte_is_same_ether_addr(dst, &data->mac_addrs[i]))
> > + return true;
> > + }
> > + return false;
> > + }
>
> Since unused slots are zero, probably need to drop packets with all
> zero dest.

You should drop packets with NULL dst addr; it is not allowed on the wire.

Alternatively, you can put the broadcast address in the unused entries in the mac_addrs table; it will not match any unicast ether addr.