Date: Tue, 14 Feb 2017 11:52:24 -0800 From: =?UTF-8?Q?Ermal_Lu=C3=A7i?= <eri@freebsd.org> To: "Andrey V. Elsukov" <bu7cher@yandex.ru> Cc: =?UTF-8?Q?Olivier_Cochard=2DLabb=C3=A9?= <olivier@freebsd.org>, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, "Alexander V. Chernikov" <melifaro@freebsd.org> Subject: Re: How to enable ECMP flow based forwarding ? Message-ID: <CAPBZQG3hwjDkE8NUBoe%2BoHoMp6QLpn-gNCTq=zbhwqcs9n3-sA@mail.gmail.com> In-Reply-To: <6162c934-3f22-889e-f45f-6f988342f4b3@yandex.ru> References: <CA%2Bq%2BTcqXv1HryUaBW1LBFVcyDMwDAMs0Ujp8jBRD96zO_63OQw@mail.gmail.com> <6162c934-3f22-889e-f45f-6f988342f4b3@yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
--001a1148cd22376f46054882e7b0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Tue, Feb 14, 2017 at 6:13 AM, Andrey V. Elsukov <bu7cher@yandex.ru> wrote: > On 14.02.2017 03:23, Olivier Cochard-Labb=C3=A9 wrote: > > Hi, > > > > I'm testing FreeBSD ECMP behavior by adding "options RADIX_MPATH" to my > > kernel configuration (11-stable). > > Now I can configure two identical routes toward 2 different next-hop: > First > > step achieved :-) > > But it uses only the first entry and never uses the second one. > > > > I've tried to shutdown the first next-hop router (then no more arp-repl= y > > from this next-hop): But the ECMP FreeBSD router sticks to its first > route > > entry and never try the second entry :-( > > > > Is there something else to enable (like RSS?) for having a real ECMP fl= ow > > based router ? > > I think you need to implement some code first. The fastfwd has not > supported MPATH and tryforward also doesn't support it. For IPv4 you can > try to add some IPsec security policy to disable ip_tryforward. In this > case ip_forward() will be used, and it uses rtalloc_mpath_fib(), so, > probably, it will work. > > This seems to be a bug to file and which can quickly be fixed by presenting same behaviour that slow path does when RADIX_MPATH is active. It does not impact performance or any of the problems ip_tryforward() is trying to solve. Try the attached patch it should fix your issues. -- > WBR, Andrey V. Elsukov > > -- > Ermal > --001a1148cd22376f46054882e7b0 Content-Type: text/plain; charset=US-ASCII; name="ip_tryforward_route_mpath.diff" Content-Disposition: attachment; filename="ip_tryforward_route_mpath.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iz5y38e21 ZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0L2lwX2Zhc3Rmd2QuYyBiL3N5cy9uZXRpbmV0L2lwX2Zh c3Rmd2QuYwppbmRleCBlYTU5YzEwLi4wYTUwZjYyIDEwMDY0NAotLS0gYS9zeXMvbmV0aW5ldC9p cF9mYXN0ZndkLmMKKysrIGIvc3lzL25ldGluZXQvaXBfZmFzdGZ3ZC5jCkBAIC0xMDgsNyArMTA4 LDggQEAgX19GQlNESUQoIiRGcmVlQlNEJCIpOwogI2luY2x1ZGUgPG1hY2hpbmUvaW5fY2tzdW0u aD4KIAogc3RhdGljIHN0cnVjdCBzb2NrYWRkcl9pbiAqCi1pcF9maW5kcm91dGUoc3RydWN0IHJv dXRlICpybywgc3RydWN0IGluX2FkZHIgZGVzdCwgc3RydWN0IG1idWYgKm0pCitpcF9maW5kcm91 dGUoc3RydWN0IHJvdXRlICpybywgc3RydWN0IGlwICppcCwgc3RydWN0IGluX2FkZHIgZGVzdCwK KyAgICAgICAgICAgICAgIHN0cnVjdCBtYnVmICptKQogewogICAgICAgIHN0cnVjdCBzb2NrYWRk cl9pbiAqZHN0OwogICAgICAgIHN0cnVjdCBydGVudHJ5ICpydDsKQEAgLTEyMSw3ICsxMjIsMTQg QEAgaXBfZmluZHJvdXRlKHN0cnVjdCByb3V0ZSAqcm8sIHN0cnVjdCBpbl9hZGRyIGRlc3QsIHN0 cnVjdCBtYnVmICptKQogICAgICAgIGRzdC0+c2luX2ZhbWlseSA9IEFGX0lORVQ7CiAgICAgICAg ZHN0LT5zaW5fbGVuID0gc2l6ZW9mKCpkc3QpOwogICAgICAgIGRzdC0+c2luX2FkZHIuc19hZGRy ID0gZGVzdC5zX2FkZHI7Ci0gICAgICAgaW5fcnRhbGxvY19pZ24ocm8sIDAsIE1fR0VURklCKG0p KTsKKyNpZmRlZiBSQURJWF9NUEFUSAorICAgICAgICBydGFsbG9jX21wYXRoX2ZpYigmcm8sCisg ICAgICAgICAgICBudG9obChpcC0+aXBfc3JjLnNfYWRkciBeIGlwLT5pcF9kc3Quc19hZGRyKSwK KyAgICAgICAgICAgIE1fR0VURklCKG0pKTsKKyNlbHNlCisgICAgICAgIGluX3J0YWxsb2NfaWdu KCZybywgMCwgTV9HRVRGSUIobSkpOworI2VuZGlmCisKIAogICAgICAgIC8qCiAgICAgICAgICog Um91dGUgdGhlcmUgYW5kIGludGVyZmFjZSBzdGlsbCB1cD8KQEAgLTMwNSw3ICszMTMsNyBAQCBw YXNzaW46CiAgICAgICAgLyoKICAgICAgICAgKiBGaW5kIHJvdXRlIHRvIGRlc3RpbmF0aW9uLgog ICAgICAgICAqLwotICAgICAgIGlmICgoZHN0ID0gaXBfZmluZHJvdXRlKCZybywgZGVzdCwgbSkp ID09IE5VTEwpCisgICAgICAgaWYgKChkc3QgPSBpcF9maW5kcm91dGUoJnJvLCBpcCwgZGVzdCwg bSkpID09IE5VTEwpCiAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsgICAgLyogaWNtcCB1bnJl YWNoIGFscmVhZHkgc2VudCAqLwogICAgICAgIGlmcCA9IHJvLnJvX3J0LT5ydF9pZnA7CiAKQEAg LTM2Niw3ICszNzQsNyBAQCBmb3J3YXJkbG9jYWw6CiAgICAgICAgICAgICAgICAgICAgICAgIG0t Pm1fZmxhZ3MgJj0gfk1fSVBfTkVYVEhPUDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIFJURlJFRShyby5yb19ydCk7Ci0gICAgICAgICAgICAgICBpZiAoKGRzdCA9IGlwX2ZpbmRy b3V0ZSgmcm8sIGRlc3QsIG0pKSA9PSBOVUxMKQorICAgICAgICAgICAgICAgaWYgKChkc3QgPSBp cF9maW5kcm91dGUoJnJvLCBpcCwgZGVzdCwgbSkpID09IE5VTEwpCiAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBOVUxMOyAgICAvKiBpY21wIHVucmVhY2ggYWxyZWFkeSBzZW50ICovCiAg ICAgICAgICAgICAgICBpZnAgPSByby5yb19ydC0+cnRfaWZwOwogICAgICAgIH0KCg== --001a1148cd22376f46054882e7b0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPBZQG3hwjDkE8NUBoe%2BoHoMp6QLpn-gNCTq=zbhwqcs9n3-sA>