Skip to contentSkip to conversation

net/mlx5: fix modify field MAC address offset

PATCH Superseded Viacheslav Ovsiienko 2 participants 3 messages Nov 26, 2021 – Dec 6, 2021 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net/mlx5: fix modify field MAC address offset

The MAC addresses fields are 48 bit wide and are processed by mlx5 PMD as two words. There the bug was introduced for the offset, causing wrong action translation if action field offset was not zero.

Fixes 40c8fb1fd3b3 ("net/mlx5: update modify field action")
---
 drivers/net/mlx5/mlx5_flow_dv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/mlx5/mlx5_flow_dv.c +2 -2
index 3da122cbb9..4834c752d9 100644
@@ -1503,7 +1503,7 @@ mlx5_flow_field_id_to_modify_info
 			if (data->offset < 16)
 				info[idx++] = (struct field_modify_info){2, 0,
 						MLX5_MODI_OUT_DMAC_15_0};
-			info[idx] = (struct field_modify_info){4, 0,
+			info[idx] = (struct field_modify_info){4, off,
 						MLX5_MODI_OUT_DMAC_47_16};
 		}
 		break;
@@ -1533,7 +1533,7 @@ mlx5_flow_field_id_to_modify_info
 			if (data->offset < 16)
 				info[idx++] = (struct field_modify_info){2, 0,
 						MLX5_MODI_OUT_SMAC_15_0};
-			info[idx] = (struct field_modify_info){4, 0,
+			info[idx] = (struct field_modify_info){4, off,
 						MLX5_MODI_OUT_SMAC_47_16};
 		}
 		break;
Signature · 1 line
2.18.1
#1 lore raw

PATCH v2 1/1 net/mlx5: fix modify field MAC address offset

The MAC addresses fields are 48 bit wide and are processed by mlx5 PMD as two words. There the bug was introduced for the offset, causing malfunction of MODIFY_FIELD action with MAC address fields as source or destination and with non zero field offset.

Fixes 40c8fb1fd3b3 ("net/mlx5: update modify field action")
---
 drivers/net/mlx5/mlx5_flow_dv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/mlx5/mlx5_flow_dv.c +2 -2
index 3da122cbb9..4834c752d9 100644
@@ -1503,7 +1503,7 @@ mlx5_flow_field_id_to_modify_info
 			if (data->offset < 16)
 				info[idx++] = (struct field_modify_info){2, 0,
 						MLX5_MODI_OUT_DMAC_15_0};
-			info[idx] = (struct field_modify_info){4, 0,
+			info[idx] = (struct field_modify_info){4, off,
 						MLX5_MODI_OUT_DMAC_47_16};
 		}
 		break;
@@ -1533,7 +1533,7 @@ mlx5_flow_field_id_to_modify_info
 			if (data->offset < 16)
 				info[idx++] = (struct field_modify_info){2, 0,
 						MLX5_MODI_OUT_SMAC_15_0};
-			info[idx] = (struct field_modify_info){4, 0,
+			info[idx] = (struct field_modify_info){4, off,
 						MLX5_MODI_OUT_SMAC_47_16};
 		}
 		break;
Signature · 1 line
2.18.1
#2 lore raw

Hi,

Quoted 9 lines

-----Original Message-----
From: Slava Ovsiienko <[email protected]>
Sent: Friday, November 26, 2021 3:10 PM
To: [email protected]
Cc: [email protected]; NBU-Contact-Thomas Monjalon (EXTERNAL) <[email protected]>; Matan Azrad <[email protected]>; Raslan Darawsheh <[email protected]>
Subject: [PATCH v2] net/mlx5: fix modify field MAC address offset

Quoted 8 lines

The MAC addresses fields are 48 bit wide and are processed by mlx5 PMD as two words. There the bug was introduced for the offset, causing malfunction of MODIFY_FIELD action with MAC address fields as source or destination and with non zero field offset.

Fixes 40c8fb1fd3b3 ("net/mlx5: update modify field action")

added Cc: [email protected]

Quoted 1 line

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh