Merge pull request #390 from aparcar/alfred_procd
authorMoritz Warning <moritzwarning@web.de>
Fri, 20 Jul 2018 12:22:52 +0000 (14:22 +0200)
committerGitHub <noreply@github.com>
Fri, 20 Jul 2018 12:22:52 +0000 (14:22 +0200)
alfred: use procd fix #388

36 files changed:
babel-pinger/Makefile
babeld/Makefile
batctl/Makefile
batman-adv/Config.in
batman-adv/Makefile
batman-adv/files/compat-hacks.h [deleted file]
batman-adv/files/etc/config/batman-adv
batman-adv/files/lib/netifd/proto/batadv.sh [changed mode: 0644->0755]
batman-adv/files/lib/netifd/proto/batadv_vlan.sh [changed mode: 0644->0755]
batman-adv/patches/0002-batman-adv-Avoid-race-in-TT-TVLV-allocator-helper.patch [deleted file]
batman-adv/patches/0003-batman-adv-Fix-TT-sync-flags-for-intermediate-TT-res.patch [deleted file]
batman-adv/patches/0004-batman-adv-prevent-TT-request-storms-by-not-sending-.patch [deleted file]
batman-adv/patches/0005-batman-adv-don-t-implement-skb_postpush_rcsum-for-li.patch [deleted file]
batman-adv/patches/0006-batman-adv-Fix-bat_ogm_iv-best-gw-refcnt-after-netli.patch [deleted file]
batman-adv/patches/0007-batman-adv-Fix-bat_v-best-gw-refcnt-after-netlink-du.patch [deleted file]
batman-adv/patches/0008-batman-adv-Fix-debugfs-path-for-renamed-hardif.patch [deleted file]
batman-adv/patches/0009-batman-adv-Fix-debugfs-path-for-renamed-softif.patch [deleted file]
batman-adv/patches/0010-batman-adv-Avoid-storing-non-TT-sync-flags-on-singul.patch [deleted file]
batman-adv/patches/0011-batman-adv-Fix-multicast-TT-issues-with-bogus-ROAM-f.patch [deleted file]
batman-adv/src/compat-hacks.h [new file with mode: 0644]
batmand/Makefile
bird2/Makefile
bmx6/Makefile
bmx7/Makefile
mcproxy/Makefile
minimalist-pcproxy/Makefile
mrd6/Makefile
ndppd/Makefile
ndppd/patches/0001-Fix-issue-2-ndppd-d-monizes-too-early.patch [deleted file]
ndppd/patches/0002-upstream-cast-fix.patch [deleted file]
nodogsplash/Makefile
ohybridproxy/Makefile
olsrd/Makefile
pimbd/Makefile
quagga/Makefile
vis/Makefile

index 40e7b1a3eb1c04052b8624f0acf844dd268639b4..052f467a719c7380f53c2a5b38159648f2366484 100644 (file)
@@ -10,7 +10,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.pps.univ-paris-diderot.fr/~jch/software/files/
-PKG_MD5SUM:=40d4931986913f5f8d9b5b70abf6fda5
+PKG_HASH:=c411430bb102f08d3d68d2fb5010b5da0149908b671ac0fb12abd8c8ee6380c5
 
 include $(INCLUDE_DIR)/package.mk
 
index 5cf136d2b856a19d9e7e149ad551e65eeb0c969c..f4c65c9bc2a59452a57d3f589bb726a5ea9a78de 100644 (file)
@@ -13,7 +13,6 @@ PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
-PKG_MD5SUM:=eec395ade02524b3f351507a21742939
 PKG_HASH:=07edecb132386d5561a767482bc5200e04239b18e48c2f0f47ae1c78d60fe5dc
 PKG_LICENSE:=MIT
 
index ae878a6c8875b4856bb3f1a37e41c0871a3cb815..b625ccdd9a6305549806fe0cb2dd08e5778feee4 100644 (file)
@@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=batctl
 
-PKG_VERSION:=2018.1
+PKG_VERSION:=2018.2
 PKG_RELEASE:=0
-PKG_HASH:=27877d0da6916f88a6cecbbb3f3d23cc4558ef7c7294324bf4fd050ed606b553
+PKG_HASH:=dff0c9bc7597bd11a040768f3953b35e9816fbd275304981853762173d817d25
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
@@ -69,10 +69,6 @@ define Build/Compile
        $(MAKE_BATCTL_ENV) $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_BATCTL_ARGS)
 endef
 
-define Build/Clean
-       rm -rf $(BUILD_DIR)/$(PKG_NAME)/
-endef
-
 define Package/batctl/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/sbin/
index 1b2399fc0ba6fecb8b9dd7c1abf3a0d791ae4621..c56a4b3bf4919fea95979972d8d2f44ea7d19ffa 100644 (file)
@@ -17,7 +17,7 @@ config KMOD_BATMAN_ADV_DAT
 config KMOD_BATMAN_ADV_DEBUGFS
        bool "enable debugfs support"
        depends on PACKAGE_kmod-batman-adv
-       default y
+       default n
 
 config KMOD_BATMAN_ADV_MCAST
        bool "enable multicast transmission optimization"
index bf8b94688a484f45a0800597847803f30c5f182e..8dbf4330c92d4bfec45f07ab0717c56c61b62c72 100644 (file)
@@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=batman-adv
 
-PKG_VERSION:=2018.1
-PKG_RELEASE:=2
-PKG_HASH:=b866b28dbbe5c9238abbdf5abbc30fc526dea56898ce4c1bd76d5c017843048b
+PKG_VERSION:=2018.2
+PKG_RELEASE:=0
+PKG_HASH:=d8e35626673e19f5e26860d49af897878975515a5abe6917f339dd8aeca2b8c9
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
@@ -27,7 +27,7 @@ define KernelPackage/batman-adv
   DEPENDS:=+KMOD_BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-crypto-crc32c +kmod-lib-crc32c +kmod-cfg80211
   TITLE:=B.A.T.M.A.N. Adv
   FILES:=$(PKG_BUILD_DIR)/net/batman-adv/batman-adv.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,50,cfg80211 batman-adv)
+  AUTOLOAD:=$(call AutoProbe,batman-adv)
 endef
 
 define KernelPackage/batman-adv/description
@@ -85,22 +85,8 @@ define Build/Compile
                modules
 endef
 
-define Build/Prepare
-       $(call Build/Prepare/Default)
-       $(CP) ./files/compat-hacks.h $(PKG_BUILD_DIR)/
-endef
-
-define Build/Clean
-        rm -rf $(BUILD_DIR)/$(PKG_NAME)/
-endef
-
 define KernelPackage/batman-adv/install
-       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/etc/hotplug.d/iface $(1)/lib/batman-adv $(1)/usr/sbin $(1)/lib/netifd/proto
-       $(INSTALL_DATA) ./files/etc/config/batman-adv $(1)/etc/config
-       $(INSTALL_DATA) ./files/lib/batman-adv/config.sh $(1)/lib/batman-adv
-       $(INSTALL_BIN) ./files/etc/hotplug.d/net/99-batman-adv $(1)/etc/hotplug.d/net
-       $(INSTALL_BIN) ./files/lib/netifd/proto/batadv.sh $(1)/lib/netifd/proto
-       $(INSTALL_BIN) ./files/lib/netifd/proto/batadv_vlan.sh $(1)/lib/netifd/proto
+       $(CP) ./files/. $(1)/
 endef
 
 $(eval $(call KernelPackage,batman-adv))
