From 63a0f20ac1fb2b98b6e68531b67ad83f09bbd272 Mon Sep 17 00:00:00 2001 From: Andreas Henriksson Date: Tue, 9 Feb 2010 10:58:51 -0800 Subject: [PATCH] iproute2: drop equalize support Currently you can configure "equalize" and it looks all fine and dandy. The kernel has the interface defined, but apparently there's never actually been any implementation for it (only a never merged patch in the 2.4 era). I'm suggesting to drop the code to give any potential users of this feature the benefit of receiving a proper error message. I see it unlikely that this will be implemented in the near future, but if it ever happens reviving the iproute2 side should be as easy as git revert this patch. For more details see http://bugs.debian.org/149897 --- doc/ip-cref.tex | 8 -------- ip/iproute.c | 10 +--------- man/man8/ip.8 | 12 ------------ 3 files changed, 1 insertion(+), 29 deletions(-) diff --git a/doc/ip-cref.tex b/doc/ip-cref.tex index 6ea44025..7bb562e1 100644 --- a/doc/ip-cref.tex +++ b/doc/ip-cref.tex @@ -1390,14 +1390,6 @@ database. even if it does not match any interface prefix. One application of this option may be found in~\cite{IP-TUNNELS}. -\item \verb|equalize| - ---- allow packet by packet randomization on multipath routes. -Without this modifier, the route will be frozen to one selected -nexthop, so that load splitting will only occur on per-flow base. -\verb|equalize| only works if the kernel is patched. - - \end{itemize} diff --git a/ip/iproute.c b/ip/iproute.c index b60926da..1d73ab87 100644 --- a/ip/iproute.c +++ b/ip/iproute.c @@ -73,7 +73,6 @@ static void usage(void) fprintf(stderr, " unreachable | prohibit | blackhole | nat ]\n"); fprintf(stderr, "TABLE_ID := [ local | main | default | all | NUMBER ]\n"); fprintf(stderr, "SCOPE := [ host | link | global | NUMBER ]\n"); - fprintf(stderr, "FLAGS := [ equalize ]\n"); fprintf(stderr, "MP_ALGO := { rr | drr | random | wrandom }\n"); fprintf(stderr, "NHFLAGS := [ onlink | pervasive ]\n"); fprintf(stderr, "RTPROTO := [ kernel | boot | static | NUMBER ]\n"); @@ -382,8 +381,6 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) fprintf(fp, "onlink "); if (r->rtm_flags & RTNH_F_PERVASIVE) fprintf(fp, "pervasive "); - if (r->rtm_flags & RTM_F_EQUALIZE) - fprintf(fp, "equalize "); if (r->rtm_flags & RTM_F_NOTIFY) fprintf(fp, "notify "); @@ -423,9 +420,7 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) PRTFL(FAST, "fastroute"); PRTFL(NOTIFY, "notify"); PRTFL(TPROXY, "proxy"); -#ifdef RTCF_EQUALIZE - PRTFL(EQUALIZE, "equalize"); -#endif + if (flags) fprintf(fp, "%s%x> ", first ? "<" : "", flags); if (tb[RTA_CACHEINFO]) { @@ -878,9 +873,6 @@ int iproute_modify(int cmd, unsigned flags, int argc, char **argv) addattr32(&req.n, sizeof(req), RTA_FLOW, realm); } else if (strcmp(*argv, "onlink") == 0) { req.r.rtm_flags |= RTNH_F_ONLINK; - } else if (matches(*argv, "equalize") == 0 || - strcmp(*argv, "eql") == 0) { - req.r.rtm_flags |= RTM_F_EQUALIZE; } else if (strcmp(*argv, "nexthop") == 0) { nhs_ok = 1; break; diff --git a/man/man8/ip.8 b/man/man8/ip.8 index 273be92b..0abd7851 100644 --- a/man/man8/ip.8 +++ b/man/man8/ip.8 @@ -212,10 +212,6 @@ throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]" .BR host " | " link " | " global " |" .IR NUMBER " ]" -.ti -8 -.IR FLAGS " := [ " -.BR equalize " ]" - .ti -8 .IR NHFLAGS " := [ " .BR onlink " | " pervasive " ]" @@ -1596,14 +1592,6 @@ to assign (or not to assign) protocol tags. pretend that the nexthop is directly attached to this link, even if it does not match any interface prefix. -.TP -.B equalize -allow packet by packet randomization on multipath routes. -Without this modifier, the route will be frozen to one selected -nexthop, so that load splitting will only occur on per-flow base. -.B equalize -only works if the kernel is patched. - .SS ip route delete - delete route .B ip route del