Merge branch 'master' of https://github.com/openwrt-routing/packages
authorMoritz Warning <moritzwarning@web.de>
Tue, 1 Nov 2016 01:14:49 +0000 (02:14 +0100)
committerMoritz Warning <moritzwarning@web.de>
Tue, 1 Nov 2016 01:14:49 +0000 (02:14 +0100)
27 files changed:
alfred/Makefile
batctl/Makefile
batman-adv/Config.in
batman-adv/Makefile
batman-adv/files/compat-hacks.h
batman-adv/patches/0001-batman-adv-Avoid-nullptr-dereference-in-bla-after-vl.patch [deleted file]
batman-adv/patches/0002-batman-adv-Avoid-nullptr-dereference-in-dat-after-vl.patch [deleted file]
batman-adv/patches/0003-batman-adv-Avoid-tt_req_node-list-put-for-unhashed-e.patch [deleted file]
batman-adv/patches/0004-batman-adv-Fix-orig_node_vlan-leak-on-orig_node_rele.patch [deleted file]
batman-adv/patches/0005-batman-adv-Fix-non-atomic-bla_claim-backbone_gw-acce.patch [deleted file]
batman-adv/patches/0006-batman-adv-Fix-reference-leak-in-batadv_find_router.patch [deleted file]
batman-adv/patches/0007-batman-adv-Free-last_bonding_candidate-on-release-of.patch [deleted file]
batman-adv/patches/0008-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch [deleted file]
bird/Makefile
bird/patches/001-netlink-update-struct-msghdr.patch [deleted file]
miniupnpd/Makefile
miniupnpd/files/miniupnpd.hotplug
miniupnpd/files/miniupnpd.init
oonf-dlep-proxy/Makefile
oonf-dlep-radio/Makefile
oonf-olsrd2/Makefile
quagga/Makefile
quagga/patches/110-vtysh-fix-build-against-readline-6.3.patch [deleted file]
quagga/patches/120-quagga_manet.patch [deleted file]
quagga/patches/140-holdtimer-set.patch
quagga/patches/150-no-cross-fs-link.patch
quagga/patches/170-use-supported-pagers.patch

index 8d651a5cfc4697a6fd05ea2e3bcc83ad0d3011ac..09f62d4dda9cd2c43fd62e2e8bd74e22978d4021 100644 (file)
@@ -11,9 +11,9 @@ include $(TOPDIR)/rules.mk
 # The latest alfred git hash in PKG_REV can be obtained from https://git.open-mesh.org/alfred.git
 #
 PKG_NAME:=alfred
-PKG_VERSION:=2016.2
+PKG_VERSION:=2016.4
 PKG_RELEASE:=0
-PKG_MD5SUM:=cc7d5b352942477033a4cafbed84152d
+PKG_MD5SUM:=172501ca734ac584fa13f10dcfa708da
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
@@ -28,7 +28,7 @@ define Package/alfred
   SECTION:=net
   CATEGORY:=Network
   TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
-  DEPENDS:= +libc @IPV6 +librt \
+  DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
          +ALFRED_NEEDS_lua:lua \
          +ALFRED_NEEDS_libgps:libgps
 endef
@@ -60,7 +60,9 @@ endef
 MAKE_ALFRED_FLAGS=\
        CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
        CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
-       CONFIG_ALFRED_CAPABILITIES=n
+       CONFIG_ALFRED_CAPABILITIES=n \
+        LIBNL_NAME="libnl-tiny" \
+        LIBNL_GENL_NAME="libnl-tiny"
 
 TARGET_CFLAGS  += -ffunction-sections -fdata-sections -flto
 TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin
index 174b18eafaec671ada029beeda3ac0c87d7786f8..7ae81b57c8850c85008bfc3c704677077d2be59d 100644 (file)
@@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=batctl
 
-PKG_VERSION:=2016.2
+PKG_VERSION:=2016.4
 PKG_RELEASE:=0
-PKG_MD5SUM:=50f42d06611afae58ccfcde502f94c1a
+PKG_MD5SUM:=0112f35b2a48d32f23a17a6f45348e63
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
@@ -55,7 +55,8 @@ MAKE_BATCTL_ENV += \
         CPPFLAGS="$(TARGET_CPPFLAGS)" \
         CFLAGS="$(TARGET_CFLAGS)" \
         LDFLAGS="$(TARGET_LDFLAGS)" \
-        LIBNL_NAME="libnl-tiny"
+        LIBNL_NAME="libnl-tiny" \
+        LIBNL_GENL_NAME="libnl-tiny"
 
 MAKE_BATCTL_ARGS += \
         REVISION="$(PKG_BATCTL_SHORTREV)" \
index 48092e71d37c090bda01eec5184b9728a8b36702..8c75f318e9001d7853145232060057d664931aae 100644 (file)
@@ -14,6 +14,11 @@ config KMOD_BATMAN_ADV_DAT
        depends on PACKAGE_kmod-batman-adv
        default y
 
+config KMOD_BATMAN_ADV_DEBUGFS
+       bool "enable debugfs support"
+       depends on PACKAGE_kmod-batman-adv
+       default y
+
 config KMOD_BATMAN_ADV_MCAST
        bool "enable multicast transmission optimization"
        depends on PACKAGE_kmod-batman-adv
index c45cbb4883f6a2761df700894e819ecb7aa50f84..23b2f742c464d336bc47d47da6c99462e0ec5e07 100644 (file)
@@ -10,9 +10,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=batman-adv
 
-PKG_VERSION:=2016.2
-PKG_RELEASE:=1
-PKG_MD5SUM:=dd1ab664475902fc3dbf34998bbe5a90
+PKG_VERSION:=2016.4
+PKG_RELEASE:=0
+PKG_MD5SUM:=1ed28d02ad86050d1518023e354737b6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
@@ -50,6 +50,7 @@ endef
 PKG_EXTRA_KCONFIG:= \
        CONFIG_BATMAN_ADV=m \
        CONFIG_BATMAN_ADV_DEBUG=$(if $(CONFIG_KMOD_BATMAN_ADV_DEBUG_LOG),y,n) \
+       CONFIG_BATMAN_ADV_DEBUGFS=$(if $(CONFIG_KMOD_BATMAN_ADV_DEBUGFS),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) \
        CONFIG_BATMAN_ADV_MCAST=$(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),y,n) \
@@ -62,15 +63,22 @@ PKG_EXTRA_CFLAGS:= \
 
 NOSTDINC_FLAGS = \
        -I$(PKG_BUILD_DIR)/net/batman-adv \
-       -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
        -I$(STAGING_DIR)/usr/include/mac80211-backport \
-       -I$(STAGING_DIR)/usr/include/mac80211/uapi \
+       -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
        -I$(STAGING_DIR)/usr/include/mac80211 \
+       -I$(STAGING_DIR)/usr/include/mac80211/uapi \
+       -I$(PKG_BUILD_DIR)/include/ \
        -include backport/backport.h \
        -include $(PKG_BUILD_DIR)/compat-hacks.h
 
+COMPAT_SOURCES = \
+       $(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),../../compat-sources/net/core/skbuff.o,) \
+       $(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),../../compat-sources/net/ipv4/igmp.o,) \
+       $(if $(CONFIG_KMOD_BATMAN_ADV_MCAST),../../compat-sources/net/ipv6/mcast_snoop.o,) \
+
 define Build/Compile
-       +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
+       +env "batman-adv-y=$(COMPAT_SOURCES)" \
+       $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
                SUBDIRS="$(PKG_BUILD_DIR)/net/batman-adv" \
@@ -83,8 +91,6 @@ endef
 define Build/Prepare
        $(call Build/Prepare/Default)
        $(CP) ./files/compat-hacks.h $(PKG_BUILD_DIR)/
-       $(SED) '/#define _NET_BATMAN_ADV_MAIN_H_/a\#undef CONFIG_MODULE_STRIPPED' \
-               $(PKG_BUILD_DIR)/net/batman-adv/main.h
 endef
 
 define Build/Clean
index a910c2d9ae2db784656071119e85bf47db9988a2..32903b569fa99f36d86780d381a42aa82f1744c3 100644 (file)
@@ -1,5 +1,7 @@
 /* Please avoid adding hacks here - instead add it to mac80211/backports.git */
 
+#undef CONFIG_MODULE_STRIPPED
+
 #include <linux/version.h>     /* LINUX_VERSION_CODE */
 #include <linux/types.h>
 
 
 #endif /* < KERNEL_VERSION(4, 5, 0) */
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
+
+struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
+                                    unsigned int transport_len,
+                                    __sum16(*skb_chkf)(struct sk_buff *skb));
+
+int ip_mc_check_igmp(struct sk_buff *skb, struct sk_buff **skb_trimmed);
+
+int ipv6_mc_check_mld(struct sk_buff *skb, struct sk_buff **skb_trimmed);
+
+#endif /* < KERNEL_VERSION(4, 2, 0) */
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
 
