From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhe Tao Subject: [PATCH 1/2 v5] i40e: support floating VEB config Date: Wed, 23 Mar 2016 20:27:09 +0800 Message-ID: <1458736030-1283-2-git-send-email-zhe.tao@intel.com> References: <1456906110-15081-1-git-send-email-zhe.tao@intel.com> <1458736030-1283-1-git-send-email-zhe.tao@intel.com> Cc: zhe.tao@intel.com, jingjing.wu@intel.com To: dev@dpdk.org Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 0DCEB2BA8 for ; Wed, 23 Mar 2016 13:27:35 +0100 (CET) In-Reply-To: <1458736030-1283-1-git-send-email-zhe.tao@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add the new floating related argument option in the EAL. Using this parameter, all the samples can decide whether to use legacy VEB/VEPA or floating VEB. Even the floating argument is provided in the EAL, but this floating feature are only support for FVL so far. Signed-off-by: Zhe Tao --- doc/guides/testpmd_app_ug/run_app.rst | 4 ++++ lib/librte_eal/common/eal_common_options.c | 4 ++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 ++ 4 files changed, 11 insertions(+) diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst index f605564..2f02f63 100644 --- a/doc/guides/testpmd_app_ug/run_app.rst +++ b/doc/guides/testpmd_app_ug/run_app.rst @@ -156,6 +156,10 @@ See the DPDK Getting Started Guides for more information on these options. Use malloc instead of hugetlbfs. +* ``--floating`` + + Enable floating feature for virtual ethernet switch in the NIC. + Now only Intel i40e NIC supports this feature. Testpmd Command-line Options ---------------------------- diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index 29942ea..29ed7bf 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -95,6 +95,7 @@ eal_long_options[] = { {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM }, {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM }, {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM }, + {OPT_FLOATING, 0, NULL, OPT_FLOATING_NUM }, {0, 0, NULL, 0 } }; @@ -896,6 +897,9 @@ eal_parse_common_option(int opt, const char *optarg, return -1; } break; + case OPT_FLOATING_NUM: + conf->floating = 1; + break; /* don't know what to do, leave this to caller */ default: diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h index 5f1367e..19b321a 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -68,6 +68,7 @@ struct internal_config { volatile unsigned xen_dom0_support; /**< support app running on Xen Dom0*/ volatile unsigned no_pci; /**< true to disable PCI */ volatile unsigned no_hpet; /**< true to disable HPET */ + volatile unsigned floating; /**< true to enable floating VEB */ volatile unsigned vmware_tsc_map; /**< true to use VMware TSC mapping * instead of native TSC */ volatile unsigned no_shconf; /**< true if there is no shared config */ diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h index a881c62..413c9e6 100644 --- a/lib/librte_eal/common/eal_options.h +++ b/lib/librte_eal/common/eal_options.h @@ -83,6 +83,8 @@ enum { OPT_VMWARE_TSC_MAP_NUM, #define OPT_XEN_DOM0 "xen-dom0" OPT_XEN_DOM0_NUM, +#define OPT_FLOATING "floating" + OPT_FLOATING_NUM, OPT_LONG_MAX_NUM }; -- 2.1.4