From: Medvedkin Vladimir <medvedkinv@gmail.com>
To: dev@dpdk.org
Cc: bruce.richardson@intel.com, thomas@monjalon.net,
cristian.dumitrescu@intel.com,
Medvedkin Vladimir <medvedkinv@gmail.com>
Subject: [PATCH v4 0/4] lib/rib: Add Routing Information Base library
Date: Fri, 27 Apr 2018 01:03:30 +0300 [thread overview]
Message-ID: <1524780214-23196-1-git-send-email-medvedkinv@gmail.com> (raw)
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
next reply other threads:[~2018-04-26 22:03 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-26 22:03 Medvedkin Vladimir [this message]
2018-04-26 22:03 ` [PATCH v4 1/4] Add RIB library Medvedkin Vladimir
2018-04-26 22:17 ` Stephen Hemminger
2018-04-26 22:18 ` Stephen Hemminger
2018-04-26 22:19 ` Stephen Hemminger
2018-04-26 22:19 ` Stephen Hemminger
2018-04-26 22:20 ` Stephen Hemminger
2018-04-27 6:45 ` Vladimir Medvedkin
2018-06-29 13:54 ` Bruce Richardson
2018-06-29 14:02 ` Bruce Richardson
2018-04-26 22:03 ` [PATCH v4 2/4] Add dir24_8 implementation for rib library Medvedkin Vladimir
2018-04-26 22:03 ` [PATCH v4 3/4] Add autotests for RIB library Medvedkin Vladimir
2018-06-29 14:13 ` Bruce Richardson
2018-06-29 15:07 ` Bruce Richardson
2018-06-29 15:31 ` Bruce Richardson
2018-04-26 22:03 ` [PATCH v4 4/4] Add support for lpm and rib bulk lookup Medvedkin Vladimir
2018-04-26 22:24 ` [PATCH v4 0/4] lib/rib: Add Routing Information Base library Stephen Hemminger
2018-04-26 22:27 ` Thomas Monjalon
2018-04-26 22:42 ` Stephen Hemminger
2018-04-26 22:49 ` Stephen Hemminger
2018-04-27 8:27 ` Vladimir Medvedkin
2018-06-29 15:48 ` Bruce Richardson
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 00/12] lib: add RIB and FIB liraries Vladimir Medvedkin
2019-09-12 7:37 ` Morten Brørup
2019-09-12 9:47 ` Medvedkin, Vladimir
2019-09-12 12:00 ` Morten Brørup
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 " Vladimir Medvedkin
2019-11-05 23:14 ` Thomas Monjalon
2019-11-06 5:50 ` David Marchand
2019-11-06 7:50 ` Thomas Monjalon
2019-11-06 11:53 ` Medvedkin, Vladimir
2019-11-06 11:59 ` Thomas Monjalon
2019-11-06 14:37 ` Aaron Conole
2019-11-06 11:50 ` Medvedkin, Vladimir
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 01/12] rib: add RIB library Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 02/12] test/rib: add RIB library autotests Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 03/12] rib: add ipv6 support for RIB Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 04/12] test/rib: add ipv6 support for RIB autotests Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 05/12] fib: add FIB library Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 06/12] fib: add FIB ipv6 support Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 07/12] fib: add DIR24-8 dataplane algorithm Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 08/12] fib: add dataplane algorithm for ipv6 Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 09/12] test/fib: add FIB library autotests Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 10/12] test/fib: add ipv6 support for FIB autotests Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 11/12] test/fib: add FIB library performance autotests Vladimir Medvedkin
2019-11-01 15:21 ` [dpdk-dev] [PATCH v6 12/12] test/fib: add FIB library ipv6 " Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 01/12] rib: add RIB library Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 02/12] test/rib: add RIB library autotests Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 03/12] rib: add ipv6 support for RIB Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 04/12] test/rib: add ipv6 support for RIB autotests Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 05/12] fib: add FIB library Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 06/12] fib: add FIB ipv6 support Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 07/12] fib: add DIR24-8 dataplane algorithm Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 08/12] fib: add dataplane algorithm for ipv6 Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 09/12] test/fib: add FIB library autotests Vladimir Medvedkin
2019-09-12 14:07 ` Aaron Conole
2019-10-01 17:12 ` Medvedkin, Vladimir
2019-10-24 15:55 ` Thomas Monjalon
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 10/12] test/fib: add ipv6 support for FIB autotests Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 11/12] test/fib: add FIB library performance autotests Vladimir Medvedkin
2019-09-11 17:09 ` [dpdk-dev] [PATCH v5 12/12] test/fib: add FIB library ipv6 " Vladimir Medvedkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1524780214-23196-1-git-send-email-medvedkinv@gmail.com \
--to=medvedkinv@gmail.com \
--cc=bruce.richardson@intel.com \
--cc=cristian.dumitrescu@intel.com \
--cc=dev@dpdk.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.