This patch series introduces new library librte_rib which potentially could replace librte_lpm.
RIB is an alternative to current LPM library. It solves the following problems - Increases the speed of control plane operations against lpm such as adding/deleting routes - Adds abstraction from dataplane algorithms, so it is possible to add different ip route lookup algorythms such as DXR/poptrie/lpc-trie/etc in addition to current dir24_8 - It is possible to keep user defined application specific additional information in struct rte_rib_node which represents route entry. It can be next hop/set of next hops (i.e. active and feasible), pointers to link rte_rib_node based on some criteria (i.e. next_hop), plenty of additional control plane information. v4: fix various bugs make struct rte_rib opaque make inline functions instead of macro remove RTE_RIB_MALLOC node allocation type add new lookup functions remove rte_dir24_8_lookup() add rte_dir24_8_get_lookup() add meson support add fib configuration Medvedkin Vladimir (4): Add RIB library Add dir24_8 implementation for rib library Add autotests for RIB library Add support for lpm and rib bulk lookup config/common_base | 6 + doc/api/doxy-api.conf | 1 + examples/l3fwd/l3fwd_lpm.c | 132 +++++++ examples/l3fwd/meson.build | 2 +- lib/Makefile | 2 + lib/librte_rib/Makefile | 23 ++ lib/librte_rib/meson.build | 6 + lib/librte_rib/rte_dir24_8.c | 725 +++++++++++++++++++++++++++++++++++++ lib/librte_rib/rte_dir24_8.h | 47 +++ lib/librte_rib/rte_rib.c | 520 ++++++++++++++++++++++++++ lib/librte_rib/rte_rib.h | 302 +++++++++++++++ lib/librte_rib/rte_rib_version.map | 18 + lib/meson.build | 2 +- mk/rte.app.mk | 1 + test/test/Makefile | 5 + test/test/meson.build | 8 + test/test/test_rib.c | 308 ++++++++++++++++ test/test/test_rib_generate_rt.c | 297 +++++++++++++++ test/test/test_rib_generate_rt.h | 38 ++ test/test/test_rib_lpm_comp.c | 189 ++++++++++ test/test/test_rib_perf.c | 145 ++++++++ 21 files changed, 2775 insertions(+), 2 deletions(-) create mode 100644 lib/librte_rib/Makefile create mode 100644 lib/librte_rib/meson.build create mode 100644 lib/librte_rib/rte_dir24_8.c create mode 100644 lib/librte_rib/rte_dir24_8.h create mode 100644 lib/librte_rib/rte_rib.c create mode 100644 lib/librte_rib/rte_rib.h create mode 100644 lib/librte_rib/rte_rib_version.map create mode 100644 test/test/test_rib.c create mode 100644 test/test/test_rib_generate_rt.c create mode 100644 test/test/test_rib_generate_rt.h create mode 100644 test/test/test_rib_lpm_comp.c create mode 100644 test/test/test_rib_perf.c -- 1.8.3.1