4#ifndef __INCLUDE_RTE_SWX_PIPELINE_SPEC_H__
5#define __INCLUDE_RTE_SWX_PIPELINE_SPEC_H__
25 char *extern_type_name;
51 char *struct_type_name;
60 char *struct_type_name;
73 char *args_struct_type_name;
74 const char **instructions;
75 uint32_t n_instructions;
100 char *recommended_table_type_name;
119struct selector_spec {
158struct regarray_spec {
169struct metarray_spec {
183 const char **instructions;
184 uint32_t n_instructions;
190struct pipeline_spec {
191 struct extobj_spec *extobjs;
192 struct struct_spec *structs;
193 struct header_spec *headers;
194 struct metadata_spec *metadata;
195 struct action_spec *actions;
196 struct table_spec *tables;
197 struct selector_spec *selectors;
198 struct learner_spec *learners;
199 struct regarray_spec *regarrays;
200 struct metarray_spec *metarrays;
201 struct apply_spec *apply;
209 uint32_t n_selectors;
211 uint32_t n_regarrays;
212 uint32_t n_metarrays;
233struct pipeline_iospec {
236 uint32_t *port_in_id;
237 const char **port_in_type;
238 void **port_in_params;
240 uint32_t *port_out_id;
241 const char **port_out_type;
242 void **port_out_params;
245 uint32_t n_ports_out;
249pipeline_spec_free(
struct pipeline_spec *s);
252pipeline_spec_codegen(FILE *f,
253 struct pipeline_spec *s);
255struct pipeline_spec *
256pipeline_spec_parse(FILE *spec,
258 const char **err_msg);
261pipeline_spec_configure(
struct rte_swx_pipeline *p,
262 struct pipeline_spec *s,
263 const char **err_msg);
266pipeline_iospec_free(
struct pipeline_iospec *s);
268struct pipeline_iospec *
269pipeline_iospec_parse(FILE *spec,
271 const char **err_msg);
274pipeline_iospec_configure(
struct rte_swx_pipeline *p,
275 struct pipeline_iospec *s,
276 const char **err_msg);