forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
netfilter: add new hook nfnl subsystem
This nfnl subsystem allows to dump the list of all active netfiler hooks, e.g. defrag, conntrack, nf/ip/arp/ip6tables and so on. This helps to see what kind of features are currently enabled in the network stack. Sample output from nft tool using this infra: $ nft list hook ip input family ip hook input { +0000000010 nft_do_chain_inet [nf_tables] # nft table firewalld INPUT +0000000100 nf_nat_ipv4_local_in [nf_nat] +2147483647 ipv4_confirm [nf_conntrack] } Signed-off-by: Florian Westphal <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]>
- Loading branch information
Showing
6 changed files
with
443 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
#ifndef _NFNL_HOOK_H_ | ||
#define _NFNL_HOOK_H_ | ||
|
||
enum nfnl_hook_msg_types { | ||
NFNL_MSG_HOOK_GET, | ||
NFNL_MSG_HOOK_MAX, | ||
}; | ||
|
||
/** | ||
* enum nfnl_hook_attributes - netfilter hook netlink attributes | ||
* | ||
* @NFNLA_HOOK_HOOKNUM: netfilter hook number (NLA_U32) | ||
* @NFNLA_HOOK_PRIORITY: netfilter hook priority (NLA_U32) | ||
* @NFNLA_HOOK_DEV: netdevice name (NLA_STRING) | ||
* @NFNLA_HOOK_FUNCTION_NAME: hook function name (NLA_STRING) | ||
* @NFNLA_HOOK_MODULE_NAME: kernel module that registered this hook (NLA_STRING) | ||
* @NFNLA_HOOK_CHAIN_INFO: basechain hook metadata (NLA_NESTED) | ||
*/ | ||
enum nfnl_hook_attributes { | ||
NFNLA_HOOK_UNSPEC, | ||
NFNLA_HOOK_HOOKNUM, | ||
NFNLA_HOOK_PRIORITY, | ||
NFNLA_HOOK_DEV, | ||
NFNLA_HOOK_FUNCTION_NAME, | ||
NFNLA_HOOK_MODULE_NAME, | ||
NFNLA_HOOK_CHAIN_INFO, | ||
__NFNLA_HOOK_MAX | ||
}; | ||
#define NFNLA_HOOK_MAX (__NFNLA_HOOK_MAX - 1) | ||
|
||
/** | ||
* enum nfnl_hook_chain_info_attributes - chain description | ||
* | ||
* NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED) | ||
* NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32) | ||
*/ | ||
enum nfnl_hook_chain_info_attributes { | ||
NFNLA_HOOK_INFO_UNSPEC, | ||
NFNLA_HOOK_INFO_DESC, | ||
NFNLA_HOOK_INFO_TYPE, | ||
__NFNLA_HOOK_INFO_MAX, | ||
}; | ||
#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1) | ||
|
||
/** | ||
* enum nfnl_hook_chaintype - chain type | ||
* | ||
* @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain | ||
*/ | ||
enum nfnl_hook_chaintype { | ||
NFNL_HOOK_TYPE_NFTABLES = 0x1, | ||
}; | ||
|
||
#endif /* _NFNL_HOOK_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.