summaryrefslogtreecommitdiffstats
path: root/include/regs.h
blob: 5312f607f69255864b1abc52fee332b52b24a37f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef _LIBNFTNL_REGS_INTERNAL_H_
#define _LIBNFTNL_REGS_INTERNAL_H_

enum nftnl_expr_type {
	NFT_EXPR_UNSPEC	= 0,
	NFT_EXPR_PAYLOAD,
	NFT_EXPR_META,
};

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 nftnl_regs {
	uint32_t		num_regs;
	struct nftnl_reg	*reg;
	uint64_t		genid;
};

#endif