|WARNING| pw135555-135554 [PATCH] [v1, 2/2] net/mlx5: add support to compare random value
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Tue Dec 26 04:36:02 CET 2023
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/135555
_apply patch failure_
Submitter: Michael Baum <michaelba at nvidia.com>
Date: Monday, December 25 2023 10:45:34
Applied on: CommitID:a526461b0764de52b09b073df84f9e87ec120c93
Apply patch set 135555-135554 failed:
Checking patch drivers/common/mlx5/mlx5_prm.h...
Checking patch drivers/net/mlx5/hws/mlx5dr_cmd.c...
Checking patch drivers/net/mlx5/hws/mlx5dr_cmd.h...
Checking patch drivers/net/mlx5/hws/mlx5dr_debug.c...
Checking patch drivers/net/mlx5/hws/mlx5dr_debug.h...
Checking patch drivers/net/mlx5/hws/mlx5dr_definer.c...
Hunk #1 succeeded at 370 (offset -1 lines).
Hunk #2 succeeded at 2465 (offset -29 lines).
Hunk #3 succeeded at 2579 (offset -29 lines).
error: while searching for:
ret = mlx5dr_definer_conv_item_random(&cd, items, i);
item_flags |= MLX5_FLOW_ITEM_RANDOM;
break;
default:
DR_LOG(ERR, "Unsupported item type %d", items->type);
rte_errno = ENOTSUP;
return rte_errno;
}
cd.last_item = items->type;
error: patch failed: drivers/net/mlx5/hws/mlx5dr_definer.c:2570
Hunk #5 succeeded at 2737 (offset -41 lines).
Hunk #6 succeeded at 3128 (offset -41 lines).
Hunk #7 succeeded at 3146 (offset -41 lines).
Hunk #8 succeeded at 3189 (offset -41 lines).
Checking patch drivers/net/mlx5/hws/mlx5dr_definer.h...
Hunk #2 succeeded at 193 (offset -1 lines).
Checking patch drivers/net/mlx5/hws/mlx5dr_matcher.c...
Checking patch drivers/net/mlx5/hws/mlx5dr_matcher.h...
Applied patch drivers/common/mlx5/mlx5_prm.h cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_cmd.c cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_cmd.h cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_debug.c cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_debug.h cleanly.
Applying patch drivers/net/mlx5/hws/mlx5dr_definer.c with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Rejected hunk #4.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Hunk #8 applied cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_definer.h cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_matcher.c cleanly.
Applied patch drivers/net/mlx5/hws/mlx5dr_matcher.h cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c (rejected hunks)
@@ -2570,10 +2746,18 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
ret = mlx5dr_definer_conv_item_random(&cd, items, i);
item_flags |= MLX5_FLOW_ITEM_RANDOM;
break;
+ case RTE_FLOW_ITEM_TYPE_COMPARE:
+ if (i) {
+ DR_LOG(ERR, "Compare matcher not supported for more than one item");
+ goto not_supp;
+ }
+ ret = mlx5dr_definer_conv_item_compare(&cd, items, i);
+ item_flags |= MLX5_FLOW_ITEM_COMPARE;
+ matcher->flags |= MLX5DR_MATCHER_FLAGS_COMPARE;
+ break;
default:
DR_LOG(ERR, "Unsupported item type %d", items->type);
- rte_errno = ENOTSUP;
- return rte_errno;
+ goto not_supp;
}
cd.last_item = items->type;
Checking patch drivers/net/mlx5/mlx5_flow_hw.c...
error: while searching for:
return copied_items;
}
static inline bool
flow_hw_item_compare_field_supported(enum rte_flow_field_id field)
{
switch (field) {
case RTE_FLOW_FIELD_TAG:
case RTE_FLOW_FIELD_META:
case RTE_FLOW_FIELD_VALUE:
return true;
default:
break;
}
return false;
}
static int
error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:6643
error: while searching for:
{
const struct rte_flow_item_compare *comp_m = item->mask;
const struct rte_flow_item_compare *comp_v = item->spec;
if (unlikely(!comp_m))
return rte_flow_error_set(error, EINVAL,
error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:6663
error: while searching for:
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
"compare item only support full mask");
if (!flow_hw_item_compare_field_supported(comp_m->a.field) ||
!flow_hw_item_compare_field_supported(comp_m->b.field))
return rte_flow_error_set(error, ENOTSUP,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
"compare item field not support");
if (comp_m->a.field == RTE_FLOW_FIELD_VALUE &&
comp_m->b.field == RTE_FLOW_FIELD_VALUE)
return rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
"compare between value is not valid");
if (comp_v) {
if (comp_v->operation != comp_m->operation ||
comp_v->a.field != comp_m->a.field ||
comp_v->b.field != comp_m->b.field)
error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:6674
error: while searching for:
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
"compare item spec/mask not matching");
if ((comp_v->width & comp_m->width) != 32)
return rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:6694
Applying patch drivers/net/mlx5/mlx5_flow_hw.c with 4 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c (rejected hunks)
@@ -6643,18 +6643,55 @@ flow_hw_prepend_item(const struct rte_flow_item *items,
return copied_items;
}
-static inline bool
-flow_hw_item_compare_field_supported(enum rte_flow_field_id field)
+static int
+flow_hw_item_compare_field_validate(enum rte_flow_field_id arg_field,
+ enum rte_flow_field_id base_field,
+ struct rte_flow_error *error)
{
- switch (field) {
+ switch (arg_field) {
+ case RTE_FLOW_FIELD_TAG:
+ case RTE_FLOW_FIELD_META:
+ break;
+ case RTE_FLOW_FIELD_RANDOM:
+ if (base_field == RTE_FLOW_FIELD_VALUE)
+ return 0;
+ return rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL,
+ "compare random is supported only with immediate value");
+ default:
+ return rte_flow_error_set(error, ENOTSUP,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL,
+ "compare item argument field is not supported");
+ }
+ switch (base_field) {
case RTE_FLOW_FIELD_TAG:
case RTE_FLOW_FIELD_META:
case RTE_FLOW_FIELD_VALUE:
- return true;
+ break;
+ default:
+ return rte_flow_error_set(error, ENOTSUP,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL,
+ "compare item base field is not supported");
+ }
+ return 0;
+}
+
+static inline uint32_t
+flow_hw_item_compare_width_supported(enum rte_flow_field_id field)
+{
+ switch (field) {
+ case RTE_FLOW_FIELD_TAG:
+ case RTE_FLOW_FIELD_META:
+ return 32;
+ case RTE_FLOW_FIELD_RANDOM:
+ return 16;
default:
break;
}
- return false;
+ return 0;
}
static int
@@ -6663,6 +6700,7 @@ flow_hw_validate_item_compare(const struct rte_flow_item *item,
{
const struct rte_flow_item_compare *comp_m = item->mask;
const struct rte_flow_item_compare *comp_v = item->spec;
+ int ret;
if (unlikely(!comp_m))
return rte_flow_error_set(error, EINVAL,
@@ -6674,19 +6712,13 @@ flow_hw_validate_item_compare(const struct rte_flow_item *item,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
"compare item only support full mask");
- if (!flow_hw_item_compare_field_supported(comp_m->a.field) ||
- !flow_hw_item_compare_field_supported(comp_m->b.field))
- return rte_flow_error_set(error, ENOTSUP,
- RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
- NULL,
- "compare item field not support");
- if (comp_m->a.field == RTE_FLOW_FIELD_VALUE &&
- comp_m->b.field == RTE_FLOW_FIELD_VALUE)
- return rte_flow_error_set(error, EINVAL,
- RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
- NULL,
- "compare between value is not valid");
+ ret = flow_hw_item_compare_field_validate(comp_m->a.field,
+ comp_m->b.field, error);
+ if (ret < 0)
+ return ret;
if (comp_v) {
+ uint32_t width;
+
if (comp_v->operation != comp_m->operation ||
comp_v->a.field != comp_m->a.field ||
comp_v->b.field != comp_m->b.field)
@@ -6694,7 +6726,9 @@ flow_hw_validate_item_compare(const struct rte_flow_item *item,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
"compare item spec/mask not matching");
- if ((comp_v->width & comp_m->width) != 32)
+ width = flow_hw_item_compare_width_supported(comp_v->a.field);
+ MLX5_ASSERT(width > 0);
+ if ((comp_v->width & comp_m->width) != width)
return rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL,
https://lab.dpdk.org/results/dashboard/patchsets/28735/
UNH-IOL DPDK Community Lab
More information about the test-report
mailing list