diff options
author | Antonio Quartulli <antonio@open-mesh.com> | 2014-03-29 17:27:38 +0100 |
---|---|---|
committer | Antonio Quartulli <antonio@meshcoding.com> | 2014-05-15 20:23:47 +0200 |
commit | cc2f33860cea0e48ebec096130bd0f7c4bf6e0bc (patch) | |
tree | 9a36047caecb111d8290ced70a46a40eafe8d157 /net/batman-adv | |
parent | 377fe0f968b30a1a714fab53a908061914f30e26 (diff) | |
download | linux-cc2f33860cea0e48ebec096130bd0f7c4bf6e0bc.tar.gz linux-cc2f33860cea0e48ebec096130bd0f7c4bf6e0bc.tar.bz2 linux-cc2f33860cea0e48ebec096130bd0f7c4bf6e0bc.zip |
batman-adv: fix local TT check for outgoing arp requests in DAT
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>
Diffstat (limited to 'net/batman-adv')
-rw-r--r-- | net/batman-adv/distributed-arp-table.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c index b25fd64d727b..aa5d4946d0d7 100644 --- 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_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; } |