Skip to content

Commit 61b2b31

Browse files
aleks-kozyrevferruhy
authored andcommitted
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]>
1 parent 2aadac7 commit 61b2b31

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed

lib/ethdev/ethdev_trace.h

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2343,6 +2343,50 @@ RTE_TRACE_POINT_FP(
23432343
rte_trace_point_emit_ptr(flow);
23442344
)
23452345

2346+
RTE_TRACE_POINT_FP(
2347+
rte_flow_trace_async_create_by_index,
2348+
RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
2349+
const struct rte_flow_op_attr *op_attr,
2350+
const struct rte_flow_template_table *template_table,
2351+
uint32_t rule_index,
2352+
const struct rte_flow_action *actions,
2353+
uint8_t actions_template_index,
2354+
const void *user_data, const struct rte_flow *flow),
2355+
rte_trace_point_emit_u16(port_id);
2356+
rte_trace_point_emit_u32(queue_id);
2357+
rte_trace_point_emit_ptr(op_attr);
2358+
rte_trace_point_emit_ptr(template_table);
2359+
rte_trace_point_emit_u32(rule_index);
2360+
rte_trace_point_emit_ptr(actions);
2361+
rte_trace_point_emit_u8(actions_template_index);
2362+
rte_trace_point_emit_ptr(user_data);
2363+
rte_trace_point_emit_ptr(flow);
2364+
)
2365+
2366+
RTE_TRACE_POINT_FP(
2367+
rte_flow_trace_async_create_by_index_with_pattern,
2368+
RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,
2369+
const struct rte_flow_op_attr *op_attr,
2370+
const struct rte_flow_template_table *template_table,
2371+
uint32_t rule_index,
2372+
const struct rte_flow_item *pattern,
2373+
uint8_t pattern_template_index,
2374+
const struct rte_flow_action *actions,
2375+
uint8_t actions_template_index,
2376+
const void *user_data, const struct rte_flow *flow),
2377+
rte_trace_point_emit_u16(port_id);
2378+
rte_trace_point_emit_u32(queue_id);
2379+
rte_trace_point_emit_ptr(op_attr);
2380+
rte_trace_point_emit_ptr(template_table);
2381+
rte_trace_point_emit_u32(rule_index);
2382+
rte_trace_point_emit_ptr(pattern);
2383+
rte_trace_point_emit_u8(pattern_template_index);
2384+
rte_trace_point_emit_ptr(actions);
2385+
rte_trace_point_emit_u8(actions_template_index);
2386+
rte_trace_point_emit_ptr(user_data);
2387+
rte_trace_point_emit_ptr(flow);
2388+
)
2389+
23462390
RTE_TRACE_POINT_FP(
23472391
rte_flow_trace_async_destroy,
23482392
RTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t queue_id,

lib/ethdev/ethdev_trace_points.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,12 @@ RTE_TRACE_POINT_REGISTER(rte_flow_trace_template_table_destroy,
589589
RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_create,
590590
lib.ethdev.flow.async_create)
591591

592+
RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_create_by_index,
593+
lib.ethdev.flow.async_create_by_index)
594+
595+
RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_create_by_index_with_pattern,
596+
lib.ethdev.flow.async_create_by_index_with_pattern)
597+
592598
RTE_TRACE_POINT_REGISTER(rte_flow_trace_async_destroy,
593599
lib.ethdev.flow.async_destroy)
594600

lib/ethdev/rte_flow.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2090,6 +2090,7 @@ rte_flow_async_create_by_index(uint16_t port_id,
20902090
struct rte_flow_error *error)
20912091
{
20922092
struct rte_eth_dev *dev = &rte_eth_devices[port_id];
2093+
struct rte_flow *flow;
20932094

20942095
#ifdef RTE_FLOW_DEBUG
20952096
if (!rte_eth_dev_is_valid_port(port_id)) {
@@ -2104,10 +2105,15 @@ rte_flow_async_create_by_index(uint16_t port_id,
21042105
}
21052106
#endif
21062107

2107-
return dev->flow_fp_ops->async_create_by_index(dev, queue_id,
2108+
flow = dev->flow_fp_ops->async_create_by_index(dev, queue_id,
21082109
op_attr, template_table, rule_index,
21092110
actions, actions_template_index,
21102111
user_data, error);
2112+
2113+
rte_flow_trace_async_create_by_index(port_id, queue_id, op_attr, template_table, rule_index,
2114+
actions, actions_template_index, user_data, flow);
2115+
2116+
return flow;
21112117
}
21122118

21132119
struct rte_flow *
@@ -2124,6 +2130,7 @@ rte_flow_async_create_by_index_with_pattern(uint16_t port_id,
21242130
struct rte_flow_error *error)
21252131
{
21262132
struct rte_eth_dev *dev = &rte_eth_devices[port_id];
2133+
struct rte_flow *flow;
21272134

21282135
#ifdef RTE_FLOW_DEBUG
21292136
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,
21392146
}
21402147
#endif
21412148

2142-
return dev->flow_fp_ops->async_create_by_index_with_pattern(dev, queue_id, op_attr,
2149+
flow = dev->flow_fp_ops->async_create_by_index_with_pattern(dev, queue_id, op_attr,
21432150
template_table, rule_index,
21442151
pattern, pattern_template_index,
21452152
actions, actions_template_index,
21462153
user_data, error);
2154+
2155+
rte_flow_trace_async_create_by_index_with_pattern(port_id, queue_id, op_attr,
2156+
template_table, rule_index, pattern,
2157+
pattern_template_index, actions,
2158+
actions_template_index, user_data, flow);
2159+
2160+
return flow;
21472161
}
21482162

21492163
int

0 commit comments

Comments
 (0)