From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 35C8D1288 for ; Thu, 22 Jan 2015 08:37:07 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP; 21 Jan 2015 23:33:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,862,1389772800"; d="scan'208";a="443542534" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by FMSMGA003.fm.intel.com with ESMTP; 21 Jan 2015 23:23:42 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t0M7b2OC009293; Thu, 22 Jan 2015 15:37:02 +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 t0M7b0iA001980; Thu, 22 Jan 2015 15:37:02 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t0M7axFF001976; Thu, 22 Jan 2015 15:36:59 +0800 From: Helin Zhang To: dev@dpdk.org Date: Thu, 22 Jan 2015 15:36:54 +0800 Message-Id: <1421912219-1946-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1417486760-24459-1-git-send-email-helin.zhang@intel.com> References: <1417486760-24459-1-git-send-email-helin.zhang@intel.com> Subject: [dpdk-dev] [PATCH v9 0/5] 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: Thu, 22 Jan 2015 07:37:07 -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: * Removed 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. v8 changes: * Removed redundant checks in i40e_ethdev.c. * Solved compile errors on ICC. v9 changes: * Added typo fixes in rte_eth_ctrl.h. * Splitted modifications in both rte_eth_ctrl.h and i40e, one patch is for ethdev, the other one is for i40e. Helin Zhang (5): i40e: use constant as the default hash keys ethdev: code style fixes ethdev: support of configuring hash functions i40e: support of controlling hash functions app/testpmd: add commands to support hash functions app/test-pmd/cmdline.c | 333 ++++++++++++++++++++++++++++++++++++++ lib/librte_ether/rte_eth_ctrl.h | 72 ++++++++- lib/librte_pmd_i40e/i40e_ethdev.c | 308 +++++++++++++++++++++++++++++++++-- 3 files changed, 699 insertions(+), 14 deletions(-) -- 1.8.1.4