[dpdk-dev] [PATCH v4 0/5] Rework cfgfile API to enable apps config file support

Thomas Monjalon thomas at monjalon.net
Mon Jul 10 17:13:46 CEST 2017


The maintainer of librte_cfgfile is Cristian (+Cc),
please set him as recipient for next time.

10/07/2017 14:44, Jacek Piasecki:
> New API for cfgfile library allows to create a cfgfile at runtime, add new
> section, add entry in a section, update existing entry and save cfgfile
> structure to INI file - opens up the possibility to have applications
> dynamically build up a proper DPDK configuration, rather than
> having to have a pre-existing one. Due the new API functions, simplification
> of load() function was made. One new unit test to TEST app was added. It
> contains an example of a large INI file whose parsing requires multiple
> reallocation of memory.
> 
> ---
> v4:	
> 	Change members of structure cfgfile:
> 	- struct *sections[] to *sections
> 	- struct *entries[] to *entries
> 	- remove free_sections and free_entries
> 	Rework of existing cfgfile API functions to work with modified
> 	rte_cfgfile struct.
> 	Rework of malloc/realloc implementation due rte_cfgfile struct change,
> 	reducing mulitiple mallocs.
> 	Change return error codes for all library functions (errno.h)
> 	Checkpatch fixes
> v3: 
> 	split one patchset into two distinct patchsets:
> 	1. cfgfile library and TEST app changes
> 	2. EAL changes and examples (this patchset depends on cfgfile)
> v2:
>   lib eal:
>   	Rework of rte_eal_configure(struct rte_cfgfile *cfg, char *prgname).
> 	Now this function load data from cfg structure and did initial
> 	initialization of EAL arguments. Vdev argument are stored in different
> 	subsections eg. DPDK.vdev0, DPDK.vdev1 etc. After execution of this
> 	function it is necessary to call rte_eal_init to complete EAL
> 	initialization. There is no more merging arguments from different
> 	sources (cfg file and command line).
>   	Added non_eal_configure to testpmd application.
> 	Function maintain the same functionality as rte_eal_configure but
> 	for non-eal arguments. 
>   	Added config JSON feature to testpmd last patch from patchset contain
> 	example showing use of .json configuration files.
> 
>   lib cfgfile:
>   	Rework of add_section(), add_entry() new implementation
>   	New members allocated_entries/sections, free_entries/sections
> 	in rte_cfgfile structure, change in array of pointers
> 	**sections, **entries instead of *sections[], *entries[]
>   	Add  set_entry() to update/overwrite already existing entry in cfgfile
> 	struct
>   	Add save() function to save on disc cfgfile structure in INI format
>   	Rework of existing load() function  simplifying the code
>   	Add unit test realloc_sections() in TEST app for testing realloc/malloc
> 	of new API functions, add test for save() function
> 
> Jacek Piasecki (5):
>   cfgfile: remove EAL dependency
>   cfgfile: change existing API functions
>   cfgfile: add new functions to API
>   cfgfile: rework of load function
>   test/cfgfile: add new unit test
> 
>  lib/Makefile                                     |   3 +-
>  lib/librte_cfgfile/Makefile                      |   1 +
>  lib/librte_cfgfile/rte_cfgfile.c                 | 417 ++++++++++++++---------
>  lib/librte_cfgfile/rte_cfgfile.h                 |  82 ++++-
>  lib/librte_cfgfile/rte_cfgfile_version.map       |  11 +
>  test/test/test_cfgfile.c                         |  40 +++
>  test/test/test_cfgfiles/etc/realloc_sections.ini | 128 +++++++
>  7 files changed, 514 insertions(+), 168 deletions(-)
>  create mode 100644 test/test/test_cfgfiles/etc/realloc_sections.ini
> 
> 





More information about the dev mailing list