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