From 550967eecf0c5fa5c306a57ff00407d4fa67c74f Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Fri, 12 Oct 2007 14:38:30 -0700 Subject: [PATCH] remove support for IP multipath IP multipath routing was so buggy that it was dropped from the current kernel. Signed-off-by: Stephen Hemminger --- ip/iproute.c | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/ip/iproute.c b/ip/iproute.c index 77bdf83c4..d9fc44ba2 100644 --- a/ip/iproute.c +++ b/ip/iproute.c @@ -28,7 +28,6 @@ #include #include #include -#include #include "rt_names.h" #include "utils.h" @@ -68,7 +67,6 @@ static void usage(void) fprintf(stderr, "NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]\n"); fprintf(stderr, " [ table TABLE_ID ] [ proto RTPROTO ]\n"); fprintf(stderr, " [ scope SCOPE ] [ metric METRIC ]\n"); - fprintf(stderr, " [ mpath MP_ALGO ]\n"); fprintf(stderr, "INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...\n"); fprintf(stderr, "NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS\n"); fprintf(stderr, "OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]\n"); @@ -112,14 +110,6 @@ static struct inet_prefix msrc; } filter; -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" -}; - static int flush_update(void) { if (rtnl_send(&rth, filter.flushb, filter.flushp) < 0) { @@ -361,14 +351,6 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) fprintf(fp, "tos %s ", rtnl_dsfield_n2a(r->rtm_tos, b1, sizeof(b1))); } - if (tb[RTA_MP_ALGO]) { - __u32 mp_alg = *(__u32*) RTA_DATA(tb[RTA_MP_ALGO]); - if (mp_alg > IP_MP_ALG_NONE) { - fprintf(fp, "mpath %s ", - mp_alg < IP_MP_ALG_MAX ? mp_alg_names[mp_alg] : "unknown"); - } - } - if (tb[RTA_GATEWAY] && filter.rvia.bitlen != host_len) { fprintf(fp, "via %s ", format_host(r->rtm_family, @@ -906,18 +888,6 @@ int iproute_modify(int cmd, unsigned flags, int argc, char **argv) strcmp(*argv, "oif") == 0) { NEXT_ARG(); d = *argv; - } else if (strcmp(*argv, "mpath") == 0 || - strcmp(*argv, "mp") == 0) { - int i; - __u32 mp_alg = IP_MP_ALG_NONE; - - NEXT_ARG(); - for (i = 1; i < ARRAY_SIZE(mp_alg_names); i++) - if (strcmp(*argv, mp_alg_names[i]) == 0) - mp_alg = i; - if (mp_alg == IP_MP_ALG_NONE) - invarg("\"mpath\" value is invalid\n", *argv); - addattr_l(&req.n, sizeof(req), RTA_MP_ALGO, &mp_alg, sizeof(mp_alg)); } else { int type; inet_prefix dst; -- 2.47.2