[dpdk-dev] [PATCH v4 16/21] ethdev: define structures for configuring flexible payload

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Oct 29 10:55:38 CET 2014


2014-10-29 03:21, Wu, Jingjing:
> 
> > -----Original Message-----
> > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > Sent: Tuesday, October 28, 2014 10:15 PM
> > To: Wu, Jingjing
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH v4 16/21] ethdev: define structures for
> > configuring flexible payload
> > 
> > 2014-10-22 09:01, Jingjing Wu:
> > > +/**
> > > + * A structure defined a field vector to specify each field.
> > > + */
> > > +struct rte_eth_field_vector {
> > > +	uint8_t offset;   /**< Source word offset */
> > > +	uint8_t size;     /**< Field Size defined in word units */
> > > +};
> > 
> > I'm sorry but I don't understand this patch at all.
> > I think the reason is that I need more information about flex filter.
> > 
> 
> Yes, it is a little difficult to understand the behavior. Let me explain it as I can.
> <1> flex words:
> We can select where the 8 flex words are. It can be constituted of 1-3 partitions.
> Each partition is defined as rte_eth_field_vector. 
> For example:
> if we set 
> rte_eth_flex_payload_cfg = {
> 	.type = RTE_ETH_L4_PAYLOAD;
> 	.nb_field = 1;
> 	.field = {
> 		{0, 8},  /*offset = 0, size =8*/
> 	};
> };
> This means the 8 words from the beginning of l4 payload will be consider as flex words.
> If we set 
> rte_eth_flex_payload_cfg = {
> 	.type = RTE_ETH_L4_PAYLOAD;
> 	.nb_field = 1;
> 	.field = {
> 		{0, 2},  /*offset = 0, size =2*/
> 		{4, 6},  /*offset = 4, size =6*/
> 	};
> };
> This means the 2 words from the beginning of l4 payload plus 6 words form the offset 4
> will be consider as flex words.
> 
> <2> flex mask:
> As the <1> configuration, we already select 8 words as flex words. Then the flex mask
> Will help us to define whether these word will participate in comparing. 
> The flex mask can be constituted of 2 partitions. One is word mask, another is bit mask.
> Word mask is defined in rte_eth_fdir_flex_masks.words_mask, it means bit i enables word i of flex words.
> rte_eth_fdir_flex_masks.field specify each word's bit mask, Fortville support 2 word bitmask.

OK thanks.
The most difficult task will be to explain it in the doxygen comment :)
Please try to be precise and concise in doxygen comments. It must be a
reference when using the API. If more examples are required, the developer
can look into the programmer's guide.

-- 
Thomas


More information about the dev mailing list