diff --git a/batman-adv/files/compat-hacks.h b/batman-adv/files/compat-hacks.h
deleted file mode 100644 (file)
index d35cece..0000000
+++ /dev/null
@@ -1,440 +0,0 @@
-/* Please avoid adding hacks here - instead add it to mac80211/backports.git */
-
-#undef CONFIG_MODULE_STRIPPED
-
-#include <linux/version.h>     /* LINUX_VERSION_CODE */
-#include <linux/types.h>
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-
-#define dev_get_iflink(_net_dev) ((_net_dev)->iflink)
-
-#endif /* < KERNEL_VERSION(4, 1, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
-
-/* Linux 3.15 misses the uapi include.... */
-#include <uapi/linux/nl80211.h>
-
-#endif /* < KERNEL_VERSION(3, 16, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
-
-#include <linux/netdevice.h>
-
-#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info, extack) ({\
-       BUILD_BUG_ON(upper_priv != NULL); \
-       BUILD_BUG_ON(upper_info != NULL); \
-       BUILD_BUG_ON(extack != NULL); \
-       netdev_set_master(dev, upper_dev); \
-})
-
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
-
-#include <linux/netdevice.h>
-
-#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info, extack) ({\
-       BUILD_BUG_ON(upper_priv != NULL); \
-       BUILD_BUG_ON(upper_info != NULL); \
-       BUILD_BUG_ON(extack != NULL); \
-       netdev_master_upper_dev_link(dev, upper_dev); \
-})
-
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
-
-#include <linux/netdevice.h>
-
-#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info, extack) ({\
-       BUILD_BUG_ON(extack != NULL); \
-       netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info); \
-})
-
-#endif /* < KERNEL_VERSION(4, 5, 0) */
-
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
-
-/* for batadv_v_elp_get_throughput which would have used
- * STATION_INFO_EXPECTED_THROUGHPUT in Linux 4.0.0
- */
-#define NL80211_STA_INFO_EXPECTED_THROUGHPUT    28
-
-/* wild hack for batadv_getlink_net only */
-#define get_link_net get_xstats_size || 1 ? fallback_net : (struct net*)netdev->rtnl_link_ops->get_xstats_size
-
-#endif /* < KERNEL_VERSION(4, 0, 0) */
-
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
-
-struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
-                                    unsigned int transport_len,
-                                    __sum16(*skb_chkf)(struct sk_buff *skb));
-
-int ip_mc_check_igmp(struct sk_buff *skb, struct sk_buff **skb_trimmed);
-
-int ipv6_mc_check_mld(struct sk_buff *skb, struct sk_buff **skb_trimmed);
-
-#endif /* < KERNEL_VERSION(4, 2, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
-
-#define IFF_NO_QUEUE   0; dev->tx_queue_len = 0
-
-static inline bool hlist_fake(struct hlist_node *h)
-{
-       return h->pprev == &h->next;
-}
-
-#endif /* < KERNEL_VERSION(4, 3, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-
-#include <linux/ethtool.h>
-
-#define ethtool_link_ksettings batadv_ethtool_link_ksettings
-
-struct batadv_ethtool_link_ksettings {
-       struct {
-               __u32   speed;
-               __u8    duplex;
-       } base;
-};
-
-#define __ethtool_get_link_ksettings(__dev, __link_settings) \
-       batadv_ethtool_get_link_ksettings(__dev, __link_settings)
-
-static inline int
-batadv_ethtool_get_link_ksettings(struct net_device *dev,
-                                 struct ethtool_link_ksettings *link_ksettings)
-{
-       struct ethtool_cmd cmd;
-       int ret;
-
-       memset(&cmd, 0, sizeof(cmd));
-       ret = __ethtool_get_settings(dev, &cmd);
-
-       if (ret != 0)
-               return ret;
-
-       link_ksettings->base.duplex = cmd.duplex;
-       link_ksettings->base.speed = ethtool_cmd_speed(&cmd);
-
-       return 0;
-}
-
-#endif /* < KERNEL_VERSION(4, 6, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
-
-#ifdef netif_trans_update
-#undef netif_trans_update
-#endif
-
-#define netif_trans_update batadv_netif_trans_update
-static inline void batadv_netif_trans_update(struct net_device *dev)
-{
-       dev->trans_start = jiffies;
-}
-
-#endif /* < KERNEL_VERSION(4, 7, 0) */
-
-
-#include_next <linux/netlink.h>
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
-
-#include_next <net/netlink.h>
-
-static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb);
-
-static inline int batadv_nla_align_64bit(struct sk_buff *skb, int padattr)
-{
-       if (batadv_nla_need_padding_for_64bit(skb) &&
-           !nla_reserve(skb, padattr, 0))
-               return -EMSGSIZE;
-
-       return 0;
-}
-
-static inline struct nlattr *batadv__nla_reserve_64bit(struct sk_buff *skb,
-                                                      int attrtype,
-                                                      int attrlen, int padattr)
-{
-       if (batadv_nla_need_padding_for_64bit(skb))
-               batadv_nla_align_64bit(skb, padattr);
-
-       return __nla_reserve(skb, attrtype, attrlen);
-}
-
-static inline void batadv__nla_put_64bit(struct sk_buff *skb, int attrtype,
-                                        int attrlen, const void *data,
-                                        int padattr)
-{
-       struct nlattr *nla;
-
-       nla = batadv__nla_reserve_64bit(skb, attrtype, attrlen, padattr);
-       memcpy(nla_data(nla), data, attrlen);
-}
-
-static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb)
-{
-#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
-       /* The nlattr header is 4 bytes in size, that's why we test
-        * if the skb->data _is_ aligned.  A NOP attribute, plus
-        * nlattr header for next attribute, will make nla_data()
-        * 8-byte aligned.
-        */
-       if (IS_ALIGNED((unsigned long)skb_tail_pointer(skb), 8))
-               return true;
-#endif
-       return false;
-}
-
-static inline int batadv_nla_total_size_64bit(int payload)
-{
-       return NLA_ALIGN(nla_attr_size(payload))
-#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
-               + NLA_ALIGN(nla_attr_size(0))
-#endif
-               ;
-}
-
-static inline int batadv_nla_put_64bit(struct sk_buff *skb, int attrtype,
-                                      int attrlen, const void *data,
-                                      int padattr)
-{
-       size_t len;
-
-       if (batadv_nla_need_padding_for_64bit(skb))
-               len = batadv_nla_total_size_64bit(attrlen);
-       else
-               len = nla_total_size(attrlen);
-       if (unlikely(skb_tailroom(skb) < len))
-               return -EMSGSIZE;
-
-       batadv__nla_put_64bit(skb, attrtype, attrlen, data, padattr);
-       return 0;
-}
-
-#ifdef nla_put_u64_64bit
-#undef nla_put_u64_64bit
-#endif
-
-#define nla_put_u64_64bit(_skb, _attrtype, _value, _padattr) \
-       batadv_nla_put_u64_64bit(_skb, _attrtype, _value, _padattr)
-static inline int batadv_nla_put_u64_64bit(struct sk_buff *skb, int attrtype,
-                                          u64 value, int padattr)
-{
-       return batadv_nla_put_64bit(skb, attrtype, sizeof(u64), &value,
-                                   padattr);
-}
-
-#endif /* < KERNEL_VERSION(4, 7, 0) */
-
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
-
-#include_next <linux/cache.h>
-
-/* hack for netlink.c which marked the family ops as ro */
-#ifdef __ro_after_init
-#undef __ro_after_init
-#endif
-#define __ro_after_init
-
-#endif /* < KERNEL_VERSION(4, 10, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 9)
-
-#include <linux/netdevice.h>
-
-/* work around missing attribute needs_free_netdev and priv_destructor in
- * net_device
- */
-#define ether_setup(dev) \
-       void batadv_softif_free2(struct net_device *dev) \
-       { \
-               batadv_softif_free(dev); \
-               free_netdev(dev); \
-       } \
-       void (*t1)(struct net_device *dev) __attribute__((unused)); \
-       bool t2 __attribute__((unused)); \
-       ether_setup(dev)
-#define needs_free_netdev destructor = batadv_softif_free2; t2
-#define priv_destructor destructor = batadv_softif_free2; t1
-
-#endif /* < KERNEL_VERSION(4, 11, 9) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0)
-
-static inline void *batadv_skb_put(struct sk_buff *skb, unsigned int len)
-{
-       return (void *)skb_put(skb, len);
-}
-#ifdef skb_put
-#undef skb_put
-#endif
-
-#define skb_put batadv_skb_put
-
-static inline void *batadv_skb_put_zero(struct sk_buff *skb, unsigned int len)
-{
-       void *tmp = skb_put(skb, len);
-
-       memset(tmp, 0, len);
-
-       return tmp;
-}
-#ifdef skb_put_zero
-#undef skb_put_zero
-#endif
-
-#define skb_put_zero batadv_skb_put_zero
-
-static inline void *batadv_skb_put_data(struct sk_buff *skb, const void *data,
-                                unsigned int len)
-{
-       void *tmp = skb_put(skb, len);
-
-       memcpy(tmp, data, len);
-
-       return tmp;
-}
-#ifdef skb_put_data
-#undef skb_put_data
-#endif
-
-#define skb_put_data batadv_skb_put_data
-
-#endif /* < KERNEL_VERSION(4, 13, 0) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
-
-#define batadv_softif_slave_add(__dev, __slave_dev, __extack) \
-       batadv_softif_slave_add(__dev, __slave_dev)
-
-#endif /* < KERNEL_VERSION(4, 15, 0) */
-
-#ifndef from_timer
-
-#define TIMER_DATA_TYPE                unsigned long
-#define TIMER_FUNC_TYPE                void (*)(TIMER_DATA_TYPE)
-
-static inline void timer_setup(struct timer_list *timer,
-                              void (*callback)(struct timer_list *),
-                              unsigned int flags)
-{
-       __setup_timer(timer, (TIMER_FUNC_TYPE)callback,
-                     (TIMER_DATA_TYPE)timer, flags);
-}
-
-#define from_timer(var, callback_timer, timer_fieldname) \
-       container_of(callback_timer, typeof(*var), timer_fieldname)
-
-#endif /* !from_timer */
-       
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)
-
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
-
-#include <net/cfg80211.h>
-
-/* cfg80211 fix: https://patchwork.kernel.org/patch/10449857/ */
-static inline int batadv_cfg80211_get_station(struct net_device *dev,
-                                             const u8 *mac_addr,
-                                             struct station_info *sinfo)
-{
-       memset(sinfo, 0, sizeof(*sinfo));
-       return cfg80211_get_station(dev, mac_addr, sinfo);
-}
-
-#define cfg80211_get_station(dev, mac_addr, sinfo) \
-       batadv_cfg80211_get_station(dev, mac_addr, sinfo)
-
-#endif /* < KERNEL_VERSION(4, 18, 0) */
-
-
-#ifdef __CHECK_POLL
-typedef unsigned __bitwise __poll_t;
-#else
-typedef unsigned __poll_t;
-#endif
-
-#endif /* < KERNEL_VERSION(4, 16, 0) */
-
-/* <DECLARE_EWMA> */
-
-#include <linux/version.h>
-#include_next <linux/average.h>
-
-#include <linux/bug.h>
-
-#ifdef DECLARE_EWMA
-#undef DECLARE_EWMA
-#endif /* DECLARE_EWMA */
-
-/*
- * Exponentially weighted moving average (EWMA)
- *
- * This implements a fixed-precision EWMA algorithm, with both the
- * precision and fall-off coefficient determined at compile-time
- * and built into the generated helper funtions.
- *
- * The first argument to the macro is the name that will be used
- * for the struct and helper functions.
- *
- * The second argument, the precision, expresses how many bits are
- * used for the fractional part of the fixed-precision values.
- *
- * The third argument, the weight reciprocal, determines how the
- * new values will be weighed vs. the old state, new values will
- * get weight 1/weight_rcp and old values 1-1/weight_rcp. Note
- * that this parameter must be a power of two for efficiency.
- */
-
-#define DECLARE_EWMA(name, _precision, _weight_rcp)                    \
-       struct ewma_##name {                                            \
-               unsigned long internal;                                 \
-       };                                                              \
-       static inline void ewma_##name##_init(struct ewma_##name *e)    \
-       {                                                               \
-               BUILD_BUG_ON(!__builtin_constant_p(_precision));        \
-               BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));       \
-               /*                                                      \
-                * Even if you want to feed it just 0/1 you should have \
-                * some bits for the non-fractional part...             \
-                */                                                     \
-               BUILD_BUG_ON((_precision) > 30);                        \
-               BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);               \
-               e->internal = 0;                                        \
-       }                                                               \
-       static inline unsigned long                                     \
-       ewma_##name##_read(struct ewma_##name *e)                       \
-       {                                                               \
-               BUILD_BUG_ON(!__builtin_constant_p(_precision));        \
-               BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));       \
-               BUILD_BUG_ON((_precision) > 30);                        \
-               BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);               \
-               return e->internal >> (_precision);                     \
-       }                                                               \
-       static inline void ewma_##name##_add(struct ewma_##name *e,     \
-                                            unsigned long val)         \
-       {                                                               \
-               unsigned long internal = READ_ONCE(e->internal);        \
-               unsigned long weight_rcp = ilog2(_weight_rcp);          \
-               unsigned long precision = _precision;                   \
-                                                                       \
-               BUILD_BUG_ON(!__builtin_constant_p(_precision));        \
-               BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));       \
-               BUILD_BUG_ON((_precision) > 30);                        \
-               BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);               \
-                                                                       \
-               WRITE_ONCE(e->internal, internal ?                      \
-                       (((internal << weight_rcp) - internal) +        \
-                               (val << precision)) >> weight_rcp :     \
-                       (val << precision));                            \
-       }
-
-/* </DECLARE_EWMA> */
index 97be6223524e912c4d98c98debe702e56b0c500b..21138cbc754333e3c32a77f27c1421b3302d4b63 100644 (file)
@@ -1,21 +1,20 @@
 
 config 'mesh' 'bat0'
