# The latest alfred git hash in PKG_REV can be obtained from http://git.open-mesh.org/alfred.git
#
PKG_NAME:=alfred
-PKG_VERSION:=2013.4.0
-PKG_RELEASE:=3
-PKG_MD5SUM:=3891697e127b1037cfc9349fd96e9993
+PKG_VERSION:=2014.0.0
+PKG_RELEASE:=0
+PKG_MD5SUM:=d149ed50e9db994d38aadf1d121f17ae
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
+++ /dev/null
-From dbaaf2b294af120e42a0e95644640b128044a568 Mon Sep 17 00:00:00 2001
-From: Simon Wunderlich <sw@simonwunderlich.de>
-Date: Wed, 23 Oct 2013 01:17:36 +0200
-Subject: [PATCH] alfred-gpsd: add -lm to linker flags for libgps
-
-Appearently applications using libgps must link -lm themselves. A patch
-was submitted [1] to change this unusual behaviour upstream, but was
-never applied. Therefore link to -lm to alfred-gpsd too as this should
-not hurt anyway.
-
-[1] https://lists.berlios.de/pipermail/gpsd-dev/2011-August/009451.html
-
-Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
----
- gpsd/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gpsd/Makefile b/gpsd/Makefile
-index 9b21652..92e690f 100644
---- a/gpsd/Makefile
-+++ b/gpsd/Makefile
-@@ -49,7 +49,7 @@ ifeq ($(origin LIBGPS_CFLAGS) $(origin LIBGPS_LDLIBS), undefined undefined)
- $(error No $(LIBGPS_NAME) development libraries found!)
- endif
- LIBGPS_CFLAGS += $(shell $(PKG_CONFIG) --cflags $(LIBGPS_NAME))
-- LIBGPS_LDLIBS += $(shell $(PKG_CONFIG) --libs $(LIBGPS_NAME))
-+ LIBGPS_LDLIBS += $(shell $(PKG_CONFIG) --libs $(LIBGPS_NAME)) -lm
- endif
- CFLAGS += $(LIBGPS_CFLAGS)
- LDLIBS += $(LIBGPS_LDLIBS)
---
-1.7.10.4
-
PKG_NAME:=batman-adv
-PKG_VERSION:=2013.4.0
-BATCTL_VERSION:=2013.4.0
+PKG_VERSION:=2014.0.0
+BATCTL_VERSION:=2014.0.0
PKG_RELEASE:=1
-PKG_MD5SUM:=6590caa324709289e3cb142273a5ff57
-BATCTL_MD5SUM:=42e269cc710bbc9a8fd17628201d4258
+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)
URL:=http://www.open-mesh.org/
MAINTAINER:=Marek Lindner <lindner_marek@yahoo.de>
SUBMENU:=Network Support
- DEPENDS:=+kmod-lib-crc16 +kmod-crypto-core +kmod-crypto-crc32c +kmod-lib-crc32c +libc
+ DEPENDS:=+KMOD_BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-crypto-core +kmod-crypto-crc32c +kmod-lib-crc32c +libc
TITLE:=B.A.T.M.A.N. Adv
FILES:=$(PKG_BUILD_DIR)/batman-adv.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,50,batman-adv)
+++ /dev/null
-From 2c7bfe1299efa97438814bf6826a8f7ab3bc0b16 Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven@narfation.org>
-Date: Tue, 7 May 2013 14:51:02 +0200
-Subject: [PATCH] batctl: Add CFLAGS to the linker step
-
-The GCC manual states for different parameters that the options for compilation
-must also be used when linking. The options for compilation are stored in
-CFLAGS and added to LINK.o to fix the behavior.
-
-Option which need this are for example -fPIC/-fPIE or -flto.
-
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 311e70e..233f453 100755
---- a/Makefile
-+++ b/Makefile
-@@ -53,7 +53,7 @@ RM ?= rm -f
- INSTALL ?= install
- MKDIR ?= mkdir -p
- COMPILE.c = $(Q_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
--LINK.o = $(Q_LD)$(CC) $(LDFLAGS) $(TARGET_ARCH)
-+LINK.o = $(Q_LD)$(CC) $(CFLAGS) $(LDFLAGS) $(TARGET_ARCH)
-
- # standard install paths
- PREFIX = /usr/local
---
-1.7.10.4
-
--- /dev/null
+From 746d6436f88899a79c1cb3b27af0614510368bb7 Mon Sep 17 00:00:00 2001
+From: Marek Lindner <mareklindner@neomailbox.ch>
+Date: Wed, 15 Jan 2014 20:31:18 +0800
+Subject: [PATCH 1/5] batman-adv: fix batman-adv header overhead calculation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Batman-adv prepends a full ethernet header in addition to its own
+header. This has to be reflected in the MTU calculation, especially
+since the value is used to set dev->hard_header_len.
+
+Introduced by f1f310d5c261f0214f85afea95d5cd11d49d64c6
+("batman-adv: consider network coding overhead when calculating required mtu")
+
+Reported-by: cmsv <cmsv@wirelesspt.net>
+Reported-by: Martin Hundebøll <martin@hundeboll.net>
+Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
+---
+ main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/main.c b/main.c
+index 4547bf0..fd85205 100644
+--- a/main.c
++++ b/main.c
+@@ -277,7 +277,7 @@ int batadv_max_header_len(void)
+ sizeof(struct batadv_coded_packet));
+ #endif
+
+- return header_len;
++ return header_len + ETH_HLEN;
+ }
+
+ /**
+--
+1.8.5.3
+
--- /dev/null
+From 41b38727749a94c1a65cf0f4be9bfe1cbaf0adeb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@web.de>
+Date: Mon, 20 Jan 2014 11:06:44 +0100
+Subject: [PATCH 2/5] batman-adv: fix potential kernel paging error for unicast
+ transmissions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+batadv_send_skb_prepare_unicast(_4addr) might reallocate the skb's
+data. If it does then our ethhdr pointer is not valid anymore in
+batadv_send_skb_unicast(), resulting in a kernel paging error.
+
+Fixing this by refetching the ethhdr pointer after the potential
+reallocation.
+
+Introduced by b46c60b9e1ee7a1909c542413a85875a750955d6
+("batman-adv: improve unicast packet (re)routing")
+
+Signed-off-by: Linus Lüssing <linus.luessing@web.de>
+Acked-by: Antonio Quartulli <antonio@meshcoding.com>
+Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
+---
+ send.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/send.c b/send.c
+index b0a3d76..2035bd9 100644
+--- a/send.c
++++ b/send.c
+@@ -281,6 +281,10 @@ static int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
+ goto out;
+ }
+
++ /* skb->data might have been reallocated by
++ * batadv_send_skb_prepare_unicast{,_4addr}()
++ */
++ ethhdr = eth_hdr(skb);
+ unicast_packet = (struct batadv_unicast_packet *)skb->data;
+
+ /* inform the destination node that we are still missing a correct route
+--
+1.8.5.3
+
--- /dev/null
+From 2b108ccd0533e1375e44c73ec58c69dde9a71687 Mon Sep 17 00:00:00 2001
+From: Antonio Quartulli <antonio@meshcoding.com>
+Date: Tue, 21 Jan 2014 11:22:05 +0100
+Subject: [PATCH 3/5] batman-adv: fix soft-interface MTU computation
+
+The current MTU computation always returns a value
+smaller than 1500bytes even if the real interfaces
+have an MTU large enough to compensate the batman-adv
+overhead.
+
+Fix the computation by properly returning the highest
+admitted value.
+
+Introduced by f7f2fe494388fca828094a4ebdab918a7b2d64f8
+("batman-adv: limit local translation table max size")
+
+Reported-by: Russell Senior <russell@personaltelco.net>
+Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
+Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
+---
+ hard-interface.c | 22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/hard-interface.c b/hard-interface.c
+index 6792e03..0eb0b3b 100644
+--- a/hard-interface.c
++++ b/hard-interface.c
+@@ -244,7 +244,7 @@ int batadv_hardif_min_mtu(struct net_device *soft_iface)
+ {
+ struct batadv_priv *bat_priv = netdev_priv(soft_iface);
+ const struct batadv_hard_iface *hard_iface;
+- int min_mtu = ETH_DATA_LEN;
++ int min_mtu = INT_MAX;
+
+ rcu_read_lock();
+ list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, list) {
+@@ -259,8 +259,6 @@ int batadv_hardif_min_mtu(struct net_device *soft_iface)
+ }
+ rcu_read_unlock();
+
+- atomic_set(&bat_priv->packet_size_max, min_mtu);
+-
+ if (atomic_read(&bat_priv->fragmentation) == 0)
+ goto out;
+
+@@ -271,13 +269,21 @@ int batadv_hardif_min_mtu(struct net_device *soft_iface)
+ min_mtu = min_t(int, min_mtu, BATADV_FRAG_MAX_FRAG_SIZE);
+ min_mtu -= sizeof(struct batadv_frag_packet);
+ min_mtu *= BATADV_FRAG_MAX_FRAGMENTS;
+- atomic_set(&bat_priv->packet_size_max, min_mtu);
+-
+- /* with fragmentation enabled we can fragment external packets easily */
+- min_mtu = min_t(int, min_mtu, ETH_DATA_LEN);
+
+ out:
+- return min_mtu - batadv_max_header_len();
++ /* report to the other components the maximum amount of bytes that
++ * batman-adv can send over the wire (without considering the payload
++ * overhead). For example, this value is used by TT to compute the
++ * maximum local table table size
++ */
++ atomic_set(&bat_priv->packet_size_max, min_mtu);
++
++ /* the real soft-interface MTU is computed by removing the payload
++ * overhead from the maximum amount of bytes that was just computed.
++ *
++ * However batman-adv does not support MTUs bigger than ETH_DATA_LEN
++ */
++ return min_t(int, min_mtu - batadv_max_header_len(), ETH_DATA_LEN);
+ }
+
+ /* adjusts the MTU if a new interface with a smaller MTU appeared. */
+--
+1.8.5.3
+
--- /dev/null
+From db13d361ff6abf57090acfdeb0f5cedd8dd7f02e Mon Sep 17 00:00:00 2001
+From: Antonio Quartulli <antonio@meshcoding.com>
+Date: Mon, 27 Jan 2014 12:23:28 +0100
+Subject: [PATCH 4/5] batman-adv: fix TT-TVLV parsing on OGM reception
+
+When accessing a TT-TVLV container in the OGM RX path
+the variable pointing to the list of changes to apply is
+altered by mistake.
+
+This makes the TT component read data at the wrong position
+in the OGM packet buffer.
+
+Fix it by removing the bogus pointer alteration.
+
+Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
+Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
+---
+ translation-table.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/translation-table.c b/translation-table.c
+index 3fca99d..45b6155 100644
+--- a/translation-table.c
++++ b/translation-table.c
+@@ -3204,7 +3204,6 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
+
+ spin_lock_bh(&orig_node->tt_lock);
+
+- tt_change = (struct batadv_tvlv_tt_change *)tt_buff;
+ batadv_tt_update_changes(bat_priv, orig_node, tt_num_changes,
+ ttvn, tt_change);
+
+--
+1.8.5.3
+
--- /dev/null
+From dc08c045b46bdd9a5c81068a89f9f2a78d3d4bbd Mon Sep 17 00:00:00 2001
+From: Antonio Quartulli <antonio@meshcoding.com>
+Date: Tue, 28 Jan 2014 02:06:47 +0100
+Subject: [PATCH 5/5] batman-adv: release vlan object after checking the CRC
+
+There is a refcounter unbalance in the CRC checking routine
+invoked on OGM reception. A vlan object is retrieved (thus
+its refcounter is increased by one) but it is never properly
+released. This leads to a memleak because the vlan object
+will never be free'd.
+
+Fix this by releasing the vlan object after having read the
+CRC.
+
+Reported-by: Russell Senior <russell@personaltelco.net>
+Reported-by: Daniel <daniel@makrotopia.org>
+Reported-by: cmsv <cmsv@wirelesspt.net>
+Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
+Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
+---
+ translation-table.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/translation-table.c b/translation-table.c
+index 45b6155..05c2a9b 100644
+--- a/translation-table.c
++++ b/translation-table.c
+@@ -2248,6 +2248,7 @@ static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
+ {
+ struct batadv_tvlv_tt_vlan_data *tt_vlan_tmp;
+ struct batadv_orig_node_vlan *vlan;
++ uint32_t crc;
+ int i;
+
+ /* check if each received CRC matches the locally stored one */
+@@ -2267,7 +2268,10 @@ static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
+ if (!vlan)
+ return false;
+
+- if (vlan->tt.crc != ntohl(tt_vlan_tmp->crc))
++ crc = vlan->tt.crc;
++ batadv_orig_node_vlan_free_ref(vlan);
++
++ if (crc != ntohl(tt_vlan_tmp->crc))
+ return false;
+ }
+
+--
+1.8.5.3
+
#
-# Copyright (C) 2009-2012 OpenWrt.org
+# Copyright (C) 2009-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:=bird
-PKG_VERSION:=1.3.11
-PKG_RELEASE:=1
+PKG_VERSION:=1.4.0
+PKG_RELEASE:=2
PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
-PKG_MD5SUM:=8ad2eb997fb8251bc5b24cf32619571b
+PKG_MD5SUM:=4e5a47308335b1b0bf4691cac6c4174f
PKG_BUILD_DEPENDS:=libncurses libreadline
include $(INCLUDE_DIR)/package.mk
define Package/bird/Default
TITLE:=The BIRD Internet Routing Daemon
URL:=http://bird.network.cz/
- DEPENDS:=
+ DEPENDS:=+libpthread
endef
define Package/birdc/Default
$(call Package/bird/Default)
SECTION:=net
CATEGORY:=Network
+ SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
endef
$(call Package/birdc/Default)
SECTION:=net
CATEGORY:=Network
+ SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
DEPENDS+= +bird6
endef
define Package/bird$(2)/install
$(INSTALL_DIR) $$(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/bird$(2) $$(1)/usr/sbin/
- $(INSTALL_BIN) ./files/bird$(2)loop $$(1)/usr/sbin/
$(INSTALL_DIR) $$(1)/etc
$(INSTALL_DATA) ./files/bird$(2).conf $$(1)/etc/
$(INSTALL_DIR) $$(1)/etc/init.d
#!/bin/sh /etc/rc.common
-# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010-2014 OpenWrt.org
+
+BIRD="bird4"
START=99
STOP=10
SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
+SERVICE_USE_PID=1
+SERVICE_PID_FILE="/var/run/$BIRD.pid"
-BIRD="/usr/sbin/bird4 -c /etc/bird4.conf"
+BIRD_BIN="/usr/sbin/$BIRD"
+BIRD_CONF="/etc/$BIRD.conf"
start() {
- service_start $BIRD -d
-# ( SERVICE_MATCH_NAME=1 service_start /usr/sbin/bird4loop )
+ service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE
}
stop() {
-# ( SERVICE_MATCH_NAME=1 service_stop /usr/sbin/bird4loop )
- service_stop $BIRD
+ service_stop $BIRD_BIN
}
reload() {
- service_reload $BIRD
+ service_reload $BIRD_BIN
}
+++ /dev/null
-#!/bin/sh
-
-BIRD="/usr/sbin/bird4 -c /etc/bird4.conf"
-
-$BIRD -p || return 1
-
-. /lib/functions.sh
-. /lib/functions/service.sh
-
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-
-sig_handler() {
- running=0
- service_stop $BIRD
-}
-
-running=1
-trap sig_handler INT
-trap sig_handler TERM
-while [ $running -gt 0 ]; do
- service_check $BIRD || service_start $BIRD -d "$@"
- sleep 3
-done
#!/bin/sh /etc/rc.common
-# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010-2014 OpenWrt.org
+
+BIRD="bird6"
START=99
STOP=10
SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
+SERVICE_USE_PID=1
+SERVICE_PID_FILE="/var/run/$BIRD.pid"
-BIRD="/usr/sbin/bird6 -c /etc/bird6.conf"
+BIRD_BIN="/usr/sbin/$BIRD"
+BIRD_CONF="/etc/$BIRD.conf"
start() {
- service_start $BIRD -d
-# ( SERVICE_MATCH_NAME=1 service_start /usr/sbin/bird6loop )
+ service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE
}
stop() {
-# ( SERVICE_MATCH_NAME=1 service_stop /usr/sbin/bird6loop )
- service_stop $BIRD
+ service_stop $BIRD_BIN
}
reload() {
- service_reload $BIRD
+ service_reload $BIRD_BIN
}
+++ /dev/null
-#!/bin/sh
-
-BIRD="/usr/sbin/bird6 -c /etc/bird6.conf"
-
-$BIRD -p || return 1
-
-. /lib/functions.sh
-. /lib/functions/service.sh
-
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-
-sig_handler() {
- running=0
- service_stop $BIRD
-}
-
-running=1
-trap sig_handler INT
-trap sig_handler TERM
-while [ $running -gt 0 ]; do
- service_check $BIRD || service_start $BIRD -d "$@"
- sleep 3
-done