[packages_10.03.2] batman-adv: backport 2012.0.0 version from trunk
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 5 Feb 2012 18:35:43 +0000 (18:35 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 5 Feb 2012 18:35:43 +0000 (18:35 +0000)
SVN-Revision: 30312

net/batman-adv/Makefile
net/batman-adv/files/etc/config/batman-adv
net/batman-adv/files/etc/init.d/batman-adv
net/batman-adv/files/lib/batman-adv/config.sh [new file with mode: 0644]

index 53d724e5c0bdcbfe6f5ac613845daad291092635..8547b31256c9df825fafea9b06ef6dac72919f5c 100644 (file)
@@ -1,24 +1,24 @@
 #
-# Copyright (C) 2010 OpenWrt.org
+# Copyright (C) 2010-2012 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:=2011.2.0
-PKG_MD5SUM:=1ef45406201913cc08ac01e47ad2d034
-BATCTL_MD5SUM:=69e7fe915f2c1867b74e6efe7c627dd5
+PKG_VERSION:=2011.4.0
+BATCTL_VERSION:=2011.4.0
+PKG_MD5SUM:=3987d693bd26d8057506b542c3635910
+BATCTL_MD5SUM:=325b25dbb8261f7fa19c6e1d9bfba6e1
 
 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_TOOL_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/batctl-$(PKG_VERSION)
+PKG_BATCTL_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/batctl-$(BATCTL_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/kernel.mk
@@ -27,7 +27,7 @@ define KernelPackage/batman-adv
   URL:=http://www.open-mesh.org/
   MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
   SUBMENU:=Network Support
-  DEPENDS:=@!LINUX_2_4
+  DEPENDS:=@!LINUX_2_4 +kmod-crc16
   TITLE:=B.A.T.M.A.N. Adv
   FILES:=$(PKG_BUILD_DIR)/batman-adv.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,50,batman-adv)
@@ -61,27 +61,28 @@ MAKE_BATCTL_ARGS += \
        CC="$(TARGET_CC)" \
        NODEBUG=1 \
        UNAME="Linux" \
-       INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
+       DESTDIR="$(PKG_INSTALL_DIR)" \
        STRIP="/bin/true" \
        batctl install
 
 ifneq ($(DEVELOPER)$(CONFIG_KMOD_BATMAN_ADV_BATCTL),)
 define Download/batctl
-  FILE:=batctl-$(PKG_VERSION).tar.gz
+  FILE:=batctl-$(BATCTL_VERSION).tar.gz
   URL:=$(PKG_SOURCE_URL)
   MD5SUM:=$(BATCTL_MD5SUM)
 endef
 $(eval $(call Download,batctl))
 
-EXTRACT_BATCTL = tar xzf "$(DL_DIR)/batctl-$(PKG_VERSION).tar.gz" -C "$(BUILD_DIR)/$(PKG_NAME)"
+EXTRACT_BATCTL = tar xzf "$(DL_DIR)/batctl-$(BATCTL_VERSION).tar.gz" -C "$(BUILD_DIR)/$(PKG_NAME)"
 PATCH_BATCTL = $(call Build/DoPatch,"$(PKG_BATCTL_BUILD_DIR)","$(PATCH_DIR)","*batctl*")
-BUILD_BATCTL = $(MAKE) -C $(PKG_TOOL_BUILD_DIR) $(MAKE_BATCTL_ARGS)
+BUILD_BATCTL = $(MAKE) -C $(PKG_BATCTL_BUILD_DIR) $(MAKE_BATCTL_ARGS)
 endif
 
+KPATCH ?= $(PATCH)
 define Build/DoPatch
        @if [ -d "$(2)" ]; then \
                if [ "$$$$(ls $(2) | grep -Ec $(3))" -gt 0 ]; then \
-                       $(PATCH) "$(1)" "$(2)" "$(3)"; \
+                       $(KPATCH) "$(1)" "$(2)" "$(3)"; \
                fi; \
        fi
 endef
@@ -104,16 +105,18 @@ endef
 
 ifneq ($(DEVELOPER)$(CONFIG_KMOD_BATMAN_ADV_BATCTL),)
 define KernelPackage/batman-adv/install
-       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d $(1)/lib/batman-adv
        $(INSTALL_BIN) ./files/etc/init.d/batman-adv $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/lib/batman-adv/config.sh $(1)/lib/batman-adv
        $(INSTALL_DATA) ./files/etc/config/batman-adv $(1)/etc/config
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/batctl $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/sbin/batctl $(1)/usr/sbin/
 endef
 else
 define KernelPackage/batman-adv/install
-       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d $(1)/lib/batman-adv
        $(INSTALL_BIN) ./files/etc/init.d/batman-adv $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/lib/batman-adv/config.sh $(1)/lib/batman-adv
        $(INSTALL_DATA) ./files/etc/config/batman-adv $(1)/etc/config
 endef
 endif
index 31ef797fbb31cd271fe36e50d9ca367d4b4a5408..414b119663dd338cc4104e62c746723d274f44cb 100644 (file)
@@ -2,6 +2,7 @@
 config 'mesh' 'bat0'
        option 'interfaces' 'mesh'
        option 'aggregated_ogms'
+       option 'ap_isolation'
        option 'bonding'
        option 'fragmentation'
        option 'gw_bandwidth'
index a6a85000d484e6d28039f7ab9d2e47ec0eeb80e0..f0f678904ecc494fa81f8119f3dd6bdfe0719699 100644 (file)
@@ -3,101 +3,7 @@
 
 START=90
 
-is_module_loaded() {
-
-       if [ ! -d "/sys/module/batman_adv" ]; then
-               echo "batman-adv module directory not found - was the kernel module loaded ?" >&2
-               return 0
-       fi
-
-       return 1
-}
-
-start_mesh () {
-       local meshif="$1"
-       local interfaces aggregated_ogms bonding fragmentation gw_bandwidth gw_mode gw_sel_class log_level orig_interval vis_mode
-
-       is_module_loaded
-       [ $? -ne 1 ] && return
-
-       config_get interfaces "$meshif" interfaces
-       config_get aggregated_ogms "$meshif" aggregated_ogms
-       config_get bonding "$meshif" bonding
-       config_get fragmentation "$meshif" fragmentation
-       config_get gw_bandwidth "$meshif" gw_bandwidth
-       config_get gw_mode "$meshif" gw_mode
-       config_get gw_sel_class "$meshif" gw_sel_class
-       config_get log_level "$meshif" log_level
-       config_get orig_interval "$meshif" orig_interval
-       config_get vis_mode "$meshif" vis_mode
-
-       if [ "$interfaces" = "" ]; then
-               echo Error, you must specify at least a network interface
-               return
-       fi
-       
-       for interface in $interfaces
-          do
-             ifname=$(uci -P /var/state get network.$interface.ifname 2>&-)
-             [ ! -f "/sys/class/net/$ifname/batman_adv/mesh_iface" ] && {
-                ifname=${interface}
-                [ ! -f "/sys/class/net/$ifname/batman_adv/mesh_iface" ] && echo "Can't add interface $ifname - ignoring" && continue
-             }
-
-             echo $meshif > /sys/class/net/$ifname/batman_adv/mesh_iface
-          done
-
-       if [ $orig_interval ]; then
-               echo $orig_interval > /sys/class/net/$meshif/mesh/orig_interval
-       fi
-
-       if [ $log_level ]; then
-               echo $log_level > /sys/class/net/$meshif/mesh/log_level 2>&-
-       fi
-
-       if [ $aggregated_ogms ]; then
-               echo $aggregated_ogms > /sys/class/net/$meshif/mesh/aggregated_ogms
-       fi
-       
-       if [ $bonding ]; then
-               echo $bonding > /sys/class/net/$meshif/mesh/bonding
-       fi
-       
-       if [ $fragmentation ]; then
-               echo $fragmentation > /sys/class/net/$meshif/mesh/fragmentation
-       fi
-       
-       if [ $gw_bandwidth ]; then
-               echo $gw_bandwidth > /sys/class/net/$meshif/mesh/gw_bandwidth
-       fi
-       
-       if [ $gw_mode ]; then 
-               echo $gw_mode > /sys/class/net/$meshif/mesh/gw_mode
-       fi
-       
-       if [ $gw_sel_class ]; then
-               echo $gw_sel_class > /sys/class/net/$meshif/mesh/gw_sel_class
-       fi
-
-       if [ $vis_mode ]; then
-               echo $vis_mode > /sys/class/net/$meshif/mesh/vis_mode
-       fi
-}
-
-stop_mesh() {
-       local meshif="$1"
-
-       is_module_loaded
-       [ $? -ne 1 ] && return
-
-       for iface in $(ls /sys/class/net/*)
-          do
-                [ ! -f "$iface/batman_adv/mesh_iface" ] && continue
-                [ "$(head -1 $iface/batman_adv/mesh_iface)" != "$meshif" ] && continue
-
-                echo "none" > $iface/batman_adv/mesh_iface
-          done
-}
+. /lib/batman-adv/config.sh
 
 # can also be used with "batman-adv start bat0"
 start() {
@@ -120,5 +26,3 @@ stop () {
                config_foreach stop_mesh mesh
        fi
 }
-
-
diff --git a/net/batman-adv/files/lib/batman-adv/config.sh b/net/batman-adv/files/lib/batman-adv/config.sh
new file mode 100644 (file)
index 0000000..58a01d2
--- /dev/null
@@ -0,0 +1,103 @@
+#!/bin/sh
+# Copyright (C) 2011 OpenWrt.org
+
+is_module_loaded() {
+
+       if [ ! -d "/sys/module/batman_adv" ]; then
+               echo "batman-adv module directory not found - was the kernel module loaded ?" >&2
+               return 0
+       fi
+
+       return 1
+}
+
+start_mesh () {
+       local meshif="$1"
+       local interfaces aggregated_ogms ap_isolation bonding fragmentation gw_bandwidth gw_mode gw_sel_class log_level orig_interval vis_mode
+
+       is_module_loaded
+       [ $? -ne 1 ] && return
+
+       config_get interfaces "$meshif" interfaces
+       config_get aggregated_ogms "$meshif" aggregated_ogms
+       config_get ap_isolation "$meshif" ap_isolation
+       config_get bonding "$meshif" bonding
+       config_get fragmentation "$meshif" fragmentation
+       config_get gw_bandwidth "$meshif" gw_bandwidth
+       config_get gw_mode "$meshif" gw_mode
+       config_get gw_sel_class "$meshif" gw_sel_class
+       config_get log_level "$meshif" log_level
+       config_get orig_interval "$meshif" orig_interval
+       config_get vis_mode "$meshif" vis_mode
+
+       if [ "$interfaces" = "" ]; then
+               echo Error, you must specify at least a network interface
+               return
+       fi
+       
+       for interface in $interfaces
+          do
+             ifname=$(uci -P /var/state get network.$interface.ifname 2>&-)
+             [ ! -f "/sys/class/net/$ifname/batman_adv/mesh_iface" ] && {
+                ifname=${interface}
+                [ ! -f "/sys/class/net/$ifname/batman_adv/mesh_iface" ] && echo "Can't add interface $ifname - ignoring" && continue
+             }
+
+             echo $meshif > /sys/class/net/$ifname/batman_adv/mesh_iface
+          done
+
+       if [ $orig_interval ]; then
+               echo $orig_interval > /sys/class/net/$meshif/mesh/orig_interval
+       fi
+
+       if [ $log_level ]; then
+               echo $log_level > /sys/class/net/$meshif/mesh/log_level 2>&-
+       fi
+
+       if [ $aggregated_ogms ]; then
+               echo $aggregated_ogms > /sys/class/net/$meshif/mesh/aggregated_ogms
+       fi
+       
+       if [ $ap_isolation ]; then
+               echo $ap_isolation > /sys/class/net/$meshif/mesh/ap_isolation
+       fi
+       
+       if [ $bonding ]; then
+               echo $bonding > /sys/class/net/$meshif/mesh/bonding
+       fi
+       
+       if [ $fragmentation ]; then
+               echo $fragmentation > /sys/class/net/$meshif/mesh/fragmentation
+       fi
+       
+       if [ $gw_bandwidth ]; then
+               echo $gw_bandwidth > /sys/class/net/$meshif/mesh/gw_bandwidth
+       fi
+       
+       if [ $gw_mode ]; then 
+               echo $gw_mode > /sys/class/net/$meshif/mesh/gw_mode
+       fi
+       
+       if [ $gw_sel_class ]; then
+               echo $gw_sel_class > /sys/class/net/$meshif/mesh/gw_sel_class
+       fi
+
+       if [ $vis_mode ]; then
+               echo $vis_mode > /sys/class/net/$meshif/mesh/vis_mode
+       fi
+}
+
+stop_mesh() {
+       local meshif="$1"
+
+       is_module_loaded
+       [ $? -ne 1 ] && return
+
+       for iface in $(ls /sys/class/net/*)
+          do
+                [ ! -f "$iface/batman_adv/mesh_iface" ] && continue
+                [ "$(head -1 $iface/batman_adv/mesh_iface)" != "$meshif" ] && continue
+
+                echo "none" > $iface/batman_adv/mesh_iface
+          done
+}