[dpdk-dev] [PATCH v2 1/2] app/testpmd: support the heavywight mode GRO

Hu, Jiayu jiayu.hu at intel.com
Tue Aug 22 03:00:57 CEST 2017


Hi,
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Monday, August 21, 2017 7:04 PM
> To: Hu, Jiayu <jiayu.hu at intel.com>; dev at dpdk.org
> Cc: Ananyev, Konstantin <konstantin.ananyev at intel.com>; Tan, Jianfeng
> <jianfeng.tan at intel.com>; thomas at monjalon.net; Wu, Jingjing
> <jingjing.wu at intel.com>; Yao, Lei A <lei.a.yao at intel.com>
> Subject: Re: [PATCH v2 1/2] app/testpmd: support the heavywight mode GRO
> 
> On 8/17/2017 10:08 AM, Jiayu Hu wrote:
> > The GRO library provides two reassembly modes: lightweight mode and
> > heavyweight mode. This patch is to support the heavyweight mode in
> > csum forwarding engine.
> >
> > With the command "set port <port_id> gro (heavymode|lightmode)
> (on|off)",
> > users can select the lightweight mode or the heavyweight mode to use.
> With
> > the command "set gro flush interval <num>", users can set the interval of
> > flushing GROed packets from reassembly tables for the heavyweight mode.
> > With the command "show port <port_id> gro", users can display GRO
> > configuration.
> >
> > Signed-off-by: Jiayu Hu <jiayu.hu at intel.com>
> 
> <...>
> 
> >  	lcoreid_t  cpuid_idx;    /**< index of logical core in CPU id table */
> > @@ -434,13 +436,21 @@ extern struct ether_addr
> peer_eth_addrs[RTE_MAX_ETHPORTS];
> >  extern uint32_t burst_tx_delay_time; /**< Burst tx delay time(us) for mac-
> retry. */
> >  extern uint32_t burst_tx_retry_num;  /**< Burst tx retry number for mac-
> retry. */
> >
> > +#define GRO_HEAVYMODE 0x1
> > +#define GRO_LIGHTMODE 0x2
> 
> Why these are not part of the gro library?
> Is the concept "lightweight mode and heavyweight mode" part of gro
> library or implemented only in testpmd?

Lightweight mode and heavyweight mode are two reassembly methods we
provided in the GRO library. For applications, they are just two kinds of APIs.
Applications can select any of them to merge packets.

In testpmd, we want to show how to use these two reassembly modes, so
I define two macros to present them. Users can select which one to use via
command line.

> 
> > +
> >  #define GRO_DEFAULT_FLOW_NUM 4
> >  #define GRO_DEFAULT_ITEM_NUM_PER_FLOW DEF_PKT_BURST
> > +
> > +#define GRO_DEFAULT_FLUSH_INTERVAL 2
> > +#define GRO_MAX_FLUSH_INTERVAL 4
> > +
> >  struct gro_status {
> >  	struct rte_gro_param param;
> >  	uint8_t enable;
> >  };
> >  extern struct gro_status gro_ports[RTE_MAX_ETHPORTS];
> > +extern uint32_t gro_flush_interval;
> 
> <...>


More information about the dev mailing list