From 579b7b095d0ee3bc4adfc8e5b09464aa75ab773e Mon Sep 17 00:00:00 2001 From: Vasilis Tsiligiannis Date: Sat, 30 Oct 2010 19:25:34 +0000 Subject: [PATCH 1/1] [packages] quagga: Remove multipath caching policy patch since it is unsupported in recent kernels (#8136) SVN-Revision: 23722 --- .../100-quagga_multipath_caching_policy.patch | 279 ------------------ 1 file changed, 279 deletions(-) delete mode 100644 net/quagga/patches/100-quagga_multipath_caching_policy.patch diff --git a/net/quagga/patches/100-quagga_multipath_caching_policy.patch b/net/quagga/patches/100-quagga_multipath_caching_policy.patch deleted file mode 100644 index 157bfc6d21..0000000000 --- a/net/quagga/patches/100-quagga_multipath_caching_policy.patch +++ /dev/null @@ -1,279 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -397,7 +397,7 @@ dnl ------------------------- - AC_CHECK_HEADERS([stropts.h sys/ksym.h sys/times.h sys/select.h \ - sys/types.h linux/version.h netdb.h asm/types.h \ - sys/param.h limits.h signal.h libutil.h \ -- sys/socket.h netinet/in.h time.h sys/time.h]) -+ sys/socket.h netinet/in.h time.h sys/time.h linux/ip_mp_alg.h]) - - dnl Utility macro to avoid retyping includes all the time - m4_define([QUAGGA_INCLUDES], ---- a/lib/command.h -+++ b/lib/command.h -@@ -101,6 +101,7 @@ enum node_type - DUMP_NODE, /* Packet dump node. */ - FORWARDING_NODE, /* IP forwarding node. */ - PROTOCOL_NODE, /* protocol filtering node */ -+ MULTIPATH_NODE, /* Multipath policy node */ - VTY_NODE, /* Vty node. */ - }; - -@@ -272,6 +273,7 @@ struct desc - /* Common descriptions. */ - #define SHOW_STR "Show running system information\n" - #define IP_STR "IP information\n" -+#define MULTIPATH_STR "Configure multipath policy\n" - #define IPV6_STR "IPv6 information\n" - #define NO_STR "Negate a command or set its defaults\n" - #define REDIST_STR "Redistribute information from another routing protocol\n" ---- a/lib/zebra.h -+++ b/lib/zebra.h -@@ -176,6 +176,10 @@ typedef int socklen_t; - #define RT_TABLE_MAIN 0 - #endif /* HAVE_NETLINK */ - -+#ifdef HAVE_LINUX_IP_MP_ALG_H -+#include -+#endif /* HAVE_LINUX_IP_MP_ALG_H */ -+ - #ifdef HAVE_NETDB_H - #include - #endif /* HAVE_NETDB_H */ ---- a/zebra/main.c -+++ b/zebra/main.c -@@ -44,6 +44,7 @@ - struct zebra_t zebrad = - { - .rtm_table_default = 0, -+ .mpath = 0, - }; - - /* process id. */ ---- /dev/null -+++ b/zebra/multipath.h -@@ -0,0 +1,37 @@ -+/* -+ * multipath policy names. -+ * -+ * This file is part of Quagga routing suite. -+ * -+ * Quagga is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2, or (at your option) any -+ * later version. -+ * -+ * Quagga is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GNU Zebra; see the file COPYING. If not, write to the Free -+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+ * 02111-1307, USA. -+ */ -+ -+#ifndef ZEBRA_MULTIPATH_H -+#define ZEBRA_MULTIPATH_H -+#include -+ -+#ifdef HAVE_LINUX_IP_MP_ALG_H -+ -+static char *mp_alg_names[IP_MP_ALG_MAX+1] = { -+ [IP_MP_ALG_NONE] = "none", -+ [IP_MP_ALG_RR] = "rr", -+ [IP_MP_ALG_DRR] = "drr", -+ [IP_MP_ALG_RANDOM] = "random", -+ [IP_MP_ALG_WRANDOM] = "wrandom" -+ }; -+#endif -+#endif -+ ---- a/zebra/rt_netlink.c -+++ b/zebra/rt_netlink.c -@@ -36,6 +36,7 @@ - #include "thread.h" - #include "privs.h" - -+#include "multipath.h" - #include "zebra/zserv.h" - #include "zebra/rt.h" - #include "zebra/redistribute.h" -@@ -1694,6 +1695,16 @@ netlink_route_multipath (int cmd, struct - if (src) - addattr_l (&req.n, sizeof req, RTA_PREFSRC, &src->ipv4, bytelen); - -+#ifdef HAVE_LINUX_IP_MP_ALG_H -+ if (zebrad.mpath != IP_MP_ALG_NONE) -+ { -+ if (IS_ZEBRA_DEBUG_KERNEL) -+ zlog_debug("netlink_route_multipath() (multihop): " -+ "multipath policy : %s",mp_alg_names[zebrad.mpath]); -+ -+ addattr_l (&req.n, 1024, RTA_MP_ALGO, &zebrad.mpath, sizeof(zebrad.mpath)); -+ } -+#endif - if (rta->rta_len > RTA_LENGTH (0)) - addattr_l (&req.n, 1024, RTA_MULTIPATH, RTA_DATA (rta), - RTA_PAYLOAD (rta)); ---- a/zebra/zserv.c -+++ b/zebra/zserv.c -@@ -36,6 +36,7 @@ - #include "privs.h" - #include "network.h" - #include "buffer.h" -+#include "multipath.h" - - #include "zebra/zserv.h" - #include "zebra/router-id.h" -@@ -1120,6 +1121,9 @@ zebra_client_create (int sock) - /* Set table number. */ - client->rtm_table = zebrad.rtm_table_default; - -+ /* Set multipath policy */ -+ client->mpath = zebrad.mpath; -+ - /* Add this client to linked list. */ - listnode_add (zebrad.client_list, client); - -@@ -1697,6 +1701,91 @@ static struct cmd_node forwarding_node = - }; - - -+#ifdef HAVE_LINUX_IP_MP_ALG_H -+DEFUN (multipath_rr, -+ multipath_rr_cmd, -+ "multipath rr", -+ MULTIPATH_STR -+ "Round Robin multipath policy") -+{ -+ zebrad.mpath=IP_MP_ALG_RR; -+ return CMD_SUCCESS; -+} -+ -+DEFUN (multipath_drr, -+ multipath_drr_cmd, -+ "multipath drr", -+ MULTIPATH_STR -+ "Device round robin multipath policy") -+{ -+ zebrad.mpath=IP_MP_ALG_DRR; -+ return CMD_SUCCESS; -+} -+ -+DEFUN (multipath_random, -+ multipath_random_cmd, -+ "multipath random", -+ MULTIPATH_STR -+ "Random multipath policy") -+{ -+ zebrad.mpath=IP_MP_ALG_RANDOM; -+ return CMD_SUCCESS; -+} -+ -+DEFUN (multipath_wrandom, -+ multipath_wrandom_cmd, -+ "multipath wrandom", -+ MULTIPATH_STR -+ "Weighted random multipath policy") -+{ -+ zebrad.mpath=IP_MP_ALG_WRANDOM; -+ return CMD_SUCCESS; -+} -+ -+DEFUN (no_multipath, -+ no_multipath_cmd, -+ "no multipath", -+ NO_STR -+ MULTIPATH_STR -+ "Remove multipath policy") -+{ -+ zebrad.mpath=IP_MP_ALG_NONE; -+ return CMD_SUCCESS; -+} -+ -+DEFUN (show_multipath, -+ show_multipath_cmd, -+ "show multipath", -+ SHOW_STR -+ "Show multipath policy") -+{ -+ vty_out (vty, "multipath %s%s", mp_alg_names[zebrad.mpath], -+ VTY_NEWLINE); -+ return CMD_SUCCESS; -+} -+ -+/* multipath policy configuration write function. */ -+static int -+config_write_multipath (struct vty *vty) -+{ -+ -+ -+ if (zebrad.mpath) -+ vty_out (vty, "multipath %s%s", mp_alg_names[zebrad.mpath], -+ VTY_NEWLINE); -+ return 0; -+} -+ -+/* table node for multipath policy. */ -+struct cmd_node multipath_node = -+{ -+ MULTIPATH_NODE, -+ "", -+ 1 -+}; -+ -+#endif /* HAVE_LINUX_IP_MP_ALG_H */ -+ - /* Initialisation of zebra and installation of commands. */ - void - zebra_init (void) -@@ -1708,6 +1797,10 @@ zebra_init (void) - install_node (&table_node, config_write_table); - install_node (&forwarding_node, config_write_forwarding); - -+#ifdef HAVE_LINUX_IP_MP_ALG_H -+ install_node (&multipath_node, config_write_multipath); -+#endif -+ - install_element (VIEW_NODE, &show_ip_forwarding_cmd); - install_element (ENABLE_NODE, &show_ip_forwarding_cmd); - install_element (CONFIG_NODE, &ip_forwarding_cmd); -@@ -1718,6 +1811,14 @@ zebra_init (void) - install_element (VIEW_NODE, &show_table_cmd); - install_element (ENABLE_NODE, &show_table_cmd); - install_element (CONFIG_NODE, &config_table_cmd); -+#ifdef HAVE_LINUX_IP_MP_ALG_H -+ install_element (CONFIG_NODE, &multipath_rr_cmd); -+ install_element (CONFIG_NODE, &multipath_drr_cmd); -+ install_element (CONFIG_NODE, &multipath_random_cmd); -+ install_element (CONFIG_NODE, &multipath_wrandom_cmd); -+ install_element (CONFIG_NODE, &no_multipath_cmd); -+ install_element (ENABLE_NODE, &show_multipath_cmd); -+#endif /* HAVE_LINUX_IP_MP_ALG_H */ - #endif /* HAVE_NETLINK */ - - #ifdef HAVE_IPV6 ---- a/zebra/zserv.h -+++ b/zebra/zserv.h -@@ -55,6 +55,9 @@ struct zserv - /* default routing table this client munges */ - int rtm_table; - -+ /* multipath policy */ -+ u_int32_t mpath; -+ - /* This client's redistribute flag. */ - u_char redist[ZEBRA_ROUTE_MAX]; - -@@ -78,6 +81,9 @@ struct zebra_t - /* default table */ - int rtm_table_default; - -+ /* multipath policy */ -+ u_int32_t mpath; -+ - /* rib work queue */ - struct work_queue *ribq; - struct meta_queue *mq; -- 2.30.2