[dpdk-dev] [PATCH v12 1/3] lib: add Generic Receive Offload API framework

Tan, Jianfeng jianfeng.tan at intel.com
Sat Jul 8 18:37:21 CEST 2017


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 <jiayu.hu at intel.com>

I suppose you still need to update the MAINTAINER file. Besides that, 
this series looks good to me.

Reviewed-by: Jianfeng Tan <jianfeng.tan at intel.com>



More information about the dev mailing list