File Index
Files and directories
Sign in
FILE

nfnetlink_hook.h

File preview with syntax highlighting.

linux-6.19.14/include/uapi/linux/netfilter/nfnetlink_hook.h C
 1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 2#ifndef _NFNL_HOOK_H_
 3#define _NFNL_HOOK_H_
 4
 5enum nfnl_hook_msg_types {
 6	NFNL_MSG_HOOK_GET,
 7	NFNL_MSG_HOOK_MAX,
 8};
 9
10/**
11 * enum nfnl_hook_attributes - netfilter hook netlink attributes
12 *
13 * @NFNLA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
14 * @NFNLA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
15 * @NFNLA_HOOK_DEV: netdevice name (NLA_STRING)
16 * @NFNLA_HOOK_FUNCTION_NAME: hook function name (NLA_STRING)
17 * @NFNLA_HOOK_MODULE_NAME: kernel module that registered this hook (NLA_STRING)
18 * @NFNLA_HOOK_CHAIN_INFO: basechain hook metadata (NLA_NESTED)
19 */
20enum nfnl_hook_attributes {
21	NFNLA_HOOK_UNSPEC,
22	NFNLA_HOOK_HOOKNUM,
23	NFNLA_HOOK_PRIORITY,
24	NFNLA_HOOK_DEV,
25	NFNLA_HOOK_FUNCTION_NAME,
26	NFNLA_HOOK_MODULE_NAME,
27	NFNLA_HOOK_CHAIN_INFO,
28	__NFNLA_HOOK_MAX
29};
30#define NFNLA_HOOK_MAX		(__NFNLA_HOOK_MAX - 1)
31
32/**
33 * enum nfnl_hook_chain_info_attributes - chain description
34 *
35 * @NFNLA_HOOK_INFO_DESC: nft chain and table name (NLA_NESTED)
36 * @NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32)
37 *
38 * NFNLA_HOOK_INFO_DESC depends on NFNLA_HOOK_INFO_TYPE value:
39 *   NFNL_HOOK_TYPE_NFTABLES: enum nft_table_attributes
40 *   NFNL_HOOK_TYPE_BPF: enum nfnl_hook_bpf_attributes
41 */
42enum nfnl_hook_chain_info_attributes {
43	NFNLA_HOOK_INFO_UNSPEC,
44	NFNLA_HOOK_INFO_DESC,
45	NFNLA_HOOK_INFO_TYPE,
46	__NFNLA_HOOK_INFO_MAX,
47};
48#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1)
49
50enum nfnl_hook_chain_desc_attributes {
51	NFNLA_CHAIN_UNSPEC,
52	NFNLA_CHAIN_TABLE,
53	NFNLA_CHAIN_FAMILY,
54	NFNLA_CHAIN_NAME,
55	__NFNLA_CHAIN_MAX,
56};
57#define NFNLA_CHAIN_MAX (__NFNLA_CHAIN_MAX - 1)
58
59/**
60 * enum nfnl_hook_chaintype - chain type
61 *
62 * @NFNL_HOOK_TYPE_NFTABLES: nf_tables base chain
63 * @NFNL_HOOK_TYPE_BPF: bpf program
64 * @NFNL_HOOK_TYPE_NFT_FLOWTABLE: nf_tables flowtable
65 */
66enum nfnl_hook_chaintype {
67	NFNL_HOOK_TYPE_NFTABLES = 0x1,
68	NFNL_HOOK_TYPE_BPF,
69	NFNL_HOOK_TYPE_NFT_FLOWTABLE,
70};
71
72/**
73 * enum nfnl_hook_bpf_attributes - bpf prog description
74 *
75 * @NFNLA_HOOK_BPF_ID: bpf program id (NLA_U32)
76 */
77enum nfnl_hook_bpf_attributes {
78	NFNLA_HOOK_BPF_UNSPEC,
79	NFNLA_HOOK_BPF_ID,
80	__NFNLA_HOOK_BPF_MAX,
81};
82#define NFNLA_HOOK_BPF_MAX (__NFNLA_HOOK_BPF_MAX - 1)
83
84#endif /* _NFNL_HOOK_H */
~/ Read-only file preview.