[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: State of play with Shim6 documents
Hi,
Please find my comments inline.
On Mon, 12 Mar 2007 14:26:07 -0700
Erik Nordmark <erik.nordmark@sun.com> wrote:
> Henderson, Thomas R wrote:
>
> > Besides the fragmentation issue, the way it is defined now, it seems
> > burdensome to implementations that want to implement the shim6 control
> > plane as a user-space daemon (as opposed to defining a separate protocol
> > number for shim6 control messages). My reading of IPv6 raw sockets
> > semantics suggests that they cannot be used.
> >
> > from RFC 3542:
> > "With IPv6 raw sockets will be
> > used for ICMPv6 and to read and write IPv6 datagrams containing a
> > Next Header field that the kernel does not process."
> >
> > This is not the case for shim6 since the kernel does process the payload
> > extension header in the data plane.
> >
> > Under current definition, how should a user-space shim6 implementation
> > use IPv6 sockets API to get only the control messages? If there isn't
> > an easy way, should we consider to separate the protocol numbers?
>
> Thomas,
>
> Are you saying that the *only* thing that prevents a complete shim6
> user-space implementation using standard APIs is the fact that shim6
> uses a single protocol number? I find that very hard to believe since I
> don't know of any standard APIs that allow me to insert the transmit
> side data plane of shim6 in the transmit path. The API RFCs clearly
> don't have such a mechanism, nor does the socket standard from the open
> group. Thus a user space shim6 implementation would require some
> non-standard extensions and/or modifications to the stack. Given that, I
> suspect one can figure out how to handle the above issue as well.
>
> The reason for using a single protocol number for shim6 is to increase
> the probability of uniform handling by existing firewalls. With a single
> protocol number existing firewalls would probably either let all such
> packets through, or block all of them. If we chose to instead use
> multiple protocol numbers there is the danger that some packets (such as
> the context establishment packets) make it through the firewall while
> others (such as the payload packets) are blocked. That possibility adds
> a new failure mode which is hard to deal with, especially if the probe
> messages get the same firewall treatment as the context establishment
> packets.
The above argument sounds reasonable to me. So I support having a single
protocol number for SHIM6.
In our implementation, in an inbound packet processing of an IP packet
whose next protocol field is IPPROTO_SHIM6, the kernel (Linux) verifies
the bit right after the SHIM6 common header and takes necessary action
as follows:
1) if the bit indicates the packet is data, do locator switching
2) else, do nothing and deliver the packet to RAW socket (if any)
Regards,
Shinta