diff options
author | Patrick McHardy <kaber@trash.net> | 2006-01-07 02:02:34 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-01-07 15:57:29 -0500 |
commit | 951dbc8ac714b04c36296b8b5c36c8e036ce433f (patch) | |
tree | 7f3599987f6b6db765f66c65d5c1cefe1457ea6a /net/ipv6/xfrm6_tunnel.c | |
parent | 16a6677fdf1d1194f688f8291b06fbaff248c353 (diff) |
[IPV6]: Move nextheader offset to the IP6CB
Move nextheader offset to the IP6CB to make it possible to pass a
packet to ip6_input_finish multiple times and have it skip already
parsed headers. As a nice side effect this gets rid of the manual
hopopts skipping in ip6_input_finish.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/xfrm6_tunnel.c')
-rw-r--r-- | net/ipv6/xfrm6_tunnel.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv6/xfrm6_tunnel.c b/net/ipv6/xfrm6_tunnel.c index fbef7826a74f..da09ff258648 100644 --- a/net/ipv6/xfrm6_tunnel.c +++ b/net/ipv6/xfrm6_tunnel.c | |||
@@ -397,7 +397,7 @@ int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler) | |||
397 | 397 | ||
398 | EXPORT_SYMBOL(xfrm6_tunnel_deregister); | 398 | EXPORT_SYMBOL(xfrm6_tunnel_deregister); |
399 | 399 | ||
400 | static int xfrm6_tunnel_rcv(struct sk_buff **pskb, unsigned int *nhoffp) | 400 | static int xfrm6_tunnel_rcv(struct sk_buff **pskb) |
401 | { | 401 | { |
402 | struct sk_buff *skb = *pskb; | 402 | struct sk_buff *skb = *pskb; |
403 | struct xfrm6_tunnel *handler = xfrm6_tunnel_handler; | 403 | struct xfrm6_tunnel *handler = xfrm6_tunnel_handler; |
@@ -405,11 +405,11 @@ static int xfrm6_tunnel_rcv(struct sk_buff **pskb, unsigned int *nhoffp) | |||
405 | u32 spi; | 405 | u32 spi; |
406 | 406 | ||
407 | /* device-like_ip6ip6_handler() */ | 407 | /* device-like_ip6ip6_handler() */ |
408 | if (handler && handler->handler(pskb, nhoffp) == 0) | 408 | if (handler && handler->handler(pskb) == 0) |
409 | return 0; | 409 | return 0; |
410 | 410 | ||
411 | spi = xfrm6_tunnel_spi_lookup((xfrm_address_t *)&iph->saddr); | 411 | spi = xfrm6_tunnel_spi_lookup((xfrm_address_t *)&iph->saddr); |
412 | return xfrm6_rcv_spi(pskb, nhoffp, spi); | 412 | return xfrm6_rcv_spi(pskb, spi); |
413 | } | 413 | } |
414 | 414 | ||
415 | static void xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | 415 | static void xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt, |