2001-12-20 10:27:51

by bert hubert

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

# 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
fix it.

Thanks!

Regards,

bert

--
http://www.PowerDNS.com Versatile DNS Software & Services
http://www.tk the dot in .tk
Netherlabs BV / Rent-a-Nerd.nl - Nerd Available -
Linux Advanced Routing & Traffic Control: http://ds9a.nl/lartc


2001-12-20 11:18:06

by Julian Anastasov

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


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 <[email protected]>

2001-12-20 11:29:47

by bert hubert

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

On Thu, Dec 20, 2001 at 01:21:30PM +0200, Julian Anastasov wrote:

> > 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):

Your patch does not appear to relate to iproute-20010824. I think I've found
the problem, however. I think there has been an API change between 2.2 and
2.4. 'ip' compiled under 2.2 will not properly configure ECMP on 2.4!

If I recompile tc under 2.4, the problem disappears.

Maybe ip should warn against this? Should be easy to do.

Regards,

bert

--
http://www.PowerDNS.com Versatile DNS Software & Services
http://www.tk the dot in .tk
Netherlabs BV / Rent-a-Nerd.nl - Nerd Available -
Linux Advanced Routing & Traffic Control: http://ds9a.nl/lartc

2001-12-20 12:10:00

by Julian Anastasov

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


Hello,

On Thu, 20 Dec 2001, bert hubert wrote:

> Your patch does not appear to relate to iproute-20010824. I think I've found

Hm, it is against iproute2-2.4.7-now-ss010824.tar.gz. Is
iproute-20010824 (what is that?) somehow different?

> the problem, however. I think there has been an API change between 2.2 and
> 2.4. 'ip' compiled under 2.2 will not properly configure ECMP on 2.4!

May be the effect is different with different compiler ...
and uninitialized stack data. See the entry in RELNOTES:

[010803]
* If "dev" is not specified in multipath route, ifindex remained
uninitialized. Grr. Thanks to Kunihiro Ishiguro <[email protected]>.

It seems the same bug exists for rtnh_flags and rtnh_hops,
at the same place.

> If I recompile tc under 2.4, the problem disappears.

This is new. IIRC, the other users don't have such success :)

> Regards,
>
> bert

Regards

--
Julian Anastasov <[email protected]>