1 /* 2 * (C) 2012 by Pablo Neira Ayuso <pablo@netfilter.org> 3 * (C) 2012 by Vyatta Inc. <http://www.vyatta.com> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation (or any later at your option). 8 */ 9 10 #include <linux/types.h> 11 #include <linux/netfilter.h> 12 #include <linux/skbuff.h> 13 #include <linux/vmalloc.h> 14 #include <linux/stddef.h> 15 #include <linux/err.h> 16 #include <linux/percpu.h> 17 #include <linux/kernel.h> 18 #include <linux/netdevice.h> 19 #include <linux/slab.h> 20 #include <linux/export.h> 21 22 #include <net/netfilter/nf_conntrack.h> 23 #include <net/netfilter/nf_conntrack_core.h> 24 #include <net/netfilter/nf_conntrack_extend.h> 25 #include <net/netfilter/nf_conntrack_timeout.h> 26 27 struct ctnl_timeout * 28 (*nf_ct_timeout_find_get_hook)(struct net *net, const char *name) __read_mostly; 29 EXPORT_SYMBOL_GPL(nf_ct_timeout_find_get_hook); 30 31 void (*nf_ct_timeout_put_hook)(struct ctnl_timeout *timeout) __read_mostly; 32 EXPORT_SYMBOL_GPL(nf_ct_timeout_put_hook); 33 34 static const struct nf_ct_ext_type timeout_extend = { 35 .len = sizeof(struct nf_conn_timeout), 36 .align = __alignof__(struct nf_conn_timeout), 37 .id = NF_CT_EXT_TIMEOUT, 38 }; 39 nf_conntrack_timeout_init(void)40int nf_conntrack_timeout_init(void) 41 { 42 int ret = nf_ct_extend_register(&timeout_extend); 43 if (ret < 0) 44 pr_err("nf_ct_timeout: Unable to register timeout extension.\n"); 45 return ret; 46 } 47 nf_conntrack_timeout_fini(void)48void nf_conntrack_timeout_fini(void) 49 { 50 nf_ct_extend_unregister(&timeout_extend); 51 } 52