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

Re: RFC2460 problem - error processing of Routing Header



Hi Ootomo,
  See comments inline.

Regards
Suresh

On Tue, 18 May 2004, OOTOMO Hiroyuki wrote:

>Hi, all.
>
>I found a problem in RFC2460, about error processing of Routing Header.
>It does not define the behavior of End Node when the End Node received
>the packet which has odd Hdr.Ext.Len.
>
>
>(Section 4.4)
>>    A Routing header is not examined or processed until it reaches the
>>    node identified in the Destination Address field of the IPv6 header.
>>    In that node, dispatching on the Next Header field of the immediately
>>    preceding header causes the Routing header module to be invoked,
>>    which, in the case of Routing Type 0, performs the following
>>    algorithm:
>> 
>>    if Segments Left = 0 {
>>       proceed to process the next header in the packet, whose type is
>>       identified by the Next Header field in the Routing header
>>    }
>>    else if Hdr Ext Len is odd {
>>          send an ICMP Parameter Problem, Code 0, message to the Source
>>          Address, pointing to the Hdr Ext Len field, and discard the
>>          packet
>>    }
><<< snip >>>
>
>
>When the IPv6 packet with the Routing Header is as follows (example):
>
>   [IPv6 Header]
>      Source Address: host-0
>      Destination Address: host-4
>      Next Header: Routing Header
>   [Routing Header]
>      Next Header: ICMPv6
>      Hdr.Ext.Len: 5
>      Routing Type: 0
>      Segment Left: 0
>      Address: router-1
>      Address: router-2
>      Address: router-3
>   [ICMPv6]
>      ICMPv6 Echo Request
>
>
>The Routing Header in this packet has Hdr.Ext.Len with invalid odd number
>and Segment Left with 0.

This packet will NEVER reach host-4. Consider the packet when it 
reaches router-1

   [IPv6 Header]
      Source Address: host-0
      Destination Address: router-1
      Next Header: Routing Header
   [Routing Header]
      Next Header: ICMPv6
      Hdr.Ext.Len: 5
      Routing Type: 0
      Segment Left: 3
      Address: router-2
      Address: router-3
      Address: host-4
   [ICMPv6]
      ICMPv6 Echo Request
   
router-1 will follow the algorithm for RH processing. The Segments Left is 
greater than 0. So it will check the header ext len and find it to be odd. 
It will drop the packet and send an ICMP message back to host-0. I guess 
the general idea is that the first destination node will detect the 
problem with the header ext len.

<snipped>

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