Re: [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: filter out invalid DAT entries

Antonio Quartulli
2013-01-23T21:07:30Z

[-- Attachment #1: Type: text/plain, Size: 1466 bytes --]

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 <mschiffer@universe-factory.net>
> ---
> 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

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]