On Mon, Apr 16, 2018 at 07:46:08AM +0000, Xueming(Steven) Li wrote: >[...] > > > > > @@ -1386,6 +1386,8 @@ mlx5_ind_table_ibv_verify(struct rte_eth_dev > > *dev) > > > > > * Number of queues. > > > > > * @param tunnel > > > > > * Tunnel type. > > > > > + * @param rss_level > > > > > + * RSS hash on tunnel level. > > > > > * > > > > > * @return > > > > > * The Verbs object initialised, NULL otherwise and rte_errno is > > set. > > > > > @@ -1394,13 +1396,17 @@ struct mlx5_hrxq * mlx5_hrxq_new(struct > > > > > rte_eth_dev *dev, > > > > > const uint8_t *rss_key, uint32_t rss_key_len, > > > > > uint64_t hash_fields, > > > > > - const uint16_t *queues, uint32_t queues_n, uint32_t > > tunnel) > > > > > + const uint16_t *queues, uint32_t queues_n, > > > > > + uint32_t tunnel, uint32_t rss_level) > > > > > > > > tunnel and rss_level seems to be redundant here. > > > > > > > > rss_level > 1 is equivalent to tunnel, there is no need to have both. > > > > > > There is a case of tunnel and outer rss(1). > > > > Why cannot it be handled by a regular Hash Rx queue, i.e. what is the > > benefit of creating a tunnel hash Rx queue to make the same job as a > > legacy one? > > Tunnel checksum, ptype and rss offloading demand a QP to be created by DV api > with > tunnel offload flags.
I was expecting such answer, such information should be present in the function documentation, can you add it? Thanks, -- Nélio Laranjeiro 6WIND