Mailing List Archive

ECMP in OSPF
Hi all,

Does the OSPF implementation support equal-cost multipath?
I have CONFIG_IP_ROUTE_MULTIPATH enabled in the Linux kernel, and am
using zebra-0.94-2003040701 rpm.

Does ECMP divide total traffic over multiple paths by splitting a
TCP/UDP stream? In other words, is there any attempt to keep a flow on
the same path?

THanks.

Regards,
Amit
--
----------------------------------------------------------------------
Amit Kucheria akucheria@<NOSPAM>metricsystems.com
Metric Systems Corp. 2320 Cousteau Court, Suite 201, Vista, CA 92083
----------------------------------------------------------------------
Re: ECMP in OSPF [ In reply to ]
On Mon, 4 Aug 2003, Amit Kucheria wrote:

> Hi all,
>
> Does the OSPF implementation support equal-cost multipath?

Yes.

> I have CONFIG_IP_ROUTE_MULTIPATH enabled in the Linux kernel, and
> am using zebra-0.94-2003040701 rpm.

Should work.

> Does ECMP divide total traffic over multiple paths by splitting a
> TCP/UDP stream?

Quagga/Zebra sets the RTM_F_EQUALIZE on all routes it installs with
the kernel. You should see zebra routes all have the 'equalize' flag
if you look at output of 'ip route'.

This flag tells the kernel to do per-packet multi-path routing.

Whether the kernel does or not is up to the kernel. IIRC the linux
kernel does not correctly implement per-packet multi-pathing.

> In other words, is there any attempt to keep a flow on the same
> path?

Remove the line:

req.r.rtm_flags |= RTM_F_EQUALIZE;

from zebra/rt_netlink.c

In fact, I'd like to do that anyway. Linux doesnt support it well it
seems, plus per-flow is (theoretically anyway) much kinder to the
kernel, plus its kinder to the flow itself to keep flows on the same
route (if route is still valid) (different paths might have different
characteristics, eg latency, loss and/or congestion.).

The only time you might prefer per-packet, afaict, is if you are
mutli-path routing low amount of traffic over expensive links (or you
have some other pressing reason to balance bytes very closely out
over 2 links).

> THanks.
>
> Regards,
> Amit

regards,
--
Paul Jakma paul@clubi.ie paul@jakma.org Key ID: 64A2FF6A
warning: do not ever send email to spam@dishone.st
Fortune:
If a subordinate asks you a pertinent question, look at him as if he had
lost his senses. When he looks down, paraphrase the question back at him.
Re: ECMP in OSPF [ In reply to ]
On Mon, 4 Aug 2003, Amit Kucheria wrote:

> Hi all,
>
> Does the OSPF implementation support equal-cost multipath?
> I have CONFIG_IP_ROUTE_MULTIPATH enabled in the Linux kernel, and am
> using zebra-0.94-2003040701 rpm.
>
> Does ECMP divide total traffic over multiple paths by splitting a
> TCP/UDP stream? In other words, is there any attempt to keep a flow on
> the same path?
>
> THanks.
>
> Regards,
> Amit
>

I'm not sure how the RPM was compiled but, as far as linux is concerned,
it will be "per flow" load-balanced. There was a per-packet hack out but,
it had some issues and I think the original author abandoned it if I'm not
mistaken. It was a memory hog as well if I remember correctly.

For Quagga, you'll want to use the "enable multipath" configure switch. I
use =0 personally but that is just me. It will allow unlimited multiple
paths then.


--
John Fraizer | High-Security Datacenter Services |
President | Dedicated circuits 64k - 155M OC3 |
EnterZone, Inc | Virtual, Dedicated, Colocation |
http://www.enterzone.net/ | Network Consulting Services |
Re: ECMP in OSPF [ In reply to ]
On Tue, Aug 05, 2003 at 12:49:01AM +0100, Paul Jakma wrote:
> On Mon, 4 Aug 2003, Amit Kucheria wrote:
<snip>
> > Does ECMP divide total traffic over multiple paths by splitting a
> > TCP/UDP stream?
>
<snip>
> In fact, I'd like to do that anyway. Linux doesnt support it well it
> seems, plus per-flow is (theoretically anyway) much kinder to the
> kernel, plus its kinder to the flow itself to keep flows on the same
> route (if route is still valid) (different paths might have different
> characteristics, eg latency, loss and/or congestion.).
>
> The only time you might prefer per-packet, afaict, is if you are
> mutli-path routing low amount of traffic over expensive links (or you
> have some other pressing reason to balance bytes very closely out
> over 2 links).

IIRC Per-packet is prefered for parallel links between 2 directly
connected nodes. (some time refered to as load-balancing) Flow-based
is prefered for equal cost paths across multiple nodes.

--
James R. Leu