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

Morten Brørup mb at smartsharesystems.com
Sat Mar 21 06:48:38 CET 2026


> On Fri, 20 Mar 2026 17:45:24 +0100
> Robin Jarry <rjarry at 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.



More information about the dev mailing list