Commit 8a22543c authored by Florian Westphal's avatar Florian Westphal Committed by Pablo Neira Ayuso

netfilter: nf_tables: make meta expression builtin

size net/netfilter/nft_meta.ko
   text    data     bss     dec     hex filename
   5826     936       1    6763    1a6b net/netfilter/nft_meta.ko
  96407    2064     400   98871   18237 net/netfilter/nf_tables.ko

after:
 100826    2240     401  103467   1942b net/netfilter/nf_tables.ko
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent bd2bbdb4
...@@ -10,6 +10,7 @@ extern struct nft_expr_type nft_byteorder_type; ...@@ -10,6 +10,7 @@ extern struct nft_expr_type nft_byteorder_type;
extern struct nft_expr_type nft_payload_type; extern struct nft_expr_type nft_payload_type;
extern struct nft_expr_type nft_dynset_type; extern struct nft_expr_type nft_dynset_type;
extern struct nft_expr_type nft_range_type; extern struct nft_expr_type nft_range_type;
extern struct nft_expr_type nft_meta_type;
int nf_tables_core_module_init(void); int nf_tables_core_module_init(void);
void nf_tables_core_module_exit(void); void nf_tables_core_module_exit(void);
......
...@@ -480,12 +480,6 @@ config NFT_EXTHDR ...@@ -480,12 +480,6 @@ config NFT_EXTHDR
This option adds the "exthdr" expression that you can use to match This option adds the "exthdr" expression that you can use to match
IPv6 extension headers and tcp options. IPv6 extension headers and tcp options.
config NFT_META
tristate "Netfilter nf_tables meta module"
help
This option adds the "meta" expression that you can use to match and
to set packet metainformation such as the packet mark.
config NFT_RT config NFT_RT
tristate "Netfilter nf_tables routing module" tristate "Netfilter nf_tables routing module"
help help
......
...@@ -76,12 +76,11 @@ obj-$(CONFIG_NF_DUP_NETDEV) += nf_dup_netdev.o ...@@ -76,12 +76,11 @@ obj-$(CONFIG_NF_DUP_NETDEV) += nf_dup_netdev.o
nf_tables-objs := nf_tables_core.o nf_tables_api.o nft_chain_filter.o \ nf_tables-objs := nf_tables_core.o nf_tables_api.o nft_chain_filter.o \
nf_tables_trace.o nft_immediate.o nft_cmp.o nft_range.o \ nf_tables_trace.o nft_immediate.o nft_cmp.o nft_range.o \
nft_bitwise.o nft_byteorder.o nft_payload.o nft_lookup.o \ nft_bitwise.o nft_byteorder.o nft_payload.o nft_lookup.o \
nft_dynset.o nft_dynset.o nft_meta.o
obj-$(CONFIG_NF_TABLES) += nf_tables.o obj-$(CONFIG_NF_TABLES) += nf_tables.o
obj-$(CONFIG_NFT_COMPAT) += nft_compat.o obj-$(CONFIG_NFT_COMPAT) += nft_compat.o
obj-$(CONFIG_NFT_EXTHDR) += nft_exthdr.o obj-$(CONFIG_NFT_EXTHDR) += nft_exthdr.o
obj-$(CONFIG_NFT_META) += nft_meta.o
obj-$(CONFIG_NFT_RT) += nft_rt.o obj-$(CONFIG_NFT_RT) += nft_rt.o
obj-$(CONFIG_NFT_NUMGEN) += nft_numgen.o obj-$(CONFIG_NFT_NUMGEN) += nft_numgen.o
obj-$(CONFIG_NFT_CT) += nft_ct.o obj-$(CONFIG_NFT_CT) += nft_ct.o
......
...@@ -251,6 +251,7 @@ static struct nft_expr_type *nft_basic_types[] = { ...@@ -251,6 +251,7 @@ static struct nft_expr_type *nft_basic_types[] = {
&nft_payload_type, &nft_payload_type,
&nft_dynset_type, &nft_dynset_type,
&nft_range_type, &nft_range_type,
&nft_meta_type,
}; };
int __init nf_tables_core_module_init(void) int __init nf_tables_core_module_init(void)
......
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/netlink.h> #include <linux/netlink.h>
#include <linux/netfilter.h> #include <linux/netfilter.h>
#include <linux/netfilter/nf_tables.h> #include <linux/netfilter/nf_tables.h>
...@@ -495,7 +493,6 @@ static void nft_meta_set_destroy(const struct nft_ctx *ctx, ...@@ -495,7 +493,6 @@ static void nft_meta_set_destroy(const struct nft_ctx *ctx,
static_branch_dec(&nft_trace_enabled); static_branch_dec(&nft_trace_enabled);
} }
static struct nft_expr_type nft_meta_type;
static const struct nft_expr_ops nft_meta_get_ops = { static const struct nft_expr_ops nft_meta_get_ops = {
.type = &nft_meta_type, .type = &nft_meta_type,
.size = NFT_EXPR_SIZE(sizeof(struct nft_meta)), .size = NFT_EXPR_SIZE(sizeof(struct nft_meta)),
...@@ -534,27 +531,10 @@ nft_meta_select_ops(const struct nft_ctx *ctx, ...@@ -534,27 +531,10 @@ nft_meta_select_ops(const struct nft_ctx *ctx,
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
} }
static struct nft_expr_type nft_meta_type __read_mostly = { struct nft_expr_type nft_meta_type __read_mostly = {
.name = "meta", .name = "meta",
.select_ops = nft_meta_select_ops, .select_ops = nft_meta_select_ops,
.policy = nft_meta_policy, .policy = nft_meta_policy,
.maxattr = NFTA_META_MAX, .maxattr = NFTA_META_MAX,
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static int __init nft_meta_module_init(void)
{
return nft_register_expr(&nft_meta_type);
}
static void __exit nft_meta_module_exit(void)
{
nft_unregister_expr(&nft_meta_type);
}
module_init(nft_meta_module_init);
module_exit(nft_meta_module_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
MODULE_ALIAS_NFT_EXPR("meta");
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