diff options
| author | Alexander Kozyrev <[email protected]> | 2024-09-25 21:05:32 +0300 |
|---|---|---|
| committer | Ferruh Yigit <[email protected]> | 2024-09-27 03:09:26 +0200 |
| commit | be5ded2f96072e887d5155516f8bbe69d1fb07ad (patch) | |
| tree | 3209f230b512442177c56c3e9992bb14a0b37ac1 /lib/ethdev | |
| parent | 2c52a2b3eca9b619b7ab16e4e936e52f8aa3b3d3 (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.h | 44 | ||||
| -rw-r--r-- | lib/ethdev/ethdev_trace_points.c | 6 | ||||
| -rw-r--r-- | lib/ethdev/rte_flow.c | 18 |
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 |
