Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
This commit is contained in:
@@ -91,8 +91,7 @@ struct nf_conn_help {
|
||||
#include <net/netfilter/ipv4/nf_conntrack_ipv4.h>
|
||||
#include <net/netfilter/ipv6/nf_conntrack_ipv6.h>
|
||||
|
||||
struct nf_conn
|
||||
{
|
||||
struct nf_conn {
|
||||
/* Usage count in here is 1 for hash table/destruct timer, 1 per skb,
|
||||
plus 1 for any connection(s) we are `master' for */
|
||||
struct nf_conntrack ct_general;
|
||||
@@ -126,7 +125,6 @@ struct nf_conn
|
||||
#ifdef CONFIG_NET_NS
|
||||
struct net *ct_net;
|
||||
#endif
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
static inline struct nf_conn *
|
||||
@@ -190,9 +188,13 @@ static inline void nf_ct_put(struct nf_conn *ct)
|
||||
extern int nf_ct_l3proto_try_module_get(unsigned short l3proto);
|
||||
extern void nf_ct_l3proto_module_put(unsigned short l3proto);
|
||||
|
||||
extern struct hlist_head *nf_ct_alloc_hashtable(unsigned int *sizep, int *vmalloced);
|
||||
extern void nf_ct_free_hashtable(struct hlist_head *hash, int vmalloced,
|
||||
unsigned int size);
|
||||
/*
|
||||
* Allocate a hashtable of hlist_head (if nulls == 0),
|
||||
* or hlist_nulls_head (if nulls == 1)
|
||||
*/
|
||||
extern void *nf_ct_alloc_hashtable(unsigned int *sizep, int *vmalloced, int nulls);
|
||||
|
||||
extern void nf_ct_free_hashtable(void *hash, int vmalloced, unsigned int size);
|
||||
|
||||
extern struct nf_conntrack_tuple_hash *
|
||||
__nf_conntrack_find(struct net *net, const struct nf_conntrack_tuple *tuple);
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
struct module;
|
||||
|
||||
#define NF_CT_HELPER_NAME_LEN 16
|
||||
|
||||
struct nf_conntrack_helper
|
||||
{
|
||||
struct hlist_node hnode; /* Internal use. */
|
||||
|
@@ -53,10 +53,17 @@ struct nf_conntrack_l3proto
|
||||
int (*tuple_to_nlattr)(struct sk_buff *skb,
|
||||
const struct nf_conntrack_tuple *t);
|
||||
|
||||
/*
|
||||
* Calculate size of tuple nlattr
|
||||
*/
|
||||
int (*nlattr_tuple_size)(void);
|
||||
|
||||
int (*nlattr_to_tuple)(struct nlattr *tb[],
|
||||
struct nf_conntrack_tuple *t);
|
||||
const struct nla_policy *nla_policy;
|
||||
|
||||
size_t nla_size;
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
struct ctl_table_header *ctl_table_header;
|
||||
struct ctl_path *ctl_table_path;
|
||||
|
@@ -64,16 +64,22 @@ struct nf_conntrack_l4proto
|
||||
/* convert protoinfo to nfnetink attributes */
|
||||
int (*to_nlattr)(struct sk_buff *skb, struct nlattr *nla,
|
||||
const struct nf_conn *ct);
|
||||
/* Calculate protoinfo nlattr size */
|
||||
int (*nlattr_size)(void);
|
||||
|
||||
/* convert nfnetlink attributes to protoinfo */
|
||||
int (*from_nlattr)(struct nlattr *tb[], struct nf_conn *ct);
|
||||
|
||||
int (*tuple_to_nlattr)(struct sk_buff *skb,
|
||||
const struct nf_conntrack_tuple *t);
|
||||
/* Calculate tuple nlattr size */
|
||||
int (*nlattr_tuple_size)(void);
|
||||
int (*nlattr_to_tuple)(struct nlattr *tb[],
|
||||
struct nf_conntrack_tuple *t);
|
||||
const struct nla_policy *nla_policy;
|
||||
|
||||
size_t nla_size;
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
struct ctl_table_header **ctl_table_header;
|
||||
struct ctl_table *ctl_table;
|
||||
@@ -107,6 +113,7 @@ extern int nf_ct_port_tuple_to_nlattr(struct sk_buff *skb,
|
||||
const struct nf_conntrack_tuple *tuple);
|
||||
extern int nf_ct_port_nlattr_to_tuple(struct nlattr *tb[],
|
||||
struct nf_conntrack_tuple *t);
|
||||
extern int nf_ct_port_nlattr_tuple_size(void);
|
||||
extern const struct nla_policy nf_ct_port_nla_policy[];
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
|
@@ -12,6 +12,7 @@
|
||||
|
||||
#include <linux/netfilter/x_tables.h>
|
||||
#include <linux/netfilter/nf_conntrack_tuple_common.h>
|
||||
#include <linux/list_nulls.h>
|
||||
|
||||
/* A `tuple' is a structure containing the information to uniquely
|
||||
identify a connection. ie. if two packets have the same tuple, they
|
||||
@@ -146,9 +147,8 @@ static inline void nf_ct_dump_tuple(const struct nf_conntrack_tuple *t)
|
||||
((enum ip_conntrack_dir)(h)->tuple.dst.dir)
|
||||
|
||||
/* Connections have two entries in the hash table: one for each way */
|
||||
struct nf_conntrack_tuple_hash
|
||||
{
|
||||
struct hlist_node hnode;
|
||||
struct nf_conntrack_tuple_hash {
|
||||
struct hlist_nulls_node hnnode;
|
||||
struct nf_conntrack_tuple tuple;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user