From 7576202723d145c042b610ccc08fd775e883f912 Mon Sep 17 00:00:00 2001 From: "Jose M. Guisado Gomez" Date: Sun, 15 May 2022 18:06:07 +0200 Subject: expr: extend support for dynamic register allocation Add expression support for: - ct - exthdr - fib - osf - rt - socket - xfrm to extend b9e00458b9f3 ("src: add dynamic register allocation infrastructure"). Joint work with Pablo. Signed-off-by: Jose M. Guisado Gomez Signed-off-by: Pablo Neira Ayuso --- include/regs.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'include') diff --git a/include/regs.h b/include/regs.h index 5312f60..dcbb0f4 100644 --- a/include/regs.h +++ b/include/regs.h @@ -5,6 +5,13 @@ enum nftnl_expr_type { NFT_EXPR_UNSPEC = 0, NFT_EXPR_PAYLOAD, NFT_EXPR_META, + NFT_EXPR_CT, + NFT_EXPR_EXTHDR, + NFT_EXPR_FIB, + NFT_EXPR_OSF, + NFT_EXPR_RT, + NFT_EXPR_XFRM, + NFT_EXPR_SOCKET, }; struct nftnl_reg { @@ -20,6 +27,37 @@ struct nftnl_reg { enum nft_payload_bases base; uint32_t offset; } payload; + struct { + enum nft_ct_keys key; + uint8_t dir; + } ct; + struct { + uint32_t offset; + uint32_t len; + uint8_t type; + uint32_t op; + uint32_t flags; + } exthdr; + struct { + uint32_t flags; + uint32_t result; + } fib; + struct { + uint8_t ttl; + uint32_t flags; + } osf; + struct { + enum nft_rt_keys key; + } rt; + struct { + enum nft_socket_keys key; + uint32_t level; + } socket; + struct { + enum nft_xfrm_keys key; + uint32_t spnum; + uint8_t dir; + } xfrm; }; }; -- cgit v1.2.3