summaryrefslogtreecommitdiff
path: root/lib/ethdev
diff options
context:
space:
mode:
authorAlexander Kozyrev <[email protected]>2024-09-25 21:05:32 +0300
committerFerruh Yigit <[email protected]>2024-09-27 03:09:26 +0200
commitbe5ded2f96072e887d5155516f8bbe69d1fb07ad (patch)
tree3209f230b512442177c56c3e9992bb14a0b37ac1 /lib/ethdev
parent2c52a2b3eca9b619b7ab16e4e936e52f8aa3b3d3 (diff)
ethdev: add trace points to flow insertion by index
Adds trace points for rte_flow rule insertion by index functions: rte_flow_async_create_by_index and rte_flow_async_create_by_index_with_pattern. Signed-off-by: Alexander Kozyrev <[email protected]> Acked-by: Ori Kam <[email protected]>
Diffstat (limited to 'lib/ethdev')
-rw-r--r--lib/ethdev/ethdev_trace.h44
-rw-r--r--lib/ethdev/ethdev_trace_points.c6
-rw-r--r--lib/ethdev/rte_flow.c18
3 files changed, 66 insertions, 2 deletions
diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h
index 36a38f718a..e95d4b240c 100644
--- a/lib/ethdev/ethdev_trace.h
+++ b/lib/ethdev/ethdev_trace.h
@@ -2344,6 +2344,50 @@ RTE_TRACE_POINT_FP(
)
RTE_TRACE_POINT_FP(
+ rte_flow_trace_async_create_by_index,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
+ const struct rte_flow_op_attr *op_attr,
+ const struct rte_flow_template_table *template_table,
+ uint32_t rule_index,
+ const struct rte_flow_action *actions,
+ uint8_t actions_template_index,
+ const void *user_data, const struct rte_flow *flow),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u32(queue_id);
+ rte_trace_point_emit_ptr(op_attr);
+ rte_trace_point_emit_ptr(template_table);
+ rte_trace_point_emit_u32(rule_index);
+ rte_trace_point_emit_ptr(actions);
+ rte_trace_point_emit_u8(actions_template_index);
+ rte_trace_point_emit_ptr(user_data);
+ rte_trace_point_emit_ptr(flow);
+)
+
+RTE_TRACE_POINT_FP(
+ rte_flow_trace_async_create_by_index_with_pattern,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
+ const struct rte_flow_op_attr *op_attr,
+ const struct rte_flow_template_table *template_table,
+ uint32_t rule_index,
+ const struct rte_flow_item *pattern,
+ uint8_t pattern_template_index,
+ const struct rte_flow_action *actions,
+ uint8_t actions_template_index,
+ const void *user_data, const struct rte_flow *flow),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u32(queue_id);
+ rte_trace_point_emit_ptr(op_attr);
+ rte_trace_point_emit_ptr(template_table);
+ rte_trace_point_emit_u32(rule_index);
+ rte_trace_point_emit_ptr(pattern);
+ rte_trace_point_emit_u8(pattern_template_index);
+ rte_trace_point_emit_ptr(actions);
+ rte_trace_point_emit_u8(actions_template_index);
+ rte_trace_point_emit_ptr(user_data);
+ rte_trace_point_emit_ptr(flow);
+)
+
+RTE_TRACE_POINT_FP(
rte_flow_trace_async_destroy,
RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
const struct rte_flow_op_attr *op_attr,
diff --git a/lib/ethdev/ethdev_trace_points.c b/lib/ethdev/ethdev_trace_points.c
index 6ecbee289b..902e4f7533 100644
--- a/lib/ethdev/ethdev_trace_points.c
+++ b/lib/ethdev/ethdev_trace_points.c
@@ -589,6 +589,12 @@ RTE_TRACE_POINT_REGISTER(rte_flow_trace_template_table_destroy,
RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_create,
lib.ethdev.flow.async_create)
+RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_create_by_index,
+ lib.ethdev.flow.async_create_by_index)
+
+RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_create_by_index_with_pattern,
+ lib.ethdev.flow.async_create_by_index_with_pattern)
+
RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_destroy,
lib.ethdev.flow.async_destroy)
diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index a56391b156..4a7735b5ab 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -2090,6 +2090,7 @@ rte_flow_async_create_by_index(uint16_t port_id,
struct rte_flow_error *error)
{
struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+ struct rte_flow *flow;
#ifdef RTE_FLOW_DEBUG
if (!rte_eth_dev_is_valid_port(port_id)) {
@@ -2104,10 +2105,15 @@ rte_flow_async_create_by_index(uint16_t port_id,
}
#endif
- return dev->flow_fp_ops->async_create_by_index(dev, queue_id,
+ flow = dev->flow_fp_ops->async_create_by_index(dev, queue_id,
op_attr, template_table, rule_index,
actions, actions_template_index,
user_data, error);
+
+ rte_flow_trace_async_create_by_index(port_id, queue_id, op_attr, template_table, rule_index,
+ actions, actions_template_index, user_data, flow);
+
+ return flow;
}
struct rte_flow *
@@ -2124,6 +2130,7 @@ rte_flow_async_create_by_index_with_pattern(uint16_t port_id,
struct rte_flow_error *error)
{
struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+ struct rte_flow *flow;
#ifdef RTE_FLOW_DEBUG
if (!rte_eth_dev_is_valid_port(port_id)) {
@@ -2139,11 +2146,18 @@ rte_flow_async_create_by_index_with_pattern(uint16_t port_id,
}
#endif
- return dev->flow_fp_ops->async_create_by_index_with_pattern(dev, queue_id, op_attr,
+ flow = dev->flow_fp_ops->async_create_by_index_with_pattern(dev, queue_id, op_attr,
template_table, rule_index,
pattern, pattern_template_index,
actions, actions_template_index,
user_data, error);
+
+ rte_flow_trace_async_create_by_index_with_pattern(port_id, queue_id, op_attr,
+ template_table, rule_index, pattern,
+ pattern_template_index, actions,
+ actions_template_index, user_data, flow);
+
+ return flow;
}
int