[dpdk-dev] [PATCH] fib: add rib extension size parameter

Medvedkin, Vladimir vladimir.medvedkin at intel.com
Tue Oct 26 22:30:36 CEST 2021


Hi Thomas,

On 25/10/2021 19:23, Thomas Monjalon wrote:
> 06/09/2021 17:55, Vladimir Medvedkin:
>> This patch adds a new parameter to the fib configuration to specify
>> the size of the extension for internal RIB structure.
> 
> It looks to be an announced API change.
> What happens if the new field is not initialized in the app?
> At least it would deserve a note in the release notes in API changes I think.
> 

This patch was sent for an experimental library, so no update was required.
In the patch about the promotion of the FIB API to stable:

https://patches.dpdk.org/project/dpdk/patch/1630944075-363524-1-git-send-email-vladimir.medvedkin@intel.com/

I put a note about this patch and mentioned that it should be applied 
before promotion API to stable.

Can we accept it now or we have to wait for next LTS release?


>> --- a/examples/l3fwd/l3fwd_fib.c
>> +++ b/examples/l3fwd/l3fwd_fib.c
>> @@ -426,6 +426,7 @@ setup_fib(const int socketid)
>>   	/* Create the fib IPv4 table. */
>>   	config_ipv4.type = RTE_FIB_DIR24_8;
>>   	config_ipv4.max_routes = (1 << 16);
>> +	config_ipv4.rib_ext_sz = 0;
>>   	config_ipv4.default_nh = FIB_DEFAULT_HOP;
>>   	config_ipv4.dir24_8.nh_sz = RTE_FIB_DIR24_8_4B;
>>   	config_ipv4.dir24_8.num_tbl8 = (1 << 15);
>> @@ -475,6 +476,7 @@ setup_fib(const int socketid)
>>   
>>   	config.type = RTE_FIB6_TRIE;
>>   	config.max_routes = (1 << 16) - 1;
>> +	config.rib_ext_sz = 0;
>>   	config.default_nh = FIB_DEFAULT_HOP;
>>   	config.trie.nh_sz = RTE_FIB6_TRIE_4B;
>>   	config.trie.num_tbl8 = (1 << 15);
>> diff --git a/lib/fib/rte_fib.c b/lib/fib/rte_fib.c
>> index b354d4b..6ca180d 100644
>> --- a/lib/fib/rte_fib.c
>> +++ b/lib/fib/rte_fib.c
>> @@ -164,7 +164,7 @@ rte_fib_create(const char *name, int socket_id, struct rte_fib_conf *conf)
>>   		return NULL;
>>   	}
>>   
>> -	rib_conf.ext_sz = 0;
>> +	rib_conf.ext_sz = conf->rib_ext_sz;
>>   	rib_conf.max_nodes = conf->max_routes * 2;
>>   
>>   	rib = rte_rib_create(name, socket_id, &rib_conf);
>> diff --git a/lib/fib/rte_fib.h b/lib/fib/rte_fib.h
>> index acad209..570b4b6 100644
>> --- a/lib/fib/rte_fib.h
>> +++ b/lib/fib/rte_fib.h
>> @@ -84,6 +84,8 @@ struct rte_fib_conf {
>>   	/** Default value returned on lookup if there is no route */
>>   	uint64_t default_nh;
>>   	int	max_routes;
>> +	/** Size of the node extension in the internal RIB struct */
>> +	unsigned int rib_ext_sz;
>>   	union {
>>   		struct {
>>   			enum rte_fib_dir24_8_nh_sz nh_sz;
> 
> 
> 

-- 
Regards,
Vladimir


More information about the dev mailing list