Commit | Line | Data |
---|---|---|
96518518 PM |
1 | #ifndef _NET_NF_TABLES_CORE_H |
2 | #define _NET_NF_TABLES_CORE_H | |
3 | ||
5eccdfaa JP |
4 | int nf_tables_core_module_init(void); |
5 | void nf_tables_core_module_exit(void); | |
96518518 | 6 | |
5eccdfaa JP |
7 | int nft_immediate_module_init(void); |
8 | void nft_immediate_module_exit(void); | |
96518518 | 9 | |
cb7dbfd0 PM |
10 | struct nft_cmp_fast_expr { |
11 | u32 data; | |
12 | enum nft_registers sreg:8; | |
13 | u8 len; | |
14 | }; | |
15 | ||
b855d416 PM |
16 | /* Calculate the mask for the nft_cmp_fast expression. On big endian the |
17 | * mask needs to include the *upper* bytes when interpreting that data as | |
18 | * something smaller than the full u32, therefore a cpu_to_le32 is done. | |
19 | */ | |
20 | static inline u32 nft_cmp_fast_mask(unsigned int len) | |
21 | { | |
22 | return cpu_to_le32(~0U >> (FIELD_SIZEOF(struct nft_cmp_fast_expr, | |
23 | data) * BITS_PER_BYTE - len)); | |
24 | } | |
25 | ||
cb7dbfd0 PM |
26 | extern const struct nft_expr_ops nft_cmp_fast_ops; |
27 | ||
5eccdfaa JP |
28 | int nft_cmp_module_init(void); |
29 | void nft_cmp_module_exit(void); | |
96518518 | 30 | |
5eccdfaa JP |
31 | int nft_lookup_module_init(void); |
32 | void nft_lookup_module_exit(void); | |
96518518 | 33 | |
22fe54d5 PM |
34 | int nft_dynset_module_init(void); |
35 | void nft_dynset_module_exit(void); | |
36 | ||
5eccdfaa JP |
37 | int nft_bitwise_module_init(void); |
38 | void nft_bitwise_module_exit(void); | |
96518518 | 39 | |
5eccdfaa JP |
40 | int nft_byteorder_module_init(void); |
41 | void nft_byteorder_module_exit(void); | |
96518518 | 42 | |
c29b72e0 PM |
43 | struct nft_payload { |
44 | enum nft_payload_bases base:8; | |
45 | u8 offset; | |
46 | u8 len; | |
47 | enum nft_registers dreg:8; | |
48 | }; | |
49 | ||
7ec3f7b4 PM |
50 | struct nft_payload_set { |
51 | enum nft_payload_bases base:8; | |
52 | u8 offset; | |
53 | u8 len; | |
54 | enum nft_registers sreg:8; | |
55 | u8 csum_type; | |
56 | u8 csum_offset; | |
57 | }; | |
58 | ||
c29b72e0 | 59 | extern const struct nft_expr_ops nft_payload_fast_ops; |
e639f7ab | 60 | extern struct static_key_false nft_trace_enabled; |
c29b72e0 | 61 | |
5eccdfaa JP |
62 | int nft_payload_module_init(void); |
63 | void nft_payload_module_exit(void); | |
96518518 PM |
64 | |
65 | #endif /* _NET_NF_TABLES_CORE_H */ |