From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id E471A2BDF for ; Tue, 20 Jun 2017 03:47:36 +0200 (CEST) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP; 19 Jun 2017 18:47:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,363,1493708400"; d="scan'208";a="116917299" Received: from unknown (HELO localhost.localdomain) ([10.239.128.239]) by fmsmga006.fm.intel.com with ESMTP; 19 Jun 2017 18:47:34 -0700 Date: Tue, 20 Jun 2017 09:48:45 +0800 From: Jiayu Hu To: Stephen Hemminger Cc: dev@dpdk.org, konstantin.ananyev@intel.com, yliu@fridaylinux.org, keith.wiles@intel.com, jianfeng.tan@intel.com, tiwei.bie@intel.com, lei.a.yao@intel.com Message-ID: <20170620014845.GA12728@localhost.localdomain> References: <1496833731-53653-1-git-send-email-jiayu.hu@intel.com> <1497770469-16661-1-git-send-email-jiayu.hu@intel.com> <1497770469-16661-2-git-send-email-jiayu.hu@intel.com> <20170619085500.6c0b85fc@xeon-e3> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170619085500.6c0b85fc@xeon-e3> User-Agent: Mutt/1.7.1 (2016-10-04) Subject: Re: [dpdk-dev] [PATCH v5 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: Tue, 20 Jun 2017 01:47:37 -0000 On Mon, Jun 19, 2017 at 08:55:00AM -0700, Stephen Hemminger wrote: > On Sun, 18 Jun 2017 15:21:07 +0800 > Jiayu Hu wrote: > > > +/** > > + * This is the main reassembly API used in lightweight mode, which > > + * merges numbers of packets at a time. After it returns, applications > > + * can get GROed packets immediately. Applications don't need to > > + * flush packets manually. In lightweight mode, applications just need > > + * to tell the reassembly API what rules should be applied when merge > > + * packets. Therefore, applications can perform GRO in very a simple > > + * way. > > + * > > + * To process one packet, we find its corresponding reassembly table > > + * according to the packet type. Then search for the reassembly table > > + * to find one packet to merge. If find, chain the two packets together. > > + * If not find, insert the inputted packet into the reassembly table. > > + * Besides, to merge two packets is to chain them together. No > > + * memory copy is needed. Before rte_gro_reassemble_burst returns, > > + * header checksums of merged packets are re-calculated. > > + * > > + * @param pkts > > + * a pointer array which points to the packets to reassemble. After > > + * GRO, it is also used to keep GROed packets. > > + * @param nb_pkts > > + * the number of packets to reassemble. > > + * @param param > > + * Applications use param to tell rte_gro_reassemble_burst what rules > > + * are demanded. > > + * @return > > + * the number of packets after GROed. > > + */ > > +uint16_t rte_gro_reassemble_burst(struct rte_mbuf **pkts __rte_unused, > > + const uint16_t nb_pkts __rte_unused, > > + const struct rte_gro_param param __rte_unused); > > I think the __rte_unused attribute should be on the function definition, > not on the prototype. I think GCC ignores it on function prototypes. Thanks. I will modify it in next patch. BRs, Jiayu