#!/usr/local/bin/perl
#
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# Yokogawa Electric Corporation, YDC Corporation,
# IPA (Information-technology Promotion Agency, Japan).
# 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. However, using this software for the 
# purpose of testing or evaluating any products including merchantable 
# products may be permitted without any notification to the copyrighters.
# 
# 
# 
# 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.
#

use V6evalTool;

$IF=Link0;

#----- start Capturing
vCapture($IF);

#----- send ICMP Echo
vSend($IF, _ping);
#----- wait NS or ICMP Reply
%ret=vRecv($IF,5,0,0,_ns, _reply);
if( $ret{status} != 0 ) {
        vLog(NG); 
        exit $V6evalTool::exitFail;
}
#----- if received frame is NS
if( $ret{recvFrame} eq '_ns' ) {
        #----- send NA
        vSend($IF, _na);
        #----- wait ICMP Reply
        %ret=vRecv($IF, 5,0,0, _reply);
	if( $ret{status} != 0 ) {
                vLog(NG); 
             	exit $V6evalTool::exitFail;
        }
}
#----- check if ICMP Reply is received
if( $ret{recvFrame} ne '_reply' ) {
        vLog(NG);
        exit $V6evalTool::exitFail; 
}
#----- OK
vLog("hmac-md5  -  OK");

#----- send ICMP Echo
vSend($IF, _pingsha);
#----- wait NS or ICMP Reply
%ret=vRecv($IF,5,0,0, _reply);
if( $ret{status} != 0 ) {
        vLog(NG); 
        exit $V6evalTool::exitFail;
}
#----- check if ICMP Reply is received
if( $ret{recvFrame} ne '_reply' ) {
        vLog(NG);
        exit $V6evalTool::exitFail; 
}
#----- OK
vLog("hmac-sha1  -  OK");


exit $V6evalTool::exitPass;

######################################################################
__END__

=head1 NAME

B<ping.seq> - link local echo request & reply test

=head1 TARGET

Host and Router.

=head1 SYNOPSIS

B<ping.seq>

=head1 DESCRIPTION

=over 2

=item 1.
Send ICMP Echo Request Packet from Tester to Target.

=item 2.
If Tester receive NS packet form Target, reply NA.

=item 3.
Wait ICMP Echo Reply Packet from Target.

=back

=head1 JUDGEMET

If the tester receive "ICMP Echo Reply" packet from the target, 
this test is pass.
