aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-15 17:06:58 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-15 17:06:58 -0400
commita52cefc80fc92981592c688d1c8067442afe4cec (patch)
treead119b5a4f5e4a257779c0ef324b5c9354c915f1 /include
parentfba956c46a72f9e7503fd464ffee43c632307e31 (diff)
parent4acad72ded8e3f0211bd2a762e23c28229c61a51 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits) [IPV6]: Consolidate the ip6_pol_route_(input|output) pair [TCP]: Make snd_cwnd_cnt 32-bit [TCP]: Update the /proc/net/tcp documentation [NETNS]: Don't panic on creating the namespace's loopback [NEIGH]: Ensure that pneigh_lookup is protected with RTNL [INET]: kmalloc+memset -> kzalloc in frag_alloc_queue [ISDN]: Fix compile with CONFIG_ISDN_X25 disabled. [IPV6]: Replace sk_buff ** with sk_buff * in input handlers [SELINUX]: Update for netfilter ->hook() arg changes. [INET]: Consolidate the xxx_put [INET]: Small cleanup for xxx_put after evictor consolidation [INET]: Consolidate the xxx_evictor [INET]: Consolidate the xxx_frag_destroy [INET]: Consolidate xxx_the secret_rebuild [INET]: Consolidate the xxx_frag_kill [INET]: Collect common frag sysctl variables together [INET]: Collect frag queues management objects together [INET]: Move common fields from frag_queues in one place. [TG3]: Fix performance regression on 5705. [ISDN]: Remove local copy of device name to make sure renames work. ...
Diffstat (limited to 'include')
-rw-r--r--include/linux/if_bridge.h2
-rw-r--r--include/linux/isdn.h1
-rw-r--r--include/linux/netfilter.h26
-rw-r--r--include/linux/netfilter/nf_conntrack_amanda.h2
-rw-r--r--include/linux/netfilter/nf_conntrack_ftp.h2
-rw-r--r--include/linux/netfilter/nf_conntrack_h323.h18
-rw-r--r--include/linux/netfilter/nf_conntrack_irc.h2
-rw-r--r--include/linux/netfilter/nf_conntrack_pptp.h4
-rw-r--r--include/linux/netfilter/nf_conntrack_sip.h4
-rw-r--r--include/linux/netfilter/nf_conntrack_tftp.h2
-rw-r--r--include/linux/netfilter/x_tables.h2
-rw-r--r--include/linux/netfilter_arp/arp_tables.h2
-rw-r--r--include/linux/netfilter_bridge/ebtables.h4
-rw-r--r--include/linux/netfilter_ipv4.h4
-rw-r--r--include/linux/netfilter_ipv4/ip_tables.h2
-rw-r--r--include/linux/netfilter_ipv6/ip6_tables.h2
-rw-r--r--include/linux/skbuff.h1
-rw-r--r--include/linux/tcp.h2
-rw-r--r--include/net/inet_frag.h60
-rw-r--r--include/net/ip.h13
-rw-r--r--include/net/ip_vs.h13
-rw-r--r--include/net/ipv6.h21
-rw-r--r--include/net/netfilter/ipv6/nf_conntrack_ipv6.h5
-rw-r--r--include/net/netfilter/nf_conntrack_core.h10
-rw-r--r--include/net/netfilter/nf_conntrack_helper.h2
-rw-r--r--include/net/netfilter/nf_nat_core.h4
-rw-r--r--include/net/netfilter/nf_nat_helper.h6
-rw-r--r--include/net/netfilter/nf_nat_protocol.h2
-rw-r--r--include/net/netfilter/nf_nat_rule.h2
-rw-r--r--include/net/protocol.h2
-rw-r--r--include/net/xfrm.h2
31 files changed, 144 insertions, 80 deletions
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
index 99e3a1a00099..58e43e566457 100644
--- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h
@@ -107,7 +107,7 @@ struct __fdb_entry
107extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *)); 107extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *));
108extern struct sk_buff *(*br_handle_frame_hook)(struct net_bridge_port *p, 108extern struct sk_buff *(*br_handle_frame_hook)(struct net_bridge_port *p,
109 struct sk_buff *skb); 109 struct sk_buff *skb);
110extern int (*br_should_route_hook)(struct sk_buff **pskb); 110extern int (*br_should_route_hook)(struct sk_buff *skb);
111 111
112#endif 112#endif
113 113
diff --git a/include/linux/isdn.h b/include/linux/isdn.h
index ad09506554a3..d5dda4b643ac 100644
--- a/include/linux/isdn.h
+++ b/include/linux/isdn.h
@@ -286,7 +286,6 @@ typedef struct {
286/* Local interface-data */ 286/* Local interface-data */
287typedef struct isdn_net_local_s { 287typedef struct isdn_net_local_s {
288 ulong magic; 288 ulong magic;
289 char name[10]; /* Name of device */
290 struct net_device_stats stats; /* Ethernet Statistics */ 289 struct net_device_stats stats; /* Ethernet Statistics */
291 int isdn_device; /* Index to isdn-device */ 290 int isdn_device; /* Index to isdn-device */
292 int isdn_channel; /* Index to isdn-channel */ 291 int isdn_channel; /* Index to isdn-channel */
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index 1dd075eda595..16adac688af5 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -51,7 +51,7 @@ struct sk_buff;
51struct net_device; 51struct net_device;
52 52
53typedef unsigned int nf_hookfn(unsigned int hooknum, 53typedef unsigned int nf_hookfn(unsigned int hooknum,
54 struct sk_buff **skb, 54 struct sk_buff *skb,
55 const struct net_device *in, 55 const struct net_device *in,
56 const struct net_device *out, 56 const struct net_device *out,
57 int (*okfn)(struct sk_buff *)); 57 int (*okfn)(struct sk_buff *));
@@ -183,7 +183,7 @@ void nf_log_packet(int pf,
183 struct nf_loginfo *li, 183 struct nf_loginfo *li,
184 const char *fmt, ...); 184 const char *fmt, ...);
185 185
186int nf_hook_slow(int pf, unsigned int hook, struct sk_buff **pskb, 186int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
187 struct net_device *indev, struct net_device *outdev, 187 struct net_device *indev, struct net_device *outdev,
188 int (*okfn)(struct sk_buff *), int thresh); 188 int (*okfn)(struct sk_buff *), int thresh);
189 189
@@ -195,7 +195,7 @@ int nf_hook_slow(int pf, unsigned int hook, struct sk_buff **pskb,
195 * value indicates the packet has been consumed by the hook. 195 * value indicates the packet has been consumed by the hook.
196 */ 196 */
197static inline int nf_hook_thresh(int pf, unsigned int hook, 197static inline int nf_hook_thresh(int pf, unsigned int hook,
198 struct sk_buff **pskb, 198 struct sk_buff *skb,
199 struct net_device *indev, 199 struct net_device *indev,
200 struct net_device *outdev, 200 struct net_device *outdev,
201 int (*okfn)(struct sk_buff *), int thresh, 201 int (*okfn)(struct sk_buff *), int thresh,
@@ -207,14 +207,14 @@ static inline int nf_hook_thresh(int pf, unsigned int hook,
207 if (list_empty(&nf_hooks[pf][hook])) 207 if (list_empty(&nf_hooks[pf][hook]))
208 return 1; 208 return 1;
209#endif 209#endif
210 return nf_hook_slow(pf, hook, pskb, indev, outdev, okfn, thresh); 210 return nf_hook_slow(pf, hook, skb, indev, outdev, okfn, thresh);
211} 211}
212 212
213static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb, 213static inline int nf_hook(int pf, unsigned int hook, struct sk_buff *skb,
214 struct net_device *indev, struct net_device *outdev, 214 struct net_device *indev, struct net_device *outdev,
215 int (*okfn)(struct sk_buff *)) 215 int (*okfn)(struct sk_buff *))
216{ 216{
217 return nf_hook_thresh(pf, hook, pskb, indev, outdev, okfn, INT_MIN, 1); 217 return nf_hook_thresh(pf, hook, skb, indev, outdev, okfn, INT_MIN, 1);
218} 218}
219 219
220/* Activate hook; either okfn or kfree_skb called, unless a hook 220/* Activate hook; either okfn or kfree_skb called, unless a hook
@@ -241,13 +241,13 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb,
241 241
242#define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \ 242#define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \
243({int __ret; \ 243({int __ret; \
244if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, thresh, 1)) == 1)\ 244if ((__ret=nf_hook_thresh(pf, hook, (skb), indev, outdev, okfn, thresh, 1)) == 1)\
245 __ret = (okfn)(skb); \ 245 __ret = (okfn)(skb); \
246__ret;}) 246__ret;})
247 247
248#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) \ 248#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) \
249({int __ret; \ 249({int __ret; \
250if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, INT_MIN, cond)) == 1)\ 250if ((__ret=nf_hook_thresh(pf, hook, (skb), indev, outdev, okfn, INT_MIN, cond)) == 1)\
251 __ret = (okfn)(skb); \ 251 __ret = (okfn)(skb); \
252__ret;}) 252__ret;})
253 253
@@ -287,7 +287,7 @@ extern void nf_invalidate_cache(int pf);
287/* Call this before modifying an existing packet: ensures it is 287/* Call this before modifying an existing packet: ensures it is
288 modifiable and linear to the point you care about (writable_len). 288 modifiable and linear to the point you care about (writable_len).
289 Returns true or false. */ 289 Returns true or false. */
290extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); 290extern int skb_make_writable(struct sk_buff *skb, unsigned int writable_len);
291 291
292static inline void nf_csum_replace4(__sum16 *sum, __be32 from, __be32 to) 292static inline void nf_csum_replace4(__sum16 *sum, __be32 from, __be32 to)
293{ 293{
@@ -317,7 +317,7 @@ struct nf_afinfo {
317 unsigned int dataoff, u_int8_t protocol); 317 unsigned int dataoff, u_int8_t protocol);
318 void (*saveroute)(const struct sk_buff *skb, 318 void (*saveroute)(const struct sk_buff *skb,
319 struct nf_info *info); 319 struct nf_info *info);
320 int (*reroute)(struct sk_buff **skb, 320 int (*reroute)(struct sk_buff *skb,
321 const struct nf_info *info); 321 const struct nf_info *info);
322 int route_key_size; 322 int route_key_size;
323}; 323};
@@ -371,15 +371,15 @@ extern struct proc_dir_entry *proc_net_netfilter;
371#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) 371#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb)
372#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb) 372#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb)
373static inline int nf_hook_thresh(int pf, unsigned int hook, 373static inline int nf_hook_thresh(int pf, unsigned int hook,
374 struct sk_buff **pskb, 374 struct sk_buff *skb,
375 struct net_device *indev, 375 struct net_device *indev,
376 struct net_device *outdev, 376 struct net_device *outdev,
377 int (*okfn)(struct sk_buff *), int thresh, 377 int (*okfn)(struct sk_buff *), int thresh,
378 int cond) 378 int cond)
379{ 379{
380 return okfn(*pskb); 380 return okfn(skb);
381} 381}
382static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb, 382static inline int nf_hook(int pf, unsigned int hook, struct sk_buff *skb,
383 struct net_device *indev, struct net_device *outdev, 383 struct net_device *indev, struct net_device *outdev,
384 int (*okfn)(struct sk_buff *)) 384 int (*okfn)(struct sk_buff *))
385{ 385{
diff --git a/include/linux/netfilter/nf_conntrack_amanda.h b/include/linux/netfilter/nf_conntrack_amanda.h
index 26c223544ae8..0bb5a6976bf3 100644
--- a/include/linux/netfilter/nf_conntrack_amanda.h
+++ b/include/linux/netfilter/nf_conntrack_amanda.h
@@ -2,7 +2,7 @@
2#define _NF_CONNTRACK_AMANDA_H 2#define _NF_CONNTRACK_AMANDA_H
3/* AMANDA tracking. */ 3/* AMANDA tracking. */
4 4
5extern unsigned int (*nf_nat_amanda_hook)(struct sk_buff **pskb, 5extern unsigned int (*nf_nat_amanda_hook)(struct sk_buff *skb,
6 enum ip_conntrack_info ctinfo, 6 enum ip_conntrack_info ctinfo,
7 unsigned int matchoff, 7 unsigned int matchoff,
8 unsigned int matchlen, 8 unsigned int matchlen,
diff --git a/include/linux/netfilter/nf_conntrack_ftp.h b/include/linux/netfilter/nf_conntrack_ftp.h
index b7c360ffd0d0..47727d7546ea 100644
--- a/include/linux/netfilter/nf_conntrack_ftp.h
+++ b/include/linux/netfilter/nf_conntrack_ftp.h
@@ -32,7 +32,7 @@ struct nf_conntrack_expect;
32 32
33/* For NAT to hook in when we find a packet which describes what other 33/* For NAT to hook in when we find a packet which describes what other
34 * connection we should expect. */ 34 * connection we should expect. */
35extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff **pskb, 35extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff *skb,
36 enum ip_conntrack_info ctinfo, 36 enum ip_conntrack_info ctinfo,
37 enum nf_ct_ftp_type type, 37 enum nf_ct_ftp_type type,
38 unsigned int matchoff, 38 unsigned int matchoff,
diff --git a/include/linux/netfilter/nf_conntrack_h323.h b/include/linux/netfilter/nf_conntrack_h323.h
index 08e2f4977c2e..aabd24ac7631 100644
--- a/include/linux/netfilter/nf_conntrack_h323.h
+++ b/include/linux/netfilter/nf_conntrack_h323.h
@@ -36,27 +36,27 @@ extern void nf_conntrack_h245_expect(struct nf_conn *new,
36 struct nf_conntrack_expect *this); 36 struct nf_conntrack_expect *this);
37extern void nf_conntrack_q931_expect(struct nf_conn *new, 37extern void nf_conntrack_q931_expect(struct nf_conn *new,
38 struct nf_conntrack_expect *this); 38 struct nf_conntrack_expect *this);
39extern int (*set_h245_addr_hook) (struct sk_buff **pskb, 39extern int (*set_h245_addr_hook) (struct sk_buff *skb,
40 unsigned char **data, int dataoff, 40 unsigned char **data, int dataoff,
41 H245_TransportAddress *taddr, 41 H245_TransportAddress *taddr,
42 union nf_conntrack_address *addr, 42 union nf_conntrack_address *addr,
43 __be16 port); 43 __be16 port);
44extern int (*set_h225_addr_hook) (struct sk_buff **pskb, 44extern int (*set_h225_addr_hook) (struct sk_buff *skb,
45 unsigned char **data, int dataoff, 45 unsigned char **data, int dataoff,
46 TransportAddress *taddr, 46 TransportAddress *taddr,
47 union nf_conntrack_address *addr, 47 union nf_conntrack_address *addr,
48 __be16 port); 48 __be16 port);
49extern int (*set_sig_addr_hook) (struct sk_buff **pskb, 49extern int (*set_sig_addr_hook) (struct sk_buff *skb,
50 struct nf_conn *ct, 50 struct nf_conn *ct,
51 enum ip_conntrack_info ctinfo, 51 enum ip_conntrack_info ctinfo,
52 unsigned char **data, 52 unsigned char **data,
53 TransportAddress *taddr, int count); 53 TransportAddress *taddr, int count);
54extern int (*set_ras_addr_hook) (struct sk_buff **pskb, 54extern int (*set_ras_addr_hook) (struct sk_buff *skb,
55 struct nf_conn *ct, 55 struct nf_conn *ct,
56 enum ip_conntrack_info ctinfo, 56 enum ip_conntrack_info ctinfo,
57 unsigned char **data, 57 unsigned char **data,
58 TransportAddress *taddr, int count); 58 TransportAddress *taddr, int count);
59extern int (*nat_rtp_rtcp_hook) (struct sk_buff **pskb, 59extern int (*nat_rtp_rtcp_hook) (struct sk_buff *skb,
60 struct nf_conn *ct, 60 struct nf_conn *ct,
61 enum ip_conntrack_info ctinfo, 61 enum ip_conntrack_info ctinfo,
62 unsigned char **data, int dataoff, 62 unsigned char **data, int dataoff,
@@ -64,24 +64,24 @@ extern int (*nat_rtp_rtcp_hook) (struct sk_buff **pskb,
64 __be16 port, __be16 rtp_port, 64 __be16 port, __be16 rtp_port,
65 struct nf_conntrack_expect *rtp_exp, 65 struct nf_conntrack_expect *rtp_exp,
66 struct nf_conntrack_expect *rtcp_exp); 66 struct nf_conntrack_expect *rtcp_exp);
67extern int (*nat_t120_hook) (struct sk_buff **pskb, struct nf_conn *ct, 67extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct,
68 enum ip_conntrack_info ctinfo, 68 enum ip_conntrack_info ctinfo,
69 unsigned char **data, int dataoff, 69 unsigned char **data, int dataoff,
70 H245_TransportAddress *taddr, __be16 port, 70 H245_TransportAddress *taddr, __be16 port,
71 struct nf_conntrack_expect *exp); 71 struct nf_conntrack_expect *exp);
72extern int (*nat_h245_hook) (struct sk_buff **pskb, struct nf_conn *ct, 72extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct,
73 enum ip_conntrack_info ctinfo, 73 enum ip_conntrack_info ctinfo,
74 unsigned char **data, int dataoff, 74 unsigned char **data, int dataoff,
75 TransportAddress *taddr, __be16 port, 75 TransportAddress *taddr, __be16 port,
76 struct nf_conntrack_expect *exp); 76 struct nf_conntrack_expect *exp);
77extern int (*nat_callforwarding_hook) (struct sk_buff **pskb, 77extern int (*nat_callforwarding_hook) (struct sk_buff *skb,
78 struct nf_conn *ct, 78 struct nf_conn *ct,
79 enum ip_conntrack_info ctinfo, 79 enum ip_conntrack_info ctinfo,
80 unsigned char **data, int dataoff, 80 unsigned char **data, int dataoff,
81 TransportAddress *taddr, 81 TransportAddress *taddr,
82 __be16 port, 82 __be16 port,
83 struct nf_conntrack_expect *exp); 83 struct nf_conntrack_expect *exp);
84extern int (*nat_q931_hook) (struct sk_buff **pskb, struct nf_conn *ct, 84extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct,
85 enum ip_conntrack_info ctinfo, 85 enum ip_conntrack_info ctinfo,
86 unsigned char **data, TransportAddress *taddr, 86 unsigned char **data, TransportAddress *taddr,
87 int idx, __be16 port, 87 int idx, __be16 port,
diff --git a/include/linux/netfilter/nf_conntrack_irc.h b/include/linux/netfilter/nf_conntrack_irc.h
index 2ab6b8255911..36282bf71b63 100644
--- a/include/linux/netfilter/nf_conntrack_irc.h
+++ b/include/linux/netfilter/nf_conntrack_irc.h
@@ -5,7 +5,7 @@
5 5
6#define IRC_PORT 6667 6#define IRC_PORT 6667
7 7
8extern unsigned int (*nf_nat_irc_hook)(struct sk_buff **pskb, 8extern unsigned int (*nf_nat_irc_hook)(struct sk_buff *skb,
9 enum ip_conntrack_info ctinfo, 9 enum ip_conntrack_info ctinfo,
10 unsigned int matchoff, 10 unsigned int matchoff,
11 unsigned int matchlen, 11 unsigned int matchlen,
diff --git a/include/linux/netfilter/nf_conntrack_pptp.h b/include/linux/netfilter/nf_conntrack_pptp.h
index c93061f33144..23435496d24a 100644
--- a/include/linux/netfilter/nf_conntrack_pptp.h
+++ b/include/linux/netfilter/nf_conntrack_pptp.h
@@ -301,13 +301,13 @@ struct nf_conn;
301struct nf_conntrack_expect; 301struct nf_conntrack_expect;
302 302
303extern int 303extern int
304(*nf_nat_pptp_hook_outbound)(struct sk_buff **pskb, 304(*nf_nat_pptp_hook_outbound)(struct sk_buff *skb,
305 struct nf_conn *ct, enum ip_conntrack_info ctinfo, 305 struct nf_conn *ct, enum ip_conntrack_info ctinfo,
306 struct PptpControlHeader *ctlh, 306 struct PptpControlHeader *ctlh,
307 union pptp_ctrl_union *pptpReq); 307 union pptp_ctrl_union *pptpReq);
308 308
309extern int 309extern int
310(*nf_nat_pptp_hook_inbound)(struct sk_buff **pskb, 310(*nf_nat_pptp_hook_inbound)(struct sk_buff *skb,
311 struct nf_conn *ct, enum ip_conntrack_info ctinfo, 311 struct nf_conn *ct, enum ip_conntrack_info ctinfo,
312 struct PptpControlHeader *ctlh, 312 struct PptpControlHeader *ctlh,
313 union pptp_ctrl_union *pptpReq); 313 union pptp_ctrl_union *pptpReq);
diff --git a/include/linux/netfilter/nf_conntrack_sip.h b/include/linux/netfilter/nf_conntrack_sip.h
index bb7f2041db74..9fff19779bd5 100644
--- a/include/linux/netfilter/nf_conntrack_sip.h
+++ b/include/linux/netfilter/nf_conntrack_sip.h
@@ -21,11 +21,11 @@ enum sip_header_pos {
21 POS_SDP_HEADER, 21 POS_SDP_HEADER,
22}; 22};
23 23
24extern unsigned int (*nf_nat_sip_hook)(struct sk_buff **pskb, 24extern unsigned int (*nf_nat_sip_hook)(struct sk_buff *skb,
25 enum ip_conntrack_info ctinfo, 25 enum ip_conntrack_info ctinfo,
26 struct nf_conn *ct, 26 struct nf_conn *ct,
27 const char **dptr); 27 const char **dptr);
28extern unsigned int (*nf_nat_sdp_hook)(struct sk_buff **pskb, 28extern unsigned int (*nf_nat_sdp_hook)(struct sk_buff *skb,
29 enum ip_conntrack_info ctinfo, 29 enum ip_conntrack_info ctinfo,
30 struct nf_conntrack_expect *exp, 30 struct nf_conntrack_expect *exp,
31 const char *dptr); 31 const char *dptr);
diff --git a/include/linux/netfilter/nf_conntrack_tftp.h b/include/linux/netfilter/nf_conntrack_tftp.h
index 0d79b7ae051f..c78d38fdb050 100644
--- a/include/linux/netfilter/nf_conntrack_tftp.h
+++ b/include/linux/netfilter/nf_conntrack_tftp.h
@@ -13,7 +13,7 @@ struct tftphdr {
13#define TFTP_OPCODE_ACK 4 13#define TFTP_OPCODE_ACK 4
14#define TFTP_OPCODE_ERROR 5 14#define TFTP_OPCODE_ERROR 5
15 15
16extern unsigned int (*nf_nat_tftp_hook)(struct sk_buff **pskb, 16extern unsigned int (*nf_nat_tftp_hook)(struct sk_buff *skb,
17 enum ip_conntrack_info ctinfo, 17 enum ip_conntrack_info ctinfo,
18 struct nf_conntrack_expect *exp); 18 struct nf_conntrack_expect *exp);
19 19
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index 64f425a855bb..03e6ce979eaa 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -191,7 +191,7 @@ struct xt_target
191 /* Returns verdict. Argument order changed since 2.6.9, as this 191 /* Returns verdict. Argument order changed since 2.6.9, as this
192 must now handle non-linear skbs, using skb_copy_bits and 192 must now handle non-linear skbs, using skb_copy_bits and
193 skb_ip_make_writable. */ 193 skb_ip_make_writable. */
194 unsigned int (*target)(struct sk_buff **pskb, 194 unsigned int (*target)(struct sk_buff *skb,
195 const struct net_device *in, 195 const struct net_device *in,
196 const struct net_device *out, 196 const struct net_device *out,
197 unsigned int hooknum, 197 unsigned int hooknum,
diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h
index 584cd1b18f12..2fc73fa8e37f 100644
--- a/include/linux/netfilter_arp/arp_tables.h
+++ b/include/linux/netfilter_arp/arp_tables.h
@@ -287,7 +287,7 @@ struct arpt_error
287extern int arpt_register_table(struct arpt_table *table, 287extern int arpt_register_table(struct arpt_table *table,
288 const struct arpt_replace *repl); 288 const struct arpt_replace *repl);
289extern void arpt_unregister_table(struct arpt_table *table); 289extern void arpt_unregister_table(struct arpt_table *table);
290extern unsigned int arpt_do_table(struct sk_buff **pskb, 290extern unsigned int arpt_do_table(struct sk_buff *skb,
291 unsigned int hook, 291 unsigned int hook,
292 const struct net_device *in, 292 const struct net_device *in,
293 const struct net_device *out, 293 const struct net_device *out,
diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h
index 94e0a7dc0cb2..892f5b7771c7 100644
--- a/include/linux/netfilter_bridge/ebtables.h
+++ b/include/linux/netfilter_bridge/ebtables.h
@@ -237,7 +237,7 @@ struct ebt_target
237 struct list_head list; 237 struct list_head list;
238 const char name[EBT_FUNCTION_MAXNAMELEN]; 238 const char name[EBT_FUNCTION_MAXNAMELEN];
239 /* returns one of the standard verdicts */ 239 /* returns one of the standard verdicts */
240 int (*target)(struct sk_buff **pskb, unsigned int hooknr, 240 int (*target)(struct sk_buff *skb, unsigned int hooknr,
241 const struct net_device *in, const struct net_device *out, 241 const struct net_device *in, const struct net_device *out,
242 const void *targetdata, unsigned int datalen); 242 const void *targetdata, unsigned int datalen);
243 /* 0 == let it in */ 243 /* 0 == let it in */
@@ -294,7 +294,7 @@ extern int ebt_register_watcher(struct ebt_watcher *watcher);
294extern void ebt_unregister_watcher(struct ebt_watcher *watcher); 294extern void ebt_unregister_watcher(struct ebt_watcher *watcher);
295extern int ebt_register_target(struct ebt_target *target); 295extern int ebt_register_target(struct ebt_target *target);
296extern void ebt_unregister_target(struct ebt_target *target); 296extern void ebt_unregister_target(struct ebt_target *target);
297extern unsigned int ebt_do_table(unsigned int hook, struct sk_buff **pskb, 297extern unsigned int ebt_do_table(unsigned int hook, struct sk_buff *skb,
298 const struct net_device *in, const struct net_device *out, 298 const struct net_device *in, const struct net_device *out,
299 struct ebt_table *table); 299 struct ebt_table *table);
300 300
diff --git a/include/linux/netfilter_ipv4.h b/include/linux/netfilter_ipv4.h
index ceae87a4c891..1a63adf5c4c1 100644
--- a/include/linux/netfilter_ipv4.h
+++ b/include/linux/netfilter_ipv4.h
@@ -75,8 +75,8 @@ enum nf_ip_hook_priorities {
75#define SO_ORIGINAL_DST 80 75#define SO_ORIGINAL_DST 80
76 76
77#ifdef __KERNEL__ 77#ifdef __KERNEL__
78extern int ip_route_me_harder(struct sk_buff **pskb, unsigned addr_type); 78extern int ip_route_me_harder(struct sk_buff *skb, unsigned addr_type);
79extern int ip_xfrm_me_harder(struct sk_buff **pskb); 79extern int ip_xfrm_me_harder(struct sk_buff *skb);
80extern __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook, 80extern __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,
81 unsigned int dataoff, u_int8_t protocol); 81 unsigned int dataoff, u_int8_t protocol);
82#endif /*__KERNEL__*/ 82#endif /*__KERNEL__*/
diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h
index e992cd6b28f5..d79ed69cbc1f 100644
--- a/include/linux/netfilter_ipv4/ip_tables.h
+++ b/include/linux/netfilter_ipv4/ip_tables.h
@@ -337,7 +337,7 @@ struct ipt_error
337 .target.errorname = "ERROR", \ 337 .target.errorname = "ERROR", \
338} 338}
339 339
340extern unsigned int ipt_do_table(struct sk_buff **pskb, 340extern unsigned int ipt_do_table(struct sk_buff *skb,
341 unsigned int hook, 341 unsigned int hook,
342 const struct net_device *in, 342 const struct net_device *in,
343 const struct net_device *out, 343 const struct net_device *out,
diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h
index 9a720f05888f..7dc481ce7cba 100644
--- a/include/linux/netfilter_ipv6/ip6_tables.h
+++ b/include/linux/netfilter_ipv6/ip6_tables.h
@@ -336,7 +336,7 @@ extern void ip6t_init(void) __init;
336extern int ip6t_register_table(struct xt_table *table, 336extern int ip6t_register_table(struct xt_table *table,
337 const struct ip6t_replace *repl); 337 const struct ip6t_replace *repl);
338extern void ip6t_unregister_table(struct xt_table *table); 338extern void ip6t_unregister_table(struct xt_table *table);
339extern unsigned int ip6t_do_table(struct sk_buff **pskb, 339extern unsigned int ip6t_do_table(struct sk_buff *skb,
340 unsigned int hook, 340 unsigned int hook,
341 const struct net_device *in, 341 const struct net_device *in,
342 const struct net_device *out, 342 const struct net_device *out,
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 8101e8b0d7ba..f93f22b3d2ff 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -357,6 +357,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
357} 357}
358 358
359extern void kfree_skbmem(struct sk_buff *skb); 359extern void kfree_skbmem(struct sk_buff *skb);
360extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src);
360extern struct sk_buff *skb_clone(struct sk_buff *skb, 361extern struct sk_buff *skb_clone(struct sk_buff *skb,
361 gfp_t priority); 362 gfp_t priority);
362extern struct sk_buff *skb_copy(const struct sk_buff *skb, 363extern struct sk_buff *skb_copy(const struct sk_buff *skb,
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index c5b94c1a5ee2..bac17c59b24e 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -315,7 +315,7 @@ struct tcp_sock {
315 */ 315 */
316 u32 snd_ssthresh; /* Slow start size threshold */ 316 u32 snd_ssthresh; /* Slow start size threshold */
317 u32 snd_cwnd; /* Sending congestion window */ 317 u32 snd_cwnd; /* Sending congestion window */
318 u16 snd_cwnd_cnt; /* Linear increase counter */ 318 u32 snd_cwnd_cnt; /* Linear increase counter */
319 u32 snd_cwnd_clamp; /* Do not allow snd_cwnd to grow above this */ 319 u32 snd_cwnd_clamp; /* Do not allow snd_cwnd to grow above this */
320 u32 snd_cwnd_used; 320 u32 snd_cwnd_used;
321 u32 snd_cwnd_stamp; 321 u32 snd_cwnd_stamp;
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
new file mode 100644
index 000000000000..911c2cd02941
--- /dev/null
+++ b/include/net/inet_frag.h
@@ -0,0 +1,60 @@
1#ifndef __NET_FRAG_H__
2#define __NET_FRAG_H__
3
4struct inet_frag_queue {
5 struct hlist_node list;
6 struct list_head lru_list; /* lru list member */
7 spinlock_t lock;
8 atomic_t refcnt;
9 struct timer_list timer; /* when will this queue expire? */
10 struct sk_buff *fragments; /* list of received fragments */
11 ktime_t stamp;
12 int len; /* total length of orig datagram */
13 int meat;
14 __u8 last_in; /* first/last segment arrived? */
15
16#define COMPLETE 4
17#define FIRST_IN 2
18#define LAST_IN 1
19};
20
21#define INETFRAGS_HASHSZ 64
22
23struct inet_frags_ctl {
24 int high_thresh;
25 int low_thresh;
26 int timeout;
27 int secret_interval;
28};
29
30struct inet_frags {
31 struct list_head lru_list;
32 struct hlist_head hash[INETFRAGS_HASHSZ];
33 rwlock_t lock;
34 u32 rnd;
35 int nqueues;
36 int qsize;
37 atomic_t mem;
38 struct timer_list secret_timer;
39 struct inet_frags_ctl *ctl;
40
41 unsigned int (*hashfn)(struct inet_frag_queue *);
42 void (*destructor)(struct inet_frag_queue *);
43 void (*skb_free)(struct sk_buff *);
44};
45
46void inet_frags_init(struct inet_frags *);
47void inet_frags_fini(struct inet_frags *);
48
49void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f);
50void inet_frag_destroy(struct inet_frag_queue *q,
51 struct inet_frags *f, int *work);
52int inet_frag_evictor(struct inet_frags *f);
53
54static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f)
55{
56 if (atomic_dec_and_test(&q->refcnt))
57 inet_frag_destroy(q, f, NULL);
58}
59
60#endif
diff --git a/include/net/ip.h b/include/net/ip.h
index 3af3ed9d320b..840dd91b513b 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -160,6 +160,7 @@ DECLARE_SNMP_STAT(struct ipstats_mib, ip_statistics);
160#define IP_INC_STATS(field) SNMP_INC_STATS(ip_statistics, field) 160#define IP_INC_STATS(field) SNMP_INC_STATS(ip_statistics, field)
161#define IP_INC_STATS_BH(field) SNMP_INC_STATS_BH(ip_statistics, field) 161#define IP_INC_STATS_BH(field) SNMP_INC_STATS_BH(ip_statistics, field)
162#define IP_INC_STATS_USER(field) SNMP_INC_STATS_USER(ip_statistics, field) 162#define IP_INC_STATS_USER(field) SNMP_INC_STATS_USER(ip_statistics, field)
163#define IP_ADD_STATS_BH(field, val) SNMP_ADD_STATS_BH(ip_statistics, field, val)
163DECLARE_SNMP_STAT(struct linux_mib, net_statistics); 164DECLARE_SNMP_STAT(struct linux_mib, net_statistics);
164#define NET_INC_STATS(field) SNMP_INC_STATS(net_statistics, field) 165#define NET_INC_STATS(field) SNMP_INC_STATS(net_statistics, field)
165#define NET_INC_STATS_BH(field) SNMP_INC_STATS_BH(net_statistics, field) 166#define NET_INC_STATS_BH(field) SNMP_INC_STATS_BH(net_statistics, field)
@@ -177,10 +178,8 @@ extern int sysctl_ip_default_ttl;
177extern int sysctl_ip_nonlocal_bind; 178extern int sysctl_ip_nonlocal_bind;
178 179
179/* From ip_fragment.c */ 180/* From ip_fragment.c */
180extern int sysctl_ipfrag_high_thresh; 181struct inet_frags_ctl;
181extern int sysctl_ipfrag_low_thresh; 182extern struct inet_frags_ctl ip4_frags_ctl;
182extern int sysctl_ipfrag_time;
183extern int sysctl_ipfrag_secret_interval;
184extern int sysctl_ipfrag_max_dist; 183extern int sysctl_ipfrag_max_dist;
185 184
186/* From inetpeer.c */ 185/* From inetpeer.c */
@@ -332,9 +331,9 @@ enum ip_defrag_users
332 IP_DEFRAG_VS_FWD 331 IP_DEFRAG_VS_FWD
333}; 332};
334 333
335struct sk_buff *ip_defrag(struct sk_buff *skb, u32 user); 334int ip_defrag(struct sk_buff *skb, u32 user);
336extern int ip_frag_nqueues; 335int ip_frag_mem(void);
337extern atomic_t ip_frag_mem; 336int ip_frag_nqueues(void);
338 337
339/* 338/*
340 * Functions provided by ip_forward.c 339 * Functions provided by ip_forward.c
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
index 672564e5a81d..41870564df8e 100644
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h
@@ -464,10 +464,10 @@ struct ip_vs_protocol {
464 unsigned int proto_off, 464 unsigned int proto_off,
465 int inverse); 465 int inverse);
466 466
467 int (*snat_handler)(struct sk_buff **pskb, 467 int (*snat_handler)(struct sk_buff *skb,
468 struct ip_vs_protocol *pp, struct ip_vs_conn *cp); 468 struct ip_vs_protocol *pp, struct ip_vs_conn *cp);
469 469
470 int (*dnat_handler)(struct sk_buff **pskb, 470 int (*dnat_handler)(struct sk_buff *skb,
471 struct ip_vs_protocol *pp, struct ip_vs_conn *cp); 471 struct ip_vs_protocol *pp, struct ip_vs_conn *cp);
472 472
473 int (*csum_check)(struct sk_buff *skb, struct ip_vs_protocol *pp); 473 int (*csum_check)(struct sk_buff *skb, struct ip_vs_protocol *pp);
@@ -654,11 +654,11 @@ struct ip_vs_app
654 654
655 /* output hook: return false if can't linearize. diff set for TCP. */ 655 /* output hook: return false if can't linearize. diff set for TCP. */
656 int (*pkt_out)(struct ip_vs_app *, struct ip_vs_conn *, 656 int (*pkt_out)(struct ip_vs_app *, struct ip_vs_conn *,
657 struct sk_buff **, int *diff); 657 struct sk_buff *, int *diff);
658 658
659 /* input hook: return false if can't linearize. diff set for TCP. */ 659 /* input hook: return false if can't linearize. diff set for TCP. */
660 int (*pkt_in)(struct ip_vs_app *, struct ip_vs_conn *, 660 int (*pkt_in)(struct ip_vs_app *, struct ip_vs_conn *,
661 struct sk_buff **, int *diff); 661 struct sk_buff *, int *diff);
662 662
663 /* ip_vs_app initializer */ 663 /* ip_vs_app initializer */
664 int (*init_conn)(struct ip_vs_app *, struct ip_vs_conn *); 664 int (*init_conn)(struct ip_vs_app *, struct ip_vs_conn *);
@@ -832,8 +832,8 @@ register_ip_vs_app_inc(struct ip_vs_app *app, __u16 proto, __u16 port);
832extern int ip_vs_app_inc_get(struct ip_vs_app *inc); 832extern int ip_vs_app_inc_get(struct ip_vs_app *inc);
833extern void ip_vs_app_inc_put(struct ip_vs_app *inc); 833extern void ip_vs_app_inc_put(struct ip_vs_app *inc);
834 834
835extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff **pskb); 835extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff *skb);
836extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff **pskb); 836extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff *skb);
837extern int ip_vs_skb_replace(struct sk_buff *skb, gfp_t pri, 837extern int ip_vs_skb_replace(struct sk_buff *skb, gfp_t pri,
838 char *o_buf, int o_len, char *n_buf, int n_len); 838 char *o_buf, int o_len, char *n_buf, int n_len);
839extern int ip_vs_app_init(void); 839extern int ip_vs_app_init(void);
@@ -984,7 +984,6 @@ static inline char ip_vs_fwd_tag(struct ip_vs_conn *cp)
984 return fwd; 984 return fwd;
985} 985}
986 986
987extern int ip_vs_make_skb_writable(struct sk_buff **pskb, int len);
988extern void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp, 987extern void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp,
989 struct ip_vs_conn *cp, int dir); 988 struct ip_vs_conn *cp, int dir);
990 989
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 31b3f1b45a2b..cc796cbc1b26 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -120,12 +120,21 @@ extern int sysctl_mld_max_msf;
120 SNMP_INC_STATS##modifier(statname##_statistics, (field)); \ 120 SNMP_INC_STATS##modifier(statname##_statistics, (field)); \
121}) 121})
122 122
123#define _DEVADD(statname, modifier, idev, field, val) \
124({ \
125 struct inet6_dev *_idev = (idev); \
126 if (likely(_idev != NULL)) \
127 SNMP_ADD_STATS##modifier((_idev)->stats.statname, (field), (val)); \
128 SNMP_ADD_STATS##modifier(statname##_statistics, (field), (val));\
129})
130
123/* MIBs */ 131/* MIBs */
124DECLARE_SNMP_STAT(struct ipstats_mib, ipv6_statistics); 132DECLARE_SNMP_STAT(struct ipstats_mib, ipv6_statistics);
125 133
126#define IP6_INC_STATS(idev,field) _DEVINC(ipv6, , idev, field) 134#define IP6_INC_STATS(idev,field) _DEVINC(ipv6, , idev, field)
127#define IP6_INC_STATS_BH(idev,field) _DEVINC(ipv6, _BH, idev, field) 135#define IP6_INC_STATS_BH(idev,field) _DEVINC(ipv6, _BH, idev, field)
128#define IP6_INC_STATS_USER(idev,field) _DEVINC(ipv6, _USER, idev, field) 136#define IP6_INC_STATS_USER(idev,field) _DEVINC(ipv6, _USER, idev, field)
137#define IP6_ADD_STATS_BH(idev,field,val) _DEVADD(ipv6, _BH, idev, field, val)
129 138
130DECLARE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics); 139DECLARE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics);
131DECLARE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg_statistics); 140DECLARE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg_statistics);
@@ -240,7 +249,7 @@ extern int ip6_ra_control(struct sock *sk, int sel,
240 void (*destructor)(struct sock *)); 249 void (*destructor)(struct sock *));
241 250
242 251
243extern int ipv6_parse_hopopts(struct sk_buff **skbp); 252extern int ipv6_parse_hopopts(struct sk_buff *skb);
244 253
245extern struct ipv6_txoptions * ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt); 254extern struct ipv6_txoptions * ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt);
246extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt, 255extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
@@ -252,8 +261,8 @@ struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
252 261
253extern int ipv6_opt_accepted(struct sock *sk, struct sk_buff *skb); 262extern int ipv6_opt_accepted(struct sock *sk, struct sk_buff *skb);
254 263
255extern int ip6_frag_nqueues; 264int ip6_frag_nqueues(void);
256extern atomic_t ip6_frag_mem; 265int ip6_frag_mem(void);
257 266
258#define IPV6_FRAG_TIMEOUT (60*HZ) /* 60 seconds */ 267#define IPV6_FRAG_TIMEOUT (60*HZ) /* 60 seconds */
259 268
@@ -565,10 +574,8 @@ extern int inet6_hash_connect(struct inet_timewait_death_row *death_row,
565/* 574/*
566 * reassembly.c 575 * reassembly.c
567 */ 576 */
568extern int sysctl_ip6frag_high_thresh; 577struct inet_frags_ctl;
569extern int sysctl_ip6frag_low_thresh; 578extern struct inet_frags_ctl ip6_frags_ctl;
570extern int sysctl_ip6frag_time;
571extern int sysctl_ip6frag_secret_interval;
572 579
573extern const struct proto_ops inet6_stream_ops; 580extern const struct proto_ops inet6_stream_ops;
574extern const struct proto_ops inet6_dgram_ops; 581extern const struct proto_ops inet6_dgram_ops;
diff --git a/include/net/netfilter/ipv6/nf_conntrack_ipv6.h b/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
index 070d12cb4634..f703533fb4db 100644
--- a/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
+++ b/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
@@ -15,8 +15,7 @@ extern void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
15 struct net_device *out, 15 struct net_device *out,
16 int (*okfn)(struct sk_buff *)); 16 int (*okfn)(struct sk_buff *));
17 17
18extern unsigned int nf_ct_frag6_timeout; 18struct inet_frags_ctl;
19extern unsigned int nf_ct_frag6_low_thresh; 19extern struct inet_frags_ctl nf_frags_ctl;
20extern unsigned int nf_ct_frag6_high_thresh;
21 20
22#endif /* _NF_CONNTRACK_IPV6_H*/ 21#endif /* _NF_CONNTRACK_IPV6_H*/
diff --git a/include/net/netfilter/nf_conntrack_core.h b/include/net/netfilter/nf_conntrack_core.h
index 4056f5f08da1..a532e7b5ed6a 100644
--- a/include/net/netfilter/nf_conntrack_core.h
+++ b/include/net/netfilter/nf_conntrack_core.h
@@ -22,7 +22,7 @@
22 of connection tracking. */ 22 of connection tracking. */
23extern unsigned int nf_conntrack_in(int pf, 23extern unsigned int nf_conntrack_in(int pf,
24 unsigned int hooknum, 24 unsigned int hooknum,
25 struct sk_buff **pskb); 25 struct sk_buff *skb);
26 26
27extern int nf_conntrack_init(void); 27extern int nf_conntrack_init(void);
28extern void nf_conntrack_cleanup(void); 28extern void nf_conntrack_cleanup(void);
@@ -60,17 +60,17 @@ nf_ct_invert_tuple(struct nf_conntrack_tuple *inverse,
60extern struct nf_conntrack_tuple_hash * 60extern struct nf_conntrack_tuple_hash *
61nf_conntrack_find_get(const struct nf_conntrack_tuple *tuple); 61nf_conntrack_find_get(const struct nf_conntrack_tuple *tuple);
62 62
63extern int __nf_conntrack_confirm(struct sk_buff **pskb); 63extern int __nf_conntrack_confirm(struct sk_buff *skb);
64 64
65/* Confirm a connection: returns NF_DROP if packet must be dropped. */ 65/* Confirm a connection: returns NF_DROP if packet must be dropped. */
66static inline int nf_conntrack_confirm(struct sk_buff **pskb) 66static inline int nf_conntrack_confirm(struct sk_buff *skb)
67{ 67{
68 struct nf_conn *ct = (struct nf_conn *)(*pskb)->nfct; 68 struct nf_conn *ct = (struct nf_conn *)skb->nfct;
69 int ret = NF_ACCEPT; 69 int ret = NF_ACCEPT;
70 70
71 if (ct) { 71 if (ct) {
72 if (!nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) 72 if (!nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct))
73 ret = __nf_conntrack_confirm(pskb); 73 ret = __nf_conntrack_confirm(skb);
74 nf_ct_deliver_cached_events(ct); 74 nf_ct_deliver_cached_events(ct);
75 } 75 }
76 return ret; 76 return ret;
diff --git a/include/net/netfilter/nf_conntrack_helper.h b/include/net/netfilter/nf_conntrack_helper.h
index 0dcc4c828ce9..d7b2d5483a71 100644
--- a/include/net/netfilter/nf_conntrack_helper.h
+++ b/include/net/netfilter/nf_conntrack_helper.h
@@ -29,7 +29,7 @@ struct nf_conntrack_helper
29 29
30 /* Function to call when data passes; return verdict, or -1 to 30 /* Function to call when data passes; return verdict, or -1 to
31 invalidate. */ 31 invalidate. */
32 int (*help)(struct sk_buff **pskb, 32 int (*help)(struct sk_buff *skb,
33 unsigned int protoff, 33 unsigned int protoff,
34 struct nf_conn *ct, 34 struct nf_conn *ct,
35 enum ip_conntrack_info conntrackinfo); 35 enum ip_conntrack_info conntrackinfo);
diff --git a/include/net/netfilter/nf_nat_core.h b/include/net/netfilter/nf_nat_core.h
index c3cd127ba4bb..f29eeb9777e0 100644
--- a/include/net/netfilter/nf_nat_core.h
+++ b/include/net/netfilter/nf_nat_core.h
@@ -10,12 +10,12 @@
10extern unsigned int nf_nat_packet(struct nf_conn *ct, 10extern unsigned int nf_nat_packet(struct nf_conn *ct,
11 enum ip_conntrack_info ctinfo, 11 enum ip_conntrack_info ctinfo,
12 unsigned int hooknum, 12 unsigned int hooknum,
13 struct sk_buff **pskb); 13 struct sk_buff *skb);
14 14
15extern int nf_nat_icmp_reply_translation(struct nf_conn *ct, 15extern int nf_nat_icmp_reply_translation(struct nf_conn *ct,
16 enum ip_conntrack_info ctinfo, 16 enum ip_conntrack_info ctinfo,
17 unsigned int hooknum, 17 unsigned int hooknum,
18 struct sk_buff **pskb); 18 struct sk_buff *skb);
19 19
20static inline int nf_nat_initialized(struct nf_conn *ct, 20static inline int nf_nat_initialized(struct nf_conn *ct,
21 enum nf_nat_manip_type manip) 21 enum nf_nat_manip_type manip)
diff --git a/include/net/netfilter/nf_nat_helper.h b/include/net/netfilter/nf_nat_helper.h
index ec98ecf95fc8..58dd22687949 100644
--- a/include/net/netfilter/nf_nat_helper.h
+++ b/include/net/netfilter/nf_nat_helper.h
@@ -7,21 +7,21 @@
7struct sk_buff; 7struct sk_buff;
8 8
9/* These return true or false. */ 9/* These return true or false. */
10extern int nf_nat_mangle_tcp_packet(struct sk_buff **skb, 10extern int nf_nat_mangle_tcp_packet(struct sk_buff *skb,
11 struct nf_conn *ct, 11 struct nf_conn *ct,
12 enum ip_conntrack_info ctinfo, 12 enum ip_conntrack_info ctinfo,
13 unsigned int match_offset, 13 unsigned int match_offset,
14 unsigned int match_len, 14 unsigned int match_len,
15 const char *rep_buffer, 15 const char *rep_buffer,
16 unsigned int rep_len); 16 unsigned int rep_len);
17extern int nf_nat_mangle_udp_packet(struct sk_buff **skb, 17extern int nf_nat_mangle_udp_packet(struct sk_buff *skb,
18 struct nf_conn *ct, 18 struct nf_conn *ct,
19 enum ip_conntrack_info ctinfo, 19 enum ip_conntrack_info ctinfo,
20 unsigned int match_offset, 20 unsigned int match_offset,
21 unsigned int match_len, 21 unsigned int match_len,
22 const char *rep_buffer, 22 const char *rep_buffer,
23 unsigned int rep_len); 23 unsigned int rep_len);
24extern int nf_nat_seq_adjust(struct sk_buff **pskb, 24extern int nf_nat_seq_adjust(struct sk_buff *skb,
25 struct nf_conn *ct, 25 struct nf_conn *ct,
26 enum ip_conntrack_info ctinfo); 26 enum ip_conntrack_info ctinfo);
27 27
diff --git a/include/net/netfilter/nf_nat_protocol.h b/include/net/netfilter/nf_nat_protocol.h
index 14c7b2d7263c..04578bfe23e1 100644
--- a/include/net/netfilter/nf_nat_protocol.h
+++ b/include/net/netfilter/nf_nat_protocol.h
@@ -18,7 +18,7 @@ struct nf_nat_protocol
18 18
19 /* Translate a packet to the target according to manip type. 19 /* Translate a packet to the target according to manip type.
20 Return true if succeeded. */ 20 Return true if succeeded. */
21 int (*manip_pkt)(struct sk_buff **pskb, 21 int (*manip_pkt)(struct sk_buff *skb,
22 unsigned int iphdroff, 22 unsigned int iphdroff,
23 const struct nf_conntrack_tuple *tuple, 23 const struct nf_conntrack_tuple *tuple,
24 enum nf_nat_manip_type maniptype); 24 enum nf_nat_manip_type maniptype);
diff --git a/include/net/netfilter/nf_nat_rule.h b/include/net/netfilter/nf_nat_rule.h
index f9743187d57f..75d1825031d7 100644
--- a/include/net/netfilter/nf_nat_rule.h
+++ b/include/net/netfilter/nf_nat_rule.h
@@ -6,7 +6,7 @@
6 6
7extern int nf_nat_rule_init(void) __init; 7extern int nf_nat_rule_init(void) __init;
8extern void nf_nat_rule_cleanup(void); 8extern void nf_nat_rule_cleanup(void);
9extern int nf_nat_rule_find(struct sk_buff **pskb, 9extern int nf_nat_rule_find(struct sk_buff *skb,
10 unsigned int hooknum, 10 unsigned int hooknum,
11 const struct net_device *in, 11 const struct net_device *in,
12 const struct net_device *out, 12 const struct net_device *out,
diff --git a/include/net/protocol.h b/include/net/protocol.h
index 105bf12b0c79..1166ffb4b3ec 100644
--- a/include/net/protocol.h
+++ b/include/net/protocol.h
@@ -45,7 +45,7 @@ struct net_protocol {
45#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) 45#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
46struct inet6_protocol 46struct inet6_protocol
47{ 47{
48 int (*handler)(struct sk_buff **skb); 48 int (*handler)(struct sk_buff *skb);
49 49
50 void (*err_handler)(struct sk_buff *skb, 50 void (*err_handler)(struct sk_buff *skb,
51 struct inet6_skb_parm *opt, 51 struct inet6_skb_parm *opt,
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 77be396ca633..0e844845f3f4 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -1051,7 +1051,7 @@ extern int xfrm4_output(struct sk_buff *skb);
1051extern int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family); 1051extern int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family);
1052extern int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family); 1052extern int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family);
1053extern int xfrm6_rcv_spi(struct sk_buff *skb, __be32 spi); 1053extern int xfrm6_rcv_spi(struct sk_buff *skb, __be32 spi);
1054extern int xfrm6_rcv(struct sk_buff **pskb); 1054extern int xfrm6_rcv(struct sk_buff *skb);
1055extern int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr, 1055extern int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
1056 xfrm_address_t *saddr, u8 proto); 1056 xfrm_address_t *saddr, u8 proto);
1057extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family); 1057extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family);