DPDK  24.07.0
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 <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 
25 struct 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 
72  uint32_t n_rss;
73 };
74 
86 __rte_experimental
87 int
88 rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p,
90 
102 __rte_experimental
103 int
104 rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p,
105  int *numa_node);
106 
107 /*
108  * Ports Query API.
109  */
110 
124 __rte_experimental
125 int
126 rte_swx_ctl_pipeline_port_in_stats_read(struct rte_swx_pipeline *p,
127  uint32_t port_id,
128  struct rte_swx_port_in_stats *stats);
129 
143 __rte_experimental
144 int
145 rte_swx_ctl_pipeline_port_out_stats_read(struct rte_swx_pipeline *p,
146  uint32_t port_id,
147  struct rte_swx_port_out_stats *stats);
148 
149 /*
150  * Action Query API.
151  */
152 
157 
159  uint32_t n_args;
160 };
161 
175 __rte_experimental
176 int
177 rte_swx_ctl_action_info_get(struct rte_swx_pipeline *p,
178  uint32_t action_id,
179  struct rte_swx_ctl_action_info *action);
180 
185 
187  uint32_t n_bits;
188 
194 };
195 
211 __rte_experimental
212 int
213 rte_swx_ctl_action_arg_info_get(struct rte_swx_pipeline *p,
214  uint32_t action_id,
215  uint32_t action_arg_id,
216  struct rte_swx_ctl_action_arg_info *action_arg);
217 
218 /*
219  * Table Query API.
220  */
221 
226 
229 
231  uint32_t n_match_fields;
232 
234  uint32_t n_actions;
235 
241 
244 
246  uint32_t size;
247 };
248 
262 __rte_experimental
263 int
264 rte_swx_ctl_table_info_get(struct rte_swx_pipeline *p,
265  uint32_t table_id,
266  struct rte_swx_ctl_table_info *table);
267 
275  enum rte_swx_table_match_type match_type;
276 
281 
283  uint32_t n_bits;
284 
288  uint32_t offset;
289 };
290 
306 __rte_experimental
307 int
308 rte_swx_ctl_table_match_field_info_get(struct rte_swx_pipeline *p,
309  uint32_t table_id,
310  uint32_t match_field_id,
311  struct rte_swx_ctl_table_match_field_info *match_field);
312 
316  uint32_t action_id;
317 
320 
323 };
324 
343 __rte_experimental
344 int
345 rte_swx_ctl_table_action_info_get(struct rte_swx_pipeline *p,
346  uint32_t table_id,
347  uint32_t table_action_id,
348  struct rte_swx_ctl_table_action_info *table_action);
349 
369 __rte_experimental
370 int
371 rte_swx_ctl_table_ops_get(struct rte_swx_pipeline *p,
372  uint32_t table_id,
373  struct rte_swx_table_ops *table_ops,
374  int *is_stub);
375 
379  uint64_t n_pkts_hit;
380 
382  uint64_t n_pkts_miss;
383 
389  uint64_t *n_pkts_action;
390 };
391 
408 __rte_experimental
409 int
410 rte_swx_ctl_pipeline_table_stats_read(struct rte_swx_pipeline *p,
411  const char *table_name,
412  struct rte_swx_table_stats *stats);
413 
414 /*
415  * Selector Table Query API.
416  */
417 
422 
425 
427  uint32_t n_groups_max;
428 
431 };
432 
446 __rte_experimental
447 int
448 rte_swx_ctl_selector_info_get(struct rte_swx_pipeline *p,
449  uint32_t selector_id,
450  struct rte_swx_ctl_selector_info *selector);
451 
465 __rte_experimental
466 int
467 rte_swx_ctl_selector_group_id_field_info_get(struct rte_swx_pipeline *p,
468  uint32_t selector_id,
469  struct rte_swx_ctl_table_match_field_info *field);
470 
486 __rte_experimental
487 int
488 rte_swx_ctl_selector_field_info_get(struct rte_swx_pipeline *p,
489  uint32_t selector_id,
490  uint32_t selector_field_id,
491  struct rte_swx_ctl_table_match_field_info *field);
492 
506 __rte_experimental
507 int
508 rte_swx_ctl_selector_member_id_field_info_get(struct rte_swx_pipeline *p,
509  uint32_t selector_id,
510  struct rte_swx_ctl_table_match_field_info *field);
511 
515  uint64_t n_pkts;
516 };
517 
531 __rte_experimental
532 int
533 rte_swx_ctl_pipeline_selector_stats_read(struct rte_swx_pipeline *p,
534  const char *selector_name,
535  struct rte_swx_pipeline_selector_stats *stats);
536 
537 /*
538  * Learner Table Query API.
539  */
540 
545 
547  uint32_t n_match_fields;
548 
550  uint32_t n_actions;
551 
557 
559  uint32_t size;
560 
562  uint32_t n_key_timeouts;
563 };
564 
578 __rte_experimental
579 int
580 rte_swx_ctl_learner_info_get(struct rte_swx_pipeline *p,
581  uint32_t learner_id,
582  struct rte_swx_ctl_learner_info *learner);
583 
599 __rte_experimental
600 int
601 rte_swx_ctl_learner_match_field_info_get(struct rte_swx_pipeline *p,
602  uint32_t learner_id,
603  uint32_t match_field_id,
604  struct rte_swx_ctl_table_match_field_info *match_field);
605 
623 __rte_experimental
624 int
625 rte_swx_ctl_learner_action_info_get(struct rte_swx_pipeline *p,
626  uint32_t learner_id,
627  uint32_t learner_action_id,
628  struct rte_swx_ctl_table_action_info *learner_action);
629 
645 __rte_experimental
646 int
647 rte_swx_ctl_pipeline_learner_timeout_get(struct rte_swx_pipeline *p,
648  uint32_t learner_id,
649  uint32_t timeout_id,
650  uint32_t *timeout);
651 
667 __rte_experimental
668 int
669 rte_swx_ctl_pipeline_learner_timeout_set(struct rte_swx_pipeline *p,
670  uint32_t learner_id,
671  uint32_t timeout_id,
672  uint32_t timeout);
673 
677  uint64_t n_pkts_hit;
678 
680  uint64_t n_pkts_miss;
681 
683  uint64_t n_pkts_learn_ok;
684 
687 
689  uint64_t n_pkts_rearm;
690 
692  uint64_t n_pkts_forget;
693 
698  uint64_t *n_pkts_action;
699 };
700 
717 __rte_experimental
718 int
719 rte_swx_ctl_pipeline_learner_stats_read(struct rte_swx_pipeline *p,
720  const char *learner_name,
721  struct rte_swx_learner_stats *stats);
722 
723 /*
724  * Packet mirroring API.
725  */
726 
730  uint32_t port_id;
731 
734 
737 };
738 
753 __rte_experimental
754 int
755 rte_swx_ctl_pipeline_mirroring_session_set(struct rte_swx_pipeline *p,
756  uint32_t session_id,
758 
759 /*
760  * Table Update API.
761  */
762 
766  void *obj;
767 
770 
775 };
776 
793 __rte_experimental
794 int
795 rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p,
796  struct rte_swx_table_state **table_state);
797 
812 __rte_experimental
813 int
814 rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p,
815  struct rte_swx_table_state *table_state);
816 
817 /*
818  * High Level Reference Table Update API.
819  */
820 
822 struct rte_swx_ctl_pipeline;
823 
832 __rte_experimental
833 struct rte_swx_ctl_pipeline *
834 rte_swx_ctl_pipeline_find(const char *name);
835 
844 __rte_experimental
845 struct rte_swx_ctl_pipeline *
846 rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p);
847 
864 __rte_experimental
865 int
866 rte_swx_ctl_pipeline_table_entry_add(struct rte_swx_ctl_pipeline *ctl,
867  const char *table_name,
868  struct rte_swx_table_entry *entry);
869 
886 __rte_experimental
887 int
888 rte_swx_ctl_pipeline_table_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
889  const char *table_name,
890  struct rte_swx_table_entry *entry);
891 
909 __rte_experimental
910 int
911 rte_swx_ctl_pipeline_table_entry_delete(struct rte_swx_ctl_pipeline *ctl,
912  const char *table_name,
913  struct rte_swx_table_entry *entry);
914 
934 __rte_experimental
935 int
936 rte_swx_ctl_pipeline_selector_group_add(struct rte_swx_ctl_pipeline *ctl,
937  const char *selector_name,
938  uint32_t *group_id);
939 
957 __rte_experimental
958 int
959 rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl,
960  const char *selector_name,
961  uint32_t group_id);
962 
987 __rte_experimental
988 int
989 rte_swx_ctl_pipeline_selector_group_member_add(struct rte_swx_ctl_pipeline *ctl,
990  const char *selector_name,
991  uint32_t group_id,
992  uint32_t member_id,
993  uint32_t member_weight);
994 
1013 __rte_experimental
1014 int
1015 rte_swx_ctl_pipeline_selector_group_member_delete(struct rte_swx_ctl_pipeline *ctl,
1016  const char *selector_name,
1017  uint32_t group_id,
1018  uint32_t member_id);
1019 
1035 __rte_experimental
1036 int
1037 rte_swx_ctl_pipeline_learner_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
1038  const char *learner_name,
1039  struct rte_swx_table_entry *entry);
1040 
1056 __rte_experimental
1057 int
1058 rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl,
1059  int abort_on_fail);
1060 
1069 __rte_experimental
1070 void
1071 rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl);
1072 
1092 __rte_experimental
1093 struct rte_swx_table_entry *
1094 rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl,
1095  const char *table_name,
1096  const char *string,
1097  int *is_blank_or_comment);
1098 
1118 __rte_experimental
1119 struct rte_swx_table_entry *
1120 rte_swx_ctl_pipeline_learner_default_entry_read(struct rte_swx_ctl_pipeline *ctl,
1121  const char *learner_name,
1122  const char *string,
1123  int *is_blank_or_comment);
1124 
1140 __rte_experimental
1141 int
1143  struct rte_swx_ctl_pipeline *ctl,
1144  const char *table_name);
1145 
1161 __rte_experimental
1162 int
1164  struct rte_swx_ctl_pipeline *ctl,
1165  const char *selector_name);
1166 
1167 /*
1168  * Register Array Query API.
1169  */
1170 
1175 
1177  uint32_t size;
1178 };
1179 
1193 __rte_experimental
1194 int
1195 rte_swx_ctl_regarray_info_get(struct rte_swx_pipeline *p,
1196  uint32_t regarray_id,
1197  struct rte_swx_ctl_regarray_info *regarray);
1198 
1214 __rte_experimental
1215 int
1216 rte_swx_ctl_pipeline_regarray_read(struct rte_swx_pipeline *p,
1217  const char *regarray_name,
1218  uint32_t regarray_index,
1219  uint64_t *value);
1220 
1236 __rte_experimental
1237 int
1238 rte_swx_ctl_pipeline_regarray_write(struct rte_swx_pipeline *p,
1239  const char *regarray_name,
1240  uint32_t regarray_index,
1241  uint64_t value);
1242 
1261 __rte_experimental
1262 int
1263 rte_swx_ctl_pipeline_regarray_read_with_key(struct rte_swx_pipeline *p,
1264  const char *regarray_name,
1265  const char *table_name,
1266  uint8_t *table_key,
1267  uint64_t *value);
1268 
1287 __rte_experimental
1288 int
1289 rte_swx_ctl_pipeline_regarray_write_with_key(struct rte_swx_pipeline *p,
1290  const char *regarray_name,
1291  const char *table_name,
1292  uint8_t *table_key,
1293  uint64_t value);
1294 
1295 /*
1296  * Meter Array Query and Configuration API.
1297  */
1298 
1303 
1305  uint32_t size;
1306 };
1307 
1321 __rte_experimental
1322 int
1323 rte_swx_ctl_metarray_info_get(struct rte_swx_pipeline *p,
1324  uint32_t metarray_id,
1325  struct rte_swx_ctl_metarray_info *metarray);
1326 
1342 __rte_experimental
1343 int
1344 rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p,
1345  const char *name,
1346  struct rte_meter_trtcm_params *params);
1347 
1360 __rte_experimental
1361 int
1362 rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p,
1363  const char *name);
1364 
1383 __rte_experimental
1384 int
1385 rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p,
1386  const char *metarray_name,
1387  uint32_t metarray_index);
1388 
1408 __rte_experimental
1409 int
1410 rte_swx_ctl_meter_set(struct rte_swx_pipeline *p,
1411  const char *metarray_name,
1412  uint32_t metarray_index,
1413  const char *profile_name);
1414 
1418  uint64_t n_pkts[RTE_COLORS];
1419 
1421  uint64_t n_bytes[RTE_COLORS];
1422 };
1423 
1439 __rte_experimental
1440 int
1441 rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p,
1442  const char *metarray_name,
1443  uint32_t metarray_index,
1444  struct rte_swx_ctl_meter_stats *stats);
1445 
1466 __rte_experimental
1467 int
1468 rte_swx_ctl_meter_reset_with_key(struct rte_swx_pipeline *p,
1469  const char *metarray_name,
1470  const char *table_name,
1471  uint8_t *table_key);
1472 
1494 __rte_experimental
1495 int
1496 rte_swx_ctl_meter_set_with_key(struct rte_swx_pipeline *p,
1497  const char *metarray_name,
1498  const char *table_name,
1499  uint8_t *table_key,
1500  const char *profile_name);
1501 
1519 __rte_experimental
1520 int
1521 rte_swx_ctl_meter_stats_read_with_key(struct rte_swx_pipeline *p,
1522  const char *metarray_name,
1523  const char *table_name,
1524  uint8_t *table_key,
1525  struct rte_swx_ctl_meter_stats *stats);
1526 
1527 /*
1528  * RSS Query and Configuration API.
1529  */
1530 
1535 };
1536 
1550 __rte_experimental
1551 int
1552 rte_swx_ctl_rss_info_get(struct rte_swx_pipeline *p,
1553  uint32_t rss_obj_id,
1554  struct rte_swx_ctl_rss_info *rss);
1555 
1569 __rte_experimental
1570 int
1571 rte_swx_ctl_pipeline_rss_key_size_read(struct rte_swx_pipeline *p,
1572  const char *rss_obj_name,
1573  uint32_t *key_size);
1574 
1588 __rte_experimental
1589 int
1590 rte_swx_ctl_pipeline_rss_key_read(struct rte_swx_pipeline *p,
1591  const char *rss_obj_name,
1592  uint8_t *key);
1593 
1609 __rte_experimental
1610 int
1611 rte_swx_ctl_pipeline_rss_key_write(struct rte_swx_pipeline *p,
1612  const char *rss_obj_name,
1613  uint32_t key_size,
1614  uint8_t *key);
1615 
1623 __rte_experimental
1624 void
1625 rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl);
1626 
1627 #ifdef __cplusplus
1628 }
1629 #endif
1630 
1631 #endif
uint32_t(* rte_swx_hash_func_t)(const void *key, uint32_t length, uint32_t seed)
__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_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_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_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_profile_delete(struct rte_swx_pipeline *p, const char *name)
char name[RTE_SWX_CTL_NAME_SIZE]
Definition: rte_swx_ctl.h:39
__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 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_selector_group_add(struct rte_swx_ctl_pipeline *ctl, const char *selector_name, uint32_t *group_id)
Definition: rte_swx_table.h:76
uint64_t * n_pkts_action
Definition: rte_swx_ctl.h:389
__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_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 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)
uint8_t * default_action_data
Definition: rte_swx_ctl.h:774
__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_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_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_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_table_match_type
Definition: rte_swx_table.h:25
__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_pipeline_rss_key_size_read(struct rte_swx_pipeline *p, const char *rss_obj_name, uint32_t *key_size)
__rte_experimental int rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p, const char *name, struct rte_meter_trtcm_params *params)
uint64_t default_action_id
Definition: rte_swx_ctl.h:769
__rte_experimental int rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p, int *numa_node)
__rte_experimental void rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl)
__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_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_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_meter_reset(struct rte_swx_pipeline *p, const char *metarray_name, uint32_t metarray_index)
__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_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_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 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_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_rss_key_write(struct rte_swx_pipeline *p, const char *rss_obj_name, uint32_t key_size, uint8_t *key)
rte_swx_hash_func_t hash_func
Definition: rte_swx_ctl.h:243
__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_pipeline_port_out_stats_read(struct rte_swx_pipeline *p, uint32_t port_id, struct rte_swx_port_out_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_ctl_pipeline * rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p)
__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_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_pipeline_table_state_get(struct rte_swx_pipeline *p, struct rte_swx_table_state **table_state)
__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 struct rte_swx_ctl_pipeline * rte_swx_ctl_pipeline_find(const char *name)
__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)
uint64_t * n_pkts_action
Definition: rte_swx_ctl.h:698
__rte_experimental int rte_swx_ctl_pipeline_rss_key_read(struct rte_swx_pipeline *p, const char *rss_obj_name, uint8_t *key)
__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_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_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_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 int rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl, int abort_on_fail)
__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_selector_fprintf(FILE *f, struct rte_swx_ctl_pipeline *ctl, const char *selector_name)
__rte_experimental int rte_swx_ctl_pipeline_table_fprintf(FILE *f, struct rte_swx_ctl_pipeline *ctl, const char *table_name)
__rte_experimental int rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl, const char *selector_name, uint32_t group_id)
#define RTE_SWX_CTL_NAME_SIZE
Definition: rte_swx_ctl.h:29
__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_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_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_learner_timeout_get(struct rte_swx_pipeline *p, uint32_t learner_id, uint32_t timeout_id, uint32_t *timeout)
__rte_experimental int rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p, struct rte_swx_table_state *table_state)
__rte_experimental void rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl)
__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_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_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_rss_info_get(struct rte_swx_pipeline *p, uint32_t rss_obj_id, struct rte_swx_ctl_rss_info *rss)