Lines Matching refs:node
78 uint32_t node; member
102 struct rte_acl_node *node, int index);
162 struct rte_acl_node *node; in acl_alloc_node() local
165 node = context->node_free_list; in acl_alloc_node()
166 context->node_free_list = node->next; in acl_alloc_node()
167 memset(node, 0, sizeof(struct rte_acl_node)); in acl_alloc_node()
169 node = acl_build_alloc(context, sizeof(struct rte_acl_node), 1); in acl_alloc_node()
172 if (node != NULL) { in acl_alloc_node()
173 node->num_ptrs = 0; in acl_alloc_node()
174 node->level = level; in acl_alloc_node()
175 node->node_type = RTE_ACL_NODE_UNDEFINED; in acl_alloc_node()
176 node->node_index = RTE_ACL_NODE_UNDEFINED; in acl_alloc_node()
178 node->id = context->node_id++; in acl_alloc_node()
180 return node; in acl_alloc_node()
188 struct rte_acl_node *node) in acl_free_node() argument
192 if (node->prev != NULL) in acl_free_node()
193 node->prev->next = NULL; in acl_free_node()
194 for (n = 0; n < node->num_ptrs; n++) in acl_free_node()
195 acl_deref_ptr(context, node, n); in acl_free_node()
198 if (node->mrt != NULL) { in acl_free_node()
200 node->mrt); in acl_free_node()
201 node->mrt = NULL; in acl_free_node()
205 if (node->ptrs != NULL) { in acl_free_node()
207 node->max_ptrs * sizeof(struct rte_acl_ptr_set), in acl_free_node()
208 node->ptrs); in acl_free_node()
209 node->ptrs = NULL; in acl_free_node()
214 node->next = context->node_free_list; in acl_free_node()
215 context->node_free_list = node; in acl_free_node()
254 struct rte_acl_node *node, in acl_add_ptr() argument
264 for (n = 0; n < node->num_ptrs; n++) { in acl_add_ptr()
265 if (node->ptrs[n].ptr != NULL) { in acl_add_ptr()
266 if (node->ptrs[n].ptr == ptr) { in acl_add_ptr()
267 acl_include(&node->ptrs[n].values, bits, -1); in acl_add_ptr()
268 acl_include(&node->values, bits, -1); in acl_add_ptr()
275 if (node->num_ptrs >= node->max_ptrs) { in acl_add_ptr()
277 num_ptrs = node->max_ptrs + ACL_PTR_ALLOC; in acl_add_ptr()
281 if (node->ptrs != NULL) { in acl_add_ptr()
282 memcpy(ptrs, node->ptrs, in acl_add_ptr()
283 node->num_ptrs * sizeof(*ptrs)); in acl_add_ptr()
284 acl_build_free(context, node->max_ptrs * sizeof(*ptrs), in acl_add_ptr()
285 node->ptrs); in acl_add_ptr()
287 node->ptrs = ptrs; in acl_add_ptr()
288 node->max_ptrs = num_ptrs; in acl_add_ptr()
292 for (n = node->min_add; n < node->max_ptrs; n++) { in acl_add_ptr()
293 if (node->ptrs[n].ptr == NULL) { in acl_add_ptr()
294 node->ptrs[n].ptr = ptr; in acl_add_ptr()
295 acl_include(&node->ptrs[n].values, bits, 0); in acl_add_ptr()
296 acl_include(&node->values, bits, -1); in acl_add_ptr()
299 if (node->num_ptrs <= n) in acl_add_ptr()
300 node->num_ptrs = n + 1; in acl_add_ptr()
314 struct rte_acl_node *node, in acl_add_ptr_range() argument
331 return acl_add_ptr(context, root, node, &bitset); in acl_add_ptr_range()
394 acl_dup_node(struct acl_build_context *context, struct rte_acl_node *node) in acl_dup_node() argument
399 next = acl_alloc_node(context, node->level); in acl_dup_node()
402 if (node->num_ptrs > 0) { in acl_dup_node()
404 node->max_ptrs, in acl_dup_node()
406 next->max_ptrs = node->max_ptrs; in acl_dup_node()
410 for (n = 0; n < node->num_ptrs; n++) { in acl_dup_node()
411 if (node->ptrs[n].ptr != NULL) { in acl_dup_node()
412 next->ptrs[n].ptr = node->ptrs[n].ptr; in acl_dup_node()
415 &node->ptrs[n].values, -1); in acl_dup_node()
419 next->num_ptrs = node->num_ptrs; in acl_dup_node()
422 if (node->match_flag == 0) in acl_dup_node()
427 memcpy(next->mrt, node->mrt, sizeof(*next->mrt)); in acl_dup_node()
431 acl_include(&next->values, &node->values, -1); in acl_dup_node()
433 node->next = next; in acl_dup_node()
434 next->prev = node; in acl_dup_node()
444 struct rte_acl_node *node, int index) in acl_deref_ptr() argument
449 if (node != NULL && node->ptrs[index].ptr != NULL) { in acl_deref_ptr()
450 ref_node = node->ptrs[index].ptr; in acl_deref_ptr()
790 struct rte_acl_node *node, *prev; in acl_gen_full_range() local
795 node = acl_alloc_node(context, level++); in acl_gen_full_range()
796 acl_add_ptr_range(context, prev, node, 0, UINT8_MAX); in acl_gen_full_range()
797 prev = node; in acl_gen_full_range()
806 struct rte_acl_node *node; in acl_gen_range_mdl() local
808 node = acl_alloc_node(context, level++); in acl_gen_range_mdl()
809 acl_add_ptr_range(context, root, node, lo, hi); in acl_gen_range_mdl()
810 acl_gen_full_range(context, node, end, size - 1, level); in acl_gen_range_mdl()
817 struct rte_acl_node *node; in acl_gen_range_low() local
826 node = acl_alloc_node(context, level++); in acl_gen_range_low()
827 acl_add_ptr_range(context, root, node, lo[n], lo[n]); in acl_gen_range_low()
830 acl_gen_range_low(context, node, end, lo, n, level); in acl_gen_range_low()
834 acl_gen_range_mdl(context, node, end, lo[n - 1] + 1, UINT8_MAX, in acl_gen_range_low()
842 struct rte_acl_node *node; in acl_gen_range_high() local
851 node = acl_alloc_node(context, level++); in acl_gen_range_high()
852 acl_add_ptr_range(context, root, node, hi[n], hi[n]); in acl_gen_range_high()
855 acl_gen_range_high(context, node, end, hi, n, level); in acl_gen_range_high()
859 acl_gen_range_mdl(context, node, end, 0, hi[n - 1] - 1, in acl_gen_range_high()
870 struct rte_acl_node *node, *prev, *root; in acl_gen_range_trie() local
883 node = acl_alloc_node(context, level++); in acl_gen_range_trie()
884 acl_add_ptr_range(context, prev, node, lo[n], hi[n]); in acl_gen_range_trie()
885 prev = node; in acl_gen_range_trie()
928 struct rte_acl_node *node, *prev; in acl_gen_mask_trie() local
937 node = acl_alloc_node(context, level++); in acl_gen_mask_trie()
939 acl_add_ptr(context, prev, node, &bits); in acl_gen_mask_trie()
940 prev = node; in acl_gen_mask_trie()