From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 7707DB6A0 for ; Tue, 17 Feb 2015 07:59:43 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP; 16 Feb 2015 22:52:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,593,1418112000"; d="scan'208";a="678985759" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga002.fm.intel.com with ESMTP; 16 Feb 2015 22:59:40 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t1H6xclc014792; Tue, 17 Feb 2015 14:59:38 +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 t1H6xZ2g021802; Tue, 17 Feb 2015 14:59:37 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t1H6xZV9021798; Tue, 17 Feb 2015 14:59:35 +0800 From: Helin Zhang To: dev@dpdk.org Date: Tue, 17 Feb 2015 14:59:18 +0800 Message-Id: <1424156374-21768-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1422501365-12643-1-git-send-email-helin.zhang@intel.com> References: <1422501365-12643-1-git-send-email-helin.zhang@intel.com> Subject: [dpdk-dev] [PATCH v3 00/16] unified packet type 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: Tue, 17 Feb 2015 06:59:44 -0000 Currently only 6 bits which are stored in ol_flags are used to indicate the packet types. This is not enough, as some NIC hardware can recognize quite a lot of packet types, e.g i40e hardware can recognize more than 150 packet types. Hiding those packet types hides hardware offload capabilities which could be quite useful for improving performance and for end users. So an unified packet types are needed to support all possible PMDs. A 16 bits packet_type in mbuf structure can be changed to 32 bits and used for this purpose. In addition, all packet types stored in ol_flag field should be deleted at all, and 6 bits of ol_flags can be save as the benifit. Initially, 32 bits of packet_type can be divided into several sub fields to indicate different packet type information of a packet. The initial design is to divide those bits into fields for L2 types, L3 types, L4 types, tunnel types, inner L2 types, inner L3 types and inner L4 types. All PMDs should translate the offloaded packet types into these 7 fields of information, for user applications. v2 changes: * Enlarged the packet_type field from 16 bits to 32 bits. * Redefined the packet type sub-fields. * Updated the 'struct rte_kni_mbuf' for KNI according to the mbuf changes. * Used redefined packet types and enlarged packet_type field for all PMDs and corresponding applications. * Removed changes in bond and its relevant application, as there is no need at all according to the recent bond changes. v3 changes: * Put the mbuf layout changes into a single patch. * Put vector ixgbe changes right after mbuf changes. * Disabled vector ixgbe PMD by default, as mbuf layout changed, and then re-enabled it after vector ixgbe PMD updated. * Put the definitions of unified packet type into a single patch. * Minor bug fixes and enhancements in l3fwd example. Helin Zhang (16): mbuf: redefinition of packet_type in rte_mbuf ixgbe: support of unified packet type for vector mbuf: add definitions of unified packet types e1000: support of unified packet type ixgbe: support of unified packet type i40e: support of unified packet type enic: support of unified packet type vmxnet3: support of unified packet type app/test-pipeline: support of unified packet type app/testpmd: support of unified packet type examples/ip_fragmentation: support of unified packet type examples/ip_reassembly: support of unified packet type examples/l3fwd-acl: support of unified packet type examples/l3fwd-power: support of unified packet type examples/l3fwd: support of unified packet type mbuf: remove old packet type bit masks app/test-pipeline/pipeline_hash.c | 7 +- app/test-pmd/csumonly.c | 10 +- app/test-pmd/rxonly.c | 9 +- examples/ip_fragmentation/main.c | 7 +- examples/ip_reassembly/main.c | 7 +- examples/l3fwd-acl/main.c | 19 +- examples/l3fwd-power/main.c | 5 +- examples/l3fwd/main.c | 71 +- .../linuxapp/eal/include/exec-env/rte_kni_common.h | 4 +- lib/librte_mbuf/rte_mbuf.c | 6 - lib/librte_mbuf/rte_mbuf.h | 127 +++- lib/librte_pmd_e1000/igb_rxtx.c | 98 ++- lib/librte_pmd_enic/enic_main.c | 14 +- lib/librte_pmd_i40e/i40e_rxtx.c | 786 ++++++++++++++------- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 146 +++- lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 49 +- lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 4 +- 17 files changed, 921 insertions(+), 448 deletions(-) -- 1.9.3