DPDK  21.11.6
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
8 extern "C" {
9 #endif
10 
16 #include <stddef.h>
17 #include <stdint.h>
18 #include <stdio.h>
19 
20 #include <rte_compat.h>
21 #include <rte_meter.h>
22 
23 #include "rte_swx_port.h"
24 #include "rte_swx_table.h"
25 #include "rte_swx_table_selector.h"
26 
27 struct rte_swx_pipeline;
28 
30 #ifndef RTE_SWX_CTL_NAME_SIZE
31 #define RTE_SWX_CTL_NAME_SIZE 64
32 #endif
33 
34 /*
35  * Pipeline Query API.
36  */
37 
41  uint32_t n_ports_in;
42 
44  uint32_t n_ports_out;
45 
47  uint32_t n_actions;
48 
50  uint32_t n_tables;
51 
53  uint32_t n_selectors;
54 
56  uint32_t n_learners;
57 
59  uint32_t n_regarrays;
60 
62  uint32_t n_metarrays;
63 };
64 
76 __rte_experimental
77 int
78 rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p,
79  struct rte_swx_ctl_pipeline_info *pipeline);
80 
92 __rte_experimental
93 int
94 rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p,
95  int *numa_node);
96 
97 /*
98  * Ports Query API.
99  */
100 
114 __rte_experimental
115 int
116 rte_swx_ctl_pipeline_port_in_stats_read(struct rte_swx_pipeline *p,
117  uint32_t port_id,
118  struct rte_swx_port_in_stats *stats);
119 
133 __rte_experimental
134 int
135 rte_swx_ctl_pipeline_port_out_stats_read(struct rte_swx_pipeline *p,
136  uint32_t port_id,
137  struct rte_swx_port_out_stats *stats);
138 
139 /*
140  * Action Query API.
141  */
142 
147 
149  uint32_t n_args;
150 };
151 
165 __rte_experimental
166 int
167 rte_swx_ctl_action_info_get(struct rte_swx_pipeline *p,
168  uint32_t action_id,
169  struct rte_swx_ctl_action_info *action);
170 
175 
177  uint32_t n_bits;
178 
184 };
185 
201 __rte_experimental
202 int
203 rte_swx_ctl_action_arg_info_get(struct rte_swx_pipeline *p,
204  uint32_t action_id,
205  uint32_t action_arg_id,
206  struct rte_swx_ctl_action_arg_info *action_arg);
207 
208 /*
209  * Table Query API.
210  */
211 
216 
219 
221  uint32_t n_match_fields;
222 
224  uint32_t n_actions;
225 
231 
233  uint32_t size;
234 };
235 
249 __rte_experimental
250 int
251 rte_swx_ctl_table_info_get(struct rte_swx_pipeline *p,
252  uint32_t table_id,
253  struct rte_swx_ctl_table_info *table);
254 
263 
268 
270  uint32_t n_bits;
271 
275  uint32_t offset;
276 };
277 
293 __rte_experimental
294 int
295 rte_swx_ctl_table_match_field_info_get(struct rte_swx_pipeline *p,
296  uint32_t table_id,
297  uint32_t match_field_id,
298  struct rte_swx_ctl_table_match_field_info *match_field);
299 
303  uint32_t action_id;
304 
307 
310 };
311 
330 __rte_experimental
331 int
332 rte_swx_ctl_table_action_info_get(struct rte_swx_pipeline *p,
333  uint32_t table_id,
334  uint32_t table_action_id,
335  struct rte_swx_ctl_table_action_info *table_action);
336 
356 __rte_experimental
357 int
358 rte_swx_ctl_table_ops_get(struct rte_swx_pipeline *p,
359  uint32_t table_id,
360  struct rte_swx_table_ops *table_ops,
361  int *is_stub);
362 
366  uint64_t n_pkts_hit;
367 
369  uint64_t n_pkts_miss;
370 
376  uint64_t *n_pkts_action;
377 };
378 
395 __rte_experimental
396 int
397 rte_swx_ctl_pipeline_table_stats_read(struct rte_swx_pipeline *p,
398  const char *table_name,
399  struct rte_swx_table_stats *stats);
400 
401 /*
402  * Selector Table Query API.
403  */
404 
409 
412 
414  uint32_t n_groups_max;
415 
418 };
419 
433 __rte_experimental
434 int
435 rte_swx_ctl_selector_info_get(struct rte_swx_pipeline *p,
436  uint32_t selector_id,
437  struct rte_swx_ctl_selector_info *selector);
438 
452 __rte_experimental
453 int
454 rte_swx_ctl_selector_group_id_field_info_get(struct rte_swx_pipeline *p,
455  uint32_t selector_id,
456  struct rte_swx_ctl_table_match_field_info *field);
457 
473 __rte_experimental
474 int
475 rte_swx_ctl_selector_field_info_get(struct rte_swx_pipeline *p,
476  uint32_t selector_id,
477  uint32_t selector_field_id,
478  struct rte_swx_ctl_table_match_field_info *field);
479 
493 __rte_experimental
494 int
495 rte_swx_ctl_selector_member_id_field_info_get(struct rte_swx_pipeline *p,
496  uint32_t selector_id,
497  struct rte_swx_ctl_table_match_field_info *field);
498 
502  uint64_t n_pkts;
503 };
504 
518 __rte_experimental
519 int
520 rte_swx_ctl_pipeline_selector_stats_read(struct rte_swx_pipeline *p,
521  const char *selector_name,
522  struct rte_swx_pipeline_selector_stats *stats);
523 
524 /*
525  * Learner Table Query API.
526  */
527 
532 
534  uint32_t n_match_fields;
535 
537  uint32_t n_actions;
538 
544 
546  uint32_t size;
547 };
548 
562 __rte_experimental
563 int
564 rte_swx_ctl_learner_info_get(struct rte_swx_pipeline *p,
565  uint32_t learner_id,
566  struct rte_swx_ctl_learner_info *learner);
567 
583 __rte_experimental
584 int
585 rte_swx_ctl_learner_match_field_info_get(struct rte_swx_pipeline *p,
586  uint32_t learner_id,
587  uint32_t match_field_id,
588  struct rte_swx_ctl_table_match_field_info *match_field);
589 
607 __rte_experimental
608 int
609 rte_swx_ctl_learner_action_info_get(struct rte_swx_pipeline *p,
610  uint32_t learner_id,
611  uint32_t learner_action_id,
612  struct rte_swx_ctl_table_action_info *learner_action);
613 
617  uint64_t n_pkts_hit;
618 
620  uint64_t n_pkts_miss;
621 
623  uint64_t n_pkts_learn_ok;
624 
627 
629  uint64_t n_pkts_forget;
630 
635  uint64_t *n_pkts_action;
636 };
637 
654 __rte_experimental
655 int
656 rte_swx_ctl_pipeline_learner_stats_read(struct rte_swx_pipeline *p,
657  const char *learner_name,
658  struct rte_swx_learner_stats *stats);
659 
660 /*
661  * Table Update API.
662  */
663 
667  void *obj;
668 
671 
676 };
677 
694 __rte_experimental
695 int
696 rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p,
697  struct rte_swx_table_state **table_state);
698 
713 __rte_experimental
714 int
715 rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p,
716  struct rte_swx_table_state *table_state);
717 
718 /*
719  * High Level Reference Table Update API.
720  */
721 
723 struct rte_swx_ctl_pipeline;
724 
733 __rte_experimental
734 struct rte_swx_ctl_pipeline *
735 rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p);
736 
753 __rte_experimental
754 int
755 rte_swx_ctl_pipeline_table_entry_add(struct rte_swx_ctl_pipeline *ctl,
756  const char *table_name,
757  struct rte_swx_table_entry *entry);
758 
775 __rte_experimental
776 int
777 rte_swx_ctl_pipeline_table_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
778  const char *table_name,
779  struct rte_swx_table_entry *entry);
780 
798 __rte_experimental
799 int
800 rte_swx_ctl_pipeline_table_entry_delete(struct rte_swx_ctl_pipeline *ctl,
801  const char *table_name,
802  struct rte_swx_table_entry *entry);
803 
823 __rte_experimental
824 int
825 rte_swx_ctl_pipeline_selector_group_add(struct rte_swx_ctl_pipeline *ctl,
826  const char *selector_name,
827  uint32_t *group_id);
828 
846 __rte_experimental
847 int
848 rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl,
849  const char *selector_name,
850  uint32_t group_id);
851 
876 __rte_experimental
877 int
878 rte_swx_ctl_pipeline_selector_group_member_add(struct rte_swx_ctl_pipeline *ctl,
879  const char *selector_name,
880  uint32_t group_id,
881  uint32_t member_id,
882  uint32_t member_weight);
883 
902 __rte_experimental
903 int
904 rte_swx_ctl_pipeline_selector_group_member_delete(struct rte_swx_ctl_pipeline *ctl,
905  const char *selector_name,
906  uint32_t group_id,
907  uint32_t member_id);
908 
924 __rte_experimental
925 int
926 rte_swx_ctl_pipeline_learner_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
927  const char *learner_name,
928  struct rte_swx_table_entry *entry);
929 
945 __rte_experimental
946 int
947 rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl,
948  int abort_on_fail);
949 
958 __rte_experimental
959 void
960 rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl);
961 
981 __rte_experimental
982 struct rte_swx_table_entry *
983 rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl,
984  const char *table_name,
985  const char *string,
986  int *is_blank_or_comment);
987 
1007 __rte_experimental
1008 struct rte_swx_table_entry *
1009 rte_swx_ctl_pipeline_learner_default_entry_read(struct rte_swx_ctl_pipeline *ctl,
1010  const char *learner_name,
1011  const char *string,
1012  int *is_blank_or_comment);
1013 
1029 __rte_experimental
1030 int
1032  struct rte_swx_ctl_pipeline *ctl,
1033  const char *table_name);
1034 
1050 __rte_experimental
1051 int
1053  struct rte_swx_ctl_pipeline *ctl,
1054  const char *selector_name);
1055 
1056 /*
1057  * Register Array Query API.
1058  */
1059 
1064 
1066  uint32_t size;
1067 };
1068 
1082 __rte_experimental
1083 int
1084 rte_swx_ctl_regarray_info_get(struct rte_swx_pipeline *p,
1085  uint32_t regarray_id,
1086  struct rte_swx_ctl_regarray_info *regarray);
1087 
1103 __rte_experimental
1104 int
1105 rte_swx_ctl_pipeline_regarray_read(struct rte_swx_pipeline *p,
1106  const char *regarray_name,
1107  uint32_t regarray_index,
1108  uint64_t *value);
1109 
1125 __rte_experimental
1126 int
1127 rte_swx_ctl_pipeline_regarray_write(struct rte_swx_pipeline *p,
1128  const char *regarray_name,
1129  uint32_t regarray_index,
1130  uint64_t value);
1131 
1132 /*
1133  * Meter Array Query and Configuration API.
1134  */
1135 
1140 
1142  uint32_t size;
1143 };
1144 
1158 __rte_experimental
1159 int
1160 rte_swx_ctl_metarray_info_get(struct rte_swx_pipeline *p,
1161  uint32_t metarray_id,
1162  struct rte_swx_ctl_metarray_info *metarray);
1163 
1179 __rte_experimental
1180 int
1181 rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p,
1182  const char *name,
1183  struct rte_meter_trtcm_params *params);
1184 
1197 __rte_experimental
1198 int
1199 rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p,
1200  const char *name);
1201 
1220 __rte_experimental
1221 int
1222 rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p,
1223  const char *metarray_name,
1224  uint32_t metarray_index);
1225 
1245 __rte_experimental
1246 int
1247 rte_swx_ctl_meter_set(struct rte_swx_pipeline *p,
1248  const char *metarray_name,
1249  uint32_t metarray_index,
1250  const char *profile_name);
1251 
1255  uint64_t n_pkts[RTE_COLORS];
1256 
1258  uint64_t n_bytes[RTE_COLORS];
1259 };
1260 
1276 __rte_experimental
1277 int
1278 rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p,
1279  const char *metarray_name,
1280  uint32_t metarray_index,
1281  struct rte_swx_ctl_meter_stats *stats);
1282 
1289 __rte_experimental
1290 void
1291 rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl);
1292 
1293 #ifdef __cplusplus
1294 }
1295 #endif
1296 
1297 #endif
rte_swx_ctl_pipeline_regarray_read
__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_swx_ctl_pipeline_selector_fprintf
__rte_experimental int rte_swx_ctl_pipeline_selector_fprintf(FILE *f, struct rte_swx_ctl_pipeline *ctl, const char *selector_name)
rte_swx_ctl_table_action_info::action_is_for_default_entry
int action_is_for_default_entry
Definition: rte_swx_ctl.h:309
rte_swx_ctl_metarray_info::size
uint32_t size
Definition: rte_swx_ctl.h:1142
rte_swx_port.h
rte_swx_ctl_action_info
Definition: rte_swx_ctl.h:144
rte_swx_ctl_meter_stats::n_bytes
uint64_t n_bytes[RTE_COLORS]
Definition: rte_swx_ctl.h:1258
rte_swx_ctl_pipeline_selector_group_delete
__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_swx_ctl_table_match_field_info::match_type
enum rte_swx_table_match_type match_type
Definition: rte_swx_ctl.h:262
rte_swx_table.h
rte_swx_learner_stats::n_pkts_learn_err
uint64_t n_pkts_learn_err
Definition: rte_swx_ctl.h:626
rte_swx_ctl_action_arg_info::n_bits
uint32_t n_bits
Definition: rte_swx_ctl.h:177
rte_swx_ctl_table_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:215
rte_swx_pipeline_table_state_set
__rte_experimental int rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p, struct rte_swx_table_state *table_state)
rte_swx_ctl_pipeline_table_default_entry_add
__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_swx_ctl_pipeline_info::n_metarrays
uint32_t n_metarrays
Definition: rte_swx_ctl.h:62
rte_swx_ctl_pipeline_abort
__rte_experimental void rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl)
rte_meter.h
rte_swx_ctl_meter_profile_delete
__rte_experimental int rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p, const char *name)
rte_swx_ctl_pipeline_info::n_tables
uint32_t n_tables
Definition: rte_swx_ctl.h:50
rte_swx_ctl_pipeline_selector_stats_read
__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_swx_ctl_pipeline_learner_default_entry_read
__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_swx_ctl_pipeline_selector_group_add
__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_swx_ctl_table_info::n_actions
uint32_t n_actions
Definition: rte_swx_ctl.h:224
rte_swx_ctl_pipeline_selector_group_member_add
__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_swx_pipeline_selector_stats::n_pkts
uint64_t n_pkts
Definition: rte_swx_ctl.h:502
rte_swx_ctl_selector_info_get
__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_swx_ctl_pipeline_info::n_ports_out
uint32_t n_ports_out
Definition: rte_swx_ctl.h:44
rte_swx_ctl_table_match_field_info::offset
uint32_t offset
Definition: rte_swx_ctl.h:275
rte_swx_ctl_pipeline_info
Definition: rte_swx_ctl.h:39
rte_swx_ctl_learner_info::size
uint32_t size
Definition: rte_swx_ctl.h:546
rte_swx_ctl_regarray_info
Definition: rte_swx_ctl.h:1061
rte_swx_pipeline_selector_stats
Definition: rte_swx_ctl.h:500
rte_swx_ctl_table_info
Definition: rte_swx_ctl.h:213
rte_swx_ctl_table_action_info_get
__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_swx_ctl_pipeline_free
__rte_experimental void rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl)
rte_swx_table_stats::n_pkts_action
uint64_t * n_pkts_action
Definition: rte_swx_ctl.h:376
rte_swx_ctl_pipeline_info::n_ports_in
uint32_t n_ports_in
Definition: rte_swx_ctl.h:41
rte_swx_ctl_meter_stats
Definition: rte_swx_ctl.h:1253
rte_swx_learner_stats
Definition: rte_swx_ctl.h:615
rte_swx_ctl_action_arg_info_get
__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_swx_ctl_learner_info::default_action_is_const
int default_action_is_const
Definition: rte_swx_ctl.h:543
rte_swx_ctl_meter_set
__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_swx_ctl_table_ops_get
__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_swx_port_out_stats
Definition: rte_swx_port.h:160
rte_swx_ctl_meter_reset
__rte_experimental int rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p, const char *metarray_name, uint32_t metarray_index)
rte_swx_ctl_pipeline_info::n_learners
uint32_t n_learners
Definition: rte_swx_ctl.h:56
rte_swx_ctl_table_info::n_match_fields
uint32_t n_match_fields
Definition: rte_swx_ctl.h:221
rte_swx_ctl_pipeline_numa_node_get
__rte_experimental int rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p, int *numa_node)
rte_swx_port_in_stats
Definition: rte_swx_port.h:76
rte_swx_table_state::default_action_id
uint64_t default_action_id
Definition: rte_swx_ctl.h:670
rte_swx_ctl_pipeline_table_entry_add
__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_swx_ctl_pipeline_info::n_actions
uint32_t n_actions
Definition: rte_swx_ctl.h:47
rte_swx_table_state::default_action_data
uint8_t * default_action_data
Definition: rte_swx_ctl.h:675
rte_swx_ctl_selector_info::n_selector_fields
uint32_t n_selector_fields
Definition: rte_swx_ctl.h:411
rte_swx_ctl_pipeline_table_entry_delete
__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_swx_ctl_action_info::n_args
uint32_t n_args
Definition: rte_swx_ctl.h:149
rte_swx_ctl_selector_info::n_members_per_group_max
uint32_t n_members_per_group_max
Definition: rte_swx_ctl.h:417
rte_swx_ctl_pipeline_info_get
__rte_experimental int rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p, struct rte_swx_ctl_pipeline_info *pipeline)
rte_swx_ctl_pipeline_learner_default_entry_add
__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_swx_ctl_pipeline_table_stats_read
__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_swx_table_state::obj
void * obj
Definition: rte_swx_ctl.h:667
rte_swx_ctl_learner_info::n_match_fields
uint32_t n_match_fields
Definition: rte_swx_ctl.h:534
rte_swx_ctl_selector_member_id_field_info_get
__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_swx_pipeline_table_state_get
__rte_experimental int rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p, struct rte_swx_table_state **table_state)
rte_swx_ctl_table_action_info::action_is_for_table_entries
int action_is_for_table_entries
Definition: rte_swx_ctl.h:306
rte_swx_ctl_pipeline_table_entry_read
__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_swx_ctl_table_match_field_info
Definition: rte_swx_ctl.h:260
rte_swx_ctl_meter_profile_add
__rte_experimental int rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p, const char *name, struct rte_meter_trtcm_params *params)
rte_swx_ctl_table_match_field_info::n_bits
uint32_t n_bits
Definition: rte_swx_ctl.h:270
rte_swx_ctl_table_match_field_info_get
__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_swx_ctl_selector_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:408
rte_swx_ctl_table_info_get
__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_swx_ctl_pipeline_regarray_write
__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_swx_learner_stats::n_pkts_hit
uint64_t n_pkts_hit
Definition: rte_swx_ctl.h:617
rte_swx_ctl_selector_group_id_field_info_get
__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_swx_ctl_pipeline_selector_group_member_delete
__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_swx_ctl_learner_match_field_info_get
__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_swx_ctl_metarray_info_get
__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_swx_ctl_table_action_info
Definition: rte_swx_ctl.h:301
rte_swx_ctl_regarray_info::size
uint32_t size
Definition: rte_swx_ctl.h:1066
rte_swx_ctl_meter_stats::n_pkts
uint64_t n_pkts[RTE_COLORS]
Definition: rte_swx_ctl.h:1255
rte_swx_ctl_action_info_get
__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_swx_ctl_selector_field_info_get
__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_swx_ctl_pipeline_commit
__rte_experimental int rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl, int abort_on_fail)
rte_swx_ctl_learner_info
Definition: rte_swx_ctl.h:529
rte_swx_table_ops
Definition: rte_swx_table.h:267
rte_swx_learner_stats::n_pkts_action
uint64_t * n_pkts_action
Definition: rte_swx_ctl.h:635
rte_meter_trtcm_params
Definition: rte_meter.h:55
rte_swx_ctl_metarray_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:1139
rte_swx_ctl_table_info::default_action_is_const
int default_action_is_const
Definition: rte_swx_ctl.h:230
rte_swx_ctl_pipeline_table_fprintf
__rte_experimental int rte_swx_ctl_pipeline_table_fprintf(FILE *f, struct rte_swx_ctl_pipeline *ctl, const char *table_name)
rte_swx_ctl_pipeline_port_out_stats_read
__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_swx_ctl_action_arg_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:174
rte_swx_ctl_regarray_info_get
__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_swx_ctl_learner_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:531
rte_swx_ctl_table_info::args
char args[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:218
rte_swx_table_match_type
rte_swx_table_match_type
Definition: rte_swx_table.h:23
rte_swx_ctl_learner_info::n_actions
uint32_t n_actions
Definition: rte_swx_ctl.h:537
rte_swx_ctl_pipeline_create
__rte_experimental struct rte_swx_ctl_pipeline * rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p)
rte_swx_ctl_table_match_field_info::is_header
int is_header
Definition: rte_swx_ctl.h:267
rte_swx_ctl_pipeline_port_in_stats_read
__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_swx_ctl_regarray_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:1063
rte_swx_ctl_learner_action_info_get
__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_swx_table_state
Definition: rte_swx_ctl.h:665
RTE_SWX_CTL_NAME_SIZE
#define RTE_SWX_CTL_NAME_SIZE
Definition: rte_swx_ctl.h:31
rte_swx_learner_stats::n_pkts_learn_ok
uint64_t n_pkts_learn_ok
Definition: rte_swx_ctl.h:623
rte_swx_table_stats
Definition: rte_swx_ctl.h:364
rte_swx_ctl_learner_info_get
__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_swx_ctl_pipeline_learner_stats_read
__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_swx_ctl_table_info::size
uint32_t size
Definition: rte_swx_ctl.h:233
RTE_COLORS
@ RTE_COLORS
Definition: rte_meter.h:40
rte_swx_ctl_action_arg_info
Definition: rte_swx_ctl.h:172
rte_swx_table_stats::n_pkts_miss
uint64_t n_pkts_miss
Definition: rte_swx_ctl.h:369
rte_swx_ctl_pipeline_info::n_selectors
uint32_t n_selectors
Definition: rte_swx_ctl.h:53
rte_swx_ctl_pipeline_info::n_regarrays
uint32_t n_regarrays
Definition: rte_swx_ctl.h:59
rte_swx_ctl_action_info::name
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:146
rte_swx_ctl_action_arg_info::is_network_byte_order
int is_network_byte_order
Definition: rte_swx_ctl.h:183
rte_swx_ctl_meter_stats_read
__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_swx_learner_stats::n_pkts_forget
uint64_t n_pkts_forget
Definition: rte_swx_ctl.h:629
rte_swx_ctl_table_action_info::action_id
uint32_t action_id
Definition: rte_swx_ctl.h:303
rte_swx_table_entry
Definition: rte_swx_table.h:68
rte_swx_learner_stats::n_pkts_miss
uint64_t n_pkts_miss
Definition: rte_swx_ctl.h:620
rte_swx_ctl_metarray_info
Definition: rte_swx_ctl.h:1137
rte_swx_table_stats::n_pkts_hit
uint64_t n_pkts_hit
Definition: rte_swx_ctl.h:366
rte_swx_table_selector.h
rte_swx_ctl_selector_info::n_groups_max
uint32_t n_groups_max
Definition: rte_swx_ctl.h:414
rte_swx_ctl_selector_info
Definition: rte_swx_ctl.h:406