From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailrelay1.rambler.ru (mailrelay1.rambler.ru [81.19.66.239]) by dpdk.org (Postfix) with ESMTP id 450897CD1 for ; Fri, 27 Apr 2018 00:03:45 +0200 (CEST) Received: from testlab1.ipnoc.rambler.tech (unknown [10.201.1.3]) by mailrelay1.rambler.ru (Postfix) with ESMTP id 40XB0c4tpGzKhf; Fri, 27 Apr 2018 01:03:44 +0300 (MSK) From: Medvedkin Vladimir To: dev@dpdk.org Cc: bruce.richardson@intel.com, thomas@monjalon.net, cristian.dumitrescu@intel.com, Medvedkin Vladimir Date: Fri, 27 Apr 2018 01:03:30 +0300 Message-Id: <1524780214-23196-1-git-send-email-medvedkinv@gmail.com> X-Mailer: git-send-email 1.8.3.1 X-Rcpt-To: , , , , Subject: [dpdk-dev] [PATCH v4 0/4] lib/rib: Add Routing Information Base library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2018 22:03:45 -0000 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