-       option 'aggregated_ogms'
-       option 'ap_isolation'
-       option 'bonding'
-       option 'fragmentation'
-       option 'gw_bandwidth'
-       option 'gw_mode'
-       option 'gw_sel_class'
-       option 'log_level'
-       option 'orig_interval'
-       option 'bridge_loop_avoidance'
-       option 'distributed_arp_table'
-       option 'multicast_mode'
-       option 'network_coding'
-       option 'hop_penalty'
-       option 'isolation_mark'
+       #option 'aggregated_ogms' 1
+       #option 'ap_isolation' 0
+       #option 'bonding' 0
+       #option 'fragmentation' 1
+       #option 'gw_bandwidth' '10000/2000'
+       #option 'gw_mode' 'off'
+       #option 'gw_sel_class' 20
+       #option 'log_level' 0
+       #option 'orig_interval' 1000
+       #option 'bridge_loop_avoidance' 1
+       #option 'distributed_arp_table' 1
+       #option 'multicast_mode' 1
+       #option 'network_coding' 0
+       #option 'hop_penalty' 30
+       #option 'isolation_mark' '0x00000000/0x00000000'
 
 # yet another batX instance
 # config 'mesh' 'bat5'
-#      option 'interfaces' 'second_mesh'
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/batman-adv/patches/0002-batman-adv-Avoid-race-in-TT-TVLV-allocator-helper.patch b/batman-adv/patches/0002-batman-adv-Avoid-race-in-TT-TVLV-allocator-helper.patch
deleted file mode 100644 (file)
index 46a40b3..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Wed, 9 May 2018 21:07:40 +0200
-Subject: [PATCH] batman-adv: Avoid race in TT TVLV allocator helper
-
-The functions batadv_tt_prepare_tvlv_local_data and
-batadv_tt_prepare_tvlv_global_data are responsible for preparing a buffer
-which can be used to store the TVLV container for TT and add the VLAN
-information to it.
-
-This will be done in three phases:
-
-1. count the number of VLANs and their entries
-2. allocate the buffer using the counters from the previous step and limits
-   from the caller (parameter tt_len)
-3. insert the VLAN information to the buffer
-
-The step 1 and 3 operate on a list which contains the VLANs. The access to
-these lists must be protected with an appropriate lock or otherwise they
-might operate on on different entries. This could for example happen when
-another context is adding VLAN entries to this list.
-
-This could lead to a buffer overflow in these functions when enough entries
-were added between step 1 and 3 to the VLAN lists that the buffer room for
-the entries (*tt_change) is smaller then the now required extra buffer for
-new VLAN entries.
-
-Fixes: 21a57f6e7a3b ("batman-adv: make the TT CRC logic VLAN specific")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Acked-by: Antonio Quartulli <a@unstable.cc>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/286be89a33497ba9000aa5c2960f1f4114953522
----
- net/batman-adv/translation-table.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index 0225616d5771d0986127322142fc591780fc25b0..7fa3a0a0524a1da63e92d081b443c302900bf0c3 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -862,7 +862,7 @@ batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
-       struct batadv_orig_node_vlan *vlan;
-       u8 *tt_change_ptr;
--      rcu_read_lock();
-+      spin_lock_bh(&orig_node->vlan_list_lock);
-       hlist_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
-               num_vlan++;
-               num_entries += atomic_read(&vlan->tt.num_entries);
-@@ -900,7 +900,7 @@ batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
-       *tt_change = (struct batadv_tvlv_tt_change *)tt_change_ptr;
- out:
--      rcu_read_unlock();
-+      spin_unlock_bh(&orig_node->vlan_list_lock);
-       return tvlv_len;
- }
-@@ -936,7 +936,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
-       u8 *tt_change_ptr;
-       int change_offset;
--      rcu_read_lock();
-+      spin_lock_bh(&bat_priv->softif_vlan_list_lock);
-       hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
-               num_vlan++;
-               num_entries += atomic_read(&vlan->tt.num_entries);
-@@ -974,7 +974,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
-       *tt_change = (struct batadv_tvlv_tt_change *)tt_change_ptr;
- out:
--      rcu_read_unlock();
-+      spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
-       return tvlv_len;
- }
diff --git a/batman-adv/patches/0003-batman-adv-Fix-TT-sync-flags-for-intermediate-TT-res.patch b/batman-adv/patches/0003-batman-adv-Fix-TT-sync-flags-for-intermediate-TT-res.patch
deleted file mode 100644 (file)
index f396cbc..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-From: Linus Lüssing <linus.luessing@c0d3.blue>
-Date: Thu, 10 May 2018 19:44:28 +0200
-Subject: [PATCH] batman-adv: Fix TT sync flags for intermediate TT responses
-
-The previous TT sync fix so far only fixed TT responses issued by the
-target node directly. So far, TT responses issued by intermediate nodes
-still lead to the wrong flags being added, leading to CRC mismatches.
-
-This behaviour was observed at Freifunk Hannover in a 800 nodes setup
-where a considerable amount of nodes were still infected with 'WI'
-TT flags even with (most) nodes having the previous TT sync fix applied.
-
-I was able to reproduce the issue with intermediate TT responses in a
-four node test setup and this patch fixes this issue by ensuring to
-use the per originator instead of the summarized, OR'd ones.
-
-Fixes: fa614fd04692 ("batman-adv: fix tt_global_entries flags update")
-Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/d65daee8617b29c1ddcc949ce3a5ec24f7a1e1af
----
- net/batman-adv/translation-table.c | 61 +++++++++++++++++++++++++-----
- 1 file changed, 51 insertions(+), 10 deletions(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index 7fa3a0a0524a1da63e92d081b443c302900bf0c3..23f9c212ab1e27be429645a85f7b5d6a02585de9 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -1538,6 +1538,8 @@ batadv_tt_global_orig_entry_find(const struct batadv_tt_global_entry *entry,
-  *  handled by a given originator
-  * @entry: the TT global entry to check
-  * @orig_node: the originator to search in the list
-+ * @flags: a pointer to store TT flags for the given @entry received
-+ *  from @orig_node
-  *
-  * find out if an orig_node is already in the list of a tt_global_entry.
-  *
-@@ -1545,7 +1547,8 @@ batadv_tt_global_orig_entry_find(const struct batadv_tt_global_entry *entry,
-  */
- static bool
- batadv_tt_global_entry_has_orig(const struct batadv_tt_global_entry *entry,
--                              const struct batadv_orig_node *orig_node)
-+                              const struct batadv_orig_node *orig_node,
-+                              u8 *flags)
- {
-       struct batadv_tt_orig_list_entry *orig_entry;
-       bool found = false;
-@@ -1553,6 +1556,10 @@ batadv_tt_global_entry_has_orig(const struct batadv_tt_global_entry *entry,
-       orig_entry = batadv_tt_global_orig_entry_find(entry, orig_node);
-       if (orig_entry) {
-               found = true;
-+
-+              if (flags)
-+                      *flags = orig_entry->flags;
-+
-               batadv_tt_orig_list_entry_put(orig_entry);
-       }
-@@ -1731,7 +1738,7 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
-                       if (!(common->flags & BATADV_TT_CLIENT_TEMP))
-                               goto out;
-                       if (batadv_tt_global_entry_has_orig(tt_global_entry,
--                                                          orig_node))
-+                                                          orig_node, NULL))
-                               goto out_remove;
-                       batadv_tt_global_del_orig_list(tt_global_entry);
-                       goto add_orig_entry;
-@@ -2880,23 +2887,46 @@ batadv_tt_req_node_new(struct batadv_priv *bat_priv,
- }
- /**
-- * batadv_tt_local_valid() - verify that given tt entry is a valid one
-+ * batadv_tt_local_valid() - verify local tt entry and get flags
-  * @entry_ptr: to be checked local tt entry
-  * @data_ptr: not used but definition required to satisfy the callback prototype
-+ * @flags: a pointer to store TT flags for this client to
-+ *
-+ * Checks the validity of the given local TT entry. If it is, then the provided
-+ * flags pointer is updated.
-  *
-  * Return: true if the entry is a valid, false otherwise.
-  */
--static bool batadv_tt_local_valid(const void *entry_ptr, const void *data_ptr)
-+static bool batadv_tt_local_valid(const void *entry_ptr,
-+                                const void *data_ptr,
-+                                u8 *flags)
- {
-       const struct batadv_tt_common_entry *tt_common_entry = entry_ptr;
-       if (tt_common_entry->flags & BATADV_TT_CLIENT_NEW)
-               return false;
-+
-+      if (flags)
-+              *flags = tt_common_entry->flags;
-+
-       return true;
- }
-+/**
-+ * batadv_tt_global_valid() - verify global tt entry and get flags
-+ * @entry_ptr: to be checked global tt entry
-+ * @data_ptr: an orig_node object (may be NULL)
-+ * @flags: a pointer to store TT flags for this client to
-+ *
-+ * Checks the validity of the given global TT entry. If it is, then the provided
-+ * flags pointer is updated either with the common (summed) TT flags if data_ptr
-+ * is NULL or the specific, per originator TT flags otherwise.
-+ *
-+ * Return: true if the entry is a valid, false otherwise.
-+ */
- static bool batadv_tt_global_valid(const void *entry_ptr,
--                                 const void *data_ptr)
-+                                 const void *data_ptr,
-+                                 u8 *flags)
- {
-       const struct batadv_tt_common_entry *tt_common_entry = entry_ptr;
-       const struct batadv_tt_global_entry *tt_global_entry;
-@@ -2910,7 +2940,8 @@ static bool batadv_tt_global_valid(const void *entry_ptr,
-                                      struct batadv_tt_global_entry,
-                                      common);
--      return batadv_tt_global_entry_has_orig(tt_global_entry, orig_node);
-+      return batadv_tt_global_entry_has_orig(tt_global_entry, orig_node,
-+                                             flags);
- }
- /**
-@@ -2920,25 +2951,34 @@ static bool batadv_tt_global_valid(const void *entry_ptr,
-  * @hash: hash table containing the tt entries
-  * @tt_len: expected tvlv tt data buffer length in number of bytes
-  * @tvlv_buff: pointer to the buffer to fill with the TT data
-- * @valid_cb: function to filter tt change entries
-+ * @valid_cb: function to filter tt change entries and to return TT flags
-  * @cb_data: data passed to the filter function as argument
-+ *
-+ * Fills the tvlv buff with the tt entries from the specified hash. If valid_cb
-+ * is not provided then this becomes a no-op.
-  */
- static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
-                                   struct batadv_hashtable *hash,
-                                   void *tvlv_buff, u16 tt_len,
-                                   bool (*valid_cb)(const void *,
--                                                   const void *),
-+                                                   const void *,
-+                                                   u8 *flags),
-                                   void *cb_data)
- {
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tvlv_tt_change *tt_change;
-       struct hlist_head *head;
-       u16 tt_tot, tt_num_entries = 0;
-+      u8 flags;
-+      bool ret;
-       u32 i;
-       tt_tot = batadv_tt_entries(tt_len);
-       tt_change = (struct batadv_tvlv_tt_change *)tvlv_buff;
-+      if (!valid_cb)
-+              return;
-+
-       rcu_read_lock();
-       for (i = 0; i < hash->size; i++) {
-               head = &hash->table[i];
-@@ -2948,11 +2988,12 @@ static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
-                       if (tt_tot == tt_num_entries)
-                               break;
--                      if ((valid_cb) && (!valid_cb(tt_common_entry, cb_data)))
-+                      ret = valid_cb(tt_common_entry, cb_data, &flags);
-+                      if (!ret)
-                               continue;
-                       ether_addr_copy(tt_change->addr, tt_common_entry->addr);
--                      tt_change->flags = tt_common_entry->flags;
-+                      tt_change->flags = flags;
-                       tt_change->vid = htons(tt_common_entry->vid);
-                       memset(tt_change->reserved, 0,
-                              sizeof(tt_change->reserved));
diff --git a/batman-adv/patches/0004-batman-adv-prevent-TT-request-storms-by-not-sending-.patch b/batman-adv/patches/0004-batman-adv-prevent-TT-request-storms-by-not-sending-.patch
deleted file mode 100644 (file)
index d1f1188..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From: Marek Lindner <mareklindner@neomailbox.ch>
-Date: Sat, 12 May 2018 00:23:07 +0800
-Subject: [PATCH] batman-adv: prevent TT request storms by not sending inconsistent TT TLVLs
-
-A translation table TVLV changset sent with an OGM consists
-of a number of headers (one per VLAN) plus the changeset
-itself (addition and/or deletion of entries).
-
-The per-VLAN headers are used by OGM recipients for consistency
-checks. Said consistency check might determine that a full
-translation table request is needed to restore consistency. If
-the TT sender adds per-VLAN headers of empty VLANs into the OGM,
-recipients are led to believe to have reached an inconsistent
-state and thus request a full table update. The full table does
-not contain empty VLANs (due to missing entries) the cycle
-restarts when the next OGM is issued.
-
-Consequently, when the translation table TVLV headers are
-composed, empty VLANs are to be excluded.
-
-Fixes: 21a57f6e7a3b ("batman-adv: make the TT CRC logic VLAN specific")
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/e4687b4be274da6180fc15b327419851fb681ec9
----
- net/batman-adv/translation-table.c | 15 ++++++++++++---
- 1 file changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index 23f9c212ab1e27be429645a85f7b5d6a02585de9..3986551397caa5ffb6ba7338eeb4769c8b8f99fb 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -931,15 +931,20 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
-       struct batadv_tvlv_tt_vlan_data *tt_vlan;
-       struct batadv_softif_vlan *vlan;
-       u16 num_vlan = 0;
--      u16 num_entries = 0;
-+      u16 vlan_entries = 0;
-+      u16 total_entries = 0;
-       u16 tvlv_len;
-       u8 *tt_change_ptr;
-       int change_offset;
-       spin_lock_bh(&bat_priv->softif_vlan_list_lock);
-       hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
-+              vlan_entries = atomic_read(&vlan->tt.num_entries);
-+              if (vlan_entries < 1)
-+                      continue;
-+
-               num_vlan++;
--              num_entries += atomic_read(&vlan->tt.num_entries);
-+              total_entries += vlan_entries;
-       }
-       change_offset = sizeof(**tt_data);
-@@ -947,7 +952,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
-       /* if tt_len is negative, allocate the space needed by the full table */
-       if (*tt_len < 0)
--              *tt_len = batadv_tt_len(num_entries);
-+              *tt_len = batadv_tt_len(total_entries);
-       tvlv_len = *tt_len;
-       tvlv_len += change_offset;
-@@ -964,6 +969,10 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
-       tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
-       hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
-+              vlan_entries = atomic_read(&vlan->tt.num_entries);
-+              if (vlan_entries < 1)
-+                      continue;
-+
-               tt_vlan->vid = htons(vlan->vid);
-               tt_vlan->crc = htonl(vlan->tt.crc);
diff --git a/batman-adv/patches/0005-batman-adv-don-t-implement-skb_postpush_rcsum-for-li.patch b/batman-adv/patches/0005-batman-adv-don-t-implement-skb_postpush_rcsum-for-li.patch
deleted file mode 100644 (file)
index 7826959..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Antonio Quartulli <a@unstable.cc>
-Date: Sat, 12 May 2018 03:02:44 +0800
-Subject: [PATCH] batman-adv: don't implement skb_postpush_rcsum() for linux >=4.4.47
-
-skb_postpush_rcsum() has been implemented in 4.4.47 therefore
-our compat code has to be changed to prevent this function to
-be implemented when using those kernels.
-
-Signed-off-by: Antonio Quartulli <a@unstable.cc>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/b4693d107e0869bf11956fd2d3be4fd0a8671b46
----
- compat-include/linux/skbuff.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/compat-include/linux/skbuff.h b/compat-include/linux/skbuff.h
-index 6f73946496ac15f2fdb856357f16e4e2d8a6e6cd..371bb561eecaf605a5c96f9417546f6bb817724d 100644
---- a/compat-include/linux/skbuff.h
-+++ b/compat-include/linux/skbuff.h
-@@ -77,7 +77,7 @@ struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
- #endif /* < KERNEL_VERSION(4, 2, 0) */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 47)
- static inline void skb_postpush_rcsum(struct sk_buff *skb,
-                                     const void *start, unsigned int len)
diff --git a/batman-adv/patches/0006-batman-adv-Fix-bat_ogm_iv-best-gw-refcnt-after-netli.patch b/batman-adv/patches/0006-batman-adv-Fix-bat_ogm_iv-best-gw-refcnt-after-netli.patch
deleted file mode 100644 (file)
index b0f866f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Sat, 2 Jun 2018 17:26:34 +0200
-Subject: [PATCH] batman-adv: Fix bat_ogm_iv best gw refcnt after netlink dump
-
-A reference for the best gateway is taken when the list of gateways in the
-mesh is sent via netlink. This is necessary to check whether the currently
-dumped entry is the currently selected gateway or not. This information is
-then transferred as flag BATADV_ATTR_FLAG_BEST.
-
-After the comparison of the current entry is done,
-batadv_iv_gw_dump_entry() has to decrease the reference counter again.
-Otherwise the reference will be held and thus prevents a proper shutdown of
-the batman-adv interfaces (and some of the interfaces enslaved in it).
-
-Fixes: fa3228924152 ("batman-adv: add B.A.T.M.A.N. IV bat_gw_dump implementations")
-Reported-by: Andreas Ziegler <dev@andreas-ziegler.de>
-Tested-by: Andreas Ziegler <dev@andreas-ziegler.de>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Acked-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/46360d203c627e71a27d1f8f551c819c7f2353fd
----
- net/batman-adv/bat_iv_ogm.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
-index be09a98838252f4f0c23cec0625930cf896cd0ff..73bf6a93a3cf1141a34657bf1284893199e04db9 100644
---- a/net/batman-adv/bat_iv_ogm.c
-+++ b/net/batman-adv/bat_iv_ogm.c
-@@ -2732,7 +2732,7 @@ static int batadv_iv_gw_dump_entry(struct sk_buff *msg, u32 portid, u32 seq,
- {
-       struct batadv_neigh_ifinfo *router_ifinfo = NULL;
-       struct batadv_neigh_node *router;
--      struct batadv_gw_node *curr_gw;
-+      struct batadv_gw_node *curr_gw = NULL;
-       int ret = 0;
-       void *hdr;
-@@ -2780,6 +2780,8 @@ static int batadv_iv_gw_dump_entry(struct sk_buff *msg, u32 portid, u32 seq,
-       ret = 0;
- out:
-+      if (curr_gw)
-+              batadv_gw_node_put(curr_gw);
-       if (router_ifinfo)
-               batadv_neigh_ifinfo_put(router_ifinfo);
-       if (router)
diff --git a/batman-adv/patches/0007-batman-adv-Fix-bat_v-best-gw-refcnt-after-netlink-du.patch b/batman-adv/patches/0007-batman-adv-Fix-bat_v-best-gw-refcnt-after-netlink-du.patch
deleted file mode 100644 (file)
index 37a672f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Sat, 2 Jun 2018 17:26:35 +0200
-Subject: [PATCH] batman-adv: Fix bat_v best gw refcnt after netlink dump
-
-A reference for the best gateway is taken when the list of gateways in the
-mesh is sent via netlink. This is necessary to check whether the currently
-dumped entry is the currently selected gateway or not. This information is
-then transferred as flag BATADV_ATTR_FLAG_BEST.
-
-After the comparison of the current entry is done,
-batadv_v_gw_dump_entry() has to decrease the reference counter again.
-Otherwise the reference will be held and thus prevents a proper shutdown of
-the batman-adv interfaces (and some of the interfaces enslaved in it).
-
-Fixes: 15315a94ad98 ("batman-adv: add B.A.T.M.A.N. V bat_gw_dump implementations")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Acked-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/2b422b5808183d1084b450b89d9a085a13dd6d2c
----
- net/batman-adv/bat_v.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/net/batman-adv/bat_v.c b/net/batman-adv/bat_v.c
-index ec93337ee2597738e46b87dd72724d5becf3f48e..6baec4e68898c6e992e7522d2ee8c78ce62a1b08 100644
---- a/net/batman-adv/bat_v.c
-+++ b/net/batman-adv/bat_v.c
-@@ -927,7 +927,7 @@ static int batadv_v_gw_dump_entry(struct sk_buff *msg, u32 portid, u32 seq,
- {
-       struct batadv_neigh_ifinfo *router_ifinfo = NULL;
-       struct batadv_neigh_node *router;
--      struct batadv_gw_node *curr_gw;
-+      struct batadv_gw_node *curr_gw = NULL;
-       int ret = 0;
-       void *hdr;
-@@ -995,6 +995,8 @@ static int batadv_v_gw_dump_entry(struct sk_buff *msg, u32 portid, u32 seq,
-       ret = 0;
- out:
-+      if (curr_gw)
-+              batadv_gw_node_put(curr_gw);
-       if (router_ifinfo)
-               batadv_neigh_ifinfo_put(router_ifinfo);
-       if (router)
diff --git a/batman-adv/patches/0008-batman-adv-Fix-debugfs-path-for-renamed-hardif.patch b/batman-adv/patches/0008-batman-adv-Fix-debugfs-path-for-renamed-hardif.patch
deleted file mode 100644 (file)
index c62751f..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Fri, 1 Jun 2018 19:24:23 +0200
-Subject: [PATCH] batman-adv: Fix debugfs path for renamed hardif
-
-batman-adv is creating special debugfs directories in the init
-net_namespace for each valid hard-interface (net_device). But it is
-possible to rename a net_device to a completely different name then the
-original one.
-
-It can therefore happen that a user registers a new net_device which gets
-the name "wlan0" assigned by default. batman-adv is also adding a new
-directory under $debugfs/batman-adv/ with the name "wlan0".
-
-The user then decides to rename this device to "wl_pri" and registers a
-different device. The kernel may now decide to use the name "wlan0" again
-for this new device. batman-adv will detect it as a valid net_device and
-tries to create a directory with the name "wlan0" under
-$debugfs/batman-adv/. But there already exists one with this name under
-this path and thus this fails. batman-adv will detect a problem and
-rollback the registering of this device.
-
-batman-adv must therefore take care of renaming the debugfs directories
-for hard-interfaces whenever it detects such a net_device rename.
-
-Fixes: 3c926a01c8e8 ("batman-adv: add debugfs structure for information per interface")
-Reported-by: John Soros <sorosj@gmail.com>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/127086f503f6495518b95455efebee33d328f335
----
- net/batman-adv/debugfs.c        | 20 ++++++++++++++++++++
- net/batman-adv/debugfs.h        |  6 ++++++
- net/batman-adv/hard-interface.c |  3 +++
- 3 files changed, 29 insertions(+)
-
-diff --git a/net/batman-adv/debugfs.c b/net/batman-adv/debugfs.c
-index 4229b01ac7b54008e023df0ed6546a6d541498ba..7e5de7b9f6d53b846cebfa95bf694a20c640b2d6 100644
---- a/net/batman-adv/debugfs.c
-+++ b/net/batman-adv/debugfs.c
-@@ -19,6 +19,7 @@
- #include "debugfs.h"
- #include "main.h"
-+#include <linux/dcache.h>
- #include <linux/debugfs.h>
- #include <linux/err.h>
- #include <linux/errno.h>
-@@ -343,6 +344,25 @@ int batadv_debugfs_add_hardif(struct batadv_hard_iface *hard_iface)
-       return -ENOMEM;
- }
-+/**
-+ * batadv_debugfs_rename_hardif() - Fix debugfs path for renamed hardif
-+ * @hard_iface: hard interface which was renamed
-+ */
-+void batadv_debugfs_rename_hardif(struct batadv_hard_iface *hard_iface)
-+{
-+      const char *name = hard_iface->net_dev->name;
-+      struct dentry *dir;
-+      struct dentry *d;
-+
-+      dir = hard_iface->debug_dir;
-+      if (!dir)
-+              return;
-+
-+      d = debugfs_rename(dir->d_parent, dir, dir->d_parent, name);
-+      if (!d)
-+              pr_err("Can't rename debugfs dir to %s\n", name);
-+}
-+
- /**
-  * batadv_debugfs_del_hardif() - delete the base directory for a hard interface
-  *  in debugfs.
-diff --git a/net/batman-adv/debugfs.h b/net/batman-adv/debugfs.h
-index 37b069698b04b369e68e4e8a31c3ac01575b0178..8538a7a75e937f50f8efdbf2fe879b4ac8dafadb 100644
---- a/net/batman-adv/debugfs.h
-+++ b/net/batman-adv/debugfs.h
-@@ -32,6 +32,7 @@ void batadv_debugfs_destroy(void);
- int batadv_debugfs_add_meshif(struct net_device *dev);
- void batadv_debugfs_del_meshif(struct net_device *dev);
- int batadv_debugfs_add_hardif(struct batadv_hard_iface *hard_iface);
-+void batadv_debugfs_rename_hardif(struct batadv_hard_iface *hard_iface);
- void batadv_debugfs_del_hardif(struct batadv_hard_iface *hard_iface);
- #else
-@@ -59,6 +60,11 @@ int batadv_debugfs_add_hardif(struct batadv_hard_iface *hard_iface)
-       return 0;
- }
-+static inline
-+void batadv_debugfs_rename_hardif(struct batadv_hard_iface *hard_iface)
-+{
-+}
-+
- static inline
- void batadv_debugfs_del_hardif(struct batadv_hard_iface *hard_iface)
- {
-diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
-index c405d15befd60bdabf9f50813c3bee446238d539..dc2763b1110727cc5dee62d555dd7c7b50f3b463 100644
---- a/net/batman-adv/hard-interface.c
-+++ b/net/batman-adv/hard-interface.c
-@@ -1051,6 +1051,9 @@ static int batadv_hard_if_event(struct notifier_block *this,
-               if (batadv_is_wifi_hardif(hard_iface))
-                       hard_iface->num_bcasts = BATADV_NUM_BCASTS_WIRELESS;
-               break;
-+      case NETDEV_CHANGENAME:
-+              batadv_debugfs_rename_hardif(hard_iface);
-+              break;
-       default:
-               break;
-       }
diff --git a/batman-adv/patches/0009-batman-adv-Fix-debugfs-path-for-renamed-softif.patch b/batman-adv/patches/0009-batman-adv-Fix-debugfs-path-for-renamed-softif.patch
deleted file mode 100644 (file)
index 2559d64..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Fri, 1 Jun 2018 19:24:24 +0200
-Subject: [PATCH] batman-adv: Fix debugfs path for renamed softif
-
-batman-adv is creating special debugfs directories in the init
-net_namespace for each created soft-interface (batadv net_device). But it
-is possible to rename a net_device to a completely different name then the
-original one.
-
-It can therefore happen that a user registers a new batadv net_device with
-the name "bat0". batman-adv is then also adding a new directory under
-$debugfs/batman-adv/ with the name "wlan0".
-
-The user then decides to rename this device to "bat1" and registers a
-different batadv device with the name "bat0". batman-adv will then try to
-create a directory with the name "bat0" under $debugfs/batman-adv/ again.
-But there already exists one with this name under this path and thus this
-fails. batman-adv will detect a problem and rollback the registering of
-this device.
-
-batman-adv must therefore take care of renaming the debugfs directories for
-soft-interfaces whenever it detects such a net_device rename.
-
-Fixes: 230202d4b530 ("batman-adv: Move device for icmp injection to debugfs")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/3f2237bb191cd17654a4d5a5badfd6e7379c4b37
----
- net/batman-adv/debugfs.c        | 20 +++++++++++++++++++
- net/batman-adv/debugfs.h        |  5 +++++
- net/batman-adv/hard-interface.c | 34 +++++++++++++++++++++++++++------
- 3 files changed, 53 insertions(+), 6 deletions(-)
-
-diff --git a/net/batman-adv/debugfs.c b/net/batman-adv/debugfs.c
-index 7e5de7b9f6d53b846cebfa95bf694a20c640b2d6..87479c60670ebfbe2ad3df17130f1289d657df7b 100644
---- a/net/batman-adv/debugfs.c
-+++ b/net/batman-adv/debugfs.c
-@@ -433,6 +433,26 @@ int batadv_debugfs_add_meshif(struct net_device *dev)
-       return -ENOMEM;
- }
-+/**
-+ * batadv_debugfs_rename_meshif() - Fix debugfs path for renamed softif
-+ * @dev: net_device which was renamed
-+ */
-+void batadv_debugfs_rename_meshif(struct net_device *dev)
-+{
-+      struct batadv_priv *bat_priv = netdev_priv(dev);
-+      const char *name = dev->name;
-+      struct dentry *dir;
-+      struct dentry *d;
-+
-+      dir = bat_priv->debug_dir;
-+      if (!dir)
-+              return;
-+
-+      d = debugfs_rename(dir->d_parent, dir, dir->d_parent, name);
-+      if (!d)
-+              pr_err("Can't rename debugfs dir to %s\n", name);
-+}
-+
- /**
-  * batadv_debugfs_del_meshif() - Remove interface dependent debugfs entries
-  * @dev: netdev struct of the soft interface
-diff --git a/net/batman-adv/debugfs.h b/net/batman-adv/debugfs.h
-index 8538a7a75e937f50f8efdbf2fe879b4ac8dafadb..08a592ffbee5203ac4994fc49bf9c187c2e66f8e 100644
---- a/net/batman-adv/debugfs.h
-+++ b/net/batman-adv/debugfs.h
-@@ -30,6 +30,7 @@ struct net_device;
- void batadv_debugfs_init(void);
- void batadv_debugfs_destroy(void);
- int batadv_debugfs_add_meshif(struct net_device *dev);
-+void batadv_debugfs_rename_meshif(struct net_device *dev);
- void batadv_debugfs_del_meshif(struct net_device *dev);
- int batadv_debugfs_add_hardif(struct batadv_hard_iface *hard_iface);
- void batadv_debugfs_rename_hardif(struct batadv_hard_iface *hard_iface);
-@@ -50,6 +51,10 @@ static inline int batadv_debugfs_add_meshif(struct net_device *dev)
-       return 0;
- }
-+static inline void batadv_debugfs_rename_meshif(struct net_device *dev)
-+{
-+}
-+
- static inline void batadv_debugfs_del_meshif(struct net_device *dev)
- {
- }
-diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
-index dc2763b1110727cc5dee62d555dd7c7b50f3b463..2f0d42f2f913e74cf10c0c6ce89320434994cac5 100644
---- a/net/batman-adv/hard-interface.c
-+++ b/net/batman-adv/hard-interface.c
-@@ -989,6 +989,32 @@ void batadv_hardif_remove_interfaces(void)
-       rtnl_unlock();
- }
-+/**
-+ * batadv_hard_if_event_softif() - Handle events for soft interfaces
-+ * @event: NETDEV_* event to handle
-+ * @net_dev: net_device which generated an event
-+ *
-+ * Return: NOTIFY_* result
-+ */
-+static int batadv_hard_if_event_softif(unsigned long event,
-+                                     struct net_device *net_dev)
-+{
-+      struct batadv_priv *bat_priv;
-+
-+      switch (event) {
-+      case NETDEV_REGISTER:
-+              batadv_sysfs_add_meshif(net_dev);
-+              bat_priv = netdev_priv(net_dev);
-+              batadv_softif_create_vlan(bat_priv, BATADV_NO_FLAGS);
-+              break;
-+      case NETDEV_CHANGENAME:
-+              batadv_debugfs_rename_meshif(net_dev);
-+              break;
-+      }
-+
-+      return NOTIFY_DONE;
-+}
-+
- static int batadv_hard_if_event(struct notifier_block *this,
-                               unsigned long event, void *ptr)
- {
-@@ -997,12 +1023,8 @@ static int batadv_hard_if_event(struct notifier_block *this,
-       struct batadv_hard_iface *primary_if = NULL;
-       struct batadv_priv *bat_priv;
--      if (batadv_softif_is_valid(net_dev) && event == NETDEV_REGISTER) {
--              batadv_sysfs_add_meshif(net_dev);
--              bat_priv = netdev_priv(net_dev);
--              batadv_softif_create_vlan(bat_priv, BATADV_NO_FLAGS);
--              return NOTIFY_DONE;
--      }
-+      if (batadv_softif_is_valid(net_dev))
-+              return batadv_hard_if_event_softif(event, net_dev);
-       hard_iface = batadv_hardif_get_by_netdev(net_dev);
-       if (!hard_iface && (event == NETDEV_REGISTER ||
diff --git a/batman-adv/patches/0010-batman-adv-Avoid-storing-non-TT-sync-flags-on-singul.patch b/batman-adv/patches/0010-batman-adv-Avoid-storing-non-TT-sync-flags-on-singul.patch
deleted file mode 100644 (file)
index 081bb21..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Linus Lüssing <linus.luessing@c0d3.blue>
-Date: Thu, 7 Jun 2018 00:46:23 +0200
-Subject: [PATCH] batman-adv: Avoid storing non-TT-sync flags on singular entries too
-
-Since commit 382d020fe3fa ("batman-adv: fix TT sync flag inconsistencies")
-TT sync flags and TT non-sync'd flags are supposed to be stored
-separately.
-
-The previous patch missed to apply this separation on a TT entry with
-only a single TT orig entry.
-
-This is a minor fix because with only a single TT orig entry the DDoS
-issue the former patch solves does not apply.
-
-Fixes: 382d020fe3fa ("batman-adv: fix TT sync flag inconsistencies")
-Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/beb6246b2339852b6a429ae9259a8eb30a685041
----
- net/batman-adv/translation-table.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index 3986551397caa5ffb6ba7338eeb4769c8b8f99fb..61ce300091f328fd78dafa5c4fd09f6cf924b025 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -1705,7 +1705,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
-               ether_addr_copy(common->addr, tt_addr);
-               common->vid = vid;
--              common->flags = flags;
-+              common->flags = flags & (~BATADV_TT_SYNC_MASK);
-+
-               tt_global_entry->roam_at = 0;
-               /* node must store current time in case of roaming. This is
-                * needed to purge this entry out on timeout (if nobody claims
diff --git a/batman-adv/patches/0011-batman-adv-Fix-multicast-TT-issues-with-bogus-ROAM-f.patch b/batman-adv/patches/0011-batman-adv-Fix-multicast-TT-issues-with-bogus-ROAM-f.patch
deleted file mode 100644 (file)
index 59fd2ac..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From: Linus Lüssing <linus.luessing@c0d3.blue>
-Date: Thu, 7 Jun 2018 00:46:24 +0200
-Subject: [PATCH] batman-adv: Fix multicast TT issues with bogus ROAM flags
-
-When a (broken) node wrongly sends multicast TT entries with a ROAM
-flag then this causes any receiving node to drop all entries for the
-same multicast MAC address announced by other nodes, leading to
-packet loss.
-
-Fix this DoS vector by only storing TT sync flags. For multicast TT
-non-sync'ing flag bits like ROAM are unused so far anyway.
-
-Fixes: 405cc1e5a81e ("batman-adv: Modified forwarding behaviour for multicast packets")
-Reported-by: Leonardo Mörlein <me@irrelefant.net>
-Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/c7054ffae0c3b08bb4bef3cffee1e0a543e14096
----
- net/batman-adv/translation-table.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index 61ce300091f328fd78dafa5c4fd09f6cf924b025..12a2b7d21376721d15c6a31f3e794e4270d74b5c 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -1705,7 +1705,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
-               ether_addr_copy(common->addr, tt_addr);
-               common->vid = vid;
--              common->flags = flags & (~BATADV_TT_SYNC_MASK);
-+              if (!is_multicast_ether_addr(common->addr))
-+                      common->flags = flags & (~BATADV_TT_SYNC_MASK);
-               tt_global_entry->roam_at = 0;
-               /* node must store current time in case of roaming. This is
-@@ -1769,7 +1770,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
-                * TT_CLIENT_TEMP, therefore they have to be copied in the
-                * client entry
-                */
--              common->flags |= flags & (~BATADV_TT_SYNC_MASK);
-+              if (!is_multicast_ether_addr(common->addr))
-+                      common->flags |= flags & (~BATADV_TT_SYNC_MASK);
-               /* If there is the BATADV_TT_CLIENT_ROAM flag set, there is only
-                * one originator left in the list and we previously received a
diff --git a/batman-adv/src/compat-hacks.h b/batman-adv/src/compat-hacks.h
new file mode 100644 (file)
index 0000000..4511184
--- /dev/null
@@ -0,0 +1,424 @@
+/* Please avoid adding hacks here - instead add it to mac80211/backports.git */
+
+#undef CONFIG_MODULE_STRIPPED
+
+#include <linux/version.h>     /* LINUX_VERSION_CODE */
+#include <linux/types.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
+
+#define dev_get_iflink(_net_dev) ((_net_dev)->iflink)
+
+#endif /* < KERNEL_VERSION(4, 1, 0) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
+
+#include <linux/netdevice.h>
+
+#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info, extack) ({\
+       BUILD_BUG_ON(upper_priv != NULL); \
+       BUILD_BUG_ON(upper_info != NULL); \
+       BUILD_BUG_ON(extack != NULL); \
+       netdev_master_upper_dev_link(dev, upper_dev); \
+})
+
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+
+#include <linux/netdevice.h>
+
+#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info, extack) ({\
+       BUILD_BUG_ON(extack != NULL); \
+       netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info); \
+})
+
+#endif /* < KERNEL_VERSION(4, 5, 0) */
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+
+/* for batadv_v_elp_get_throughput which would have used
+ * STATION_INFO_EXPECTED_THROUGHPUT in Linux 4.0.0
+ */
+#define NL80211_STA_INFO_EXPECTED_THROUGHPUT    28
+
+/* wild hack for batadv_getlink_net only */
+#define get_link_net get_xstats_size || 1 ? fallback_net : (struct net*)netdev->rtnl_link_ops->get_xstats_size
+
+#endif /* < KERNEL_VERSION(4, 0, 0) */
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
+
+struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
+                                    unsigned int transport_len,
+                                    __sum16(*skb_chkf)(struct sk_buff *skb));
+
+int ip_mc_check_igmp(struct sk_buff *skb, struct sk_buff **skb_trimmed);
+
+int ipv6_mc_check_mld(struct sk_buff *skb, struct sk_buff **skb_trimmed);
+
+#endif /* < KERNEL_VERSION(4, 2, 0) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
+
+#define IFF_NO_QUEUE   0; dev->tx_queue_len = 0
+
+static inline bool hlist_fake(struct hlist_node *h)
+{
+       return h->pprev == &h->next;
+}
+
+#endif /* < KERNEL_VERSION(4, 3, 0) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
+
+#include <linux/ethtool.h>
+
+#define ethtool_link_ksettings batadv_ethtool_link_ksettings
+
+struct batadv_ethtool_link_ksettings {
+       struct {
+               __u32   speed;
+               __u8    duplex;
+               __u8    autoneg;
+       } base;
+};
+
+#define __ethtool_get_link_ksettings(__dev, __link_settings) \
+       batadv_ethtool_get_link_ksettings(__dev, __link_settings)
+
+static inline int
+batadv_ethtool_get_link_ksettings(struct net_device *dev,
+                                 struct ethtool_link_ksettings *link_ksettings)
+{
+       struct ethtool_cmd cmd;
+       int ret;
+
+       memset(&cmd, 0, sizeof(cmd));
+       ret = __ethtool_get_settings(dev, &cmd);
+
+       if (ret != 0)
+               return ret;
+
+       link_ksettings->base.duplex = cmd.duplex;
+       link_ksettings->base.speed = ethtool_cmd_speed(&cmd);
+       link_ksettings->base.autoneg = cmd.autoneg;
+
+       return 0;
+}
+
+#endif /* < KERNEL_VERSION(4, 6, 0) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
+
+#ifdef netif_trans_update
+#undef netif_trans_update
+#endif
+
+#define netif_trans_update batadv_netif_trans_update
+static inline void batadv_netif_trans_update(struct net_device *dev)
+{
+       dev->trans_start = jiffies;
+}
+
+#endif /* < KERNEL_VERSION(4, 7, 0) */
+
+
+#include_next <linux/netlink.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
+
+#include_next <net/netlink.h>
+
+static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb);
+
+static inline int batadv_nla_align_64bit(struct sk_buff *skb, int padattr)
+{
+       if (batadv_nla_need_padding_for_64bit(skb) &&
+           !nla_reserve(skb, padattr, 0))
+               return -EMSGSIZE;
+
+       return 0;
+}
+
+static inline struct nlattr *batadv__nla_reserve_64bit(struct sk_buff *skb,
+                                                      int attrtype,
+                                                      int attrlen, int padattr)
+{
+       if (batadv_nla_need_padding_for_64bit(skb))
+               batadv_nla_align_64bit(skb, padattr);
+
+       return __nla_reserve(skb, attrtype, attrlen);
+}
+
+static inline void batadv__nla_put_64bit(struct sk_buff *skb, int attrtype,
+                                        int attrlen, const void *data,
+                                        int padattr)
+{
+       struct nlattr *nla;
+
+       nla = batadv__nla_reserve_64bit(skb, attrtype, attrlen, padattr);
+       memcpy(nla_data(nla), data, attrlen);
+}
+
+static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb)
+{
+#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
+       /* The nlattr header is 4 bytes in size, that's why we test
+        * if the skb->data _is_ aligned.  A NOP attribute, plus
+        * nlattr header for next attribute, will make nla_data()
+        * 8-byte aligned.
+        */
+       if (IS_ALIGNED((unsigned long)skb_tail_pointer(skb), 8))
+               return true;
+#endif
+       return false;
+}
+
+static inline int batadv_nla_total_size_64bit(int payload)
+{
+       return NLA_ALIGN(nla_attr_size(payload))
+#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
+               + NLA_ALIGN(nla_attr_size(0))
+#endif
+               ;
+}
+
+static inline int batadv_nla_put_64bit(struct sk_buff *skb, int attrtype,
+                                      int attrlen, const void *data,
+                                      int padattr)
+{
+       size_t len;
+
+       if (batadv_nla_need_padding_for_64bit(skb))
+               len = batadv_nla_total_size_64bit(attrlen);
+       else
+               len = nla_total_size(attrlen);
+       if (unlikely(skb_tailroom(skb) < len))
+               return -EMSGSIZE;
+
+       batadv__nla_put_64bit(skb, attrtype, attrlen, data, padattr);
+       return 0;
+}
+
+#ifdef nla_put_u64_64bit
+#undef nla_put_u64_64bit
+#endif
+
+#define nla_put_u64_64bit(_skb, _attrtype, _value, _padattr) \
+       batadv_nla_put_u64_64bit(_skb, _attrtype, _value, _padattr)
+static inline int batadv_nla_put_u64_64bit(struct sk_buff *skb, int attrtype,
+                                          u64 value, int padattr)
+{
+       return batadv_nla_put_64bit(skb, attrtype, sizeof(u64), &value,
+                                   padattr);
+}
+
+#endif /* < KERNEL_VERSION(4, 7, 0) */
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+
+#include_next <linux/cache.h>
+
+/* hack for netlink.c which marked the family ops as ro */
+#ifdef __ro_after_init
+#undef __ro_after_init
+#endif
+#define __ro_after_init
+
+#endif /* < KERNEL_VERSION(4, 10, 0) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 9)
+
+#include <linux/netdevice.h>
+
+/* work around missing attribute needs_free_netdev and priv_destructor in
+ * net_device
+ */
+#define ether_setup(dev) \
+       void batadv_softif_free2(struct net_device *dev) \
+       { \
+               batadv_softif_free(dev); \
+               free_netdev(dev); \
+       } \
+       void (*t1)(struct net_device *dev) __attribute__((unused)); \
+       bool t2 __attribute__((unused)); \
+       ether_setup(dev)
+#define needs_free_netdev destructor = batadv_softif_free2; t2
+#define priv_destructor destructor = batadv_softif_free2; t1
+
+#endif /* < KERNEL_VERSION(4, 11, 9) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0)
+
+static inline void *batadv_skb_put(struct sk_buff *skb, unsigned int len)
+{
+       return (void *)skb_put(skb, len);
+}
+#ifdef skb_put
+#undef skb_put
+#endif
+
+#define skb_put batadv_skb_put
+
+static inline void *batadv_skb_put_zero(struct sk_buff *skb, unsigned int len)
+{
+       void *tmp = skb_put(skb, len);
+
+       memset(tmp, 0, len);
+
+       return tmp;
+}
+#ifdef skb_put_zero
+#undef skb_put_zero
+#endif
+
+#define skb_put_zero batadv_skb_put_zero
+
+static inline void *batadv_skb_put_data(struct sk_buff *skb, const void *data,
+                                unsigned int len)
+{
+       void *tmp = skb_put(skb, len);
+
+       memcpy(tmp, data, len);
+
+       return tmp;
+}
+#ifdef skb_put_data
+#undef skb_put_data
+#endif
+
+#define skb_put_data batadv_skb_put_data
+
+#endif /* < KERNEL_VERSION(4, 13, 0) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+
+#define batadv_softif_slave_add(__dev, __slave_dev, __extack) \
+       batadv_softif_slave_add(__dev, __slave_dev)
+
+#endif /* < KERNEL_VERSION(4, 15, 0) */
+
+#ifndef from_timer
+
+#define TIMER_DATA_TYPE                unsigned long
+#define TIMER_FUNC_TYPE                void (*)(TIMER_DATA_TYPE)
+
+static inline void timer_setup(struct timer_list *timer,
+                              void (*callback)(struct timer_list *),
+                              unsigned int flags)
+{
+       __setup_timer(timer, (TIMER_FUNC_TYPE)callback,
+                     (TIMER_DATA_TYPE)timer, flags);
+}
+
+#define from_timer(var, callback_timer, timer_fieldname) \
+       container_of(callback_timer, typeof(*var), timer_fieldname)
+
+#endif /* !from_timer */
+       
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
+
+#include <net/cfg80211.h>
+
+/* cfg80211 fix: https://patchwork.kernel.org/patch/10449857/ */
+static inline int batadv_cfg80211_get_station(struct net_device *dev,
+                                             const u8 *mac_addr,
+                                             struct station_info *sinfo)
+{
+       memset(sinfo, 0, sizeof(*sinfo));
+       return cfg80211_get_station(dev, mac_addr, sinfo);
+}
+
+#define cfg80211_get_station(dev, mac_addr, sinfo) \
+       batadv_cfg80211_get_station(dev, mac_addr, sinfo)
+
+#endif /* < KERNEL_VERSION(4, 18, 0) */
+
+
+#ifdef __CHECK_POLL
+typedef unsigned __bitwise __poll_t;
+#else
+typedef unsigned __poll_t;
+#endif
+
+#endif /* < KERNEL_VERSION(4, 16, 0) */
+
+/* <DECLARE_EWMA> */
+
+#include <linux/version.h>
+#include_next <linux/average.h>
+
+#include <linux/bug.h>
+
+#ifdef DECLARE_EWMA
+#undef DECLARE_EWMA
+#endif /* DECLARE_EWMA */
+
+/*
+ * Exponentially weighted moving average (EWMA)
+ *
+ * This implements a fixed-precision EWMA algorithm, with both the
+ * precision and fall-off coefficient determined at compile-time
+ * and built into the generated helper funtions.
+ *
+ * The first argument to the macro is the name that will be used
+ * for the struct and helper functions.
+ *
+ * The second argument, the precision, expresses how many bits are
+ * used for the fractional part of the fixed-precision values.
+ *
+ * The third argument, the weight reciprocal, determines how the
+ * new values will be weighed vs. the old state, new values will
+ * get weight 1/weight_rcp and old values 1-1/weight_rcp. Note
+ * that this parameter must be a power of two for efficiency.
+ */
+
+#define DECLARE_EWMA(name, _precision, _weight_rcp)                    \
+       struct ewma_##name {                                            \
+               unsigned long internal;                                 \
+       };                                                              \
+       static inline void ewma_##name##_init(struct ewma_##name *e)    \
+       {                                                               \
+               BUILD_BUG_ON(!__builtin_constant_p(_precision));        \
+               BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));       \
+               /*                                                      \
+                * Even if you want to feed it just 0/1 you should have \
+                * some bits for the non-fractional part...             \
+                */                                                     \
+               BUILD_BUG_ON((_precision) > 30);                        \
+               BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);               \
+               e->internal = 0;                                        \
+       }                                                               \
+       static inline unsigned long                                     \
+       ewma_##name##_read(struct ewma_##name *e)                       \
+       {                                                               \
+               BUILD_BUG_ON(!__builtin_constant_p(_precision));        \
+               BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));       \
+               BUILD_BUG_ON((_precision) > 30);                        \
+               BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);               \
+               return e->internal >> (_precision);                     \
+       }                                                               \
+       static inline void ewma_##name##_add(struct ewma_##name *e,     \
+                                            unsigned long val)         \
+       {                                                               \
+               unsigned long internal = READ_ONCE(e->internal);        \
+               unsigned long weight_rcp = ilog2(_weight_rcp);          \
+               unsigned long precision = _precision;                   \
+                                                                       \
+               BUILD_BUG_ON(!__builtin_constant_p(_precision));        \
+               BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));       \
+               BUILD_BUG_ON((_precision) > 30);                        \
+               BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);               \
+                                                                       \
+               WRITE_ONCE(e->internal, internal ?                      \
+                       (((internal << weight_rcp) - internal) +        \
+                               (val << precision)) >> weight_rcp :     \
+                       (val << precision));                            \
+       }
+
+/* </DECLARE_EWMA> */
index b4ed3017104136c9cd18a04a498afe2921b61118..425d355943039b25f02ec3789e9bc3461c009fdb 100644 (file)
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=batmand
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://git.open-mesh.org/batmand.git
+PKG_SOURCE_URL:=https://git.open-mesh.org/batmand.git
 PKG_REV:=b67a7087b51d7a5e90d27ac39116d1f57257c86e
 PKG_VERSION:=1440
 PKG_RELEASE:=0
