summaryrefslogtreecommitdiffstats
path: root/include/set.h
blob: 55018b6b9ba9538ae1207d1408508ebd1f003d92 (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
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef _LIBNFTNL_SET_INTERNAL_H_
#define _LIBNFTNL_SET_INTERNAL_H_

#include <linux/netfilter/nf_tables.h>

struct nftnl_set {
	struct list_head	head;
	struct hlist_node	hnode;

	uint32_t		family;
	uint32_t		set_flags;
	const char		*table;
	const char		*name;
	uint64_t		handle;
	uint32_t		key_type;
	uint32_t		key_len;
	uint32_t		data_type;
	uint32_t		data_len;
	uint32_t		obj_type;
	struct {
		void		*data;
		uint32_t	len;
	} user;
	uint32_t		id;
	enum nft_set_policies	policy;
	struct {
		uint32_t	size;
		uint8_t		field_len[NFT_REG32_COUNT];
		uint8_t		field_count;
	} desc;
	struct list_head	element_list;

	uint32_t		flags;
	uint32_t		gc_interval;
	uint64_t		timeout;
	struct list_head	expr_list;
};

struct nftnl_set_list;
struct nftnl_expr;
int nftnl_set_lookup_id(struct nftnl_expr *e, struct nftnl_set_list *set_list,
		      uint32_t *set_id);

#endif