[v2,maint] batman-adv: fix local TT check for outgoing arp requests in DAT
Commit Message
From: Antonio Quartulli <antonio@open-mesh.com>
Change introduced by d6bd8b36fa1f3d72a6fd5942a6e9bde6ddafcd0d
("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 3e26722bc9f248ec4316749fc1957365c0fa5e4b
("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>
---
Changes from v2:
- added reported-by clause
distributed-arp-table.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
Comments
On Saturday 29 March 2014 17:27:38 Antonio Quartulli wrote:
> From: Antonio Quartulli <antonio@open-mesh.com>
>
> Change introduced by d6bd8b36fa1f3d72a6fd5942a6e9bde6ddafcd0d
> ("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 3e26722bc9f248ec4316749fc1957365c0fa5e4b
> ("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>
> ---
>
> Changes from v2:
> - added reported-by clause
>
> distributed-arp-table.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
Applied in revision 1c2e700.
Thanks,
Marek
@@ -940,8 +940,7 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
* 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;
}