NAME

  TC_NonZeroOverRouter - check Traffic Class Non-Zero over Router


TARGET

  Router


SYNOPSIS

  TC_NonZeroOverRouter.seq [-tooloption ...] -pkt TC_NonZeroOverRouter.def
    -tooloption : v6eval tool option
  See also IH_Router.def


INITIALIZATION

  None


TEST PROCEDURE

  Tester                      Target                      Tester
              (Link0)                     (Link1)
    |                           |                           |
    |-------------------------->|                           |
    |   Echo Request to Link0   |                           |
    |                           |                           |
    |                           |-------------------------->|
    |                           |   Neighbor Solicitation   |
    |                           |                           |
    |                           |<--------------------------|
    |                           |   Neighbor Advertisement  |
    |                           |                           |
    |                           |-------------------------->|
    |                           |   Echo Request from Link1 |
    |                           |                           |
    |                           |                           |
    |                           |<--------------------------|
    |                           |   Echo Reply to Link1     |
    |                           |                           |
    |<--------------------------|                           |
    |   Neighbor Solicitation   |                           |
    |                           |                           |
    |-------------------------->|                           |
    |   Neighbor Advertisement  |                           |
    |                           |                           |
    |<--------------------------|                           |
    |   Echo Reply from Link0   |                           |
    |                           |                           |
    v                           v                           v

  1. Send Echo Request to Link0
  2. Wait Echo Reply from Link1 or NS from Link1
  3. If NS received then send NA to Link1, and wait Echo Reply form Link1 again
  4. Receive Echo Reply from Link1
  5. Send Echo Request to Link1
  6. Wait Echo Reply from Link0 or NS from Link0
  7. If NS received then send NA to Link0, and wait Echo Reply form Link0 again
  8. Receive Echo Reply from Link0

  Echo Request to Link0 Data is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0x12 (8 bit)
            FlowLabel          = 0
            PayloadLength      = 16
            NextHeader         = 58 (ICMP)
            SourceAddress      = Tester Global Address (Link0)
            DestinationAddress = Tester Global Address (Link1)

        ICMP Echo Request
            Type           = 128 (Echo Request)
            Code           = 0
            Checksum       = (auto)
            Identifier     = 0xffff
            SequenceNumber = 1
            PayloadData    = {1,2,3,4,5,6,7,8}

  Neighbor Solicitation packet's IP source Address selection may be:
    - Link Local Address
    - Global Address
  This test IS NOT the Neighbor Discovery test, so admit both implementation.


JUDGMENT

  PASS: Echo Reply Received from Link0

        IPv6 Header
            Version             = 6
            Traffic Class       = 0x12 (8 bit)
            FlowLabel           = 0
            PayloadLength       = 16
            NextHeader          = 58 (ICMP)
            SourceAddress      = Tester Global Address (Link1)
            DestinationAddress = Tester Global Address (Link0)

        ICMP Echo Reply
            Type           = 129 (Echo Reply)
            Code           = 0
            Checksum       = (auto)
            Identifier     = 0xffff (same as Echo Request)
            SequenceNumber = 1 (same as Echo Request)
            PayloadData    = {1,2,3,4,5,6,7,8} (same as Echo Request)


REFERENCE

RFC2460 3. IPv6 Header Format

   Traffic Class        8-bit traffic class field.  See section 7.

7. Traffic Classes

   The 8-bit Traffic Class field in the IPv6 header is available for use
   by originating nodes and/or forwarding routers to identify and
   distinguish between different classes or priorities of IPv6 packets.
   At the point in time at which this specification is being written,
   there are a number of experiments underway in the use of the IPv4
   Type of Service and/or Precedence bits to provide various forms of
   "differentiated service" for IP packets, other than through the use
   of explicit flow set-up.  The Traffic Class field in the IPv6 header
   is intended to allow similar functionality to be supported in IPv6.
   It is hoped that those experiments will eventually lead to agreement
   on what sorts of traffic classifications are most useful for IP
   packets.  Detailed definitions of the syntax and semantics of all or
   some of the IPv6 Traffic Class bits, whether experimental or intended
   for eventual standardization, are to be provided in separate
   documents.

   The following general requirements apply to the Traffic Class field:

      o  The service interface to the IPv6 service within a node must
         provide a means for an upper-layer protocol to supply the value
         of the Traffic Class bits in packets originated by that upper-
         layer protocol.  The default value must be zero for all 8 bits.

      o  Nodes that support a specific (experimental or eventual
         standard) use of some or all of the Traffic Class bits are
         permitted to change the value of those bits in packets that
         they originate, forward, or receive, as required for that
         specific use.  Nodes should ignore and leave unchanged any bits
         of the Traffic Class field for which they do not support a
         specific use.

      o  An upper-layer protocol must not assume that the value of the
         Traffic Class bits in a received packet are the same as the
         value sent by the packet's source.


SEE ALSO

  perldoc V6evalTool