* [B.A.T.M.A.N.] [PATCH 1/4] openwrt routing feed: add three ordex patches for anti-panic, anti-leaking
@ 2014-02-13 13:54 Russell Senior
2014-02-13 14:01 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Russell Senior
0 siblings, 1 reply; 7+ messages in thread
From: Russell Senior @ 2014-02-13 13:54 UTC (permalink / raw)
To: b.a.t.m.a.n
These three patches successfully stopped panics and memory leaks for
me, tested during some extended IRC sessions. Thanks Antonio!
This patch adds them to the OpenWrt routing feed patches directory for batman-adv.
Signed-off-by: Russell Senior <russell@personaltelco.net>
---
| 38 ++++++++++
.../0010-batman-adv-byte-order-affects-crc.patch | 83 ++++++++++++++++++++++
.../patches/0011-batman-adv-memory-leak-fix.patch | 39 ++++++++++
3 files changed, 160 insertions(+)
create mode 100644 batman-adv/patches/0008-batman-adv-set-mac_header-when-forging-an-ARP-reply-.patch
create mode 100644 batman-adv/patches/0010-batman-adv-byte-order-affects-crc.patch
create mode 100644 batman-adv/patches/0011-batman-adv-memory-leak-fix.patch
--git a/batman-adv/patches/0008-batman-adv-set-mac_header-when-forging-an-ARP-reply-.patch b/batman-adv/patches/0008-batman-adv-set-mac_header-when-forging-an-ARP-reply-.patch
new file mode 100644
index 0000000..67c6dde
--- /dev/null
+++ b/batman-adv/patches/0008-batman-adv-set-mac_header-when-forging-an-ARP-reply-.patch
@@ -0,0 +1,38 @@
+From 9cfee06f7350c28881b5cb0bfa2901c3b726eb1a Mon Sep 17 00:00:00 2001
+From: Antonio Quartulli <antonio@meshcoding.com>
+Date: Fri, 31 Jan 2014 00:51:50 +0100
+Subject: [PATCH 8/9] batman-adv: set mac_header when forging an ARP reply in
+ DAT
+
+In the TX path we now have functions that rely on the
+skb->mac_header field. DAT does not set such field when
+creating its own ARP packets thus leading to wrong memory
+access.
+
+Fix it by always setting the mac_header after having forged
+the ARP packet.
+
+Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
+---
+ distributed-arp-table.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/distributed-arp-table.c b/distributed-arp-table.c
+index 6da587a..0b69b61 100644
+--- a/distributed-arp-table.c
++++ b/distributed-arp-table.c
+@@ -1028,6 +1028,11 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
+ if (!skb_new)
+ goto out;
+
++ /* the rest of the TX path assumes that the mac_header offset pointing
++ * to the inner Ethernet header has been set, therefore reset it now.
++ */
++ skb_reset_mac_header(skb_new);
++
+ if (vid & BATADV_VLAN_HAS_TAG)
+ skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
+ vid & VLAN_VID_MASK);
+--
+1.8.5.3
+
diff --git a/batman-adv/patches/0010-batman-adv-byte-order-affects-crc.patch b/batman-adv/patches/0010-batman-adv-byte-order-affects-crc.patch
new file mode 100644
index 0000000..577d9b7
--- /dev/null
+++ b/batman-adv/patches/0010-batman-adv-byte-order-affects-crc.patch
@@ -0,0 +1,83 @@
+From: Antonio Quartulli <antonio@meshcoding.com>
+Date: Tue, 11 Feb 2014 17:05:06 +0100
+Message-Id: <1392134707-2318-1-git-send-email-antonio@meshcoding.com>
+Subject: [B.A.T.M.A.N.] [PATCH maint 1/2] batman-adv: fix TT CRC computation
+ by ensuring byte order
+
+From: Antonio Quartulli <antonio@open-mesh.com>
+
+When computing the CRC on a 2byte variable the order of
+the bytes obviously alters the final result. This means
+that computing the CRC over the same value on two archs
+having different endianess leads to different numbers.
+
+The global and local translation table CRC computation
+routine makes this mistake while processing the clients
+VIDs. The result is a continuous CRC mismatching between
+nodes having different endianess.
+
+Fix this by converting the VID to Network Order before
+processing it. This guarantees that every node uses the same
+byte order.
+
+Introduced by 21a57f6e7a3b4455dfe68ee07a7b901d9e7f200b
+("batman-adv: make the TT CRC logic VLAN specific")
+
+Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
+---
+ translation-table.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/translation-table.c b/translation-table.c
+index 05c2a9b..24e3267 100644
+--- a/translation-table.c
++++ b/translation-table.c
+@@ -1961,6 +1961,7 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
+ struct hlist_head *head;
+ uint32_t i, crc_tmp, crc = 0;
+ uint8_t flags;
++ __be16 tmp_vid;
+
+ for (i = 0; i < hash->size; i++) {
+ head = &hash->table[i];
+@@ -1997,8 +1998,11 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
+ orig_node))
+ continue;
+
+- crc_tmp = crc32c(0, &tt_common->vid,
+- sizeof(tt_common->vid));
++ /* use network order to read the VID: this ensures that
++ * every node reads the bytes in the same order.
++ */
++ tmp_vid = htons(tt_common->vid);
++ crc_tmp = crc32c(0, &tmp_vid, sizeof(tmp_vid));
+
+ /* compute the CRC on flags that have to be kept in sync
+ * among nodes
+@@ -2032,6 +2036,7 @@ static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv,
+ struct hlist_head *head;
+ uint32_t i, crc_tmp, crc = 0;
+ uint8_t flags;
++ __be16 tmp_vid;
+
+ for (i = 0; i < hash->size; i++) {
+ head = &hash->table[i];
+@@ -2050,8 +2055,11 @@ static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv,
+ if (tt_common->flags & BATADV_TT_CLIENT_NEW)
+ continue;
+
+- crc_tmp = crc32c(0, &tt_common->vid,
+- sizeof(tt_common->vid));
++ /* use network order to read the VID: this ensures that
++ * every node reads the bytes in the same order.
++ */
++ tmp_vid = htons(tt_common->vid);
++ crc_tmp = crc32c(0, &tmp_vid, sizeof(tmp_vid));
+
+ /* compute the CRC on flags that have to be kept in sync
+ * among nodes
+--
+1.8.5.3
+
+
+
diff --git a/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch b/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch
new file mode 100644
index 0000000..c991d5d
--- /dev/null
+++ b/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch
@@ -0,0 +1,39 @@
+From: Antonio Quartulli <antonio@meshcoding.com>
+To: b.a.t.m.a.n@lists.open-mesh.org
+Date: Tue, 11 Feb 2014 17:05:07 +0100
+Subject: [B.A.T.M.A.N.] [PATCH maint 2/2] batman-adv: free skb on TVLV
+ parsing success
+
+From: Antonio Quartulli <antonio@open-mesh.com>
+
+When the TVLV parsing routine succeed the skb is left
+untouched thus leading to a memory leak.
+
+Fix this by consuming the skb in case of success.
+
+Introduced by 0b6aa0d43767889eeda43a132cf5e73df4e63bf2
+("batman-adv: tvlv - basic infrastructure")
+
+Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
+---
+ routing.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/routing.c b/routing.c
+index f7579d0..71bf698 100644
+--- a/routing.c
++++ b/routing.c
+@@ -1063,6 +1063,8 @@ int batadv_recv_unicast_tvlv(struct sk_buff *skb,
+
+ if (ret != NET_RX_SUCCESS)
+ ret = batadv_route_unicast_packet(skb, recv_if);
++ else
++ consume_skb(skb);
+
+ return ret;
+ }
+--
+1.8.5.3
+
+
+
--
1.8.1.2
--
Russell Senior, President
russell@personaltelco.net
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages
2014-02-13 13:54 [B.A.T.M.A.N.] [PATCH 1/4] openwrt routing feed: add three ordex patches for anti-panic, anti-leaking Russell Senior
@ 2014-02-13 14:01 ` Russell Senior
2014-02-13 14:14 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments Russell Senior
2014-02-13 15:39 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Marek Lindner
0 siblings, 2 replies; 7+ messages in thread
From: Russell Senior @ 2014-02-13 14:01 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
Creates a new package, batctl, split out from the batman-adv package.
Simplifies the Makefiles, allows QUILT patch management to work,
removes the quirky naming requirement for patches. The batctl package
is a dependency of kmod-batman-adv, retaining the existing dependency
relationship.
Signed-off-by: Russell Senior <russell@personaltelco.net>
---
batctl/Makefile | 66 +++++++++++++++++
batman-adv/Config.in | 9 ---
batman-adv/Makefile | 84 +++-------------------
.../patches/0011-batman-adv-memory-leak-fix.patch | 15 ++--
4 files changed, 80 insertions(+), 94 deletions(-)
create mode 100644 batctl/Makefile
diff --git a/batctl/Makefile b/batctl/Makefile
new file mode 100644
index 0000000..7a34957
--- /dev/null
+++ b/batctl/Makefile
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2010-2014 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:=batctl
+PKG_VERSION:=2014.0.0
+PKG_RELEASE:=2
+PKG_MD5SUM:=b0bcf29fef80ddcc33769e13f5937d0a
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/batctl
+ URL:=http://www.open-mesh.org/
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=B.A.T.M.A.N. Advanced user space configuration tool batctl
+ MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
+endef
+
+define Package/batctl/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 user space configuration &
+management tool batctl.
+endef
+
+TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_LDFLAGS += -Wl,--gc-sections
+
+# Link-time optimization allows to move parts of the optimization from the single
+# source file to the global source view. This is done by emitting the GIMPLE
+# representation in each object file and analyzing it again during the link step.
+
+TARGET_CFLAGS += -flto
+TARGET_LDFLAGS += -fuse-linker-plugin
+
+MAKE_BATCTL_ENV += \
+ CPPFLAGS="$(TARGET_CPPFLAGS)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)"
+
+MAKE_BATCTL_ARGS += \
+ REVISION="" \
+ CC="$(TARGET_CC)" \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ batctl install
+
+
+define Build/compile
+ $(MAKE_BATCTL_ENV) $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_BATCTL_ARGS)
+endef
+
+define Package/batctl/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,batctl))
diff --git a/batman-adv/Config.in b/batman-adv/Config.in
index 1330525..160d3a3 100644
--- a/batman-adv/Config.in
+++ b/batman-adv/Config.in
@@ -18,12 +18,3 @@ config KMOD_BATMAN_ADV_NC
bool "enable network coding [requires promisc mode support]"
depends on PACKAGE_kmod-batman-adv
default n
-
-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/batman-adv/Makefile b/batman-adv/Makefile
index 4bfbe54..c5c7625 100644
--- a/batman-adv/Makefile
+++ b/batman-adv/Makefile
@@ -1,35 +1,29 @@
#
-# Copyright (C) 2010 OpenWrt.org
+# Copyright (C) 2010-2014 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
+include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=batman-adv
-
PKG_VERSION:=2014.0.0
-BATCTL_VERSION:=2014.0.0
-PKG_RELEASE:=1
-PKG_MD5SUM:=8d58ecaede17dc05aab1b549dc09fa7d
-BATCTL_MD5SUM:=b0bcf29fef80ddcc33769e13f5937d0a
+PKG_RELEASE:=2
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)
+PKG_MD5SUM:=8d58ecaede17dc05aab1b549dc09fa7d
+PKG_CAT:=zcat
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_BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-crypto-core +kmod-crypto-crc32c +kmod-lib-crc32c +libc
+ DEPENDS:=+KMOD_BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-crypto-core +kmod-crypto-crc32c +kmod-lib-crc32c +libc +batctl
TITLE:=B.A.T.M.A.N. Adv
FILES:=$(PKG_BUILD_DIR)/batman-adv.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,50,batman-adv)
@@ -38,8 +32,7 @@ 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.
+version $(PKG_VERSION) of the kernel module.
endef
define KernelPackage/batman-adv/config
@@ -60,75 +53,16 @@ MAKE_BATMAN_ADV_ARGS += \
CONFIG_BATMAN_ADV_NC=$(if $(CONFIG_KMOD_BATMAN_ADV_NC),y,n) \
REVISION="" all
-# The linker can identify unused sections of a binary when each symbol is stored
-# in a separate section. This mostly removes unused linker sections and reduces
-# the size by ~3% on mipsel.
-
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -Wl,--gc-sections
-
-# Link-time optimization allows to move parts of the optimization from the single
-# source file to the global source view. This is done by emitting the GIMPLE
-# representation in each object file and analyzing it again during the link step.
-
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -fuse-linker-plugin
-
-MAKE_BATCTL_ENV += \
- CPPFLAGS="$(TARGET_CPPFLAGS)" \
- CFLAGS="$(TARGET_CFLAGS)" \
- LDFLAGS="$(TARGET_LDFLAGS)"
-
-MAKE_BATCTL_ARGS += \
- REVISION="" \
- CC="$(TARGET_CC)" \
- DESTDIR="$(PKG_INSTALL_DIR)" \
- 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_BATCTL_ENV) $(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/Prepare
$(call Build/Prepare/Default)
- $(SED) '/#define _NET_BATMAN_ADV_MAIN_H_/a\#undef CONFIG_MODULE_STRIPPED' \
- $(PKG_BUILD_DIR)/main.h
+ $(SED) '/#define _NET_BATMAN_ADV_MAIN_H_/a\#undef CONFIG_MODULE_STRIPPED' $(PKG_BUILD_DIR)/main.h
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
@@ -136,7 +70,7 @@ define KernelPackage/batman-adv/install
$(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/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch b/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch
index c991d5d..d8fe56e 100644
--- a/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch
+++ b/batman-adv/patches/0011-batman-adv-memory-leak-fix.patch
@@ -19,11 +19,11 @@ Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
routing.c | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/routing.c b/routing.c
-index f7579d0..71bf698 100644
---- a/routing.c
-+++ b/routing.c
-@@ -1063,6 +1063,8 @@ int batadv_recv_unicast_tvlv(struct sk_buff *skb,
+Index: batman-adv-2014.0.0/routing.c
+===================================================================
+--- batman-adv-2014.0.0.orig/routing.c
++++ batman-adv-2014.0.0/routing.c
+@@ -1063,6 +1063,8 @@ int batadv_recv_unicast_tvlv(struct sk_b
if (ret != NET_RX_SUCCESS)
ret = batadv_route_unicast_packet(skb, recv_if);
@@ -32,8 +32,3 @@ index f7579d0..71bf698 100644
return ret;
}
---
-1.8.5.3
-
-
-
--
1.8.1.2
--
Russell Senior, President
russell@personaltelco.net
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments
2014-02-13 14:01 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Russell Senior
@ 2014-02-13 14:14 ` Russell Senior
2014-02-13 14:23 ` [B.A.T.M.A.N.] [PATCH 4/4] openwrt routing feed: batctl: " Russell Senior
2014-02-13 15:01 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: " Russell Senior
2014-02-13 15:39 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Marek Lindner
1 sibling, 2 replies; 7+ messages in thread
From: Russell Senior @ 2014-02-13 14:14 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
Removes what appear to be unused and/or unnecessary environment
variables passed to make.
Signed-off-by: Russell Senior <russell@personaltelco.net>
---
batman-adv/Makefile | 5 -----
1 file changed, 5 deletions(-)
diff --git a/batman-adv/Makefile b/batman-adv/Makefile
index c5c7625..1344198 100644
--- a/batman-adv/Makefile
+++ b/batman-adv/Makefile
@@ -40,13 +40,8 @@ define KernelPackage/batman-adv/config
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) \
--
1.8.1.2
--
Russell Senior, President
russell@personaltelco.net
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [B.A.T.M.A.N.] [PATCH 4/4] openwrt routing feed: batctl: remove apparently unused variables from make arguments
2014-02-13 14:14 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments Russell Senior
@ 2014-02-13 14:23 ` Russell Senior
2014-02-13 15:01 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: " Russell Senior
1 sibling, 0 replies; 7+ messages in thread
From: Russell Senior @ 2014-02-13 14:23 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
Removes what appear to be unused and/or unnecessary environment
variables passed to make.
Signed-off-by: Russell Senior <russell@personaltelco.net>
---
batctl/Makefile | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/batctl/Makefile b/batctl/Makefile
index 7a34957..eef22ec 100644
--- a/batctl/Makefile
+++ b/batctl/Makefile
@@ -49,9 +49,7 @@ MAKE_BATCTL_ENV += \
MAKE_BATCTL_ARGS += \
REVISION="" \
- CC="$(TARGET_CC)" \
- DESTDIR="$(PKG_INSTALL_DIR)" \
- batctl install
+ batctl
define Build/compile
--
1.8.1.2
--
Russell Senior, President
russell@personaltelco.net
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments
2014-02-13 14:14 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments Russell Senior
2014-02-13 14:23 ` [B.A.T.M.A.N.] [PATCH 4/4] openwrt routing feed: batctl: " Russell Senior
@ 2014-02-13 15:01 ` Russell Senior
1 sibling, 0 replies; 7+ messages in thread
From: Russell Senior @ 2014-02-13 15:01 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
Oops. Don't apply this one. It worked okay on a soekris net4826
build, but got an error building for ar71xx. Not sure yet
specifically what is causing the trouble. Reverting this one, but
applying the other three in this series built and is running on
ar71xx.
> Removes what appear to be unused and/or unnecessary environment
> variables passed to make.
>
> Signed-off-by: Russell Senior <russell@personaltelco.net>
> ---
> batman-adv/Makefile | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/batman-adv/Makefile b/batman-adv/Makefile
> index c5c7625..1344198 100644
> --- a/batman-adv/Makefile
> +++ b/batman-adv/Makefile
> @@ -40,13 +40,8 @@ define KernelPackage/batman-adv/config
> 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) \
> --
> 1.8.1.2
--
Russell Senior, President
russell@personaltelco.net
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages
2014-02-13 14:01 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Russell Senior
2014-02-13 14:14 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments Russell Senior
@ 2014-02-13 15:39 ` Marek Lindner
2014-02-14 0:40 ` [B.A.T.M.A.N.] [PATCHv2] " Russell Senior
1 sibling, 1 reply; 7+ messages in thread
From: Marek Lindner @ 2014-02-13 15:39 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
[-- Attachment #1: Type: text/plain, Size: 591 bytes --]
On Thursday 13 February 2014 06:01:19 Russell Senior wrote:
> Creates a new package, batctl, split out from the batman-adv package.
> Simplifies the Makefiles, allows QUILT patch management to work,
> removes the quirky naming requirement for patches. The batctl package
> is a dependency of kmod-batman-adv, retaining the existing dependency
> relationship.
There is no batctl dependency and there should not be one. Some people try to
save as many bytes as possible ..
Your patch does more than splitting the the Makefile. I'd prefer you send
these changes separately.
Thanks,
Marek
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [B.A.T.M.A.N.] [PATCHv2] openwrt routing feed: batman-adv: split kmod and userland into separate packages
2014-02-13 15:39 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Marek Lindner
@ 2014-02-14 0:40 ` Russell Senior
0 siblings, 0 replies; 7+ messages in thread
From: Russell Senior @ 2014-02-14 0:40 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Marek Lindner
Creates a new package, batctl, split out from batman-adv package.
Simplifies the Makefiles, allows QUILT patch management wto work,
removes the quirky patch naming requirement. Modified Config.in to
work as before with batctl, except now with PACKAGE_batctl.
This patch also avoids leakage of unrelated changes from first
try. Oops.
Signed-off-by: Russell Senior <russell@personaltelco.net>
---
batctl/Makefile | 66 ++++++++++++++++++++++++++++++++++++++++++++
batman-adv/Config.in | 5 ++--
batman-adv/Makefile | 78 ++++------------------------------------------------
3 files changed, 74 insertions(+), 75 deletions(-)
diff --git a/batctl/Makefile b/batctl/Makefile
new file mode 100644
index 0000000..7a34957
--- /dev/null
+++ b/batctl/Makefile
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2010-2014 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:=batctl
+PKG_VERSION:=2014.0.0
+PKG_RELEASE:=2
+PKG_MD5SUM:=b0bcf29fef80ddcc33769e13f5937d0a
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/batctl
+ URL:=http://www.open-mesh.org/
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=B.A.T.M.A.N. Advanced user space configuration tool batctl
+ MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
+endef
+
+define Package/batctl/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 user space configuration &
+management tool batctl.
+endef
+
+TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_LDFLAGS += -Wl,--gc-sections
+
+# Link-time optimization allows to move parts of the optimization from the single
+# source file to the global source view. This is done by emitting the GIMPLE
+# representation in each object file and analyzing it again during the link step.
+
+TARGET_CFLAGS += -flto
+TARGET_LDFLAGS += -fuse-linker-plugin
+
+MAKE_BATCTL_ENV += \
+ CPPFLAGS="$(TARGET_CPPFLAGS)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)"
+
+MAKE_BATCTL_ARGS += \
+ REVISION="" \
+ CC="$(TARGET_CC)" \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ batctl install
+
+
+define Build/compile
+ $(MAKE_BATCTL_ENV) $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_BATCTL_ARGS)
+endef
+
+define Package/batctl/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,batctl))
diff --git a/batman-adv/Config.in b/batman-adv/Config.in
index 1330525..aeefd35 100644
--- a/batman-adv/Config.in
+++ b/batman-adv/Config.in
@@ -19,11 +19,12 @@ config KMOD_BATMAN_ADV_NC
depends on PACKAGE_kmod-batman-adv
default n
-config KMOD_BATMAN_ADV_BATCTL
- bool "enable batctl"
+config PACKAGE_batctl
+ tristate "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/batman-adv/Makefile b/batman-adv/Makefile
index 4bfbe54..9bfb91c 100644
--- a/batman-adv/Makefile
+++ b/batman-adv/Makefile
@@ -1,29 +1,22 @@
#
-# Copyright (C) 2010 OpenWrt.org
+# Copyright (C) 2010-2014 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
+include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=batman-adv
-
PKG_VERSION:=2014.0.0
-BATCTL_VERSION:=2014.0.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_MD5SUM:=8d58ecaede17dc05aab1b549dc09fa7d
-BATCTL_MD5SUM:=b0bcf29fef80ddcc33769e13f5937d0a
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/
@@ -38,8 +31,7 @@ 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.
+version $(PKG_VERSION) of the kernel module.
endef
define KernelPackage/batman-adv/config
@@ -60,75 +52,16 @@ MAKE_BATMAN_ADV_ARGS += \
CONFIG_BATMAN_ADV_NC=$(if $(CONFIG_KMOD_BATMAN_ADV_NC),y,n) \
REVISION="" all
-# The linker can identify unused sections of a binary when each symbol is stored
-# in a separate section. This mostly removes unused linker sections and reduces
-# the size by ~3% on mipsel.
-
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -Wl,--gc-sections
-
-# Link-time optimization allows to move parts of the optimization from the single
-# source file to the global source view. This is done by emitting the GIMPLE
-# representation in each object file and analyzing it again during the link step.
-
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -fuse-linker-plugin
-
-MAKE_BATCTL_ENV += \
- CPPFLAGS="$(TARGET_CPPFLAGS)" \
- CFLAGS="$(TARGET_CFLAGS)" \
- LDFLAGS="$(TARGET_LDFLAGS)"
-
-MAKE_BATCTL_ARGS += \
- REVISION="" \
- CC="$(TARGET_CC)" \
- DESTDIR="$(PKG_INSTALL_DIR)" \
- 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_BATCTL_ENV) $(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/Prepare
$(call Build/Prepare/Default)
- $(SED) '/#define _NET_BATMAN_ADV_MAIN_H_/a\#undef CONFIG_MODULE_STRIPPED' \
- $(PKG_BUILD_DIR)/main.h
+ $(SED) '/#define _NET_BATMAN_ADV_MAIN_H_/a\#undef CONFIG_MODULE_STRIPPED' $(PKG_BUILD_DIR)/main.h
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
@@ -136,7 +69,6 @@ define KernelPackage/batman-adv/install
$(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))
--
Russell Senior, President
russell@personaltelco.net
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-02-14 0:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-13 13:54 [B.A.T.M.A.N.] [PATCH 1/4] openwrt routing feed: add three ordex patches for anti-panic, anti-leaking Russell Senior
2014-02-13 14:01 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Russell Senior
2014-02-13 14:14 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: remove apparently unused variables from make arguments Russell Senior
2014-02-13 14:23 ` [B.A.T.M.A.N.] [PATCH 4/4] openwrt routing feed: batctl: " Russell Senior
2014-02-13 15:01 ` [B.A.T.M.A.N.] [PATCH 3/4] openwrt routing feed: batman-adv: " Russell Senior
2014-02-13 15:39 ` [B.A.T.M.A.N.] [PATCH 2/4] openwrt routing feed: batman-adv: split kmod and userland into separate packages Marek Lindner
2014-02-14 0:40 ` [B.A.T.M.A.N.] [PATCHv2] " Russell Senior
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.