#!/usr/bin/perl # #Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Yokogawa Electric Corporation. #All rights reserved. # #Redistribution and use of this software in source and binary #forms, with or without modification, are permitted provided that #the following conditions and disclaimer are agreed and accepted #by the user: # #1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # #2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with # the distribution. # #3. Neither the names of the copyrighters, the name of the project # which is related to this software (hereinafter referred to as # "project") nor the names of the contributors may be used to # endorse or promote products derived from this software without # specific prior written permission. # #4. No merchantable use may be permitted without prior written # notification to the copyrighters. # #5. The copyrighters, the project and the contributors may prohibit # the use of this software at any time. # #THIS SOFTWARE IS PROVIDED BY THE COPYRIGHTERS, THE PROJECT AND #CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING #BUT NOT LIMITED THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS #FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO EVENT SHALL THE #COPYRIGHTERS, THE PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, #INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES #(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR #SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) #HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, #STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING #IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE #POSSIBILITY OF SUCH DAMAGE. # #$Id: C_RFC3646_3_DnsSchLstOpt_Sol.seq,v 1.2 2007/06/07 02:29:39 hide Exp $ ############################################################################### BEGIN{ $V6evalTool::TestVersion = '$Name: DHCPv6_Self_Test_P2_1_0_13 $'; } 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_IA_NA|$CMP_ORO)); if($ret != 0){ vLogHTML('DHCPv6 Client should send Solicit with ORO(Domain Search List 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; #} vClear($IF0); vStop($IF0); dhcpExitPass; ############################################################################### __END__ =head1 NAME C_RFC3646_3_DnsSchLstOpt_Sol.seq - Solicit message format with Option request Option Format(DNS Recursive Name Server option) =head1 TARGET Client =head1 SYNOPSIS =begin html
   C_RFC3646_3_DnsSchLstOpt_Sol.seq [-tooloption...] 
-pkt C_RFC3646_3_DnsSchLstOpt_Sol.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 client uses IA_NA options to request the assignment of non-
       temporary addresses and uses IA_TA options to request the assignment
       of temporary addresses.  Either IA_NA or IA_TA options, or a
       combination of both, can be included in DHCP messages.
    
    The client SHOULD include an Option Request option (see section 22.7) to indicate the options the client is interested in receiving. The client MAY additionally include instances of those options that are identified in the Option Request option, with data values as hints to the server about parameter values the client would like to have returned.
  • 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 IA_NA w/ORO(Domain Search List option) (1*) | | | |
=end html =head1 JUDGEMENT =begin html
  (1*)PASS: NUT transmits Solicit message with IA_NA option and ORO(Domain Search List option).
=end html =head1 TERMINATION =begin html
  N/A
=end html =head1 REFERENCE =begin html
  Also see RFC3315 Section 17.1.1
  Also see RFC3646 Section 4

=end html =head1 SEE ALSO =begin html

perldoc V6evalTool
=end html