git: b06338167d64 - main - route.8: Add information about ROUTE_MPATH and FIB_ALGO
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 26 Feb 2023 13:16:02 UTC
The branch main has been updated by gbe:
URL: https://cgit.FreeBSD.org/src/commit/?id=b06338167d64507e79e003500002e22fbe583832
commit b06338167d64507e79e003500002e22fbe583832
Author: Gordon Bergling <gbe@FreeBSD.org>
AuthorDate: 2023-02-26 13:15:34 +0000
Commit: Gordon Bergling <gbe@FreeBSD.org>
CommitDate: 2023-02-26 13:15:34 +0000
route.8: Add information about ROUTE_MPATH and FIB_ALGO
Since the kernel options ROUTE_MPATH and FIB_ALGO are enabled
per default for a while, it's good to have some user facing
documetation about the general functionality of multipath
routing and fib lookup algorithms.
Reviewed by: pauamma, Jose Luis Duran <jlduran at gmail dot com>
MFC after: 5 days
Differential Revision: https://reviews.freebsd.org/D38783
---
sbin/route/route.8 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 56 insertions(+), 1 deletion(-)
diff --git a/sbin/route/route.8 b/sbin/route/route.8
index 161189e7a9d8..c893ae5ab4b3 100644
--- a/sbin/route/route.8
+++ b/sbin/route/route.8
@@ -28,7 +28,7 @@
.\" @(#)route.8 8.3 (Berkeley) 3/19/94
.\" $FreeBSD$
.\"
-.Dd December 15, 2021
+.Dd February 26, 2023
.Dt ROUTE 8
.Os
.Sh NAME
@@ -405,6 +405,60 @@ and
.Dv RTM_CHANGE .
As such, only the super-user may modify
the routing tables.
+.Pp
+.Fx provides support for scalable multipath routing.
+It is activated by default, but can be turned off by setting the
+.Va net.route.multipath
+.Xr sysctl 8
+MIB to 0.
+.Pp
+There are multiple route lookup algorithms available.
+They can be configured by setting
+.Va net.route.algo.inet.algo
+for IPv4 and
+.Va net.route.algo.inet6.algo
+for IPv6
+.Xr sysctl 8
+MIBs.
+.Pp
+A list of available algorithms can be obtained by accessing the
+following
+.Xr sysctl 8
+MIBs
+.Va net.route.algo.inet.algo_list
+for IPv4 and
+.Va net.route.algo.inet6.algo_list
+for IPv6.
+.Pp
+The following algorithms are available:
+.Bl -tag -width radix_lockless
+.It radix
+Base system radix backend.
+.It bsearch
+Lockless binary search in a special IP array, tailored for a small FIB
+with <16 routes.
+This algorithm is only available for IPv4.
+.It radix_lockless
+Lockless immutable radix, re-created on every rtable change,
+tailored for a small FIB with <1000 routes.
+.It dpdk_lpm
+DPDK DIR24-8-based lookups, lockless datastructure, optimized
+for a large FIB.
+In order to use the dpdk_lpm algorithm one or both of the
+following kernel modules must be loaded via
+.Xr loader.conf 5 :
+.Bl -tag -width dpdk_lpm6.ko -compact
+.It dpdk_lpm4.ko
+DPDK implementation for IPv4.
+.It dpdk_lpm6.ko
+DPDK implementation for IPv6.
+.El
+.El
+.Pp
+The algorithms are selected automatically based on the size of the routing
+table of the system.
+They can be changed, but not every algorithm performs best for every
+FIB size.
.Sh EXIT STATUS
.Ex -std
.Sh EXAMPLES
@@ -484,6 +538,7 @@ The next-hop gateway should be reachable through a different route.
.Xr netstat 1 ,
.Xr netintro 4 ,
.Xr route 4 ,
+.Xr loader.conf 5 ,
.Xr arp 8 ,
.Xr routed 8
.Sh HISTORY