From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tan, Jianfeng" Subject: Re: [PATCH v12 1/3] lib: add Generic Receive Offload API framework Date: Sun, 9 Jul 2017 00:37:21 +0800 Message-ID: <7509315c-82eb-6540-c9cf-d6f354283ba9@intel.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: konstantin.ananyev@intel.com, yliu@fridaylinux.org, stephen@networkplumber.org, jingjing.wu@intel.com, lei.a.yao@intel.com To: Jiayu Hu , dev@dpdk.org 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) In-Reply-To: <1499423958-84024-2-git-send-email-jiayu.hu@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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