+++ /dev/null
-
-config KMOD_BATMAN_ADV_DEBUG_LOG
- bool "enable verbose debug logging"
- depends PACKAGE_kmod-batman-adv
- default n
-config KMOD_BATMAN_ADV_BLA
- bool "enable bridge loop avoidance"
- depends PACKAGE_kmod-batman-adv
- default y
-config KMOD_BATMAN_ADV_BATCTL
- bool "enable batctl"
- depends 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.
+++ /dev/null
-#
-# 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:=2012.3.0
-BATCTL_VERSION:=2012.3.0
-PKG_RELEASE:=3
-PKG_MD5SUM:=9f2d0bb2792fe0db012203d502e2085c
-BATCTL_MD5SUM:=fe9e6a3994539037b48afc5e3d31628c
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_BATCTL_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/batctl-$(BATCTL_VERSION)
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-define KernelPackage/batman-adv
- URL:=http://www.open-mesh.org/
- MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
- SUBMENU:=Network Support
- DEPENDS:=+kmod-lib-crc16 +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) \
- 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)/lib/batman-adv $(1)/usr/sbin
- $(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/usr/sbin/batman-adv $(1)/usr/sbin
- $(BATCTL_INSTALL)
-endef
-
-$(eval $(call KernelPackage,batman-adv))
+++ /dev/null
-
-config 'mesh' 'bat0'
- option 'interfaces' 'mesh'
- 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'
-
-# yet another batX instance
-# config 'mesh' 'bat5'
-# option 'interfaces' 'second_mesh'
+++ /dev/null
-#!/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"
- [ -d /sys/class/net/$INTERFACE/batman_adv/ ] && config_foreach bat_add_interface mesh "$INTERFACE"
- ;;
- remove)
- [ -d /sys/class/net/$INTERFACE/batman_adv/ ] && config_foreach bat_del_interface mesh "$INTERFACE"
- ;;
-esac
+++ /dev/null
-#!/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 bonding fragmentation gw_bandwidth gw_mode gw_sel_class log_level orig_interval hop_penalty vis_mode bridge_loop_avoidance
-
- config_get aggregated_ogms "$mesh" aggregated_ogms
- config_get bonding "$mesh" bonding
- 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 log_level "$mesh" log_level
- config_get orig_interval "$mesh" orig_interval
- config_get hop_penalty "$mesh" hop_penalty
- config_get vis_mode "$mesh" vis_mode
- config_get ap_isolation "$mesh" ap_isolation
- config_get bridge_loop_avoidance "$mesh" bridge_loop_avoidance
-
- [ ! -f "/sys/class/net/$mesh/mesh/orig_interval" ] && echo "batman-adv mesh $mesh does not exist - check your interface configuration" && return 1
-
- [ -n "$orig_interval" ] && echo $orig_interval > /sys/class/net/$mesh/mesh/orig_interval
- [ -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 "$aggregate_ogms" ] && echo $aggregate_ogms > /sys/class/net/$mesh/mesh/aggregate_ogms
- [ -n "$bonding" ] && echo $bonding > /sys/class/net/$mesh/mesh/bonding
- [ -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 "$vis_mode" ] && echo $vis_mode > /sys/class/net/$mesh/mesh/vis_mode
- [ -n "$ap_isolation" ] && echo $ap_isolation > /sys/class/net/$mesh/mesh/ap_isolation
- [ -n "$bridge_loop_avoidance" ] && echo $bridge_loop_avoidance > /sys/class/net/$mesh/mesh/bridge_loop_avoidance
-}
-
-bat_add_interface()
-{
- local mesh="$1"
- local interface="$2"
- local interfaces
-
- sleep 3s # some device (ath) is very lazy to start
- config_get interfaces $mesh interfaces
- for iface in $interfaces; do
- [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || {
- iface=$(uci -q -P/var/state get network.$iface.ifname)
- [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || continue
- }
-
- [ "$iface" = "$interface" ] && echo $mesh > /sys/class/net/$iface/batman_adv/mesh_iface
- done
-}
-
-bat_del_interface()
-{
- local mesh="$1"
- local interface="$2"
- local interfaces
-
- config_get interfaces $mesh interfaces
- for iface in $interfaces; do
- [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || {
- iface=$(uci -q -P/var/state get network.$iface.ifname)
- [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || continue
- }
-
- [ "$iface" = "$interface" ] && echo none > /sys/class/net/$iface/batman_adv/mesh_iface
- done
-}
+++ /dev/null
-#!/bin/sh
-# Copyright (C) 2011 OpenWrt.org
-
-. /lib/functions.sh
-. /lib/batman-adv/config.sh
-
-start_mesh() {
- local mesh="$1"
- local ifaces=$(awk -F':' '{if (NR > 2) print $1}' /proc/net/dev)
-
- for iface in $ifaces; do
- [ -d /sys/class/net/$iface/batman_adv/ ] && bat_add_interface "$mesh" "$iface"
- done
-
- bat_config "$mesh"
-}
-
-stop_mesh() {
- local mesh="$1"
- local ifaces=$(awk -F':' '{if (NR > 2) print $1}' /proc/net/dev)
-
- for iface in $ifaces; do
- [ -d /sys/class/net/$iface/batman_adv/ ] && bat_del_interface "$mesh" "$iface"
- done
-}
-
-# can also be used with "batman-adv start bat0"
-start() {
- bat_load_module
- config_load batman-adv
-
- if [ -n "$1" ]; then
- start_mesh $1
- else
- config_foreach start_mesh mesh
- fi
-}
-
-# can also be used with "batman-adv stop bat0"
-stop () {
- config_load batman-adv
-
- if [ -n "$1" ]; then
- stop_mesh $1
- else
- config_foreach stop_mesh mesh
- fi
-}
-
-restart() {
- stop $1
- start $1
-}
-
-case "$1" in
- start) start $2 ;;
- stop) stop $2 ;;
- restart) restart $2 ;;
- *) echo "Usage: batman-adv <start|stop|restart> [mesh instance]"
-esac
+++ /dev/null
-From 716c8c9a8bb7ac1e30e959e50ed74caa7dabe60a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@web.de>
-Date: Mon, 3 Sep 2012 22:20:31 +0200
-Subject: [PATCH] batman-adv: make batadv_test_bit() return 0 or 1 only
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-On some architectures test_bit() can return other values than 0 or 1:
-
-With a generic x86 OpenWrt image in a kvm setup (batadv_)test_bit()
-frequently returns -1 for me, leading to batadv_iv_ogm_update_seqnos()
-wrongly signaling a protected seqno window.
-
-This patch tries to fix this issue by making batadv_test_bit() return 0
-or 1 only.
-
-Signed-off-by: Linus Lüssing <linus.luessing@web.de>
-Acked-by: Sven Eckelmann <sven@narfation.org>
----
- bitarray.h | 6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/bitarray.h b/bitarray.h
-index a081ce1..cebaae7 100644
---- a/bitarray.h
-+++ b/bitarray.h
-@@ -20,8 +20,8 @@
- #ifndef _NET_BATMAN_ADV_BITARRAY_H_
- #define _NET_BATMAN_ADV_BITARRAY_H_
-
--/* returns true if the corresponding bit in the given seq_bits indicates true
-- * and curr_seqno is within range of last_seqno
-+/* Returns 1 if the corresponding bit in the given seq_bits indicates true
-+ * and curr_seqno is within range of last_seqno. Otherwise returns 0.
- */
- static inline int batadv_test_bit(const unsigned long *seq_bits,
- uint32_t last_seqno, uint32_t curr_seqno)
-@@ -32,7 +32,7 @@ static inline int batadv_test_bit(const unsigned long *seq_bits,
- if (diff < 0 || diff >= BATADV_TQ_LOCAL_WINDOW_SIZE)
- return 0;
- else
-- return test_bit(diff, seq_bits);
-+ return test_bit(diff, seq_bits) != 0;
- }
-
- /* turn corresponding bit on, so we can remember that we got the packet */
---
-1.7.9.1
-
+++ /dev/null
-From 86fa71a4985f60da5918e1f43136dae77852cdc3 Mon Sep 17 00:00:00 2001
-From: Def <def@laposte.net>
-Date: Thu, 20 Sep 2012 14:56:13 +0200
-Subject: [PATCH] batman-adv: Fix change mac address of soft iface.
-
-Into function interface_set_mac_addr, the function tt_local_add was
-invoked before updating dev->dev_addr. The new MAC address was not
-tagged as NoPurge.
-
-Signed-off-by: Def <def@laposte.net>
----
- soft-interface.c | 7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/soft-interface.c b/soft-interface.c
-index cf26e41..b762068 100644
---- a/soft-interface.c
-+++ b/soft-interface.c
-@@ -100,18 +100,21 @@ static int batadv_interface_set_mac_addr(struct net_device *dev, void *p)
- {
- struct batadv_priv *bat_priv = netdev_priv(dev);
- struct sockaddr *addr = p;
-+ uint8_t old_addr[ETH_ALEN];
-
- if (!is_valid_ether_addr(addr->sa_data))
- return -EADDRNOTAVAIL;
-
-+ memcpy(old_addr, dev->dev_addr, ETH_ALEN);
-+ memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
-+
- /* only modify transtable if it has been initialized before */
- if (atomic_read(&bat_priv->mesh_state) == BATADV_MESH_ACTIVE) {
-- batadv_tt_local_remove(bat_priv, dev->dev_addr,
-+ batadv_tt_local_remove(bat_priv, old_addr,
- "mac address changed", false);
- batadv_tt_local_add(dev, addr->sa_data, BATADV_NULL_IFINDEX);
- }
-
-- memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
- dev->addr_assign_type &= ~NET_ADDR_RANDOM;
- return 0;
- }
---
-1.7.9.1
-
+++ /dev/null
-From 6c9d9eeac0fb5d6625256cd119d0a4994c63e965 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@web.de>
-Date: Tue, 18 Sep 2012 03:01:08 +0200
-Subject: [PATCH] batman-adv: Fix symmetry check / route flapping in multi
- interface setups
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-If receiving an OGM from a neighbor other than the currently selected
-and if it has the same TQ then we are supposed to switch if this
-neighbor provides a more symmetric link than the currently selected one.
-
-However this symmetry check currently is broken if the interface of the
-neighbor we received the OGM from and the one of the currently selected
-neighbor differ: We are currently trying to determine the symmetry of the
-link towards the selected router via the link we received the OGM from
-instead of just checking via the link towards the currently selected
-router.
-
-This leads to way more route switches than necessary and can lead to
-permanent route flapping in many common multi interface setups.
-
-This patch fixes this issue by using the right interface for this
-symmetry check.
-
-Signed-off-by: Linus Lüssing <linus.luessing@web.de>
----
- bat_iv_ogm.c | 13 +++++++------
- 1 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
-index e877af8..469daab 100644
---- a/bat_iv_ogm.c
-+++ b/bat_iv_ogm.c
-@@ -642,7 +642,8 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv,
- struct batadv_neigh_node *router = NULL;
- struct batadv_orig_node *orig_node_tmp;
- struct hlist_node *node;
-- uint8_t bcast_own_sum_orig, bcast_own_sum_neigh;
-+ int if_num;
-+ uint8_t sum_orig, sum_neigh;
- uint8_t *neigh_addr;
-
- batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
-@@ -727,17 +728,17 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv,
- if (router && (neigh_node->tq_avg == router->tq_avg)) {
- orig_node_tmp = router->orig_node;
- spin_lock_bh(&orig_node_tmp->ogm_cnt_lock);
-- bcast_own_sum_orig =
-- orig_node_tmp->bcast_own_sum[if_incoming->if_num];
-+ if_num = router->if_incoming->if_num;
-+ sum_orig = orig_node_tmp->bcast_own_sum[if_num];
- spin_unlock_bh(&orig_node_tmp->ogm_cnt_lock);
-
- orig_node_tmp = neigh_node->orig_node;
- spin_lock_bh(&orig_node_tmp->ogm_cnt_lock);
-- bcast_own_sum_neigh =
-- orig_node_tmp->bcast_own_sum[if_incoming->if_num];
-+ if_num = neigh_node->if_incoming->if_num;
-+ sum_neigh = orig_node_tmp->bcast_own_sum[if_num];
- spin_unlock_bh(&orig_node_tmp->ogm_cnt_lock);
-
-- if (bcast_own_sum_orig >= bcast_own_sum_neigh)
-+ if (sum_orig >= sum_neigh)
- goto update_tt;
- }
-
---
-1.7.9.1
-
+++ /dev/null
-#
-# Copyright (C) 2008-2011 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_NAME:=batmand
-PKG_REV:=1439
-PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=2
-PKG_EXTRA_CFLAGS=-DDEBUG_MALLOC -DMEMORY_USAGE -DPROFILE_DATA -DREVISION_VERSION=\"\ rv$(PKG_REV)\"
-
-PKG_SOURCE_PROTO:=svn
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_SUBDIR:=$(if $(PKG_BRANCH),$(PKG_BRANCH),$(PKG_NAME))-$(PKG_VERSION)
-PKG_SOURCE_URL:=http://downloads.open-mesh.org/svn/batman/trunk/
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
-
-PKG_KMOD_BUILD_DIR:=$(PKG_BUILD_DIR)/batman/linux/modules
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/batmand/Default
- URL:=http://www.open-mesh.org/
- MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
-endef
-
-define Package/batmand
-$(call Package/batmand/Default)
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Routing and Redirection
- DEPENDS:=+libpthread +kmod-tun
- TITLE:=B.A.T.M.A.N. layer 3 routing daemon
-endef
-
-define Package/batmand/description
-B.A.T.M.A.N. layer 3 routing daemon
-endef
-
-define Package/vis
-$(call Package/batmand/Default)
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Routing and Redirection
- DEPENDS:=+libpthread
- TITLE:=visualization server for B.A.T.M.A.N. layer 3
-endef
-
-define Package/vis/description
-visualization server for B.A.T.M.A.N. layer 3
-endef
-
-define KernelPackage/batgat
-$(call Package/batmand/Default)
- SUBMENU:=Network Support
- DEPENDS:=+batmand @BROKEN
- TITLE:=B.A.T.M.A.N. gateway module
- FILES:=$(PKG_KMOD_BUILD_DIR)/batgat.$(LINUX_KMOD_SUFFIX)
- AUTOLOAD:=$(call AutoLoad,50,batgat)
-endef
-
-
-define KernelPackage/batgat/description
-Kernel gateway module for B.A.T.M.A.N. for better tunnel performance
-endef
-
-MAKE_BATMAND_ARGS += \
- EXTRA_CFLAGS='$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)' \
- CCFLAGS="$(TARGET_CFLAGS)" \
- OFLAGS="$(TARGET_CFLAGS)" \
- REVISION="$(PKG_REV)" \
- CC="$(TARGET_CC)" \
- NODEBUG=1 \
- UNAME="Linux" \
- INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
- STRIP="/bin/true" \
- batmand install
-
-MAKE_VIS_ARGS += \
- EXTRA_CFLAGS='$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)' \
- CCFLAGS="$(TARGET_CFLAGS)" \
- OFLAGS="$(TARGET_CFLAGS)" \
- REVISION="$(PKG_REV)" \
- CC="$(TARGET_CC)" \
- NODEBUG=1 \
- UNAME="Linux" \
- INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
- STRIP="/bin/true" \
- vis install
-
-MAKE_BATGAT_ARGS += \
- CROSS_COMPILE="$(TARGET_CROSS)" \
- ARCH="$(LINUX_KARCH)" \
- PATH="$(TARGET_PATH)" \
- SUBDIRS="$(PKG_KMOD_BUILD_DIR)" \
- LINUX_VERSION="$(LINUX_VERSION)" \
- REVISION="$(PKG_REV)" modules
-
-
-define Build/Configure
-endef
-
-ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_batmand),)
- BUILD_BATMAND := $(MAKE) -C $(PKG_BUILD_DIR)/batman $(MAKE_BATMAND_ARGS)
-endif
-
-ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_vis),)
- BUILD_VIS := $(MAKE) -C $(PKG_BUILD_DIR)/vis $(MAKE_VIS_ARGS)
-endif
-
-ifneq ($(DEVELOPER)$(CONFIG_PACKAGE_kmod-batgat),)
- BUILD_BATGAT := $(MAKE) -C "$(LINUX_DIR)" $(MAKE_BATGAT_ARGS)
-endif
-
-define Build/Compile
- $(BUILD_BATMAND)
- $(BUILD_VIS)
- cp $(PKG_KMOD_BUILD_DIR)/Makefile.kbuild $(PKG_KMOD_BUILD_DIR)/Makefile
- $(BUILD_BATGAT)
-endef
-
-define Package/batmand/install
- $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/batmand $(1)/usr/sbin/
- $(INSTALL_BIN) ./files/etc/init.d/batmand $(1)/etc/init.d
- $(INSTALL_DATA) ./files/etc/config/batmand $(1)/etc/config
-endef
-
-define Package/batmand/conffiles
-/etc/config/batmand
-endef
-
-define Package/vis/install
- $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/vis $(1)/usr/sbin/
- $(INSTALL_BIN) ./files/etc/init.d/vis $(1)/etc/init.d
- $(INSTALL_DATA) ./files/etc/config/vis $(1)/etc/config
-endef
-
-define Package/vis/conffiles
-/etc/config/vis
-endef
-
-$(eval $(call BuildPackage,batmand))
-$(eval $(call BuildPackage,vis))
-$(eval $(call KernelPackage,batgat))
+++ /dev/null
-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
-
+++ /dev/null
-config vis general
- option interface ath0
-
+++ /dev/null
-#!/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
-}
-
-
+++ /dev/null
-#!/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
-}
-
-
+++ /dev/null
----
- batman/linux/modules/gateway.c | 19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
---- batmand-r1439.orig/batman/linux/modules/gateway.c
-+++ batmand-r1439/batman/linux/modules/gateway.c
-@@ -29,6 +29,7 @@ static struct class *batman_class;
- static int batgat_open(struct inode *inode, struct file *filp);
- static int batgat_release(struct inode *inode, struct file *file);
- static int batgat_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg );
-+static long batgat_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg );
-
-
- static void udp_data_ready(struct sock *sk, int len);
-@@ -53,7 +54,11 @@ static int proc_clients_read(char *buf,
- static struct file_operations fops = {
- .open = batgat_open,
- .release = batgat_release,
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+ .unlocked_ioctl = batgat_ioctl_unlocked,
-+#else
- .ioctl = batgat_ioctl,
-+#endif
- };
-
-
-@@ -166,6 +171,20 @@ static int batgat_release(struct inode *
- }
-
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+#include <linux/smp_lock.h>
-+static long batgat_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg )
-+{
-+ int ret;
-+
-+ lock_kernel();
-+ ret = batgat_ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
-+ unlock_kernel();
-+
-+ return ret;
-+}
-+#endif
-+
- static int batgat_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg )
- {
- uint8_t tmp_ip[4];
+++ /dev/null
-#
-# Copyright (C) 2011 OpenWrt.org, bmx6.net
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-# $Id$
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=bmx6
-
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://git.bmx6.net/bmx6.git
-PKG_REV:=c3ef7d76292a765c5e578bd4113030dc34ee3b9a
-
-PKG_VERSION:=r2011031602
-
-#PKG_RELEASE:=1
-#PKG_INSTALL:=1 # this tries to install straight to /usr/sbin/bmx6
-
-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)
-
-include $(INCLUDE_DIR)/package.mk
-
-
-TARGET_CFLAGS += $(FPIC)
-
-#-DNO_TRAFFIC_DUMP -DNO_DYN_PLUGIN -DNO_DEBUG_DUMP -DNO_DEBUG_ALL -DNO_DEBUG_TRACK -DNO_DEBUG_SYS
-
-MAKE_ARGS += \
- EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DNO_DEBUG_ALL -DNO_DEBUG_DUMP" \
- EXTRA_LDFLAGS="-L$(STAGING_DIR)/usr/lib " \
- REVISION_VERSION="$(PKG_REV)" \
- CC="$(TARGET_CC)" \
- INSTALL_DIR="$(PKG_INSTALL_DIR)" \
- STRIP="/bin/true" \
- build_all
-
-
-define Package/bmx6/Default
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Routing and Redirection
- TITLE:=BMX6 layer 3 routing daemon
- URL:=http://bmx6.net/
- MAINTAINER:=Axel Neumann <neumann@cgws.de>
-endef
-
-define Package/bmx6/description
-BMX6 layer 3 routing daemon supporting IPv4, IPv6, and IPv4 over IPv6 - http://www.bmx6.net
-endef
-
-define Package/bmx6
- $(call Package/bmx6/Default)
- MENU:=1
-endef
-
-define Package/bmx6-uci-config
- $(call Package/bmx6/Default)
- DEPENDS:=bmx6 +libuci
- TITLE:=configuration plugin based on uci (recommended!)
-endef
-
-
-
-
-define Build/Configure
- mkdir -p $(PKG_INSTALL_DIR)
-endef
-
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
-endef
-
-
-define Package/bmx6/install
- $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/bmx6 $(1)/usr/sbin/bmx6
-endef
-
-
-define Package/bmx6-uci-config/conffiles
-/etc/config/bmx6
-endef
-
-
-define Package/bmx6-uci-config/install
- $(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_uci_config/bmx6_config.so $(1)/usr/lib/bmx6_config.so
- $(INSTALL_BIN) ./files/etc/init.d/bmx6 $(1)/etc/init.d/bmx6
- $(INSTALL_DATA) ./files/etc/config/bmx6 $(1)/etc/config/bmx6
-endef
-
-
-$(eval $(call BuildPackage,bmx6))
-$(eval $(call BuildPackage,bmx6-uci-config))
-
+++ /dev/null
-# for more options execute: bmx6 --help
-
-config 'bmx6' 'general'
-# option 'runtime_dir' '/var/run/bmx6'
-# option 'niit_source' '10.202.0.116'
-
-#config 'ip_version' 'ip_version'
-# option 'ip_version' '6' # default is 4
-# option 'throw_rules' '0'
-
-config 'dev' 'mesh_1'
- option 'dev' 'eth0.12'
-
-config 'dev' 'mesh_2'
- option 'dev' 'ath0.12'
-
-#config 'unicast_hna' 'my_global_prefix'
-# option 'unicast_hna' '2012:0:0:74:0:0:0:0/64'
-
-#config 'unicast_hna' 'niit6to4'
-# option 'unicast_hna' '0:0:0:0:0:ffff:10.202.0.116/128'
-
-
+++ /dev/null
-#!/bin/sh /etc/rc.common
-START=91
-
-BIN=/usr/sbin/bmx6
-CONF=/etc/config/bmx6
-PID=/var/run/bmx6/pid
-
-
-start() {
- #$BIN -f $CONF -d0 > /dev/null &
- start-stop-daemon -b -x $BIN -S -- -f $CONF
-}
-
-stop() {
- start-stop-daemon -p $PID -K
-}
-
-restart() {
- stop; sleep 3; start
-}
+++ /dev/null
-#
-# Copyright (C) 2008 Freifunk Leipzig
-# Copyright (C) 2008-2010 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=bmxd
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/axn/bmxd.git
-PKG_REV:=9c1d12b554dccd2efde249f5e44a7d4de59ce1a8
-PKG_VERSION:=r2012011001
-#PKG_RELEASE:=1
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
-
-PKG_EXTRA_CFLAGS:=-DNODEBUGALL
-
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/bmxd/Default
- URL:=http://www.bmx6.net/
- MAINTAINER:=Axel Neumann <neumann@cgws.de>
-endef
-
-define Package/bmxd
-$(call Package/bmxd/Default)
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Routing and Redirection
- DEPENDS:=+kmod-tun
- TITLE:=B.a.t.M.a.n. eXperimental (BMX) layer 3 routing daemon
-endef
-
-define Package/bmxd/conffiles
-/etc/config/bmxd
-endef
-
-
-define Package/bmxd/description
-B.a.t.M.a.n. eXperimental (BMX) layer 3 routing daemon
-endef
-
-MAKE_ARGS += \
- EXTRA_CFLAGS="$(TARGET_CFLAGS) $(PKG_EXTRA_CFLAGS)" \
- CCFLAGS="$(TARGET_CFLAGS)" \
- OFLAGS="$(TARGET_CFLAGS)" \
- REVISION="$(PKG_REV)" \
- CC="$(TARGET_CC)" \
- NODEBUG=1 \
- UNAME="Linux" \
- INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
- STRIP="/bin/true" \
- bmxd install
-
-define Build/Compile
- mkdir -p $(PKG_INSTALL_DIR)/usr/sbin
- $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
-endef
-
-define Package/bmxd/install
- $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/bmxd $(1)/usr/sbin/bmxd
- $(INSTALL_BIN) ./files/etc/init.d/bmxd $(1)/etc/init.d
- $(INSTALL_DATA) ./files/etc/config/bmxd $(1)/etc/config
-endef
-
-$(eval $(call BuildPackage,bmxd))
+++ /dev/null
-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'
+++ /dev/null
-#!/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
-}
+++ /dev/null
-#
-# 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.3
-PKG_RELEASE:=3
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://www.olsr.org/releases/0.6
-
-PKG_MD5SUM:=b28ed2e3dc6c529ab690f1c805ad32a2
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-TARGET_CFLAGS += $(FPIC)
-
-define Package/olsrd/template
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Routing and Redirection
- MAINTAINER:=Saverio Proto <zioproto@gmail.com>
- TITLE:=OLSR (Optimized Link State Routing) daemon
- URL:=http://www.olsr.org/
-endef
-
-define Package/olsrd
- $(call Package/olsrd/template)
- MENU:=1
- DEPENDS:=+libpthread
-endef
-
-define Package/olsrd/conffiles
-/etc/config/olsrd
-endef
-
-define Package/olsrd-mod-arprefresh
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Kernel ARP cache refresh plugin
-endef
-
-define Package/olsrd-mod-dot-draw
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Dot topology information plugin
-endef
-
-define Package/olsrd-mod-bmf
- $(call Package/olsrd/template)
- DEPENDS:=olsrd +kmod-tun
- TITLE:=Basic multicast forwarding plugin
-endef
-
-define Package/olsrd-mod-dyn-gw
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Dynamic internet gateway plugin
-endef
-
-define Package/olsrd-mod-dyn-gw-plain
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Dynamic internet gateway plain plugin
-endef
-
-define Package/olsrd-mod-httpinfo
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Small informative web server plugin
-endef
-
-define Package/olsrd-mod-jsoninfo
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Small informative plugin with JSON output
-endef
-
-define Package/olsrd-mod-mdns
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=MDNS/Zeroconf/Bonjour packet distribution
-endef
-
-define Package/olsrd-mod-nameservice
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Lightweight hostname resolver plugin
-endef
-
-define Package/olsrd-mod-p2pd
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=Peer to Peer Discovery plugin
-endef
-
-
-define Package/olsrd-mod-pgraph
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=output network topology for pgraph
-endef
-
-define Package/olsrd-mod-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-tas
- $(call Package/olsrd/template)
- DEPENDS:=olsrd
- TITLE:=tas - tiny appliation server programming example
-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-secure/conffiles
-/etc/olsrd.d/olsrd_secure_key
-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 quagga secure tas 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-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-tas/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/tas/olsrd_tas.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-quagga))
-$(eval $(call BuildPackage,olsrd-mod-secure))
-$(eval $(call BuildPackage,olsrd-mod-tas))
-$(eval $(call BuildPackage,olsrd-mod-txtinfo))
-$(eval $(call BuildPackage,olsrd-mod-watchdog))
+++ /dev/null
-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'
+++ /dev/null
-#!/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='
-'
-
-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 package="$1"
- validate_varname "$package" || package=
- local config="$2"
- validate_varname "$config" || config=
- local option="$3"
- validate_varname "$option" || option=
-
- echo -n "Warning: Invalid value" 1>&2
-
- if [ -n "$package" -a -n "$config" ]; then
- echo -n " in option '$package.$config${option:+.}$option'" 1>&2
- fi
-
- echo ", skipped" 1>&2
-
- 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 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
- echo "Info: mdns Interface '$value' ifname '$ifname' found" 1>&2
- else
- echo "Warning: mdns Interface '$value' not found, skipped" 1>&2
- 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() {
- 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
-
- for schema_entry in $schema; do
- default="${schema_entry#*[=]}"
- [ "$default" = "$schema_entry" ] && default=
- option="${schema_entry%%[=]*}"
- IFS=':'
- set -- $option
- unset IFS
- option="$1"
- option_type="$2"
- validate_varname "$option" || continue
- [ -z "$option_type" ] || validate_varname "$option_type" || continue
- [ "$option_type" = internal ] && continue
- config_get value "$cfg" "$option"
-
- 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 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
- echo "Warning: Plugin library '$library' not found, skipped" 1>&2
- 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 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
- echo "Warning: Interface '$interface' not found, skipped" 1>&2
- 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
-}
-
-olsrd_setup_smartgw_rules() {
- # Check if ipip is installed
- [ ! -e /etc/modules.d/[0-9]*-ipip ] && echo "Warning: kmod-ipip is missing. SmartGateway will not work until you install it."
-
- wanifnames=$(ip r l e 0/0 t all | sed -e 's/^.* dev //' |cut -d " " -f 1 | sort | uniq)
- nowan=0
- if [ -z "$wanifnames" ]; then
- nowan=1
- 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
- echo "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() {
- echo "${initscript}:" "$@" 1>&2
-}
-
-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 already is an IPv6 instance of olsrd running ($(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 already is an IPv4 instance of olsrd running ($(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 already is an IPv4 instance of olsrd running ($(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
-}
+++ /dev/null
-1234567890123456
\ No newline at end of file
+++ /dev/null
-From f4d250ad4fad5fcfe5b5feaac3f3e121adef3fba Mon Sep 17 00:00:00 2001
-From: Jo-Philipp Wich <jow@openwrt.org>
-Date: Fri, 22 Jun 2012 03:17:59 +0200
-Subject: [PATCH] olsrd: fix stack corruption in net_output()
-
-The net_output() function indirectly uses the stack variables dst and dst6
-outside of the scope they're declared in, this might leads to olsr_sendto()
-being called with a corrupted destination sockaddr_in.
-
-This failure condition can be observed in the log, olsrd will continuosly
-print "sendto(v4): Invalid Argument" or a similar message. On ARM it has been
-reported to result in "Unsupported Address Family".
-
-This bug became apparant on a custon OpenWrt x86_64 uClibc target using the
-Linaro GCC 4.7-2012.04 compiler, it has been reported for an unspecified ARM
-target as well.
-
-The offending code seems to be unchanged since 2008 and it does not cause
-issues on 32bit systems and/or with older (Linaro) GCC versions, but the
-compiler used in our tests seems to perform more aggressive optimizations
-leading to a stack corruption.
----
- src/net_olsr.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/src/net_olsr.c
-+++ b/src/net_olsr.c
-@@ -336,6 +336,8 @@ net_output(struct interface *ifp)
- {
- struct sockaddr_in *sin = NULL;
- struct sockaddr_in6 *sin6 = NULL;
-+ struct sockaddr_in dst;
-+ struct sockaddr_in6 dst6;
- struct ptf *tmp_ptf_list;
- union olsr_packet *outmsg;
- int retval;
-@@ -354,7 +356,6 @@ net_output(struct interface *ifp)
- outmsg->v4.olsr_packlen = htons(ifp->netbuf.pending);
-
- if (olsr_cnf->ip_version == AF_INET) {
-- struct sockaddr_in dst;
- /* IP version 4 */
- sin = (struct sockaddr_in *)&ifp->int_broadaddr;
-
-@@ -365,7 +366,6 @@ net_output(struct interface *ifp)
- if (sin->sin_port == 0)
- sin->sin_port = htons(olsr_cnf->olsrport);
- } else {
-- struct sockaddr_in6 dst6;
- /* IP version 6 */
- sin6 = (struct sockaddr_in6 *)&ifp->int6_multaddr;
- /* Copy sin */