Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

ip.h

Go to the documentation of this file.
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 

Generated on Sun Oct 29 03:41:07 2006 for Procyon AVRlib by  doxygen 1.4.2