00001 /*! \file icmp.h \brief ICMP Protocol Library. */ 00002 //***************************************************************************** 00003 // 00004 // File Name : 'icmp.h' 00005 // Title : ICMP (Internet Control Message Protocol) Protocol Library 00006 // Author : Pascal Stang 00007 // Created : 9/10/2004 00008 // Revised : 7/3/2005 00009 // Version : 0.1 00010 // Target MCU : Atmel AVR series 00011 // Editor Tabs : 4 00012 // 00013 /// \ingroup network 00014 /// \defgroup icmp ICMP Protocol Library (icmp.c) 00015 /// \code #include "net/icmp.h" \endcode 00016 /// \par Description 00017 /// ICMP (Internet Control Message Protocol) has many functions on the 00018 /// internet, including the handling of ECHO (ping) requests, relaying 00019 /// network route status, passing connection status messages, etc. 00020 /// 00021 /// This library currently handles only ICMP ECHO requests (ping), but 00022 /// may be expanded to include other useful ICMP operations as needed. 00023 // 00024 // This code is distributed under the GNU Public License 00025 // which can be found at http://www.gnu.org/licenses/gpl.txt 00026 //***************************************************************************** 00027 //@{ 00028 00029 #ifndef ICMP_H 00030 #define ICMP_H 00031 00032 #include "global.h" 00033 #include "net.h" 00034 00035 //#define ICMP_DEBUG_PRINT 00036 00037 //! Initialize ICMP protocol library. 00038 void icmpInit(void); 00039 00040 //! Incoming IP packets of protocol ICMP should be passed to this function. 00041 void icmpIpIn(icmpip_hdr* packet); 00042 00043 //! Forms and sends a reply in response to an ICMP ECHO request. 00044 void icmpEchoRequest(icmpip_hdr* packet); 00045 00046 //! Print ICMP packet information. 00047 void icmpPrintHeader(icmpip_hdr* packet); 00048 00049 #endif 00050 //@}