#!/usr/bin/perl # #$Copyright$ # #$Id: C_RFC3646_4_DnsSchLstOpt.seq,v 1.2 2007/02/07 07:40:53 hide Exp $ ############################################################################### BEGIN{ $V6evalTool::TestVersion = '$Name: $'; } use strict; use V6evalTool; use lib '../.'; use DHCPv6_common; use Client_pktdesc; dhcpExitNS if ChkFuncSupport('DNS'); #--------------------------------------------------------------# # Initialize variables #--------------------------------------------------------------# my $IF0_NUT = $V6evalTool::NutDef{"Link0_device"}; my $IF0 = "Link0"; vCapture($IF0); #--------------------------------------------------------------# # Initiate DHCPv6 Client #--------------------------------------------------------------# my $ret = initial_ra_w_ping($IF0,'ra_server2_to_all_MO_1'); if($ret == 0){ vLogHTML('Global Address of NUT is assigned by RA!
'); dhcpExitFail; } $ret = vRemote("dhcp6c.rmt", "start", "iana", "iaid=111111", "lst", "link0=$IF0_NUT"); if($ret != 0) { vLogHTML('Cannot Initialize DHCPv6 Client program.
'); dhcpExitFail; }; #--------------------------------------------------------------# # 1. Wait until Solicit arrives #--------------------------------------------------------------# my ($retsol,%sol) = wait_for_solicit($IF0,30) ; if($retsol != 0){ dhcpExitFail; } #--------------------------------------------------------------# # Verification Point check #--------------------------------------------------------------# $ret = options_exist(\%sol, ($CMP_ORO)); if($ret != 0){ vLogHTML('DHCPv6 Client should send Solicit with ORO(DNS Recursive Name Server option)!
'); dhcpExitFail; } my $option_base = "Frame_Ether.Packet_IPv6.Upp_UDP.Udp_DHCPv6_Solicit.Opt_DHCPv6_OptionRequest"; my $option_code = $option_base."."."Code"; my $option_len = $option_base."."."Length"; my $optionCode = $option_base."."."OptionCode"; if(defined $sol{$option_base}){ vLogHTML(" ORO Code = $sol{$option_code}
"); vLogHTML(" ORO option Length = $sol{$option_len}
"); vLogHTML(" ORO option OptionCode = $sol{$optionCode}
"); } else{ vLogHTML(" NO ORO option
"); dhcpExitFail; } my $optcode = lookup_OptRequestCode(\%sol,24); if($optcode != 0){ vLogHTML('requested-option-code is not Domain Search List option
'); dhcpExitFail; } #if($sol{$optionCode} != 24){ # vLogHTML('requested-option-code is not Domain Search List option
'); # dhcpExitFail; #} dhcpExitPass; ############################################################################### __END__ =head1 NAME C_RFC3646_4_DnsSchLstOpt.seq - Check the format of ORO(Domain Search List option) =head1 TARGET Client =head1 SYNOPSIS =begin html
   C_RFC3646_4_DnsSchLstOpt.seq [-tooloption...] 
-pkt C_RFC3646_4_DnsSchLstOpt.def
-tooloption : v6eval tool option
See Also DHCPv6.def
=end html =head1 INITIALIZATION =begin html
  • Network Topology
  •           NUT(Client)
              |           
              |                        
    Link0   --+--------+------------------------ 3ffe:501:ffff:100::/64
                       |
                       |          
                       TN(Server) 
        
  • Verification Points

  •    The format of the Option Request option is:
    0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_ORO | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | requested-option-code-1 | requested-option-code-2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    option-code OPTION_ORO (6).
    option-len 2 * number of requested options.
    requested-option-code-n The option code for an option requested by the client.
  • Configurations


  • Device Name Device Type Interface Assigned Prefix Link Local Addr MAC Addr
    Client NUT Link0 3ffe:501:ffff:100::/64 NUT's Linklocal address NUT's MAC address
    Server TN Link0 3ffe:501:ffff:100::/64 fe80::200:ff:fe00:a1a1 00:00:00:00:a1:a1
=end html =head1 TEST PROCEDURE =begin html

NUT TN | | | |Initialize NUT(as a DHCPv6 Client) | ----> |Solicit w/ORO(Domain search list option) (1*) | | | |
=end html =head1 JUDGEMENT =begin html
  (1*)PASS: NUT transmits Solicit message with ORO(Domain search list option).
=end html =head1 TERMINATION =begin html
  N/A
=end html =head1 REFERENCE =begin html
  Also see RFC3646

4. Domain Search List option
=end html =head1 SEE ALSO =begin html

perldoc V6evalTool
=end html