On Thu, May 25, 2017 at 12:05 AM, Vasu M <vasu.kernel@gmail.com> wrote:
I would like to know from which version of Linux, ECMP is supported? I am trying to add a route with two next hops. Only one path gets added. And for the other path, the route says "RTNETLINK answers: File exists". I am not able to understand what's going on. The route prefix is not pointing to ecmp because metric is not given for static routes? How can I test multipath for a prefix that goes over 2 links? 

I tried "echo 7 > /proc/sys/kernel/printk" and dmesg but I don't see anything related to route add events. Just wondering how I should approach this problem. 

I am running the following versions on two devices running ONL. 

Linux localhost 3.16.43-OpenNetworkLinux #1 SMP Thu May 11 18:37:48 UTC 2017 x86_64 GNU/Linux

I tried the following :- 

root@localhost:~# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 ma1

10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 fpPort2

20.20.20.0      0.0.0.0         255.255.255.0   U     0      0        0 fpPort13

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ma1

root@localhost:~# arp -a

? (20.20.20.2) at 00:a0:c9:00:00:01 [ether] on fpPort13 

? (192.168.100.100) at f0:7f:06:1d:56:ff [ether] on ma1

? (192.168.100.1) at 18:b1:69:33:88:a4 [ether] on ma1

? (192.168.100.52) at cc:37:ab:7c:ca:16 [ether] on ma1

? (192.168.100.3) at c8:1f:66:f6:ea:07 [ether] on ma1

? (10.10.10.2) at 00:a0:c9:00:00:01 [ether] on fpPort2


ip route add 100.100.100.0/24  via 10.10.10.2

root@localhost:~# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 ma1

10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 fpPort2

20.20.20.0      0.0.0.0         255.255.255.0   U     0      0        0 fpPort13

100.100.100.0   10.10.10.2      255.255.255.0   UG    0      0        0 fpPort2

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ma1

root@localhost:~# ip route add 100.100.100.0/24  via 20.20.20.2

RTNETLINK answers: File exists



Figured "ip route append" is used to add ECMP. I am, however, seeing some ECMP paths getting added to the rt table which seems to be a bug although the behavior is not consistent.