net/dhcpc.h

gehe zur Dokumentation dieser Datei
00001 
00002 /***************************************************************************
00003  *            dhcpc.h
00004  *
00005  *  Mon Aug 28 22:31:24 2006
00006  *  Copyright  2006  sharandac
00007  *  Email sharandac(at)snafu.de
00008  ****************************************************************************/
00009 
00010 /*
00011  *  This program is free software; you can redistribute it and/or modify
00012  *  it under the terms of the GNU General Public License as published by
00013  *  the Free Software Foundation; either version 2 of the License, or
00014  *  (at your option) any later version.
00015  *
00016  *  This program is distributed in the hope that it will be useful,
00017  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  *  GNU General Public License for more details.
00020  *
00021  *  You should have received a copy of the GNU General Public License
00022  *  along with this program; if not, write to the Free Software
00023  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00024  */
00025  
00026 #ifndef _DHCPC_H
00027         #define _DHCPC_H
00028 
00029         unsigned int DHCP_GetConfig( void );
00030         unsigned int DHCP_SendDiscover( unsigned int SOCKET, unsigned char * DHCPbuffer, unsigned char * Configbuffer );
00031         unsigned int DHCP_SendRequest( unsigned int SOCKET, unsigned char * DHCPbuffer, unsigned char * Configbuffer );
00032         unsigned int DHCP_AddOption( unsigned char Option, unsigned long ExtraData, unsigned char * Optionfield );
00033         unsigned int DHCP_PharseOption( void * Configbuffer, unsigned char * Optionfield );
00034         void DHCP_buildheader( unsigned char * DHCPbuffer );
00035 
00039         union LONG_BYTE {
00040                 unsigned char BYTE[4];
00041                 unsigned long LONG;
00042         }; 
00043         
00044         #define DHCP_CONFIG_LENGHT                      24
00045 
00049         struct DHCP_CONFIG {
00050                 union LONG_BYTE Client_IP;                      
00051                 union LONG_BYTE Router_IP;                      
00052                 union LONG_BYTE Subnetmask;                     
00053                 union LONG_BYTE DNS_IP;                         
00054                 union LONG_BYTE Server_IP;                      
00055                 union LONG_BYTE Leasetime;                      
00056         };      
00057                 
00061         struct DHCP_HEADER {
00062                 unsigned char Messages_Type;
00063                 unsigned char Hardware_Type;
00064                 unsigned char Hardware_Adress_Lenght;
00065                 unsigned char Hops;
00066                 unsigned long Transaction_ID;
00067                 unsigned int Second_elapsed;
00068                 unsigned int Bootp_Flags;
00069                 union LONG_BYTE Client_IP;
00070                 union LONG_BYTE Your_IP;
00071                 union LONG_BYTE Server_IP;
00072                 union LONG_BYTE Relay_IP;
00073                 unsigned char Your_MACADRESS[16];
00074                 unsigned char Servername[64];
00075                 unsigned char Boot_Filename[128];
00076                 unsigned long Magic_Cookie;
00077                 unsigned char Options[96];
00078         };
00079 
00080         #define DHCP_REQUEST_TIMEOUT            1000 // in 1/100 sekunden
00081         
00082         #define SERVERNAME_LENGHT                       64
00083         #define BOOT_FILENAME_LENGHT            128
00084         #define OPTION_LENGHT                           96
00085         
00086         #define DHCP_HEADER_LENGHT                      336
00087         
00088         // Das Magic-Cookie, markiert den Anfang des Optionblocks
00089         #define MAGIC_COOKIE                            0x63538263
00090         
00094         #define Option_SUBNETMASK                       1               
00095         #define Option_TIME_OFFSET                      2
00096         #define Option_ROUTER                           3
00097         #define Option_DOMAIN_NAME_SRVER        6
00098         #define Option_HOST_NAME                        12
00099         #define Option_DOMAIN_NAME                      15
00100         #define Option_BROADCAST_ADRESS         28
00101         #define Option_REQUESTET_IP_ADRESS  50
00102         #define Option_IP_ADRESS_LEASETIME  51
00103         #define Option_DHCP_MESSAGES_TYPE       53
00104         #define Option_SERVER_ID                        54
00105         #define Option_OPTIONLIST                       55
00106         #define Option_END                                      255
00107 
00112         #define DHCP_DISCOVER                           1
00113         #define DHCP_OFFER                                      2
00114         #define DHCP_REQUEST                            3
00115         #define DHCP_ACK                                        5
00116 
00118         // Die Bootp Messages Types
00119         #define BOOT_REQUEST                            1
00120         #define BOOT_REPLY                                      2
00121         
00126         #define DHCPC_OK                                        0
00127         #define DHCPC_TIMEOUT                           0xffff
00128 
00130         #define HARDWARE_TYPE_ETHERNET          1
00131         
00132 #endif /* _DHCPC_H */

Erzeugt am Fri Sep 8 13:37:36 2006 für MikroEthernetBoard von  doxygen 1.4.6