I have a question about Routing Headers (type 0), more specifically what happens when we receive an ICMPv6 msg where the offending packet contained a routing header.  From RFC 3542,  a routing header can contain 127 IPv6 next hop addresses.  Therefore, if a packet specified the maximum number of entries in a routing header, the routing header alone would exceed 1280 bytes.   Now, if an intermediate node needed to drop this packet and generate an ICMPv6 msg,  the ICMPv6 msg can only contain as much of the offending packet as will fit within minimum MTU (1280 bytes).  Therefore it is possible for the offending packet within the ICMPv6 msg to not contain the entire routing header.  This ICMPv6 msg will be sent to the original source of the packet, but the source address of the ICMPv6 msg will not be the original destination address of the packet since the destination address in the IPv6 header changes when there is a routing header.  So, how does the originating node correlate this ICMPv6 packet with the correct socket?  Since we can't rely on the entire routing header being present in the offending packet, we can't even rebuild what the original destination would have been.

My second question is that for IPv6, the Type 0 Routing header can contain 127 addresses.  This routing header is considered non-fragmentable.  If your interface is Ethernet with a standard 1492 MTU, this packet cannot be sent on that interface since the routing header alone would exceed 1492.  It seems inconsistent to me to allow such a large non-fragmentable header.  


Lori
e-mail: [EMAIL PROTECTED]

Reply via email to