[dpdk-dev,v2] net/mlx5: fix adjust priority for drop queue
Checks
Commit Message
Drop queue should also adjust their priority according the most specific
layer in the pattern they are matching to avoid dropping all the traffic.
Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
Changes in v2:
* Reorder the if, else if, else statement to improve readability
---
drivers/net/mlx5/mlx5_flow.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
Comments
> On Oct 25, 2017, at 1:25 AM, Nelio Laranjeiro <nelio.laranjeiro@6wind.com> wrote:
>
> Drop queue should also adjust their priority according the most specific
> layer in the pattern they are matching to avoid dropping all the traffic.
>
> Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
>
> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
>
> ---
>
> Changes in v2:
>
> * Reorder the if, else if, else statement to improve readability
> ---
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Thanks
On 10/25/2017 9:41 AM, Yongseok Koh wrote:
>
>> On Oct 25, 2017, at 1:25 AM, Nelio Laranjeiro <nelio.laranjeiro@6wind.com> wrote:
>>
>> Drop queue should also adjust their priority according the most specific
>> layer in the pattern they are matching to avoid dropping all the traffic.
>>
>> Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
>>
>> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> Acked-by: Yongseok Koh <yskoh@mellanox.com>
Applied to dpdk-next-net/master, thanks.
@@ -1174,9 +1174,17 @@ priv_flow_convert(struct priv *priv,
* Last step. Complete missing specification to reach the RSS
* configuration.
*/
- if (parser->queues_n > 1) {
+ if (parser->drop) {
+ /*
+ * Drop queue priority needs to be adjusted to
+ * their most specific layer priority.
+ */
+ parser->drop_q.ibv_attr->priority =
+ attr->priority +
+ hash_rxq_init[parser->layer].flow_priority;
+ } else if (parser->queues_n > 1) {
priv_flow_convert_finalise(priv, parser);
- } else if (!parser->drop) {
+ } else {
/*
* Action queue have their priority overridden with
* Ethernet priority, this priority needs to be adjusted to