+++ /dev/null
-From d6bd8b36fa1f3d72a6fd5942a6e9bde6ddafcd0d Mon Sep 17 00:00:00 2001
-From: Antonio Quartulli <ordex@autistici.org>
-Date: Thu, 9 May 2013 09:35:45 +0200
-Subject: [PATCH 05/10] batman-adv: make DAT drop ARP requests targeting local
- clients
-
-In the outgoing ARP request snooping routine in DAT, ARP
-Request sent by local clients which are supposed to be
-replied by other local clients can be silently dropped.
-
-The destination host will reply by itself through the LAN
-and therefore there is no need to involve DAT.
-
-Reported-by: Carlos Quijano <carlos@crqgestion.es>
-Signed-off-by: Antonio Quartulli <ordex@autistici.org>
-Tested-by: Carlos Quijano <carlos@crqgestion.es>
-Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
----
- distributed-arp-table.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/distributed-arp-table.c b/distributed-arp-table.c
-index 8e15d96..2399920 100644
---- a/distributed-arp-table.c
-+++ b/distributed-arp-table.c
-@@ -837,6 +837,19 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
-
- dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
- if (dat_entry) {
-+ /* If the ARP request is destined for a local client the local
-+ * client will answer itself. DAT would only generate a
-+ * duplicate packet.
-+ *
-+ * Moreover, if the soft-interface is enslaved into a bridge, an
-+ * additional DAT answer may trigger kernel warnings about
-+ * a packet coming from the wrong port.
-+ */
-+ if (batadv_is_my_client(bat_priv, dat_entry->mac_addr)) {
-+ ret = true;
-+ goto out;
-+ }
-+
- skb_new = arp_create(ARPOP_REPLY, ETH_P_ARP, ip_src,
- bat_priv->soft_iface, ip_dst, hw_src,
- dat_entry->mac_addr, hw_src);
---
-1.7.10.4
-