1 | // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB |
2 | /* Copyright (c) 2019 Mellanox Technologies. */ |
3 | |
4 | #define CREATE_TRACE_POINTS |
5 | #include "en_tc_tracepoint.h" |
6 | |
7 | void put_ids_to_array(int *ids, |
8 | const struct flow_action_entry *entries, |
9 | unsigned int num) |
10 | { |
11 | unsigned int i; |
12 | |
13 | for (i = 0; i < num; i++) |
14 | ids[i] = entries[i].id; |
15 | } |
16 | |
17 | #define NAME_SIZE 16 |
18 | |
19 | static const char FLOWACT2STR[NUM_FLOW_ACTIONS][NAME_SIZE] = { |
20 | [FLOW_ACTION_ACCEPT] = "ACCEPT" , |
21 | [FLOW_ACTION_DROP] = "DROP" , |
22 | [FLOW_ACTION_TRAP] = "TRAP" , |
23 | [FLOW_ACTION_GOTO] = "GOTO" , |
24 | [FLOW_ACTION_REDIRECT] = "REDIRECT" , |
25 | [FLOW_ACTION_MIRRED] = "MIRRED" , |
26 | [FLOW_ACTION_VLAN_PUSH] = "VLAN_PUSH" , |
27 | [FLOW_ACTION_VLAN_POP] = "VLAN_POP" , |
28 | [FLOW_ACTION_VLAN_MANGLE] = "VLAN_MANGLE" , |
29 | [FLOW_ACTION_TUNNEL_ENCAP] = "TUNNEL_ENCAP" , |
30 | [FLOW_ACTION_TUNNEL_DECAP] = "TUNNEL_DECAP" , |
31 | [FLOW_ACTION_MANGLE] = "MANGLE" , |
32 | [FLOW_ACTION_ADD] = "ADD" , |
33 | [FLOW_ACTION_CSUM] = "CSUM" , |
34 | [FLOW_ACTION_MARK] = "MARK" , |
35 | [FLOW_ACTION_WAKE] = "WAKE" , |
36 | [FLOW_ACTION_QUEUE] = "QUEUE" , |
37 | [FLOW_ACTION_SAMPLE] = "SAMPLE" , |
38 | [FLOW_ACTION_POLICE] = "POLICE" , |
39 | [FLOW_ACTION_CT] = "CT" , |
40 | }; |
41 | |
42 | const char *parse_action(struct trace_seq *p, |
43 | int *ids, |
44 | unsigned int num) |
45 | { |
46 | const char *ret = trace_seq_buffer_ptr(s: p); |
47 | unsigned int i; |
48 | |
49 | for (i = 0; i < num; i++) { |
50 | if (ids[i] < NUM_FLOW_ACTIONS) |
51 | trace_seq_printf(s: p, fmt: "%s " , FLOWACT2STR[ids[i]]); |
52 | else |
53 | trace_seq_printf(s: p, fmt: "UNKNOWN " ); |
54 | } |
55 | |
56 | trace_seq_putc(s: p, c: 0); |
57 | return ret; |
58 | } |
59 | |