00001 /*! \file ip.h \brief IP (Internet Protocol) Library. */ 00002 //***************************************************************************** 00003 // 00004 // File Name : 'ip.h' 00005 // Title : IP (Internet Protocol) Library 00006 // Author : Pascal Stang 00007 // Created : 8/30/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 ip IP (Internet Protocol) Library (ip.c) 00015 /// \code #include "net/ip.h" \endcode 00016 /// \par Description 00017 /// The IP (Internet Protocol) library provide support for sending IP and 00018 /// IP-related packets. It's not clear if additional features are needed 00019 /// or will be added, or even if this is the proper way to facilitate IP 00020 /// packet operations. 00021 // 00022 // This code is distributed under the GNU Public License 00023 // which can be found at http://www.gnu.org/licenses/gpl.txt 00024 //***************************************************************************** 00025 //@{ 00026 00027 #ifndef IP_H 00028 #define IP_H 00029 00030 #include "net.h" 00031 #include "arp.h" 00032 00033 #include <inttypes.h> 00034 00035 struct ipConfig ///< IP addressing/configuration structure 00036 { 00037 uint32_t ip; ///< IP address 00038 uint32_t netmask; ///< netmask 00039 uint32_t gateway; ///< gateway IP address 00040 }; 00041 00042 #define IP_TIME_TO_LIVE 128 ///< default Time-To-Live (TTL) value to use in IP headers 00043 00044 //! Set our IP address and routing information. 00045 /// The myIp value will be used in the source field of IP packets. 00046 /// Use this function to set and reset the system IP address. 00047 void ipSetConfig(uint32_t myIp, uint32_t netmask, uint32_t gatewayIp); 00048 00049 //! Get our local IP address. 00050 /// Returns current IP address value. 00051 //uint32_t ipGetMyAddress(void); 00052 00053 //! Get our local IP configuration. 00054 /// Returns pointer to current IP address/configuration. 00055 struct ipConfig* ipGetConfig(void); 00056 00057 //! Print IP configuration 00058 /// 00059 void ipPrintConfig(struct ipConfig* config); 00060 00061 00062 //! Send an IP packet. 00063 void ipSend(uint32_t dstIp, uint8_t protocol, uint16_t len, uint8_t* data); 00064 00065 //! Send a UDP/IP packet. 00066 void udpSend(uint32_t dstIp, uint16_t dstPort, uint16_t len, uint8_t* data); 00067 00068 #endif 00069 //@} 00070