On Wed, Jan 23, 2013 at 06:11:54 +0100, Matthias Schiffer wrote: > Due to duplicate address detection and other strange ARP packets, sometimes > entries with broadcast MAC addresses or unspecified IP addresses would get into > the Distributed ARP Table. This patch prevents these and some other kinds of > invalid entries from getting into the DAT. > > Signed-off-by: Matthias Schiffer > --- > distributed-arp-table.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/distributed-arp-table.c b/distributed-arp-table.c > index 9f4cff3..e28be57 100644 > --- a/distributed-arp-table.c > +++ b/distributed-arp-table.c > @@ -274,6 +274,18 @@ static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip, > struct batadv_dat_entry *dat_entry; > int hash_added; > > + /* filter invalid MAC addresses that are sometimes used as > + * destinations of ARP replies > + */ > + if (is_zero_ether_addr(mac_addr) || is_multicast_ether_addr(mac_addr)) > + return; > + > + /* ARP requests with unspecified source address are used for > + * duplicate address detection, we don't want those in the DAT either > + */ > + if (!ip) Hi Matthias, what about using ipv4_is_zeronet() ? Even if this is a base case, I would rather prefer to use an already implemented function. Cheers, -- Antonio Quartulli ..each of us alone is worth nothing.. Ernesto "Che" Guevara