| From foo@baz Wed May 28 21:03:54 PDT 2014 |
| From: Antonio Quartulli <antonio@open-mesh.com> |
| Date: Sat, 29 Mar 2014 17:27:38 +0100 |
| Subject: batman-adv: fix local TT check for outgoing arp |
| requests in DAT |
| |
| From: Antonio Quartulli <antonio@open-mesh.com> |
| |
| [ Upstream commit cc2f33860cea0e48ebec096130bd0f7c4bf6e0bc ] |
| |
| Change introduced by 88e48d7b3340ef07b108eb8a8b3813dd093cc7f7 |
| ("batman-adv: make DAT drop ARP requests targeting local clients") |
| implements a check that prevents DAT from using the caching |
| mechanism when the client that is supposed to provide a reply |
| to an arp request is local. |
| |
| However change brought by be1db4f6615b5e6156c807ea8985171c215c2d57 |
| ("batman-adv: make the Distributed ARP Table vlan aware") |
| has not converted the above check into its vlan aware version |
| thus making it useless when the local client is behind a vlan. |
| |
| Fix the behaviour by properly specifying the vlan when |
| checking for a client being local or not. |
| |
| Reported-by: Simon Wunderlich <simon@open-mesh.com> |
| Signed-off-by: Antonio Quartulli <antonio@open-mesh.com> |
| Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/batman-adv/distributed-arp-table.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/net/batman-adv/distributed-arp-table.c |
| +++ b/net/batman-adv/distributed-arp-table.c |
| @@ -940,8 +940,7 @@ bool batadv_dat_snoop_outgoing_arp_reque |
| * 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, |
| - BATADV_NO_FLAGS)) { |
| + if (batadv_is_my_client(bat_priv, dat_entry->mac_addr, vid)) { |
| ret = true; |
| goto out; |
| } |