tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Mobile IPv6 patch for NetBSD-current (revised)



Hello David,

I'm a co-developper of the MIP6 stack with keiichi.
Let me talk from the view point of the MIP6 design.


On 2008/02/18, at 9:12, David Young wrote:
   sys/net/mipsock.c
    sys/net/mipsock.h
Why a socket here?  Why not a character device (advantages:  
simplicity,
delegation w/ chmod/chown/chgrp)?  ioctls on the MIP pseudo-interface?
The function which uses the MIP pseudo interface is for mobile node  
only. Other functions such as home agent and correspondent node  
doesn't need touch the interface. As the design philosophy of the  
Mobile IPv6, I think the all MIP6 behavior should be done in the  
netinet6 as possible.
This is the analogy of router implementation that uses PF_ROUTE  
socket. With introducing the socket, routing protocol such as RIP or  
OSPF can be implemented on userland and actual packet forwarding is  
done in the kernel.
And as keiichi mentioned in his second mail, the MIP6 implementation  
needs both direction notification from kernel to userland and from  
userland to kernel. We thought the newly introduced socket would be  
best for the purpose. If the socket can't be applicable, the routing  
socket would be the alternative, however, using the routing socket  
might cause other side effects.

The general feeling I get by reading the patch is that it touches much
more code than is necessary or desirable.  I think that more of the
Mobile IPv6 functions can be put into the MIP pseudo-interface, with
the nice side-effect that you can probably use MIPv6 with the existing
fast-forwarding code, you can tap and filter MIPv6 packets before and
after encapsulation, and you keep clutter out of the IPv6 stack.
What should be done in the MIP6 are not only encapsulating/ 
decapsulating the packets. If MIP6 just only does capsulation, it  
could be done on the pseudo interface.
but actually it requires packet modification such like inserting or  
extracting extension headers based on the MIP6 specific database,  
binding update list or binding cache.
Therefore a lot of modification of the IPv6 stack are needed rather  
than putting it on the pseudo interface.
thanks,

--
Tsuyoshi MOMOSE




Home | Main Index | Thread Index | Old Index