DPDK 22.11.4
rte_swx_ctl.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2020 Intel Corporation
3 */
4#ifndef __INCLUDE_RTE_SWX_CTL_H__
5#define __INCLUDE_RTE_SWX_CTL_H__
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
16#include <stdint.h>
17#include <stdio.h>
18
19#include <rte_compat.h>
20#include <rte_meter.h>
21
22#include "rte_swx_port.h"
23#include "rte_swx_table.h"
24
25struct rte_swx_pipeline;
26
28#ifndef RTE_SWX_CTL_NAME_SIZE
29#define RTE_SWX_CTL_NAME_SIZE 64
30#endif
31
32/*
33 * Pipeline Query API.
34 */
35
40
42 uint32_t n_ports_in;
43
45 uint32_t n_ports_out;
46
49
52
54 uint32_t n_actions;
55
57 uint32_t n_tables;
58
60 uint32_t n_selectors;
61
63 uint32_t n_learners;
64
66 uint32_t n_regarrays;
67
69 uint32_t n_metarrays;
70};
71
83__rte_experimental
84int
85rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p,
87
99__rte_experimental
100int
101rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p,
102 int *numa_node);
103
104/*
105 * Ports Query API.
106 */
107
121__rte_experimental
122int
124 uint32_t port_id,
125 struct rte_swx_port_in_stats *stats);
126
140__rte_experimental
141int
143 uint32_t port_id,
144 struct rte_swx_port_out_stats *stats);
145
146/*
147 * Action Query API.
148 */
149
154
156 uint32_t n_args;
157};
158
172__rte_experimental
173int
174rte_swx_ctl_action_info_get(struct rte_swx_pipeline *p,
175 uint32_t action_id,
176 struct rte_swx_ctl_action_info *action);
177
182
184 uint32_t n_bits;
185
191};
192
208__rte_experimental
209int
210rte_swx_ctl_action_arg_info_get(struct rte_swx_pipeline *p,
211 uint32_t action_id,
212 uint32_t action_arg_id,
213 struct rte_swx_ctl_action_arg_info *action_arg);
214
215/*
216 * Table Query API.
217 */
218
223
226
229
231 uint32_t n_actions;
232
238
241
243 uint32_t size;
244};
245
259__rte_experimental
260int
261rte_swx_ctl_table_info_get(struct rte_swx_pipeline *p,
262 uint32_t table_id,
263 struct rte_swx_ctl_table_info *table);
264
273
278
280 uint32_t n_bits;
281
285 uint32_t offset;
286};
287
303__rte_experimental
304int
305rte_swx_ctl_table_match_field_info_get(struct rte_swx_pipeline *p,
306 uint32_t table_id,
307 uint32_t match_field_id,
308 struct rte_swx_ctl_table_match_field_info *match_field);
309
313 uint32_t action_id;
314
317
320};
321
340__rte_experimental
341int
342rte_swx_ctl_table_action_info_get(struct rte_swx_pipeline *p,
343 uint32_t table_id,
344 uint32_t table_action_id,
345 struct rte_swx_ctl_table_action_info *table_action);
346
366__rte_experimental
367int
368rte_swx_ctl_table_ops_get(struct rte_swx_pipeline *p,
369 uint32_t table_id,
370 struct rte_swx_table_ops *table_ops,
371 int *is_stub);
372
376 uint64_t n_pkts_hit;
377
379 uint64_t n_pkts_miss;
380
386 uint64_t *n_pkts_action;
387};
388
405__rte_experimental
406int
407rte_swx_ctl_pipeline_table_stats_read(struct rte_swx_pipeline *p,
408 const char *table_name,
409 struct rte_swx_table_stats *stats);
410
411/*
412 * Selector Table Query API.
413 */
414
419
422
424 uint32_t n_groups_max;
425
428};
429
443__rte_experimental
444int
445rte_swx_ctl_selector_info_get(struct rte_swx_pipeline *p,
446 uint32_t selector_id,
447 struct rte_swx_ctl_selector_info *selector);
448
462__rte_experimental
463int
465 uint32_t selector_id,
467
483__rte_experimental
484int
485rte_swx_ctl_selector_field_info_get(struct rte_swx_pipeline *p,
486 uint32_t selector_id,
487 uint32_t selector_field_id,
489
503__rte_experimental
504int
506 uint32_t selector_id,
508
512 uint64_t n_pkts;
513};
514
528__rte_experimental
529int
531 const char *selector_name,
532 struct rte_swx_pipeline_selector_stats *stats);
533
534/*
535 * Learner Table Query API.
536 */
537
542
545
547 uint32_t n_actions;
548
554
556 uint32_t size;
557
560};
561
575__rte_experimental
576int
577rte_swx_ctl_learner_info_get(struct rte_swx_pipeline *p,
578 uint32_t learner_id,
579 struct rte_swx_ctl_learner_info *learner);
580
596__rte_experimental
597int
599 uint32_t learner_id,
600 uint32_t match_field_id,
601 struct rte_swx_ctl_table_match_field_info *match_field);
602
620__rte_experimental
621int
622rte_swx_ctl_learner_action_info_get(struct rte_swx_pipeline *p,
623 uint32_t learner_id,
624 uint32_t learner_action_id,
625 struct rte_swx_ctl_table_action_info *learner_action);
626
642__rte_experimental
643int
645 uint32_t learner_id,
646 uint32_t timeout_id,
647 uint32_t *timeout);
648
664__rte_experimental
665int
667 uint32_t learner_id,
668 uint32_t timeout_id,
669 uint32_t timeout);
670
674 uint64_t n_pkts_hit;
675
677 uint64_t n_pkts_miss;
678
681
684
686 uint64_t n_pkts_rearm;
687
690
695 uint64_t *n_pkts_action;
696};
697
714__rte_experimental
715int
717 const char *learner_name,
718 struct rte_swx_learner_stats *stats);
719
720/*
721 * Packet mirroring API.
722 */
723
727 uint32_t port_id;
728
731
734};
735
750__rte_experimental
751int
753 uint32_t session_id,
755
756/*
757 * Table Update API.
758 */
759
763 void *obj;
764
767
772};
773
790__rte_experimental
791int
792rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p,
793 struct rte_swx_table_state **table_state);
794
809__rte_experimental
810int
811rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p,
812 struct rte_swx_table_state *table_state);
813
814/*
815 * High Level Reference Table Update API.
816 */
817
819struct rte_swx_ctl_pipeline;
820
829__rte_experimental
830struct rte_swx_ctl_pipeline *
832
841__rte_experimental
842struct rte_swx_ctl_pipeline *
843rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p);
844
861__rte_experimental
862int
863rte_swx_ctl_pipeline_table_entry_add(struct rte_swx_ctl_pipeline *ctl,
864 const char *table_name,
865 struct rte_swx_table_entry *entry);
866
883__rte_experimental
884int
885rte_swx_ctl_pipeline_table_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
886 const char *table_name,
887 struct rte_swx_table_entry *entry);
888
906__rte_experimental
907int
908rte_swx_ctl_pipeline_table_entry_delete(struct rte_swx_ctl_pipeline *ctl,
909 const char *table_name,
910 struct rte_swx_table_entry *entry);
911
931__rte_experimental
932int
933rte_swx_ctl_pipeline_selector_group_add(struct rte_swx_ctl_pipeline *ctl,
934 const char *selector_name,
935 uint32_t *group_id);
936
954__rte_experimental
955int
956rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl,
957 const char *selector_name,
958 uint32_t group_id);
959
984__rte_experimental
985int
986rte_swx_ctl_pipeline_selector_group_member_add(struct rte_swx_ctl_pipeline *ctl,
987 const char *selector_name,
988 uint32_t group_id,
989 uint32_t member_id,
990 uint32_t member_weight);
991
1010__rte_experimental
1011int
1013 const char *selector_name,
1014 uint32_t group_id,
1015 uint32_t member_id);
1016
1032__rte_experimental
1033int
1034rte_swx_ctl_pipeline_learner_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
1035 const char *learner_name,
1036 struct rte_swx_table_entry *entry);
1037
1053__rte_experimental
1054int
1055rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl,
1056 int abort_on_fail);
1057
1066__rte_experimental
1067void
1068rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl);
1069
1089__rte_experimental
1090struct rte_swx_table_entry *
1091rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl,
1092 const char *table_name,
1093 const char *string,
1094 int *is_blank_or_comment);
1095
1115__rte_experimental
1116struct rte_swx_table_entry *
1118 const char *learner_name,
1119 const char *string,
1120 int *is_blank_or_comment);
1121
1137__rte_experimental
1138int
1140 struct rte_swx_ctl_pipeline *ctl,
1141 const char *table_name);
1142
1158__rte_experimental
1159int
1161 struct rte_swx_ctl_pipeline *ctl,
1162 const char *selector_name);
1163
1164/*
1165 * Register Array Query API.
1166 */
1167
1172
1174 uint32_t size;
1175};
1176
1190__rte_experimental
1191int
1192rte_swx_ctl_regarray_info_get(struct rte_swx_pipeline *p,
1193 uint32_t regarray_id,
1194 struct rte_swx_ctl_regarray_info *regarray);
1195
1211__rte_experimental
1212int
1213rte_swx_ctl_pipeline_regarray_read(struct rte_swx_pipeline *p,
1214 const char *regarray_name,
1215 uint32_t regarray_index,
1216 uint64_t *value);
1217
1233__rte_experimental
1234int
1235rte_swx_ctl_pipeline_regarray_write(struct rte_swx_pipeline *p,
1236 const char *regarray_name,
1237 uint32_t regarray_index,
1238 uint64_t value);
1239
1258__rte_experimental
1259int
1261 const char *regarray_name,
1262 const char *table_name,
1263 uint8_t *table_key,
1264 uint64_t *value);
1265
1284__rte_experimental
1285int
1287 const char *regarray_name,
1288 const char *table_name,
1289 uint8_t *table_key,
1290 uint64_t value);
1291
1292/*
1293 * Meter Array Query and Configuration API.
1294 */
1295
1300
1302 uint32_t size;
1303};
1304
1318__rte_experimental
1319int
1320rte_swx_ctl_metarray_info_get(struct rte_swx_pipeline *p,
1321 uint32_t metarray_id,
1322 struct rte_swx_ctl_metarray_info *metarray);
1323
1339__rte_experimental
1340int
1341rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p,
1342 const char *name,
1343 struct rte_meter_trtcm_params *params);
1344
1357__rte_experimental
1358int
1359rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p,
1360 const char *name);
1361
1380__rte_experimental
1381int
1382rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p,
1383 const char *metarray_name,
1384 uint32_t metarray_index);
1385
1405__rte_experimental
1406int
1407rte_swx_ctl_meter_set(struct rte_swx_pipeline *p,
1408 const char *metarray_name,
1409 uint32_t metarray_index,
1410 const char *profile_name);
1411
1416
1419};
1420
1436__rte_experimental
1437int
1438rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p,
1439 const char *metarray_name,
1440 uint32_t metarray_index,
1441 struct rte_swx_ctl_meter_stats *stats);
1442
1463__rte_experimental
1464int
1465rte_swx_ctl_meter_reset_with_key(struct rte_swx_pipeline *p,
1466 const char *metarray_name,
1467 const char *table_name,
1468 uint8_t *table_key);
1469
1491__rte_experimental
1492int
1493rte_swx_ctl_meter_set_with_key(struct rte_swx_pipeline *p,
1494 const char *metarray_name,
1495 const char *table_name,
1496 uint8_t *table_key,
1497 const char *profile_name);
1498
1516__rte_experimental
1517int
1518rte_swx_ctl_meter_stats_read_with_key(struct rte_swx_pipeline *p,
1519 const char *metarray_name,
1520 const char *table_name,
1521 uint8_t *table_key,
1522 struct rte_swx_ctl_meter_stats *stats);
1523
1531__rte_experimental
1532void
1533rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl);
1534
1535#ifdef __cplusplus
1536}
1537#endif
1538
1539#endif
@ RTE_COLORS
Definition: rte_meter.h:39
__rte_experimental int rte_swx_ctl_pipeline_table_fprintf(FILE *f, struct rte_swx_ctl_pipeline *ctl, const char *table_name)
#define RTE_SWX_CTL_NAME_SIZE
Definition: rte_swx_ctl.h:29
__rte_experimental int rte_swx_ctl_pipeline_learner_default_entry_add(struct rte_swx_ctl_pipeline *ctl, const char *learner_name, struct rte_swx_table_entry *entry)
__rte_experimental int rte_swx_ctl_pipeline_port_out_stats_read(struct rte_swx_pipeline *p, uint32_t port_id, struct rte_swx_port_out_stats *stats)
__rte_experimental void rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl)
__rte_experimental int rte_swx_ctl_selector_field_info_get(struct rte_swx_pipeline *p, uint32_t selector_id, uint32_t selector_field_id, struct rte_swx_ctl_table_match_field_info *field)
__rte_experimental void rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl)
__rte_experimental int rte_swx_ctl_metarray_info_get(struct rte_swx_pipeline *p, uint32_t metarray_id, struct rte_swx_ctl_metarray_info *metarray)
__rte_experimental int rte_swx_ctl_selector_info_get(struct rte_swx_pipeline *p, uint32_t selector_id, struct rte_swx_ctl_selector_info *selector)
__rte_experimental int rte_swx_ctl_pipeline_table_entry_add(struct rte_swx_ctl_pipeline *ctl, const char *table_name, struct rte_swx_table_entry *entry)
__rte_experimental int rte_swx_ctl_meter_reset_with_key(struct rte_swx_pipeline *p, const char *metarray_name, const char *table_name, uint8_t *table_key)
__rte_experimental int rte_swx_ctl_pipeline_table_entry_delete(struct rte_swx_ctl_pipeline *ctl, const char *table_name, struct rte_swx_table_entry *entry)
__rte_experimental int rte_swx_ctl_action_arg_info_get(struct rte_swx_pipeline *p, uint32_t action_id, uint32_t action_arg_id, struct rte_swx_ctl_action_arg_info *action_arg)
__rte_experimental int rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p, const char *name)
__rte_experimental int rte_swx_ctl_pipeline_learner_timeout_set(struct rte_swx_pipeline *p, uint32_t learner_id, uint32_t timeout_id, uint32_t timeout)
__rte_experimental int rte_swx_ctl_pipeline_selector_group_member_delete(struct rte_swx_ctl_pipeline *ctl, const char *selector_name, uint32_t group_id, uint32_t member_id)
__rte_experimental int rte_swx_ctl_pipeline_regarray_read(struct rte_swx_pipeline *p, const char *regarray_name, uint32_t regarray_index, uint64_t *value)
__rte_experimental int rte_swx_ctl_pipeline_mirroring_session_set(struct rte_swx_pipeline *p, uint32_t session_id, struct rte_swx_pipeline_mirroring_session_params *params)
__rte_experimental int rte_swx_ctl_table_action_info_get(struct rte_swx_pipeline *p, uint32_t table_id, uint32_t table_action_id, struct rte_swx_ctl_table_action_info *table_action)
__rte_experimental int rte_swx_ctl_meter_stats_read_with_key(struct rte_swx_pipeline *p, const char *metarray_name, const char *table_name, uint8_t *table_key, struct rte_swx_ctl_meter_stats *stats)
__rte_experimental struct rte_swx_table_entry * rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl, const char *table_name, const char *string, int *is_blank_or_comment)
__rte_experimental int rte_swx_ctl_learner_action_info_get(struct rte_swx_pipeline *p, uint32_t learner_id, uint32_t learner_action_id, struct rte_swx_ctl_table_action_info *learner_action)
__rte_experimental int rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p, struct rte_swx_table_state **table_state)
__rte_experimental int rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p, const char *metarray_name, uint32_t metarray_index, struct rte_swx_ctl_meter_stats *stats)
__rte_experimental int rte_swx_ctl_pipeline_regarray_read_with_key(struct rte_swx_pipeline *p, const char *regarray_name, const char *table_name, uint8_t *table_key, uint64_t *value)
__rte_experimental int rte_swx_ctl_table_info_get(struct rte_swx_pipeline *p, uint32_t table_id, struct rte_swx_ctl_table_info *table)
__rte_experimental int rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl, const char *selector_name, uint32_t group_id)
__rte_experimental int rte_swx_ctl_pipeline_table_default_entry_add(struct rte_swx_ctl_pipeline *ctl, const char *table_name, struct rte_swx_table_entry *entry)
__rte_experimental int rte_swx_ctl_table_match_field_info_get(struct rte_swx_pipeline *p, uint32_t table_id, uint32_t match_field_id, struct rte_swx_ctl_table_match_field_info *match_field)
__rte_experimental int rte_swx_ctl_pipeline_port_in_stats_read(struct rte_swx_pipeline *p, uint32_t port_id, struct rte_swx_port_in_stats *stats)
__rte_experimental int rte_swx_ctl_pipeline_learner_timeout_get(struct rte_swx_pipeline *p, uint32_t learner_id, uint32_t timeout_id, uint32_t *timeout)
__rte_experimental int rte_swx_ctl_pipeline_learner_stats_read(struct rte_swx_pipeline *p, const char *learner_name, struct rte_swx_learner_stats *stats)
__rte_experimental int rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p, int *numa_node)
__rte_experimental int rte_swx_ctl_learner_info_get(struct rte_swx_pipeline *p, uint32_t learner_id, struct rte_swx_ctl_learner_info *learner)
__rte_experimental int rte_swx_ctl_pipeline_regarray_write(struct rte_swx_pipeline *p, const char *regarray_name, uint32_t regarray_index, uint64_t value)
__rte_experimental int rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl, int abort_on_fail)
__rte_experimental int rte_swx_ctl_meter_set_with_key(struct rte_swx_pipeline *p, const char *metarray_name, const char *table_name, uint8_t *table_key, const char *profile_name)
__rte_experimental int rte_swx_ctl_pipeline_selector_group_add(struct rte_swx_ctl_pipeline *ctl, const char *selector_name, uint32_t *group_id)
__rte_experimental int rte_swx_ctl_pipeline_selector_group_member_add(struct rte_swx_ctl_pipeline *ctl, const char *selector_name, uint32_t group_id, uint32_t member_id, uint32_t member_weight)
__rte_experimental int rte_swx_ctl_pipeline_selector_stats_read(struct rte_swx_pipeline *p, const char *selector_name, struct rte_swx_pipeline_selector_stats *stats)
__rte_experimental int rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p, struct rte_swx_ctl_pipeline_info *pipeline)
__rte_experimental struct rte_swx_table_entry * rte_swx_ctl_pipeline_learner_default_entry_read(struct rte_swx_ctl_pipeline *ctl, const char *learner_name, const char *string, int *is_blank_or_comment)
__rte_experimental int rte_swx_ctl_pipeline_table_stats_read(struct rte_swx_pipeline *p, const char *table_name, struct rte_swx_table_stats *stats)
__rte_experimental int rte_swx_ctl_meter_set(struct rte_swx_pipeline *p, const char *metarray_name, uint32_t metarray_index, const char *profile_name)
__rte_experimental int rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p, const char *metarray_name, uint32_t metarray_index)
__rte_experimental int rte_swx_ctl_pipeline_regarray_write_with_key(struct rte_swx_pipeline *p, const char *regarray_name, const char *table_name, uint8_t *table_key, uint64_t value)
__rte_experimental int rte_swx_ctl_selector_member_id_field_info_get(struct rte_swx_pipeline *p, uint32_t selector_id, struct rte_swx_ctl_table_match_field_info *field)
__rte_experimental struct rte_swx_ctl_pipeline * rte_swx_ctl_pipeline_find(const char *name)
__rte_experimental int rte_swx_ctl_table_ops_get(struct rte_swx_pipeline *p, uint32_t table_id, struct rte_swx_table_ops *table_ops, int *is_stub)
__rte_experimental int rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p, const char *name, struct rte_meter_trtcm_params *params)
__rte_experimental struct rte_swx_ctl_pipeline * rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p)
__rte_experimental int rte_swx_ctl_action_info_get(struct rte_swx_pipeline *p, uint32_t action_id, struct rte_swx_ctl_action_info *action)
__rte_experimental int rte_swx_ctl_learner_match_field_info_get(struct rte_swx_pipeline *p, uint32_t learner_id, uint32_t match_field_id, struct rte_swx_ctl_table_match_field_info *match_field)
__rte_experimental int rte_swx_ctl_selector_group_id_field_info_get(struct rte_swx_pipeline *p, uint32_t selector_id, struct rte_swx_ctl_table_match_field_info *field)
__rte_experimental int rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p, struct rte_swx_table_state *table_state)
__rte_experimental int rte_swx_ctl_regarray_info_get(struct rte_swx_pipeline *p, uint32_t regarray_id, struct rte_swx_ctl_regarray_info *regarray)
__rte_experimental int rte_swx_ctl_pipeline_selector_fprintf(FILE *f, struct rte_swx_ctl_pipeline *ctl, const char *selector_name)
uint32_t(* rte_swx_hash_func_t)(const void *key, uint32_t length, uint32_t seed)
rte_swx_table_match_type
Definition: rte_swx_table.h:25
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:181
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:153
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:541
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:1299
uint64_t n_pkts[RTE_COLORS]
Definition: rte_swx_ctl.h:1415
uint64_t n_bytes[RTE_COLORS]
Definition: rte_swx_ctl.h:1418
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:39
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:1171
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:418
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:222
rte_swx_hash_func_t hash_func
Definition: rte_swx_ctl.h:240
char args[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:225
enum rte_swx_table_match_type match_type
Definition: rte_swx_ctl.h:272
uint64_t * n_pkts_action
Definition: rte_swx_ctl.h:695
Definition: rte_swx_table.h:76
uint64_t default_action_id
Definition: rte_swx_ctl.h:766
uint8_t * default_action_data
Definition: rte_swx_ctl.h:771
uint64_t * n_pkts_action
Definition: rte_swx_ctl.h:386