netdev
[Top] [All Lists]

Re: [BUG/WANT TO FIX] Equal Cost Multipath Broken in 2.4.x

To: bert hubert <ahu@xxxxxxx>
Subject: Re: [BUG/WANT TO FIX] Equal Cost Multipath Broken in 2.4.x
From: Julian Anastasov <ja@xxxxxx>
Date: Thu, 20 Dec 2001 13:21:30 +0200 (EET)
Cc: <kuznet@xxxxxxxxxxxxx>, <netdev@xxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>
In-reply-to: <20011220112728.A11112@xxxxxxxxxxxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
        Hello,

On Thu, 20 Dec 2001, bert hubert wrote:

>  # ip ro add dev eth0 default nexthop via 10.0.0.1 dev eth0 nexthop via
>    10.0.0.202 dev eth0
>  # ip ro ls
>  10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.0.0.11
>  default
>       nexthop via 10.0.0.1  dev eth0 weight 1 dead
>       nexthop via 10.0.0.202  dev eth0 weight 1
>
> 10.0.0.1 however is far from dead, if we add yet another nexthop:
>
>  # ip ro add dev eth0 default nexthop via 10.10.10.10 dev eth0 nexthop via
>    10.0.0.1 dev eth0 nexthop via 10.0.0.202 dev eth0
>
>  # ip ro ls
>  10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.0.0.11
>  default
>       nexthop via 10.10.10.10  dev eth0 weight 1 dead
>       nexthop via 10.0.0.1  dev eth0 weight 1
>       nexthop via 10.0.0.202  dev eth0 weight 1
>
> This first nexthop is *always* declared dead. Linux 2.4.x, iproute 20010824.
>
> If anybody can point me in the direction of this problem, it must be known
> as it has been there for a *long* time, it would be appreciated. I'll try to

        Yes, I remember people to report for this problem for long
time but I was not able to reproduce it. May be it could be fixed
with the following change (only compiled):

--- iproute2/ip/iproute.c.orig  Mon Aug  6 03:31:52 2001
+++ iproute2/ip/iproute.c       Thu Dec 20 13:14:06 2001
@@ -620,6 +620,8 @@
                }
                rtnh->rtnh_len = sizeof(*rtnh);
                rtnh->rtnh_ifindex = 0;
+               rtnh->rtnh_flags = 0;
+               rtnh->rtnh_hops = 0;
                rta->rta_len += rtnh->rtnh_len;
                parse_one_nh(rta, rtnh, &argc, &argv);
                rtnh = RTNH_NEXT(rtnh);

> fix it.
>
> Thanks!
>
> Regards,
>
> bert

Regards

--
Julian Anastasov <ja@xxxxxx>


<Prev in Thread] Current Thread [Next in Thread>