#!/usr/bin/perl
#
# $Copyright$
#
# $TAHI: ct/icmp/receiveEchoRequest_sendEchoReply_validity_check_checksum.seq,v 1.7 2001/10/05 06:38:51 masaxmasa Exp $
########################################################################
BEGIN { $V6evalTool::TestVersion = '$Name: $ '; }
use V6evalTool;
use icmp;
checkNUT(hostrouter);
$IF=Link0;
#
#
#
vLogHTML("Initialization
");
vCapture($IF);
#
# This part is just for comparison
#
vLogHTML("This is very tricky, but send echo-reply (src=NUT/dst=TN) ".
"to get valid checksum value.
");
%ret1=vSend($IF,echo_reply_nut2tn_LLA);
$Valid_Checksum=$ret1{"Frame_Ether.Packet_IPv6.ICMPv6_EchoReply.Checksum"};
#vSleep(1);
vClear($IF);
#vSleep(1);
$ret=makeNCE_TN_LLA();
if( $ret !=0) {
vLog("NUT can not be initialized !!");
goto error;
}else {
vLog("*** TN can make TN's link local address NCE in TN ***");
}
#
#
#
vLogHTML("Test
");
vSend($IF, echo_request_tn2nut_LLA);
%ret=vRecv($IF,5,0,0,echo_reply_nut2tn_LLA_for_comparison);
if( $ret{status} !=0) {
vLog("TN can not receive Echo Reply from NUT");
goto error;
}elsif($ret{recvFrame} eq 'echo_reply_nut2tn_LLA_for_comparison') {
if ($ret{"Frame_Ether.Packet_IPv6.ICMPv6_EchoReply.Checksum"} eq
$Valid_Checksum) {
vLog("Checksum value included in NUT's sending packet is valid");
vLog("OK");
exit $V6evalTool::exitPass;
}else {
vLog("Checksum value included in NUT's sending packet is invalid");
goto error;
}
}else {
vLog("TN receive unexpected packets from NUT");
goto error;
}
error:
vLog("FAIL");
exit $V6evalTool::exitFail;
########################################################################
__END__
=head1 NAME
receiveEchoRequest_sendEchoReply_validity_check_checksum.seq
- check that sending and receiving Echo Request
and Echo Reply (check sum)
=head1 TARGET
Host and Router
=head1 SYNOPSIS
receiveEchoRequest_sendEchoReply_validity_check_checksum.seq
[-tooloption ...] -p
receiveEchoRequest_sendEchoReply_validity_check_checksum.def
=head1 INITIALIZATION
When test stars, states of Neighbor Cache Entry for TN's
addresses are reachable.
=head1 TEST PROCEDURE
This test verifies that NUT sends valid ICMPv6 Echo Request
and received ICMPv6 Echo Reply.
TN NUT
---------------------------
1.
=== ICMPv6 Echo Request ===>
src address : TN link local address
dst address : NUT link local address
2.
<< JUDGMENT >>
<=== ICMPv6 Echo Reply ===
src address : NUT link local address
dst address : TN link local address
=head1 JUDGMENT
<< PASS >>
Check Sum which is in a received packet is valid
<< FAIL >>
Check Sum which is in a received packet is invalid
=head1 SEE ALSO
perldoc V6evalTool
=cut