21#define RTE_ACL_MAX_CATEGORIES 16
23#define RTE_ACL_RESULTS_MULTIPLIER (XMM_SIZE / sizeof(uint32_t))
25#define RTE_ACL_MAX_LEVELS 64
26#define RTE_ACL_MAX_FIELDS 64
28union rte_acl_field_types {
36 RTE_ACL_FIELD_TYPE_MASK = 0,
37 RTE_ACL_FIELD_TYPE_RANGE,
38 RTE_ACL_FIELD_TYPE_BITMASK
77 union rte_acl_field_types
value;
89 RTE_ACL_TYPE_SHIFT = 29,
90 RTE_ACL_MAX_INDEX =
RTE_LEN2MASK(RTE_ACL_TYPE_SHIFT, uint32_t),
91 RTE_ACL_MAX_PRIORITY = RTE_ACL_MAX_INDEX,
92 RTE_ACL_MIN_PRIORITY = 1,
95#define RTE_ACL_MASKLEN_TO_BITMASK(v, s) \
96((v) == 0 ? (v) : (typeof(v))((uint64_t)-1 << ((s) * CHAR_BIT - (v))))
112#define RTE_ACL_RULE_DEF(name, fld_num) struct name {\
113 struct rte_acl_rule_data data; \
114 struct rte_acl_field field[fld_num]; \
119#define RTE_ACL_RULE_SZ(fld_num) \
120 (sizeof(struct rte_acl_rule) + sizeof(struct rte_acl_field) * (fld_num))
124#define RTE_ACL_NAMESIZE 32
243 RTE_ACL_CLASSIFY_DEFAULT = 0,
284 const uint8_t **data,
285 uint32_t *results, uint32_t num,
286 uint32_t categories);
324 const uint8_t **data,
325 uint32_t *results, uint32_t num,
344rte_acl_set_ctx_classify(
struct rte_acl_ctx *ctx,
void rte_acl_list_dump(void)
void rte_acl_dump(const struct rte_acl_ctx *ctx)
int rte_acl_add_rules(struct rte_acl_ctx *ctx, const struct rte_acl_rule *rules, uint32_t num)
void rte_acl_reset(struct rte_acl_ctx *ctx)
void rte_acl_reset_rules(struct rte_acl_ctx *ctx)
@ RTE_ACL_CLASSIFY_SCALAR
@ RTE_ACL_CLASSIFY_AVX512X32
@ RTE_ACL_CLASSIFY_AVX512X16
@ RTE_ACL_CLASSIFY_ALTIVEC
void rte_acl_free(struct rte_acl_ctx *ctx)
int rte_acl_classify(const struct rte_acl_ctx *ctx, const uint8_t **data, uint32_t *results, uint32_t num, uint32_t categories)
struct rte_acl_ctx struct rte_acl_ctx * rte_acl_find_existing(const char *name)
struct rte_acl_ctx * rte_acl_create(const struct rte_acl_param *param) __rte_malloc __rte_dealloc(rte_acl_free
#define RTE_ACL_RULE_DEF(name, fld_num)
int rte_acl_build(struct rte_acl_ctx *ctx, const struct rte_acl_config *cfg)
#define __rte_dealloc(dealloc, argno)
#define RTE_LEN2MASK(ln, tp)
struct rte_acl_field_def defs[RTE_ACL_MAX_FIELDS]
union rte_acl_field_types mask_range
union rte_acl_field_types value