packages: drop olsrd, batman, bmxd and batman-adv packages since they moved to a...
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 20 Apr 2013 13:00:31 +0000 (13:00 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 20 Apr 2013 13:00:31 +0000 (13:00 +0000)
SVN-Revision: 36369

24 files changed:
net/batman-adv/Config.in [deleted file]
net/batman-adv/Makefile [deleted file]
net/batman-adv/files/etc/config/batman-adv [deleted file]
net/batman-adv/files/etc/hotplug.d/net/99-batman-adv [deleted file]
net/batman-adv/files/lib/batman-adv/config.sh [deleted file]
net/batman-adv/files/lib/netifd/proto/batadv.sh [deleted file]
net/batman-adv/patches/0001-batman-adv-verify-tt-len-does-not-exceed-packet-len.patch [deleted file]
net/batman-adv/patches/0002-batman-adv-hlist-drop-the-node-parameter-from-iterators.patch [deleted file]
net/batman-adv/patches/0003-batman-adv-make-is_my_mac-check-for-the-current-mesh.patch [deleted file]
net/batman/Makefile [deleted file]
net/batman/files/etc/config/batmand [deleted file]
net/batman/files/etc/config/vis [deleted file]
net/batman/files/etc/init.d/batmand [deleted file]
net/batman/files/etc/init.d/vis [deleted file]
net/batman/patches/100-2.6.36.patch [deleted file]
net/bmxd/Makefile [deleted file]
net/bmxd/files/etc/config/bmxd [deleted file]
net/bmxd/files/etc/init.d/bmxd [deleted file]
net/olsrd/Makefile [deleted file]
net/olsrd/files/olsrd.config [deleted file]
net/olsrd/files/olsrd.init [deleted file]
net/olsrd/files/olsrd.pud.position.conf [deleted file]
net/olsrd/files/olsrd.sgw.speed.conf [deleted file]
net/olsrd/files/olsrd_secure_key [deleted file]

diff --git a/net/batman-adv/Config.in b/net/batman-adv/Config.in
deleted file mode 100644 (file)
index b47104f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-
-config KMOD_BATMAN_ADV_DEBUG_LOG
-       bool "enable verbose debug logging"
-       depends on PACKAGE_kmod-batman-adv
-       default n
-
-config KMOD_BATMAN_ADV_BLA
-       bool "enable bridge loop avoidance"
-       depends on PACKAGE_kmod-batman-adv
-       default y
-
-config KMOD_BATMAN_ADV_DAT
-       bool "enable distributed arp table"
-       depends on PACKAGE_kmod-batman-adv
-       default y
-
-config KMOD_BATMAN_ADV_BATCTL
-       bool "enable batctl"
-       depends on PACKAGE_kmod-batman-adv
-       default y
-       help
-         batctl is a more intuitive managment utility for B.A.T.M.A.N.-Advanced.
-         It is an easier method for configuring batman-adv and
-         provides some additional tools for debugging as well.
diff --git a/net/batman-adv/Makefile b/net/batman-adv/Makefile
deleted file mode 100644 (file)
index cbb7aac..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#
-# Copyright (C) 2010 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-# $Id: Makefile 5624 2006-11-23 00:29:07Z nbd $
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=batman-adv
-
-PKG_VERSION:=2013.1.0
-BATCTL_VERSION:=2013.1.0
-PKG_RELEASE:=3
-PKG_MD5SUM:=fe1fd32eddde1f91575d7a7ec21d5782
-BATCTL_MD5SUM:=767bf36c77c517e1d321169bf9a7fae5
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_BATCTL_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/batctl-$(BATCTL_VERSION)
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-define KernelPackage/batman-adv
-  URL:=http://www.open-mesh.org/
-  MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
-  SUBMENU:=Network Support
-  DEPENDS:=+kmod-lib-crc16 +kmod-crypto-core +kmod-crypto-crc32c +kmod-lib-crc32c +libc
-  TITLE:=B.A.T.M.A.N. Adv
-  FILES:=$(PKG_BUILD_DIR)/batman-adv.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,50,batman-adv)
-endef
-
-define KernelPackage/batman-adv/description
-B.A.T.M.A.N. advanced is a kernel module which allows to
-build layer 2 mesh networks. This package contains the
-version $(PKG_VERSION) of the kernel module plus its user space
-configuration & managerment tool batctl.
-endef
-
-define KernelPackage/batman-adv/config
-       source "$(SOURCE)/Config.in"
-endef
-
-MAKE_BATMAN_ADV_ARGS += \
-       CROSS_COMPILE="$(TARGET_CROSS)" \
-       KERNELPATH="$(LINUX_DIR)" \
-       ARCH="$(LINUX_KARCH)" \
-       PATH="$(TARGET_PATH)" \
-       SUBDIRS="$(PKG_BUILD_DIR)" \
-       PWD="$(PKG_BUILD_DIR)" \
-       LINUX_VERSION="$(LINUX_VERSION)" \
-       CONFIG_BATMAN_ADV_DEBUG=$(if $(CONFIG_KMOD_BATMAN_ADV_DEBUG_LOG),y,n) \
-       CONFIG_BATMAN_ADV_BLA=$(if $(CONFIG_KMOD_BATMAN_ADV_BLA),y,n) \
-       CONFIG_BATMAN_ADV_DAT=$(if $(CONFIG_KMOD_BATMAN_ADV_DAT),y,n) \
-       REVISION="" all
-
-MAKE_BATCTL_ARGS += \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       CCFLAGS="$(TARGET_CFLAGS)" \
-       OFLAGS="$(TARGET_CFLAGS)" \
-       REVISION="" \
-       CC="$(TARGET_CC)" \
-       NODEBUG=1 \
-       UNAME="Linux" \
-       DESTDIR="$(PKG_INSTALL_DIR)" \
-       STRIP="/bin/true" \
-       batctl install
-
-ifneq ($(DEVELOPER)$(CONFIG_KMOD_BATMAN_ADV_BATCTL),)
-define Download/batctl
-  FILE:=batctl-$(BATCTL_VERSION).tar.gz
-  URL:=$(PKG_SOURCE_URL)
-  MD5SUM:=$(BATCTL_MD5SUM)
-endef
-$(eval $(call Download,batctl))
-
-BATCTL_EXTRACT = tar xzf "$(DL_DIR)/batctl-$(BATCTL_VERSION).tar.gz" -C "$(BUILD_DIR)/$(PKG_NAME)"
-BATCTL_PATCH = $(call Build/DoPatch,"$(PKG_BATCTL_BUILD_DIR)","$(PATCH_DIR)","*batctl*")
-BATCTL_BUILD = $(MAKE) -C $(PKG_BATCTL_BUILD_DIR) $(MAKE_BATCTL_ARGS)
-BATCTL_INSTALL = $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/sbin/batctl $(1)/usr/sbin/
-endif
-
-KPATCH ?= $(PATCH)
-define Build/DoPatch
-       @if [ -d "$(2)" ]; then \
-               if [ "$$$$(ls $(2) | grep -Ec $(3))" -gt 0 ]; then \
-                       $(KPATCH) "$(1)" "$(2)" "$(3)"; \
-               fi; \
-       fi
-endef
-
-define Build/Patch
-       $(call Build/DoPatch,"$(PKG_BUILD_DIR)","$(PATCH_DIR)","*batman*")
-       $(BATCTL_EXTRACT)
-       $(BATCTL_PATCH)
-endef
-
-define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_BATMAN_ADV_ARGS)
-       $(BATCTL_BUILD)
-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
-       $(BATCTL_INSTALL)
-endef
-
-$(eval $(call KernelPackage,batman-adv))
diff --git a/net/batman-adv/files/etc/config/batman-adv b/net/batman-adv/files/etc/config/batman-adv
deleted file mode 100644 (file)
index 6a62203..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-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 'vis_mode'
-       option 'bridge_loop_avoidance'
-       option 'distributed_arp_table'
-       option 'hop_penalty'
-
-# yet another batX instance
-# config 'mesh' 'bat5'
-#      option 'interfaces' 'second_mesh'
diff --git a/net/batman-adv/files/etc/hotplug.d/net/99-batman-adv b/net/batman-adv/files/etc/hotplug.d/net/99-batman-adv
deleted file mode 100644 (file)
index f0c391f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-. /lib/batman-adv/config.sh
-
-bat_load_module
-config_load batman-adv
-
-case "$ACTION" in
-       add)
-               [ -d /sys/class/net/$INTERFACE/mesh/ ] && bat_config "$INTERFACE"
-               ;;
-esac
diff --git a/net/batman-adv/files/lib/batman-adv/config.sh b/net/batman-adv/files/lib/batman-adv/config.sh
deleted file mode 100644 (file)
index ae102e9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-bat_load_module()
-{
-       [ -d "/sys/module/batman_adv/" ] && return
-
-       . /lib/functions.sh
-       load_modules /etc/modules.d/*-crc16 /etc/modules.d/*-batman-adv*
-}
-
-bat_config()
-{
-       local mesh="$1"
-       local aggregated_ogms ap_isolation bonding bridge_loop_avoidance distributed_arp_table fragmentation
-       local gw_bandwidth gw_mode gw_sel_class hop_penalty log_level orig_interval vis_mode
-
-       config_get aggregated_ogms "$mesh" aggregated_ogms
-       config_get ap_isolation "$mesh" ap_isolation
-       config_get bonding "$mesh" bonding
-       config_get bridge_loop_avoidance "$mesh" bridge_loop_avoidance
-       config_get distributed_arp_table "$mesh" distributed_arp_table
-       config_get fragmentation "$mesh" fragmentation
-       config_get gw_bandwidth "$mesh" gw_bandwidth
-       config_get gw_mode "$mesh" gw_mode
-       config_get gw_sel_class "$mesh" gw_sel_class
-       config_get hop_penalty "$mesh" hop_penalty
-       config_get log_level "$mesh" log_level
-       config_get orig_interval "$mesh" orig_interval
-       config_get vis_mode "$mesh" vis_mode
-
-       [ ! -f "/sys/class/net/$mesh/mesh/orig_interval" ] && echo "batman-adv mesh $mesh does not exist - check your interface configuration" && return 1
-
-       [ -n "$aggregate_ogms" ] && echo $aggregate_ogms > /sys/class/net/$mesh/mesh/aggregate_ogms
-       [ -n "$ap_isolation" ] && echo $ap_isolation > /sys/class/net/$mesh/mesh/ap_isolation
-       [ -n "$bonding" ] && echo $bonding > /sys/class/net/$mesh/mesh/bonding
-       [ -n "$bridge_loop_avoidance" ] && echo $bridge_loop_avoidance > /sys/class/net/$mesh/mesh/bridge_loop_avoidance
-       [ -n "$distributed_arp_table" ] && echo $distributed_arp_table > /sys/class/net/$mesh/mesh/distributed_arp_table
-       [ -n "$fragmentation" ] && echo $fragmentation > /sys/class/net/$mesh/mesh/fragmentation
-       [ -n "$gw_bandwidth" ] && echo $gw_bandwidth > /sys/class/net/$mesh/mesh/gw_bandwidth
-       [ -n "$gw_mode" ] && echo $gw_mode > /sys/class/net/$mesh/mesh/gw_mode
-       [ -n "$gw_sel_class" ] && echo $gw_sel_class > /sys/class/net/$mesh/mesh/gw_sel_class
-       [ -n "$hop_penalty" ] && echo $hop_penalty > /sys/class/net/$mesh/mesh/hop_penalty
-       [ -n "$log_level" ] && echo $log_level > /sys/class/net/$mesh/mesh/log_level 2>&-
-       [ -n "$orig_interval" ] && echo $orig_interval > /sys/class/net/$mesh/mesh/orig_interval
-       [ -n "$vis_mode" ] && echo $vis_mode > /sys/class/net/$mesh/mesh/vis_mode
-}
diff --git a/net/batman-adv/files/lib/netifd/proto/batadv.sh b/net/batman-adv/files/lib/netifd/proto/batadv.sh
deleted file mode 100644 (file)
index 632a209..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-. /lib/functions.sh
-. ../netifd-proto.sh
-init_proto "$@"
-
-proto_batadv_init_config() {
-       proto_config_add_string "mesh"
-}
-
-proto_batadv_setup() {
-       local config="$1"
-       local iface="$2"
-
-       local mesh
-       json_get_vars mesh
-
-       echo "$mesh" > "/sys/class/net/$iface/batman_adv/mesh_iface"
-       proto_init_update "$iface" 1
-       proto_send_update "$config"
-}
-
-proto_batadv_teardown() {
-       local config="$1"
-       local iface="$2"
-
-       echo "none" > "/sys/class/net/$iface/batman_adv/mesh_iface" || true
-}
-
-add_protocol batadv
diff --git a/net/batman-adv/patches/0001-batman-adv-verify-tt-len-does-not-exceed-packet-len.patch b/net/batman-adv/patches/0001-batman-adv-verify-tt-len-does-not-exceed-packet-len.patch
deleted file mode 100644 (file)
index 46b2c8d..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From e56c79f4e863436d0fc6c48fed0db09b7a49e565 Mon Sep 17 00:00:00 2001
-From: Marek Lindner <lindner_marek@yahoo.de>
-Date: Mon, 4 Mar 2013 10:39:49 +0800
-Subject: [PATCH 1/3] batman-adv: verify tt len does not exceed packet len
-
-batadv_iv_ogm_process() accesses the packet using the tt_num_changes
-attribute regardless of the real packet len (assuming the length check
-was done before). Therefore a length check is needed to avoid reading
-random memory.
-
-Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
----
- bat_iv_ogm.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
-index 72fe1bb..d5be889 100644
---- a/bat_iv_ogm.c
-+++ b/bat_iv_ogm.c
-@@ -1292,7 +1292,8 @@ static int batadv_iv_ogm_receive(struct sk_buff *skb,
-       batadv_ogm_packet = (struct batadv_ogm_packet *)packet_buff;
-       /* unpack the aggregated packets and process them one by one */
--      do {
-+      while (batadv_iv_ogm_aggr_packet(buff_pos, packet_len,
-+                                       batadv_ogm_packet->tt_num_changes)) {
-               tt_buff = packet_buff + buff_pos + BATADV_OGM_HLEN;
-               batadv_iv_ogm_process(ethhdr, batadv_ogm_packet, tt_buff,
-@@ -1303,8 +1304,7 @@ static int batadv_iv_ogm_receive(struct sk_buff *skb,
-               packet_pos = packet_buff + buff_pos;
-               batadv_ogm_packet = (struct batadv_ogm_packet *)packet_pos;
--      } while (batadv_iv_ogm_aggr_packet(buff_pos, packet_len,
--                                         batadv_ogm_packet->tt_num_changes));
-+      }
-       kfree_skb(skb);
-       return NET_RX_SUCCESS;
--- 
-1.7.10.4
-
diff --git a/net/batman-adv/patches/0002-batman-adv-hlist-drop-the-node-parameter-from-iterators.patch b/net/batman-adv/patches/0002-batman-adv-hlist-drop-the-node-parameter-from-iterators.patch
deleted file mode 100644 (file)
index 71af36a..0000000
+++ /dev/null
@@ -1,1462 +0,0 @@
-From c506b113c82319c43478ff31c933c4e98f0084d7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sasha.levin@oracle.com>
-Date: Wed, 27 Feb 2013 17:06:00 -0800
-Subject: [PATCH 2/3] hlist: drop the node parameter from iterators
-
-I'm not sure why, but the hlist for each entry iterators were conceived
-
-        list_for_each_entry(pos, head, member)
-
-The hlist ones were greedy and wanted an extra parameter:
-
-        hlist_for_each_entry(tpos, pos, head, member)
-
-Why did they need an extra pos parameter? I'm not quite sure. Not only
-they don't really need it, it also prevents the iterator from looking
-exactly like the list iterator, which is unfortunate.
-
-Besides the semantic patch, there was some manual work required:
-
- - Fix up the actual hlist iterators in linux/list.h
- - Fix up the declaration of other iterators based on the hlist ones.
- - A very small amount of places were using the 'node' parameter, this
- was modified to use 'obj->member' instead.
- - Coccinelle didn't handle the hlist_for_each_entry_safe iterator
- properly, so those had to be fixed up manually.
-
-The semantic patch which is mostly the work of Peter Senna Tschudin is here:
-
-@@
-iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;
-
-type T;
-expression a,c,d,e;
-identifier b;
-statement S;
-@@
-
--T b;
-    <+... when != b
-(
-hlist_for_each_entry(a,
-- b,
-c, d) S
-|
-hlist_for_each_entry_continue(a,
-- b,
-c) S
-|
-hlist_for_each_entry_from(a,
-- b,
-c) S
-|
-hlist_for_each_entry_rcu(a,
-- b,
-c, d) S
-|
-hlist_for_each_entry_rcu_bh(a,
-- b,
-c, d) S
-|
-hlist_for_each_entry_continue_rcu_bh(a,
-- b,
-c) S
-|
-for_each_busy_worker(a, c,
-- b,
-d) S
-|
-ax25_uid_for_each(a,
-- b,
-c) S
-|
-ax25_for_each(a,
-- b,
-c) S
-|
-inet_bind_bucket_for_each(a,
-- b,
-c) S
-|
-sctp_for_each_hentry(a,
-- b,
-c) S
-|
-sk_for_each(a,
-- b,
-c) S
-|
-sk_for_each_rcu(a,
-- b,
-c) S
-|
-sk_for_each_from
--(a, b)
-+(a)
-S
-+ sk_for_each_from(a) S
-|
-sk_for_each_safe(a,
-- b,
-c, d) S
-|
-sk_for_each_bound(a,
-- b,
-c) S
-|
-hlist_for_each_entry_safe(a,
-- b,
-c, d, e) S
-|
-hlist_for_each_entry_continue_rcu(a,
-- b,
-c) S
-|
-nr_neigh_for_each(a,
-- b,
-c) S
-|
-nr_neigh_for_each_safe(a,
-- b,
-c, d) S
-|
-nr_node_for_each(a,
-- b,
-c) S
-|
-nr_node_for_each_safe(a,
-- b,
-c, d) S
-|
-- for_each_gfn_sp(a, c, d, b) S
-+ for_each_gfn_sp(a, c, d) S
-|
-- for_each_gfn_indirect_valid_sp(a, c, d, b) S
-+ for_each_gfn_indirect_valid_sp(a, c, d) S
-|
-for_each_host(a,
-- b,
-c) S
-|
-for_each_host_safe(a,
-- b,
-c, d) S
-|
-for_each_mesh_entry(a,
-- b,
-c, d) S
-)
-    ...+>
-
-[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]
-[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]
-[akpm@linux-foundation.org: checkpatch fixes]
-[akpm@linux-foundation.org: fix warnings]
-[akpm@linux-foudnation.org: redo intrusive kvm changes]
-Tested-by: Peter Senna Tschudin <peter.senna@gmail.com>
-Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
-Cc: Wu Fengguang <fengguang.wu@intel.com>
-Cc: Marcelo Tosatti <mtosatti@redhat.com>
-Cc: Gleb Natapov <gleb@redhat.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
----
- bat_iv_ogm.c            |   12 +++----
- bridge_loop_avoidance.c |   39 +++++++++-------------
- compat.h                |   23 +++++++++++++
- distributed-arp-table.c |   15 ++++-----
- gateway_client.c        |   13 +++-----
- main.c                  |    6 ++--
- originator.c            |   31 ++++++++----------
- originator.h            |    3 +-
- routing.c               |    6 ++--
- send.c                  |    6 ++--
- translation-table.c     |   82 ++++++++++++++++++++---------------------------
- vis.c                   |   38 +++++++++-------------
- 12 files changed, 125 insertions(+), 149 deletions(-)
-
-diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
-index d5be889..a5bb0a7 100644
---- a/bat_iv_ogm.c
-+++ b/bat_iv_ogm.c
-@@ -487,7 +487,6 @@ static void batadv_iv_ogm_queue_add(struct batadv_priv *bat_priv,
-        */
-       struct batadv_forw_packet *forw_packet_aggr = NULL;
-       struct batadv_forw_packet *forw_packet_pos = NULL;
--      struct hlist_node *tmp_node;
-       struct batadv_ogm_packet *batadv_ogm_packet;
-       bool direct_link;
-       unsigned long max_aggregation_jiffies;
-@@ -500,7 +499,7 @@ static void batadv_iv_ogm_queue_add(struct batadv_priv *bat_priv,
-       spin_lock_bh(&bat_priv->forw_bat_list_lock);
-       /* own packets are not to be aggregated */
-       if ((atomic_read(&bat_priv->aggregated_ogms)) && (!own_packet)) {
--              hlist_for_each_entry(forw_packet_pos, tmp_node,
-+              hlist_for_each_entry(forw_packet_pos,
-                                    &bat_priv->forw_bat_list, list) {
-                       if (batadv_iv_ogm_can_aggregate(batadv_ogm_packet,
-                                                       bat_priv, packet_len,
-@@ -655,7 +654,6 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv,
-       struct batadv_neigh_node *neigh_node = NULL, *tmp_neigh_node = NULL;
-       struct batadv_neigh_node *router = NULL;
-       struct batadv_orig_node *orig_node_tmp;
--      struct hlist_node *node;
-       int if_num;
-       uint8_t sum_orig, sum_neigh;
-       uint8_t *neigh_addr;
-@@ -665,7 +663,7 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv,
-                  "update_originator(): Searching and updating originator entry of received packet\n");
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(tmp_neigh_node, node,
-+      hlist_for_each_entry_rcu(tmp_neigh_node,
-                                &orig_node->neigh_list, list) {
-               neigh_addr = tmp_neigh_node->addr;
-               if (batadv_compare_eth(neigh_addr, ethhdr->h_source) &&
-@@ -801,7 +799,6 @@ static int batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node,
- {
-       struct batadv_priv *bat_priv = netdev_priv(if_incoming->soft_iface);
-       struct batadv_neigh_node *neigh_node = NULL, *tmp_neigh_node;
--      struct hlist_node *node;
-       uint8_t total_count;
-       uint8_t orig_eq_count, neigh_rq_count, neigh_rq_inv, tq_own;
-       unsigned int neigh_rq_inv_cube, neigh_rq_max_cube;
-@@ -810,7 +807,7 @@ static int batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node,
-       /* find corresponding one hop neighbor */
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(tmp_neigh_node, node,
-+      hlist_for_each_entry_rcu(tmp_neigh_node,
-                                &orig_neigh_node->neigh_list, list) {
-               if (!batadv_compare_eth(tmp_neigh_node->addr,
-                                       orig_neigh_node->orig))
-@@ -920,7 +917,6 @@ batadv_iv_ogm_update_seqnos(const struct ethhdr *ethhdr,
-       struct batadv_priv *bat_priv = netdev_priv(if_incoming->soft_iface);
-       struct batadv_orig_node *orig_node;
-       struct batadv_neigh_node *tmp_neigh_node;
--      struct hlist_node *node;
-       int is_duplicate = 0;
-       int32_t seq_diff;
-       int need_update = 0;
-@@ -943,7 +939,7 @@ batadv_iv_ogm_update_seqnos(const struct ethhdr *ethhdr,
-               goto out;
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(tmp_neigh_node, node,
-+      hlist_for_each_entry_rcu(tmp_neigh_node,
-                                &orig_node->neigh_list, list) {
-               is_duplicate |= batadv_test_bit(tmp_neigh_node->real_bits,
-                                               orig_node->last_real_seqno,
-diff --git a/bridge_loop_avoidance.c b/bridge_loop_avoidance.c
-index 30f4652..6a4f728 100644
---- a/bridge_loop_avoidance.c
-+++ b/bridge_loop_avoidance.c
-@@ -144,7 +144,6 @@ static struct batadv_bla_claim
- {
-       struct batadv_hashtable *hash = bat_priv->bla.claim_hash;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_bla_claim *claim;
-       struct batadv_bla_claim *claim_tmp = NULL;
-       int index;
-@@ -156,7 +155,7 @@ static struct batadv_bla_claim
-       head = &hash->table[index];
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(claim, node, head, hash_entry) {
-+      hlist_for_each_entry_rcu(claim, head, hash_entry) {
-               if (!batadv_compare_claim(&claim->hash_entry, data))
-                       continue;
-@@ -185,7 +184,6 @@ batadv_backbone_hash_find(struct batadv_priv *bat_priv,
- {
-       struct batadv_hashtable *hash = bat_priv->bla.backbone_hash;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_bla_backbone_gw search_entry, *backbone_gw;
-       struct batadv_bla_backbone_gw *backbone_gw_tmp = NULL;
-       int index;
-@@ -200,7 +198,7 @@ batadv_backbone_hash_find(struct batadv_priv *bat_priv,
-       head = &hash->table[index];
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(backbone_gw, node, head, hash_entry) {
-+      hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-               if (!batadv_compare_backbone_gw(&backbone_gw->hash_entry,
-                                               &search_entry))
-                       continue;
-@@ -221,7 +219,7 @@ static void
- batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw)
- {
-       struct batadv_hashtable *hash;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       struct batadv_bla_claim *claim;
-       int i;
-@@ -236,13 +234,13 @@ batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(claim, node, node_tmp,
-+              hlist_for_each_entry_safe(claim, node_tmp,
-                                         head, hash_entry) {
-                       if (claim->backbone_gw != backbone_gw)
-                               continue;
-                       batadv_claim_free_ref(claim);
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&claim->hash_entry);
-               }
-               spin_unlock_bh(list_lock);
-       }
-@@ -460,7 +458,6 @@ static void batadv_bla_answer_request(struct batadv_priv *bat_priv,
-                                     struct batadv_hard_iface *primary_if,
-                                     short vid)
- {
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_hashtable *hash;
-       struct batadv_bla_claim *claim;
-@@ -481,7 +478,7 @@ static void batadv_bla_answer_request(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(claim, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(claim, head, hash_entry) {
-                       /* only own claims are interesting */
-                       if (claim->backbone_gw != backbone_gw)
-                               continue;
-@@ -958,7 +955,7 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv,
- static void batadv_bla_purge_backbone_gw(struct batadv_priv *bat_priv, int now)
- {
-       struct batadv_bla_backbone_gw *backbone_gw;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       struct batadv_hashtable *hash;
-       spinlock_t *list_lock;  /* protects write access to the hash lists */
-@@ -973,7 +970,7 @@ static void batadv_bla_purge_backbone_gw(struct batadv_priv *bat_priv, int now)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(backbone_gw, node, node_tmp,
-+              hlist_for_each_entry_safe(backbone_gw, node_tmp,
-                                         head, hash_entry) {
-                       if (now)
-                               goto purge_now;
-@@ -992,7 +989,7 @@ purge_now:
-                       batadv_bla_del_backbone_claims(backbone_gw);
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&backbone_gw->hash_entry);
-                       batadv_backbone_gw_free_ref(backbone_gw);
-               }
-               spin_unlock_bh(list_lock);
-@@ -1013,7 +1010,6 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
-                                   int now)
- {
-       struct batadv_bla_claim *claim;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_hashtable *hash;
-       int i;
-@@ -1026,7 +1022,7 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(claim, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(claim, head, hash_entry) {
-                       if (now)
-                               goto purge_now;
-                       if (!batadv_compare_eth(claim->backbone_gw->orig,
-@@ -1062,7 +1058,6 @@ void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
-                                   struct batadv_hard_iface *oldif)
- {
-       struct batadv_bla_backbone_gw *backbone_gw;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_hashtable *hash;
-       __be16 group;
-@@ -1086,7 +1081,7 @@ void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(backbone_gw, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-                       /* own orig still holds the old value. */
-                       if (!batadv_compare_eth(backbone_gw->orig,
-                                               oldif->net_dev->dev_addr))
-@@ -1112,7 +1107,6 @@ static void batadv_bla_periodic_work(struct work_struct *work)
-       struct delayed_work *delayed_work;
-       struct batadv_priv *bat_priv;
-       struct batadv_priv_bla *priv_bla;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_bla_backbone_gw *backbone_gw;
-       struct batadv_hashtable *hash;
-@@ -1140,7 +1134,7 @@ static void batadv_bla_periodic_work(struct work_struct *work)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(backbone_gw, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-                       if (!batadv_compare_eth(backbone_gw->orig,
-                                               primary_if->net_dev->dev_addr))
-                               continue;
-@@ -1322,7 +1316,6 @@ int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
- {
-       struct batadv_hashtable *hash = bat_priv->bla.backbone_hash;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_bla_backbone_gw *backbone_gw;
-       int i;
-@@ -1336,7 +1329,7 @@ int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(backbone_gw, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-                       if (batadv_compare_eth(backbone_gw->orig, orig)) {
-                               rcu_read_unlock();
-                               return 1;
-@@ -1607,7 +1600,6 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset)
-       struct batadv_hashtable *hash = bat_priv->bla.claim_hash;
-       struct batadv_bla_claim *claim;
-       struct batadv_hard_iface *primary_if;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       uint32_t i;
-       bool is_own;
-@@ -1628,7 +1620,7 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(claim, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(claim, head, hash_entry) {
-                       is_own = batadv_compare_eth(claim->backbone_gw->orig,
-                                                   primary_addr);
-                       seq_printf(seq, " * %pM on % 5d by %pM [%c] (%#.4x)\n",
-@@ -1652,7 +1644,6 @@ int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset)
-       struct batadv_hashtable *hash = bat_priv->bla.backbone_hash;
-       struct batadv_bla_backbone_gw *backbone_gw;
-       struct batadv_hard_iface *primary_if;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       int secs, msecs;
-       uint32_t i;
-@@ -1674,7 +1665,7 @@ int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(backbone_gw, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-                       msecs = jiffies_to_msecs(jiffies -
-                                                backbone_gw->lasttime);
-                       secs = msecs / 1000;
-diff --git a/compat.h b/compat.h
-index e21b310..22ab781 100644
---- a/compat.h
-+++ b/compat.h
-@@ -211,6 +211,29 @@ static int batadv_interface_set_mac_addr(struct net_device *dev, void *p) \
- }\
- static int __batadv_interface_set_mac_addr(x, y)
-+#define hlist_entry_safe(ptr, type, member) \
-+      (ptr) ? hlist_entry(ptr, type, member) : NULL
-+
-+#undef hlist_for_each_entry
-+#define hlist_for_each_entry(pos, head, member) \
-+      for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
-+      pos; \
-+      pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
-+
-+#undef hlist_for_each_entry_rcu
-+#define hlist_for_each_entry_rcu(pos, head, member) \
-+      for (pos = hlist_entry_safe (rcu_dereference_raw(hlist_first_rcu(head)),\
-+      typeof(*(pos)), member); \
-+      pos; \
-+      pos = hlist_entry_safe(rcu_dereference_raw(hlist_next_rcu(\
-+      &(pos)->member)), typeof(*(pos)), member))
-+
-+#undef hlist_for_each_entry_safe
-+#define hlist_for_each_entry_safe(pos, n, head, member) \
-+      for (pos = hlist_entry_safe((head)->first, typeof(*pos), member);\
-+      pos && ({ n = pos->member.next; 1; }); \
-+      pos = hlist_entry_safe(n, typeof(*pos), member))
-+
- #endif /* < KERNEL_VERSION(3, 9, 0) */
- #endif /* _NET_BATMAN_ADV_COMPAT_H_ */
-diff --git a/distributed-arp-table.c b/distributed-arp-table.c
-index 761a590..d54188a 100644
---- a/distributed-arp-table.c
-+++ b/distributed-arp-table.c
-@@ -83,7 +83,7 @@ static void __batadv_dat_purge(struct batadv_priv *bat_priv,
- {
-       spinlock_t *list_lock; /* protects write access to the hash lists */
-       struct batadv_dat_entry *dat_entry;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       uint32_t i;
-@@ -95,7 +95,7 @@ static void __batadv_dat_purge(struct batadv_priv *bat_priv,
-               list_lock = &bat_priv->dat.hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(dat_entry, node, node_tmp, head,
-+              hlist_for_each_entry_safe(dat_entry, node_tmp, head,
-                                         hash_entry) {
-                       /* if an helper function has been passed as parameter,
-                        * ask it if the entry has to be purged or not
-@@ -103,7 +103,7 @@ static void __batadv_dat_purge(struct batadv_priv *bat_priv,
-                       if (to_purge && !to_purge(dat_entry))
-                               continue;
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&dat_entry->hash_entry);
-                       batadv_dat_entry_free_ref(dat_entry);
-               }
-               spin_unlock_bh(list_lock);
-@@ -235,7 +235,6 @@ static struct batadv_dat_entry *
- batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip)
- {
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_dat_entry *dat_entry, *dat_entry_tmp = NULL;
-       struct batadv_hashtable *hash = bat_priv->dat.hash;
-       uint32_t index;
-@@ -247,7 +246,7 @@ batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip)
-       head = &hash->table[index];
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(dat_entry, node, head, hash_entry) {
-+      hlist_for_each_entry_rcu(dat_entry, head, hash_entry) {
-               if (dat_entry->ip != ip)
-                       continue;
-@@ -465,7 +464,6 @@ static void batadv_choose_next_candidate(struct batadv_priv *bat_priv,
-       batadv_dat_addr_t max = 0, tmp_max = 0;
-       struct batadv_orig_node *orig_node, *max_orig_node = NULL;
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       int i;
-@@ -481,7 +479,7 @@ static void batadv_choose_next_candidate(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       /* the dht space is a ring and addresses are unsigned */
-                       tmp_max = BATADV_DAT_ADDR_MAX - orig_node->dat_addr +
-                                 ip_key;
-@@ -686,7 +684,6 @@ int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset)
-       struct batadv_hashtable *hash = bat_priv->dat.hash;
-       struct batadv_dat_entry *dat_entry;
-       struct batadv_hard_iface *primary_if;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       unsigned long last_seen_jiffies;
-       int last_seen_msecs, last_seen_secs, last_seen_mins;
-@@ -704,7 +701,7 @@ int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(dat_entry, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(dat_entry, head, hash_entry) {
-                       last_seen_jiffies = jiffies - dat_entry->last_update;
-                       last_seen_msecs = jiffies_to_msecs(last_seen_jiffies);
-                       last_seen_mins = last_seen_msecs / 60000;
-diff --git a/gateway_client.c b/gateway_client.c
-index 074107f..34f99a4 100644
---- a/gateway_client.c
-+++ b/gateway_client.c
-@@ -114,7 +114,6 @@ static struct batadv_gw_node *
- batadv_gw_get_best_gw_node(struct batadv_priv *bat_priv)
- {
-       struct batadv_neigh_node *router;
--      struct hlist_node *node;
-       struct batadv_gw_node *gw_node, *curr_gw = NULL;
-       uint32_t max_gw_factor = 0, tmp_gw_factor = 0;
-       uint32_t gw_divisor;
-@@ -127,7 +126,7 @@ batadv_gw_get_best_gw_node(struct batadv_priv *bat_priv)
-       gw_divisor *= 64;
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(gw_node, node, &bat_priv->gw.list, list) {
-+      hlist_for_each_entry_rcu(gw_node, &bat_priv->gw.list, list) {
-               if (gw_node->deleted)
-                       continue;
-@@ -344,7 +343,6 @@ void batadv_gw_node_update(struct batadv_priv *bat_priv,
-                          struct batadv_orig_node *orig_node,
-                          uint8_t new_gwflags)
- {
--      struct hlist_node *node;
-       struct batadv_gw_node *gw_node, *curr_gw;
-       /* Note: We don't need a NULL check here, since curr_gw never gets
-@@ -355,7 +353,7 @@ void batadv_gw_node_update(struct batadv_priv *bat_priv,
-       curr_gw = batadv_gw_get_selected_gw_node(bat_priv);
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(gw_node, node, &bat_priv->gw.list, list) {
-+      hlist_for_each_entry_rcu(gw_node, &bat_priv->gw.list, list) {
-               if (gw_node->orig_node != orig_node)
-                       continue;
-@@ -403,7 +401,7 @@ void batadv_gw_node_delete(struct batadv_priv *bat_priv,
- void batadv_gw_node_purge(struct batadv_priv *bat_priv)
- {
-       struct batadv_gw_node *gw_node, *curr_gw;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       unsigned long timeout = msecs_to_jiffies(2 * BATADV_PURGE_TIMEOUT);
-       int do_deselect = 0;
-@@ -411,7 +409,7 @@ void batadv_gw_node_purge(struct batadv_priv *bat_priv)
-       spin_lock_bh(&bat_priv->gw.list_lock);
--      hlist_for_each_entry_safe(gw_node, node, node_tmp,
-+      hlist_for_each_entry_safe(gw_node, node_tmp,
-                                 &bat_priv->gw.list, list) {
-               if (((!gw_node->deleted) ||
-                    (time_before(jiffies, gw_node->deleted + timeout))) &&
-@@ -476,7 +474,6 @@ int batadv_gw_client_seq_print_text(struct seq_file *seq, void *offset)
-       struct batadv_priv *bat_priv = netdev_priv(net_dev);
-       struct batadv_hard_iface *primary_if;
-       struct batadv_gw_node *gw_node;
--      struct hlist_node *node;
-       int gw_count = 0;
-       primary_if = batadv_seq_print_text_primary_if_get(seq);
-@@ -490,7 +487,7 @@ int batadv_gw_client_seq_print_text(struct seq_file *seq, void *offset)
-                  primary_if->net_dev->dev_addr, net_dev->name);
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(gw_node, node, &bat_priv->gw.list, list) {
-+      hlist_for_each_entry_rcu(gw_node, &bat_priv->gw.list, list) {
-               if (gw_node->deleted)
-                       continue;
-diff --git a/main.c b/main.c
-index 21fe698..0488d70 100644
---- a/main.c
-+++ b/main.c
-@@ -345,9 +345,8 @@ void batadv_recv_handler_unregister(uint8_t packet_type)
- static struct batadv_algo_ops *batadv_algo_get(char *name)
- {
-       struct batadv_algo_ops *bat_algo_ops = NULL, *bat_algo_ops_tmp;
--      struct hlist_node *node;
--      hlist_for_each_entry(bat_algo_ops_tmp, node, &batadv_algo_list, list) {
-+      hlist_for_each_entry(bat_algo_ops_tmp, &batadv_algo_list, list) {
-               if (strcmp(bat_algo_ops_tmp->name, name) != 0)
-                       continue;
-@@ -411,11 +410,10 @@ out:
- int batadv_algo_seq_print_text(struct seq_file *seq, void *offset)
- {
-       struct batadv_algo_ops *bat_algo_ops;
--      struct hlist_node *node;
-       seq_printf(seq, "Available routing algorithms:\n");
--      hlist_for_each_entry(bat_algo_ops, node, &batadv_algo_list, list) {
-+      hlist_for_each_entry(bat_algo_ops, &batadv_algo_list, list) {
-               seq_printf(seq, "%s\n", bat_algo_ops->name);
-       }
-diff --git a/originator.c b/originator.c
-index 457ea44..96fb80b 100644
---- a/originator.c
-+++ b/originator.c
-@@ -118,7 +118,7 @@ out:
- static void batadv_orig_node_free_rcu(struct rcu_head *rcu)
- {
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct batadv_neigh_node *neigh_node, *tmp_neigh_node;
-       struct batadv_orig_node *orig_node;
-@@ -134,7 +134,7 @@ static void batadv_orig_node_free_rcu(struct rcu_head *rcu)
-       }
-       /* for all neighbors towards this originator ... */
--      hlist_for_each_entry_safe(neigh_node, node, node_tmp,
-+      hlist_for_each_entry_safe(neigh_node, node_tmp,
-                                 &orig_node->neigh_list, list) {
-               hlist_del_rcu(&neigh_node->list);
-               batadv_neigh_node_free_ref(neigh_node);
-@@ -161,7 +161,7 @@ void batadv_orig_node_free_ref(struct batadv_orig_node *orig_node)
- void batadv_originator_free(struct batadv_priv *bat_priv)
- {
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       spinlock_t *list_lock; /* spinlock to protect write access */
-       struct batadv_orig_node *orig_node;
-@@ -179,9 +179,9 @@ void batadv_originator_free(struct batadv_priv *bat_priv)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(orig_node, node, node_tmp,
-+              hlist_for_each_entry_safe(orig_node, node_tmp,
-                                         head, hash_entry) {
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&orig_node->hash_entry);
-                       batadv_orig_node_free_ref(orig_node);
-               }
-               spin_unlock_bh(list_lock);
-@@ -274,7 +274,7 @@ batadv_purge_orig_neighbors(struct batadv_priv *bat_priv,
-                           struct batadv_orig_node *orig_node,
-                           struct batadv_neigh_node **best_neigh_node)
- {
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct batadv_neigh_node *neigh_node;
-       bool neigh_purged = false;
-       unsigned long last_seen;
-@@ -285,7 +285,7 @@ batadv_purge_orig_neighbors(struct batadv_priv *bat_priv,
-       spin_lock_bh(&orig_node->neigh_list_lock);
-       /* for all neighbors towards this originator ... */
--      hlist_for_each_entry_safe(neigh_node, node, node_tmp,
-+      hlist_for_each_entry_safe(neigh_node, node_tmp,
-                                 &orig_node->neigh_list, list) {
-               last_seen = neigh_node->last_seen;
-               if_incoming = neigh_node->if_incoming;
-@@ -348,7 +348,7 @@ static bool batadv_purge_orig_node(struct batadv_priv *bat_priv,
- static void _batadv_purge_orig(struct batadv_priv *bat_priv)
- {
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       spinlock_t *list_lock; /* spinlock to protect write access */
-       struct batadv_orig_node *orig_node;
-@@ -363,13 +363,13 @@ static void _batadv_purge_orig(struct batadv_priv *bat_priv)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(orig_node, node, node_tmp,
-+              hlist_for_each_entry_safe(orig_node, node_tmp,
-                                         head, hash_entry) {
-                       if (batadv_purge_orig_node(bat_priv, orig_node)) {
-                               if (orig_node->gw_flags)
-                                       batadv_gw_node_delete(bat_priv,
-                                                             orig_node);
--                              hlist_del_rcu(node);
-+                              hlist_del_rcu(&orig_node->hash_entry);
-                               batadv_orig_node_free_ref(orig_node);
-                               continue;
-                       }
-@@ -408,7 +408,6 @@ int batadv_orig_seq_print_text(struct seq_file *seq, void *offset)
-       struct net_device *net_dev = (struct net_device *)seq->private;
-       struct batadv_priv *bat_priv = netdev_priv(net_dev);
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node, *node_tmp;
-       struct hlist_head *head;
-       struct batadv_hard_iface *primary_if;
-       struct batadv_orig_node *orig_node;
-@@ -434,7 +433,7 @@ int batadv_orig_seq_print_text(struct seq_file *seq, void *offset)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       neigh_node = batadv_orig_node_get_router(orig_node);
-                       if (!neigh_node)
-                               continue;
-@@ -453,7 +452,7 @@ int batadv_orig_seq_print_text(struct seq_file *seq, void *offset)
-                                  neigh_node->addr,
-                                  neigh_node->if_incoming->net_dev->name);
--                      hlist_for_each_entry_rcu(neigh_node_tmp, node_tmp,
-+                      hlist_for_each_entry_rcu(neigh_node_tmp,
-                                                &orig_node->neigh_list, list) {
-                               seq_printf(seq, " %pM (%3i)",
-                                          neigh_node_tmp->addr,
-@@ -511,7 +510,6 @@ int batadv_orig_hash_add_if(struct batadv_hard_iface *hard_iface,
- {
-       struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_orig_node *orig_node;
-       uint32_t i;
-@@ -524,7 +522,7 @@ int batadv_orig_hash_add_if(struct batadv_hard_iface *hard_iface,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       spin_lock_bh(&orig_node->ogm_cnt_lock);
-                       ret = batadv_orig_node_add_if(orig_node, max_if_num);
-                       spin_unlock_bh(&orig_node->ogm_cnt_lock);
-@@ -595,7 +593,6 @@ int batadv_orig_hash_del_if(struct batadv_hard_iface *hard_iface,
- {
-       struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_hard_iface *hard_iface_tmp;
-       struct batadv_orig_node *orig_node;
-@@ -609,7 +606,7 @@ int batadv_orig_hash_del_if(struct batadv_hard_iface *hard_iface,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       spin_lock_bh(&orig_node->ogm_cnt_lock);
-                       ret = batadv_orig_node_del_if(orig_node, max_if_num,
-                                                     hard_iface->if_num);
-diff --git a/originator.h b/originator.h
-index 286bf74..7df48fa 100644
---- a/originator.h
-+++ b/originator.h
-@@ -68,7 +68,6 @@ batadv_orig_hash_find(struct batadv_priv *bat_priv, const void *data)
- {
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_orig_node *orig_node, *orig_node_tmp = NULL;
-       int index;
-@@ -79,7 +78,7 @@ batadv_orig_hash_find(struct batadv_priv *bat_priv, const void *data)
-       head = &hash->table[index];
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+      hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-               if (!batadv_compare_eth(orig_node, data))
-                       continue;
-diff --git a/routing.c b/routing.c
-index 60ba03f..5ee21ce 100644
---- a/routing.c
-+++ b/routing.c
-@@ -37,7 +37,6 @@ void batadv_slide_own_bcast_window(struct batadv_hard_iface *hard_iface)
- {
-       struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_orig_node *orig_node;
-       unsigned long *word;
-@@ -49,7 +48,7 @@ void batadv_slide_own_bcast_window(struct batadv_hard_iface *hard_iface)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       spin_lock_bh(&orig_node->ogm_cnt_lock);
-                       word_index = hard_iface->if_num * BATADV_NUM_WORDS;
-                       word = &(orig_node->bcast_own[word_index]);
-@@ -146,7 +145,6 @@ out:
- void batadv_bonding_candidate_add(struct batadv_orig_node *orig_node,
-                                 struct batadv_neigh_node *neigh_node)
- {
--      struct hlist_node *node;
-       struct batadv_neigh_node *tmp_neigh_node, *router = NULL;
-       uint8_t interference_candidate = 0;
-@@ -169,7 +167,7 @@ void batadv_bonding_candidate_add(struct batadv_orig_node *orig_node,
-        * interface. If we do, we won't select this candidate because of
-        * possible interference.
-        */
--      hlist_for_each_entry_rcu(tmp_neigh_node, node,
-+      hlist_for_each_entry_rcu(tmp_neigh_node,
-                                &orig_node->neigh_list, list) {
-               if (tmp_neigh_node == neigh_node)
-                       continue;
-diff --git a/send.c b/send.c
-index 80ca65f..a67cffd 100644
---- a/send.c
-+++ b/send.c
-@@ -316,7 +316,7 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
-                                const struct batadv_hard_iface *hard_iface)
- {
-       struct batadv_forw_packet *forw_packet;
--      struct hlist_node *tmp_node, *safe_tmp_node;
-+      struct hlist_node *safe_tmp_node;
-       bool pending;
-       if (hard_iface)
-@@ -329,7 +329,7 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
-       /* free bcast list */
-       spin_lock_bh(&bat_priv->forw_bcast_list_lock);
--      hlist_for_each_entry_safe(forw_packet, tmp_node, safe_tmp_node,
-+      hlist_for_each_entry_safe(forw_packet, safe_tmp_node,
-                                 &bat_priv->forw_bcast_list, list) {
-               /* if purge_outstanding_packets() was called with an argument
-                * we delete only packets belonging to the given interface
-@@ -355,7 +355,7 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
-       /* free batman packet list */
-       spin_lock_bh(&bat_priv->forw_bat_list_lock);
--      hlist_for_each_entry_safe(forw_packet, tmp_node, safe_tmp_node,
-+      hlist_for_each_entry_safe(forw_packet, safe_tmp_node,
-                                 &bat_priv->forw_bat_list, list) {
-               /* if purge_outstanding_packets() was called with an argument
-                * we delete only packets belonging to the given interface
-diff --git a/translation-table.c b/translation-table.c
-index d44672f..98a66a0 100644
---- a/translation-table.c
-+++ b/translation-table.c
-@@ -56,7 +56,6 @@ static struct batadv_tt_common_entry *
- batadv_tt_hash_find(struct batadv_hashtable *hash, const void *data)
- {
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tt_common_entry *tt_common_entry_tmp = NULL;
-       uint32_t index;
-@@ -68,7 +67,7 @@ batadv_tt_hash_find(struct batadv_hashtable *hash, const void *data)
-       head = &hash->table[index];
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(tt_common_entry, node, head, hash_entry) {
-+      hlist_for_each_entry_rcu(tt_common_entry, head, hash_entry) {
-               if (!batadv_compare_eth(tt_common_entry, data))
-                       continue;
-@@ -257,7 +256,6 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
-       struct batadv_tt_local_entry *tt_local;
-       struct batadv_tt_global_entry *tt_global;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_tt_orig_list_entry *orig_entry;
-       int hash_added;
-       bool roamed_back = false;
-@@ -339,7 +337,7 @@ check_roaming:
-               /* These node are probably going to update their tt table */
-               head = &tt_global->orig_list;
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_entry, node, head, list) {
-+              hlist_for_each_entry_rcu(orig_entry, head, list) {
-                       batadv_send_roam_adv(bat_priv, tt_global->common.addr,
-                                            orig_entry->orig_node);
-               }
-@@ -470,7 +468,6 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tt_local_entry *tt_local;
-       struct batadv_hard_iface *primary_if;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       uint32_t i;
-       int last_seen_secs;
-@@ -494,7 +491,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(tt_common_entry, node,
-+              hlist_for_each_entry_rcu(tt_common_entry,
-                                        head, hash_entry) {
-                       tt_local = container_of(tt_common_entry,
-                                               struct batadv_tt_local_entry,
-@@ -605,9 +602,9 @@ static void batadv_tt_local_purge_list(struct batadv_priv *bat_priv,
- {
-       struct batadv_tt_local_entry *tt_local_entry;
-       struct batadv_tt_common_entry *tt_common_entry;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
--      hlist_for_each_entry_safe(tt_common_entry, node, node_tmp, head,
-+      hlist_for_each_entry_safe(tt_common_entry, node_tmp, head,
-                                 hash_entry) {
-               tt_local_entry = container_of(tt_common_entry,
-                                             struct batadv_tt_local_entry,
-@@ -651,7 +648,7 @@ static void batadv_tt_local_table_free(struct batadv_priv *bat_priv)
-       spinlock_t *list_lock; /* protects write access to the hash lists */
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tt_local_entry *tt_local;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       uint32_t i;
-@@ -665,9 +662,9 @@ static void batadv_tt_local_table_free(struct batadv_priv *bat_priv)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(tt_common_entry, node, node_tmp,
-+              hlist_for_each_entry_safe(tt_common_entry, node_tmp,
-                                         head, hash_entry) {
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&tt_common_entry->hash_entry);
-                       tt_local = container_of(tt_common_entry,
-                                               struct batadv_tt_local_entry,
-                                               common);
-@@ -724,11 +721,10 @@ batadv_tt_global_orig_entry_find(const struct batadv_tt_global_entry *entry,
- {
-       struct batadv_tt_orig_list_entry *tmp_orig_entry, *orig_entry = NULL;
-       const struct hlist_head *head;
--      struct hlist_node *node;
-       rcu_read_lock();
-       head = &entry->orig_list;
--      hlist_for_each_entry_rcu(tmp_orig_entry, node, head, list) {
-+      hlist_for_each_entry_rcu(tmp_orig_entry, head, list) {
-               if (tmp_orig_entry->orig_node != orig_node)
-                       continue;
-               if (!atomic_inc_not_zero(&tmp_orig_entry->refcount))
-@@ -940,12 +936,11 @@ batadv_transtable_best_orig(struct batadv_tt_global_entry *tt_global_entry)
- {
-       struct batadv_neigh_node *router = NULL;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_tt_orig_list_entry *orig_entry, *best_entry = NULL;
-       int best_tq = 0;
-       head = &tt_global_entry->orig_list;
--      hlist_for_each_entry_rcu(orig_entry, node, head, list) {
-+      hlist_for_each_entry_rcu(orig_entry, head, list) {
-               router = batadv_orig_node_get_router(orig_entry->orig_node);
-               if (!router)
-                       continue;
-@@ -973,7 +968,6 @@ batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
-                            struct seq_file *seq)
- {
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_tt_orig_list_entry *orig_entry, *best_entry;
-       struct batadv_tt_common_entry *tt_common_entry;
-       uint16_t flags;
-@@ -997,7 +991,7 @@ batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
-       head = &tt_global_entry->orig_list;
--      hlist_for_each_entry_rcu(orig_entry, node, head, list) {
-+      hlist_for_each_entry_rcu(orig_entry, head, list) {
-               if (best_entry == orig_entry)
-                       continue;
-@@ -1020,7 +1014,6 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tt_global_entry *tt_global;
-       struct batadv_hard_iface *primary_if;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       uint32_t i;
-@@ -1039,7 +1032,7 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(tt_common_entry, node,
-+              hlist_for_each_entry_rcu(tt_common_entry,
-                                        head, hash_entry) {
-                       tt_global = container_of(tt_common_entry,
-                                                struct batadv_tt_global_entry,
-@@ -1059,13 +1052,13 @@ static void
- batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry)
- {
-       struct hlist_head *head;
--      struct hlist_node *node, *safe;
-+      struct hlist_node *safe;
-       struct batadv_tt_orig_list_entry *orig_entry;
-       spin_lock_bh(&tt_global_entry->list_lock);
-       head = &tt_global_entry->orig_list;
--      hlist_for_each_entry_safe(orig_entry, node, safe, head, list) {
--              hlist_del_rcu(node);
-+      hlist_for_each_entry_safe(orig_entry, safe, head, list) {
-+              hlist_del_rcu(&orig_entry->list);
-               batadv_tt_orig_list_entry_free_ref(orig_entry);
-       }
-       spin_unlock_bh(&tt_global_entry->list_lock);
-@@ -1078,18 +1071,18 @@ batadv_tt_global_del_orig_entry(struct batadv_priv *bat_priv,
-                               const char *message)
- {
-       struct hlist_head *head;
--      struct hlist_node *node, *safe;
-+      struct hlist_node *safe;
-       struct batadv_tt_orig_list_entry *orig_entry;
-       spin_lock_bh(&tt_global_entry->list_lock);
-       head = &tt_global_entry->orig_list;
--      hlist_for_each_entry_safe(orig_entry, node, safe, head, list) {
-+      hlist_for_each_entry_safe(orig_entry, safe, head, list) {
-               if (orig_entry->orig_node == orig_node) {
-                       batadv_dbg(BATADV_DBG_TT, bat_priv,
-                                  "Deleting %pM from global tt entry %pM: %s\n",
-                                  orig_node->orig,
-                                  tt_global_entry->common.addr, message);
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&orig_entry->list);
-                       batadv_tt_orig_list_entry_free_ref(orig_entry);
-               }
-       }
-@@ -1108,7 +1101,6 @@ batadv_tt_global_del_roaming(struct batadv_priv *bat_priv,
- {
-       bool last_entry = true;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_tt_orig_list_entry *orig_entry;
-       /* no local entry exists, case 1:
-@@ -1117,7 +1109,7 @@ batadv_tt_global_del_roaming(struct batadv_priv *bat_priv,
-       rcu_read_lock();
-       head = &tt_global_entry->orig_list;
--      hlist_for_each_entry_rcu(orig_entry, node, head, list) {
-+      hlist_for_each_entry_rcu(orig_entry, head, list) {
-               if (orig_entry->orig_node != orig_node) {
-                       last_entry = false;
-                       break;
-@@ -1202,7 +1194,7 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
-       struct batadv_tt_common_entry *tt_common_entry;
-       uint32_t i;
-       struct batadv_hashtable *hash = bat_priv->tt.global_hash;
--      struct hlist_node *node, *safe;
-+      struct hlist_node *safe;
-       struct hlist_head *head;
-       spinlock_t *list_lock; /* protects write access to the hash lists */
-@@ -1214,7 +1206,7 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(tt_common_entry, node, safe,
-+              hlist_for_each_entry_safe(tt_common_entry, safe,
-                                         head, hash_entry) {
-                       tt_global = container_of(tt_common_entry,
-                                                struct batadv_tt_global_entry,
-@@ -1227,7 +1219,7 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
-                               batadv_dbg(BATADV_DBG_TT, bat_priv,
-                                          "Deleting global tt entry %pM: %s\n",
-                                          tt_global->common.addr, message);
--                              hlist_del_rcu(node);
-+                              hlist_del_rcu(&tt_common_entry->hash_entry);
-                               batadv_tt_global_entry_free_ref(tt_global);
-                       }
-               }
-@@ -1262,7 +1254,7 @@ static void batadv_tt_global_purge(struct batadv_priv *bat_priv)
- {
-       struct batadv_hashtable *hash = bat_priv->tt.global_hash;
-       struct hlist_head *head;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       spinlock_t *list_lock; /* protects write access to the hash lists */
-       uint32_t i;
-       char *msg = NULL;
-@@ -1274,7 +1266,7 @@ static void batadv_tt_global_purge(struct batadv_priv *bat_priv)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(tt_common, node, node_tmp, head,
-+              hlist_for_each_entry_safe(tt_common, node_tmp, head,
-                                         hash_entry) {
-                       tt_global = container_of(tt_common,
-                                                struct batadv_tt_global_entry,
-@@ -1287,7 +1279,7 @@ static void batadv_tt_global_purge(struct batadv_priv *bat_priv)
-                                  "Deleting global tt entry (%pM): %s\n",
-                                  tt_global->common.addr, msg);
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&tt_common->hash_entry);
-                       batadv_tt_global_entry_free_ref(tt_global);
-               }
-@@ -1301,7 +1293,7 @@ static void batadv_tt_global_table_free(struct batadv_priv *bat_priv)
-       spinlock_t *list_lock; /* protects write access to the hash lists */
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tt_global_entry *tt_global;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       uint32_t i;
-@@ -1315,9 +1307,9 @@ static void batadv_tt_global_table_free(struct batadv_priv *bat_priv)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(tt_common_entry, node, node_tmp,
-+              hlist_for_each_entry_safe(tt_common_entry, node_tmp,
-                                         head, hash_entry) {
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&tt_common_entry->hash_entry);
-                       tt_global = container_of(tt_common_entry,
-                                                struct batadv_tt_global_entry,
-                                                common);
-@@ -1397,7 +1389,6 @@ static uint16_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
-       struct batadv_hashtable *hash = bat_priv->tt.global_hash;
-       struct batadv_tt_common_entry *tt_common;
-       struct batadv_tt_global_entry *tt_global;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       uint32_t i;
-       int j;
-@@ -1406,7 +1397,7 @@ static uint16_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(tt_common, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(tt_common, head, hash_entry) {
-                       tt_global = container_of(tt_common,
-                                                struct batadv_tt_global_entry,
-                                                common);
-@@ -1449,7 +1440,6 @@ static uint16_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
-       uint16_t total = 0, total_one;
-       struct batadv_hashtable *hash = bat_priv->tt.local_hash;
-       struct batadv_tt_common_entry *tt_common;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       uint32_t i;
-       int j;
-@@ -1458,7 +1448,7 @@ static uint16_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(tt_common, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(tt_common, head, hash_entry) {
-                       /* not yet committed clients have not to be taken into
-                        * account while computing the CRC
-                        */
-@@ -1597,7 +1587,6 @@ batadv_tt_response_fill_table(uint16_t tt_len, uint8_t ttvn,
-       struct batadv_tt_common_entry *tt_common_entry;
-       struct batadv_tt_query_packet *tt_response;
-       struct batadv_tt_change *tt_change;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct sk_buff *skb = NULL;
-       uint16_t tt_tot, tt_count;
-@@ -1627,7 +1616,7 @@ batadv_tt_response_fill_table(uint16_t tt_len, uint8_t ttvn,
-       for (i = 0; i < hash->size; i++) {
-               head = &hash->table[i];
--              hlist_for_each_entry_rcu(tt_common_entry, node,
-+              hlist_for_each_entry_rcu(tt_common_entry,
-                                        head, hash_entry) {
-                       if (tt_count == tt_tot)
-                               break;
-@@ -2307,7 +2296,6 @@ static uint16_t batadv_tt_set_flags(struct batadv_hashtable *hash,
-       uint32_t i;
-       uint16_t changed_num = 0;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_tt_common_entry *tt_common_entry;
-       if (!hash)
-@@ -2317,7 +2305,7 @@ static uint16_t batadv_tt_set_flags(struct batadv_hashtable *hash,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(tt_common_entry, node,
-+              hlist_for_each_entry_rcu(tt_common_entry,
-                                        head, hash_entry) {
-                       if (enable) {
-                               if ((tt_common_entry->flags & flags) == flags)
-@@ -2342,7 +2330,7 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
-       struct batadv_hashtable *hash = bat_priv->tt.local_hash;
-       struct batadv_tt_common_entry *tt_common;
-       struct batadv_tt_local_entry *tt_local;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       spinlock_t *list_lock; /* protects write access to the hash lists */
-       uint32_t i;
-@@ -2355,7 +2343,7 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
-               list_lock = &hash->list_locks[i];
-               spin_lock_bh(list_lock);
--              hlist_for_each_entry_safe(tt_common, node, node_tmp, head,
-+              hlist_for_each_entry_safe(tt_common, node_tmp, head,
-                                         hash_entry) {
-                       if (!(tt_common->flags & BATADV_TT_CLIENT_PENDING))
-                               continue;
-@@ -2365,7 +2353,7 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
-                                  tt_common->addr);
-                       atomic_dec(&bat_priv->tt.local_entry_num);
--                      hlist_del_rcu(node);
-+                      hlist_del_rcu(&tt_common->hash_entry);
-                       tt_local = container_of(tt_common,
-                                               struct batadv_tt_local_entry,
-                                               common);
-diff --git a/vis.c b/vis.c
-index 22d2785..c053244 100644
---- a/vis.c
-+++ b/vis.c
-@@ -97,7 +97,6 @@ batadv_vis_hash_find(struct batadv_priv *bat_priv, const void *data)
- {
-       struct batadv_hashtable *hash = bat_priv->vis.hash;
-       struct hlist_head *head;
--      struct hlist_node *node;
-       struct batadv_vis_info *vis_info, *vis_info_tmp = NULL;
-       uint32_t index;
-@@ -108,8 +107,8 @@ batadv_vis_hash_find(struct batadv_priv *bat_priv, const void *data)
-       head = &hash->table[index];
-       rcu_read_lock();
--      hlist_for_each_entry_rcu(vis_info, node, head, hash_entry) {
--              if (!batadv_vis_info_cmp(node, data))
-+      hlist_for_each_entry_rcu(vis_info, head, hash_entry) {
-+              if (!batadv_vis_info_cmp(&vis_info->hash_entry, data))
-                       continue;
-               vis_info_tmp = vis_info;
-@@ -128,9 +127,8 @@ static void batadv_vis_data_insert_interface(const uint8_t *interface,
-                                            bool primary)
- {
-       struct batadv_vis_if_list_entry *entry;
--      struct hlist_node *pos;
--      hlist_for_each_entry(entry, pos, if_list, list) {
-+      hlist_for_each_entry(entry, if_list, list) {
-               if (batadv_compare_eth(entry->addr, interface))
-                       return;
-       }
-@@ -148,9 +146,8 @@ static void batadv_vis_data_read_prim_sec(struct seq_file *seq,
-                                         const struct hlist_head *if_list)
- {
-       struct batadv_vis_if_list_entry *entry;
--      struct hlist_node *pos;
--      hlist_for_each_entry(entry, pos, if_list, list) {
-+      hlist_for_each_entry(entry, if_list, list) {
-               if (entry->primary)
-                       seq_printf(seq, "PRIMARY, ");
-               else
-@@ -198,9 +195,8 @@ static void batadv_vis_data_read_entries(struct seq_file *seq,
- {
-       int i;
-       struct batadv_vis_if_list_entry *entry;
--      struct hlist_node *pos;
--      hlist_for_each_entry(entry, pos, list, list) {
-+      hlist_for_each_entry(entry, list, list) {
-               seq_printf(seq, "%pM,", entry->addr);
-               for (i = 0; i < packet->entries; i++)
-@@ -218,17 +214,16 @@ static void batadv_vis_data_read_entries(struct seq_file *seq,
- static void batadv_vis_seq_print_text_bucket(struct seq_file *seq,
-                                            const struct hlist_head *head)
- {
--      struct hlist_node *node;
-       struct batadv_vis_info *info;
-       struct batadv_vis_packet *packet;
-       uint8_t *entries_pos;
-       struct batadv_vis_info_entry *entries;
-       struct batadv_vis_if_list_entry *entry;
--      struct hlist_node *pos, *n;
-+      struct hlist_node *n;
-       HLIST_HEAD(vis_if_list);
--      hlist_for_each_entry_rcu(info, node, head, hash_entry) {
-+      hlist_for_each_entry_rcu(info, head, hash_entry) {
-               packet = (struct batadv_vis_packet *)info->skb_packet->data;
-               entries_pos = (uint8_t *)packet + sizeof(*packet);
-               entries = (struct batadv_vis_info_entry *)entries_pos;
-@@ -240,7 +235,7 @@ static void batadv_vis_seq_print_text_bucket(struct seq_file *seq,
-               batadv_vis_data_read_entries(seq, &vis_if_list, packet,
-                                            entries);
--              hlist_for_each_entry_safe(entry, pos, n, &vis_if_list, list) {
-+              hlist_for_each_entry_safe(entry, n, &vis_if_list, list) {
-                       hlist_del(&entry->list);
-                       kfree(entry);
-               }
-@@ -519,7 +514,6 @@ static int batadv_find_best_vis_server(struct batadv_priv *bat_priv,
- {
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
-       struct batadv_neigh_node *router;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_orig_node *orig_node;
-       struct batadv_vis_packet *packet;
-@@ -532,7 +526,7 @@ static int batadv_find_best_vis_server(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       router = batadv_orig_node_get_router(orig_node);
-                       if (!router)
-                               continue;
-@@ -571,7 +565,6 @@ static bool batadv_vis_packet_full(const struct batadv_vis_info *info)
- static int batadv_generate_vis_packet(struct batadv_priv *bat_priv)
- {
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_orig_node *orig_node;
-       struct batadv_neigh_node *router;
-@@ -605,7 +598,7 @@ static int batadv_generate_vis_packet(struct batadv_priv *bat_priv)
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       router = batadv_orig_node_get_router(orig_node);
-                       if (!router)
-                               continue;
-@@ -644,7 +637,7 @@ next:
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(tt_common_entry, node, head,
-+              hlist_for_each_entry_rcu(tt_common_entry, head,
-                                        hash_entry) {
-                       packet_pos = skb_put(info->skb_packet, sizeof(*entry));
-                       entry = (struct batadv_vis_info_entry *)packet_pos;
-@@ -673,14 +666,14 @@ static void batadv_purge_vis_packets(struct batadv_priv *bat_priv)
- {
-       uint32_t i;
-       struct batadv_hashtable *hash = bat_priv->vis.hash;
--      struct hlist_node *node, *node_tmp;
-+      struct hlist_node *node_tmp;
-       struct hlist_head *head;
-       struct batadv_vis_info *info;
-       for (i = 0; i < hash->size; i++) {
-               head = &hash->table[i];
--              hlist_for_each_entry_safe(info, node, node_tmp,
-+              hlist_for_each_entry_safe(info, node_tmp,
-                                         head, hash_entry) {
-                       /* never purge own data. */
-                       if (info == bat_priv->vis.my_info)
-@@ -688,7 +681,7 @@ static void batadv_purge_vis_packets(struct batadv_priv *bat_priv)
-                       if (batadv_has_timed_out(info->first_seen,
-                                                BATADV_VIS_TIMEOUT)) {
--                              hlist_del(node);
-+                              hlist_del(&info->hash_entry);
-                               batadv_send_list_del(info);
-                               kref_put(&info->refcount, batadv_free_info);
-                       }
-@@ -700,7 +693,6 @@ static void batadv_broadcast_vis_packet(struct batadv_priv *bat_priv,
-                                       struct batadv_vis_info *info)
- {
-       struct batadv_hashtable *hash = bat_priv->orig_hash;
--      struct hlist_node *node;
-       struct hlist_head *head;
-       struct batadv_orig_node *orig_node;
-       struct batadv_vis_packet *packet;
-@@ -715,7 +707,7 @@ static void batadv_broadcast_vis_packet(struct batadv_priv *bat_priv,
-               head = &hash->table[i];
-               rcu_read_lock();
--              hlist_for_each_entry_rcu(orig_node, node, head, hash_entry) {
-+              hlist_for_each_entry_rcu(orig_node, head, hash_entry) {
-                       /* if it's a vis server and reachable, send it. */
-                       if (!(orig_node->flags & BATADV_VIS_SERVER))
-                               continue;
--- 
-1.7.10.4
-
diff --git a/net/batman-adv/patches/0003-batman-adv-make-is_my_mac-check-for-the-current-mesh.patch b/net/batman-adv/patches/0003-batman-adv-make-is_my_mac-check-for-the-current-mesh.patch
deleted file mode 100644 (file)
index a8dc69a..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-From 647d23f3e358d9fa4b1a8f0bb67a3e6bff30d4a1 Mon Sep 17 00:00:00 2001
-From: Antonio Quartulli <ordex@autistici.org>
-Date: Wed, 3 Apr 2013 19:10:26 +0200
-Subject: [PATCH 3/3] batman-adv: make is_my_mac() check for the current mesh
- only
-
-On a multi-mesh node (a node running more than one batman-adv
-virtual interface) batadv_is_my_mac() has to check MAC
-addresses of hard interfaces belonging to the current mesh
-only.
-
-Signed-off-by: Antonio Quartulli <ordex@autistici.org>
-Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
----
- main.c              |    5 ++++-
- main.h              |    2 +-
- routing.c           |   38 ++++++++++++++++++++------------------
- translation-table.c |    2 +-
- vis.c               |    4 ++--
- 5 files changed, 28 insertions(+), 23 deletions(-)
-
-diff --git a/main.c b/main.c
-index 0488d70..fa563e4 100644
---- a/main.c
-+++ b/main.c
-@@ -169,7 +169,7 @@ void batadv_mesh_free(struct net_device *soft_iface)
-       atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
- }
--int batadv_is_my_mac(const uint8_t *addr)
-+int batadv_is_my_mac(struct batadv_priv *bat_priv, const uint8_t *addr)
- {
-       const struct batadv_hard_iface *hard_iface;
-@@ -178,6 +178,9 @@ int batadv_is_my_mac(const uint8_t *addr)
-               if (hard_iface->if_status != BATADV_IF_ACTIVE)
-                       continue;
-+              if (hard_iface->soft_iface != bat_priv->soft_iface)
-+                      continue;
-+
-               if (batadv_compare_eth(hard_iface->net_dev->dev_addr, addr)) {
-                       rcu_read_unlock();
-                       return 1;
-diff --git a/main.h b/main.h
-index 08c5dd1..fcb5d65 100644
---- a/main.h
-+++ b/main.h
-@@ -164,7 +164,7 @@ extern struct workqueue_struct *batadv_event_workqueue;
- int batadv_mesh_init(struct net_device *soft_iface);
- void batadv_mesh_free(struct net_device *soft_iface);
--int batadv_is_my_mac(const uint8_t *addr);
-+int batadv_is_my_mac(struct batadv_priv *bat_priv, const uint8_t *addr);
- struct batadv_hard_iface *
- batadv_seq_print_text_primary_if_get(struct seq_file *seq);
- int batadv_batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
-diff --git a/routing.c b/routing.c
-index 5ee21ce..319f290 100644
---- a/routing.c
-+++ b/routing.c
-@@ -402,7 +402,7 @@ int batadv_recv_icmp_packet(struct sk_buff *skb,
-               goto out;
-       /* not for me */
--      if (!batadv_is_my_mac(ethhdr->h_dest))
-+      if (!batadv_is_my_mac(bat_priv, ethhdr->h_dest))
-               goto out;
-       icmp_packet = (struct batadv_icmp_packet_rr *)skb->data;
-@@ -416,7 +416,7 @@ int batadv_recv_icmp_packet(struct sk_buff *skb,
-       }
-       /* packet for me */
--      if (batadv_is_my_mac(icmp_packet->dst))
-+      if (batadv_is_my_mac(bat_priv, icmp_packet->dst))
-               return batadv_recv_my_icmp_packet(bat_priv, skb, hdr_size);
-       /* TTL exceeded */
-@@ -548,7 +548,8 @@ batadv_find_ifalter_router(struct batadv_orig_node *primary_orig,
-       return router;
- }
--static int batadv_check_unicast_packet(struct sk_buff *skb, int hdr_size)
-+static int batadv_check_unicast_packet(struct batadv_priv *bat_priv,
-+                                     struct sk_buff *skb, int hdr_size)
- {
-       struct ethhdr *ethhdr;
-@@ -567,7 +568,7 @@ static int batadv_check_unicast_packet(struct sk_buff *skb, int hdr_size)
-               return -1;
-       /* not for me */
--      if (!batadv_is_my_mac(ethhdr->h_dest))
-+      if (!batadv_is_my_mac(bat_priv, ethhdr->h_dest))
-               return -1;
-       return 0;
-@@ -582,7 +583,7 @@ int batadv_recv_tt_query(struct sk_buff *skb, struct batadv_hard_iface *recv_if)
-       char tt_flag;
-       size_t packet_size;
--      if (batadv_check_unicast_packet(skb, hdr_size) < 0)
-+      if (batadv_check_unicast_packet(bat_priv, skb, hdr_size) < 0)
-               return NET_RX_DROP;
-       /* I could need to modify it */
-@@ -614,7 +615,7 @@ int batadv_recv_tt_query(struct sk_buff *skb, struct batadv_hard_iface *recv_if)
-       case BATADV_TT_RESPONSE:
-               batadv_inc_counter(bat_priv, BATADV_CNT_TT_RESPONSE_RX);
--              if (batadv_is_my_mac(tt_query->dst)) {
-+              if (batadv_is_my_mac(bat_priv, tt_query->dst)) {
-                       /* packet needs to be linearized to access the TT
-                        * changes
-                        */
-@@ -657,14 +658,15 @@ int batadv_recv_roam_adv(struct sk_buff *skb, struct batadv_hard_iface *recv_if)
-       struct batadv_roam_adv_packet *roam_adv_packet;
-       struct batadv_orig_node *orig_node;
--      if (batadv_check_unicast_packet(skb, sizeof(*roam_adv_packet)) < 0)
-+      if (batadv_check_unicast_packet(bat_priv, skb,
-+                                      sizeof(*roam_adv_packet)) < 0)
-               goto out;
-       batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_RX);
-       roam_adv_packet = (struct batadv_roam_adv_packet *)skb->data;
--      if (!batadv_is_my_mac(roam_adv_packet->dst))
-+      if (!batadv_is_my_mac(bat_priv, roam_adv_packet->dst))
-               return batadv_route_unicast_packet(skb, recv_if);
-       /* check if it is a backbone gateway. we don't accept
-@@ -967,7 +969,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
-        * last time) the packet had an updated information or not
-        */
-       curr_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
--      if (!batadv_is_my_mac(unicast_packet->dest)) {
-+      if (!batadv_is_my_mac(bat_priv, unicast_packet->dest)) {
-               orig_node = batadv_orig_hash_find(bat_priv,
-                                                 unicast_packet->dest);
-               /* if it is not possible to find the orig_node representing the
-@@ -1044,14 +1046,14 @@ int batadv_recv_unicast_packet(struct sk_buff *skb,
-       if (is4addr)
-               hdr_size = sizeof(*unicast_4addr_packet);
--      if (batadv_check_unicast_packet(skb, hdr_size) < 0)
-+      if (batadv_check_unicast_packet(bat_priv, skb, hdr_size) < 0)
-               return NET_RX_DROP;
-       if (!batadv_check_unicast_ttvn(bat_priv, skb))
-               return NET_RX_DROP;
-       /* packet for me */
--      if (batadv_is_my_mac(unicast_packet->dest)) {
-+      if (batadv_is_my_mac(bat_priv, unicast_packet->dest)) {
-               if (is4addr) {
-                       batadv_dat_inc_counter(bat_priv,
-                                              unicast_4addr_packet->subtype);
-@@ -1088,7 +1090,7 @@ int batadv_recv_ucast_frag_packet(struct sk_buff *skb,
-       struct sk_buff *new_skb = NULL;
-       int ret;
--      if (batadv_check_unicast_packet(skb, hdr_size) < 0)
-+      if (batadv_check_unicast_packet(bat_priv, skb, hdr_size) < 0)
-               return NET_RX_DROP;
-       if (!batadv_check_unicast_ttvn(bat_priv, skb))
-@@ -1097,7 +1099,7 @@ int batadv_recv_ucast_frag_packet(struct sk_buff *skb,
-       unicast_packet = (struct batadv_unicast_frag_packet *)skb->data;
-       /* packet for me */
--      if (batadv_is_my_mac(unicast_packet->dest)) {
-+      if (batadv_is_my_mac(bat_priv, unicast_packet->dest)) {
-               ret = batadv_frag_reassemble_skb(skb, bat_priv, &new_skb);
-               if (ret == NET_RX_DROP)
-@@ -1151,13 +1153,13 @@ int batadv_recv_bcast_packet(struct sk_buff *skb,
-               goto out;
-       /* ignore broadcasts sent by myself */
--      if (batadv_is_my_mac(ethhdr->h_source))
-+      if (batadv_is_my_mac(bat_priv, ethhdr->h_source))
-               goto out;
-       bcast_packet = (struct batadv_bcast_packet *)skb->data;
-       /* ignore broadcasts originated by myself */
--      if (batadv_is_my_mac(bcast_packet->orig))
-+      if (batadv_is_my_mac(bat_priv, bcast_packet->orig))
-               goto out;
-       if (bcast_packet->header.ttl < 2)
-@@ -1243,14 +1245,14 @@ int batadv_recv_vis_packet(struct sk_buff *skb,
-       ethhdr = (struct ethhdr *)skb_mac_header(skb);
-       /* not for me */
--      if (!batadv_is_my_mac(ethhdr->h_dest))
-+      if (!batadv_is_my_mac(bat_priv, ethhdr->h_dest))
-               return NET_RX_DROP;
-       /* ignore own packets */
--      if (batadv_is_my_mac(vis_packet->vis_orig))
-+      if (batadv_is_my_mac(bat_priv, vis_packet->vis_orig))
-               return NET_RX_DROP;
--      if (batadv_is_my_mac(vis_packet->sender_orig))
-+      if (batadv_is_my_mac(bat_priv, vis_packet->sender_orig))
-               return NET_RX_DROP;
-       switch (vis_packet->vis_type) {
-diff --git a/translation-table.c b/translation-table.c
-index 98a66a0..7abee19 100644
---- a/translation-table.c
-+++ b/translation-table.c
-@@ -1953,7 +1953,7 @@ out:
- bool batadv_send_tt_response(struct batadv_priv *bat_priv,
-                            struct batadv_tt_query_packet *tt_request)
- {
--      if (batadv_is_my_mac(tt_request->dst)) {
-+      if (batadv_is_my_mac(bat_priv, tt_request->dst)) {
-               /* don't answer backbone gws! */
-               if (batadv_bla_is_backbone_gw_orig(bat_priv, tt_request->src))
-                       return true;
-diff --git a/vis.c b/vis.c
-index c053244..6a1e646 100644
---- a/vis.c
-+++ b/vis.c
-@@ -477,7 +477,7 @@ void batadv_receive_client_update_packet(struct batadv_priv *bat_priv,
-       /* Are we the target for this VIS packet? */
-       if (vis_server == BATADV_VIS_TYPE_SERVER_SYNC   &&
--          batadv_is_my_mac(vis_packet->target_orig))
-+          batadv_is_my_mac(bat_priv, vis_packet->target_orig))
-               are_target = 1;
-       spin_lock_bh(&bat_priv->vis.hash_lock);
-@@ -496,7 +496,7 @@ void batadv_receive_client_update_packet(struct batadv_priv *bat_priv,
-               batadv_send_list_add(bat_priv, info);
-               /* ... we're not the recipient (and thus need to forward). */
--      } else if (!batadv_is_my_mac(packet->target_orig)) {
-+      } else if (!batadv_is_my_mac(bat_priv, packet->target_orig)) {
-               batadv_send_list_add(bat_priv, info);
-       }
--- 
-1.7.10.4
-
diff --git a/net/batman/Makefile b/net/batman/Makefile
deleted file mode 100644 (file)
index 4026496..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-#
-# Copyright (C) 2008-2011 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_NAME:=batmand
-PKG_REV:=1439
-PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=2
-PKG_EXTRA_CFLAGS=-DDEBUG_MALLOC -DMEMORY_USAGE -DPROFILE_DATA -DREVISION_VERSION=\"\ rv$(PKG_REV)\"
-
-PKG_SOURCE_PROTO:=svn
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_SUBDIR:=$(if $(PKG_BRANCH),$(PKG_BRANCH),$(PKG_NAME))-$(PKG_VERSION)
-PKG_SOURCE_URL:=http://downloads.open-mesh.org/svn/batman/trunk/
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
-
-PKG_KMOD_BUILD_DIR:=$(PKG_BUILD_DIR)/batman/linux/modules
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/batmand/Default
-  URL:=http://www.open-mesh.org/
-  MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
-endef
-
-define Package/batmand
-$(call Package/batmand/Default)
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Routing and Redirection
-  DEPENDS:=+libpthread +kmod-tun
-  TITLE:=B.A.T.M.A.N. layer 3 routing daemon
-endef
-
-define Package/batmand/description
-B.A.T.M.A.N. layer 3 routing daemon
-endef
-
-define Package/vis
-$(call Package/batmand/Default)
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Routing and Redirection
-  DEPENDS:=+libpthread
-  TITLE:=visualization server for B.A.T.M.A.N. layer 3
-endef
-        
-define Package/vis/description
-visualization server for B.A.T.M.A.N. layer 3
-endef
-
-define KernelPackage/batgat
-$(call Package/batmand/Default)
-  SUBMENU:=Network Support
-  DEPENDS:=+batmand @BROKEN
-  TITLE:=B.A.T.M.A.N. gateway module
-  FILES:=$(PKG_KMOD_BUILD_DIR)/batgat.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,50,batgat)
-endef
-
-
-define KernelPackage/batgat/description
-Kernel gateway module for B.A.T.M.A.N. for better tunnel performance
-endef
-
-MAKE_BATMAND_ARGS += \
-       EXTRA_CFLAGS='$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)' \
-       CCFLAGS="$(TARGET_CFLAGS)" \
-       OFLAGS="$(TARGET_CFLAGS)" \
-       REVISION="$(PKG_REV)" \
-       CC="$(TARGET_CC)" \
-       NODEBUG=1 \
-       UNAME="Linux" \
-       INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
-       STRIP="/bin/true" \
-       batmand install
-       
-MAKE_VIS_ARGS += \
-       EXTRA_CFLAGS='$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)' \
-       CCFLAGS="$(TARGET_CFLAGS)" \
-       OFLAGS="$(TARGET_CFLAGS)" \
-       REVISION="$(PKG_REV)" \
-       CC="$(TARGET_CC)" \
-       NODEBUG=1 \
-       UNAME="Linux" \
-       INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
-       STRIP="/bin/true" \
-       vis install
-
-MAKE_BATGAT_ARGS += \
-       CROSS_COMPILE="$(TARGET_CROSS)" \
-       ARCH="$(LINUX_KARCH)" \
-       PATH="$(TARGET_PATH)" \
-       SUBDIRS="$(PKG_KMOD_BUILD_DIR)" \
-       LINUX_VERSION="$(LINUX_VERSION)" \
-       REVISION="$(PKG_REV)" modules   
-
-
-define Build/Configure
-endef
-
-ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_batmand),)
-       BUILD_BATMAND := $(MAKE) -C $(PKG_BUILD_DIR)/batman $(MAKE_BATMAND_ARGS)
-endif
-
-ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_vis),)
-       BUILD_VIS := $(MAKE) -C $(PKG_BUILD_DIR)/vis $(MAKE_VIS_ARGS)
-endif
-       
-ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_kmod-batgat),)
-       BUILD_BATGAT := $(MAKE) -C "$(LINUX_DIR)" $(MAKE_BATGAT_ARGS)
-endif
-               
-define Build/Compile
-       $(BUILD_BATMAND)
-       $(BUILD_VIS)
-       cp $(PKG_KMOD_BUILD_DIR)/Makefile.kbuild $(PKG_KMOD_BUILD_DIR)/Makefile
-       $(BUILD_BATGAT)
-endef
-
-define Package/batmand/install
-       $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/batmand $(1)/usr/sbin/
-       $(INSTALL_BIN) ./files/etc/init.d/batmand $(1)/etc/init.d
-       $(INSTALL_DATA) ./files/etc/config/batmand $(1)/etc/config
-endef
-
-define Package/batmand/conffiles
-/etc/config/batmand
-endef
-
-define Package/vis/install
-       $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/vis $(1)/usr/sbin/
-       $(INSTALL_BIN) ./files/etc/init.d/vis $(1)/etc/init.d
-       $(INSTALL_DATA) ./files/etc/config/vis $(1)/etc/config
-endef
-
-define Package/vis/conffiles
-/etc/config/vis
-endef
-
-$(eval $(call BuildPackage,batmand))
-$(eval $(call BuildPackage,vis))
-$(eval $(call KernelPackage,batgat))
diff --git a/net/batman/files/etc/config/batmand b/net/batman/files/etc/config/batmand
deleted file mode 100644 (file)
index 6d1f3be..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-config batmand general
-       option interface                ath0
-       option hna                      
-       option gateway_class            
-       option originator_interval
-       option preferred_gateway        
-       option routing_class
-       option visualisation_srv
-       option policy_routing_script
-       option disable_client_nat
-       option disable_aggregation
-       
diff --git a/net/batman/files/etc/config/vis b/net/batman/files/etc/config/vis
deleted file mode 100644 (file)
index 6d30023..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-config vis general
-       option interface                ath0
-       
diff --git a/net/batman/files/etc/init.d/batmand b/net/batman/files/etc/init.d/batmand
deleted file mode 100644 (file)
index 403e9f3..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/sh /etc/rc.common
-START=90
-
-start () {
-       interface=$(uci get batmand.general.interface)
-       if [ "$interface" = "" ]; then
-               echo $1 Error, you must specify at least a network interface
-               exit
-       fi
-       hnas=$(uci get batmand.general.hna)
-       gateway_class=$(uci get batmand.general.gateway_class)
-       originator_interval=$(uci get batmand.general.originator_interval)
-       preferred_gateway=$(uci get batmand.general.preferred_gateway)
-       routing_class=$(uci get batmand.general.routing_class)
-       visualisation_srv=$(uci get batmand.general.visualisation_srv)
-       policy_routing_script=$(uci get batmand.general.policy_routing_script)
-       disable_client_nat=$(uci get batmand.general.disable_client_nat)
-       disable_aggregation=$(uci get batmand.general.disable_aggregation)
-       batman_args=""
-
-       for hna in $hnas
-          do
-             batman_args=${batman_args}'-a '$hna' '
-          done
-
-       if [ $gateway_class ]; then
-               batman_args=${batman_args}'-g '$gateway_class' '
-       fi
-
-       if [ $originator_interval ]; then
-               batman_args=${batman_args}'-o '$originator_interval' '
-       fi
-
-       if [ $preferred_gateway ]; then
-               batman_args=${batman_args}'-p '$preferred_gateway' '
-       fi
-
-       if [ $routing_class ]; then
-               batman_args=${batman_args}'-r '$routing_class' '
-       fi
-               
-       if [ $visualisation_srv ]; then
-               batman_args=${batman_args}'-s '$visualisation_srv' '
-       fi
-       
-       if [ $policy_routing_script ]; then
-               batman_args=${batman_args}'--policy-routing-script '$policy_routing_script' '
-       fi
-       
-       if [ $disable_client_nat ]; then
-               batman_args=${batman_args}'--disable-client-nat '
-       fi
-       
-       if [ $disable_aggregation ]; then
-               batman_args=${batman_args}'--disable-aggregation '
-       fi
-
-       batman_args=${batman_args}$interface
-       batmand $batman_args >/dev/null 2>&1
-}
-
-stop () {
-        killall batmand
-}
-
-        
diff --git a/net/batman/files/etc/init.d/vis b/net/batman/files/etc/init.d/vis
deleted file mode 100644 (file)
index ef18eb7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh /etc/rc.common
-START=90
-
-start () {
-       interface=$(uci get vis.general.interface)
-       if [ "$interface" = "" ]; then
-               echo $1 Error, you must specify at least a network interface
-               exit
-       fi
-       vis_args=$interface
-
-       vis $vis_args >/dev/null 2>&1
-}
-
-stop () {
-        killall vis
-}
-
-        
diff --git a/net/batman/patches/100-2.6.36.patch b/net/batman/patches/100-2.6.36.patch
deleted file mode 100644 (file)
index 566c23b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
----
- batman/linux/modules/gateway.c |   19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
---- batmand-r1439.orig/batman/linux/modules/gateway.c
-+++ batmand-r1439/batman/linux/modules/gateway.c
-@@ -29,6 +29,7 @@ static struct class *batman_class;
- static int batgat_open(struct inode *inode, struct file *filp);
- static int batgat_release(struct inode *inode, struct file *file);
- static int batgat_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg );
-+static long batgat_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg );
- static void udp_data_ready(struct sock *sk, int len);
-@@ -53,7 +54,11 @@ static int proc_clients_read(char *buf,
- static struct file_operations fops = {
-       .open = batgat_open,
-       .release = batgat_release,
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+      .unlocked_ioctl = batgat_ioctl_unlocked,
-+#else
-       .ioctl = batgat_ioctl,
-+#endif
- };
-@@ -166,6 +171,20 @@ static int batgat_release(struct inode *
- }
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+#include <linux/smp_lock.h>
-+static long batgat_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg )
-+{
-+      int ret;
-+
-+      lock_kernel();
-+      ret = batgat_ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
-+      unlock_kernel();
-+
-+      return ret;
-+}
-+#endif
-+
- static int batgat_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg )
- {
-       uint8_t tmp_ip[4];
diff --git a/net/bmxd/Makefile b/net/bmxd/Makefile
deleted file mode 100644 (file)
index 5dfd7f9..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# Copyright (C) 2008 Freifunk Leipzig
-# Copyright (C) 2008-2010 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=bmxd
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/axn/bmxd.git
-PKG_REV:=9c1d12b554dccd2efde249f5e44a7d4de59ce1a8
-PKG_VERSION:=r2012011001
-#PKG_RELEASE:=1
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
-
-PKG_EXTRA_CFLAGS:=-DNODEBUGALL
-
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/bmxd/Default
-  URL:=http://www.bmx6.net/
-  MAINTAINER:=Axel Neumann <neumann@cgws.de>
-endef
-
-define Package/bmxd
-$(call Package/bmxd/Default)
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Routing and Redirection
-  DEPENDS:=+kmod-tun
-  TITLE:=B.a.t.M.a.n. eXperimental (BMX) layer 3 routing daemon
-endef
-
-define Package/bmxd/conffiles
-/etc/config/bmxd
-endef
-
-
-define Package/bmxd/description
-B.a.t.M.a.n. eXperimental (BMX) layer 3 routing daemon
-endef
-
-MAKE_ARGS += \
-       EXTRA_CFLAGS="$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)" \
-       CCFLAGS="$(TARGET_CFLAGS)" \
-       OFLAGS="$(TARGET_CFLAGS)" \
-       REVISION="$(PKG_REV)" \
-       CC="$(TARGET_CC)" \
-       NODEBUG=1 \
-       UNAME="Linux" \
-       INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
-       STRIP="/bin/true" \
-       bmxd install
-
-define Build/Compile
-       mkdir -p $(PKG_INSTALL_DIR)/usr/sbin
-       $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
-endef
-
-define Package/bmxd/install
-       $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/bmxd $(1)/usr/sbin/bmxd
-       $(INSTALL_BIN) ./files/etc/init.d/bmxd $(1)/etc/init.d
-       $(INSTALL_DATA) ./files/etc/config/bmxd $(1)/etc/config
-endef
-
-$(eval $(call BuildPackage,bmxd))
diff --git a/net/bmxd/files/etc/config/bmxd b/net/bmxd/files/etc/config/bmxd
deleted file mode 100644 (file)
index c8619e9..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-config bmxd general
-       option interface                'ath0'
-#      option announce                 
-#      option gateway_class            
-#      option originator_interval      
-#      option preferred_gateway        
-#      option routing_class            
-#      option visualisation_srv        
-#      option misc                     'base-port=14305'       
diff --git a/net/bmxd/files/etc/init.d/bmxd b/net/bmxd/files/etc/init.d/bmxd
deleted file mode 100644 (file)
index d23b4c8..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh /etc/rc.common
-START=91
-. /lib/config/uci.sh
-uci_load bmxd
-start () {
-       interface="$(uci get bmxd.general.interface)"
-       if [ "$interface" = "" ]; then
-               echo $1 Error, you must specify at least a network interface
-               exit
-       fi
-       announce=$(uci get bmxd.general.announce)
-       gateway_class=$(uci get bmxd.general.gateway_class)
-       originator_interval=$(uci get bmxd.general.originator_interval)
-       preferred_gateway=$(uci get bmxd.general.preferred_gateway)
-       routing_class=$(uci get bmxd.general.routing_class)
-       visualisation_srv=$(uci get bmxd.general.visualisation_srv)
-       misc="$(uci get bmxd.general.misc)"
-       bmx_args=""
-
-       if [ $announce ]; then
-               bmx_args=${bmx_args}'-a '$announce' '
-       fi
-
-       if [ $gateway_class ]; then
-               bmx_args=${bmx_args}'-g '$gateway_class' '
-       fi
-
-       if [ $originator_interval ]; then
-               bmx_args=${bmx_args}'-o '$originator_interval' '
-       fi
-
-       if [ $preferred_gateway ]; then
-               bmx_args=${bmx_args}'-p '$preferred_gateway' '
-       fi
-
-       if [ $routing_class ]; then
-               bmx_args=${bmx_args}'-r '$routing_class' '
-       fi
-               
-       if [ $visualisation_srv ]; then
-               bmx_args=${bmx_args}'-s '$visualisation_srv' '
-       fi
-       
-
-       bmx_args="$misc ${bmx_args} $interface"
-       bmxd $bmx_args >/dev/null 2>&1
-}
-
-stop () {
-       killall bmxd
-}
diff --git a/net/olsrd/Makefile b/net/olsrd/Makefile
deleted file mode 100644 (file)
index e5be87b..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-# 
-# Copyright (C) 2009-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=olsrd
-PKG_VERSION:=0.6.5.2
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://www.olsr.org/releases/0.6
-
-PKG_MD5SUM:=190e3c763656f71d3ca6868db7658f43
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-TARGET_CFLAGS += $(FPIC)
-
-define Package/olsrd/template
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Routing and Redirection
-  MAINTAINER:=Saverio Proto <zioproto@gmail.com>
-  TITLE:=OLSR (Optimized Link State Routing) daemon
-  URL:=http://www.olsr.org/
-endef
-
-define Package/olsrd
-  $(call Package/olsrd/template)
-  MENU:=1
-  DEPENDS:=+libpthread
-endef
-
-define Package/olsrd/conffiles
-/etc/config/olsrd
-endef
-
-define Package/olsrd-mod-arprefresh
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Kernel ARP cache refresh plugin
-endef
-
-define Package/olsrd-mod-dot-draw
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Dot topology information plugin
-endef
-
-define Package/olsrd-mod-bmf
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd +kmod-tun
-  TITLE:=Basic multicast forwarding plugin
-endef
-
-define Package/olsrd-mod-dyn-gw
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Dynamic internet gateway plugin
-endef
-
-define Package/olsrd-mod-dyn-gw-plain
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Dynamic internet gateway plain plugin
-endef
-
-define Package/olsrd-mod-httpinfo
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Small informative web server plugin
-endef
-
-define Package/olsrd-mod-jsoninfo
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Small informative plugin with JSON output
-endef
-
-define Package/olsrd-mod-mdns
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=MDNS/Zeroconf/Bonjour packet distribution 
-endef
-
-define Package/olsrd-mod-nameservice
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Lightweight hostname resolver plugin
-endef
-
-define Package/olsrd-mod-p2pd
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Peer to Peer Discovery plugin
-endef
-
-
-define Package/olsrd-mod-pgraph
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=output network topology for pgraph
-endef
-
-define Package/olsrd-mod-pud
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Position Update Distribution plugin
-endef
-
-define Package/olsrd-mod-quagga
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Quagga plugin
-endef
-
-define Package/olsrd-mod-secure
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Message signing plugin to secure routing domain
-endef
-
-define Package/olsrd-mod-sgwdynspeed
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Smart Gateway dynamic speed plugin
-endef
-
-define Package/olsrd-mod-txtinfo
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Small informative web server plugin
-endef
-
-define Package/olsrd-mod-watchdog
-  $(call Package/olsrd/template)
-  DEPENDS:=olsrd
-  TITLE:=Watchdog plugin
-endef
-
-define Package/olsrd-mod-pud/conffiles
-/etc/olsrd.d/olsrd.pud.position.conf
-endef
-
-define Package/olsrd-mod-secure/conffiles
-/etc/olsrd.d/olsrd_secure_key
-endef
-
-define Package/olsrd-mod-sgwdynspeed/conffiles
-/etc/olsrd.d/olsrd.sgw.speed.conf
-endef
-
-MAKE_FLAGS+= \
-       NO_DEBUG_MESSAGES=1 \
-       OS="linux" \
-       DESTDIR="$(PKG_INSTALL_DIR)" \
-       STRIP="true" \
-       INSTALL_LIB="true" \
-       SUBDIRS="arprefresh bmf dot_draw dyn_gw dyn_gw_plain httpinfo jsoninfo mdns nameservice p2pd pgraph pud quagga secure sgwdynspeed txtinfo watchdog"
-
-define Build/Compile
-       $(call Build/Compile/Default,all)
-       $(call Build/Compile/Default,libs)
-endef
-
-define Package/olsrd/install
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_DATA) ./files/olsrd.config $(1)/etc/config/olsrd
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/olsrd $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/olsrd.init $(1)/etc/init.d/olsrd
-endef
-
-define Package/olsrd-mod-arprefresh/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/arprefresh/olsrd_arprefresh.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-dot-draw/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/dot_draw/olsrd_dot_draw.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-bmf/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmf/olsrd_bmf.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-dyn-gw/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/dyn_gw/olsrd_dyn_gw.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-dyn-gw-plain/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/dyn_gw_plain/olsrd_dyn_gw_plain.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-httpinfo/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/httpinfo/olsrd_httpinfo.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-jsoninfo/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/jsoninfo/olsrd_jsoninfo.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-mdns/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/mdns/olsrd_mdns.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-nameservice/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/nameservice/olsrd_nameservice.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-p2pd/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/p2pd/olsrd_p2pd.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-pgraph/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/pgraph/olsrd_pgraph.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-pud/install
-       $(INSTALL_DIR) $(1)/etc/olsrd.d
-       $(CP) ./files/olsrd.pud.position.conf $(1)/etc/olsrd.d/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/pud/nmealib/lib/libnmea.so $(1)/usr/lib/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/pud/wireformat/lib/libOlsrdPudWireFormat.so $(1)/usr/lib/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/pud/olsrd_pud.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-quagga/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/quagga/olsrd_quagga.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-secure/install
-       $(INSTALL_DIR) $(1)/etc/olsrd.d
-       $(CP) ./files/olsrd_secure_key $(1)/etc/olsrd.d/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/secure/olsrd_secure.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-sgwdynspeed/install
-       $(INSTALL_DIR) $(1)/etc/olsrd.d
-       $(CP) ./files/olsrd.sgw.speed.conf $(1)/etc/olsrd.d/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/sgwdynspeed/olsrd_sgwdynspeed.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-txtinfo/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/txtinfo/olsrd_txtinfo.so.* $(1)/usr/lib/
-endef
-
-define Package/olsrd-mod-watchdog/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/watchdog/olsrd_watchdog.so.* $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,olsrd))
-$(eval $(call BuildPackage,olsrd-mod-arprefresh))
-$(eval $(call BuildPackage,olsrd-mod-dot-draw))
-$(eval $(call BuildPackage,olsrd-mod-bmf))
-$(eval $(call BuildPackage,olsrd-mod-dyn-gw))
-$(eval $(call BuildPackage,olsrd-mod-dyn-gw-plain))
-$(eval $(call BuildPackage,olsrd-mod-httpinfo))
-$(eval $(call BuildPackage,olsrd-mod-jsoninfo))
-$(eval $(call BuildPackage,olsrd-mod-mdns))
-$(eval $(call BuildPackage,olsrd-mod-nameservice))
-$(eval $(call BuildPackage,olsrd-mod-p2pd))
-$(eval $(call BuildPackage,olsrd-mod-pgraph))
-$(eval $(call BuildPackage,olsrd-mod-pud))
-$(eval $(call BuildPackage,olsrd-mod-quagga))
-$(eval $(call BuildPackage,olsrd-mod-secure))
-$(eval $(call BuildPackage,olsrd-mod-sgwdynspeed))
-$(eval $(call BuildPackage,olsrd-mod-txtinfo))
-$(eval $(call BuildPackage,olsrd-mod-watchdog))
diff --git a/net/olsrd/files/olsrd.config b/net/olsrd/files/olsrd.config
deleted file mode 100644 (file)
index 9a19eb9..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-config olsrd
-       # uncomment the following line to use a custom config file instead:
-       #option config_file '/etc/olsrd.conf'
-
-       option IpVersion '4'
-
-config LoadPlugin
-       option library 'olsrd_arprefresh.so.0.1'
-
-config LoadPlugin
-       option library 'olsrd_dyn_gw.so.0.5'
-
-config LoadPlugin
-       option library 'olsrd_httpinfo.so.0.1'
-       option port '1978'
-       list Net '0.0.0.0 0.0.0.0'
-
-config LoadPlugin
-       option library 'olsrd_nameservice.so.0.3'
-
-config LoadPlugin
-       option library 'olsrd_txtinfo.so.0.1'
-       option accept '0.0.0.0'
-
-config Interface
-       list interface 'wlan'
diff --git a/net/olsrd/files/olsrd.init b/net/olsrd/files/olsrd.init
deleted file mode 100644 (file)
index 1172623..0000000
+++ /dev/null
@@ -1,850 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2008-2012 OpenWrt.org
-
-START=65
-
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-
-CONF=/var/etc/olsrd.conf
-PID=/var/run/olsrd.pid
-PID6=/var/run/olsrd.ipv6.pid
-
-OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 AllowNoInt=yes'
-OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
-OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host4:list Net4:list2 Host:list Net:list2 Host6:list Net6:list2 Ping:list redistribute:list NonOlsrIf:list name:list lat lon latlon_infile HNA:list2 hosts:list2'
-OLSRD_INTERFACE_SCHEMA='ignore:internal interface:internal AutoDetectChanges:bool'
-OLSRD_INTERFACE_DEFAULTS_SCHEMA='AutoDetectChanges:bool'
-
-T='    '
-N='
-'
-
-log()
-{
-       logger -t olsrd -p daemon.info -s "$1"
-}
-
-validate_varname() {
-       local varname="$1"
-       [ -z "$varname" -o "$varname" != "${varname%%[!A-Za-z0-9_]*}" ] && return 1
-       return 0
-}
-
-validate_olsrd_option() {
-       local str="$1"
-       [ -z "$str" -o "$str" != "${str%%[!     0-9A-Za-z./|:_-]*}" ] && return 1
-       return 0
-}
-
-system_config() {
-       local cfg="$1"
-       local cfgt
-       local hostname
-       local latlon
-
-       config_get cfgt "$cfg" TYPE
-
-       if [ "$cfgt" = "system" ]; then
-               config_get hostname "$cfg" hostname
-               hostname="${hostname:-OpenWrt}"
-               SYSTEM_HOSTNAME="$hostname"
-       fi
-
-       if [ -z "$SYSTEM_LAT" -o -z "$SYSTEM_LON" ]; then
-               config_get latlon "$cfg" latlon
-               IFS=" ${T}${N},"
-               set -- $latlon
-               unset IFS
-               SYSTEM_LAT="$1"
-               SYSTEM_LON="$2"
-       fi
-
-       if [ -z "$SYSTEM_LAT" -o -z "$SYSTEM_LON" ]; then
-               config_get latlon "$cfg" latitude
-               SYSTEM_LAT="$latlon"
-               config_get latlon "$cfg" longitude
-               SYSTEM_LON="$latlon"
-       fi
-}
-
-olsrd_find_config_file() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-       config_get OLSRD_CONFIG_FILE "$cfg" config_file
-
-       return 0
-}
-
-warning_invalid_value() {
-       local funcname="warning_invalid_value"
-       local package="$1"
-       validate_varname "$package" || package=
-       local config="$2"
-       validate_varname "$config" || config=
-       local option="$3"
-       validate_varname "$option" || option=
-
-       if [ -n "$package" -a -n "$config" ]; then
-               log "$funcname() in option '$package.$config${option:+.}$option', skipped"
-       else
-               log "$funcname() skipped"
-       fi
-
-       return 0
-}
-
-olsrd_write_option() {
-       local param="$1"
-       local cfg="$2"
-       validate_varname "$cfg" || return 1
-       local option="$3"
-       validate_varname "$option" || return 1
-       local value="$4"
-       local option_type="$5"
-
-       if [ "$option_type" = bool ]; then
-               case "$value" in
-                       1|on|true|enabled|yes) value=yes;;
-                       0|off|false|disabled|no) value=no;;
-                       *) warning_invalid_value olsrd "$cfg" "$option"; return 1;;
-               esac
-       fi
-
-       if ! validate_olsrd_option "$value"; then
-               warning_invalid_value olsrd "$cfg" "$option"
-               return 1
-       fi
-
-       if [ "$value" != "${value%%[G-Zg-z_-]*}" ]; then
-               if [ "$option" != "Ip6AddrType" -a "$option" != "LinkQualityMult" -a "$value" != "yes" -a "$value" != "no" ]; then
-                       value="\"$value\""
-               fi
-       fi
-
-       echo -n "${N}$param$option $value"
-
-       return 0
-}
-
-olsrd_write_plparam() {
-       local funcname="olsrd_write_plparam"
-       local param="$1"
-       local cfg="$2"
-       validate_varname "$cfg" || return 1
-       local option="$3"
-       validate_varname "$option" || return 1
-       local value="$4"
-       local option_type="$5"
-       local _option
-
-       if [ "$option_type" = bool ]; then
-               case "$value" in
-                       1|on|true|enabled|yes) value=yes;;
-                       0|off|false|disabled|no) value=no;;
-                       *) warning_invalid_value olsrd "$cfg" "$option"; return 1;;
-               esac
-       fi
-
-       if ! validate_olsrd_option "$value"; then
-               warning_invalid_value olsrd "$cfg" "$option"
-               return 1
-       fi
-
-       IFS='-_'
-       set -- $option
-       option="$*"
-       unset IFS
-       _option="$option"
-       if [ "$option" = 'hosts' ]; then
-               set -- $value
-               option="$1"
-               shift
-               value="$*"
-       fi
-       if [ "$option" = 'NonOlsrIf' ]; then
-               if validate_varname "$value"; then
-                       if network_get_device ifname "$value"; then
-                               log "$funcname() Info: mdns Interface '$value' ifname '$ifname' found"
-                       else
-                               log "$funcname() Warning: mdns Interface '$value' not found, skipped"
-                       fi
-               else
-                       warning_invalid_value olsrd "$cfg" "NonOlsrIf"
-               fi
-               [ -z "$ifname" ] || value=$ifname
-       fi
-
-       echo -n "${N}${param}PlParam \"$option\" \"$value\""
-
-       return 0
-}
-
-config_update_schema() {
-       unset IFS
-       local schema_varname="$1"
-       validate_varname "$schema_varname" || return 1
-       local command="$2"
-       validate_varname "$command" || return 1
-       local option="$3"
-       validate_varname "$option" || return 1
-       local value="$4"
-       local schema
-       local cur_option
-
-       case "$varname" in
-               *_LENGTH) return 0;;
-               *_ITEM*) return 0;;
-       esac
-
-       eval "export -n -- \"schema=\${$schema_varname}\""
-
-       for cur_option in $schema; do
-               [ "${cur_option%%[:=]*}" = "$option" ] && return 0
-       done
-
-       if [ "$command" = list ]; then
-               set -- $value
-               if [ "$#" -ge "3" ]; then
-                       schema_entry="$option:list3"
-               elif [ "$#" -ge "2" ]; then
-                       schema_entry="$option:list2"
-               else
-                       schema_entry="$option:list"
-               fi
-       else
-               schema_entry="$option"
-       fi
-
-       append "$schema_varname" "$schema_entry"
-
-       return 0
-}
-
-config_write_options() {
-       local funcname="config_write_options"
-       unset IFS
-       local schema="$1"
-       local cfg="$2"
-       validate_varname "$cfg" || return 1
-       local write_func="$3"
-       [ -z "$write_func" ] && output_func=echo
-       local write_param="$4"
-
-       local schema_entry
-       local option
-       local option_length
-       local option_type
-       local default
-       local value
-       local list_size
-       local list_item
-       local list_value
-       local i
-       local position
-       local speed
-       local list_speed_vars="HelloInterval HelloValidityTime TcInterval TcValidityTime MidInterval MidValidityTime HnaInterval HnaValidityTime"
-
-       get_value_for_entry()
-       {
-               local schema_entry="$1"
-
-               default="${schema_entry#*[=]}"
-               [ "$default" = "$schema_entry" ] && default=
-               option="${schema_entry%%[=]*}"
-
-               IFS=':'; set -- $option; unset IFS
-               option="$1"
-               option_type="$2"
-
-               validate_varname "$option" || return 1
-               [ -z "$option_type" ] || validate_varname "$option_type" || return 1
-               [ "$option_type" = internal ] && return 1
-
-               config_get value "$cfg" "$option"
-               [ "$option" = "speed" ] && return 1
-
-               return 0
-       }
-
-       already_in_schema()
-       {
-               case " $schema " in
-                       *" $1 "*)
-                               return 0
-                       ;;
-                       *)
-                               return 1
-                       ;;
-               esac
-       }
-
-       already_in_schema "speed" && {
-               get_value_for_entry "speed"
-
-               if [ 2>/dev/null $value -gt 0 -a $value -le 20 ]; then
-                       speed="$value"
-               else
-                       log "$funcname() Warning: invalid speed-value: '$value' - allowed integers: 1...20, fallback to 6"
-                       speed=6
-               fi
-
-               for schema_entry in $list_speed_vars; do {
-                       already_in_schema "$schema_entry" || schema="$schema $schema_entry"
-               } done
-       }
-
-       for schema_entry in $schema; do
-               if [ -n "$speed" ]; then                # like sven-ola freifunk firmware fff-1.7.4
-                       case "$schema_entry" in
-                               HelloInterval)
-                                       value="$(( $speed / 2 + 1 )).0"
-                               ;;
-                               HelloValidityTime)
-                                       value="$(( $speed * 25 )).0"
-                               ;;
-                               TcInterval)     # todo: not fisheye? -> $(( $speed * 2 ))
-                                       value=$(( $speed / 2 ))
-                                       [ $value -eq 0 ] && value=1
-                                       value="$value.0"
-                               ;;
-                               TcValidityTime)
-                                       value="$(( $speed * 100 )).0"
-                               ;;
-                               MidInterval)
-                                       value="$(( $speed * 5 )).0"
-                               ;;
-                               MidValidityTime)
-                                       value="$(( $speed * 100 )).0"
-                               ;;
-                               HnaInterval)
-                                       value="$(( $speed * 2 )).0"
-                               ;;
-                               HnaValidityTime)
-                                       value="$(( $speed * 25 )).0"
-                               ;;
-                               *)
-                                       get_value_for_entry "$schema_entry" || continue
-                               ;;
-                       esac
-
-                       is_speed_var()
-                       {
-                               case " $list_speed_vars " in
-                                       *" $1 "*)
-                                               return 0
-                                       ;;
-                                       *)
-                                               return 1
-                                       ;;
-                               esac
-                       }
-
-                       is_speed_var "$schema_entry" && option="$schema_entry"
-               else
-                       get_value_for_entry "$schema_entry" || continue
-               fi
-
-               if [ -z "$value" ]; then
-                       IFS='+'
-                       set -- $default
-                       unset IFS
-                       value=$*
-               elif [ "$value" = '-' -a -n "$default" ]; then
-                       continue
-               fi
-
-               [ -z "$value" ] && continue
-
-               case "$option_type" in
-                       list) list_size=1;;
-                       list2) list_size=2;;
-                       list3) list_size=3;;
-                       *) list_size=0;;
-               esac
-
-               if [ "$list_size" -gt 0 ]; then
-                       config_get option_length "$cfg" "${option}_LENGTH"
-                       if [ -n "$option_length" ]; then
-                               i=1
-                               while [ "$i" -le "$option_length" ]; do
-                                       config_get list_value "$cfg" "${option}_ITEM$i"
-                                       "$write_func" "$write_param" "$cfg" "$option" "$list_value" "$option_type" || break
-                                       i=$((i + 1))
-                               done
-                       else
-                               list_value=
-                               i=0
-                               for list_item in $value; do
-                                       append "list_value" "$list_item"
-                                       i=$((i + 1))
-                                       position=$((i % list_size))
-                                       if [ "$position" -eq 0 ]; then
-                                               "$write_func" "$write_param" "$cfg" "$option" "$list_value" "$option_type" || break
-                                               list_value=
-                                       fi
-                               done
-                               [ "$position" -ne 0 ] && "$write_func" "$write_param" "$cfg" "$option" "$list_value" "$option_type"
-                       fi
-               else
-                       "$write_func" "$write_param" "$cfg" "$option" "$value" "$option_type"
-               fi
-       done
-
-       return 0
-}
-
-olsrd_write_olsrd() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       [ "$OLSRD_COUNT" -gt 0 ] && return 0
-
-       config_get ipversion "$cfg" IpVersion
-       if [ "$ipversion" = "6and4" ]; then
-               OLSRD_IPVERSION_6AND4=1
-               config_set "$cfg" IpVersion '6'
-       fi
-       config_get smartgateway "$cfg" SmartGateway
-       config_get smartgatewayuplink "$cfg" SmartGatewayUplink
-
-       config_write_options "$OLSRD_OLSRD_SCHEMA" "$cfg" olsrd_write_option
-       echo
-       OLSRD_COUNT=$((OLSRD_COUNT + 1))
-       return 0
-}
-
-olsrd_write_ipcconnect() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       [ "$IPCCONNECT_COUNT" -gt 0 ] && return 0
-
-       echo -n "${N}IpcConnect${N}{"
-       config_write_options "$OLSRD_IPCCONNECT_SCHEMA" "$cfg" olsrd_write_option "${T}"
-       echo "${N}}"
-       IPCCONNECT_COUNT=$((IPCCONNECT_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_hna4() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       config_get netaddr "$cfg" netaddr
-       if ! validate_olsrd_option "$netaddr"; then
-               warning_invalid_value olsrd "$cfg" "netaddr"
-               return 0
-       fi
-
-       config_get netmask "$cfg" netmask
-       if ! validate_olsrd_option "$netmask"; then
-               warning_invalid_value olsrd "$cfg" "netmask"
-               return 0
-       fi
-
-       [ "$HNA4_COUNT" -le 0 ] && echo -n "${N}Hna4${N}{"
-       echo -n "${N}${T}${T}$netaddr $netmask"
-       HNA4_COUNT=$((HNA4_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_hna6() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       config_get netaddr "$cfg" netaddr
-       if ! validate_olsrd_option "$netaddr"; then
-               warning_invalid_value olsrd "$cfg" "netaddr"
-               return 0
-       fi
-
-       config_get prefix "$cfg" prefix
-       if ! validate_olsrd_option "$prefix"; then
-               warning_invalid_value olsrd "$cfg" "prefix"
-               return 0
-       fi
-
-       [ "$HNA6_COUNT" -le 0 ] && echo -n "${N}Hna6${N}{"
-       echo -n "${N}${T}${T}$netaddr $prefix"
-       HNA6_COUNT=$((HNA6_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_loadplugin() {
-       local funcname="olsrd_write_loadplugin"
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-       local name
-       local suffix
-       local lat
-       local lon
-       local latlon_infile
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       config_get library "$cfg" library
-       if ! validate_olsrd_option "$library"; then
-               warning_invalid_value olsrd "$cfg" "library"
-               return 0
-       fi
-       if ! [ -x "/lib/$library" -o -x "/usr/lib/$library" -o -x "/usr/local/lib/$library" ]; then
-               log "$funcname() Warning: Plugin library '$library' not found, skipped"
-               return 0
-       fi
-
-       case "$library" in
-               olsrd_nameservice.*)
-                       config_get name "$cfg" name
-                       [ -z "$name" ] && config_set "$cfg" name $SYSTEM_HOSTNAME
-
-                       config_get suffix "$cfg" suffix
-                       [ -z "$suffix" ] && config_set "$cfg" suffix '.olsr'
-
-                       config_get lat "$cfg" lat
-                       config_get lon "$cfg" lon
-                       config_get latlon_infile "$cfg" latlon_infile
-                       if [ \( -z "$lat" -o -z "$lat" \) -a -z "$latlon_infile" ]; then
-                               if [ -f '/var/run/latlon.txt' ]; then
-                                       config_set "$cfg" lat ''
-                                       config_set "$cfg" lon ''
-                                       config_set "$cfg" latlon_infile '/var/run/latlon.txt'
-                               else
-                                       config_set "$cfg" lat "$SYSTEM_LAT"
-                                       config_set "$cfg" lon "$SYSTEM_LON"
-                               fi
-                       fi
-
-                       for f in latlon_file hosts_file services_file resolv_file macs_file; do
-                               config_get $f "$cfg" $f
-                       done
-
-                       [ -z "$latlon_file" ] && config_set "$cfg" latlon_file '/var/run/latlon.js'
-               ;;
-               olsrd_watchdog.*)
-                       config_get wd_file "$cfg" file
-               ;;
-       esac
-
-       echo -n "${N}LoadPlugin \"$library\"${N}{"
-       config_write_options "$OLSRD_LOADPLUGIN_SCHEMA" "$cfg" olsrd_write_plparam "${T}"
-       echo "${N}}"
-
-       return 0
-}
-
-olsrd_write_interface() {
-       local funcname="olsrd_write_interface"
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-       local interfaces
-       local interface
-       local ifnames
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       ifnames=
-       config_get interfaces "$cfg" interface
-
-       for interface in $interfaces; do
-               if validate_varname "$interface"; then
-                       if network_get_device IFNAME "$interface"; then
-                               ifnames="$ifnames \"$IFNAME\""
-                               ifsglobal="$ifsglobal $IFNAME"
-                       else
-                               log "$funcname() Warning: Interface '$interface' not found, skipped"
-                       fi
-               else
-                       warning_invalid_value olsrd "$cfg" "interface"
-               fi
-       done
-
-       [ -z "$ifnames" ] && return 0
-
-       echo -n "${N}Interface$ifnames${N}{"
-       config_write_options "$OLSRD_INTERFACE_SCHEMA" "$cfg" olsrd_write_option "${T}"
-       echo "${N}}"
-       INTERFACES_COUNT=$((INTERFACES_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_interface_defaults() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-
-       echo -n "${N}InterfaceDefaults$ifnames${N}{"
-       config_write_options "$OLSRD_INTERFACE_DEFAULTS_SCHEMA" "$cfg" olsrd_write_option "${T}"
-       echo "${N}}"
-
-       return 1
-}
-
-olsrd_update_schema() {
-       local command="$1"
-       validate_varname "$command" || return 0
-       local varname="$2"
-       validate_varname "$varname" || return 0
-       local value="$3"
-       local cfg="$CONFIG_SECTION"
-       local cfgt
-       local cur_varname
-
-       config_get cfgt "$cfg" TYPE
-       case "$cfgt" in
-               olsrd) config_update_schema OLSRD_OLSRD_SCHEMA "$command" "$varname" "$value";;
-               IpcConnect) config_update_schema OLSRD_IPCCONNECT_SCHEMA "$command" "$varname" "$value";;
-               LoadPlugin) config_update_schema OLSRD_LOADPLUGIN_SCHEMA "$command" "$varname" "$value";;
-               Interface) config_update_schema OLSRD_INTERFACE_SCHEMA "$command" "$varname" "$value";;
-               InterfaceDefaults) config_update_schema OLSRD_INTERFACE_DEFAULTS_SCHEMA "$command" "$varname" "$value";;
-       esac
-
-       return 0
-}
-
-olsrd_write_config() {
-       OLSRD_IPVERSION_6AND4=0
-       OLSRD_COUNT=0
-       config_foreach olsrd_write_olsrd olsrd
-       IPCCONNECT_COUNT=0
-       config_foreach olsrd_write_ipcconnect IpcConnect
-       HNA4_COUNT=0
-       config_foreach olsrd_write_hna4 Hna4
-       [ "$HNA4_COUNT" -gt 0 ] && echo "${N}}"
-       HNA6_COUNT=0
-       config_foreach olsrd_write_hna6 Hna6
-       [ "$HNA6_COUNT" -gt 0 ] && echo "${N}}"
-       config_foreach olsrd_write_loadplugin LoadPlugin
-       INTERFACES_COUNT=0
-       config_foreach olsrd_write_interface_defaults InterfaceDefaults
-       config_foreach olsrd_write_interface Interface
-       echo
-
-       return 0
-}
-
-get_wan_ifnames()
-{
-       local wanifnames word catch_next
-
-       which ip >/dev/null || return 1
-
-       set -- $( ip route list exact 0.0.0.0/0 table all )
-       for word in $*; do
-               case "$word" in
-                       dev)
-                               catch_next="true"
-                       ;;
-                       *)
-                               [ -n "$catch_next" ] && {
-                                       case "$wanifnames" in
-                                               *" $word "*)
-                                               ;;
-                                               *)
-                                                       wanifnames="$wanifnames $word "
-                                               ;;
-                                       esac
-
-                                       catch_next=
-                               }
-                       ;;
-               esac
-       done
-
-       echo "$wanifnames"
-}
-
-olsrd_setup_smartgw_rules() {
-       local funcname="olsrd_setup_smartgw_rules"
-       # Check if ipip is installed
-       [ -e /etc/modules.d/[0-9]*-ipip ] || {
-               log "$funcname() Warning: kmod-ipip is missing. SmartGateway will not work until you install it."
-               return 1
-       }
-
-       local wanifnames="$( get_wan_ifnames )"
-
-       if [ -z "$wanifnames" ]; then
-               nowan=1
-       else
-               nowan=0
-       fi
-
-       IP4T=$(which iptables)
-       IP6T=$(which ip6tables)
-
-       # Delete smartgw firewall rules first
-       for IPT in $IP4T $IP6T; do
-               while $IPT -D forwarding_rule -o tnl_+ -j ACCEPT 2> /dev/null; do :;done
-               for IFACE in $wanifnames; do
-                       while $IPT -D forwarding_rule -i tunl0 -o $IFACE -j ACCEPT 2> /dev/null; do :; done
-               done
-               for IFACE in $ifsglobal; do
-                       while $IPT -D input_rule -i $IFACE -p 4 -j ACCEPT 2> /dev/null; do :; done
-               done
-       done
-       while $IP4T -t nat -D postrouting_rule -o tnl_+ -j MASQUERADE 2> /dev/null; do :;done
-
-       if [ "$smartgateway" == "yes" ]; then
-               log "$funcname() Notice: Inserting firewall rules for SmartGateway"
-               if [ ! "$smartgatewayuplink" == "none" ]; then
-                       if [ "$smartgatewayuplink" == "ipv4" ]; then
-                               # Allow everything to be forwarded to tnl_+ and use NAT for it
-                               $IP4T -I forwarding_rule -o tnl_+ -j ACCEPT
-                               $IP4T -t nat -I postrouting_rule -o tnl_+ -j MASQUERADE
-                               # Allow forwarding from tunl0 to (all) wan-interfaces
-                               if [ "$nowan"="0" ]; then
-                                       for IFACE in $wanifnames; do
-                                               $IP4T -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT
-                                       done
-                               fi
-                               # Allow incoming ipip on all olsr-interfaces
-                               for IFACE in $ifsglobal; do
-                                       $IP4T -I input_rule -i $IFACE -p 4 -j ACCEPT
-                               done
-                       elif [ "$smartgatewayuplink" == "ipv6" ]; then
-                               $IP6T -I forwarding_rule -o tnl_+ -j ACCEPT
-                               if [ "$nowan"="0" ]; then
-                                       for IFACE in $wanifnames; do
-                                               $IP6T -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT
-                                       done
-                               fi
-                               for IFACE in $ifsglobal; do
-                                       $IP6T -I input_rule -i $IFACE -p 4 -j ACCEPT
-                               done
-                       else
-                               for IPT in $IP4T $IP6T; do
-                                       $IPT -I forwarding_rule -o tnl_+ -j ACCEPT
-                                       $IPT -t nat -I postrouting_rule -o tnl_+ -j MASQUERADE
-                                       if [ "$nowan"="0" ]; then
-                                               for IFACE in $wanifnames; do
-                                                       $IPT -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT
-                                               done
-                                       fi
-                                       for IFACE in $ifsglobal; do
-                                               $IPT -I input_rule -i $IFACE -p 4 -j ACCEPT
-                                       done
-                               done
-                       fi
-               fi
-       fi
-}
-
-error() {
-       log "error() ${initscript}: $@"
-}
-
-start() {
-       SYSTEM_HOSTNAME=
-       SYSTEM_LAT=
-       SYSTEM_LON=
-       config_load system
-       config_foreach system_config system
-
-       option_cb() {
-               olsrd_update_schema "option" "$@"
-       }
-
-       list_cb() {
-               olsrd_update_schema "list" "$@"
-       }
-
-       . /lib/functions/network.sh
-
-       config_load olsrd
-       reset_cb
-
-       OLSRD_CONFIG_FILE=
-       config_foreach olsrd_find_config_file olsrd
-
-       if [ -z "$OLSRD_CONFIG_FILE" ]; then
-               mkdir -p -- /var/etc/
-               olsrd_write_config > /var/etc/olsrd.conf
-               if [ "$INTERFACES_COUNT" -gt 0 -a "$OLSRD_COUNT" -gt 0 ]; then
-                       OLSRD_CONFIG_FILE=/var/etc/olsrd.conf
-               fi
-       fi
-
-       [ -z "$OLSRD_CONFIG_FILE" ] && return 1
-
-       local bindv6only='0'
-       if [ "$OLSRD_IPVERSION_6AND4" -ne 0 ]; then
-               bindv6only="$(sysctl -n net.ipv6.bindv6only)"
-               sysctl -w net.ipv6.bindv6only=1 > /dev/null
-               sed -e '/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/d' < "$OLSRD_CONFIG_FILE" > /var/etc/olsrd.conf.ipv6
-               sed -e 's/^IpVersion[ ][ ]*6$/IpVersion 4/' -e 's/^\t\t[A-Fa-f0-9.:]*[:][A-Fa-f0-9.:]*[ ][0-9]*$//' < "$OLSRD_CONFIG_FILE" > /var/etc/olsrd.conf.ipv4
-               rm $OLSRD_CONFIG_FILE
-
-               # some filenames should get the suffix .ipv6
-               for file in $latlon_file $hosts_file $services_file $resolv_file $macs_file $wd_file;do
-                       f=$(echo $file|sed 's/\//\\\//g')
-                       sed -i "s/$f/$f.ipv6/g" /var/etc/olsrd.conf.ipv6
-               done
-
-               SERVICE_PID_FILE="$PID6"
-               if service_check /usr/sbin/olsrd; then
-                       error "there is already an IPv6 instance of olsrd running (pid: '$(cat $PID6)'), not starting."
-               else
-                       service_start /usr/sbin/olsrd -f /var/etc/olsrd.conf.ipv6 -nofork
-               fi
-
-               SERVICE_PID_FILE="$PID"
-               if service_check /usr/sbin/olsrd; then
-                       error "there is already an IPv4 instance of olsrd running (pid: '$(cat $PID)'), not starting."
-               else
-                       service_start /usr/sbin/olsrd -f /var/etc/olsrd.conf.ipv4 -nofork
-               fi
-
-               sleep 3
-               sysctl -w net.ipv6.bindv6only="$bindv6only" > /dev/null
-
-       else
-
-               if [ "$ipversion" = "6" ]; then
-                       sed -i '/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/d' "$OLSRD_CONFIG_FILE"
-               fi
-
-               SERVICE_PID_FILE="$PID"
-               if service_check /usr/sbin/olsrd; then
-                       error "there is already an IPv4 instance of olsrd running (pid: '$(cat $PID)'), not starting."
-                       return 1
-               else
-                       service_start /usr/sbin/olsrd -f "$OLSRD_CONFIG_FILE" -nofork
-               fi
-       fi
-       olsrd_setup_smartgw_rules
-}
-
-stop() {
-       SERVICE_PID_FILE="$PID"
-       service_stop /usr/sbin/olsrd
-
-       SERVICE_PID_FILE="$PID6"
-       service_stop /usr/sbin/olsrd
-}
diff --git a/net/olsrd/files/olsrd.pud.position.conf b/net/olsrd/files/olsrd.pud.position.conf
deleted file mode 100644 (file)
index 0ab0fb7..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# OLSrd PUD plugin position configuration file
-#
-
-# GPS operating mode.
-# Values : bad, 2d, 3d
-# Default: bad
-# Note   : a value of 'bad' will make the resulting position information invalid
-#          (the mask will indicate that all other information is not present)
-#fix = bad
-
-# GPS quality indicator.
-# Values : bad, low, mid, high
-# Default: high
-#sig = high
-
-# HDOP (Horizontal Dilution Of Precision)
-# Values : floating point value
-# Default: 0.0
-# Note   : From HDOP, VDOP and PDOP are determined: VDOP = HDOP, and PDOP = sqrt(2) * HDOP.
-#hdop = 0.0
-
-# Latitude
-# Values : floating point value
-#          Unit is NMEA like latitude: ddmm.sssss (d=degrees, m=minutes, s=seconds)
-# Default: 0000.00000
-#lat = 0000.00000
-
-# Longitude
-# Values: floating point value
-#          Unit is NMEA like longitude: dddmm.sssss (d=degrees, m=minutes, s=seconds)
-# Default: 00000.00000
-#lon = 00000.00000
-
-# Elevation
-# Values: floating point value
-#         Unit is meters above the mean sea level (geoid)
-# Default: 0.0
-#elv = 0.0
-
-# Speed
-# Values: floating point value
-#         Unit is over the ground in kph
-# Default: 0.0
-#speed = 0.0
-
-# Direction/Track
-# Values: floating point value
-#         Unit is (compass) degrees
-# Default: 0.0
-#direction = 0.0
diff --git a/net/olsrd/files/olsrd.sgw.speed.conf b/net/olsrd/files/olsrd.sgw.speed.conf
deleted file mode 100644 (file)
index ae795d8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# OLSrd Smart Gateway uplink speed configuration file
-#
-
-
-#
-# Upstream speed in kilobit/s
-# Default: 128
-#upstream=128
-
-#
-# Downstream speed in kilobit/s
-# Default: 1024
-#downstream=1024
diff --git a/net/olsrd/files/olsrd_secure_key b/net/olsrd/files/olsrd_secure_key
deleted file mode 100644 (file)
index 4a7d725..0000000
+++ /dev/null
@@ -1 +0,0 @@
-1234567890123456
\ No newline at end of file