Lines Matching refs:node

72 	uint32_t                  node;  member
96 struct rte_acl_node *node, int index);
156 struct rte_acl_node *node; in acl_alloc_node() local
159 node = context->node_free_list; in acl_alloc_node()
160 context->node_free_list = node->next; in acl_alloc_node()
161 memset(node, 0, sizeof(struct rte_acl_node)); in acl_alloc_node()
163 node = acl_build_alloc(context, sizeof(struct rte_acl_node), 1); in acl_alloc_node()
166 if (node != NULL) { in acl_alloc_node()
167 node->num_ptrs = 0; in acl_alloc_node()
168 node->level = level; in acl_alloc_node()
169 node->node_type = RTE_ACL_NODE_UNDEFINED; in acl_alloc_node()
170 node->node_index = RTE_ACL_NODE_UNDEFINED; in acl_alloc_node()
172 node->id = context->node_id++; in acl_alloc_node()
174 return node; in acl_alloc_node()
182 struct rte_acl_node *node) in acl_free_node() argument
186 if (node->prev != NULL) in acl_free_node()
187 node->prev->next = NULL; in acl_free_node()
188 for (n = 0; n < node->num_ptrs; n++) in acl_free_node()
189 acl_deref_ptr(context, node, n); in acl_free_node()
192 if (node->mrt != NULL) { in acl_free_node()
194 node->mrt); in acl_free_node()
195 node->mrt = NULL; in acl_free_node()
199 if (node->ptrs != NULL) { in acl_free_node()
201 node->max_ptrs * sizeof(struct rte_acl_ptr_set), in acl_free_node()
202 node->ptrs); in acl_free_node()
203 node->ptrs = NULL; in acl_free_node()
208 node->next = context->node_free_list; in acl_free_node()
209 context->node_free_list = node; in acl_free_node()
248 struct rte_acl_node *node, in acl_add_ptr() argument
258 for (n = 0; n < node->num_ptrs; n++) { in acl_add_ptr()
259 if (node->ptrs[n].ptr != NULL) { in acl_add_ptr()
260 if (node->ptrs[n].ptr == ptr) { in acl_add_ptr()
261 acl_include(&node->ptrs[n].values, bits, -1); in acl_add_ptr()
262 acl_include(&node->values, bits, -1); in acl_add_ptr()
269 if (node->num_ptrs >= node->max_ptrs) { in acl_add_ptr()
271 num_ptrs = node->max_ptrs + ACL_PTR_ALLOC; in acl_add_ptr()
275 if (node->ptrs != NULL) { in acl_add_ptr()
276 memcpy(ptrs, node->ptrs, in acl_add_ptr()
277 node->num_ptrs * sizeof(*ptrs)); in acl_add_ptr()
278 acl_build_free(context, node->max_ptrs * sizeof(*ptrs), in acl_add_ptr()
279 node->ptrs); in acl_add_ptr()
281 node->ptrs = ptrs; in acl_add_ptr()
282 node->max_ptrs = num_ptrs; in acl_add_ptr()
286 for (n = node->min_add; n < node->max_ptrs; n++) { in acl_add_ptr()
287 if (node->ptrs[n].ptr == NULL) { in acl_add_ptr()
288 node->ptrs[n].ptr = ptr; in acl_add_ptr()
289 acl_include(&node->ptrs[n].values, bits, 0); in acl_add_ptr()
290 acl_include(&node->values, bits, -1); in acl_add_ptr()
293 if (node->num_ptrs <= n) in acl_add_ptr()
294 node->num_ptrs = n + 1; in acl_add_ptr()
308 struct rte_acl_node *node, in acl_add_ptr_range() argument
325 return acl_add_ptr(context, root, node, &bitset); in acl_add_ptr_range()
388 acl_dup_node(struct acl_build_context *context, struct rte_acl_node *node) in acl_dup_node() argument
393 next = acl_alloc_node(context, node->level); in acl_dup_node()
396 if (node->num_ptrs > 0) { in acl_dup_node()
398 node->max_ptrs, in acl_dup_node()
400 next->max_ptrs = node->max_ptrs; in acl_dup_node()
404 for (n = 0; n < node->num_ptrs; n++) { in acl_dup_node()
405 if (node->ptrs[n].ptr != NULL) { in acl_dup_node()
406 next->ptrs[n].ptr = node->ptrs[n].ptr; in acl_dup_node()
409 &node->ptrs[n].values, -1); in acl_dup_node()
413 next->num_ptrs = node->num_ptrs; in acl_dup_node()
416 if (node->match_flag == 0) in acl_dup_node()
421 memcpy(next->mrt, node->mrt, sizeof(*next->mrt)); in acl_dup_node()
425 acl_include(&next->values, &node->values, -1); in acl_dup_node()
427 node->next = next; in acl_dup_node()
428 next->prev = node; in acl_dup_node()
438 struct rte_acl_node *node, int index) in acl_deref_ptr() argument
443 if (node != NULL && node->ptrs[index].ptr != NULL) { in acl_deref_ptr()
444 ref_node = node->ptrs[index].ptr; in acl_deref_ptr()
784 struct rte_acl_node *node, *prev; in acl_gen_full_range() local
789 node = acl_alloc_node(context, level++); in acl_gen_full_range()
790 acl_add_ptr_range(context, prev, node, 0, UINT8_MAX); in acl_gen_full_range()
791 prev = node; in acl_gen_full_range()
800 struct rte_acl_node *node; in acl_gen_range_mdl() local
802 node = acl_alloc_node(context, level++); in acl_gen_range_mdl()
803 acl_add_ptr_range(context, root, node, lo, hi); in acl_gen_range_mdl()
804 acl_gen_full_range(context, node, end, size - 1, level); in acl_gen_range_mdl()
811 struct rte_acl_node *node; in acl_gen_range_low() local
820 node = acl_alloc_node(context, level++); in acl_gen_range_low()
821 acl_add_ptr_range(context, root, node, lo[n], lo[n]); in acl_gen_range_low()
824 acl_gen_range_low(context, node, end, lo, n, level); in acl_gen_range_low()
828 acl_gen_range_mdl(context, node, end, lo[n - 1] + 1, UINT8_MAX, in acl_gen_range_low()
836 struct rte_acl_node *node; in acl_gen_range_high() local
845 node = acl_alloc_node(context, level++); in acl_gen_range_high()
846 acl_add_ptr_range(context, root, node, hi[n], hi[n]); in acl_gen_range_high()
849 acl_gen_range_high(context, node, end, hi, n, level); in acl_gen_range_high()
853 acl_gen_range_mdl(context, node, end, 0, hi[n - 1] - 1, in acl_gen_range_high()
864 struct rte_acl_node *node, *prev, *root; in acl_gen_range_trie() local
877 node = acl_alloc_node(context, level++); in acl_gen_range_trie()
878 acl_add_ptr_range(context, prev, node, lo[n], hi[n]); in acl_gen_range_trie()
879 prev = node; in acl_gen_range_trie()
922 struct rte_acl_node *node, *prev; in acl_gen_mask_trie() local
931 node = acl_alloc_node(context, level++); in acl_gen_mask_trie()
933 acl_add_ptr(context, prev, node, &bits); in acl_gen_mask_trie()
934 prev = node; in acl_gen_mask_trie()