index 47ca5803c4a3644d45d1061fa0a679d3d2fc1d5c..26b5e4aeca3fb8cc5e8a4a54f0833f02fcc29715 100644 (file)
@@ -12,7 +12,7 @@ PKG_RELEASE:=1
 
 PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
-PKG_MD5SUM:=035f91d6f568f8ed438a0814235ac4c5c79147cd2acf201322c307732883480f
+PKG_HASH:=035f91d6f568f8ed438a0814235ac4c5c79147cd2acf201322c307732883480f
 PKG_BUILD_DEPENDS:=ncurses readline
 PKG_MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
 PKG_BUILD_DIR:=$(BUILD_DIR)/bird-$(PKG_VERSION)
@@ -96,7 +96,7 @@ protocols, telling BIRD to show various information, telling it to show
 a routing table filtered by a filter, or asking BIRD to reconfigure.
 endef
 
-CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)"
+CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)"  --disable-libssh
 
 define Package/bird2/conffiles
 /etc/bird.conf
index fd9608183276fb32c7142bd883721505d10791af..92610e1bdc292928c50dff551f9dc1e4f56ab8c5 100644 (file)
@@ -28,8 +28,7 @@ PKG_NAME:=bmx6
 
 PKG_SOURCE_PROTO:=git
 
-PKG_SOURCE_URL:=git://github.com/bmx-routing/bmx6.git
-#PKG_SOURCE_URL:=file:///usr/src/bmx-routing/bmx6.git
+PKG_SOURCE_URL:=https://github.com/bmx-routing/bmx6.git
 
 PKG_REV:=0312168aaa384379ccbefd4b2d936fc698664d5b
 PKG_MIRROR_HASH:=98acdbda8a8cadadf8141c7b8a17b6417112f70f3211b86abad23a8c7a28be10
