Skip to contentSkip to conversation

MIP6: Transformation support mobility header.

PATCH In review Masahide NAKAMURA 1 participant 1 message Jul 29, 2006

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 20/20 MIP6: Transformation support mobility header.

Transformation support mobility header.
Based on MIPL2 kernel patch.

---
 include/net/xfrm.h      |    5 +++++
 net/ipv6/xfrm6_policy.c |   15 +++++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)
include/net/xfrm.h +5 -0
index 0d14b1f..85398b0 100644
@@ -587,6 +587,11 @@ u16 xfrm_flowi_sport(struct flowi *fl)
 	case IPPROTO_ICMPV6:
 		port = htons(fl->fl_icmp_type);
 		break;
+#ifdef CONFIG_IPV6_MIP6
+	case IPPROTO_MH:
+		port = htons(fl->fl_mh_type);
+		break;
+#endif
 	default:
 		port = 0;	/*XXX*/
 	}
net/ipv6/xfrm6_policy.c +15 -0
index eaa1b0d..98e407e 100644
@@ -19,6 +19,9 @@ #include <net/xfrm.h>
 #include <net/ip.h>
 #include <net/ipv6.h>
 #include <net/ip6_route.h>
+#ifdef CONFIG_IPV6_MIP6
+#include <net/mip6.h>
+#endif
 
 static struct dst_ops xfrm6_dst_ops;
 static struct xfrm_policy_afinfo xfrm6_policy_afinfo;
@@ -247,6 +250,18 @@ _decode_session6(struct sk_buff *skb, st
 			fl->proto = nexthdr;
 			return;
 
+#ifdef CONFIG_IPV6_MIP6
+		case IPPROTO_MH:
+			if (pskb_may_pull(skb, skb->nh.raw + offset + 3 - skb->data)) {
+				struct ip6_mh *mh;
+				mh = (struct ip6_mh *)exthdr;
+
+				fl->fl_mh_type = mh->ip6mh_type;
+			}
+			fl->proto = nexthdr;
+			return;
+#endif
+
 		/* XXX Why are there these headers? */
 		case IPPROTO_AH:
 		case IPPROTO_ESP:
Signature · 1 line
1.4.1