# NAME

            rfc2765_4.1_options.seq - Verify IPv6 <-> IPv4 header
            translation in accordance with RFC2765 [SIIT]

# TARGET

            Router

# SYNOPSIS

            rfc2765_4.1_options.seq [-tooloption ...]
            -p rfc2765_4.1_options.def

# INITIALIZATION

    	Before this test starts, run initialize.seq.

# TEST PROCEDURE

            This test verifies that NUT drops packets with unexpired Routing
            Headers, and sends back ICMPv6 Parameter Problem errors.

            Network Topology

            Link0
            --------------------------
                |               |
               TN              NUT
                |               |
            --------------------------
            Link1

            TN -- (Link0) -- NUT        NUT -- (Link1) -- TN

            ---------------------      ------------------------

            1.1.
            ===================>
            ICMPv6 Echo Request
                    IPv6 Header
                            src address : TN LINK0 IPv4 embedded IPv6 address
                            dst address : TN LINK1 IPv4 embedded IPv6 address
                    Routing option header
                            RoutingType = 1;
                            SegmentsLeft = 0;
                            Address = TN LINK1 IPv4 embedded IPv6 address
                    ICMPv6 echo request

            1.2.
            <<JUDGMENT>>
            <===================
            ICMPv6 Parameter Problem (Type 4, Code 0)
                    IPv6 Header
                            src address : NUT LINK0 global IPv6 address
                            dst address : TN LINK0 IPv4 embedded IPv6 address
                    ICMPv6 Parameter Problem
                            Type = 4
                            Code = 0
                            Pointer = 43
                            Payload = IPv6 Echo Request packet

            2.1.
            ===================>
            ICMPv6 Echo Request
                    IPv6 Header
                            src address : TN LINK0 IPv4 embedded IPv6 address
                            dst address : TN LINK1 IPv4 embedded IPv6 address
                    Hop-By-Hop option header
                            PadN (3 bytes)
                            Pad1 (1 bytes)
                            Pad1 (1 bytes)
                            Pad1 (1 bytes)
                    Routing option header
                            RoutingType = 0;
                            SegmentsLeft = 1;
                            Address = TN LINK1 IPv4 embedded IPv6 address
                    Fragment option header
                            NextHeader = 60; // Destination option header
                    Destination option header
                            PadN (3 bytes)
                            Pad1 (1 bytes)
                            Pad1 (1 bytes)
                            Pad1 (1 bytes)
                    ICMPv6 echo request

            2.2.
            <<JUDGMENT>>
            <===================
            ICMPv6 Parameter Problem (Type 4, Code 0)
                    IPv6 Header
                            src address : NUT LINK0 global IPv6 address
                            dst address : TN LINK0 IPv4 embedded IPv6 address
                    ICMPv6 Parameter Problem
                            Type = 4
                            Code = 0
                            Pointer = 51
                            Payload = IPv6 Echo Request packet

# JUDGMENT

            << PASS >>
                    NUT sends back two ICMPv6 Parameter Problem packets.

            << FAIL >>
                    NUT translates the ICMPv6 echo requests to
                    ICMPv4 echo requests or doesn't send back two
                    ICMPv6 Parameter Problem packets.

# NOTE

# REFERENCE

RFC2765

4.1. Translating IPv6 Headers into IPv4 Headers

       If a routing header with a non-zero Segments Left field is present
       then the packet MUST NOT be translated, and an ICMPv6 "parameter
       problem/ erroneous header field encountered" (Type 4/Code 0) error
       message, with the Pointer field indicating the first byte of the
       Segments Left field, SHOULD be returned to the sender.

# SEE ALSO

            perldoc V6evalTool