netfilter: nf_tables: convert built-in tables/chains to chain types
[deliverable/linux.git] / net / ipv6 / netfilter / nf_tables_ipv6.c
index e0717cea49135ee7927b6922f81c3c5458926be0..3631d6238e6f56b93de7671de0dfcf37cffdc041 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2008 Patrick McHardy <kaber@trash.net>
+ * Copyright (c) 2012-2013 Pablo Neira Ayuso <pablo@netfilter.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -39,14 +40,33 @@ static struct nft_af_info nft_af_ipv6 __read_mostly = {
        },
 };
 
+static struct nf_chain_type filter_ipv6 = {
+       .family         = NFPROTO_IPV6,
+       .name           = "filter",
+       .type           = NFT_CHAIN_T_DEFAULT,
+       .hook_mask      = (1 << NF_INET_LOCAL_IN) |
+                         (1 << NF_INET_LOCAL_OUT) |
+                         (1 << NF_INET_FORWARD) |
+                         (1 << NF_INET_PRE_ROUTING) |
+                         (1 << NF_INET_POST_ROUTING),
+       .fn             = {
+               [NF_INET_LOCAL_IN]      = nft_do_chain,
+               [NF_INET_LOCAL_OUT]     = nft_do_chain,
+               [NF_INET_FORWARD]       = nft_do_chain,
+               [NF_INET_PRE_ROUTING]   = nft_do_chain,
+               [NF_INET_POST_ROUTING]  = nft_do_chain,
+       },
+};
+
 static int __init nf_tables_ipv6_init(void)
 {
+       nft_register_chain_type(&filter_ipv6);
        return nft_register_afinfo(&nft_af_ipv6);
 }
-
 static void __exit nf_tables_ipv6_exit(void)
 {
        nft_unregister_afinfo(&nft_af_ipv6);
+       nft_unregister_chain_type(&filter_ipv6);
 }
 
 module_init(nf_tables_ipv6_init);
This page took 0.025007 seconds and 5 git commands to generate.