From: Vamsi Attunuru <vattun...@marvell.com> This adds a "--legacy-kni" command-line option. It will be used to run existing KNI applications with DPDK 19.11 and later.
Signed-off-by: Vamsi Attunuru <vattun...@marvell.com> Suggested-by: Ferruh Yigit <ferruh.yi...@intel.com> --- doc/guides/rel_notes/release_19_11.rst | 4 ++++ lib/librte_eal/common/eal_common_options.c | 5 +++++ lib/librte_eal/common/eal_internal_cfg.h | 2 ++ lib/librte_eal/common/eal_options.h | 2 ++ 4 files changed, 13 insertions(+) diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst index 85953b9..ab2c381 100644 --- a/doc/guides/rel_notes/release_19_11.rst +++ b/doc/guides/rel_notes/release_19_11.rst @@ -115,6 +115,10 @@ New Features Added eBPF JIT support for arm64 architecture to improve the eBPF program performance. +* **Added EAL option to operate KNI in legacy mode.** + + Added EAL option ``--legacy-kni`` to make existing KNI applications work + with DPDK 19.11 and later. Removed Items ------------- diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index 05cae5f..8f5174e 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -81,6 +81,7 @@ eal_long_options[] = { {OPT_LEGACY_MEM, 0, NULL, OPT_LEGACY_MEM_NUM }, {OPT_SINGLE_FILE_SEGMENTS, 0, NULL, OPT_SINGLE_FILE_SEGMENTS_NUM}, {OPT_MATCH_ALLOCATIONS, 0, NULL, OPT_MATCH_ALLOCATIONS_NUM}, + {OPT_LEGACY_KNI, 0, NULL, OPT_LEGACY_KNI_NUM }, {0, 0, NULL, 0 } }; @@ -1408,6 +1409,9 @@ eal_parse_common_option(int opt, const char *optarg, return -1; } break; + case OPT_LEGACY_KNI_NUM: + conf->legacy_kni = 1; + break; /* don't know what to do, leave this to caller */ default: @@ -1636,6 +1640,7 @@ eal_common_usage(void) " (ex: --vdev=net_pcap0,iface=eth2).\n" " --"OPT_IOVA_MODE" Set IOVA mode. 'pa' for IOVA_PA\n" " 'va' for IOVA_VA\n" + " --"OPT_LEGACY_KNI" Run KNI in IOVA_PA mode (legacy mode)\n" " -d LIB.so|DIR Add a driver or driver directory\n" " (can be used multiple times)\n" " --"OPT_VMWARE_TSC_MAP" Use VMware TSC map instead of native RDTSC\n" diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h index a42f349..eee71ec 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -82,6 +82,8 @@ struct internal_config { rte_cpuset_t ctrl_cpuset; /**< cpuset for ctrl threads */ volatile unsigned int init_complete; /**< indicates whether EAL has completed initialization */ + volatile unsigned legacy_kni; + /**< true to enable legacy kni behavior */ }; extern struct internal_config internal_config; /**< Global EAL configuration. */ diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h index 9855429..1010ed3 100644 --- a/lib/librte_eal/common/eal_options.h +++ b/lib/librte_eal/common/eal_options.h @@ -69,6 +69,8 @@ enum { OPT_IOVA_MODE_NUM, #define OPT_MATCH_ALLOCATIONS "match-allocations" OPT_MATCH_ALLOCATIONS_NUM, +#define OPT_LEGACY_KNI "legacy-kni" + OPT_LEGACY_KNI_NUM, OPT_LONG_MAX_NUM }; -- 2.8.4