[dpdk-dev] [PATCH v3 07/14] net/mlx5: support tunnel RSS level

Nélio Laranjeiro nelio.laranjeiro at 6wind.com
Mon Apr 16 14:25:22 CEST 2018


On Sat, Apr 14, 2018 at 10:12:58AM +0000, Xueming(Steven) Li wrote:
> Hi Nelio,
>[...]
> > > +	if (!found)
> > > +		DRV_LOG(WARNING,
> > > +			"port %u rss hash function doesn't match "
> > > +			"pattern", dev->data->port_id);
> > 
> > The hash function is toeplitz, xor, it is not applied on the pattern but
> > used to compute an hash result using some information from the packet.
> > This comment is totally wrong.
> 
> Thanks, I'll replace "hash function" to "hash fields".
> 
> > 
> > Another point, such log will trigger on an application using MLX5 PMD but
> > not on MLX4 PMD and this specifically because on how the NIC using the
> > MLX5 PMD are made internally (MLX4 can use a single Hash RX queue whereas
> > MLX5 needs an Hash Rx queue per kind of protocol).
> > The fact being it will have the exact same behavior I'll *strongly*
> > suggest to remove such annoying warning.
> 
> After some test on mlx5 current code, the behavior in previous code doesn't
> seem to be consistent, not sure whether it same in mlx4 PMD:
> - Pattern: eth/ipv4/tcp, RSS: UDP, creation success.
> - Pattern: eth/ipv4,RSS: IPv6, creation failed.

Seems there is a bug.

> This patch support the 2nd case w/o hash, and warn upon the first case.
> Take example of first case, a packet that matches the pattern must be TCP,
> no reason to hash it as TCP, same to the 2nd case. They are totally
> wrong configuration, but to be robust, warning is used here, and users 
> have to learn that NO hash result because HF configuration mismatch through 
> this warning message.
> 
> Please note that below cases are valid and no warning:
> - Pattern: eth/ipv4, RSS: UDP
> - Pattern: eth/ipv4/udp, RSS: IPv4

This log will not raise for non IP protocols defined by the user, or it
will raise when the user already expects it to not make RSS.
It will more annoying than helping.

Example: 

 flow create 0 ingress eth ethertype is 0x0806 / end actions rss ....

won't raise such log, whereas ARP is not an IP protocol and thus can be
RSS'ed.

 flow create 0 ingress eth / ipv4 / end actions rss type ipv6...

will raise the log, but it is obvious the user won't have RSS.

Regards,

-- 
Nélio Laranjeiro
6WIND


More information about the dev mailing list