* Hing-Kam (Kam) Lam | 2010-11-17 05:23:47 [+0530]:

>The draft does not do that. I dont know which version you have been
>reading. You should read draft-ietf-6man-exthdr and
>draft-bhatia-6man-update-ipv6-ext-hdr to get an idea of the problem
>that this draft is attempting to solve.

Hing is absolute correct - this mechanism is necessary, there are no valuable
alternatives.

Or to quote the Linux Kernel:

int ipv6_ext_hdr(u8 nexthdr)
{
        /*
         * find out if nexthdr is an extension header or a protocol
         */
        return   (nexthdr == NEXTHDR_HOP)       ||
                 (nexthdr == NEXTHDR_ROUTING)   ||
                 (nexthdr == NEXTHDR_FRAGMENT)  ||
                 (nexthdr == NEXTHDR_AUTH)      ||
                 (nexthdr == NEXTHDR_NONE)      ||
                 (nexthdr == NEXTHDR_DEST);
}


If the extension header is no well known extension header (see the code) the
network stack must stop processing of the packet! The kernel will drop the
packet. Why? Because Transport Protocols on top of IPv6 does not underly a TLV
coding. If the Kernel does not know the extension header type (e.g.
NEXTHDR_FRAGMENT) what should he do? The kernel does not know if it is a
unknown extension header or a unknown transport protocol. And because a
transport protocol has no TLV coding he cannot skip over a transport protocol.
Think about it, it may take some time but the current mechanism was the only
workable way. The alternative would be to re-define all existing Transport
protocols (TCP2, UDP2), this time with a identical TLV encoding.

Another solution where to introduce a white list for transport protocol types
(TCP, UDP, ...) - but this time you would restrict the development of new
transport protocols. If the kernel does not know the protocol type he must skip
this packet. Same problem but this time even worse, because you limit the
transport protocol development.

The situation now is that the Kernel must know all Extension Header Types, a
unknown Extension header will stop the processing chain.

Hagen
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to