[dpdk-dev] [PATCH v4 0/4] lib/rib: Add Routing Information Base library
Medvedkin Vladimir
medvedkinv at gmail.com
Fri Apr 27 00:03:30 CEST 2018
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
More information about the dev
mailing list