This source file includes following definitions.
- put_ids_to_array
- parse_action
1
2
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(p);
47 unsigned int i;
48
49 for (i = 0; i < num; i++) {
50 if (ids[i] < NUM_FLOW_ACTIONS)
51 trace_seq_printf(p, "%s ", FLOWACT2STR[ids[i]]);
52 else
53 trace_seq_printf(p, "UNKNOWN ");
54 }
55
56 trace_seq_putc(p, 0);
57 return ret;
58 }