> > This patchset introduces config file support for l3fwd > > and its lookup methods LPM, FIB, and EM, similar to > > that of l3fwd-acl. This allows for route rules to be > > defined in configuration files and edited there instead > > of in each of the lookup methods hardcoded route tables. > > > > V4: > > * Fix nondeterministic bug of segfault on termination of > > sample app. > > V5: > > * Reintroduce hardcoded tables as to not break dts and > > allow for hardcoded tables to be used if no config > > files presented. > > > > Sean Morrissey (2): > > examples/l3fwd: add config file support for LPM/FIB > > examples/l3fwd: add config file support for EM > > > > doc/guides/sample_app_ug/l3_forward.rst | 89 +++-- > > examples/l3fwd/em_default_v4.cfg | 17 + > > examples/l3fwd/em_default_v6.cfg | 17 + > > examples/l3fwd/l3fwd.h | 41 +++ > > examples/l3fwd/l3fwd_em.c | 471 +++++++++++++++++------- > > examples/l3fwd/l3fwd_fib.c | 50 +-- > > examples/l3fwd/l3fwd_lpm.c | 315 +++++++++++++++- > > examples/l3fwd/l3fwd_route.h | 41 +++ > > examples/l3fwd/lpm_default_v4.cfg | 17 + > > examples/l3fwd/lpm_default_v6.cfg | 17 + > > examples/l3fwd/main.c | 68 +++- > > 11 files changed, 949 insertions(+), 194 deletions(-) > > create mode 100644 examples/l3fwd/em_default_v4.cfg > > create mode 100644 examples/l3fwd/em_default_v6.cfg > > create mode 100644 examples/l3fwd/lpm_default_v4.cfg > > create mode 100644 examples/l3fwd/lpm_default_v6.cfg > > > > Why not use the DPDK cfgfile library and format? > It is model after standard INI format.
It is probably some sort of misunderstanding: This patch doesn't add configuration file for some l3fwd run-time parameters (number of ports/queues, queue/cpu mappings, etc.). It allows user to specify he's own routing table instead of hard-coded ones. For routing table .ini file format is not really suitable. Instead we follow format similar to what is used in other DPDK apps (l3fwd-acl, ipsec-secgw, test-acl, test-fib, test-sad, etc.) for these purposes: list of route entries, each entry occupies exactly one line. As an example: /examples/l3fwd/lpm_default_v4.cfg #Copy of hard-coded IPv4 FWD table for L3FWD LPM R198.18.0.0/24 0 R198.18.1.0/24 1 R198.18.2.0/24 2 R198.18.3.0/24 3 .... I suppose it is self-explanatory, intuitive and close enough to what user used for with unix-like route config tools. Konstantin