[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Mobile IPv6 patch for NetBSD-current (revised)
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:
Why a socket here? Why not a character device (advantages:
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.
Main Index |
Thread Index |