Re: [PATCH 0/4] pull request for net-next: batman-adv 2020-06-26

2020-06-30 Thread David Miller
From: Simon Wunderlich 
Date: Tue, 30 Jun 2020 10:27:27 +0200

> here is a little feature/cleanup pull request of batman-adv to go into 
> net-next.
> 
> Please pull or let me know of any problem!

Pulled, thanks Simon.


[PATCH 2/4] batman-adv: Switch mailing list subscription page

2020-06-30 Thread Simon Wunderlich
From: Sven Eckelmann 

The mailman installation on lists.open-mesh.org was switched from mailman2
to mailman3. The URL to the subscription webpage changed in this process.

Signed-off-by: Sven Eckelmann 
Signed-off-by: Simon Wunderlich 
---
 Documentation/networking/batman-adv.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/networking/batman-adv.rst 
b/Documentation/networking/batman-adv.rst
index 18020943ba25..02af49b08635 100644
--- a/Documentation/networking/batman-adv.rst
+++ b/Documentation/networking/batman-adv.rst
@@ -160,7 +160,7 @@ IRC:
   #batman on irc.freenode.org
 Mailing-list:
   b.a.t.m@open-mesh.org (optional subscription at
-  https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n)
+  
https://lists.open-mesh.org/mailman3/postorius/lists/b.a.t.m.a.n.lists.open-mesh.org/)
 
 You can also contact the Authors:
 
-- 
2.20.1


[PATCH 3/4] batman-adv: Fix typos and grammar in documentation

2020-06-30 Thread Simon Wunderlich
From: Sven Eckelmann 

Signed-off-by: Sven Eckelmann 
Signed-off-by: Simon Wunderlich 
---
 Documentation/networking/batman-adv.rst |  6 +--
 include/uapi/linux/batadv_packet.h  | 50 -
 include/uapi/linux/batman_adv.h |  4 +-
 net/batman-adv/bat_iv_ogm.c |  8 ++--
 net/batman-adv/bat_v_elp.c  | 10 ++---
 net/batman-adv/bat_v_ogm.c  | 14 +++
 net/batman-adv/bridge_loop_avoidance.c  |  6 +--
 net/batman-adv/distributed-arp-table.c  |  2 +-
 net/batman-adv/fragmentation.c  |  6 +--
 net/batman-adv/hard-interface.c | 14 +++
 net/batman-adv/log.h|  6 +--
 net/batman-adv/main.c   |  2 +-
 net/batman-adv/main.h   |  6 +--
 net/batman-adv/multicast.c  | 21 ++-
 net/batman-adv/netlink.c|  2 +-
 net/batman-adv/network-coding.c | 14 +++
 net/batman-adv/originator.c |  8 ++--
 net/batman-adv/routing.c|  4 +-
 net/batman-adv/send.c   |  4 +-
 net/batman-adv/soft-interface.c |  2 +-
 net/batman-adv/tp_meter.c   | 12 +++---
 net/batman-adv/translation-table.c  | 10 ++---
 net/batman-adv/tvlv.c   |  4 +-
 net/batman-adv/types.h  | 12 +++---
 24 files changed, 114 insertions(+), 113 deletions(-)

diff --git a/Documentation/networking/batman-adv.rst 
b/Documentation/networking/batman-adv.rst
index 02af49b08635..74821d29a22f 100644
--- a/Documentation/networking/batman-adv.rst
+++ b/Documentation/networking/batman-adv.rst
@@ -73,7 +73,7 @@ lower value. This will make the mesh more responsive to 
topology changes, but
 will also increase the overhead.
 
 Information about the current state can be accessed via the batadv generic
-netlink family. batctl provides human readable version via its debug tables
+netlink family. batctl provides a human readable version via its debug tables
 subcommands.
 
 
@@ -115,8 +115,8 @@ are prefixed with "batman-adv:" So to see just these 
messages try::
   $ dmesg | grep batman-adv
 
 When investigating problems with your mesh network, it is sometimes necessary 
