NAME

recvReservedMulticast - verifes NUT does not forward a packet that include the Routing Header w/ Loopback/Unspecified/Multicast


TARGET

  Router


INITIALIZATION

  N/A


TEST PROCEDURE

  TN                             NUT
  ----------------------------------

  ==== Packet w/ Routing Header ===>
       src=TN's global
       dst=NUT's global
       Routing Header:
         Segment Left=3
         Address[2]=Loopback/Unspecified/Multicast
         Address[1]=Global
         Address[0]-Global

  Judgement:
    NUT must take one of the following actions:
    (1) Sending nothing.
    (2) Sending an ICMP Unreachable Message to TN.
    (3) Sending an ICMP Parameter Problem Message to TN.


JUDGEMENT

  ================+=========================================
   An Address in  | Action
  ================+=========================================
   Routing Header | - Return ICMP Unreachable Message
                  | - Return ICMP parameter Problem Message
                  | - Silently discard
  ----------------+-----------------------------------------
   Loopback       | - Return ICMP Unreachable Message
                  | - Return ICMP parameter Problem Message
                  | - Silently discard
  ----------------+-----------------------------------------
   Unspecified    | - Return ICMP Unreachable Message
                  | - Return ICMP parameter Problem Message
                  | - Silently discard
  ----------------+-----------------------------------------
   Multicast      | - Silently discard
  ================+=========================================


TERMINATION

  N/A


NOTE

  N/A


REFERENCE

RFC2373

2.5.2 The Unspecified Address
The address 0:0:0:0:0:0:0:0 is called the unspecified address. It must never be assigned to any node. It indicates the absence of an address. One example of its use is in the Source Address field of any IPv6 packets sent by an initializing host before it has learned its own address.
The unspecified address must not be used as the destination address of IPv6 packets or in IPv6 Routing Headers.
2.5.3 The Loopback Address
The unicast address 0:0:0:0:0:0:0:1 is called the loopback address. It may be used by a node to send an IPv6 packet to itself. It may never be assigned to any physical interface. It may be thought of as being associated with a virtual interface (e.g., the loopback interface).
The loopback address must not be used as the source address in IPv6 packets that are sent outside of a single node. An IPv6 packet with a destination address of loopback must never be sent outside of a single node and must never be forwarded by an IPv6 router.
2.7 Multicast Addresses
Multicast addresses must not be used as source addresses in IPv6 packets or appear in any routing header.
RFC2460
4.4 Routing Header
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 } else { compute n, the number of addresses in the Routing header, by dividing Hdr Ext Len by 2
if Segments Left is greater than n { send an ICMP Parameter Problem, Code 0, message to the Source Address, pointing to the Segments Left field, and discard the packet } else { decrement Segments Left by 1; compute i, the index of the next address to be visited in the address vector, by subtracting Segments Left from n
if Address [i] or the IPv6 Destination Address is multicast { discard the packet } else { swap the IPv6 Destination Address and Address[i]
if the IPv6 Hop Limit is less than or equal to 1 { send an ICMP Time Exceeded -- Hop Limit Exceeded in Transit message to the Source Address and discard the packet } else { decrement the Hop Limit by 1
resubmit the packet to the IPv6 module for transmission to the new destination }
} } }
RFC2463
3. ICMPv6 Error Messages 3.1 Destination Unreachable Message
Description
A Destination Unreachable message SHOULD be generated by a router, or by the IPv6 layer in the originating node, in response to a packet that cannot be delivered to its destination address for reasons other than congestion. (An ICMPv6 message MUST NOT be generated if a packet is dropped due to congestion.)
If the reason for the failure to deliver is lack of a matching entry in the forwarding node's routing table, the Code field is set to 0 (NOTE: this error can occur only in nodes that do not hold a "default route" in their routing tables).
If the reason for the failure to deliver is administrative prohibition, e.g., a "firewall filter", the Code field is set to 1.
If there is any other reason for the failure to deliver, e.g., inability to resolve the IPv6 destination address into a corresponding link address, or a link-specific problem of some sort, then the Code field is set to 3.
A destination node SHOULD send a Destination Unreachable message with Code 4 in response to a packet for which the transport protocol (e.g., UDP) has no listener, if that transport protocol has no alternative means to inform the sender.
Upper layer notification
A node receiving the ICMPv6 Destination Unreachable message MUST notify the upper-layer process.
3.4 Parameter Problem Message
Description
If an IPv6 node processing a packet finds a problem with a field in the IPv6 header or extension headers such that it cannot complete processing the packet, it MUST discard the packet and SHOULD send an ICMPv6 Parameter Problem message to the packet's source, indicating the type and location of the problem.
The pointer identifies the octet of the original packet's header where the error was detected. For example, an ICMPv6 message with Type field = 4, Code field = 1, and Pointer field = 40 would indicate that the IPv6 extension header following the IPv6 header of the original packet holds an unrecognized Next Header field value.
Upper layer notification
A node receiving this ICMPv6 message MUST notify the upper-layer process.


SEE ALSO

  perldoc V6evalTool
  perldoc V6evalRemote