All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
@ 2016-09-05 11:20 Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 2/5] batman-adv: prevent duplication of ARP replies when DAT is used Sven Eckelmann
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-05 11:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

From: Andreas Pape <APape@phoenixcontact.com>

If dat is enabled it must be made sure that only the backbone gw which has
claimed the remote destination for the ARP request answers the ARP request
directly if the MAC address is known due to the local dat table. This
prevents multiple ARP replies in a common backbone if more than one
gateway already knows the remote mac searched for in the ARP request.

Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
[sven@narfation.org: fix conflicts with current version]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/bridge_loop_avoidance.c | 49 ++++++++++++++++++++++++++++++++++
 net/batman-adv/bridge_loop_avoidance.h | 11 ++++++++
 net/batman-adv/distributed-arp-table.c | 15 +++++++++++
 3 files changed, 75 insertions(+)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index e7f690b..41ab4a6 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -2450,3 +2450,52 @@ out:
 
 	return ret;
 }
+
+#ifdef CONFIG_BATMAN_ADV_DAT
+/**
+ * batadv_bla_check_claim - check if address is claimed
+ *
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: mac address of which the claim status is checked
+ * @vid: the VLAN ID
+ *
+ * addr is checked if this address is claimed by the local device itself.
+ *
+ * Return: true if bla is disabled or the mac is claimed by the device,
+ * false if the device addr is already claimed by another gateway
+ */
+bool batadv_bla_check_claim(struct batadv_priv *bat_priv,
+			    u8 *addr, unsigned short vid)
+{
+	struct batadv_bla_claim search_claim;
+	struct batadv_bla_claim *claim = NULL;
+	struct batadv_hard_iface *primary_if = NULL;
+	bool ret = true;
+
+	if (!atomic_read(&bat_priv->bridge_loop_avoidance))
+		return ret;
+
+	primary_if = batadv_primary_if_get_selected(bat_priv);
+	if (!primary_if)
+		return ret;
+
+	/* First look if the mac address is claimed */
+	ether_addr_copy(search_claim.addr, addr);
+	search_claim.vid = vid;
+
+	claim = batadv_claim_hash_find(bat_priv, &search_claim);
+
+	/* If there is a claim and we are not owner of the claim,
+	 * return false.
+	 */
+	if (claim) {
+		if (!batadv_compare_eth(claim->backbone_gw->orig,
+					primary_if->net_dev->dev_addr))
+			ret = false;
+		batadv_claim_put(claim);
+	}
+
+	batadv_hardif_put(primary_if);
+	return ret;
+}
+#endif
diff --git a/net/batman-adv/bridge_loop_avoidance.h b/net/batman-adv/bridge_loop_avoidance.h
index 1ae93e4..86b8740 100644
--- a/net/batman-adv/bridge_loop_avoidance.h
+++ b/net/batman-adv/bridge_loop_avoidance.h
@@ -51,6 +51,10 @@ void batadv_bla_status_update(struct net_device *net_dev);
 int batadv_bla_init(struct batadv_priv *bat_priv);
 void batadv_bla_free(struct batadv_priv *bat_priv);
 int batadv_bla_claim_dump(struct sk_buff *msg, struct netlink_callback *cb);
+#ifdef CONFIG_BATMAN_ADV_DAT
+bool batadv_bla_check_claim(struct batadv_priv *bat_priv, u8 *addr,
+			    unsigned short vid);
+#endif
 #define BATADV_BLA_CRC_INIT	0
 #else /* ifdef CONFIG_BATMAN_ADV_BLA */
 
@@ -127,6 +131,13 @@ static inline int batadv_bla_backbone_dump(struct sk_buff *msg,
 	return -EOPNOTSUPP;
 }
 
+static inline
+bool batadv_bla_check_claim(struct batadv_priv *bat_priv, u8 *addr,
+			    unsigned short vid)
+{
+	return true;
+}
+
 #endif /* ifdef CONFIG_BATMAN_ADV_BLA */
 
 #endif /* ifndef _NET_BATMAN_ADV_BLA_H_ */
diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index e257efd..cf53404 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -43,6 +43,7 @@
 #include <linux/workqueue.h>
 #include <net/arp.h>
 
+#include "bridge_loop_avoidance.h"
 #include "hard-interface.h"
 #include "hash.h"
 #include "log.h"
@@ -1007,6 +1008,20 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 			goto out;
 		}
 
+		/* If BLA is enabled, only send ARP replies if we have claimed
+		 * the destination for the ARP request or if no one else of
+		 * the backbone gws belonging to our backbone has claimed the
+		 * destination.
+		 */
+		if (!batadv_bla_check_claim(bat_priv,
+					    dat_entry->mac_addr, vid)) {
+			batadv_dbg(BATADV_DBG_DAT, bat_priv,
+				   "Device %pM claimed by another backbone gw. Don't send ARP reply!",
+				   dat_entry->mac_addr);
+			ret = true;
+			goto out;
+		}
+
 		skb_new = arp_create(ARPOP_REPLY, ETH_P_ARP, ip_src,
 				     bat_priv->soft_iface, ip_dst, hw_src,
 				     dat_entry->mac_addr, hw_src);
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [B.A.T.M.A.N.] [PATCH v7 2/5] batman-adv: prevent duplication of ARP replies when DAT is used
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
@ 2016-09-05 11:20 ` Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 3/5] batman-adv: drop unicast packets from other backbone gw Sven Eckelmann
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-05 11:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

From: Andreas Pape <APape@phoenixcontact.com>

If none of the backbone gateways in a bla setup has already knowledge of
the mac address searched for in an incoming ARP request from the backbone
an address resolution via the DHT of DAT is started. The gateway can send
several ARP requests to different DHT nodes and therefore can get several
replies. This patch assures that not all of the possible ARP replies are
returned to the backbone by checking the local DAT cache of the gateway.
If there is an entry in the local cache the gateway has already learned
the requested address and there is no need to forward the additional reply
to the backbone.
Furthermore it is checked if this gateway has claimed the source of the ARP
reply and only forwards it to the backbone if it has claimed the source or
if there is no claim at all.

Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
[sven@narfation.org: fix conflicts with current version]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/distributed-arp-table.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index cf53404..954eb52 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -1199,6 +1199,7 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	__be32 ip_src, ip_dst;
 	u8 *hw_src, *hw_dst;
 	bool dropped = false;
+	struct batadv_dat_entry *dat_entry = NULL;
 	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
@@ -1218,12 +1219,41 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	hw_dst = batadv_arp_hw_dst(skb, hdr_size);
 	ip_dst = batadv_arp_ip_dst(skb, hdr_size);
 
+	/* If ip_dst is already in cache and has the right mac address,
+	 * drop this frame if this ARP reply is destined for us because it's
+	 * most probably an ARP reply generated by another node of the DHT.
+	 * We have most probably received already a reply earlier. Delivering
+	 * this frame would lead to doubled receive of an ARP reply.
+	 */
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_src, vid);
+	if (dat_entry && batadv_compare_eth(hw_src, dat_entry->mac_addr)) {
+		batadv_dbg(BATADV_DBG_DAT, bat_priv, "Doubled ARP reply removed: ARP MSG = [src: %pM-%pI4 dst: %pM-%pI4]; dat_entry: %pM-%pI4\n",
+			   hw_src, &ip_src, hw_dst, &ip_dst,
+			   dat_entry->mac_addr,	&dat_entry->ip);
+		dropped = true;
+		goto out;
+	}
+
 	/* Update our internal cache with both the IP addresses the node got
 	 * within the ARP reply
 	 */
 	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
 	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst, vid);
 
+	/* If BLA is enabled, only forward ARP replies if we have claimed the
+	 * source of the ARP reply or if no one else of the same backbone has
+	 * already claimed that client. This prevents that different gateways
+	 * to the same backbone all forward the ARP reply leading to multiple
+	 * replies in the backbone.
+	 */
+	if (!batadv_bla_check_claim(bat_priv, hw_src, vid)) {
+		batadv_dbg(BATADV_DBG_DAT, bat_priv,
+			   "Device %pM claimed by another backbone gw. Drop ARP reply.\n",
+			   hw_src);
+		dropped = true;
+		goto out;
+	}
+
 	/* if this REPLY is directed to a client of mine, let's deliver the
 	 * packet to the interface
 	 */
@@ -1236,6 +1266,8 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 out:
 	if (dropped)
 		kfree_skb(skb);
+	if (dat_entry)
+		batadv_dat_entry_put(dat_entry);
 	/* if dropped == false -> deliver to the interface */
 	return dropped;
 }
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [B.A.T.M.A.N.] [PATCH v7 3/5] batman-adv: drop unicast packets from other backbone gw
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 2/5] batman-adv: prevent duplication of ARP replies when DAT is used Sven Eckelmann
@ 2016-09-05 11:20 ` Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 4/5] batman-adv: changed debug messages for easier bla debugging Sven Eckelmann
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-05 11:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

