From: Jo-Philipp Wich Date: Sat, 20 Apr 2013 13:00:31 +0000 (+0000) Subject: packages: drop olsrd, batman, bmxd and batman-adv packages since they moved to a... X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=08a1ac3efa3b26de8ab5845821c8a20226718fbc packages: drop olsrd, batman, bmxd and batman-adv packages since they moved to a different feed SVN-Revision: 36369 --- diff --git a/net/batman-adv/Config.in b/net/batman-adv/Config.in deleted file mode 100644 index b47104fcab..0000000000 --- a/net/batman-adv/Config.in +++ /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 index cbb7aac08d..0000000000 --- a/net/batman-adv/Makefile +++ /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 - 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 index 6a62203bb1..0000000000 --- a/net/batman-adv/files/etc/config/batman-adv +++ /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 index f0c391fa80..0000000000 --- a/net/batman-adv/files/etc/hotplug.d/net/99-batman-adv +++ /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 index ae102e9175..0000000000 --- a/net/batman-adv/files/lib/batman-adv/config.sh +++ /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 index 632a209d0e..0000000000 --- a/net/batman-adv/files/lib/netifd/proto/batadv.sh +++ /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 index 46b2c8de50..0000000000 --- a/net/batman-adv/patches/0001-batman-adv-verify-tt-len-does-not-exceed-packet-len.patch +++ /dev/null @@ -1,42 +0,0 @@ -From e56c79f4e863436d0fc6c48fed0db09b7a49e565 Mon Sep 17 00:00:00 2001 -From: Marek Lindner -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 ---- - 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 index 71af36aad6..0000000000 --- a/net/batman-adv/patches/0002-batman-adv-hlist-drop-the-node-parameter-from-iterators.patch +++ /dev/null @@ -1,1462 +0,0 @@ -From c506b113c82319c43478ff31c933c4e98f0084d7 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -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 -Acked-by: Paul E. McKenney -Signed-off-by: Sasha Levin -Cc: Wu Fengguang -Cc: Marcelo Tosatti -Cc: Gleb Natapov -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Signed-off-by: Marek Lindner ---- - 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 index a8dc69a1d2..0000000000 --- a/net/batman-adv/patches/0003-batman-adv-make-is_my_mac-check-for-the-current-mesh.patch +++ /dev/null @@ -1,250 +0,0 @@ -From 647d23f3e358d9fa4b1a8f0bb67a3e6bff30d4a1 Mon Sep 17 00:00:00 2001 -From: Antonio Quartulli -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 -Signed-off-by: Marek Lindner ---- - 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 index 4026496ae8..0000000000 --- a/net/batman/Makefile +++ /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 -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 index 6d1f3beb49..0000000000 --- a/net/batman/files/etc/config/batmand +++ /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 index 6d30023f72..0000000000 --- a/net/batman/files/etc/config/vis +++ /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 index 403e9f39a0..0000000000 --- a/net/batman/files/etc/init.d/batmand +++ /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 index ef18eb718c..0000000000 --- a/net/batman/files/etc/init.d/vis +++ /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 index 566c23b66b..0000000000 --- a/net/batman/patches/100-2.6.36.patch +++ /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 -+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 index 5dfd7f9448..0000000000 --- a/net/bmxd/Makefile +++ /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 -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 index c8619e935a..0000000000 --- a/net/bmxd/files/etc/config/bmxd +++ /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 index d23b4c88b8..0000000000 --- a/net/bmxd/files/etc/init.d/bmxd +++ /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 index e5be87b040..0000000000 --- a/net/olsrd/Makefile +++ /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 - 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 index 9a19eb98c8..0000000000 --- a/net/olsrd/files/olsrd.config +++ /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 index 1172623023..0000000000 --- a/net/olsrd/files/olsrd.init +++ /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 index 0ab0fb749b..0000000000 --- a/net/olsrd/files/olsrd.pud.position.conf +++ /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 index ae795d87d0..0000000000 --- a/net/olsrd/files/olsrd.sgw.speed.conf +++ /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 index 4a7d7258f1..0000000000 --- a/net/olsrd/files/olsrd_secure_key +++ /dev/null @@ -1 +0,0 @@ -1234567890123456 \ No newline at end of file