@@ -84,3 +97,93 @@ static inline void batadv_netif_trans_update(struct net_device *dev)
 }
 
 #endif /* < KERNEL_VERSION(4, 7, 0) */
+
+
+#include_next <linux/netlink.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)
+
+#include_next <net/netlink.h>
+
+static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb);
+
+static inline int batadv_nla_align_64bit(struct sk_buff *skb, int padattr)
+{
+       if (batadv_nla_need_padding_for_64bit(skb) &&
+           !nla_reserve(skb, padattr, 0))
+               return -EMSGSIZE;
+
+       return 0;
+}
+
+static inline struct nlattr *batadv__nla_reserve_64bit(struct sk_buff *skb,
+                                                      int attrtype,
+                                                      int attrlen, int padattr)
+{
+       if (batadv_nla_need_padding_for_64bit(skb))
+               batadv_nla_align_64bit(skb, padattr);
+
+       return __nla_reserve(skb, attrtype, attrlen);
+}
+
+static inline void batadv__nla_put_64bit(struct sk_buff *skb, int attrtype,
+                                        int attrlen, const void *data,
+                                        int padattr)
+{
+       struct nlattr *nla;
+
+       nla = batadv__nla_reserve_64bit(skb, attrtype, attrlen, padattr);
+       memcpy(nla_data(nla), data, attrlen);
+}
+
+static inline bool batadv_nla_need_padding_for_64bit(struct sk_buff *skb)
+{
+#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
+       /* The nlattr header is 4 bytes in size, that's why we test
+        * if the skb->data _is_ aligned.  A NOP attribute, plus
+        * nlattr header for next attribute, will make nla_data()
+        * 8-byte aligned.
+        */
+       if (IS_ALIGNED((unsigned long)skb_tail_pointer(skb), 8))
+               return true;
+#endif
+       return false;
+}
+
+static inline int batadv_nla_total_size_64bit(int payload)
+{
+       return NLA_ALIGN(nla_attr_size(payload))
+#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
+               + NLA_ALIGN(nla_attr_size(0))
+#endif
+               ;
+}
+
+static inline int batadv_nla_put_64bit(struct sk_buff *skb, int attrtype,
+                                      int attrlen, const void *data,
+                                      int padattr)
+{
+       size_t len;
+
+       if (batadv_nla_need_padding_for_64bit(skb))
+               len = batadv_nla_total_size_64bit(attrlen);
+       else
+               len = nla_total_size(attrlen);
+       if (unlikely(skb_tailroom(skb) < len))
+               return -EMSGSIZE;
+
+       batadv__nla_put_64bit(skb, attrtype, attrlen, data, padattr);
+       return 0;
+}
+
+#define nla_put_u64_64bit(_skb, _attrtype, _value, _padattr) \
+       batadv_nla_put_u64_64bit(_skb, _attrtype, _value, _padattr)
+static inline int batadv_nla_put_u64_64bit(struct sk_buff *skb, int attrtype,
+                                          u64 value, int padattr)
+{
+       return batadv_nla_put_64bit(skb, attrtype, sizeof(u64), &value,
+                                   padattr);
+}
+
+#endif /* < KERNEL_VERSION(4, 7, 0) */
+
diff --git a/batman-adv/patches/0001-batman-adv-Avoid-nullptr-dereference-in-bla-after-vl.patch b/batman-adv/patches/0001-batman-adv-Avoid-nullptr-dereference-in-bla-after-vl.patch
deleted file mode 100644 (file)
index 49c0637..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Sat, 2 Jul 2016 09:52:13 +0200
-Subject: [PATCH] batman-adv: Avoid nullptr dereference in bla after vlan_insert_tag
-
-vlan_insert_tag can return NULL on errors. The bridge loop avoidance code
-therefore has to check the return value of vlan_insert_tag for NULL before
-it can safely operate on this pointer.
-
-Fixes: a9ce0dc43e2c ("batman-adv: add basic bridge loop avoidance code")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/e4cffba4d3353ea15287abbfbdd65208aa62c156
----
- net/batman-adv/bridge_loop_avoidance.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
-index 748a9ea..7129780 100644
---- a/net/batman-adv/bridge_loop_avoidance.c
-+++ b/net/batman-adv/bridge_loop_avoidance.c
-@@ -418,9 +418,12 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
-               break;
-       }
--      if (vid & BATADV_VLAN_HAS_TAG)
-+      if (vid & BATADV_VLAN_HAS_TAG) {
-               skb = vlan_insert_tag(skb, htons(ETH_P_8021Q),
-                                     vid & VLAN_VID_MASK);
-+              if (!skb)
-+                      goto out;
-+      }
-       skb_reset_mac_header(skb);
-       skb->protocol = eth_type_trans(skb, soft_iface);
diff --git a/batman-adv/patches/0002-batman-adv-Avoid-nullptr-dereference-in-dat-after-vl.patch b/batman-adv/patches/0002-batman-adv-Avoid-nullptr-dereference-in-dat-after-vl.patch
deleted file mode 100644 (file)
index e5e72d7..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Sat, 2 Jul 2016 09:52:14 +0200
-Subject: [PATCH] batman-adv: Avoid nullptr dereference in dat after vlan_insert_tag
-
-vlan_insert_tag can return NULL on errors. The distributed arp table code
-therefore has to check the return value of vlan_insert_tag for NULL before
-it can safely operate on this pointer.
-
-Fixes: 53c6c262a581 ("batman-adv: tag locally generated ARP reply if needed")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/898382d11fa1f737cd4f7033db1088c601fd11ed
----
- net/batman-adv/distributed-arp-table.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
-index 278800a..aee3b39 100644
---- a/net/batman-adv/distributed-arp-table.c
-+++ b/net/batman-adv/distributed-arp-table.c
-@@ -1009,9 +1009,12 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
-               if (!skb_new)
-                       goto out;
--              if (vid & BATADV_VLAN_HAS_TAG)
-+              if (vid & BATADV_VLAN_HAS_TAG) {
-                       skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
-                                                 vid & VLAN_VID_MASK);
-+                      if (!skb_new)
-+                              goto out;
-+              }
-               skb_reset_mac_header(skb_new);
-               skb_new->protocol = eth_type_trans(skb_new,
-@@ -1089,9 +1092,12 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
-        */
-       skb_reset_mac_header(skb_new);
--      if (vid & BATADV_VLAN_HAS_TAG)
-+      if (vid & BATADV_VLAN_HAS_TAG) {
-               skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
-                                         vid & VLAN_VID_MASK);
-+              if (!skb_new)
-+                      goto out;
-+      }
-       /* To preserve backwards compatibility, the node has choose the outgoing
-        * format based on the incoming request packet type. The assumption is
diff --git a/batman-adv/patches/0003-batman-adv-Avoid-tt_req_node-list-put-for-unhashed-e.patch b/batman-adv/patches/0003-batman-adv-Avoid-tt_req_node-list-put-for-unhashed-e.patch
deleted file mode 100644 (file)
index 60d4e12..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Fri, 24 Jun 2016 21:43:32 +0200
-Subject: [PATCH] batman-adv: Avoid tt_req_node list put for unhashed entry
-
-It can happen that a tt_req_node list entry was already removed from
-tt.req_list when batadv_send_tt_request reaches the end of the function.
-The reference counter was already reduced by 1 for the list entry and thus
-the reference counter is not allowed to be reduced again. Otherwise, the
-entry is freed too early and the next batadv_tt_req_node_put in this
-function will operate on freed memory.
-
-Fixes: cea194d90b11 ("batman-adv: improved client announcement mechanism")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/03ecc9f957b837c755f09251c5f684996521e487
----
- net/batman-adv/translation-table.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index d033a05..57ec87f 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -2639,11 +2639,13 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
- out:
-       if (primary_if)
-               batadv_hardif_put(primary_if);
-+
-       if (ret && tt_req_node) {
-               spin_lock_bh(&bat_priv->tt.req_list_lock);
--              /* hlist_del_init() verifies tt_req_node still is in the list */
--              hlist_del_init(&tt_req_node->list);
--              batadv_tt_req_node_put(tt_req_node);
-+              if (!hlist_unhashed(&tt_req_node->list)) {
-+                      hlist_del_init(&tt_req_node->list);
-+                      batadv_tt_req_node_put(tt_req_node);
-+              }
-               spin_unlock_bh(&bat_priv->tt.req_list_lock);
-       }
diff --git a/batman-adv/patches/0004-batman-adv-Fix-orig_node_vlan-leak-on-orig_node_rele.patch b/batman-adv/patches/0004-batman-adv-Fix-orig_node_vlan-leak-on-orig_node_rele.patch
deleted file mode 100644 (file)
index 7af3162..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Thu, 30 Jun 2016 20:10:46 +0200
-Subject: [PATCH] batman-adv: Fix orig_node_vlan leak on orig_node_release
-
-batadv_orig_node_new uses batadv_orig_node_vlan_new to allocate a new
-batadv_orig_node_vlan and add it to batadv_orig_node::vlan_list. References
-to this list have also to be cleaned when the batadv_orig_node is removed.
-
-Fixes: 21a57f6e7a3b ("batman-adv: make the TT CRC logic VLAN specific")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/719afd254e812c7ff8688ce79bebb7324ec438d6
----
- net/batman-adv/originator.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
-index 7f51bc2..fe2fcda 100644
---- a/net/batman-adv/originator.c
-+++ b/net/batman-adv/originator.c
-@@ -765,6 +765,7 @@ static void batadv_orig_node_release(struct kref *ref)
-       struct batadv_neigh_node *neigh_node;
-       struct batadv_orig_node *orig_node;
-       struct batadv_orig_ifinfo *orig_ifinfo;
-+      struct batadv_orig_node_vlan *vlan;
-       orig_node = container_of(ref, struct batadv_orig_node, refcount);
-@@ -784,6 +785,13 @@ static void batadv_orig_node_release(struct kref *ref)
-       }
-       spin_unlock_bh(&orig_node->neigh_list_lock);
-+      spin_lock_bh(&orig_node->vlan_list_lock);
-+      hlist_for_each_entry_safe(vlan, node_tmp, &orig_node->vlan_list, list) {
-+              hlist_del_rcu(&vlan->list);
-+              batadv_orig_node_vlan_put(vlan);
-+      }
-+      spin_unlock_bh(&orig_node->vlan_list_lock);
-+
-       /* Free nc_nodes */
-       batadv_nc_purge_orig(orig_node->bat_priv, orig_node, NULL);
diff --git a/batman-adv/patches/0005-batman-adv-Fix-non-atomic-bla_claim-backbone_gw-acce.patch b/batman-adv/patches/0005-batman-adv-Fix-non-atomic-bla_claim-backbone_gw-acce.patch
deleted file mode 100644 (file)
index 5e0afdd..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Fri, 1 Jul 2016 15:49:43 +0200
-Subject: [PATCH] batman-adv: Fix non-atomic bla_claim::backbone_gw access
-
-The pointer batadv_bla_claim::backbone_gw can be changed at any time.
-Therefore, access to it must be protected to ensure that two function
-accessing the same backbone_gw are actually accessing the same. This is
-especially important when the crc_lock is used or when the backbone_gw of a
-claim is exchanged.
-
-Not doing so leads to invalid memory access and/or reference leaks.
-
-Fixes: a9ce0dc43e2c ("batman-adv: add basic bridge loop avoidance code")
-Fixes: b307e72d119f ("batman-adv: lock crc access in bridge loop avoidance")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/e401297e3a393896e9b07bef8d6e2df203b60d43
----
- net/batman-adv/bridge_loop_avoidance.c | 111 ++++++++++++++++++++++++++-------
- net/batman-adv/types.h                 |   2 +
- 2 files changed, 90 insertions(+), 23 deletions(-)
-
-diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
-index 7129780..825a5cd 100644
---- a/net/batman-adv/bridge_loop_avoidance.c
-+++ b/net/batman-adv/bridge_loop_avoidance.c
-@@ -177,10 +177,21 @@ static void batadv_backbone_gw_put(struct batadv_bla_backbone_gw *backbone_gw)
- static void batadv_claim_release(struct kref *ref)
- {
-       struct batadv_bla_claim *claim;
-+      struct batadv_bla_backbone_gw *old_backbone_gw;
-       claim = container_of(ref, struct batadv_bla_claim, refcount);
--      batadv_backbone_gw_put(claim->backbone_gw);
-+      spin_lock_bh(&claim->backbone_lock);
-+      old_backbone_gw = claim->backbone_gw;
-+      claim->backbone_gw = NULL;
-+      spin_unlock_bh(&claim->backbone_lock);
-+
-+      spin_lock_bh(&old_backbone_gw->crc_lock);
-+      old_backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
-+      spin_unlock_bh(&old_backbone_gw->crc_lock);
-+
-+      batadv_backbone_gw_put(old_backbone_gw);
-+
-       kfree_rcu(claim, rcu);
- }
-@@ -677,8 +688,10 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
-                                const u8 *mac, const unsigned short vid,
-                                struct batadv_bla_backbone_gw *backbone_gw)
- {
-+      struct batadv_bla_backbone_gw *old_backbone_gw;
-       struct batadv_bla_claim *claim;
-       struct batadv_bla_claim search_claim;
-+      bool remove_crc = false;
-       int hash_added;
-       ether_addr_copy(search_claim.addr, mac);
-@@ -692,8 +705,10 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
-                       return;
-               ether_addr_copy(claim->addr, mac);
-+              spin_lock_init(&claim->backbone_lock);
-               claim->vid = vid;
-               claim->lasttime = jiffies;
-+              kref_get(&backbone_gw->refcount);
-               claim->backbone_gw = backbone_gw;
-               kref_init(&claim->refcount);
-@@ -721,15 +736,26 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
-                          "bla_add_claim(): changing ownership for %pM, vid %d\n",
-                          mac, BATADV_PRINT_VID(vid));
--              spin_lock_bh(&claim->backbone_gw->crc_lock);
--              claim->backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
--              spin_unlock_bh(&claim->backbone_gw->crc_lock);
--              batadv_backbone_gw_put(claim->backbone_gw);
-+              remove_crc = true;
-       }
--      /* set (new) backbone gw */
-+
-+      /* replace backbone_gw atomically and adjust reference counters */
-+      spin_lock_bh(&claim->backbone_lock);
-+      old_backbone_gw = claim->backbone_gw;
-       kref_get(&backbone_gw->refcount);
-       claim->backbone_gw = backbone_gw;
-+      spin_unlock_bh(&claim->backbone_lock);
-+      if (remove_crc) {
-+              /* remove claim address from old backbone_gw */
-+              spin_lock_bh(&old_backbone_gw->crc_lock);
-+              old_backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
-+              spin_unlock_bh(&old_backbone_gw->crc_lock);
-+      }
-+
-+      batadv_backbone_gw_put(old_backbone_gw);
-+
-+      /* add claim address to new backbone_gw */
-       spin_lock_bh(&backbone_gw->crc_lock);
-       backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
-       spin_unlock_bh(&backbone_gw->crc_lock);
-@@ -740,6 +766,26 @@ claim_free_ref:
- }
- /**
-+ * batadv_bla_claim_get_backbone_gw - Get valid reference for backbone_gw of
-+ *  claim
-+ * @claim: claim whose backbone_gw should be returned
-+ *
-+ * Return: valid reference to claim::backbone_gw
-+ */
-+static struct batadv_bla_backbone_gw *
-+batadv_bla_claim_get_backbone_gw(struct batadv_bla_claim *claim)
-+{
-+      struct batadv_bla_backbone_gw *backbone_gw;
-+
-+      spin_lock_bh(&claim->backbone_lock);
-+      backbone_gw = claim->backbone_gw;
-+      kref_get(&backbone_gw->refcount);
-+      spin_unlock_bh(&claim->backbone_lock);
-+
-+      return backbone_gw;
-+}
-+
-+/**
-  * batadv_bla_del_claim - delete a claim from the claim hash
-  * @bat_priv: the bat priv with all the soft interface information
-  * @mac: mac address of the claim to be removed
-@@ -763,10 +809,6 @@ static void batadv_bla_del_claim(struct batadv_priv *bat_priv,
-                          batadv_choose_claim, claim);
-       batadv_claim_put(claim); /* reference from the hash is gone */
--      spin_lock_bh(&claim->backbone_gw->crc_lock);
--      claim->backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
--      spin_unlock_bh(&claim->backbone_gw->crc_lock);
--
-       /* don't need the reference from hash_find() anymore */
-       batadv_claim_put(claim);
- }
-@@ -1219,6 +1261,7 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
-                                   struct batadv_hard_iface *primary_if,
-                                   int now)
- {
-+      struct batadv_bla_backbone_gw *backbone_gw;
-       struct batadv_bla_claim *claim;
-       struct hlist_head *head;
-       struct batadv_hashtable *hash;
-@@ -1233,14 +1276,17 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
-               rcu_read_lock();
-               hlist_for_each_entry_rcu(claim, head, hash_entry) {
-+                      backbone_gw = batadv_bla_claim_get_backbone_gw(claim);
-                       if (now)
-                               goto purge_now;
--                      if (!batadv_compare_eth(claim->backbone_gw->orig,
-+
-+                      if (!batadv_compare_eth(backbone_gw->orig,
-                                               primary_if->net_dev->dev_addr))
--                              continue;
-+                              goto skip;
-+
-                       if (!batadv_has_timed_out(claim->lasttime,
-                                                 BATADV_BLA_CLAIM_TIMEOUT))
--                              continue;
-+                              goto skip;
-                       batadv_dbg(BATADV_DBG_BLA, bat_priv,
-                                  "bla_purge_claims(): %pM, vid %d, time out\n",
-@@ -1248,8 +1294,10 @@ static void batadv_bla_purge_claims(struct batadv_priv *bat_priv,
- purge_now:
-                       batadv_handle_unclaim(bat_priv, primary_if,
--                                            claim->backbone_gw->orig,
-+                                            backbone_gw->orig,
-                                             claim->addr, claim->vid);
-+skip:
-+                      batadv_backbone_gw_put(backbone_gw);
-               }
-               rcu_read_unlock();
-       }
-@@ -1760,9 +1808,11 @@ batadv_bla_loopdetect_check(struct batadv_priv *bat_priv, struct sk_buff *skb,
- bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
-                  unsigned short vid, bool is_bcast)
- {
-+      struct batadv_bla_backbone_gw *backbone_gw;
-       struct ethhdr *ethhdr;
-       struct batadv_bla_claim search_claim, *claim = NULL;
-       struct batadv_hard_iface *primary_if;
-+      bool own_claim;
-       bool ret;
-       ethhdr = eth_hdr(skb);
-@@ -1797,8 +1847,12 @@ bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
-       }
-       /* if it is our own claim ... */
--      if (batadv_compare_eth(claim->backbone_gw->orig,
--                             primary_if->net_dev->dev_addr)) {
-+      backbone_gw = batadv_bla_claim_get_backbone_gw(claim);
-+      own_claim = batadv_compare_eth(backbone_gw->orig,
-+                                     primary_if->net_dev->dev_addr);
-+      batadv_backbone_gw_put(backbone_gw);
-+
-+      if (own_claim) {
-               /* ... allow it in any case */
-               claim->lasttime = jiffies;
-               goto allow;
-@@ -1862,7 +1916,9 @@ bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
- {
-       struct ethhdr *ethhdr;
-       struct batadv_bla_claim search_claim, *claim = NULL;
-+      struct batadv_bla_backbone_gw *backbone_gw;
-       struct batadv_hard_iface *primary_if;
-+      bool client_roamed;
-       bool ret = false;
-       primary_if = batadv_primary_if_get_selected(bat_priv);
-@@ -1892,8 +1948,12 @@ bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
-               goto allow;
-       /* check if we are responsible. */
--      if (batadv_compare_eth(claim->backbone_gw->orig,
--                             primary_if->net_dev->dev_addr)) {
-+      backbone_gw = batadv_bla_claim_get_backbone_gw(claim);
-+      client_roamed = batadv_compare_eth(backbone_gw->orig,
-+                                         primary_if->net_dev->dev_addr);
-+      batadv_backbone_gw_put(backbone_gw);
-+
-+      if (client_roamed) {
-               /* if yes, the client has roamed and we have
-                * to unclaim it.
-                */
-@@ -1941,6 +2001,7 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset)
-       struct net_device *net_dev = (struct net_device *)seq->private;
-       struct batadv_priv *bat_priv = netdev_priv(net_dev);
-       struct batadv_hashtable *hash = bat_priv->bla.claim_hash;
-+      struct batadv_bla_backbone_gw *backbone_gw;
-       struct batadv_bla_claim *claim;
-       struct batadv_hard_iface *primary_if;
-       struct hlist_head *head;
-@@ -1965,17 +2026,21 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset)
-               rcu_read_lock();
-               hlist_for_each_entry_rcu(claim, head, hash_entry) {
--                      is_own = batadv_compare_eth(claim->backbone_gw->orig,
-+                      backbone_gw = batadv_bla_claim_get_backbone_gw(claim);
-+
-+                      is_own = batadv_compare_eth(backbone_gw->orig,
-                                                   primary_addr);
--                      spin_lock_bh(&claim->backbone_gw->crc_lock);
--                      backbone_crc = claim->backbone_gw->crc;
--                      spin_unlock_bh(&claim->backbone_gw->crc_lock);
-+                      spin_lock_bh(&backbone_gw->crc_lock);
-+                      backbone_crc = backbone_gw->crc;
-+                      spin_unlock_bh(&backbone_gw->crc_lock);
-                       seq_printf(seq, " * %pM on %5d by %pM [%c] (%#.4x)\n",
-                                  claim->addr, BATADV_PRINT_VID(claim->vid),
--                                 claim->backbone_gw->orig,
-+                                 backbone_gw->orig,
-                                  (is_own ? 'x' : ' '),
-                                  backbone_crc);
-+
-+                      batadv_backbone_gw_put(backbone_gw);
-               }
-               rcu_read_unlock();
-       }
-diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
-index ba846b0..0051222 100644
---- a/net/batman-adv/types.h
-+++ b/net/batman-adv/types.h
-@@ -1042,6 +1042,7 @@ struct batadv_bla_backbone_gw {
-  * @addr: mac address of claimed non-mesh client
-  * @vid: vlan id this client was detected on
-  * @backbone_gw: pointer to backbone gw claiming this client
-+ * @backbone_lock: lock protecting backbone_gw pointer
-  * @lasttime: last time we heard of claim (locals only)
-  * @hash_entry: hlist node for batadv_priv_bla::claim_hash
-  * @refcount: number of contexts the object is used
-@@ -1051,6 +1052,7 @@ struct batadv_bla_claim {
-       u8 addr[ETH_ALEN];
-       unsigned short vid;
-       struct batadv_bla_backbone_gw *backbone_gw;
-+      spinlock_t backbone_lock; /* protects backbone_gw */
-       unsigned long lasttime;
-       struct hlist_node hash_entry;
-       struct rcu_head rcu;
diff --git a/batman-adv/patches/0006-batman-adv-Fix-reference-leak-in-batadv_find_router.patch b/batman-adv/patches/0006-batman-adv-Fix-reference-leak-in-batadv_find_router.patch
deleted file mode 100644 (file)
index 1eeea6e..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Thu, 30 Jun 2016 20:11:34 +0200
-Subject: [PATCH] batman-adv: Fix reference leak in batadv_find_router
-
-The replacement of last_bonding_candidate in batadv_orig_node has to be an
-atomic operation. Otherwise it is possible that the reference counter of a
-batadv_orig_ifinfo is reduced which was no longer the
-last_bonding_candidate when the new candidate is added. This can either
-lead to an invalid memory access or to reference leaks which make it
-impossible to an interface which was added to batman-adv.
-
-Fixes: 797edd9e87ac ("batman-adv: add bonding again")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/6ecc711374afd93ee0c2216b38ae52d3ce680c3f
----
- net/batman-adv/routing.c | 52 ++++++++++++++++++++++++++++++++++++------------
- net/batman-adv/types.h   |  4 +++-
- 2 files changed, 42 insertions(+), 14 deletions(-)
-
-diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
-index 6c2901a..bfac086 100644
---- a/net/batman-adv/routing.c
-+++ b/net/batman-adv/routing.c
-@@ -456,6 +456,29 @@ static int batadv_check_unicast_packet(struct batadv_priv *bat_priv,
- }
- /**
-+ * batadv_last_bonding_replace - Replace last_bonding_candidate of orig_node
-+ * @orig_node: originator node whose bonding candidates should be replaced
-+ * @new_candidate: new bonding candidate or NULL
-+ */
-+static void
-+batadv_last_bonding_replace(struct batadv_orig_node *orig_node,
-+                          struct batadv_orig_ifinfo *new_candidate)
-+{
-+      struct batadv_orig_ifinfo *old_candidate;
-+
-+      spin_lock_bh(&orig_node->neigh_list_lock);
-+      old_candidate = orig_node->last_bonding_candidate;
-+
-+      if (new_candidate)
-+              kref_get(&new_candidate->refcount);
-+      orig_node->last_bonding_candidate = new_candidate;
-+      spin_unlock_bh(&orig_node->neigh_list_lock);
-+
-+      if (old_candidate)
-+              batadv_orig_ifinfo_put(old_candidate);
-+}
-+
-+/**
-  * batadv_find_router - find a suitable router for this originator
-  * @bat_priv: the bat priv with all the soft interface information
-  * @orig_node: the destination node
-@@ -562,10 +585,6 @@ next:
-       }
-       rcu_read_unlock();
--      /* last_bonding_candidate is reset below, remove the old reference. */
--      if (orig_node->last_bonding_candidate)
--              batadv_orig_ifinfo_put(orig_node->last_bonding_candidate);
--
-       /* After finding candidates, handle the three cases:
-        * 1) there is a next candidate, use that
-        * 2) there is no next candidate, use the first of the list
-@@ -574,21 +593,28 @@ next:
-       if (next_candidate) {
-               batadv_neigh_node_put(router);
--              /* remove references to first candidate, we don't need it. */
--              if (first_candidate) {
--                      batadv_neigh_node_put(first_candidate_router);
--                      batadv_orig_ifinfo_put(first_candidate);
--              }
-+              kref_get(&next_candidate_router->refcount);
-               router = next_candidate_router;
--              orig_node->last_bonding_candidate = next_candidate;
-+              batadv_last_bonding_replace(orig_node, next_candidate);
-       } else if (first_candidate) {
-               batadv_neigh_node_put(router);
--              /* refcounting has already been done in the loop above. */
-+              kref_get(&first_candidate_router->refcount);
-               router = first_candidate_router;
--              orig_node->last_bonding_candidate = first_candidate;
-+              batadv_last_bonding_replace(orig_node, first_candidate);
-       } else {
--              orig_node->last_bonding_candidate = NULL;
-+              batadv_last_bonding_replace(orig_node, NULL);
-+      }
-+
-+      /* cleanup of candidates */
-+      if (first_candidate) {
-+              batadv_neigh_node_put(first_candidate_router);
-+              batadv_orig_ifinfo_put(first_candidate);
-+      }
-+
-+      if (next_candidate) {
-+              batadv_neigh_node_put(next_candidate_router);
-+              batadv_orig_ifinfo_put(next_candidate);
-       }
-       return router;
-diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
-index 0051222..74d865a 100644
---- a/net/batman-adv/types.h
-+++ b/net/batman-adv/types.h
-@@ -330,7 +330,9 @@ struct batadv_orig_node {
-       DECLARE_BITMAP(bcast_bits, BATADV_TQ_LOCAL_WINDOW_SIZE);
-       u32 last_bcast_seqno;
-       struct hlist_head neigh_list;
--      /* neigh_list_lock protects: neigh_list and router */
-+      /* neigh_list_lock protects: neigh_list, ifinfo_list,
-+       * last_bonding_candidate and router
-+       */
-       spinlock_t neigh_list_lock;
-       struct hlist_node hash_entry;
-       struct batadv_priv *bat_priv;
diff --git a/batman-adv/patches/0007-batman-adv-Free-last_bonding_candidate-on-release-of.patch b/batman-adv/patches/0007-batman-adv-Free-last_bonding_candidate-on-release-of.patch
deleted file mode 100644 (file)
index 9e548da..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Thu, 30 Jun 2016 21:41:13 +0200
-Subject: [PATCH] batman-adv: Free last_bonding_candidate on release of orig_node
-
-The orig_ifinfo reference counter for last_bonding_candidate in
-batadv_orig_node has to be reduced when an originator node is released.
-Otherwise the orig_ifinfo is leaked and the reference counter the netdevice
-is not reduced correctly.
-
-Fixes: 797edd9e87ac ("batman-adv: add bonding again")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
-
-Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/20df5c53865a90095099f0af80536b8abfea303b
----
- net/batman-adv/originator.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
-index fe2fcda..ab8c4f9 100644
---- a/net/batman-adv/originator.c
-+++ b/net/batman-adv/originator.c
-@@ -766,6 +766,7 @@ static void batadv_orig_node_release(struct kref *ref)
-       struct batadv_orig_node *orig_node;
-       struct batadv_orig_ifinfo *orig_ifinfo;
-       struct batadv_orig_node_vlan *vlan;
-+      struct batadv_orig_ifinfo *last_candidate;
-       orig_node = container_of(ref, struct batadv_orig_node, refcount);
-@@ -783,8 +784,14 @@ static void batadv_orig_node_release(struct kref *ref)
-               hlist_del_rcu(&orig_ifinfo->list);
-               batadv_orig_ifinfo_put(orig_ifinfo);
-       }
-+
-+      last_candidate = orig_node->last_bonding_candidate;
-+      orig_node->last_bonding_candidate = NULL;
-       spin_unlock_bh(&orig_node->neigh_list_lock);
-+      if (last_candidate)
-+              batadv_orig_ifinfo_put(last_candidate);
-+
-       spin_lock_bh(&orig_node->vlan_list_lock);
-       hlist_for_each_entry_safe(vlan, node_tmp, &orig_node->vlan_list, list) {
-               hlist_del_rcu(&vlan->list);
diff --git a/batman-adv/patches/0008-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch b/batman-adv/patches/0008-batman-adv-Fix-speedy-join-in-gateway-client-mode.patch
deleted file mode 100644 (file)
index e63b782..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Sven Eckelmann <sven@narfation.org>
-Date: Sun, 12 Jun 2016 10:43:19 +0200
-Subject: [PATCH] batman-adv: Fix speedy join in gateway client mode
-
-Speedy join only works when the received packet is either broadcast or an
-4addr unicast packet. Thus packets converted from broadcast to unicast via
-the gateway handling code have to be converted to 4addr packets to allow
-the receiving gateway server to add the sender address as temporary entry
-to the translation table.
-
-Not doing it will make the batman-adv gateway server drop the DHCP response
-in many situations because it doesn't yet have the TT entry for the
-destination of the DHCP response.
-
-Fixes: 9cbc67d9da47 ("batman-adv: change interface_rx to get orig node")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
----
- net/batman-adv/send.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
-index f2f1256..0103976 100644
---- a/net/batman-adv/send.c
-+++ b/net/batman-adv/send.c
-@@ -424,8 +424,8 @@ int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
-       struct batadv_orig_node *orig_node;
-       orig_node = batadv_gw_get_selected_orig(bat_priv);
--      return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0,
--                                     orig_node, vid);
-+      return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST_4ADDR,
-+                                     BATADV_P_DATA, orig_node, vid);
- }
- void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface)
index be624605b6be0ce855c45785d50242d77abf68cb..e9c3ce064da5ad6fc490a77b3beff87a28becadb 100644 (file)
@@ -7,12 +7,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bird
-PKG_VERSION:=1.6.0
+PKG_VERSION:=1.6.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
-PKG_MD5SUM:=4c92ec3548a2a120243879b6ef7046dd
+PKG_MD5SUM:=36bc84db93ae7a2fe10194075331e1b9
 PKG_BUILD_DEPENDS:=libncurses libreadline
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
diff --git a/bird/patches/001-netlink-update-struct-msghdr.patch b/bird/patches/001-netlink-update-struct-msghdr.patch
deleted file mode 100644 (file)
index 491e8f9..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From 31e9e10144a6994773a04d94903fa3bdde6de91e Mon Sep 17 00:00:00 2001
-From: Stijn Tintel <stijn@linux-ipv6.be>
-Date: Tue, 10 May 2016 16:45:35 +0300
-Subject: [PATCH] netlink: update struct msghdr
-
-The netlink code assumes an order for the members of struct msghdr.
-This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by
-using designated initializers instead.
-
-Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
----
- sysdep/linux/netlink.c | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
-index 1ffdff0..b42e7b6 100644
---- a/sysdep/linux/netlink.c
-+++ b/sysdep/linux/netlink.c
-@@ -125,7 +125,12 @@ nl_get_reply(struct nl_sock *nl)
-       {
-         struct iovec iov = { nl->rx_buffer, NL_RX_SIZE };
-         struct sockaddr_nl sa;
--        struct msghdr m = { (struct sockaddr *) &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
-+        struct msghdr m = {
-+          .msg_name = &sa,
-+          .msg_namelen = sizeof(sa),
-+          .msg_iov = &iov,
-+          .msg_iovlen = 1,
-+        };
-         int x = recvmsg(nl->fd, &m, 0);
-         if (x < 0)
-           die("nl_get_reply: %m");
-@@ -1231,7 +1236,12 @@ nl_async_hook(sock *sk, int size UNUSED)
- {
-   struct iovec iov = { nl_async_rx_buffer, NL_RX_SIZE };
-   struct sockaddr_nl sa;
--  struct msghdr m = { (struct sockaddr *) &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
-+  struct msghdr m = {
-+    .msg_name = &sa,
-+    .msg_namelen = sizeof(sa),
-+    .msg_iov = &iov,
-+    .msg_iovlen = 1,
-+  };
-   struct nlmsghdr *h;
-   int x;
-   uint len;
--- 
-2.7.3
-
index 97f0b6cb86c343257b58bae5be64133d4eab231a..9a33bbebd879c0c3b57c4fb3d7174c14b61fd319 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=miniupnpd
 PKG_VERSION:=2.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_URL:=http://miniupnp.free.fr/files
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
index 65bc5006d1d518d8c8575b158474a9d36dbd9ee6..320437e87b82b564dc0c95e0538b3e95c7fe9d73 100644 (file)
 
 [ ! "$ACTION" = "ifup" ] && service_check /usr/sbin/miniupnpd && exit 0
 
-local iface
-local ifname
-local tmpconf="/var/etc/miniupnpd.conf"
-local extiface=$(uci get upnpd.config.external_iface)
-local extzone=$(uci get upnpd.config.external_zone)
+tmpconf="/var/etc/miniupnpd.conf"
+extiface=$(uci get upnpd.config.external_iface)
+extzone=$(uci get upnpd.config.external_zone)
 
 . /lib/functions/network.sh
 
index 79def5dc179e9687b20969931bba76f3214095e6..c7dc6a26289991c91b4fd00d33cdb66b60d58f97 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2006-2014 OpenWrt.org
 
-START=95
+START=94
 STOP=15
 
 SERVICE_USE_PID=1
index 8a952ef717419e9f093b89989d875b9dc48b36ee..2f36eaabe6b0974bb3c23db08b81610e424269f3 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=oonf-dlep-proxy
-PKG_VERSION:=0.12.2
-PKG_REV:=ea3e6e51f94b9b0642f84b44de35b6cab5f30b65
+PKG_VERSION:=0.13.0
+PKG_REV:=9f941b25e1ac806db9d41e9892a5cf361bfe98f5
 PKG_RELEASE:=$(PKG_REV)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
index 0e0f75efaec526fc343c54a5a8aeb8d8eb2d4f53..ac1f19c47e095e8b2d278cbd4fd89742cb3f6668 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=oonf-dlep-radio
-PKG_VERSION:=0.12.2
-PKG_REV:=ea3e6e51f94b9b0642f84b44de35b6cab5f30b65
+PKG_VERSION:=0.13.0
+PKG_REV:=9f941b25e1ac806db9d41e9892a5cf361bfe98f5
 PKG_RELEASE:=$(PKG_REV)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
index ccc16220f038311a90df1628b3e2bfcb8ac95ba1..9b8e988509bc039a2375d7aa2c524a15ed4582d6 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=oonf-olsrd2
-PKG_VERSION:=0.12.2
-PKG_REV:=ea3e6e51f94b9b0642f84b44de35b6cab5f30b65
+PKG_VERSION:=0.13.0
+PKG_REV:=9f941b25e1ac806db9d41e9892a5cf361bfe98f5
 PKG_RELEASE:=$(PKG_REV)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
index 67eedd672fdd6a0ec62fa475f04325b6a7384757..f8963e01ac3a9710097ad892c11e91e35504504f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2013 OpenWrt.org
+# Copyright (C) 2006-2016 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=quagga
-PKG_VERSION:=0.99.22.4
-PKG_RELEASE:=2
-PKG_MD5SUM:=03ef24a448be47beba80efa2152f8a28
+PKG_VERSION:=1.1.0
+PKG_RELEASE:=1
+PKG_MD5SUM:=daa303871e07ea5856aae6fd79e89722
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://download.savannah.gnu.org/releases/quagga/
 PKG_CONFIG_DEPENDS:= \
        CONFIG_IPV6 \
@@ -25,7 +25,6 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_quagga-ospf6d \
        CONFIG_PACKAGE_quagga-ripd \
        CONFIG_PACKAGE_quagga-ripngd \
-       CONFIG_PACKAGE_quagga-babeld \
        CONFIG_PACKAGE_quagga-vtysh
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
@@ -41,7 +40,7 @@ define Package/quagga/Default
   DEPENDS:=quagga
   TITLE:=The Quagga Software Routing Suite
   URL:=http://www.quagga.net
-  MAINTAINER:=Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
+  MAINTAINER:=Vasilis Tsiligiannis <acinonyx@openwrt.gr>
 endef
 
 define Package/quagga
@@ -77,6 +76,7 @@ endef
 
 define Package/quagga-libospf
   $(call Package/quagga/Default)
+  DEPENDS+=+quagga-libzebra
   TITLE:=OSPF library
 endef
 
@@ -94,13 +94,13 @@ endef
 
 define Package/quagga-ospfd
   $(call Package/quagga/Default)
-  DEPENDS+=+quagga-libospf +quagga-libzebra
+  DEPENDS+=+quagga-libospf
   TITLE:=OSPFv2 routing engine
 endef
 
 define Package/quagga-ospf6d
   $(call Package/quagga/Default)
-  DEPENDS+=+quagga-libospf +quagga-libzebra @IPV6
+  DEPENDS+=+quagga-libospf @IPV6
   TITLE:=OSPFv3 routing engine
 endef
 
@@ -116,12 +116,6 @@ define Package/quagga-ripngd
   TITLE:=RIPNG routing engine
 endef
 
-define Package/quagga-babeld
-  $(call Package/quagga/Default)
-  DEPENDS+=+quagga-libzebra @IPV6
-  TITLE:=Babel routing engine
-endef
-
 define Package/quagga-vtysh
   $(call Package/quagga/Default)
   DEPENDS+=+quagga-libzebra +libreadline +libncurses
@@ -156,10 +150,6 @@ define Package/quagga-ripngd/conffiles
 /etc/quagga/ripngd.conf
 endef
 
-define Package/quagga-babeld/conffiles
-/etc/quagga/babeld.conf
-endef
-
 ifneq ($(SDK),)
 CONFIG_PACKAGE_quagga-libzebra:=m
 CONFIG_PACKAGE_quagga-libospf:=m
@@ -170,7 +160,6 @@ CONFIG_PACKAGE_quagga-isisd:=m
 CONFIG_PACKAGE_quagga-ospf6d:=m
 CONFIG_PACKAGE_quagga-ripd:=m
 CONFIG_PACKAGE_quagga-ripngd:=m
-CONFIG_PACKAGE_quagga-babeld:=m
 CONFIG_PACKAGE_quagga-vtysh:=m
 endif
 
@@ -181,7 +170,6 @@ CONFIGURE_ARGS+= \
        --disable-static \
        --enable-user=network \
        --enable-group=network \
-       --enable-pie=no \
        --enable-multipath=8 \
        --disable-ospfclient \
        --disable-capabilities \
@@ -193,7 +181,6 @@ CONFIGURE_ARGS+= \
        $(call autoconf_bool,CONFIG_PACKAGE_quagga-ospf6d,ospf6d) \
        $(call autoconf_bool,CONFIG_PACKAGE_quagga-ripd,ripd) \
        $(call autoconf_bool,CONFIG_PACKAGE_quagga-ripngd,ripngd) \
-       $(call autoconf_bool,CONFIG_PACKAGE_quagga-babeld,babeld) \
        $(call autoconf_bool,CONFIG_PACKAGE_quagga-vtysh,vtysh) \
 
 MAKE_FLAGS += \
@@ -267,14 +254,6 @@ define Package/quagga-ripngd/install
        $(INSTALL_CONF) ./files/quagga.conf $(1)/etc/quagga/ripngd.conf
 endef
 
-define Package/quagga-babeld/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/babeld $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc/quagga
-       chmod 0750 $(1)/etc/quagga
-       $(INSTALL_CONF) ./files/quagga.conf $(1)/etc/quagga/babeld.conf
-endef
-
 define Package/quagga-vtysh/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vtysh $(1)/usr/bin/
@@ -301,5 +280,4 @@ $(eval $(call BuildPackage,quagga-ospfd))
 $(eval $(call BuildPackage,quagga-ospf6d))
 $(eval $(call BuildPackage,quagga-ripd))
 $(eval $(call BuildPackage,quagga-ripngd))
-$(eval $(call BuildPackage,quagga-babeld))
 $(eval $(call BuildPackage,quagga-vtysh))
diff --git a/quagga/patches/110-vtysh-fix-build-against-readline-6.3.patch b/quagga/patches/110-vtysh-fix-build-against-readline-6.3.patch
deleted file mode 100644 (file)
index e8c499e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/vtysh/vtysh.c
-+++ b/vtysh/vtysh.c
-@@ -2211,9 +2211,9 @@
- vtysh_readline_init (void)
- {
-   /* readline related settings. */
--  rl_bind_key ('?', (Function *) vtysh_rl_describe);
-+  rl_bind_key ('?', (rl_command_func_t *) vtysh_rl_describe);
-   rl_completion_entry_function = vtysh_completion_entry_function;
--  rl_attempted_completion_function = (CPPFunction *)new_completion;
-+  rl_attempted_completion_function = (rl_completion_func_t *) new_completion;
-   /* do not append space after completion. It will be appended
-    * in new_completion() function explicitly. */
-   rl_completion_append_character = '\0';
-
diff --git a/quagga/patches/120-quagga_manet.patch b/quagga/patches/120-quagga_manet.patch
deleted file mode 100644 (file)
index 2411bd0..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
---- a/lib/log.c
-+++ b/lib/log.c
-@@ -925,13 +925,19 @@ proto_redistnum(int afi, const char *s)
-       return ZEBRA_ROUTE_STATIC;
-       else if (strncmp (s, "r", 1) == 0)
-       return ZEBRA_ROUTE_RIP;
--      else if (strncmp (s, "o", 1) == 0)
-+      else if (strncmp (s, "os", 2) == 0)
-       return ZEBRA_ROUTE_OSPF;
-       else if (strncmp (s, "i", 1) == 0)
-       return ZEBRA_ROUTE_ISIS;
-       else if (strncmp (s, "bg", 2) == 0)
-       return ZEBRA_ROUTE_BGP;
--      else if (strncmp (s, "ba", 2) == 0)
-+      else if (strncmp (s, "h", 1) == 0)
-+      return ZEBRA_ROUTE_HSLS;
-+      else if (strncmp (s, "ol", 2) == 0)
-+      return ZEBRA_ROUTE_OLSR;
-+      else if (strncmp (s, "bat", 3) == 0)
-+      return ZEBRA_ROUTE_BATMAN;
-+      else if (strncmp (s, "bab", 3) == 0)
-       return ZEBRA_ROUTE_BABEL;
-     }
-   if (afi == AFI_IP6)
-@@ -944,13 +950,19 @@ proto_redistnum(int afi, const char *s)
-       return ZEBRA_ROUTE_STATIC;
-       else if (strncmp (s, "r", 1) == 0)
-       return ZEBRA_ROUTE_RIPNG;
--      else if (strncmp (s, "o", 1) == 0)
-+      else if (strncmp (s, "os", 2) == 0)
-       return ZEBRA_ROUTE_OSPF6;
-       else if (strncmp (s, "i", 1) == 0)
-       return ZEBRA_ROUTE_ISIS;
-       else if (strncmp (s, "bg", 2) == 0)
-       return ZEBRA_ROUTE_BGP;
--      else if (strncmp (s, "ba", 2) == 0)
-+      else if (strncmp (s, "h", 1) == 0)
-+      return ZEBRA_ROUTE_HSLS;
-+      else if (strncmp (s, "ol", 2) == 0)
-+      return ZEBRA_ROUTE_OLSR;
-+      else if (strncmp (s, "bat", 3) == 0)
-+      return ZEBRA_ROUTE_BATMAN;
-+      else if (strncmp (s, "bab", 3) == 0)
-       return ZEBRA_ROUTE_BABEL;
-     }
-   return -1;
---- a/lib/route_types.txt
-+++ b/lib/route_types.txt
-@@ -51,13 +51,9 @@ ZEBRA_ROUTE_OSPF,       ospf,      ospfd
- ZEBRA_ROUTE_OSPF6,      ospf6,     ospf6d, 'O', 0, 1, "OSPFv6"
- ZEBRA_ROUTE_ISIS,       isis,      isisd,  'I', 1, 1, "IS-IS"
- ZEBRA_ROUTE_BGP,        bgp,       bgpd,   'B', 1, 1, "BGP"
--# HSLS and OLSR both are AFI independent (so: 1, 1), however
--# we want to disable for them for general Quagga distribution.
--# This at least makes it trivial for users of these protocols
--# to 'switch on' redist support (direct numeric entry remaining
--# possible).
--ZEBRA_ROUTE_HSLS,       hsls,      hslsd,  'H', 0, 0, "HSLS"
--ZEBRA_ROUTE_OLSR,       olsr,      olsrd,  'o', 0, 0, "OLSR"
-+ZEBRA_ROUTE_HSLS,       hsls,      hslsd,  'H', 1, 1, "HSLS"
-+ZEBRA_ROUTE_OLSR,       olsr,      olsrd,  'o', 1, 1, "OLSR"
-+ZEBRA_ROUTE_BATMAN,     batman,    batmand,'b', 1, 1, "BATMAN"
- ZEBRA_ROUTE_BABEL,      babel,     babeld, 'A', 1, 1, "Babel"
- ## help strings
-@@ -72,5 +68,6 @@ ZEBRA_ROUTE_OSPF6,  "Open Shortest Path
- ZEBRA_ROUTE_ISIS,   "Intermediate System to Intermediate System (IS-IS)"
- ZEBRA_ROUTE_BGP,    "Border Gateway Protocol (BGP)"
- ZEBRA_ROUTE_HSLS,   "Hazy-Sighted Link State Protocol (HSLS)"
--ZEBRA_ROUTE_OLSR,   "Optimised Link State Routing (OLSR)"
-+ZEBRA_ROUTE_OLSR,   "Optimized Link State Routing (OLSR)"
-+ZEBRA_ROUTE_BATMAN, "Better Approach to Mobile Ad-Hoc Networking (BATMAN)"
- ZEBRA_ROUTE_BABEL,  "Babel routing protocol (Babel)"
---- a/ripd/rip_zebra.c
-+++ b/ripd/rip_zebra.c
-@@ -206,9 +206,12 @@ static struct {
-   {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
-   {ZEBRA_ROUTE_CONNECT, 1, "connected"},
-   {ZEBRA_ROUTE_STATIC,  1, "static"},
--  {ZEBRA_ROUTE_OSPF,    1, "ospf"},
-+  {ZEBRA_ROUTE_OSPF,    2, "ospf"},
-   {ZEBRA_ROUTE_BGP,     2, "bgp"},
--  {ZEBRA_ROUTE_BABEL,   2, "babel"},
-+  {ZEBRA_ROUTE_HSLS,    1, "hsls"},
-+  {ZEBRA_ROUTE_OLSR,    2, "olsr"},
-+  {ZEBRA_ROUTE_BATMAN,  3, "batman"},
-+  {ZEBRA_ROUTE_BABEL,   3, "babel"},
-   {0, 0, NULL}
- };
---- a/ripngd/ripng_zebra.c
-+++ b/ripngd/ripng_zebra.c
-@@ -216,9 +216,12 @@ static struct {
-   {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
-   {ZEBRA_ROUTE_CONNECT, 1, "connected"},
-   {ZEBRA_ROUTE_STATIC,  1, "static"},
--  {ZEBRA_ROUTE_OSPF6,   1, "ospf6"},
-+  {ZEBRA_ROUTE_OSPF6,   2, "ospf6"},
-   {ZEBRA_ROUTE_BGP,     2, "bgp"},
--  {ZEBRA_ROUTE_BABEL,   2, "babel"},
-+  {ZEBRA_ROUTE_HSLS,    1, "hsls"},
-+  {ZEBRA_ROUTE_OLSR,    2, "olsr"},
-+  {ZEBRA_ROUTE_BATMAN,  3, "batman"},
-+  {ZEBRA_ROUTE_BABEL,   3, "babel"},
-   {0, 0, NULL}
- };
---- a/zebra/rt_netlink.c
-+++ b/zebra/rt_netlink.c
-@@ -1609,6 +1609,9 @@ netlink_route_multipath (int cmd, struct
-                         addattr_l (&req.n, sizeof req, RTA_PREFSRC,
-                                &nexthop->src.ipv4, bytelen);
-+                    if (rib->type == ZEBRA_ROUTE_OLSR)
-+                      req.r.rtm_scope = RT_SCOPE_LINK;
-+
-                     if (IS_ZEBRA_DEBUG_KERNEL)
-                       zlog_debug("netlink_route_multipath() (single hop): "
-                                  "nexthop via if %u", nexthop->ifindex);
---- a/zebra/zebra_rib.c
-+++ b/zebra/zebra_rib.c
-@@ -68,6 +68,9 @@ static const struct
-   [ZEBRA_ROUTE_OSPF6]   = {ZEBRA_ROUTE_OSPF6,   110},
-   [ZEBRA_ROUTE_ISIS]    = {ZEBRA_ROUTE_ISIS,    115},
-   [ZEBRA_ROUTE_BGP]     = {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */},
-+  [ZEBRA_ROUTE_HSLS]    = {ZEBRA_ROUTE_HSLS,      0},
-+  [ZEBRA_ROUTE_OLSR]    = {ZEBRA_ROUTE_OLSR,      0},
-+  [ZEBRA_ROUTE_BATMAN]  = {ZEBRA_ROUTE_BATMAN,    0},
-   [ZEBRA_ROUTE_BABEL]   = {ZEBRA_ROUTE_BABEL,    95},
-   /* no entry/default: 150 */
- };
-@@ -456,6 +459,18 @@ nexthop_active_ipv4 (struct rib *rib, st
-                 }
-             return 0;
-           }
-+        else if (match->type == ZEBRA_ROUTE_OLSR)
-+          {
-+            for (newhop = match->nexthop; newhop; newhop = newhop->next)
-+              if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
-+                  && newhop->type == NEXTHOP_TYPE_IFINDEX)
-+                {
-+                  if (nexthop->type == NEXTHOP_TYPE_IPV4)
-+                    nexthop->ifindex = newhop->ifindex;
-+                  return 1;
-+                }
-+            return 0;
-+          }
-         else
-           {
-             return 0;
-@@ -560,6 +575,18 @@ nexthop_active_ipv6 (struct rib *rib, st
-                 }
-             return 0;
-           }
-+        else if (match->type == ZEBRA_ROUTE_OLSR)
-+          {
-+            for (newhop = match->nexthop; newhop; newhop = newhop->next)
-+              if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
-+                  && newhop->type == NEXTHOP_TYPE_IFINDEX)
-+                {
-+                  if (nexthop->type == NEXTHOP_TYPE_IPV6)
-+                    nexthop->ifindex = newhop->ifindex;
-+                  return 1;
-+                }
-+            return 0;
-+          }
-         else
-           {
-             return 0;
-@@ -1376,6 +1403,8 @@ static const u_char meta_queue_map[ZEBRA
-   [ZEBRA_ROUTE_ISIS]    = 2,
-   [ZEBRA_ROUTE_BGP]     = 3,
-   [ZEBRA_ROUTE_HSLS]    = 4,
-+  [ZEBRA_ROUTE_OLSR]    = 4,
-+  [ZEBRA_ROUTE_BATMAN]  = 4,
-   [ZEBRA_ROUTE_BABEL]   = 2,
- };
---- a/zebra/zebra_snmp.c
-+++ b/zebra/zebra_snmp.c
-@@ -245,6 +245,12 @@ proto_trans(int type)
-       return 1; /* shouldn't happen */
-     case ZEBRA_ROUTE_BGP:
-       return 14; /* bgp */
-+    case ZEBRA_ROUTE_HSLS:
-+      return 1; /* other */
-+    case ZEBRA_ROUTE_OLSR:
-+      return 1; /* other */
-+    case ZEBRA_ROUTE_BATMAN:
-+      return 1; /* other */
-     default:
-       return 1; /* other */
-     }
---- a/zebra/zebra_vty.c
-+++ b/zebra/zebra_vty.c
-@@ -558,7 +558,10 @@ vty_show_ip_route_detail (struct vty *vt
-         || rib->type == ZEBRA_ROUTE_OSPF
-         || rib->type == ZEBRA_ROUTE_BABEL
-         || rib->type == ZEBRA_ROUTE_ISIS
--        || rib->type == ZEBRA_ROUTE_BGP)
-+        || rib->type == ZEBRA_ROUTE_BGP
-+        || rib->type == ZEBRA_ROUTE_HSLS
-+        || rib->type == ZEBRA_ROUTE_OLSR
-+        || rib->type == ZEBRA_ROUTE_BATMAN)
-       {
-         time_t uptime;
-         struct tm *tm;
-@@ -784,7 +787,10 @@ vty_show_ip_route (struct vty *vty, stru
-         || rib->type == ZEBRA_ROUTE_OSPF
-         || rib->type == ZEBRA_ROUTE_BABEL
-         || rib->type == ZEBRA_ROUTE_ISIS
--        || rib->type == ZEBRA_ROUTE_BGP)
-+        || rib->type == ZEBRA_ROUTE_BGP
-+        || rib->type == ZEBRA_ROUTE_HSLS
-+        || rib->type == ZEBRA_ROUTE_OLSR
-+        || rib->type == ZEBRA_ROUTE_BATMAN)
-       {
-         time_t uptime;
-         struct tm *tm;
-@@ -1577,7 +1583,10 @@ vty_show_ipv6_route_detail (struct vty *
-         || rib->type == ZEBRA_ROUTE_OSPF6
-         || rib->type == ZEBRA_ROUTE_BABEL
-         || rib->type == ZEBRA_ROUTE_ISIS
--        || rib->type == ZEBRA_ROUTE_BGP)
-+        || rib->type == ZEBRA_ROUTE_BGP
-+        || rib->type == ZEBRA_ROUTE_HSLS
-+        || rib->type == ZEBRA_ROUTE_OLSR
-+        || rib->type == ZEBRA_ROUTE_BATMAN)
-       {
-         time_t uptime;
-         struct tm *tm;
-@@ -1757,7 +1766,10 @@ vty_show_ipv6_route (struct vty *vty, st
-         || rib->type == ZEBRA_ROUTE_OSPF6
-         || rib->type == ZEBRA_ROUTE_BABEL
-         || rib->type == ZEBRA_ROUTE_ISIS
--        || rib->type == ZEBRA_ROUTE_BGP)
-+        || rib->type == ZEBRA_ROUTE_BGP
-+        || rib->type == ZEBRA_ROUTE_HSLS
-+        || rib->type == ZEBRA_ROUTE_OLSR
-+        || rib->type == ZEBRA_ROUTE_BATMAN)
-       {
-         time_t uptime;
-         struct tm *tm;
index b699775273d88934f9180b8a8d6adb9ce59d3b2f..6d1c1ea95b239b960e96adac7cad86ad1cc08c3f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/bgpd/bgp_network.c
 +++ b/bgpd/bgp_network.c
-@@ -193,8 +193,7 @@ bgp_accept (struct thread *thread)
+@@ -257,8 +257,7 @@ bgp_accept (struct thread *thread)
      peer->fd = bgp_sock;
      peer->status = Active;
      peer->local_id = peer1->local_id;
      sockunion2str (&su, buf, SU_ADDRSTRLEN);
 --- a/bgpd/bgpd.h
 +++ b/bgpd/bgpd.h
-@@ -732,6 +732,7 @@ struct bgp_nlri
+@@ -752,6 +752,7 @@ struct bgp_nlri
  /* BGP timers default value.  */
- #define BGP_INIT_START_TIMER                     5
- #define BGP_ERROR_START_TIMER                   30
+ #define BGP_INIT_START_TIMER                     1
 +#define BGP_LARGE_HOLDTIME                     240
  #define BGP_DEFAULT_HOLDTIME                   180
  #define BGP_DEFAULT_KEEPALIVE                   60 
- #define BGP_DEFAULT_ASORIGINATE                 15
+ #define BGP_DEFAULT_EBGP_ROUTEADV               30
index 32c120832a008a04966c7bbdd8fae2771db4d496..84451033f937ca7e4876c4e508bc6c5ac1b881ff 100644 (file)
@@ -1,6 +1,6 @@
 --- a/lib/command.c
 +++ b/lib/command.c
-@@ -2527,6 +2527,13 @@ DEFUN (config_write_file,
+@@ -3198,6 +3198,13 @@ DEFUN (config_write_file,
                 VTY_NEWLINE);
          goto finished;
        }
@@ -14,7 +14,7 @@
    if (link (config_file, config_file_sav) != 0)
      {
        vty_out (vty, "Can't backup old configuration file %s.%s", config_file_sav,
-@@ -2540,7 +2547,23 @@ DEFUN (config_write_file,
+@@ -3211,7 +3218,23 @@ DEFUN (config_write_file,
                VTY_NEWLINE);
        goto finished;
      }
index 15595a7363a14d5441a4aab783a0a8e18abb6b25..ad4c4dbc35fa1d188702bcdef108799c37a66759 100644 (file)
@@ -1,6 +1,6 @@
 --- a/vtysh/vtysh.c
 +++ b/vtysh/vtysh.c
-@@ -268,7 +268,7 @@ vtysh_pager_init (void)
+@@ -251,7 +251,7 @@ vtysh_pager_init (void)
    if (pager_defined)
      vtysh_pager_name = strdup (pager_defined);
    else
@@ -9,7 +9,7 @@
  }
  
  /* Command execution over the vty interface. */
-@@ -1884,7 +1884,7 @@ DEFUN (vtysh_terminal_length,
+@@ -2047,7 +2047,7 @@ DEFUN (vtysh_terminal_length,
  {
    int lines;
    char *endptr = NULL;
@@ -18,7 +18,7 @@
  
    lines = strtol (argv[0], &endptr, 10);
    if (lines < 0 || lines > 512 || *endptr != '\0')
-@@ -1901,7 +1901,7 @@ DEFUN (vtysh_terminal_length,
+@@ -2064,7 +2064,7 @@ DEFUN (vtysh_terminal_length,
  
    if (lines != 0)
      {