MIP6: Add Mobility header definition.
Subsystems (3)
PATCH 16/20 MIP6: Add Mobility header definition.
Add Mobility header definition for Mobile IPv6.
Based on MIPL2 kernel patch.
--- include/linux/in6.h | 1 + include/net/flow.h | 9 +++++++++ include/net/ipv6.h | 1 + include/net/mip6.h | 23 +++++++++++++++++++++++ 4 files changed, 34 insertions(+), 0 deletions(-)
include/linux/in6.h +1 -0
@@ -134,6 +134,7 @@ #define IPPROTO_FRAGMENT 44 /* IPv6 frag#define IPPROTO_ICMPV6 58/* ICMPv6 */ #define IPPROTO_NONE 59/* IPv6 no next header */ #define IPPROTO_DSTOPTS 60/* IPv6 destination options */ +#define IPPROTO_MH 135/* IPv6 mobility header */ /* * IPv6 TLV options.
include/net/flow.h +9 -0
@@ -72,12 +72,21 @@ #define FLOWI_FLAG_MULTIPATHOLDROUTE 0x0 } dnports;__u32 spi; + +#ifdef CONFIG_IPV6_MIP6 +struct { +__u8 type; + } mht; +#endif } uli_u;#define fl_ip_sport uli_u.ports.sport#define fl_ip_dport uli_u.ports.dport#define fl_icmp_type uli_u.icmpt.type#define fl_icmp_code uli_u.icmpt.code#define fl_ipsec_spi uli_u.spi +#ifdef CONFIG_IPV6_MIP6 +#define fl_mh_type uli_u.mht.type +#endif } __attribute__((__aligned__(BITS_PER_LONG/8)));#define FLOW_DIR_IN 0
include/net/ipv6.h +1 -0
@@ -40,6 +40,7 @@ #define NEXTHDR_AUTH 51 /* Authenticati#define NEXTHDR_ICMP 58/* ICMP for IPv6. */ #define NEXTHDR_NONE 59/* No next header */ #define NEXTHDR_DEST 60/* Destination options header. */ +#define NEXTHDR_MOBILITY 135/* Mobility header. */ #define NEXTHDR_MAX 255
include/net/mip6.h +23 -0
@@ -28,6 +28,29 @@ #define _NET_MIP6_H#define MIP6_OPT_PAD_1 0#define MIP6_OPT_PAD_N 1 +/* +* Mobility Header +*/ +struct ip6_mh { +__u8 ip6mh_proto; +__u8 ip6mh_hdrlen; +__u8 ip6mh_type; +__u8 ip6mh_reserved; +__u16 ip6mh_cksum; +/* Followed by type specific messages */ +__u8 data[0 ]; +} __attribute__ ((__packed__ )); + +#define IP6_MH_TYPE_BRR 0/* Binding Refresh Request */ +#define IP6_MH_TYPE_HOTI 1/* HOTI Message */ +#define IP6_MH_TYPE_COTI 2/* COTI Message */ +#define IP6_MH_TYPE_HOT 3/* HOT Message */ +#define IP6_MH_TYPE_COT 4/* COT Message */ +#define IP6_MH_TYPE_BU 5/* Binding Update */ +#define IP6_MH_TYPE_BACK 6/* Binding ACK */ +#define IP6_MH_TYPE_BERROR 7/* Binding Error */ +#define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR +extern int mip6_init (void );extern void mip6_fini (void );
Signature · 1 line
1.4.1