fib: improve ipv6 fib scaling 45/40745/5
authorBenoît Ganne <[email protected]>
Fri, 5 Apr 2024 07:45:29 +0000 (09:45 +0200)
committerNeale Ranns <[email protected]>
Fri, 12 Jul 2024 03:09:58 +0000 (03:09 +0000)
commit23c489660b5952a50ff1bb94c9151e6b1b08b346
tree87a016973a3d979f4ec39652ba7c38ddb18ddd4d
parentff570d3d07ebe07a5107b44d50c54fc4a57359dc
fib: improve ipv6 fib scaling

VPP IPv6 FIB relies on 2 bihash for all its VRFs: 1 for control plane
and one for data plane. Because of that, control plane VRF walks
time grows with the number of VRFs as it has to go through all the VRFs.
In order to improve control plane performance with large number of VRFs,
the control plane data structure is changed from a global bihash to a
per-VRF hashtable, similarly to IPv4. Contrary to IPv4, there is only 1
hashtable per VRF and not 1 hashtable per prefix-length per VRF, which
is a compromise between memory consumption and single VRF scaling.

Type: improvement

Change-Id: Ib738a44adb88e46c95c4c62c853ee1f1392c7187
Signed-off-by: Benoît Ganne <[email protected]>
src/vnet/fib/ip6_fib.c
src/vnet/fib/ip6_fib.h
src/vnet/ip/ip6.h
src/vnet/ip/ip6_ll_table.c