123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- From: Sven Eckelmann <sven@narfation.org>
- Date: Fri, 17 Jun 2016 15:54:03 +0200
- Subject: batman-adv: Fix speedy join in gateway client mode
- Speedy join only works when the received packet is either broadcast or an
- 4addr unicast packet. Thus packets converted from broadcast to unicast via
- the gateway handling code have to be converted to 4addr packets to allow
- the receiving gateway server to add the sender address as temporary entry
- to the translation table.
- Not doing it will make the batman-adv gateway server drop the DHCP response
- in many situations because it doesn't yet have the TT entry for the
- destination of the DHCP response.
- Signed-off-by: Sven Eckelmann <sven@narfation.org>
- diff --git a/batman-adv/patches/0001-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch b/batman-adv/patches/0001-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch
- new file mode 100644
- index 0000000..e63b782
- --- /dev/null
- +++ b/batman-adv/patches/0001-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch
- @@ -0,0 +1,35 @@
- +From: Sven Eckelmann <sven@narfation.org>
- +Date: Sun, 12 Jun 2016 10:43:19 +0200
- +Subject: [PATCH] batman-adv: Fix speedy join in gateway client mode
- +
- +Speedy join only works when the received packet is either broadcast or an
- +4addr unicast packet. Thus packets converted from broadcast to unicast via
- +the gateway handling code have to be converted to 4addr packets to allow
- +the receiving gateway server to add the sender address as temporary entry
- +to the translation table.
- +
- +Not doing it will make the batman-adv gateway server drop the DHCP response
- +in many situations because it doesn't yet have the TT entry for the
- +destination of the DHCP response.
- +
- +Fixes: 9cbc67d9da47 ("batman-adv: change interface_rx to get orig node")
- +Signed-off-by: Sven Eckelmann <sven@narfation.org>
- +---
- + net/batman-adv/send.c | 4 ++--
- + 1 file changed, 2 insertions(+), 2 deletions(-)
- +
- +diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
- +index f2f1256..0103976 100644
- +--- a/net/batman-adv/send.c
- ++++ b/net/batman-adv/send.c
- +@@ -424,8 +424,8 @@ int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
- + struct batadv_orig_node *orig_node;
- +
- + orig_node = batadv_gw_get_selected_orig(bat_priv);
- +- return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0,
- +- orig_node, vid);
- ++ return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST_4ADDR,
- ++ BATADV_P_DATA, orig_node, vid);
- + }
- +
- + void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface)
|