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 {
192 const char **instructions;
193 uint32_t n_instructions;
199struct pipeline_spec {
200 struct extobj_spec *extobjs;
201 struct struct_spec *structs;
202 struct header_spec *headers;
203 struct metadata_spec *metadata;
204 struct action_spec *actions;
205 struct table_spec *tables;
206 struct selector_spec *selectors;
207 struct learner_spec *learners;
208 struct regarray_spec *regarrays;
209 struct metarray_spec *metarrays;
210 struct rss_spec *rss;
211 struct apply_spec *apply;
219 uint32_t n_selectors;
221 uint32_t n_regarrays;
222 uint32_t n_metarrays;
244struct pipeline_iospec {
247 uint32_t *port_in_id;
248 const char **port_in_type;
249 void **port_in_params;
251 uint32_t *port_out_id;
252 const char **port_out_type;
253 void **port_out_params;
256 uint32_t n_ports_out;
260pipeline_spec_free(
struct pipeline_spec *s);
263pipeline_spec_codegen(FILE *f,
264 struct pipeline_spec *s);
266struct pipeline_spec *
267pipeline_spec_parse(FILE *spec,
269 const char **err_msg);
272pipeline_spec_configure(
struct rte_swx_pipeline *p,
273 struct pipeline_spec *s,
274 const char **err_msg);
277pipeline_iospec_free(
struct pipeline_iospec *s);
279struct pipeline_iospec *
280pipeline_iospec_parse(FILE *spec,
282 const char **err_msg);
285pipeline_iospec_configure(
struct rte_swx_pipeline *p,
286 struct pipeline_iospec *s,
287 const char **err_msg);