| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: "Linus Lüssing" <linus.luessing@c0d3.blue> |
| Date: Tue, 20 Mar 2018 03:13:27 +0100 |
| Subject: batman-adv: fix multicast-via-unicast transmission with AP isolation |
| |
| From: "Linus Lüssing" <linus.luessing@c0d3.blue> |
| |
| [ Upstream commit f8fb3419ead44f9a3136995acd24e35da4525177 ] |
| |
| For multicast frames AP isolation is only supposed to be checked on |
| the receiving nodes and never on the originating one. |
| |
| Furthermore, the isolation or wifi flag bits should only be intepreted |
| as such for unicast and never multicast TT entries. |
| |
| By injecting flags to the multicast TT entry claimed by a single |
| target node it was verified in tests that this multicast address |
| becomes unreachable, leading to packet loss. |
| |
| Omitting the "src" parameter to the batadv_transtable_search() call |
| successfully skipped the AP isolation check and made the target |
| reachable again. |
| |
| Fixes: 1d8ab8d3c176 ("batman-adv: Modified forwarding behaviour for multicast packets") |
| Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue> |
| Signed-off-by: Sven Eckelmann <sven@narfation.org> |
| Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/batman-adv/multicast.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/net/batman-adv/multicast.c |
| +++ b/net/batman-adv/multicast.c |
| @@ -769,8 +769,8 @@ static struct batadv_orig_node * |
| batadv_mcast_forw_tt_node_get(struct batadv_priv *bat_priv, |
| struct ethhdr *ethhdr) |
| { |
| - return batadv_transtable_search(bat_priv, ethhdr->h_source, |
| - ethhdr->h_dest, BATADV_NO_FLAGS); |
| + return batadv_transtable_search(bat_priv, NULL, ethhdr->h_dest, |
| + BATADV_NO_FLAGS); |
| } |
| |
| /** |