#!/usr/bin/perl
#
# $Copyright$
#
# $TAHI: ct-dhcpv6/dhcpv6.tahi/S_RFC3315_5.1_UDPPorts.seq,v 1.19 2006/10/12 06:10:41 hide Exp $
########################################################################
BEGIN { $V6evalTool::TestVersion = '$Name: $';
}
use strict;
use V6evalTool;
use DHCPv6_common;
use Server_pktdesc;
#--------------------------------------------------------------#
# Initialization
#--------------------------------------------------------------#
vLogHTML('==== NUT Initialization ====
');
my $IF0 = "Link0";
#initial NUT config parameters,
my %NUT_Server_Config = (
'if_nut0'=> "$V6evalTool::NutDef{Link0_device}",
'init_opcode' => "vRemote(\"dhcp6s.rmt\", \"start\",\"link0=$V6evalTool::NutDef{Link0_device}\",\"startaddr=3ffe:501:ffff:100::10\",\"endaddr=3ffe:501:ffff:100::11\")"
);
dhcpSvrInit(\%NUT_Server_Config);
#--------------------------------------------------------------#
# Main Procedure
#--------------------------------------------------------------#
vLogHTML('==== Solicit/Reply Message Exchange ====
');
# send DHCPv6 Solicit Message
$CID_OPTION = "opt_CID_LLT_client1";
$IA_NA_OPTION = "opt_IA_NA";
my ($ret1, %sol1) = send_solicit($IF0, "solicit_client1_to_alldhcp", undef);
dhcpExitFail() if (0 != $ret1);
# wait for DHCPv6 Advertise Message
my ($ret2, %adv2) = wait_for_advertise($IF0, 5);
if (0 != $ret2) {
vLogHTML("NUT did not send Advertise Message.
");
dhcpExitFail();
}
# Check the "UDP port" field in the Reply Message
my $UdpPort = $adv2{"Frame_Ether.Packet_IPv6.Upp_UDP.Hdr_UDP.DestinationPort"};
vLogHTML("The Destination Port is $UdpPort
");
if ($LISTEN_UDPPORT_CLT != $UdpPort){
dhcpExitError("The messge sent by NUT has invalid destination.");
}
#-------------------------------------------------------------------
vLogHTML("The Format of Server Message is correct
");
#-------------------------------------------------------------------
dhcpExitPass();
#NOTREACHED
########################################################################
__END__
=head1 NAME
S_RFC3315_5.1_UDPPorts.seq - Check the UDP Ports
=head1 TARGET
Server
=head1 SYNOPSIS
=begin html
S_RFC3315_5.1_UDPPorts.seq [-tooloption ...] -pkt S_RFC3315_5.1_UDPPorts.def -tooloption: v6eval tool option See Also DHCPv6.def=head1 INITIALIZATION =begin html
TN(Client1)
|
Link0 -------+-----------+--------------- 3ffe:501:ffff:100::/64
|
NUT(Server1)
The destination UDP port of packet sent by server is 546.=head1 TEST PROCEDURE =begin html
NUT TN
| |
| | initialize NUT (as a DHCPv6 Server)
| |
| <---- | Solicit
| ----> | Advertise (*1)
| |
=head1 JUDGEMENT
(*1) PASS: TN receives Advertise Message with a correct destination UDP port (not checking the options in Reply Message)=head1 TERMINATION N/A =head1 REFERENCE =begin html
see also RFC3315 5.2. UDP Ports=end html =head1 SEE ALSO perldoc V6evalTool =cut