From: Stephen Hemminger <stephen@networkplumber.org>
To: Richard Laing <Richard.Laing@alliedtelesis.co.nz>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"jmorris@namei.org" <jmorris@namei.org>
Subject: Re: [RFC PATCH 1/1] net/ipv4: Enable flow-based ECMP
Date: Tue, 28 Jul 2015 12:51:57 -0700 [thread overview]
Message-ID: <20150728125157.10917b0b@urahara> (raw)
In-Reply-To: <55B6E8AC.4060600@alliedtelesis.co.nz>
On Tue, 28 Jul 2015 02:27:57 +0000
Richard Laing <Richard.Laing@alliedtelesis.co.nz> wrote:
> From: Richard Laing <richard.laing@alliedtelesis.co.nz>
>
> Enable flow-based ECMP.
>
> Currently if equal-cost multipath is enabled the kernel chooses between
> equal cost paths for each matching packet, essentially packets are
> round-robined between the routes. This means that packets from a single
> flow can traverse different routes. If one of the routes experiences
> congestion this can result in delayed or out of order packets arriving
> at the destination.
>
> This patch allows packets to be routed based on their
> flow - packets in the same flow will always use the same route. This
> prevents out of order packets. There are other issues with round-robin
> based ECMP routing related to variable path MTU handling and debugging.
> See RFC2991 for more details on the problems associated with packet
> based ECMP routing.
>
> This patch relies on the skb hash value to select between routes. The
> selection uses a hash-threshold algorithm (see RFC2992).
>
> Signed-off-by: Richard Laing <richard.laing@alliedtelesis.co.nz>
ECMP needs some work, glad to see someone has started again.
A little bit of history, the original ECMP algorithm selection code was dropped years ago
because it was buggy. The API was good, but the implemenation had problems.
Somewhere in my dustbin, I have some patches from internal stuff that allows
selecting the algorithm at runtime.
Your implementation makes it a compile time choice. Although this is good
for testing, it really needs to be a sysctl or route attribute to be
useful in a distro environment.
As others said, your mailer is mangling the lines by wrapping.
next prev parent reply other threads:[~2015-07-28 19:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-28 2:27 [RFC PATCH 1/1] net/ipv4: Enable flow-based ECMP Richard Laing
2015-07-28 7:20 ` Michal Kubecek
2015-07-28 19:51 ` Stephen Hemminger [this message]
2015-07-28 21:16 ` Richard Laing
2015-07-28 21:02 ` Tom Herbert
2015-07-28 21:15 ` Tom Herbert
2015-07-28 21:22 ` Richard Laing
2015-07-28 21:20 ` Richard Laing
2015-07-29 6:11 ` Michal Kubecek
2015-07-29 6:32 ` David Miller
2015-07-29 16:12 ` Tom Herbert
2015-07-30 1:23 ` Richard Laing
2016-06-17 18:52 ` Jean He
2015-07-29 7:56 ` Julian Anastasov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150728125157.10917b0b@urahara \
--to=stephen@networkplumber.org \
--cc=Richard.Laing@alliedtelesis.co.nz \
--cc=jmorris@namei.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox