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.

---
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 (3):
  cfgfile: remove EAL dependency
  cfgfile: add new functions to API
  test/cfgfile: add new unit test

Kuba Kozak (1):
  cfgfile: rework of load function

 lib/librte_cfgfile/Makefile                      |   1 +
 lib/librte_cfgfile/rte_cfgfile.c                 | 397 +++++++++++++++--------
 lib/librte_cfgfile/rte_cfgfile.h                 |  76 +++++
 lib/librte_cfgfile/rte_cfgfile_version.map       |  11 +
 test/test/test_cfgfile.c                         |  40 +++
 test/test/test_cfgfiles/etc/realloc_sections.ini | 128 ++++++++
 6 files changed, 514 insertions(+), 139 deletions(-)
 create mode 100644 test/test/test_cfgfiles/etc/realloc_sections.ini

-- 
2.7.4

Reply via email to