From 373445dc54eda77fc7b64fddf5e7d35536df51b0 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Sat, 12 Dec 2020 20:17:31 +0100 Subject: src: add NFTNL_EXPR_DYNSET_EXPRESSIONS NFTNL_EXPR_DYNSET_EXPR defines the stateful expression type that an element stores when added from the packet path. This patch adds support for the set expression list, which generalizes NFTNL_EXPR_DYNSET_EXPR. This patch also adds nftnl_expr_add_expr() to add new expressions to elements and nftnl_set_expr_expr_foreach() to iterate over the list of expressions. Signed-off-by: Pablo Neira Ayuso --- include/libnftnl/expr.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/libnftnl') diff --git a/include/libnftnl/expr.h b/include/libnftnl/expr.h index c2b2d86..13c55e7 100644 --- a/include/libnftnl/expr.h +++ b/include/libnftnl/expr.h @@ -38,6 +38,12 @@ const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type); void nftnl_expr_build_payload(struct nlmsghdr *nlh, struct nftnl_expr *expr); +/* For dynset expressions. */ +void nftnl_expr_add_expr(struct nftnl_expr *expr, uint32_t type, struct nftnl_expr *e); +int nftnl_expr_expr_foreach(const struct nftnl_expr *e, + int (*cb)(struct nftnl_expr *e, void *data), + void *data); + int nftnl_expr_snprintf(char *buf, size_t buflen, const struct nftnl_expr *expr, uint32_t type, uint32_t flags); int nftnl_expr_fprintf(FILE *fp, const struct nftnl_expr *expr, uint32_t type, uint32_t flags); @@ -167,6 +173,7 @@ enum { NFTNL_EXPR_DYNSET_SET_NAME, NFTNL_EXPR_DYNSET_SET_ID, NFTNL_EXPR_DYNSET_EXPR, + NFTNL_EXPR_DYNSET_EXPRESSIONS, }; enum { -- cgit v1.2.3