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_FIB_H_ |
3 | #define _NFT_FIB_H_ |
4 | |
5 | #include <net/netfilter/nf_tables.h> |
6 | |
7 | struct nft_fib { |
8 | u8 dreg; |
9 | u8 result; |
10 | u32 flags; |
11 | }; |
12 | |
13 | extern const struct nla_policy nft_fib_policy[]; |
14 | |
15 | static inline bool |
16 | nft_fib_is_loopback(const struct sk_buff *skb, const struct net_device *in) |
17 | { |
18 | return skb->pkt_type == PACKET_LOOPBACK || in->flags & IFF_LOOPBACK; |
19 | } |
20 | |
21 | int nft_fib_dump(struct sk_buff *skb, const struct nft_expr *expr, bool reset); |
22 | int nft_fib_init(const struct nft_ctx *ctx, const struct nft_expr *expr, |
23 | const struct nlattr * const tb[]); |
24 | int nft_fib_validate(const struct nft_ctx *ctx, const struct nft_expr *expr, |
25 | const struct nft_data **data); |
26 | |
27 | |
28 | void nft_fib4_eval_type(const struct nft_expr *expr, struct nft_regs *regs, |
29 | const struct nft_pktinfo *pkt); |
30 | void nft_fib4_eval(const struct nft_expr *expr, struct nft_regs *regs, |
31 | const struct nft_pktinfo *pkt); |
32 | |
33 | void nft_fib6_eval_type(const struct nft_expr *expr, struct nft_regs *regs, |
34 | const struct nft_pktinfo *pkt); |
35 | void nft_fib6_eval(const struct nft_expr *expr, struct nft_regs *regs, |
36 | const struct nft_pktinfo *pkt); |
37 | |
38 | void nft_fib_store_result(void *reg, const struct nft_fib *priv, |
39 | const struct net_device *dev); |
40 | |
41 | bool nft_fib_reduce(struct nft_regs_track *track, |
42 | const struct nft_expr *expr); |
43 | #endif |
44 |
Warning: This file is not a C or C++ file. It does not have highlighting.