Fix a bug in the LPM SEQ benchmark (missing break inside a switch block) by restructuring the test loop, while introducing additional two synthetic test options:
ANN: scan only the address space announced in current RIB
REP: repeat lookups over several keys in a sliding window scheme
The total of eight combinations of test options are now available through dedicated sysctl hooks.
Below are the results of test runs on a AMD Ryzen 5 5600X 3.7 GHz CPU:
host RIB: lo0 + single interface, local subnet + default route test / algo: radix4 radix4_ll dpdk_lpm4 bsearch4 dxr seq: 18.3 34.9 16.8 80.9 105.9 seq_ann: 18.9 36.6 85.0 93.2 105.0 seq_rep: 18.4 34.9 16.9 80.8 106.2 seq_ann_rep: 18.9 36.9 85.0 93.5 106.4 rnd: 18.8 36.3 36.7 88.8 200.3 rnd_ann: 20.7 45.6 204.4 154.3 200.7 rnd_rep: 21.2 48.0 135.3 123.6 201.1 rnd_ann_rep: 22.8 63.5 206.7 164.0 201.4 BGP RIB: routeviews.org DFZ snapshot, 887956 prefixes, 495 next hops test / algo: radix4 radix4_ll dpdk_lpm4 dxr seq: 4.0 5.0 15.8 49.5 seq_ann: 4.0 5.0 15.8 49.5 seq_rep: 4.0 5.0 16.1 49.8 seq_ann_rep: 4.0 4.9 16.3 49.8 rnd: 4.0 5.1 33.6 77.2 rnd_ann: 4.0 5.2 33.8 77.2 rnd_rep: 9.0 14.3 108.2 125.5 rnd_ann_rep: 9.0 14.3 107.8 125.4