Subject: Mobile IPv6 for NetBSD-current
To: None <tech-net@netbsd.org>
From: Keiichi SHIMA <keiichi@iijlab.net>
List: tech-net
Date: 05/24/2007 17:39:21
Hello all,

I'm now working on porting the Mobile IPv6 kernel part code developed  
by the SHISA project (http://www.mobileip.jp/) to NetBSD current as  
its optional feature.

I put a tarball of the diff file and some new files as http:// 
www.mobileip.jp/~keiichi/tmp/mobile-ipv6-20070524.tgz for review.

I want to import this change to the HEAD tree, however since it is a  
big change, I would like to ask any kind of comments or suggestions  
for this project.

The overview of the change is:

- the type 2 routing header processing
- the home address option (one of the destination options)
   processing.
- some new ICMPv6 messages defined in Mobile IPv6
- the mobility header processing (the new extension header for
   Mobile IPv6 signaling messages)
- the mip pseudo interface to represent a home network
- the mobility information message exchange mechanism between
   the kernel and user space programs (PF_MOBILITY socket)
- new IPv6 address properties (e.g. the HOME flag,
   the DEREGISTERING flag)
- the type 2 routing header socket API
- neighbor discovery extension (e.g. retuning home detection for
   mobile nodes, packet intercept by home agents)
- source address selection extension (home addresses are preferred)
- IPsec SA/SP db update according to the movement of mobile nodes.


With this change, the following files are modified:
      distrib/sets/lists/comp/mi
      lib/libc/net/rthdr.c
      sbin/ifconfig/af_inet6.c
      sbin/ifconfig/ifconfig.c
      sys/conf/files
      sys/net/Makefile
      sys/net/if_types.h
      sys/net/pfkeyv2.h
      sys/net/route.h
      sys/net/rtsock.c
      sys/netinet/Makefile
      sys/netinet/icmp6.h
      sys/netinet/in.h
      sys/netinet/ip6.h
      sys/netinet6/Makefile
      sys/netinet6/dest6.c
      sys/netinet6/files.netinet6
      sys/netinet6/in6.c
      sys/netinet6/in6.h
      sys/netinet6/in6_proto.c
      sys/netinet6/in6_src.c
      sys/netinet6/in6_var.h
      sys/netinet6/ip6_forward.c
      sys/netinet6/ip6_input.c
      sys/netinet6/ip6_output.c
      sys/netinet6/ip6_var.h
      sys/netinet6/ipsec.c
      sys/netinet6/nd6.c
      sys/netinet6/nd6.h
      sys/netinet6/nd6_nbr.c
      sys/netinet6/nd6_rtr.c
      sys/netinet6/raw_ip6.c
      sys/netinet6/route6.c
      sys/netkey/key.c
      sys/netkey/key.h
      sys/sys/socket.h

The change introduces these new files
      sys/net/if_mip.c
      sys/net/if_mip.h
      sys/net/mipsock.c
      sys/net/mipsock.h
      sys/netinet/ip6mh.h
      sys/netinet6/mip6.c
      sys/netinet6/mip6.h
      sys/netinet6/mip6_var.h


Best Regards,

---
Keiichi SHIMA
IIJ Research Laboratory <keiichi@iijlab.net>
WIDE Project <shima@wide.ad.jp>