diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2022-09-27 16:47:52 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2022-10-03 20:18:12 +0200 |
commit | 92a856554780c262f188acb4cdcee363bf6dd1bb (patch) | |
tree | e8e847cd28c19195ba83ca7cfc23d3c7923b82ba /filter/data.h | |
parent | da0b589e7bbcd8177702caa925063d36e7f316ec (diff) |
Filter: Add some minor functions for f_tree and EC
Add some supportive functions for f_tree and EC. These functions are used
by L3VPN code.
Diffstat (limited to 'filter/data.h')
-rw-r--r-- | filter/data.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/filter/data.h b/filter/data.h index c96856ce..051f0932 100644 --- a/filter/data.h +++ b/filter/data.h @@ -192,6 +192,7 @@ struct f_tree *f_new_tree(void); struct f_tree *build_tree(struct f_tree *); const struct f_tree *find_tree(const struct f_tree *t, const struct f_val *val); int same_tree(const struct f_tree *t0, const struct f_tree *t2); +int tree_node_count(const struct f_tree *t); void tree_format(const struct f_tree *t, buffer *buf); void tree_walk(const struct f_tree *t, void (*hook)(const struct f_tree *, void *), void *data); @@ -286,6 +287,10 @@ static inline int lclist_set_type(const struct f_tree *set) static inline int path_set_type(const struct f_tree *set) { return !set || set->from.type == T_INT; } +int clist_match_set(const struct adata *clist, const struct f_tree *set); +int eclist_match_set(const struct adata *list, const struct f_tree *set); +int lclist_match_set(const struct adata *list, const struct f_tree *set); + const struct adata *clist_filter(struct linpool *pool, const struct adata *list, const struct f_val *set, int pos); const struct adata *eclist_filter(struct linpool *pool, const struct adata *list, const struct f_val *set, int pos); const struct adata *lclist_filter(struct linpool *pool, const struct adata *list, const struct f_val *set, int pos); |