NAME

  RH_FromSourceNode - check Routing Header Processing (from Source Node)


TARGET

  Router


SYNOPSIS

  RH_FromSourceNode.seq [-tooloption ...] -pkt RH_FromSourceNode.def
    -tooloption : v6eval tool option
  See also RH.def


INITIALIZATION

  None


TEST PROCEDURE

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

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

  Network topology

          (Link0)        (Link1)
    Tester       Target         Tester
    Host1 ------ Router1 ------ Router2 ------ Router3 ------ Host2
         Global 0       Global 1       Global 3       Global 5

  Packet to Link0 is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 56
            NextHeader         = 43 (Routing Header)
            HopLimit           = 64
            SourceAddress      = Global 0 Address (Host1)
            DestinationAddress = Global 0 Address (Router1)

        Routing Header
            NextHeader      = 59 (No Next Header)
            HeaderExtLength = 6 
            RoutingType     = 0 
            SegmentsLeft    = 3 
            Address[1]      = Global 1 Address (Router2)
            Address[2]      = Global 3 Address (Router3)
            Address[3]      = Global 5 Address (Host2)

  Packet to Link1 is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 56
            NextHeader         = 43 (Routing Header)
            HopLimit           = 64
            SourceAddress      = Global 5 Address (Host2)
            DestinationAddress = Global 1 Address (Router1)

        Routing Header
            NextHeader      = 59 (No Next Header)
            HeaderExtLength = 6 
            RoutingType     = 0 
            SegmentsLeft    = 1 
            Address[1]      = Global 5 Address (Router3)
            Address[2]      = Global 3 Address (Router2)
            Address[3]      = Global 0 Address (Host1)

  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.


JUDGEMENT

  PASS: Packet from Link1 and Packet from Link0 Received

    Packet from Link1 is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 56
            NextHeader         = 43 (Routing Header)
            HopLimit           = 63 (decremented)
            SourceAddress      = Global 0 Address (Host1)
            DestinationAddress = Global 1 Address (Router2) <-+
                                                              |
        Routing Header                                        |
            NextHeader      = 59 (No Next Header)             | (swapped)
            HeaderExtLength = 6                               |
            RoutingType     = 0                               |
            SegmentsLeft    = 2 (decremented)                 |
            Address[1]      = Global 0 Address (Router1) <----+
            Address[2]      = Global 3 Address (Router3)
            Address[3]      = Global 5 Address (Host2)

    Packet from Link0 is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 56
            NextHeader         = 43 (Routing Header)
            HopLimit           = 63 (decremented)
            SourceAddress      = Global 5 Address (Host2)
            DestinationAddress = Global 0 Address (Host1) <---+
                                                              |
        Routing Header                                        |
            NextHeader      = 59 (No Next Header)             | (swapped)
            HeaderExtLength = 6                               |
            RoutingType     = 0                               |
            SegmentsLeft    = 0 (decremented)                 |
            Address[1]      = Global 5 Address (Router3)      |
            Address[2]      = Global 3 Address (Router2)      |
            Address[3]      = Global 1 Address (Router1) <----+


SEE ALSO

  perldoc V6evalTool