On Fri, Oct 16, 2015 at 01:40:00PM +0000, Lu, Wenzhuo wrote:
> Hi N?lio,
>
> > Hi Wenzhuo,
> >
> > We should discuss about this API for a future release of DPDK because this
> > one
> > lacks in flexibility. Some other NICs have indirection tables with a
> > different/configurable size, and the current API does not help to manage it.
> >
> > For ConnectX-4 I have made a lot of hacks to avoid changing the DPDK API,
> > "[dpdk-dev] [PATCH 0/3] Add RETA configuration to MLX5".
> > http://dpdk.org/ml/archives/dev/2015-October/024681.html
> >
> > From a user point of view, to update the RETA table, the API expects the
> > user to
> > know the size of it to update or query. With your patchset, Intel have two
> > indirection table sizes now, with Mellanox ConnectX-4, I fixed to the size
> > of 512
> > entries because it is not fixed by default.
> >
> > How about discussing this in a separate thread?
> Sure, I changed the tittle.
> But I'm afraid I don't catch up with you. I have 2 questions, 1, Why the reta
> size cannot be predict on Mellanox ConnectX-4? 2, I don't understand the
> meaning when you say the reta size is not fixed by default on Mellanox
> ConnectX-4.
> Would you like to give more details of the Mellanox ConnectX-4's behavior?
> It'll be helpful to understand this problem.
On Connexct-4 we can configure the indirection table size with any power
of two up to 512 entries.
The current API only expects RETA tables size to be a multiple of
RTE_RETA_GROUP_SIZE i.e. 64.
To handle any kind of NICs, a simple array of N (RETA table size)
elements with the data, instead of something in multiple of 64 would be
easier to use, something like:
struct rte_eth_rss_reta_entry {
uint16_t idx; /* index to query/update. */
uint16_t reta; /* redirection value. */
};
We should update the API to take an array of such entries plus its size.
It would also make update and query easier.
--
N?lio Laranjeiro
6WIND