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 48ED85A29 for ; Mon, 19 Jan 2015 04:23:31 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP; 18 Jan 2015 19:19:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,862,1389772800"; d="scan'208";a="442109220" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by FMSMGA003.fm.intel.com with ESMTP; 18 Jan 2015 19:10:18 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t0J3NRiO008179; Mon, 19 Jan 2015 11:23:27 +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 t0J3NOAS017068; Mon, 19 Jan 2015 11:23:26 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t0J3NOaj017064; Mon, 19 Jan 2015 11:23:24 +0800 From: Helin Zhang To: dev@dpdk.org Date: Mon, 19 Jan 2015 11:23:06 +0800 Message-Id: <1421637803-17034-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 Subject: [dpdk-dev] [RFC 00/17] 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: Mon, 19 Jan 2015 03:23: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. Recently a 16 bits packet_type field has been added in mbuf header which can be 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, 16 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 4 fields for L3 types, tunnel types, inner L3 types and L4 types. All PMDs should translate the offloaded packet types into this 4 fields of information, for user applications. As the changes affect all PMDs, mbuf and ethdev library, comments and ideas are welcome! Helin Zhang (17): mbuf: add definitions of unified packet types e1000: support of unified packet type ixgbe: support of unified packet type ixgbe: support of unified packet type i40e: support of unified packet type bond: 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/test-pmd: support of unified packet type app/test: 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 for ol_flags app/test-pipeline/pipeline_hash.c | 4 +- app/test-pmd/csumonly.c | 6 +- app/test-pmd/rxonly.c | 9 +- app/test/packet_burst_generator.c | 10 +- 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 | 64 +-- lib/librte_mbuf/rte_mbuf.c | 6 - lib/librte_mbuf/rte_mbuf.h | 78 +++- lib/librte_pmd_bond/rte_eth_bond_pmd.c | 9 +- lib/librte_pmd_e1000/igb_rxtx.c | 95 +++- lib/librte_pmd_enic/enic_main.c | 14 +- lib/librte_pmd_i40e/i40e_rxtx.c | 778 +++++++++++++++++++++------------ lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 141 ++++-- lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 39 +- lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 4 +- 18 files changed, 859 insertions(+), 436 deletions(-) -- 1.8.1.4