Commit | Line | Data |
---|---|---|
f9e815b3 HW |
1 | #ifndef _NFNETLINK_H |
2 | #define _NFNETLINK_H | |
ac6d439d | 3 | |
f9e815b3 | 4 | |
080774a2 | 5 | #include <linux/netlink.h> |
f9e815b3 | 6 | #include <linux/capability.h> |
df6fb868 | 7 | #include <net/netlink.h> |
94d0ec58 | 8 | #include <uapi/linux/netfilter/nfnetlink.h> |
f9e815b3 | 9 | |
d94d9fee | 10 | struct nfnl_callback { |
f9e815b3 | 11 | int (*call)(struct sock *nl, struct sk_buff *skb, |
39938324 PM |
12 | const struct nlmsghdr *nlh, |
13 | const struct nlattr * const cda[]); | |
6b75e3e8 ED |
14 | int (*call_rcu)(struct sock *nl, struct sk_buff *skb, |
15 | const struct nlmsghdr *nlh, | |
16 | const struct nlattr * const cda[]); | |
e3730578 PM |
17 | const struct nla_policy *policy; /* netlink attribute policy */ |
18 | const u_int16_t attr_count; /* number of nlattr's */ | |
f9e815b3 HW |
19 | }; |
20 | ||
d94d9fee | 21 | struct nfnetlink_subsystem { |
f9e815b3 | 22 | const char *name; |
7c8d4cb4 PM |
23 | __u8 subsys_id; /* nfnetlink subsystem ID */ |
24 | __u8 cb_count; /* number of callbacks */ | |
25 | const struct nfnl_callback *cb; /* callback for individual types */ | |
f9e815b3 HW |
26 | }; |
27 | ||
7c8d4cb4 PM |
28 | extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n); |
29 | extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n); | |
f9e815b3 | 30 | |
cd8c20b6 | 31 | extern int nfnetlink_has_listeners(struct net *net, unsigned int group); |
95c96174 | 32 | extern int nfnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, |
e34d5c1a | 33 | int echo, gfp_t flags); |
37b7ef72 | 34 | extern int nfnetlink_set_err(struct net *net, u32 pid, u32 group, int error); |
cd8c20b6 | 35 | extern int nfnetlink_unicast(struct sk_buff *skb, struct net *net, u_int32_t pid, int flags); |
f9e815b3 | 36 | |
e6a7d3c0 PNA |
37 | extern void nfnl_lock(void); |
38 | extern void nfnl_unlock(void); | |
39 | ||
0ab43f84 HW |
40 | #define MODULE_ALIAS_NFNL_SUBSYS(subsys) \ |
41 | MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys)) | |
42 | ||
f9e815b3 | 43 | #endif /* _NFNETLINK_H */ |