* [dpdk-stable] [PATCH v2 08/14] common/mlx5: fix flex parser DevX creation routine
[not found] ` <20211001193415.23288-1-viacheslavo@nvidia.com>
@ 2021-10-01 19:34 ` Viacheslav Ovsiienko
0 siblings, 0 replies; 3+ messages in thread
From: Viacheslav Ovsiienko @ 2021-10-01 19:34 UTC (permalink / raw)
To: dev; +Cc: rasland, matan, shahafs, orika, getelson, thomas, stable
From: Gregory Etelson <getelson@nvidia.com>
Add missing modify_field_select, next_header_field_size
field values setting.
Fixes: 38119ebe01d6 ("common/mlx5: add DevX command for flex parsers")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
---
drivers/common/mlx5/mlx5_devx_cmds.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index 294ac480dc..43e51e3f95 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -620,10 +620,9 @@ mlx5_devx_cmd_query_parse_samples(struct mlx5_devx_obj *flex_obj,
return ret;
}
-
struct mlx5_devx_obj *
mlx5_devx_cmd_create_flex_parser(void *ctx,
- struct mlx5_devx_graph_node_attr *data)
+ struct mlx5_devx_graph_node_attr *data)
{
uint32_t in[MLX5_ST_SZ_DW(create_flex_parser_in)] = {0};
uint32_t out[MLX5_ST_SZ_DW(general_obj_out_cmd_hdr)] = {0};
@@ -647,12 +646,18 @@ mlx5_devx_cmd_create_flex_parser(void *ctx,
MLX5_GENERAL_OBJ_TYPE_FLEX_PARSE_GRAPH);
MLX5_SET(parse_graph_flex, flex, header_length_mode,
data->header_length_mode);
+ MLX5_SET64(parse_graph_flex, flex, modify_field_select,
+ data->modify_field_select);
MLX5_SET(parse_graph_flex, flex, header_length_base_value,
data->header_length_base_value);
MLX5_SET(parse_graph_flex, flex, header_length_field_offset,
data->header_length_field_offset);
MLX5_SET(parse_graph_flex, flex, header_length_field_shift,
data->header_length_field_shift);
+ MLX5_SET(parse_graph_flex, flex, next_header_field_offset,
+ data->next_header_field_offset);
+ MLX5_SET(parse_graph_flex, flex, next_header_field_size,
+ data->next_header_field_size);
MLX5_SET(parse_graph_flex, flex, header_length_field_mask,
data->header_length_field_mask);
for (i = 0; i < MLX5_GRAPH_NODE_SAMPLE_NUM; i++) {
--
2.18.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [dpdk-stable] [PATCH v4 2/5] ethdev: fix missed experimental tag for modify field action
[not found] ` <20211012104919.13145-1-viacheslavo@nvidia.com>
@ 2021-10-12 10:49 ` Viacheslav Ovsiienko
2021-10-12 10:49 ` [dpdk-stable] [PATCH v4 4/5] app/testpmd: fix hex string parser in flow commands Viacheslav Ovsiienko
1 sibling, 0 replies; 3+ messages in thread
From: Viacheslav Ovsiienko @ 2021-10-12 10:49 UTC (permalink / raw)
To: dev; +Cc: rasland, matan, shahafs, orika, getelson, thomas, stable
EXPERIMENTAL tag was missed in rte_flow_action_modify_data
structure description.
Fixes: 73b68f4c54a0 ("ethdev: introduce generic modify flow action")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
lib/ethdev/rte_flow.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index f14f77772b..8a1eddd0b7 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -3204,6 +3204,9 @@ enum rte_flow_field_id {
};
/**
+ * @warning
+ * @b EXPERIMENTAL: this structure may change without prior notice
+ *
* Field description for MODIFY_FIELD action.
*/
struct rte_flow_action_modify_data {
--
2.18.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [dpdk-stable] [PATCH v4 4/5] app/testpmd: fix hex string parser in flow commands
[not found] ` <20211012104919.13145-1-viacheslavo@nvidia.com>
2021-10-12 10:49 ` [dpdk-stable] [PATCH v4 2/5] ethdev: fix missed experimental tag for modify field action Viacheslav Ovsiienko
@ 2021-10-12 10:49 ` Viacheslav Ovsiienko
1 sibling, 0 replies; 3+ messages in thread
From: Viacheslav Ovsiienko @ 2021-10-12 10:49 UTC (permalink / raw)
To: dev; +Cc: rasland, matan, shahafs, orika, getelson, thomas, stable
The hexadecimal string parser does not check the target
field buffer size, buffer overflow happens and might
cause the application failure (segmentation fault
is observed usually).
Fixes: 169a9fed1f4c ("app/testpmd: fix hex string parser support for flow API")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
app/test-pmd/cmdline_flow.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 736029c4fd..6827d9228f 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -7291,10 +7291,13 @@ parse_hex(struct context *ctx, const struct token *token,
hexlen -= 2;
}
if (hexlen > length)
- return -1;
+ goto error;
ret = parse_hex_string(str, hex_tmp, &hexlen);
if (ret < 0)
goto error;
+ /* Check the converted binary fits into data buffer. */
+ if (hexlen > size)
+ goto error;
/* Let parse_int() fill length information first. */
ret = snprintf(tmp, sizeof(tmp), "%u", hexlen);
if (ret < 0)
--
2.18.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-10-12 10:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20210922180418.20663-1-viacheslavo@nvidia.com>
[not found] ` <20211001193415.23288-1-viacheslavo@nvidia.com>
2021-10-01 19:34 ` [dpdk-stable] [PATCH v2 08/14] common/mlx5: fix flex parser DevX creation routine Viacheslav Ovsiienko
[not found] ` <20211012104919.13145-1-viacheslavo@nvidia.com>
2021-10-12 10:49 ` [dpdk-stable] [PATCH v4 2/5] ethdev: fix missed experimental tag for modify field action Viacheslav Ovsiienko
2021-10-12 10:49 ` [dpdk-stable] [PATCH v4 4/5] app/testpmd: fix hex string parser in flow commands Viacheslav Ovsiienko
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).