On Thu, Feb 22, 2018 at 10:50:55PM +0000, Medvedkin Vladimir wrote: > 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. > - For dir24_8 implementation it is possible to remove > rte_lpm_tbl_entry.depth field that helps to save 6 bits. > - Also new dir24_8 implementation supports different next_hop sizes > (1/2/4/8 bytes per next hop) > - Removed RTE_LPM_LOOKUP_SUCCESS to save 1 bit and to eleminate > ternary operator. > Instead it returns special default value if there is no route. > > Signed-off-by: Medvedkin Vladimir <medvedk...@gmail.com> > --- > config/common_base | 6 + > doc/api/doxy-api.conf | 1 + > lib/Makefile | 2 + > lib/librte_rib/Makefile | 23 ++ > lib/librte_rib/rte_dir24_8.c | 482 +++++++++++++++++++++++++++++++++ > lib/librte_rib/rte_dir24_8.h | 115 ++++++++ > lib/librte_rib/rte_rib.c | 526 > +++++++++++++++++++++++++++++++++++++ > lib/librte_rib/rte_rib.h | 322 +++++++++++++++++++++++ > lib/librte_rib/rte_rib_version.map | 18 ++ > mk/rte.app.mk | 1 + > 10 files changed, 1496 insertions(+) > create mode 100644 lib/librte_rib/Makefile > 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 > Sorry, I didn't see there was a V3, so made comments to V2. Hopefully the comments all still apply. For future versions, please include a diff log below the cut-line so that we can see what changes between each version.
Thanks, /Bruce