to
-see more detail debug messages. This must be enabled when compiling the
-batman-adv module. When building batman-adv as part of kernel, use "make
+see more detailed debug messages. This must be enabled when compiling the
+batman-adv module. When building batman-adv as part of the kernel, use "make
 menuconfig" and enable the option ``B.A.T.M.A.N. debugging``
 (``CONFIG_BATMAN_ADV_DEBUG=y``).
 
diff --git a/include/uapi/linux/batadv_packet.h 
b/include/uapi/linux/batadv_packet.h
index 0ae34c85ef9e..9c8604c5b5f6 100644
--- a/include/uapi/linux/batadv_packet.h
+++ b/include/uapi/linux/batadv_packet.h
@@ -72,8 +72,8 @@ enum batadv_subtype {
 
 /**
  * enum batadv_iv_flags - flags used in B.A.T.M.A.N. IV OGM packets
- * @BATADV_NOT_BEST_NEXT_HOP: flag is set when ogm packet is forwarded and was
- * previously received from someone else than the best neighbor.
+ * @BATADV_NOT_BEST_NEXT_HOP: flag is set when the ogm packet is forwarded and
+ *  was previously received from someone other than the best neighbor.
  * @BATADV_PRIMARIES_FIRST_HOP: flag unused.
  * @BATADV_DIRECTLINK: flag is for the first hop or if rebroadcasted from a
  * one hop neighbor on the interface where it was originally received.
@@ -195,8 +195,8 @@ struct batadv_bla_claim_dst {
 /**
  * struct batadv_ogm_packet - ogm (routing protocol) packet
  * @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the genereal header
- * @ttl: time to live for this packet, part of the genereal header
+ * @version: batman-adv protocol version, part of the general header
+ * @ttl: time to live for this packet, part of the general header
  * @flags: contains routing relevant flags - see enum batadv_iv_flags
  * @seqno: sequence identification
  * @orig: address of the source node
@@ -247,7 +247,7 @@ struct batadv_ogm2_packet {
 /**
  * struct batadv_elp_packet - elp (neighbor discovery) packet
  * @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the genereal header
+ * @version: batman-adv protocol version, part of the general header
  * @orig: originator mac address
  * @seqno: sequence number
  * @elp_interval: currently used ELP sending interval in ms
@@ -265,15 +265,15 @@ struct batadv_elp_packet {
 /**
  * struct batadv_icmp_header - common members among all the ICMP packets
  * @packet_type: batman-adv packet type, part of the general header
- * @version: batman-adv protocol version, part of the genereal header
- * @ttl: time to live for this packet, part of the genereal header
+ * @version: batman-adv protocol version, part of the general header
+ * @ttl: time to live for this packet, part of the general header
  * @msg_type: ICMP packet type
  * @dst:

[PATCH 1/4] batman-adv: Start new development cycle

2020-06-30 Thread Simon Wunderlich
Signed-off-by: Simon Wunderlich 
---
 net/batman-adv/main.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index 61d8dbe8c954..42b8d1e76dea 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -13,7 +13,7 @@
 #define BATADV_DRIVER_DEVICE "batman-adv"
 
 #ifndef BATADV_SOURCE_VERSION
-#define BATADV_SOURCE_VERSION "2020.2"
+#define BATADV_SOURCE_VERSION "2020.3"
 #endif
 
 /* B.A.T.M.A.N. parameters */
-- 
2.20.1


[PATCH 4/4] batman-adv: Introduce a configurable per interface hop penalty

2020-06-30 Thread Simon Wunderlich
From: Linus Lüssing 

In some setups multiple hard interfaces with similar link qualities
or throughput values are available. But people have expressed the desire
to consider one of them as a backup only.

Some creative solutions are currently in use: Such people are
configuring multiple batman-adv mesh/soft interfaces, wire them
together with some veth pairs and then tune the hop penalty to achieve
an effect similar to a tunable per interface hop penalty.

This patch introduces a new, configurable, per hard interface hop penalty
to simplify such setups.

Signed-off-by: Linus Lüssing 
Signed-off-by: Sven Eckelmann 
Signed-off-by: Simon Wunderlich 
---
 include/uapi/linux/batman_adv.h |  3 ++-
 net/batman-adv/bat_iv_ogm.c | 17 +
 net/batman-adv/bat_v_ogm.c  | 13 ++---
 net/batman-adv/hard-interface.c |  2 ++
 net/batman-adv/netlink.c| 12 +++-
 net/batman-adv/types.h  |  6 ++
 6 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/include/uapi/linux/batman_adv.h b/include/uapi/linux/batman_adv.h
index 8cf2ad11ead9..bb0ae945b36a 100644
--- a/include/uapi/linux/batman_adv.h
+++ b/include/uapi/linux/batman_adv.h
@@ -427,7 +427,8 @@ enum batadv_nl_attrs {
 
/**
 * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied
-*  to an originator message's tq-field on every hop.
+*  to an originator message's tq-field on every hop and/or per
+*  hard interface
 */
BATADV_ATTR_HOP_PENALTY,
 
diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
index 5b3a41983156..a4faf5f904d9 100644
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -1075,10 +1075,10 @@ static bool batadv_iv_ogm_calc_tq(struct 
batadv_orig_node *orig_node,
struct batadv_neigh_ifinfo *neigh_ifinfo;
u8 total_count;
u8 orig_eq_count, neigh_rq_count, neigh_rq_inv, tq_own;
+   unsigned int tq_iface_hop_penalty = BATADV_TQ_MAX_VALUE;
unsigned int neigh_rq_inv_cube, neigh_rq_max_cube;
unsigned int tq_asym_penalty, inv_asym_penalty;
unsigned int combined_tq;
-   unsigned int tq_iface_penalty;
bool ret = false;
 
/* find corresponding one hop neighbor */
@@ -1157,31 +1157,32 @@ static bool batadv_iv_ogm_calc_tq(struct 
batadv_orig_node *orig_node,
inv_asym_penalty = BATADV_TQ_MAX_VALUE * neigh_rq_inv_cube;
inv_asym_penalty /= neigh_rq_max_cube;
tq_asym_penalty = BATADV_TQ_MAX_VALUE - inv_asym_penalty;
+   tq_iface_hop_penalty -= atomic_read(&if_incoming->hop_penalty);
 
/* penalize if the OGM is forwarded on the same interface. WiFi
 * interfaces and other half duplex devices suffer from throughput
 * drops as they can't send and receive at the same time.
 */
-   tq_iface_penalty = BATADV_TQ_MAX_VALUE;
if (if_outgoing && if_incoming == if_outgoing &&
batadv_is_wifi_hardif(if_outgoing))
-   tq_iface_penalty = batadv_hop_penalty(BATADV_TQ_MAX_VALUE,
- bat_priv);
+   tq_iface_hop_penalty = batadv_hop_penalty(tq_iface_hop_penalty,
+ bat_priv);
 
combined_tq = batadv_ogm_packet->tq *
  tq_own *
  tq_asym_penalty *
- tq_iface_penalty;
+ tq_iface_hop_penalty;
combined_tq /= BATADV_TQ_MAX_VALUE *
   BATADV_TQ_MAX_VALUE *
   BATADV_TQ_MAX_VALUE;
batadv_ogm_packet->tq = combined_tq;
 
batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
-  "bidirectional: orig = %pM neigh = %pM => own_bcast = %2i, 
real recv = %2i, local tq: %3i, asym_penalty: %3i, iface_penalty: %3i, total 
tq: %3i, if_incoming = %s, if_outgoing = %s\n",
+  "bidirectional: orig = %pM neigh = %pM => own_bcast = %2i, 
real recv = %2i, local tq: %3i, asym_penalty: %3i, iface_hop_penalty: %3i, 
total tq: %3i, if_incoming = %s, if_outgoing = %s\n",
   orig_node->orig, orig_neigh_node->orig, total_count,
-  neigh_rq_count, tq_own, tq_asym_penalty, tq_iface_penalty,
-  batadv_ogm_packet->tq, if_incoming->net_dev->name,
+  neigh_rq_count, tq_own, tq_asym_penalty,
+  tq_iface_hop_penalty, batadv_ogm_packet->tq,
+  if_incoming->net_dev->name,
   if_outgoing ? if_outgoing->net_dev->name : "DEFAULT");
 
/* if link has the minimum required transmission quality
diff --git a/net/batman-adv/bat_v_ogm.c b/net/batman-adv/bat_v_ogm.c
index 0d404f7bcd9f..0f8495b9eeb1 100644
--- a/net/batman-adv/bat_v_ogm.c
+++ b/net/batman-adv/bat_v_ogm.c
@@ -455,15 +455,17 @@ void batadv_v_ogm_primary_iface_set(struct 
batadv_hard_iface *primary_iface)
  * @throughput: the current throughput
  *
  *

[PATCH 0/4] pull request for net-next: batman-adv 2020-06-26

2020-06-30 Thread Simon Wunderlich
Hi David,

here is a little feature/cleanup pull request of batman-adv to go into net-next.

Please pull or let me know of any problem!

Thank you,
  Simon

The following changes since commit b3a9e3b9622ae10064826dccb4f7a52bd88c7407:

  Linux 5.8-rc1 (2020-06-14 12:45:04 -0700)

are available in the Git repository at:

  git://git.open-mesh.org/linux-merge.git tags/batadv-next-for-davem-20200630

for you to fetch changes up to 3bda14d09dc5789a895ab02b7dcfcec19b0a65b3:

  batman-adv: Introduce a configurable per interface hop penalty (2020-06-26 
10:37:11 +0200)


This feature/cleanup patchset includes the following patches:

 - bump version strings, by Simon Wunderlich

 - update mailing list URL, by Sven Eckelmann

 - fix typos and grammar in documentation, by Sven Eckelmann

 - introduce a configurable per interface hop penalty,
   by Linus Luessing


Linus Lüssing (1):
  batman-adv: Introduce a configurable per interface hop penalty

Simon Wunderlich (1):
  batman-adv: Start new development cycle

Sven Eckelmann (2):
  batman-adv: Switch mailing list subscription page
  batman-adv: Fix typos and grammar in documentation

 Documentation/networking/batman-adv.rst |  8 +++---
 include/uapi/linux/batadv_packet.h  | 50 -
 include/uapi/linux/batman_adv.h |  7 +++--
 net/batman-adv/bat_iv_ogm.c | 25 +
 net/batman-adv/bat_v_elp.c  | 10 +++
 net/batman-adv/bat_v_ogm.c  | 27 +++---
 net/batman-adv/bridge_loop_avoidance.c  |  6 ++--
 net/batman-adv/distributed-arp-table.c  |  2 +-
 net/batman-adv/fragmentation.c  |  6 ++--
 net/batman-adv/hard-interface.c | 16 ++-
 net/batman-adv/log.h|  6 ++--
 net/batman-adv/main.c   |  2 +-
 net/batman-adv/main.h   |  8 +++---
 net/batman-adv/multicast.c  | 21 +++---
 net/batman-adv/netlink.c| 14 +++--
 net/batman-adv/network-coding.c | 14 -
 net/batman-adv/originator.c |  8 +++---
 net/batman-adv/routing.c|  4 +--
 net/batman-adv/send.c   |  4 +--
 net/batman-adv/soft-interface.c |  2 +-
 net/batman-adv/tp_meter.c   | 12 
 net/batman-adv/translation-table.c  | 10 +++
 net/batman-adv/tvlv.c   |  4 +--
 net/batman-adv/types.h  | 18 
 24 files changed, 156 insertions(+), 128 deletions(-)