netfilter: nf_conntrack: prepare namespace support for l4 protocol trackers
This patch prepares the namespace support for layer 4 protocol trackers. Basically, this modifies the following interfaces: * nf_ct_[un]register_sysctl * nf_conntrack_l4proto_[un]register to include the namespace parameter. We still use init_net in this patch to prepare the ground for follow-up patches for each layer 4 protocol tracker. We add a new net_id field to struct nf_conntrack_l4proto that is used to store the pernet_operations id for each layer 4 protocol tracker. Note that AF_INET6's protocols do not need to do sysctl compat. Thus, we only register compat sysctl when l4proto.l3proto != AF_INET6. Acked-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
committed by
Pablo Neira Ayuso
parent
fdb694a01f
commit
2c352f444c
@@ -12,6 +12,7 @@
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <net/netfilter/nf_conntrack.h>
|
||||
#include <net/netns/generic.h>
|
||||
|
||||
struct seq_file;
|
||||
|
||||
@@ -103,6 +104,10 @@ struct nf_conntrack_l4proto {
|
||||
struct ctl_table *ctl_compat_table;
|
||||
#endif
|
||||
#endif
|
||||
int *net_id;
|
||||
/* Init l4proto pernet data */
|
||||
int (*init_net)(struct net *net);
|
||||
|
||||
/* Protocol name */
|
||||
const char *name;
|
||||
|
||||
@@ -123,8 +128,10 @@ nf_ct_l4proto_find_get(u_int16_t l3proto, u_int8_t l4proto);
|
||||
extern void nf_ct_l4proto_put(struct nf_conntrack_l4proto *p);
|
||||
|
||||
/* Protocol registration. */
|
||||
extern int nf_conntrack_l4proto_register(struct nf_conntrack_l4proto *proto);
|
||||
extern void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *proto);
|
||||
extern int nf_conntrack_l4proto_register(struct net *net,
|
||||
struct nf_conntrack_l4proto *proto);
|
||||
extern void nf_conntrack_l4proto_unregister(struct net *net,
|
||||
struct nf_conntrack_l4proto *proto);
|
||||
|
||||
/* Generic netlink helpers */
|
||||
extern int nf_ct_port_tuple_to_nlattr(struct sk_buff *skb,
|
||||
|
||||
Reference in New Issue
Block a user