Skip to content

Commit

Permalink
netfilter: nf_tables: get rid of struct nft_af_info abstraction
Browse files Browse the repository at this point in the history
Remove the infrastructure to register/unregister nft_af_info structure,
this structure stores no useful information anymore.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  • Loading branch information
Pablo Neira Ayuso committed Jan 10, 2018
1 parent dd4cbef commit 98319cb
Show file tree
Hide file tree
Showing 8 changed files with 86 additions and 382 deletions.
23 changes: 2 additions & 21 deletions include/net/netfilter/nf_tables.h
Original file line number Diff line number Diff line change
Expand Up @@ -960,28 +960,12 @@ struct nft_table {
struct list_head flowtables;
u64 hgenerator;
u32 use;
u16 flags:14,
u16 family:6,
flags:8,
genmask:2;
struct nft_af_info *afi;
char *name;
};

/**
* struct nft_af_info - nf_tables address family info
*
* @list: used internally
* @family: address family
* @owner: module owner
*/
struct nft_af_info {
struct list_head list;
int family;
struct module *owner;
};

int nft_register_afinfo(struct nft_af_info *);
void nft_unregister_afinfo(struct nft_af_info *);

int nft_register_chain_type(const struct nf_chain_type *);
void nft_unregister_chain_type(const struct nf_chain_type *);

Expand Down Expand Up @@ -1146,9 +1130,6 @@ void nft_trace_init(struct nft_traceinfo *info, const struct nft_pktinfo *pkt,

void nft_trace_notify(struct nft_traceinfo *info);

#define MODULE_ALIAS_NFT_FAMILY(family) \
MODULE_ALIAS("nft-afinfo-" __stringify(family))

#define MODULE_ALIAS_NFT_CHAIN(family, name) \
MODULE_ALIAS("nft-chain-" __stringify(family) "-" name)

Expand Down
25 changes: 2 additions & 23 deletions net/bridge/netfilter/nf_tables_bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,6 @@ nft_do_chain_bridge(void *priv,
return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_bridge __read_mostly = {
.family = NFPROTO_BRIDGE,
.owner = THIS_MODULE,
};

static const struct nf_chain_type filter_bridge = {
.name = "filter",
.type = NFT_CHAIN_T_DEFAULT,
Expand All @@ -68,33 +63,17 @@ static const struct nf_chain_type filter_bridge = {

static int __init nf_tables_bridge_init(void)
{
int ret;

ret = nft_register_afinfo(&nft_af_bridge);
if (ret < 0)
return ret;

ret = nft_register_chain_type(&filter_bridge);
if (ret < 0)
goto err_register_chain;

return ret;

err_register_chain:
nft_unregister_chain_type(&filter_bridge);

return ret;
return nft_register_chain_type(&filter_bridge);
}

static void __exit nf_tables_bridge_exit(void)
{
nft_unregister_chain_type(&filter_bridge);
nft_unregister_afinfo(&nft_af_bridge);
}

module_init(nf_tables_bridge_init);
module_exit(nf_tables_bridge_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(AF_BRIDGE);
MODULE_ALIAS_NFT_CHAIN(AF_BRIDGE, "filter");
25 changes: 2 additions & 23 deletions net/ipv4/netfilter/nf_tables_arp.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,6 @@ nft_do_chain_arp(void *priv,
return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_arp __read_mostly = {
.family = NFPROTO_ARP,
.owner = THIS_MODULE,
};

static const struct nf_chain_type filter_arp = {
.name = "filter",
.type = NFT_CHAIN_T_DEFAULT,
Expand All @@ -47,33 +42,17 @@ static const struct nf_chain_type filter_arp = {

static int __init nf_tables_arp_init(void)
{
int ret;

ret = nft_register_afinfo(&nft_af_arp);
if (ret < 0)
return ret;

ret = nft_register_chain_type(&filter_arp);
if (ret < 0)
goto err_register_chain;

return 0;

err_register_chain:
nft_unregister_chain_type(&filter_arp);

return ret;
return nft_register_chain_type(&filter_arp);
}

static void __exit nf_tables_arp_exit(void)
{
nft_unregister_chain_type(&filter_arp);
nft_unregister_afinfo(&nft_af_arp);
}

module_init(nf_tables_arp_init);
module_exit(nf_tables_arp_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(3); /* NFPROTO_ARP */
MODULE_ALIAS_NFT_CHAIN(3, "filter"); /* NFPROTO_ARP */
24 changes: 2 additions & 22 deletions net/ipv4/netfilter/nf_tables_ipv4.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,6 @@ static unsigned int nft_do_chain_ipv4(void *priv,
return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_ipv4 __read_mostly = {
.family = NFPROTO_IPV4,
.owner = THIS_MODULE,
};

static const struct nf_chain_type filter_ipv4 = {
.name = "filter",
.type = NFT_CHAIN_T_DEFAULT,
Expand All @@ -56,32 +51,17 @@ static const struct nf_chain_type filter_ipv4 = {

static int __init nf_tables_ipv4_init(void)
{
int ret;

ret = nft_register_afinfo(&nft_af_ipv4);
if (ret < 0)
return ret;

ret = nft_register_chain_type(&filter_ipv4);
if (ret < 0)
goto err_register_chain;

return 0;

err_register_chain:
nft_unregister_afinfo(&nft_af_ipv4);
return ret;
return nft_register_chain_type(&filter_ipv4);
}

static void __exit nf_tables_ipv4_exit(void)
{
nft_unregister_chain_type(&filter_ipv4);
nft_unregister_afinfo(&nft_af_ipv4);
}

module_init(nf_tables_ipv4_init);
module_exit(nf_tables_ipv4_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(AF_INET);
MODULE_ALIAS_NFT_CHAIN(AF_INET, "filter");
24 changes: 2 additions & 22 deletions net/ipv6/netfilter/nf_tables_ipv6.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,6 @@ static unsigned int nft_do_chain_ipv6(void *priv,
return nft_do_chain(&pkt, priv);
}

static struct nft_af_info nft_af_ipv6 __read_mostly = {
.family = NFPROTO_IPV6,
.owner = THIS_MODULE,
};

static const struct nf_chain_type filter_ipv6 = {
.name = "filter",
.type = NFT_CHAIN_T_DEFAULT,
Expand All @@ -54,26 +49,11 @@ static const struct nf_chain_type filter_ipv6 = {

static int __init nf_tables_ipv6_init(void)
{
int ret;

ret = nft_register_afinfo(&nft_af_ipv6);
if (ret < 0)
return ret;

ret = nft_register_chain_type(&filter_ipv6);
if (ret < 0)
goto err_register_chain;

return 0;

err_register_chain:
nft_unregister_afinfo(&nft_af_ipv6);
return ret;
return nft_register_chain_type(&filter_ipv6);
}

static void __exit nf_tables_ipv6_exit(void)
{
nft_unregister_afinfo(&nft_af_ipv6);
nft_unregister_chain_type(&filter_ipv6);
}

Expand All @@ -82,4 +62,4 @@ module_exit(nf_tables_ipv6_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_FAMILY(AF_INET6);
MODULE_ALIAS_NFT_CHAIN(AF_INET6, "filter");
Loading

0 comments on commit 98319cb

Please sign in to comment.