@@ -44,7 +43,6 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
 
 include $(INCLUDE_DIR)/package.mk
 
-
 TARGET_CFLAGS += $(FPIC)
 
 MAKE_ARGS += \
index b1575ce765638602e54db183a55eb57baa8fb320..fe90af9c1ad4674f401ceea665c8ac81b69b95ee 100644 (file)
@@ -27,8 +27,7 @@ PKG_NAME:=bmx7
 
 PKG_SOURCE_PROTO:=git
 
-PKG_SOURCE_URL:=git://github.com/bmx-routing/bmx7.git
-#PKG_SOURCE_URL:=file:///usr/src/bmx-routing/bmx7.git
+PKG_SOURCE_URL:=https://github.com/bmx-routing/bmx7.git
 
 PKG_REV:=9883383dc26df16da67b9ef7ba99efe62f79c4e7
 PKG_MIRROR_HASH:=012178aba42016d3e0961715f99bf1e322c2c6c22b1cc6635375468360cb4d68
index 4b6cf4eaf4b6275c2d63d50d35ce2e8aa7500f31..ca709c812702954d28eed6f5a0b311037f0dd16f 100644 (file)
@@ -13,7 +13,7 @@ PKG_VERSION:=2017-08-24-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/mcproxy/mcproxy.git
+PKG_SOURCE_URL:=https://github.com/mcproxy/mcproxy.git
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=GPL-2.0+
 
index 36faa8d802e40f1ddc0a64722fcc66c4104b0805..8b8cf24c7bd4935b99955818f082140d83553f5f 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION:=2015-01-12-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/fingon/minimalist-pcproxy.git
+PKG_SOURCE_URL:=https://github.com/fingon/minimalist-pcproxy.git
 PKG_MAINTAINER:=Markus Stenberg <fingon@iki.fi>
 PKG_LICENSE:=GPL-2.0
 
index c4863ed4644c4f3d52eb38e5b58211ec257f3326..8cdd8d15be3b2db25edcf53c6a9f6e81439ba019 100644 (file)
@@ -13,7 +13,7 @@ PKG_VERSION:=2013-11-30-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/hugosantos/mrd6.git
+PKG_SOURCE_URL:=https://github.com/hugosantos/mrd6.git
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=GPL-2.0+
 
index 9a3d55ea4a6c4b01a2bd2baac634e232e49d738a..d889f5238768ad3ce7cab946aadfd1b0239ca4ed 100644 (file)
@@ -8,14 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ndppd
-PKG_VERSION:=0.2.3
+PKG_VERSION:=0.2.5
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_VERSION).tar.gz
-
 # Latest release
-PKG_SOURCE_URL:=https://github.com/DanielAdolfsson/ndppd/archive
-PKG_MD5SUM:=1391c063db64b47541e58da12e5ae60d
+PKG_SOURCE_URL:=https://codeload.github.com/DanielAdolfsson/ndppd/tar.gz/$(PKG_VERSION)?
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=ee934167f8357f0bd0015e201a77fbe4d028c59e89dc98113805c6855e1c3992
 PKG_LICENSE:=GPL-3.0+
 
 # Development snapshot
