From 32b28e3ae28f4d48520ada6ca703b508da8761a7 Mon Sep 17 00:00:00 2001 From: Marko Zec Date: Thu, 15 Jun 2023 07:21:51 +0200 Subject: [PATCH] route.8: mention DXR in FIB_ALGO section While here, add a sentence describing DPDK DIR24-8 principle of operation. MFC after: 2 weeks. --- sbin/route/route.8 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sbin/route/route.8 b/sbin/route/route.8 index 72c22bee23ed..8103625decd4 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 June 13, 2023 +.Dd June 16, 2023 .Dt ROUTE 8 .Os .Sh NAME @@ -442,7 +442,9 @@ 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. +for large FIBs. +DIR24-8 relies on a large flat lookup table (64 MB with IPv4) which is +directly indexed by the more significant portion of the lookup key. In order to use the dpdk_lpm algorithm one or both of the following kernel modules must be loaded via .Xr loader.conf 5 : @@ -452,6 +454,16 @@ DPDK implementation for IPv4. .It dpdk_lpm6.ko DPDK implementation for IPv6. .El +.It dxr +IPv4 only, lockless, compressed lookup structure +(below 2.5 Bytes per IPv4 prefix for large BGP FIBs) +which easily fits into modern CPU cache hierarchies, +lookup throughput scales linearly with CPU cores. +Loadable as a kernel module at runtime or via +.Xr loader.conf 5 : +.Bl -tag -width fib_dxr.ko -compact +.It fib_dxr.ko +.El .El .Pp The algorithms are selected automatically based on the size of the routing