20 #define RTE_ACL_MAX_CATEGORIES 16
22 #define RTE_ACL_RESULTS_MULTIPLIER (XMM_SIZE / sizeof(uint32_t))
24 #define RTE_ACL_MAX_LEVELS 64
25 #define RTE_ACL_MAX_FIELDS 64
27 union rte_acl_field_types {
35 RTE_ACL_FIELD_TYPE_MASK = 0,
36 RTE_ACL_FIELD_TYPE_RANGE,
37 RTE_ACL_FIELD_TYPE_BITMASK
76 union rte_acl_field_types
value;
88 RTE_ACL_TYPE_SHIFT = 29,
89 RTE_ACL_MAX_INDEX =
RTE_LEN2MASK(RTE_ACL_TYPE_SHIFT, uint32_t),
90 RTE_ACL_MAX_PRIORITY = RTE_ACL_MAX_INDEX,
91 RTE_ACL_MIN_PRIORITY = 0,
94 #define RTE_ACL_MASKLEN_TO_BITMASK(v, s) \
95 ((v) == 0 ? (v) : (typeof(v))((uint64_t)-1 << ((s) * CHAR_BIT - (v))))
111 #define RTE_ACL_RULE_DEF(name, fld_num) struct name {\
112 struct rte_acl_rule_data data; \
113 struct rte_acl_field field[fld_num]; \
118 #define RTE_ACL_RULE_SZ(fld_num) \
119 (sizeof(struct rte_acl_rule) + sizeof(struct rte_acl_field) * (fld_num))
123 #define RTE_ACL_NAMESIZE 32
238 RTE_ACL_CLASSIFY_DEFAULT = 0,
278 const uint8_t **data,
279 uint32_t *results, uint32_t num,
280 uint32_t categories);
318 const uint8_t **data,
319 uint32_t *results, uint32_t num,
336 rte_acl_set_ctx_classify(
struct rte_acl_ctx *ctx,