diff --git a/ndppd/patches/0001-Fix-issue-2-ndppd-d-monizes-too-early.patch b/ndppd/patches/0001-Fix-issue-2-ndppd-d-monizes-too-early.patch
deleted file mode 100644 (file)
index dad23f5..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From 00da8bf7bab88a3827af4110fb27df9cde542e32 Mon Sep 17 00:00:00 2001
-From: Daniel Adolfsson <daniel@priv.nu>
-Date: Tue, 12 Feb 2013 13:25:22 +0100
-Subject: [PATCH] =?UTF-8?q?Fix=20issue=20#2=20-=20ndppd=20d=C3=A6monizes=20t?=
- =?UTF-8?q?oo=20early?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
----
- src/ndppd.cc |   18 ++++++++----------
- 1 file changed, 8 insertions(+), 10 deletions(-)
-
-diff --git a/src/ndppd.cc b/src/ndppd.cc
-index 6ac19e8..20ced6f 100644
---- a/src/ndppd.cc
-+++ b/src/ndppd.cc
-@@ -201,15 +201,6 @@ int main(int argc, char* argv[], char* env[])
-         }
-     }
--    if (daemon) {
--        logger::syslog(true);
--
--        if (daemonize() < 0) {
--            logger::error() << "Failed to daemonize process";
--            return 1;
--        }
--    }
--
-     if (!pidfile.empty()) {
-         std::ofstream pf;
-         pf.open(pidfile.c_str(), std::ios::out | std::ios::trunc);
-@@ -225,8 +216,15 @@ int main(int argc, char* argv[], char* env[])
-     if (!configure(config_path))
-         return -1;
-+    
-+    if (daemon) {
-+        logger::syslog(true);
--    //route::load("/proc/net/ipv6_route");
-+        if (daemonize() < 0) {
-+            logger::error() << "Failed to daemonize process";
-+            return 1;
-+        }
-+    }
-     // Time stuff.
--- 
-1.7.10.4
-
diff --git a/ndppd/patches/0002-upstream-cast-fix.patch b/ndppd/patches/0002-upstream-cast-fix.patch
deleted file mode 100644 (file)
index 555a198..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-From f19fa4be6ac87032c01f2db57ccb484f83c62604 Mon Sep 17 00:00:00 2001
-From: Daniel Adolfsson <daniel@priv.nu>
-Date: Fri, 8 Apr 2016 13:32:22 +0200
-Subject: [PATCH] Fix a cast so it can be compiled with gcc-6
-
----
- src/iface.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/iface.cc b/src/iface.cc
-index 3ce893f..5f165eb 100644
---- a/src/iface.cc
-+++ b/src/iface.cc
-@@ -147,7 +147,7 @@ ptr<iface> iface::open_pfd(const std::string& name)
-         // Bail if it's* not* ND_NEIGHBOR_SOLICIT.
-         BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ND_NEIGHBOR_SOLICIT, 0, 1),
-         // Keep packet.
--        BPF_STMT(BPF_RET | BPF_K, -1),
-+        BPF_STMT(BPF_RET | BPF_K, (u_int32_t)-1),
-         // Drop packet.
-         BPF_STMT(BPF_RET | BPF_K, 0)
-     };
index b0f9da8112e348ba643497a4b6864b9e301c91a5..7b05e630663d7ff962b4059727e8988b6c3bf7b2 100644 (file)
@@ -12,7 +12,7 @@ PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=git://github.com/nodogsplash/nodogsplash.git
+PKG_SOURCE_URL:=https://github.com/nodogsplash/nodogsplash.git
 PKG_SOURCE_VERSION:=9ef7d5fc16351585baf65877776d19cf85bf3031
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_BUILD_PARALLEL:=1
index 7d88f5d862ec619a8f9fccc01d361c496310a3bb..ea23137f311122cc6525aa2870010bbb11cff8b5 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION:=2016-06-28-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/sbyx/ohybridproxy.git
+PKG_SOURCE_URL:=https://github.com/sbyx/ohybridproxy.git
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=GPL-2.0
 
