From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 75ED4231C for ; Fri, 28 Nov 2014 13:14:21 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 28 Nov 2014 04:14:20 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,476,1413270000"; d="scan'208";a="639532652" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga002.fm.intel.com with ESMTP; 28 Nov 2014 04:14:19 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id sASCEGPi014928; Fri, 28 Nov 2014 20:14:16 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id sASCEEPR012380; Fri, 28 Nov 2014 20:14:16 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id sASCEEds012376; Fri, 28 Nov 2014 20:14:14 +0800 From: Helin Zhang To: dev@dpdk.org Date: Fri, 28 Nov 2014 20:14:08 +0800 Message-Id: <1417176852-12345-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1416409096-1340-1-git-send-email-helin.zhang@intel.com> References: <1416409096-1340-1-git-send-email-helin.zhang@intel.com> Subject: [dpdk-dev] [PATCH v7 0/4] Support configuring hash functions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Nov 2014 12:14:21 -0000 These patches mainly support configuring hash functions. In detail, - It can get/set global hash configurations. * Get/set symmetric hash enable per flow type. * Get/set hash function type. - It can get/set symmetric hash enable per port. - Four commands have been implemented in testpmd to support testing above. * get_sym_hash_ena_per_port * set_sym_hash_ena_per_port * get_hash_global_config * set_hash_global_config It also uses constant hash keys to replace runtime generating hash keys. Global initialization is added to correctly put registers to an initial state. v3 changes: * Removed renamings in rte_ethdev.h. * Redesigned filter control API and its relevant structures/enums. * Renamed header file from rte_eth_features.h to rte_eth_ctrol.h. * Remove public header file of rte_i40e.h specific for i40e. * Added hardware initialization function during port init. * Used constant random hash keys in i40e PF. * renamed the commands in testpmd based on the redesigned filter control API. v4 changes: * Fixed a bug in testpmd to support 'set_sym_hash_ena_per_port'. v5 changes: * Integrated with filter API defined recently. * Remove all for filter API definition, as it has already defined and merged recently. v6 changes: * Flow type strings are used to replace Packet Classification Types, to isolate hardware specific things. * Implemented the mapping function to convert RSS offload types to Packet Classification Types, to isolate the real hardware specific things. * Removed initialization of global registers in i40e PMD, as global registers shouldn't be initialized per port. * Added more annotations to get code more understandable. * Corrected annotation format for documenation. v7 changes: * Remove swap configurations, as it is not allowed by hardware design. * Put symmetric hash per flow type and hash function type into 'RTE_ETH_HASH_FILTER_GLOBAL_CONFIG', as they are controlling global registers which will affects all the ports of the same NIC. Helin Zhang (4): ethdev: code style fixes i40e: use constant as the default hash keys i40e: support of controlling hash functions app/testpmd: app/testpmd: add commands to support hash functions app/test-pmd/cmdline.c | 334 ++++++++++++++++++++++++++++++++++++++ lib/librte_ether/rte_eth_ctrl.h | 72 +++++++- lib/librte_pmd_i40e/i40e_ethdev.c | 312 ++++++++++++++++++++++++++++++++++- 3 files changed, 704 insertions(+), 14 deletions(-) -- 1.8.1.4