[dpdk-dev] [PATCH v11 2/4] eal: add legacy kni option
vattunuru at marvell.com
vattunuru at marvell.com
Mon Oct 21 10:03:22 CEST 2019
From: Vamsi Attunuru <vattunuru at 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 <vattunuru at marvell.com>
Suggested-by: Ferruh Yigit <ferruh.yigit at 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
More information about the dev
mailing list