| 833 | } |
| 834 | |
| 835 | static void |
| 836 | acl_gen_range_high(struct acl_build_context *context, struct rte_acl_node *root, |
| 837 | struct rte_acl_node *end, const uint8_t *hi, int size, int level) |
| 838 | { |
| 839 | struct rte_acl_node *node; |
| 840 | uint32_t n; |
| 841 | |
| 842 | n = size - 1; |
| 843 | if (n == 0) { |
| 844 | acl_add_ptr_range(context, root, end, 0, hi[0]); |
| 845 | return; |
| 846 | } |
| 847 | |
| 848 | node = acl_alloc_node(context, level++); |
| 849 | acl_add_ptr_range(context, root, node, hi[n], hi[n]); |
| 850 | |
| 851 | /* generate upper-bound sub-trie */ |
| 852 | acl_gen_range_high(context, node, end, hi, n, level); |
| 853 | |
| 854 | /* generate middle sub-trie */ |
| 855 | if (n > 1 && hi[n - 1] != 0) |
| 856 | acl_gen_range_mdl(context, node, end, 0, hi[n - 1] - 1, |
| 857 | n, level); |
| 858 | } |
| 859 | |
| 860 | static struct rte_acl_node * |
| 861 | acl_gen_range_trie(struct acl_build_context *context, |
no test coverage detected