#ifndef _LIBNFTNL_REGS_INTERNAL_H_ #define _LIBNFTNL_REGS_INTERNAL_H_ 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 { enum nftnl_expr_type type; uint32_t len; uint64_t genid; uint8_t word; union { struct { enum nft_meta_keys key; } meta; struct { 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; }; }; struct nftnl_regs { uint32_t num_regs; struct nftnl_reg *reg; uint64_t genid; }; #endif