DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6
@ 2022-02-28 11:41 Bing Zhao
  2022-03-02 16:32 ` Raslan Darawsheh
  0 siblings, 1 reply; 3+ messages in thread
From: Bing Zhao @ 2022-02-28 11:41 UTC (permalink / raw)
  To: viacheslavo, matan; +Cc: dev, rasland, jackmin

On TCP/IP-based layered network, ICMP is considered and implemented
as part of layer 3 IP protocol. Actually, it is a user of the IP
protocol and must be encapsulated within IP packets. There is no
layer 4 protocol over ICMP.

The rule with layer 4 should be matched prior to the rule only with
layer 3 pattern when:
  1. Both rules are created in the same table
  2. Both rules could be hit
  3. The rules has the same priority

The steering result of the packet is indeterministic if there are
rules with patterns IP and IP+ICMP in the same table with the same
priority. Like TCP / UDP, a packet should hit the rule with a longer
matching criterion.

By treating the priority of ICMP/ICMPv6 as a layer 4 priority in the
PMD internally, the IP+ICMP will be hit in prior to IP only.

Fixes: d53aa89aea91 ("net/mlx5: support matching on ICMP/ICMP6")
Cc: jackmin@nvidia.com

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 2191ce6e58..1da0d886ef 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -13653,11 +13653,13 @@ flow_dv_translate(struct rte_eth_dev *dev,
 		case RTE_FLOW_ITEM_TYPE_ICMP:
 			flow_dv_translate_item_icmp(match_mask, match_value,
 						    items, tunnel);
+			matcher.priority = MLX5_PRIORITY_MAP_L4;
 			last_item = MLX5_FLOW_LAYER_ICMP;
 			break;
 		case RTE_FLOW_ITEM_TYPE_ICMP6:
 			flow_dv_translate_item_icmp6(match_mask, match_value,
 						      items, tunnel);
+			matcher.priority = MLX5_PRIORITY_MAP_L4;
 			last_item = MLX5_FLOW_LAYER_ICMP6;
 			break;
 		case RTE_FLOW_ITEM_TYPE_TAG:
-- 
2.25.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6
  2022-02-28 11:41 [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6 Bing Zhao
@ 2022-03-02 16:32 ` Raslan Darawsheh
  2022-03-02 16:37   ` Raslan Darawsheh
  0 siblings, 1 reply; 3+ messages in thread
From: Raslan Darawsheh @ 2022-03-02 16:32 UTC (permalink / raw)
  To: Bing Zhao, Slava Ovsiienko, Matan Azrad; +Cc: dev, Jack Min

Hi,

> -----Original Message-----
> From: Bing Zhao <bingz@nvidia.com>
> Sent: Monday, February 28, 2022 1:42 PM
> To: Slava Ovsiienko <viacheslavo@nvidia.com>; Matan Azrad
> <matan@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Jack Min
> <jackmin@nvidia.com>
> Subject: [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6
> 
> On TCP/IP-based layered network, ICMP is considered and implemented
> as part of layer 3 IP protocol. Actually, it is a user of the IP
> protocol and must be encapsulated within IP packets. There is no
> layer 4 protocol over ICMP.
> 
> The rule with layer 4 should be matched prior to the rule only with
> layer 3 pattern when:
>   1. Both rules are created in the same table
>   2. Both rules could be hit
>   3. The rules has the same priority
> 
> The steering result of the packet is indeterministic if there are
> rules with patterns IP and IP+ICMP in the same table with the same
> priority. Like TCP / UDP, a packet should hit the rule with a longer
> matching criterion.
> 
> By treating the priority of ICMP/ICMPv6 as a layer 4 priority in the
> PMD internally, the IP+ICMP will be hit in prior to IP only.
> 
> Fixes: d53aa89aea91 ("net/mlx5: support matching on ICMP/ICMP6")
> 
> Signed-off-by: Bing Zhao <bingz@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6
  2022-03-02 16:32 ` Raslan Darawsheh
@ 2022-03-02 16:37   ` Raslan Darawsheh
  0 siblings, 0 replies; 3+ messages in thread
From: Raslan Darawsheh @ 2022-03-02 16:37 UTC (permalink / raw)
  To: Bing Zhao, Slava Ovsiienko, Matan Azrad; +Cc: dev, Jack Min, stable


> -----Original Message-----
> From: Raslan Darawsheh
> Sent: Wednesday, March 2, 2022 6:32 PM
> To: Bing Zhao <bingz@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>
> Cc: dev@dpdk.org; Jack Min <jackmin@nvidia.com>
> Subject: RE: [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6
> 
> Hi,
> 
> > -----Original Message-----
> > From: Bing Zhao <bingz@nvidia.com>
> > Sent: Monday, February 28, 2022 1:42 PM
> > To: Slava Ovsiienko <viacheslavo@nvidia.com>; Matan Azrad
> > <matan@nvidia.com>
> > Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Jack Min
> > <jackmin@nvidia.com>
> > Subject: [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6
> >
> > On TCP/IP-based layered network, ICMP is considered and implemented as
> > part of layer 3 IP protocol. Actually, it is a user of the IP protocol
> > and must be encapsulated within IP packets. There is no layer 4
> > protocol over ICMP.
> >
> > The rule with layer 4 should be matched prior to the rule only with
> > layer 3 pattern when:
> >   1. Both rules are created in the same table
> >   2. Both rules could be hit
> >   3. The rules has the same priority
> >
> > The steering result of the packet is indeterministic if there are
> > rules with patterns IP and IP+ICMP in the same table with the same
> > priority. Like TCP / UDP, a packet should hit the rule with a longer
> > matching criterion.
> >
> > By treating the priority of ICMP/ICMPv6 as a layer 4 priority in the
> > PMD internally, the IP+ICMP will be hit in prior to IP only.
> >
> > Fixes: d53aa89aea91 ("net/mlx5: support matching on ICMP/ICMP6")
Added missing Cc: stable@dpdk.org
> >
> > Signed-off-by: Bing Zhao <bingz@nvidia.com>
> > Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> 
> Patch applied to next-net-mlx,
> 
> Kindest regards,
> Raslan Darawsheh

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-03-02 16:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-28 11:41 [PATCH] net/mlx5: fix matcher priority with ICMP or ICMPv6 Bing Zhao
2022-03-02 16:32 ` Raslan Darawsheh
2022-03-02 16:37   ` Raslan Darawsheh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).