[dpdk-dev] [PATCH v13 1/7] fib: make lookup function type configurable

Medvedkin, Vladimir vladimir.medvedkin at intel.com
Thu Oct 22 17:11:36 CEST 2020


Hi David,

On 22/10/2020 12:52, David Marchand wrote:
> On Mon, Oct 19, 2020 at 5:05 PM Vladimir Medvedkin
> <vladimir.medvedkin at intel.com> wrote:
>>
>> Add type argument to dir24_8_get_lookup_fn()
>> Now it supports 3 different lookup implementations:
>>   RTE_FIB_DIR24_8_SCALAR_MACRO
>>   RTE_FIB_DIR24_8_SCALAR_INLINE
>>   RTE_FIB_DIR24_8_SCALAR_UNI
>>
>> Add new rte_fib_set_lookup_fn() - user can change lookup
>> function type runtime.
>>
>> Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin at intel.com>
>> Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
> 
> We create a fib object with a type: either RTE_FIB_DUMMY or
> RTE_FIB_DIR24_8 (separate topic, we probably do not need
> RTE_FIB_TYPE_MAX).
RTE_FIB_TYPE_MAX is used for early sanity check. I can remove it 
(relying on that init_dataplane() will return error for improper type), 
if you think that it is better to get rid of it.

> 
> This lookup API is dir24_8 specific.
> If we won't abstract the lookup selection type, why not change this
> API as dir24_8 specific?
> I.e. s/rte_fib_set_lookup_fn/rte_fib_dir24_8_set_lookup_fn/g
> 
> The same would apply to FIB6 trie implementation.

Good point. In future I want to add more data plane algorithms such as 
DXR or Poptrie for example. In this case I don't really want to have 
separate function for every supported algorithm, i.e. I think it is 
better to have single rte_fib_set_lookup_fn(). But on the other hand it 
needs to be generic in this case. In future releases I want to get rid 
of different dir24_8's scalar implementations (MACRO/INLINE/UNI). After 
this we can change types to algorithm agnostic names:
RTE_FIB_SCALAR,
RTE_FIB_VECTOR_AVX512

> 

-- 
Regards,
Vladimir


More information about the dev mailing list