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 27struct ctnl_timeout * 28(*nf_ct_timeout_find_get_hook)(const char *name) __read_mostly; 29EXPORT_SYMBOL_GPL(nf_ct_timeout_find_get_hook); 30 31void (*nf_ct_timeout_put_hook)(struct ctnl_timeout *timeout) __read_mostly; 32EXPORT_SYMBOL_GPL(nf_ct_timeout_put_hook); 33 34static struct nf_ct_ext_type timeout_extend __read_mostly = { 35 .len = sizeof(struct nf_conn_timeout), 36 .align = __alignof__(struct nf_conn_timeout), 37 .id = NF_CT_EXT_TIMEOUT, 38}; 39 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 48void nf_conntrack_timeout_fini(void) 49{ 50 nf_ct_extend_unregister(&timeout_extend); 51} 52