# NAME

      SrcSelectRule2_deprecated.seq - Source Address Selection
                                      Check Rule 2(Prefer appropriate scope) with deprecated address

      Rule 2: Prefer appropriate scope.
        If Scope(SA) < Scope(SB): If Scope(SA) < Scope(D), then prefer SB
        and otherwise prefer SA.

      Source addresses used for this test are "preferred address" and "deprecated address".

# TARGET

      Host

# SYNOPSIS

      SrcSelectRule2_deprecated.seq [-tooloption ...] -pkt ADDR_SELECT.def
        -tooloption : v6eval tool option

# INITIALIZATION

      None

# TEST PROCEDURE

      This TEST performs the following Check procedures for
      every address group defined by Check 01 - *.

      *Check procedure

      1. Initialize :
         1.1. Set IPv6 Default Route in NUT
              (Default Router address = <TN-Link0-LinkLocalAddress>)
         1.2. Add Candidate Source Addresses (deprecated / public ) in NUT
              * deprecated address is added by RA(PreferredLifetime=1) (TN->NUT)
         1.3. Check Candidate Source Addresses by Ping6 (TN->NUT)
      2. Send Ping6 from NUT to Destination
         2.1. NUT send ICMPv6 echo request (NUT->TN)
      3. Judgment :
         if (recive packet's Destination & Source Addresses)
         = (expected Destination & Source Addresses), Check pass
      4. Cleanup :
         4.1. Delete Candidate Source Addresses in NUT
         4.2. Clear prefix list & NCE & default router list in NUT

            NUT    TN  Default Router  Destination
             |      |      |           |
             ======(INITIALIZE)=========
             |      |      |           |
             |<-<-<-+      |           | Set IPv6 Default Route
             |<-<-<-+      |           | Add Candidate Source Addresses
             |      |      |           |
             |<------------+           | RA (PreferredLifetime=1)
             |      |      |           |
             |<------------+           | Echo Request to Candidate Source Addresses 1
             +------------>|           | Echo Reply
             |      |      |           |
             |<------------+           | Echo Request to Candidate Source Addresses 2
             +------------>|           | Echo Reply
             |      |      |           |
             ======(INITIALIZE)=========
             |      |      |           |
             |<-<-<-+      |           | Excute ping6 command
             |      |      |           |
             +------------------------>| Echo Request
             |      |      |           |

      GS(Global Scope), OS(Organization Scope), SS(Site local Scope), LS(Link local Scope)
      LLA(Link Local Address)

      Check 01:
        Destination: 3fff::2(GS)
        Candidate Source Addresses: 3ffe::NUT'sEUI64(deprecated)(GS) or fec0::1(SS) or LLA(LS)
        Result: 3ffe::NUT'sEUI64(deprecated)(GS)

        Scope(LLA) < Scope(fec0::1): If Scope(LLA) < Scope(3fff::2),  yes, prefer fec0::1
        Scope(fec0::1) < Scope(3ffe::NUT'sEUI64): If Scope(fec0::1) < Scope(3fff::2),  yes, prefer 3ffe::NUT'sEUI64

      Check 02:
        Destination: 3fff::2(GS)
        Candidate Source Addresses: fec0::NUT'sEUI64(deprecated)(SS) or LLA(LS)
        Result: fec0::NUT'sEUI64(deprecated)(SS)

        Scope(LLA) < Scope(fec0::NUT'sEUI64): If Scope(LLA) < Scope(3ffe::2),  yes, prefer fec0::NUT'sEUI64

      Check 03:
        Destination: ff08::2(OS)
        Candidate Source Addresses: 3ffe::NUT'sEUI64(deprecated)(GS) or fec0::1(SS) or LLA(LS)
        Result: 3ffe::NUT'sEUI64(deprecated)(GS)

        Scope(LLA) < Scope(fec0::1): If Scope(LLA) < Scope(ff08::2),  yes, prefer fec0::1
        Scope(fec0::1) < Scope(3ffe::NUT'sEUI64): If Scope(fec0::1) < Scope(ff08::2),  yes, prefer 3ffe::NUT'sEUI64

      Check 04:
        Destination: ff08::2(OS)
        Candidate Source Addresses: fec0::NUT'sEUI64(deprecated)(SS) or LLA(LS)
        Result: fec0::NUT'sEUI64(SS)

        Scope(LLA) < Scope(fec0::NUT'sEUI64): If Scope(LLA) < Scope(ff08::2),  yes, prefer fec0::NUT'sEUI64

      Check 05:
        Destination: fec0::2(SS)
        Candidate Source Addresses: 3ffe::NUT'sEUI64(deprecated)(GS) or LLA(LS)
        Result: 3ffe::NUT'sEUI64(deprecated)(GS)

        Scope(LLA) < Scope(3ffe::NUT'sEUI64): If Scope(LLA) < Scope(fec0::2),  yes, prefer 3ffe::NUT'sEUI64

      Check 06:
        Destination: fec0::2(SS)
        Candidate Source Addresses: 3ffe::1(GS) or fec0::NUT'sEUI64(deprecated)(SS) or LLA(LS)
        Result: fec0::NUT'sEUI64(deprecated)(SS)

        Scope(LLA) < Scope(fec0::NUT'sEUI64): If Scope(LLA) < Scope(fec0::2),  yes, prefer fec0::NUT'sEUI64
        Scope(fec0::NUT'sEUI64) < Scope(3ffe::1): If Scope(fec0::NUT'sEUI64) < Scope(fec0::2),  no, prefer fec0::NUT'sEUI64

# JUDGEMENT

      Check 01:
        PASS: Receive Echo Request & source address = 3ffe::NUT'sEUI64(deprecated)

      Check 02:
        PASS: Receive Echo Request & source address = fec0::NUT'sEUI64(deprecated)

      Check 03:
        PASS: Receive Echo Request & source address = 3ffe::NUT'sEUI64(deprecated)

      Check 04:
        PASS: Receive Echo Request & source address = fec0::NUT'sEUI64(deprecated)

      Check 05:
        PASS: Receive Echo Request & source address = 3ffe::NUT'sEUI64(deprecated)

      Check 06:
        PASS: Receive Echo Request & source address = fec0::NUT'sEUI64(deprecated)

      TEST
        PASS: All Check = PASS

# SEE ALSO

      perldoc V6evalTool

      ADDR_SELECT.html "Default Address Selection for IPv6" Test Common Utility

      das_rules.html "Default Address Selection for IPv6" Rules