diff --git a/alfred/Makefile b/alfred/Makefile index c8e73c2..7d58a0d 100644 --- a/alfred/Makefile +++ b/alfred/Makefile @@ -11,9 +11,9 @@ include $(TOPDIR)/rules.mk # 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) diff --git a/alfred/patches/0001-alfred-gpsd-add-lm-to-linker-flags-for-libgps.patch b/alfred/patches/0001-alfred-gpsd-add-lm-to-linker-flags-for-libgps.patch deleted file mode 100644 index 3be7169..0000000 --- a/alfred/patches/0001-alfred-gpsd-add-lm-to-linker-flags-for-libgps.patch +++ /dev/null @@ -1,33 +0,0 @@ -From dbaaf2b294af120e42a0e95644640b128044a568 Mon Sep 17 00:00:00 2001 -From: Simon Wunderlich -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 ---- - 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 - diff --git a/batman-adv/Makefile b/batman-adv/Makefile index e586b5d..4bfbe54 100644 --- a/batman-adv/Makefile +++ b/batman-adv/Makefile @@ -10,11 +10,11 @@ include $(TOPDIR)/rules.mk 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) @@ -29,7 +29,7 @@ define KernelPackage/batman-adv URL:=http://www.open-mesh.org/ MAINTAINER:=Marek Lindner SUBMENU:=Network Support - DEPENDS:=+kmod-lib-crc16 +kmod-crypto-core +kmod-crypto-crc32c +kmod-lib-crc32c +libc + 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) diff --git a/batman-adv/patches/0001-batctl-Add-CFLAGS-to-the-linker-step.patch b/batman-adv/patches/0001-batctl-Add-CFLAGS-to-the-linker-step.patch deleted file mode 100644 index 492ae35..0000000 --- a/batman-adv/patches/0001-batctl-Add-CFLAGS-to-the-linker-step.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 2c7bfe1299efa97438814bf6826a8f7ab3bc0b16 Mon Sep 17 00:00:00 2001 -From: Sven Eckelmann -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 -Signed-off-by: Marek Lindner ---- - 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 - diff --git a/batman-adv/patches/0001-batman-adv-fix-batman-adv-header-overhead-calculatio.patch b/batman-adv/patches/0001-batman-adv-fix-batman-adv-header-overhead-calculatio.patch new file mode 100644 index 0000000..31c2218 --- /dev/null +++ b/batman-adv/patches/0001-batman-adv-fix-batman-adv-header-overhead-calculatio.patch @@ -0,0 +1,38 @@ +From 746d6436f88899a79c1cb3b27af0614510368bb7 Mon Sep 17 00:00:00 2001 +From: Marek Lindner +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 +Reported-by: Martin Hundebøll +Signed-off-by: Marek Lindner +--- + 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 + diff --git a/batman-adv/patches/0002-batman-adv-fix-potential-kernel-paging-error-for-uni.patch b/batman-adv/patches/0002-batman-adv-fix-potential-kernel-paging-error-for-uni.patch new file mode 100644 index 0000000..30f5f55 --- /dev/null +++ b/batman-adv/patches/0002-batman-adv-fix-potential-kernel-paging-error-for-uni.patch @@ -0,0 +1,44 @@ +From 41b38727749a94c1a65cf0f4be9bfe1cbaf0adeb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Linus=20L=C3=BCssing?= +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 +Acked-by: Antonio Quartulli +Signed-off-by: Marek Lindner +--- + 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 + diff --git a/batman-adv/patches/0003-batman-adv-fix-soft-interface-MTU-computation.patch b/batman-adv/patches/0003-batman-adv-fix-soft-interface-MTU-computation.patch new file mode 100644 index 0000000..ac718c0 --- /dev/null +++ b/batman-adv/patches/0003-batman-adv-fix-soft-interface-MTU-computation.patch @@ -0,0 +1,75 @@ +From 2b108ccd0533e1375e44c73ec58c69dde9a71687 Mon Sep 17 00:00:00 2001 +From: Antonio Quartulli +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 +Signed-off-by: Antonio Quartulli +Signed-off-by: Marek Lindner +--- + 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 + diff --git a/batman-adv/patches/0004-batman-adv-fix-TT-TVLV-parsing-on-OGM-reception.patch b/batman-adv/patches/0004-batman-adv-fix-TT-TVLV-parsing-on-OGM-reception.patch new file mode 100644 index 0000000..d34225f --- /dev/null +++ b/batman-adv/patches/0004-batman-adv-fix-TT-TVLV-parsing-on-OGM-reception.patch @@ -0,0 +1,35 @@ +From db13d361ff6abf57090acfdeb0f5cedd8dd7f02e Mon Sep 17 00:00:00 2001 +From: Antonio Quartulli +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 +Signed-off-by: Marek Lindner +--- + 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 + diff --git a/batman-adv/patches/0005-batman-adv-release-vlan-object-after-checking-the-CR.patch b/batman-adv/patches/0005-batman-adv-release-vlan-object-after-checking-the-CR.patch new file mode 100644 index 0000000..58b95e8 --- /dev/null +++ b/batman-adv/patches/0005-batman-adv-release-vlan-object-after-checking-the-CR.patch @@ -0,0 +1,50 @@ +From dc08c045b46bdd9a5c81068a89f9f2a78d3d4bbd Mon Sep 17 00:00:00 2001 +From: Antonio Quartulli +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 +Reported-by: Daniel +Reported-by: cmsv +Signed-off-by: Antonio Quartulli +Signed-off-by: Marek Lindner +--- + 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 + diff --git a/bird/Makefile b/bird/Makefile index dfccbba..c3f1c11 100644 --- a/bird/Makefile +++ b/bird/Makefile @@ -1,5 +1,5 @@ # -# 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. @@ -7,12 +7,12 @@ 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 @@ -20,7 +20,7 @@ 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 @@ -78,6 +78,7 @@ define Package/bird6 $(call Package/bird/Default) SECTION:=net CATEGORY:=Network + SUBMENU:=Routing and Redirection TITLE+= (IPv6) endef @@ -85,6 +86,7 @@ define Package/birdc6 $(call Package/birdc/Default) SECTION:=net CATEGORY:=Network + SUBMENU:=Routing and Redirection TITLE+= (IPv6) DEPENDS+= +bird6 endef @@ -131,7 +133,6 @@ $(STAMP_BUILT): $(STAMP_BUILT)-$(2) 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 diff --git a/bird/files/bird4.init b/bird/files/bird4.init index 18243bb..a1a1be2 100644 --- a/bird/files/bird4.init +++ b/bird/files/bird4.init @@ -1,24 +1,26 @@ #!/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 } diff --git a/bird/files/bird4loop b/bird/files/bird4loop deleted file mode 100644 index 8154902..0000000 --- a/bird/files/bird4loop +++ /dev/null @@ -1,24 +0,0 @@ -#!/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 diff --git a/bird/files/bird6.init b/bird/files/bird6.init index 67b32f1..6156fb2 100644 --- a/bird/files/bird6.init +++ b/bird/files/bird6.init @@ -1,24 +1,26 @@ #!/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 } diff --git a/bird/files/bird6loop b/bird/files/bird6loop deleted file mode 100644 index 510add4..0000000 --- a/bird/files/bird6loop +++ /dev/null @@ -1,24 +0,0 @@ -#!/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