Fix a bug in current LPM SEQ benchmark (missing break inside a switch block) by restructuring the test loop, and introduce additional options for scanning only the address space announced in current RIB, and introduce an option of repeating 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 results of a few test run on a AMD Ryzen 7 3700X 3.6 GHz CPU:
host: single interface address, local subnet route + default route
BGP: linx.routeviews.org DFZ snapshot, 887956 prefixes, 495 next hops
algo: bsearch radix radix dpdk dpdk dxr dxr
RIB: host host BGP host BGP host BGP
seq: 59.6 11.9 2.7 12.0 11.4 95.5 44.9
seq_ann: 69.0 12.1 2.7 14.5 11.6 94.7 45.0
seq_rep: 59.5 11.9 2.8 12.1 11.5 95.6 43.3
seq_ann_rep: 69.7 12.1 2.7 14.5 11.6 94.6 43.7
rnd: 66.9 12.3 2.8 27.9 25.7 143.1 65.2
rnd_ann: 102.2 13.2 2.8 52.4 25.9 143.1 65.6
rnd_rep: 83.7 13.1 6.5 93.1 74.4 143.1 96.0
rnd_ann_rep: 105.1 13.6 6.5 130.0 74.4 143.0 95.4