index 4aaccb2ca51a3eae116883ec052cf17162bf1b3c..75f377e689da2deac12c2f460cc45f2243384275 100644 (file)
@@ -16,7 +16,6 @@ PKG_SOURCE_URL:=https://github.com/OLSR/olsrd.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=v0.9.6.2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_MD5SUM:=
 
 PKG_BUILD_PARALLEL:=0
 PKG_LICENSE:=BSD-3-Clause
index 9f971071b23434f842f72810d8962109f556f12c..a091119b801e33dc40c64842ccbbc1a65994c42f 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pimbd
-PKG_SOURCE_VERSION:=68f5fc803119e4b33a88b35c096f4d6ac28b6de5
-PKG_VERSION:=2015-08-18-$(PKG_SOURCE_VERSION)
+PKG_SOURCE_VERSION:=dbf4e5913b06e3160f506df15e6a047a403a5f21
+PKG_VERSION:=2018-06-19-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
@@ -17,7 +17,8 @@ include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
 # Spammy debug builds for now
-CMAKE_OPTIONS += -DL_LEVEL=7
+CMAKE_OPTIONS += -DL_LEVEL=7 \
+                -DWITH_LIBUBOX=1
 
 define Package/pimbd
   SECTION:=net
index f8963e01ac3a9710097ad892c11e91e35504504f..e2751f4ed91ed18c534952f0096d2f9bfde51a01 100644 (file)
@@ -10,10 +10,10 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=quagga
 PKG_VERSION:=1.1.0
 PKG_RELEASE:=1
-PKG_MD5SUM:=daa303871e07ea5856aae6fd79e89722
+PKG_HASH:=f7a43a9c59bfd3722002210530b2553c8d5cc05bfea5acd56d4f102b9f55dc63
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://download.savannah.gnu.org/releases/quagga/
+PKG_SOURCE_URL:=@SAVANNAH/quagga/
 PKG_CONFIG_DEPENDS:= \
        CONFIG_IPV6 \
        CONFIG_PACKAGE_quagga-watchquagga \
index 316224a39f2726c64dfbfbca4ce2ec2bec92d8a0..af58f5e00390360d53d5dc08446bae7478d9d1cc 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=vis
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://git.open-mesh.org/vis.git
+PKG_SOURCE_URL:=https://git.open-mesh.org/vis.git
 PKG_REV:=e141311c6a4fc824efbad536c137ed279905d825
 PKG_VERSION:=1440
 PKG_RELEASE:=0