NAME

  DstSelectRule8.seq - Destination Address Selection
                       Check Rule 8(Prefer smaller scopee)

  Rule 8: Prefer smaller scope. 
    If Scope(DA) < Scope(DB), then prefer DA.

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


TARGET

  Host and Router


SYNOPSIS

  DstSelectRule8.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. Set DNS setting in NUT
     1.3. Add Candidate Source Addresses in NUT
     1.4. Check Candidate Source Addresses by Ping6 (TN->NUT)
  2. Send Ping6 from NUT to Destination(FQDN)
     2.1. NUT send DNS query (question) (NUT->TN)
     2.2. TN send DNS query (answer) (TN->NUT)
     2.3. 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
     4.3. Remove DNS setting in NUT

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

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

  *Following address grouup does not match Rule 1-7

  Check 01:
    DNS Address: 3ffe::9
    Candidate Source Addresses: 3ffe::1(GS) or fec0::1(SS) or LLA(LS)
    Destination Address List: 3fff::2(GS) or fec0::2(SS) or fe80::2(GS)
    Result: fe80::2 (src LLA) then fec0::2 (src fec0::1) then 3fff::2 (src 3ffe::1)

    Scope(fec0::2) < Scope(3fff::2), prefer fec0::2
    Scope(fe80::2) < Scope(fec0::2), prefer fe80::2

  Check 02:
    DNS Address: fec0::9
    Candidate Source Addresses: 3ffe::1(GS) or fec0::1(SS) or LLA(LS)
    Destination Address List: 3fff::2(GS) or fec0::2(SS)
    Result: fec0::2 (src fec0::1) then 3fff::2 (src 3ffe::1)

    Scope(fec0::2) < Scope(3fff::2), prefer fec0::2

  Check 03:
    DNS Address: fec0::9
    Candidate Source Addresses: fec0::1(SS) or LLA(LS)
    Destination Address List: fec0::2(SS) or fe80::2(LS)
    Result: fe80::2 (src LLA) then fec0::2 (src fec0::1)

    Scope(fe80::2) < Scope(fec0::2), prefer fe80::2

  Check 04:
    DNS Address: 3ffe::9
    Candidate Source Addresses: 3ffe::1(GS) or LLA(LS)
    Destination Address List: 3fff::2(GS) or fe80::2(LS)
    Result: fe80::2 (src LLA) then 3fff::2 (src 3ffe::1)

    Scope(fe80::2) < Scope(fec0::2), prefer fe80::2


JUDGEMENT

  Check 01:
    PASS: Receive Echo Request & destination(source) = fe80::2(LLA)

  Check 02:
    PASS: Receive Echo Request & destination(source) = fec0::2(fec0::1)

  Check 03:
    PASS: Receive Echo Request & destination(source) = fe80::2(LLA)

  Check 04:
    PASS: Receive Echo Request & destination(source) = fe80::2(LLA)

  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