linux/drivers/net/ethernet/mellanox/mlx5/core/diag/en_tc_tracepoint.c
<<
>>
Prefs
   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
   7void 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
  19static 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
  42const 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}
  59