Re: [dpdk-dev] [PATCH v5 00/12] lib: add RIB and FIB liraries
From: Morten Brørup <hidden>
Date: 2019-09-12 12:00:53
Hi Vladimir,
-----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Medvedkin, Vladimir Hi Brørup, On 12/09/2019 08:37, Morten Brørup wrote:quoted
quoted
-----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of VladimirMedvedkinquoted
quoted
This is heavily reworked version of previous RIB library series: https://mails.dpdk.org/archives/dev/2018-April/099492.html
[snip]
quoted
quoted
Second library is FIB that is Forwarding Information Base. It represents dataplane related struct and algorithms for longest prefix match. Internally it consists of two parts - RIB (control plane ops) and implementation for the dataplane tasks. Initial version provides two implementations for both ipv4 and ipv6: dummy (uses RIB as a dataplane) and DIR24_8 (same as current LPM) Due to proposed design it allows to extend FIB with new algorithmsinquoted
quoted
future (for example DXR, poptrie, etc).The feedback following here is meant as a comment, not an objection.Feel free to ignore!quoted
This FIB library is designed for IP based forwarding only. How about forwarding based on other criteria? E.g. the FIB in a standard Ethernet switch is based on VLAN+MAC. Such a FIB would probably require a different library, based on ahash structure, and would also require a compare-and-set function callable from the data plane in order to provide wire speed learning.quoted
So I suggest that the documentation highlights that this FIB libraryis for IP based forwarding. Optionally also reconsider the name of the library and its functions, structures etc.. Thanks for the feedback. Yes, at the moment FIB has only longest prefix match algorithms. However, it is possible to add different exact match algorithms for VLAN+MAC/MPLS/etc processing. It is always hard to find proper name for library/function/variable, so if you think that fib name is not relevant feel free to suggest better :)
You can use ip_/ipv4_/ipv6_ somewhere in the common prefix, like the ip_frag library, and unlike many other libraries. :-) And again: Feel free to ignore!
-- Regards, Vladimir
Med venlig hilsen / kind regards - Morten Brørup