From: Andreas Pape <APape@phoenixcontact.com>

Additional dropping of unicast packets received from another backbone gw of
the same backbone network before being forwarded to the same backbone again
is necessary. It was observed in a test setup that in rare cases these
frames lead to looping unicast traffic backbone->mesh->backbone.

Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
[sven@narfation.org: fix conflicts with current version]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/routing.c | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 7e8dc64..03631ee 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -918,14 +918,16 @@ int batadv_recv_unicast_packet(struct sk_buff *skb,
 	struct batadv_priv *bat_priv = netdev_priv(recv_if->soft_iface);
 	struct batadv_unicast_packet *unicast_packet;
 	struct batadv_unicast_4addr_packet *unicast_4addr_packet;
-	u8 *orig_addr;
-	struct batadv_orig_node *orig_node = NULL;
+	u8 *orig_addr, *orig_addr_gw;
+	struct batadv_orig_node *orig_node = NULL, *orig_node_gw = NULL;
 	int check, hdr_size = sizeof(*unicast_packet);
 	enum batadv_subtype subtype;
-	bool is4addr;
+	bool is4addr, is_gw;
+	struct ethhdr *ethhdr;
 
 	unicast_packet = (struct batadv_unicast_packet *)skb->data;
 	unicast_4addr_packet = (struct batadv_unicast_4addr_packet *)skb->data;
+	ethhdr = eth_hdr(skb);
 
 	is4addr = unicast_packet->packet_type == BATADV_UNICAST_4ADDR;
 	/* the caller function should have already pulled 2 bytes */
@@ -948,6 +950,23 @@ int batadv_recv_unicast_packet(struct sk_buff *skb,
 
 	/* packet for me */
 	if (batadv_is_my_mac(bat_priv, unicast_packet->dest)) {
+		/* If this is a unicast packet from another backgone gw,
+		 * drop it.
+		 */
+		orig_addr_gw = ethhdr->h_source;
+		orig_node_gw = batadv_orig_hash_find(bat_priv, orig_addr_gw);
+		if (orig_node_gw) {
+			is_gw = batadv_bla_is_backbone_gw(skb, orig_node_gw,
+							  hdr_size);
+			batadv_orig_node_put(orig_node_gw);
+			if (is_gw) {
+				batadv_dbg(BATADV_DBG_BLA, bat_priv,
+					   "Dropped unicast pkt received from another backbone gw %pM.\n",
+					   orig_addr_gw);
+				return NET_RX_DROP;
+			}
+		}
+
 		if (is4addr) {
 			subtype = unicast_4addr_packet->subtype;
 			batadv_dat_inc_counter(bat_priv, subtype);
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [B.A.T.M.A.N.] [PATCH v7 4/5] batman-adv: changed debug messages for easier bla debugging
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 2/5] batman-adv: prevent duplication of ARP replies when DAT is used Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 3/5] batman-adv: drop unicast packets from other backbone gw Sven Eckelmann
@ 2016-09-05 11:20 ` Sven Eckelmann
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 5/5] batman-adv: handle race condition for claims between gateways Sven Eckelmann
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-05 11:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

From: Andreas Pape <APape@phoenixcontact.com>

Some of the bla debug messages are extended and additional messages are
added for easier bla debugging. Some debug messages introduced with the
dat changes in prior patches of this patch series have been changed to
be more compliant to other existing debug messages.

Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
[sven@narfation.org: fix conflicts with current version]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/bridge_loop_avoidance.c | 18 ++++++++++++++----
 net/batman-adv/routing.c               |  2 +-
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 41ab4a6..b7f0fe7 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -740,8 +740,8 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
 			goto claim_free_ref;
 
 		batadv_dbg(BATADV_DBG_BLA, bat_priv,
-			   "bla_add_claim(): changing ownership for %pM, vid %d\n",
-			   mac, BATADV_PRINT_VID(vid));
+			   "bla_add_claim(): changing ownership for %pM, vid %d to gw %pM\n",
+			   mac, BATADV_PRINT_VID(vid), backbone_gw->orig);
 
 		remove_crc = true;
 	}
@@ -1296,10 +1296,13 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
 				goto skip;
 
 			batadv_dbg(BATADV_DBG_BLA, bat_priv,
-				   "bla_purge_claims(): %pM, vid %d, time out\n",
-				   claim->addr, claim->vid);
+				   "bla_purge_claims(): timed out.\n");
 
 purge_now:
+			batadv_dbg(BATADV_DBG_BLA, bat_priv,
+				   "bla_purge_claims(): %pM, vid %d\n",
+				   claim->addr, claim->vid);
+
 			batadv_handle_unclaim(bat_priv, primary_if,
 					      backbone_gw->orig,
 					      claim->addr, claim->vid);
@@ -1847,6 +1850,13 @@ bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
 		/* possible optimization: race for a claim */
 		/* No claim exists yet, claim it for us!
 		 */
+
+		batadv_dbg(BATADV_DBG_BLA, bat_priv,
+			   "bla_rx(): Unclaimed MAC %pM found. Claim it. Local: %s\n",
+			   ethhdr->h_source,
+			   batadv_is_my_client(bat_priv,
+					       ethhdr->h_source, vid) ?
+			   "yes" : "no");
 		batadv_handle_claim(bat_priv, primary_if,
 				    primary_if->net_dev->dev_addr,
 				    ethhdr->h_source, vid);
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 03631ee..194e974 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -961,7 +961,7 @@ int batadv_recv_unicast_packet(struct sk_buff *skb,
 			batadv_orig_node_put(orig_node_gw);
 			if (is_gw) {
 				batadv_dbg(BATADV_DBG_BLA, bat_priv,
-					   "Dropped unicast pkt received from another backbone gw %pM.\n",
+					   "recv_unicast_packet(): Dropped unicast pkt received from another backbone gw %pM.\n",
 					   orig_addr_gw);
 				return NET_RX_DROP;
 			}
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [B.A.T.M.A.N.] [PATCH v7 5/5] batman-adv: handle race condition for claims between gateways
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
                   ` (2 preceding siblings ...)
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 4/5] batman-adv: changed debug messages for easier bla debugging Sven Eckelmann
@ 2016-09-05 11:20 ` Sven Eckelmann
  2016-09-05 11:23 ` [B.A.T.M.A.N.] [PATCH v7 0/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-05 11:20 UTC (permalink / raw)
  To: b.a.t.m.a.n

From: Andreas Pape <APape@phoenixcontact.com>

Consider the following situation which has been found in a test setup:
Gateway B has claimed client C and gateway A has the same backbone
network as B. C sends a broad- or multicast to B and directly after
this packet decides to send another packet to A due to a better TQ
value. B will forward the broad-/multicast into the backbone as it is
the responsible gw and after that A will claim C as it has been
chosen by C as the best gateway. If it now happens that A claims C
before it has received the broad-/multicast forwarded by B (due to
backbone topology or due to some delay in B when forwarding the
packet) we get a critical situation: in the current code A will
immediately unclaim C when receiving the multicast due to the
roaming client scenario although the position of C has not changed
in the mesh. If this happens the multi-/broadcast forwarded by B
will be sent back into the mesh by A and we have looping packets
until one of the gateways claims C again.
In order to prevent this, unclaiming of a client due to the roaming
client scenario is only done after a certain time is expired after
the last claim of the client. 100 ms are used here, which should be
slow enough for big backbones and slow gateways but fast enough not
to break the roaming client use case.

Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
[sven@narfation.org: fix conflicts with current version]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 net/batman-adv/bridge_loop_avoidance.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index b7f0fe7..d0dc22c 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -1974,10 +1974,22 @@ bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
 		/* if yes, the client has roamed and we have
 		 * to unclaim it.
 		 */
-		batadv_handle_unclaim(bat_priv, primary_if,
-				      primary_if->net_dev->dev_addr,
-				      ethhdr->h_source, vid);
-		goto allow;
+		if (batadv_has_timed_out(claim->lasttime, 100)) {
+			/* only unclaim if the last claim entry is
+			 * older than 100 ms to make sure we really
+			 * have a roaming client here.
+			 */
+			batadv_dbg(BATADV_DBG_BLA, bat_priv, "bla_tx(): Roaming client %pM detected. Unclaim it.\n",
+				   ethhdr->h_source);
+			batadv_handle_unclaim(bat_priv, primary_if,
+					      primary_if->net_dev->dev_addr,
+					      ethhdr->h_source, vid);
+			goto allow;
+		} else {
+			batadv_dbg(BATADV_DBG_BLA, bat_priv, "bla_tx(): Race for claim %pM detected. Drop packet.\n",
+				   ethhdr->h_source);
+			goto handled;
+		}
 	}
 
 	/* check if it is a multicast/broadcast frame */
-- 
2.9.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [B.A.T.M.A.N.] [PATCH v7 0/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
                   ` (3 preceding siblings ...)
  2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 5/5] batman-adv: handle race condition for claims between gateways Sven Eckelmann
@ 2016-09-05 11:23 ` Sven Eckelmann
  2016-09-08  5:11 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
  2017-02-06  9:56 ` [B.A.T.M.A.N.] [PATCH v7 1/5] " Sven Eckelmann
  6 siblings, 0 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-05 11:23 UTC (permalink / raw)
  To: b.a.t.m.a.n

[-- Attachment #1: Type: text/plain, Size: 278 bytes --]

Hi,

this should actually should have ended in the cover letter:

The v7 version is just a rebased version of v6 [1] because Marek noticed that 
these patches don't apply anymore.

Kind regards,
	Sven

[1] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-July/015858.html

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [B.A.T.M.A.N.] Antwort: [PATCH v7 0/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
                   ` (4 preceding siblings ...)
  2016-09-05 11:23 ` [B.A.T.M.A.N.] [PATCH v7 0/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
@ 2016-09-08  5:11 ` Andreas Pape
  2016-09-08  5:43   ` Sven Eckelmann
  2017-02-06  9:56 ` [B.A.T.M.A.N.] [PATCH v7 1/5] " Sven Eckelmann
  6 siblings, 1 reply; 11+ messages in thread
From: Andreas Pape @ 2016-09-08  5:11 UTC (permalink / raw)
  To: b.a.t.m.a.n

Hello Sven,

thanks for updating the patchset. I am currently a little bit "cut off",
as the current batman-adv version does not compile anymore without a lot
of effort under the old kernel version I use. Therefore I started the work
of updating the kernel version on my devices. I think I will be able to
run the current batman version on my devices soon.

Am I expected to do anything else concerning the patchset? Sorry for my
lack of experience about how such an open source project works but as you
might have noticed this is the first time that I tried to contribute some
stuff.

Best regards,
Andreas


-----"B.A.T.M.A.N" <b.a.t.m.a.n-bounces@lists.open-mesh.org> schrieb: -----
An: b.a.t.m.a.n@lists.open-mesh.org
Von: Sven Eckelmann
Gesendet von: "B.A.T.M.A.N"
Datum: 05.09.2016 13:24
Betreff: [B.A.T.M.A.N.] [PATCH v7 0/5] batman-adv: prevent multiple ARP	replies sent by gateways if dat enabled

Hi,

this should actually should have ended in the cover letter:

The v7 version is just a rebased version of v6 [1] because Marek noticed that
these patches don't apply anymore.

Kind regards,
	Sven

[1] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-July/015858.html


[Anhang 'signature.asc' entfernt von Andreas Pape/Phoenix Contact]


..................................................................
PHOENIX CONTACT ELECTRONICS GmbH

Sitz der Gesellschaft / registered office of the company: 31812 Bad Pyrmont
USt-Id-Nr.: DE811742156
Amtsgericht Hannover HRB 100528 / district court Hannover HRB 100528
Geschäftsführer / Executive Board: Ulrich Leidecker, Christoph Leifer
__________________________________________________________________
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren, jegliche anderweitige Verwendung sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
----------------------------------------------------------------------------------------------------
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden.
___________________________________________________________________

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [B.A.T.M.A.N.] Antwort: [PATCH v7 0/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
  2016-09-08  5:11 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
@ 2016-09-08  5:43   ` Sven Eckelmann
  0 siblings, 0 replies; 11+ messages in thread
From: Sven Eckelmann @ 2016-09-08  5:43 UTC (permalink / raw)
  To: b.a.t.m.a.n

[-- Attachment #1: Type: text/plain, Size: 559 bytes --]

On Donnerstag, 8. September 2016 07:11:52 CEST Andreas Pape wrote:
[...]
> Am I expected to do anything else concerning the patchset?

No, everything fine at the moment. We are just waiting for Marek to have more
free time to check + apply the patches. :)

He was starting to merge them at the beginning of the week but complained that 
there are conflicts. I've just jumped in and fixed them for you because I 
hoped that they will be in the master branch by now. But it looks like this 
didn't work out. So lets see what Marek will say.

Kind regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
  2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
                   ` (5 preceding siblings ...)
  2016-09-08  5:11 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
@ 2017-02-06  9:56 ` Sven Eckelmann
  2017-02-06 11:48   ` Antonio Quartulli
  6 siblings, 1 reply; 11+ messages in thread
From: Sven Eckelmann @ 2017-02-06  9:56 UTC (permalink / raw)
  To: b.a.t.m.a.n; +Cc: a

[-- Attachment #1: Type: text/plain, Size: 1464 bytes --]

Hi,

On Montag, 5. September 2016 13:20:25 CET Sven Eckelmann wrote:
> From: Andreas Pape <APape@phoenixcontact.com>
> 
> If dat is enabled it must be made sure that only the backbone gw which has
> claimed the remote destination for the ARP request answers the ARP request
> directly if the MAC address is known due to the local dat table. This
> prevents multiple ARP replies in a common backbone if more than one
> gateway already knows the remote mac searched for in the ARP request.
[....]

Just in case someone it wondering why this wasn't applied yet. Antonio didn't 
like the patches and thus the patches were assigned to him in Patchwork [1]. 
It is currently unknown what problems he meant, but he created a branch under 
his namespace [2]. This branch only contains a re-factorization of the first 
patch (+ batadv_bla_check_claim/batadv_bla_is_my_claim behavior changes when 
batadv_primary_if_get_selected or batadv_claim_hash_find return NULL). We 
currently don't know whether this all or if he had more problems with these 
patches.

It is therefore currently unknown how to continue from here. Antonio, please 
provide a statement what we should do with the patches.

We don't want to add new patches before the v2017.0 release but maybe this is 
a candidate for v2017.1.

Kind regards,
	Sven

[1] https://patchwork.open-mesh.org/project/b.a.t.m.a.n./list/?delegate=7
[2] https://git.open-mesh.org/batman-adv.git/shortlog/refs/heads/ordex/bla_dat

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
  2017-02-06  9:56 ` [B.A.T.M.A.N.] [PATCH v7 1/5] " Sven Eckelmann
@ 2017-02-06 11:48   ` Antonio Quartulli
  2017-02-16 15:13     ` Antonio Quartulli
  0 siblings, 1 reply; 11+ messages in thread
From: Antonio Quartulli @ 2017-02-06 11:48 UTC (permalink / raw)
  To: Sven Eckelmann; +Cc: b.a.t.m.a.n

[-- Attachment #1: Type: text/plain, Size: 682 bytes --]

Hi,

On Mon, Feb 06, 2017 at 10:56:25AM +0100, Sven Eckelmann wrote:
> It is therefore currently unknown how to continue from here. Antonio, please 
> provide a statement what we should do with the patches.

There were two issues here:
1) the code was not really following the kernel style and I started my branch to
"smoothen" it a little bit and possibly re-propose it to the mailing list;

2) in one of the patches I found a logical issue that needed some rework.
Unfortunately, I can't recall exactly where the issue was. I'd need to dig
again into the code. I can have a look later this week and let you know what I
find.


Cheers,


-- 
Antonio Quartulli

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled
  2017-02-06 11:48   ` Antonio Quartulli
@ 2017-02-16 15:13     ` Antonio Quartulli
  0 siblings, 0 replies; 11+ messages in thread
From: Antonio Quartulli @ 2017-02-16 15:13 UTC (permalink / raw)
  To: Sven Eckelmann, Simon Wunderlich; +Cc: b.a.t.m.a.n

[-- Attachment #1: Type: text/plain, Size: 957 bytes --]

Hi,

On Mon, Feb 06, 2017 at 07:48:23PM +0800, Antonio Quartulli wrote:
> Hi,
> 
> On Mon, Feb 06, 2017 at 10:56:25AM +0100, Sven Eckelmann wrote:
> > It is therefore currently unknown how to continue from here. Antonio, please 
> > provide a statement what we should do with the patches.
> 
> There were two issues here:
> 1) the code was not really following the kernel style and I started my branch to
> "smoothen" it a little bit and possibly re-propose it to the mailing list;
> 

I pushed my ordex/bla_dat branch after rebasing it on top of current master.

Patch 1 and 2 are ok for me.

The doubts I had were about the rest, which is mostly about rearrangement of
BLA.

@Simon, I think here I'd need you to give a deep look to understand what could
possibly go wrong in the cases described. These changes may violate some of the
scenarios fixed by BLA..

Could you please have a look?


Cheers,

-- 
Antonio Quartulli

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-02-16 15:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-05 11:20 [B.A.T.M.A.N.] [PATCH v7 1/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 2/5] batman-adv: prevent duplication of ARP replies when DAT is used Sven Eckelmann
2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 3/5] batman-adv: drop unicast packets from other backbone gw Sven Eckelmann
2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 4/5] batman-adv: changed debug messages for easier bla debugging Sven Eckelmann
2016-09-05 11:20 ` [B.A.T.M.A.N.] [PATCH v7 5/5] batman-adv: handle race condition for claims between gateways Sven Eckelmann
2016-09-05 11:23 ` [B.A.T.M.A.N.] [PATCH v7 0/5] batman-adv: prevent multiple ARP replies sent by gateways if dat enabled Sven Eckelmann
2016-09-08  5:11 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
2016-09-08  5:43   ` Sven Eckelmann
2017-02-06  9:56 ` [B.A.T.M.A.N.] [PATCH v7 1/5] " Sven Eckelmann
2017-02-06 11:48   ` Antonio Quartulli
2017-02-16 15:13     ` Antonio Quartulli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.