summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJose M. Guisado Gomez <guigom@riseup.net>2022-05-15 18:06:07 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2022-05-15 21:59:05 +0200
commit7576202723d145c042b610ccc08fd775e883f912 (patch)
tree9b42db31ec4e96551f9326f5beab59abe9cea221 /include
parente549f5b3239c19f78af2f7c7a582fe5616403ca8 (diff)
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 <guigom@riseup.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include')
-rw-r--r--include/regs.h38
1 files changed, 38 insertions, 0 deletions
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;
};
};