#!/usr/bin/perl
#
# $Copyright$
#
# $TAHI: ct/icmp/Echo_Link-Local.seq,v 1.3 2003/06/18 04:07:22 masaxmasa Exp $
#----------------------------------------------------------------------

BEGIN { $V6evalTool::TestVersion = '$Name:  $'; }
use V6evalTool;
use icmp;

$IF = Link0;

#----------------------------------------------------------------------
# Initialization
#----------------------------------------------------------------------

vLogHTML("<FONT SIZE=\"+1\">Initialization</FONT><BR>");
vCapture($IF);

$ret = mkNCE_Link();

if ($ret != 0) {
	goto error;
}
else {
	vLog("TN can receive Echo Reply from NUT");
	vLog("OK");
	exit($V6evalTool::exitPass);
};

error:

vLog("FAIL");
exit($V6evalTool::exitFail);


#----------------------------------------------------------------------

__END__

=head1 NAME

	Echo_Link-Local.seq - check that sending and receiving
			      Echo Request and Echo Reply (Link Local Address)

=head1 TARGET

	Host/Router

=head1 SYNOPSIS

	Echo_Link-Local.seq [-tooloption ...] -p Echo_Link-Local.def

=head1 INITIALIZATION

	None

=head1 TEST PROCEDURE

	This test verifies that NUT receives valid ICMPv6 Echo Request 
	and sent 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 >>
		NUT received ICMPv6 Echo Reply
		

	<< FAIL >>	
		NUT do not received ICMPv6 Echo Reply


=head1 REFERENCE

RFC2463
4.2 Echo Reply Message

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type      |     Code      |          Checksum             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Identifier          |        Sequence Number        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Data ...
      +-+-+-+-+-

   IPv6 Fields:

=begin html
<pre>
   <b>Destination Address</b><br>
                  <b>Copied from the Source Address field of the invoking
                  Echo Request packet.</b>
</pre>

=end html

   ICMPv6 Fields:

=begin html
<pre>
   <b>Type           129</b>
</pre>

=end html

=begin html
<pre>
   <b>Code           0</b>
</pre>

=end html

   Identifier     The identifier from the invoking Echo Request message.

   Sequence       The sequence number from the invoking Echo Request
   Number         message.

   Data           The data from the invoking Echo Request message.

   Description

   Every node MUST implement an ICMPv6 Echo responder function that
   receives Echo Requests and sends corresponding Echo Replies.  A node
   SHOULD also implement an application-layer interface for sending Echo
   Requests and receiving Echo Replies, for diagnostic purposes.

=begin html
<pre>
   <b>The source address of an Echo Reply sent in response to a unicast
   Echo Request message MUST be the same as the destination address of
   that Echo Request message.</b>
</pre>

=end html

   An Echo Reply SHOULD be sent in response to an Echo Request message
   sent to an IPv6 multicast address.  The source address of the reply
   MUST be a unicast address belonging to the interface on which the
   multicast Echo Request message was received.

=begin html
<pre>
   <b>The data received in the ICMPv6 Echo Request message MUST be returned
   entirely and unmodified in the ICMPv6 Echo Reply message.</b>
</pre>

=end html

=head1 SEE ALSO

	  perldoc V6evalTool

=cut
