Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | #ifndef _NFT_META_H_ |
3 | #define _NFT_META_H_ |
4 | |
5 | #include <net/netfilter/nf_tables.h> |
6 | |
7 | struct nft_meta { |
8 | enum nft_meta_keys key:8; |
9 | u8 len; |
10 | union { |
11 | u8 dreg; |
12 | u8 sreg; |
13 | }; |
14 | }; |
15 | |
16 | extern const struct nla_policy nft_meta_policy[]; |
17 | |
18 | int nft_meta_get_init(const struct nft_ctx *ctx, |
19 | const struct nft_expr *expr, |
20 | const struct nlattr * const tb[]); |
21 | |
22 | int nft_meta_set_init(const struct nft_ctx *ctx, |
23 | const struct nft_expr *expr, |
24 | const struct nlattr * const tb[]); |
25 | |
26 | int nft_meta_get_dump(struct sk_buff *skb, |
27 | const struct nft_expr *expr, bool reset); |
28 | |
29 | int nft_meta_set_dump(struct sk_buff *skb, |
30 | const struct nft_expr *expr, bool reset); |
31 | |
32 | void nft_meta_get_eval(const struct nft_expr *expr, |
33 | struct nft_regs *regs, |
34 | const struct nft_pktinfo *pkt); |
35 | |
36 | void nft_meta_set_eval(const struct nft_expr *expr, |
37 | struct nft_regs *regs, |
38 | const struct nft_pktinfo *pkt); |
39 | |
40 | void nft_meta_set_destroy(const struct nft_ctx *ctx, |
41 | const struct nft_expr *expr); |
42 | |
43 | int nft_meta_set_validate(const struct nft_ctx *ctx, |
44 | const struct nft_expr *expr, |
45 | const struct nft_data **data); |
46 | |
47 | bool nft_meta_get_reduce(struct nft_regs_track *track, |
48 | const struct nft_expr *expr); |
49 | |
50 | struct nft_inner_tun_ctx; |
51 | void nft_meta_inner_eval(const struct nft_expr *expr, |
52 | struct nft_regs *regs, const struct nft_pktinfo *pkt, |
53 | struct nft_inner_tun_ctx *tun_ctx); |
54 | |
55 | #endif |
56 |
Warning: This file is not a C or C++ file. It does not have highlighting.