From 05da6ef2ca59ed9b225c3d2874f15d53dda8d00c Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 6 Mar 2020 19:59:11 +0100
Subject: [PATCH] batman-adv: upgrade package to latest release 2020.0

* support latest kernels (3.16 - 5.6)
* coding style cleanups and refactoring
* use wifi tx rates as fallback for the B.A.T.M.A.N. V throughput estimation
* disable deprecated sysfs support by default
* bugs squashed:

  - fix crash during the scheduling of OGMs for removed interfaces

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 batman-adv/Config.in          | 1 -
 batman-adv/Makefile           | 6 +++---
 batman-adv/src/compat-hacks.h | 9 +++++++++
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/batman-adv/Config.in b/batman-adv/Config.in
index 8995cdb..70cc48f 100644
--- a/batman-adv/Config.in
+++ b/batman-adv/Config.in
@@ -89,7 +89,6 @@ config BATMAN_ADV_DEBUG
 config BATMAN_ADV_SYSFS
 	bool "batman-adv sysfs entries"
 	depends on PACKAGE_kmod-batman-adv
-	default y
 	help
 	  Say Y here if you want to enable batman-adv device configuration and
 	  status interface through sysfs attributes. It is replaced by the
diff --git a/batman-adv/Makefile b/batman-adv/Makefile
index 44a6e4b..88f4cde 100644
--- a/batman-adv/Makefile
+++ b/batman-adv/Makefile
@@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=batman-adv
 
-PKG_VERSION:=2019.5
-PKG_RELEASE:=0
-PKG_HASH:=29fd11b07842f40fee1782bf7ea512278fc4e483bac3c52cf74f8af0f6fe28ec
+PKG_VERSION:=2020.0
+PKG_RELEASE:=1
+PKG_HASH:=a12a32d1ec65b94b54ca86e6f31ac1b947bf04449aad0c96dfe936746bd0c585
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
diff --git a/batman-adv/src/compat-hacks.h b/batman-adv/src/compat-hacks.h
index 2085767..fd6cfe1 100644
--- a/batman-adv/src/compat-hacks.h
+++ b/batman-adv/src/compat-hacks.h
@@ -17,6 +17,15 @@
 #endif /* < KERNEL_VERSION(4, 15, 0) */
 
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)
+
+#ifndef sizeof_field
+#define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER))
+#endif
+
+#endif /* < KERNEL_VERSION(4, 16, 0) */
+
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
 
 #include_next <linux/igmp.h>