diff options
author | Masahide NAKAMURA <nakam@linux-ipv6.org> | 2006-08-23 23:39:03 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 18:07:03 -0400 |
commit | 2ce4272a699c731b9736d76126dc742353e381db (patch) | |
tree | ce60343164fa72dde2207d4c4045554662efa141 /net/ipv6/xfrm6_policy.c | |
parent | 6e8f4d48b265225bdf437bbf3151b0d6700dda22 (diff) |
[IPV6] MIP6: Transformation support mobility header.
Transformation support mobility header.
Based on MIPL2 kernel patch.
Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/xfrm6_policy.c')
-rw-r--r-- | net/ipv6/xfrm6_policy.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c index 729b4748d6d3..98c2fe449b3f 100644 --- a/net/ipv6/xfrm6_policy.c +++ b/net/ipv6/xfrm6_policy.c | |||
@@ -18,6 +18,9 @@ | |||
18 | #include <net/ip.h> | 18 | #include <net/ip.h> |
19 | #include <net/ipv6.h> | 19 | #include <net/ipv6.h> |
20 | #include <net/ip6_route.h> | 20 | #include <net/ip6_route.h> |
21 | #ifdef CONFIG_IPV6_MIP6 | ||
22 | #include <net/mip6.h> | ||
23 | #endif | ||
21 | 24 | ||
22 | static struct dst_ops xfrm6_dst_ops; | 25 | static struct dst_ops xfrm6_dst_ops; |
23 | static struct xfrm_policy_afinfo xfrm6_policy_afinfo; | 26 | static struct xfrm_policy_afinfo xfrm6_policy_afinfo; |
@@ -270,6 +273,18 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl) | |||
270 | fl->proto = nexthdr; | 273 | fl->proto = nexthdr; |
271 | return; | 274 | return; |
272 | 275 | ||
276 | #ifdef CONFIG_IPV6_MIP6 | ||
277 | case IPPROTO_MH: | ||
278 | if (pskb_may_pull(skb, skb->nh.raw + offset + 3 - skb->data)) { | ||
279 | struct ip6_mh *mh; | ||
280 | mh = (struct ip6_mh *)exthdr; | ||
281 | |||
282 | fl->fl_mh_type = mh->ip6mh_type; | ||
283 | } | ||
284 | fl->proto = nexthdr; | ||
285 | return; | ||
286 | #endif | ||
287 | |||
273 | /* XXX Why are there these headers? */ | 288 | /* XXX Why are there these headers? */ |
274 | case IPPROTO_AH: | 289 | case IPPROTO_AH: |
275 | case IPPROTO_ESP: | 290 | case IPPROTO_ESP: |