Page MenuHomeFreeBSD

route.8: Add information about ROUTE_MPATH and FIB_ALGO
ClosedPublic

Authored by gbe on Feb 25 2023, 5:03 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Apr 22, 9:02 PM
Unknown Object (File)
Jan 28 2024, 8:57 PM
Unknown Object (File)
Dec 20 2023, 8:26 AM
Unknown Object (File)
Dec 12 2023, 3:22 AM
Unknown Object (File)
Oct 9 2023, 4:12 PM
Unknown Object (File)
Oct 9 2023, 4:12 PM
Unknown Object (File)
Sep 17 2023, 5:10 AM
Unknown Object (File)
Sep 17 2023, 4:59 AM

Details

Summary

Since the kernel options ROUTE_MPATH and FIB_ALGO are enabled
per default for a while, it's good to have some use facing
documetation about the general functionality of multipath
routing and fib lookup algorithms.

Test Plan

mandoc output review and 'mandoc -Tlint' checks

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

gbe requested review of this revision.Feb 25 2023, 5:03 PM
gbe retitled this revision from route.8: Add a information about ROUTE_MPATH and FIB_ALGO to route.8: Add information about ROUTE_MPATH and FIB_ALGO.Feb 25 2023, 5:06 PM

Nice!
Here are a few basic suggestions.
Thank you!

sbin/route/route.8
410
410

Sorry, missed this one.

434
439
448
449
451
453
542
sbin/route/route.8
137

Maybe as a separate commit that fixes 9ec35e3cb46dd6268f3f6e88a8f33841dd4fa2b7 ?

pauamma_gundo.com added inline comments.
sbin/route/route.8
418
420

My taste, here and above.

438
442
444
445
460
537

Out of scope for this, but is there a reason to keep this comment when that manual page was removed 26 years ago? (git cb7ecbe37a633bce5cbac59a3007cc872a3ac55f, svn 22142)

This revision now requires changes to proceed.Feb 25 2023, 11:45 PM
gbe marked 13 inline comments as done.Feb 26 2023, 6:32 AM

Address comments

sbin/route/route.8
137

Good catch, there are some more mandoc warnings I will address in a separate commit, once this differential has landed.

418

I am not sure braces would make sense here. I would leave it like it is.

420

I am not sure braces would make sense here. I would leave it like it is.

537

There are also some mandoc warnings I would like to address, I remove that reference with them, but in a separate commit.

English LGTM. Can't attest to the consistency with source code.

This revision is now accepted and ready to land.Feb 26 2023, 9:42 AM

First of all, thank you for taking care of documenting this type of changes!
I believe we almost forgot about DXR, something along the lines that it can be loaded with fib_dxr.ko.
Unfortunately, the best documentation I could find in base is in the code itself (and in the diff before it landed).

First of all, thank you for taking care of documenting this type of changes!
I believe we almost forgot about DXR, something along the lines that it can be loaded with fib_dxr.ko.
Unfortunately, the best documentation I could find in base is in the code itself (and in the diff before it landed).

OK, that's interesting. I just look on a very recent stable/13 and there is the module not present. On a -CURRENT from yesterday it is. When loading the module a DXR algorithm is available for IPv4 in terms of

net.route.algo.inet.algo_list: dpdk_lpm4, bsearch4, radix4_lockless, radix4, dxr}

@melifaro can you give us a little bit more insight here?

Sorry for being late for the party, folks :-)
Thank you for improving route(8).
I have a couple of items in my queue for doing routing(4), routing(9) and nhop(9) for quite some time, but haven't worked on that a lot.
Meanwhile documenting some of the stuff here is awesome, thank you one again!

I have also confirmed it is present on 13.2-BETA3.
It is essentially another IPv4 lookup scheme developed by zec@ and luigi@ more info in the 2012 published paper, and the Phabricator review D-29821, designed as an alternative to using ASICs, targeting high-end routers.
I have not been able to test it, maybe olivier@ ?, but I think the idea here is to just mention its existence.
(Intentionally not tagging users/reviewers)

In D38783#883124, @gbe wrote:

First of all, thank you for taking care of documenting this type of changes!
I believe we almost forgot about DXR, something along the lines that it can be loaded with fib_dxr.ko.
Unfortunately, the best documentation I could find in base is in the code itself (and in the diff before it landed).

OK, that's interesting. I just look on a very recent stable/13 and there is the module not present. On a -CURRENT from yesterday it is. When loading the module a DXR algorithm is available for IPv4 in terms of

net.route.algo.inet.algo_list: dpdk_lpm4, bsearch4, radix4_lockless, radix4, dxr}

@melifaro can you give us a little bit more insight here?

Just to note that @zec has committed 32b28e3ae28f4d48520ada6ca703b508da8761a7, with a very nice description about DXR.