net/mlx5: Allow future addition of IPsec object modifiers
authorLeon Romanovsky <leonro@nvidia.com>
Tue, 5 Apr 2022 16:33:39 +0000 (19:33 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 4 May 2022 05:59:18 +0000 (22:59 -0700)
Currently, all released FW versions support only two IPsec object
modifiers, and modify_field_select get and set same value with
proper bits.

However, it is not future compatible, as new FW can have more
modifiers and "default" will cause to overwrite not-changed fields.

Fix it by setting explicitly fields that need to be overwritten.

Fixes: 7ed92f97a1ad ("net/mlx5e: IPsec: Add Connect-X IPsec ESN update offload support")
Signed-off-by: Huy Nguyen <huyn@nvidia.com>
Reviewed-by: Raed Salem <raeds@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c

index b13e152fe9fcecb7d23fef6bdbae777ccecbd458..792724ce7336432ebb4d0fba952d7e1625ba471d 100644 (file)
@@ -179,6 +179,9 @@ static int mlx5_modify_ipsec_obj(struct mlx5e_ipsec_sa_entry *sa_entry,
                return -EOPNOTSUPP;
 
        obj = MLX5_ADDR_OF(modify_ipsec_obj_in, in, ipsec_object);
+       MLX5_SET64(ipsec_obj, obj, modify_field_select,
+                  MLX5_MODIFY_IPSEC_BITMASK_ESN_OVERLAP |
+                          MLX5_MODIFY_IPSEC_BITMASK_ESN_MSB);
        MLX5_SET(ipsec_obj, obj, esn_msb, attrs->esn);
        if (attrs->flags & MLX5_ACCEL_ESP_FLAGS_ESN_STATE_OVERLAP)
                MLX5_SET(ipsec_obj, obj, esn_overlap, 1);