#!/usr/bin/perl
#
# $Copyright$
#
# $Id: PingToHost.seq,v 1.1.1.1 2000/09/28 00:15:05 sekiya Exp $
#
######################################################################
BEGIN {
$V6evalTool::TestVersion = '$Name: $';
}
use V6evalTool;
%pktdesc = (
echo_request => 'Send Echo Request (Link-Local Address)',
echo_reply => 'Recv Echo Reply (Link-Local Address)',
ns => 'Recv Neighbor Solicitation',
na => 'Send Neighbor Advertisement',
);
$IF = Link0;
vCapture($IF);
vSend($IF, echo_request);
%ret = vRecv($IF, 5, 0, 0, ns, echo_reply);
if ($ret{status} != 0) {
vLogHTML('No response from NUT, Configuration Problem ?
');
vLogHTML('NG');
exit $V6evalTool::exitFail;
}
if ($ret{recvFrame} eq 'ns') {
vSend($IF, na);
%ret = vRecv($IF, 5, 0, 0, echo_reply);
if ($ret{status} != 0) {
vLogHTML('Cannot receive Echo Reply
');
vLogHTML('NG');
exit $V6evalTool::exitFail;
}
}
if ($ret{recvFrame} ne 'echo_reply') {
vLogHTML('Cannot receive Echo Reply
');
vLogHTML('NG');
exit $V6evalTool::exitFail;
}
vLogHTML('OK');
exit $V6evalTool::exitPass;
######################################################################
__END__
=head1 NAME
PingToHost - check IPv6 Header Basic Items
=head1 TARGET
Host and Router
=head1 SYNOPSIS
=begin html
PingToHost.seq [-tooloption ...] -pkt PingToHost.def
-tooloption : v6eval tool option
=end html
=head1 INITIALIZATION
None
=head1 TEST PROCEDURE
Tester Target
| |
|-------------------------->|
| Echo Request |
| |
| |
|<--------------------------|
| Neighbor Solicitation |
| |
| |
|-------------------------->|
| Neighbor Advertisement |
| |
| |
|<--------------------------|
| Echo Reply |
| |
| |
v v
1. Send Echo Request
2. Wait Echo Reply or NS
3. If NS received then send NA, and wait Echo Reply again
4. Receive Echo Reply
Echo Request Data is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 16
NextHeader = 58 (ICMP)
HopLimit = 64
SourceAddress = Tester Link Local Address
DestinationAddress = Target Link Local Address
ICMP Echo Request
Type = 128 (Echo Request)
Code = 0
Checksum = (auto)
Identifier = 0xffff
SequenceNumber = 1
PayloadData = {1,2,3,4,5,6,7,8}
=head1 JUDGEMENT
PASS: Echo Reply Received
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 16
NextHeader = 58 (ICMP)
HopLimit = 64
SourceAddress = Target Link Local Address
Destination Address = Tester Link Local Address
ICMP Echo Reply
Type = 129 (Echo Reply)
Code = 0
Checksum = (auto)
Identifier = 0xffff (same as Echo Request)
SequenceNumber = 1 (same as Echo Request)
PayloadData = {1,2,3,4,5,6,7,8} (same as Echo Request)
=head1 SEE ALSO
perldoc V6evalTool
=cut