From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 089DC235 for ; Sat, 8 Jul 2017 18:37:24 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP; 08 Jul 2017 09:37:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,329,1496127600"; d="scan'208";a="284549127" Received: from tanjianf-mobl.ccr.corp.intel.com (HELO [10.255.31.104]) ([10.255.31.104]) by fmsmga004.fm.intel.com with ESMTP; 08 Jul 2017 09:37:22 -0700 To: Jiayu Hu , dev@dpdk.org References: <1499227716-116583-1-git-send-email-jiayu.hu@intel.com> <1499423958-84024-1-git-send-email-jiayu.hu@intel.com> <1499423958-84024-2-git-send-email-jiayu.hu@intel.com> Cc: konstantin.ananyev@intel.com, yliu@fridaylinux.org, stephen@networkplumber.org, jingjing.wu@intel.com, lei.a.yao@intel.com From: "Tan, Jianfeng" Message-ID: <7509315c-82eb-6540-c9cf-d6f354283ba9@intel.com> Date: Sun, 9 Jul 2017 00:37:21 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <1499423958-84024-2-git-send-email-jiayu.hu@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v12 1/3] lib: add Generic Receive Offload API framework X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Jul 2017 16:37:25 -0000 Hi Jiayu, On 7/7/2017 6:39 PM, Jiayu Hu wrote: > Generic Receive Offload (GRO) is a widely used SW-based offloading > technique to reduce per-packet processing overhead. It gains > performance by reassembling small packets into large ones. This > patchset is to support GRO in DPDK. To support GRO, this patch > implements a GRO API framework. > > To enable more flexibility to applications, DPDK GRO is implemented as > a user library. Applications explicitly use the GRO library to merge > small packets into large ones. DPDK GRO provides two reassembly modes. > One is called lightweight mode, the other is called heavyweight mode. > If applications want to merge packets in a simple way and the number > of packets is relatively small, they can use the lightweight mode. > If applications need more fine-grained controls, they can choose the > heavyweight mode. > > rte_gro_reassemble_burst is the main reassembly API which is used in > lightweight mode and processes N packets at a time. For applications, > performing GRO in lightweight mode is simple. They just need to invoke > rte_gro_reassemble_burst. Applications can get GROed packets as soon as > rte_gro_reassemble_burst returns. > > rte_gro_reassemble is the main reassembly API which is used in > heavyweight mode and tries to merge N inputted packets with the packets > in GRO reassembly tables. For applications, performing GRO in heavyweight > mode is relatively complicated. Before performing GRO, applications need > to create a GRO context object, which keeps reassembly tables of > desired GRO types, by rte_gro_ctx_create. Then applications can use > rte_gro_reassemble to merge packets. The GROed packets are in the > reassembly tables of the GRO context object. If applications want to get > them, applications need to manually flush them by flush API. > > Signed-off-by: Jiayu Hu I suppose you still need to update the MAINTAINER file. Besides that, this series looks good to me. Reviewed-by: Jianfeng Tan