aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorMasahide NAKAMURA <nakam@linux-ipv6.org>2006-08-23 23:34:26 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-09-22 18:07:00 -0400
commit2b741653b6c824fe7520ee92b6795f11c5f24b24 (patch)
treeeea6f085896ad74e53aa44c00f1b004775e5ef83 /include/net
parente23c7194a8a21e96b99106bdabde94614c4b84d6 (diff)
[IPV6] MIP6: Add Mobility header definition.
Add Mobility header definition for Mobile IPv6. Based on MIPL2 kernel patch. This patch was also written by: Antti Tuominen <anttit@tcs.hut.fi> 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 'include/net')
-rw-r--r--include/net/flow.h9
-rw-r--r--include/net/ipv6.h1
-rw-r--r--include/net/mip6.h23
3 files changed, 33 insertions, 0 deletions
diff --git a/include/net/flow.h b/include/net/flow.h
index 21d988b2058a..e0522914316e 100644
--- a/include/net/flow.h
+++ b/include/net/flow.h
@@ -72,12 +72,21 @@ struct flowi {
72 } dnports; 72 } dnports;
73 73
74 __u32 spi; 74 __u32 spi;
75
76#ifdef CONFIG_IPV6_MIP6
77 struct {
78 __u8 type;
79 } mht;
80#endif
75 } uli_u; 81 } uli_u;
76#define fl_ip_sport uli_u.ports.sport 82#define fl_ip_sport uli_u.ports.sport
77#define fl_ip_dport uli_u.ports.dport 83#define fl_ip_dport uli_u.ports.dport
78#define fl_icmp_type uli_u.icmpt.type 84#define fl_icmp_type uli_u.icmpt.type
79#define fl_icmp_code uli_u.icmpt.code 85#define fl_icmp_code uli_u.icmpt.code
80#define fl_ipsec_spi uli_u.spi 86#define fl_ipsec_spi uli_u.spi
87#ifdef CONFIG_IPV6_MIP6
88#define fl_mh_type uli_u.mht.type
89#endif
81 __u32 secid; /* used by xfrm; see secid.txt */ 90 __u32 secid; /* used by xfrm; see secid.txt */
82} __attribute__((__aligned__(BITS_PER_LONG/8))); 91} __attribute__((__aligned__(BITS_PER_LONG/8)));
83 92
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 8e6ec6063f8c..72bf47b2a4e0 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -40,6 +40,7 @@
40#define NEXTHDR_ICMP 58 /* ICMP for IPv6. */ 40#define NEXTHDR_ICMP 58 /* ICMP for IPv6. */
41#define NEXTHDR_NONE 59 /* No next header */ 41#define NEXTHDR_NONE 59 /* No next header */
42#define NEXTHDR_DEST 60 /* Destination options header. */ 42#define NEXTHDR_DEST 60 /* Destination options header. */
43#define NEXTHDR_MOBILITY 135 /* Mobility header. */
43 44
44#define NEXTHDR_MAX 255 45#define NEXTHDR_MAX 255
45 46
diff --git a/include/net/mip6.h b/include/net/mip6.h
index 42b65bace122..fd43178faace 100644
--- a/include/net/mip6.h
+++ b/include/net/mip6.h
@@ -28,6 +28,29 @@
28#define MIP6_OPT_PAD_1 0 28#define MIP6_OPT_PAD_1 0
29#define MIP6_OPT_PAD_N 1 29#define MIP6_OPT_PAD_N 1
30 30
31/*
32 * Mobility Header
33 */
34struct ip6_mh {
35 __u8 ip6mh_proto;
36 __u8 ip6mh_hdrlen;
37 __u8 ip6mh_type;
38 __u8 ip6mh_reserved;
39 __u16 ip6mh_cksum;
40 /* Followed by type specific messages */
41 __u8 data[0];
42} __attribute__ ((__packed__));
43
44#define IP6_MH_TYPE_BRR 0 /* Binding Refresh Request */
45#define IP6_MH_TYPE_HOTI 1 /* HOTI Message */
46#define IP6_MH_TYPE_COTI 2 /* COTI Message */
47#define IP6_MH_TYPE_HOT 3 /* HOT Message */
48#define IP6_MH_TYPE_COT 4 /* COT Message */
49#define IP6_MH_TYPE_BU 5 /* Binding Update */
50#define IP6_MH_TYPE_BACK 6 /* Binding ACK */
51#define IP6_MH_TYPE_BERROR 7 /* Binding Error */
52#define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR
53
31extern int mip6_init(void); 54extern int mip6_init(void);
32extern void mip6_fini(void); 55extern void mip6_fini(void);
33 56