Commit 32511f8e authored by David S. Miller's avatar David S. Miller

Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next

Pablo Neira Ayuso says:

====================
Netfilter updates for net-next

The following patchset contains Netfilter updates for net-next:

1) Add two helper functions to release one table and hooks from
   the netns and netlink event path.

2) Add table ownership infrastructure, this new infrastructure allows
   users to bind a table (and its content) to a process through the
   netlink socket.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 96313e1d 6001a930
...@@ -1106,11 +1106,17 @@ struct nft_table { ...@@ -1106,11 +1106,17 @@ struct nft_table {
u16 family:6, u16 family:6,
flags:8, flags:8,
genmask:2; genmask:2;
u32 nlpid;
char *name; char *name;
u16 udlen; u16 udlen;
u8 *udata; u8 *udata;
}; };
static inline bool nft_table_has_owner(const struct nft_table *table)
{
return table->flags & NFT_TABLE_F_OWNER;
}
static inline bool nft_base_chain_netdev(int family, u32 hooknum) static inline bool nft_base_chain_netdev(int family, u32 hooknum)
{ {
return family == NFPROTO_NETDEV || return family == NFPROTO_NETDEV ||
......
...@@ -164,7 +164,10 @@ enum nft_hook_attributes { ...@@ -164,7 +164,10 @@ enum nft_hook_attributes {
*/ */
enum nft_table_flags { enum nft_table_flags {
NFT_TABLE_F_DORMANT = 0x1, NFT_TABLE_F_DORMANT = 0x1,
NFT_TABLE_F_OWNER = 0x2,
}; };
#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT | \
NFT_TABLE_F_OWNER)
/** /**
* enum nft_table_attributes - nf_tables table netlink attributes * enum nft_table_attributes - nf_tables table netlink attributes
...@@ -173,6 +176,7 @@ enum nft_table_flags { ...@@ -173,6 +176,7 @@ enum nft_table_flags {
* @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32)
* @NFTA_TABLE_USE: number of chains in this table (NLA_U32) * @NFTA_TABLE_USE: number of chains in this table (NLA_U32)
* @NFTA_TABLE_USERDATA: user data (NLA_BINARY) * @NFTA_TABLE_USERDATA: user data (NLA_BINARY)
* @NFTA_TABLE_OWNER: owner of this table through netlink portID (NLA_U32)
*/ */
enum nft_table_attributes { enum nft_table_attributes {
NFTA_TABLE_UNSPEC, NFTA_TABLE_UNSPEC,
...@@ -182,6 +186,7 @@ enum nft_table_attributes { ...@@ -182,6 +186,7 @@ enum nft_table_attributes {
NFTA_TABLE_HANDLE, NFTA_TABLE_HANDLE,
NFTA_TABLE_PAD, NFTA_TABLE_PAD,
NFTA_TABLE_USERDATA, NFTA_TABLE_USERDATA,
NFTA_TABLE_OWNER,
__NFTA_TABLE_MAX __NFTA_TABLE_MAX
}; };
#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment