Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

DHCPConst.h

Go to the documentation of this file.
00001 /*
00002  * Dibbler - a portable DHCPv6
00003  *
00004  * authors: Tomasz Mrugalski <thomson@klub.com.pl>
00005  *          Marek Senderski <msend@o2.pl>
00006  *
00007  * Released under GNU GPL v2 licence
00008  *
00009  * $Id: DHCPConst.h,v 1.16 2005/08/03 22:47:34 thomson Exp $
00010  *
00011  * $Log: DHCPConst.h,v $
00012  * Revision 1.16  2005/08/03 22:47:34  thomson
00013  * Support for 'share' parameter added,
00014  * Support for randomization between classes added.
00015  *
00016  * Revision 1.15  2005/01/08 16:52:04  thomson
00017  * Relay support implemented.
00018  *
00019  * Revision 1.14  2004/11/30 00:43:24  thomson
00020  * SIP option value mismatch fixed (bug #68)
00021  *
00022  * Revision 1.13  2004/11/29 17:42:33  thomson
00023  * Update option values to RFC3898
00024  *
00025  * Revision 1.12  2004/10/27 22:07:56  thomson
00026  * Signed/unsigned issues fixed, Lifetime option implemented, INFORMATION-REQUEST
00027  * message is now sent properly. Valid lifetime granted by server fixed.
00028  *
00029  * Revision 1.11  2004/10/25 20:45:54  thomson
00030  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00031  *
00032  * Revision 1.10  2004/10/03 21:52:12  thomson
00033  * FALSE changed to false
00034  *
00035  * Revision 1.9  2004/10/03 21:21:32  thomson
00036  * CLIENT_DEFAULT_UNICAST is set to false.
00037  *
00038  * Revision 1.8  2004/09/28 21:49:32  thomson
00039  * no message
00040  *
00041  * Revision 1.7  2004/09/07 22:02:34  thomson
00042  * pref/valid/IAID is not unsigned, RAPID-COMMIT now works ok.
00043  *
00044  * Revision 1.6  2004/09/07 17:42:31  thomson
00045  * Server Unicast implemented.
00046  *
00047  * Revision 1.5  2004/09/03 23:20:23  thomson
00048  * RAPID-COMMIT support fixed. (bugs #50, #51, #52)
00049  *
00050  * Revision 1.4  2004/06/04 19:03:47  thomson
00051  * Resolved warnings with signed/unisigned
00052  *
00053  * Revision 1.3  2004/03/29 22:06:49  thomson
00054  * 0.1.1 version
00055  *
00056  */
00057 
00058 #ifndef DHCPCONST_H
00059 #define DHCPCONST_H
00060 
00061 #define ALL_DHCP_RELAY_AGENTS_AND_SERVERS  "ff02::1:2"
00062 #define ALL_DHCP_SERVERS                   "ff05::1:3"
00063 
00064 #define DHCPCLIENT_PORT 546
00065 #define DHCPSERVER_PORT 547
00066 
00067 // messages
00068 #define SOLICIT_MSG    1
00069 #define ADVERTISE_MSG  2
00070 #define REQUEST_MSG    3
00071 #define CONFIRM_MSG    4
00072 #define RENEW_MSG      5
00073 #define REBIND_MSG     6
00074 #define REPLY_MSG      7
00075 #define RELEASE_MSG    8
00076 #define DECLINE_MSG    9
00077 #define RECONFIGURE_MSG 10
00078 #define INFORMATION_REQUEST_MSG 11
00079 #define RELAY_FORW_MSG 12
00080 #define RELAY_REPL_MSG 13
00081 #define CONTROL_MSG    255
00082 
00083 // timers, timeouts
00084 
00085 #define SOL_MAX_DELAY 1
00086 #define SOL_TIMEOUT   1
00087 #define SOL_MAX_RT    120
00088 #define REQ_TIMEOUT   1
00089 #define REQ_MAX_RT    30
00090 #define REQ_MAX_RC    10
00091 #define CNF_MAX_DELAY 1
00092 #define CNF_TIMEOUT   1
00093 #define CNF_MAX_RT    4
00094 #define CNF_MAX_RD    10
00095 #define REN_TIMEOUT   10
00096 #define REN_MAX_RT    600
00097 #define REB_TIMEOUT   10
00098 #define REB_MAX_RT    600
00099 #define INF_MAX_DELAY 1
00100 #define INF_TIMEOUT   1
00101 #define INF_MAX_RT    120
00102 #define REL_TIMEOUT   1
00103 #define REL_MAX_RC    5
00104 #define DEC_TIMEOUT   1
00105 #define DEC_MAX_RC    5
00106 #define REC_TIMEOUT   2
00107 #define REC_MAX_RC    8
00108 
00109 #define HOP_COUNT_LIMIT 32
00110 
00111 // how long does server caches its replies?
00112 #define SERVER_REPLY_CACHE_TIMEOUT 60
00113 
00114 // RFC3315: supported options
00115 #define OPTION_CLIENTID         1
00116 #define OPTION_SERVERID         2
00117 #define OPTION_IA               3
00118 #define OPTION_IAADDR           5
00119 #define OPTION_ORO              6
00120 #define OPTION_PREFERENCE       7
00121 #define OPTION_ELAPSED_TIME     8
00122 #define OPTION_UNICAST          12
00123 #define OPTION_STATUS_CODE      13
00124 #define OPTION_RAPID_COMMIT     14
00125 
00126 // RFC: options not supported yet
00127 #define OPTION_IA_TA            4
00128 #define OPTION_RELAY_MSG        9
00129 #define OPTION_AUTH_MSG         11
00130 #define OPTION_USER_CLASS       15
00131 #define OPTION_VENDOR_CLASS     16
00132 #define OPTION_VENDOR_OPTS      17
00133 #define OPTION_INTERFACE_ID     18
00134 #define OPTION_RECONF_MSG       19
00135 #define OPTION_RECONF_ACCEPT    20
00136 
00137 // additional options
00138 
00139 // RFC3319: SIP servers and domains
00140 #define OPTION_SIP_DOMAINS      21
00141 #define OPTION_SIP_SERVERS      22
00142 
00143 // RFC3646: DNS servers and domains
00144 #define OPTION_DNS_RESOLVERS    23
00145 #define OPTION_DOMAIN_LIST      24
00146 
00147 // RFC3633: Prefix options (not supported yet)
00148 #define OPTION_IA_PD            25
00149 #define OPTION_IAPREFIX         26
00150 
00151 // RFC3898: NIS options
00152 #define OPTION_NIS_SERVERS      27
00153 #define OPTION_NISP_SERVERS     28
00154 #define OPTION_NIS_DOMAIN_NAME  29
00155 #define OPTION_NISP_DOMAIN_NAME 30
00156 
00157 // draft-ietf-dhc-dhcpv6-opt-timeconfig-02.txt
00158 #define OPTION_NTP_SERVERS      40
00159 #define OPTION_TIME_ZONE        41
00160 
00161 // draft-ietf-dhc-lifetime-02.txt
00162 #define OPTION_LIFETIME         42
00163 
00164 // draft-ietf-dhc-dhcpv6-fqdn-00.txt
00165 #define OPTION_FQDN             43
00166 
00167 // --- Status Codes --- 
00168 #define STATUSCODE_SUCCESS       0
00169 #define STATUSCODE_UNSPECFAIL    1
00170 #define STATUSCODE_NOADDRSAVAIL  2
00171 #define STATUSCODE_NOBINDING     3
00172 #define STATUSCODE_NOTONLINK     4
00173 #define STATUSCODE_USEMULTICAST  5
00174 
00175 // INFINITY + 1 is 0. Hih, cool
00176 #define DHCPV6_INFINITY (unsigned) 0xffffffff
00177 
00178 // how long should we wait before we assume that OS detected duplicated addresses (in secs)
00179 #define DADTIMEOUT (unsigned) 1
00180 
00181 // addresses reported ad DECLINED are not used for 2 hours
00182 #define DECLINED_TIMEOUT (unsigned) 7200
00183 
00184 // DHCPv6 server default values
00185 #define SERVER_DEFAULT_DOMAIN ""
00186 #define SERVER_DEFAULT_TIMEZONE ""
00187 #define SERVER_DEFAULT_CLNTMAXLEASE ULONG_MAX
00188 #define SERVER_DEFAULT_IFACEMAXLEASE ULONG_MAX
00189 #define SERVER_DEFAULT_PREFERENCE 0
00190 #define SERVER_DEFAULT_RAPIDCOMMIT false
00191 
00192 #define SERVER_DEFAULT_MIN_T1    5
00193 #define SERVER_DEFAULT_MAX_T1    ULONG_MAX
00194 #define SERVER_DEFAULT_MIN_T2    10
00195 #define SERVER_DEFAULT_MAX_T2    ULONG_MAX
00196 #define SERVER_DEFAULT_MIN_PREF  1800
00197 #define SERVER_DEFAULT_MAX_PREF  86400     /* 1 day */
00198 #define SERVER_DEFAULT_MIN_VALID 3600
00199 #define SERVER_DEFAULT_MAX_VALID 172800    /* 2 days */
00200 #define SERVER_DEFAULT_CLASS_SHARE 100
00201 #define SERVER_DEFAULT_CLASS_MAX_LEASE ULONG_MAX
00202 
00203 #define CLIENT_DEFAULT_T1 ULONG_MAX
00204 #define CLIENT_DEFAULT_T2 ULONG_MAX
00205 
00206 #define CLIENT_DEFAULT_UNICAST false
00207 #define CLIENT_DEFAULT_RAPID_COMMIT false
00208 
00209 
00210 enum ETentative {YES, NO, DONTKNOWYET};
00211 enum EState {NOTCONFIGURED, INPROCESS, CONFIGURED, FAILED, DISABLED, UNKNOWN, TENTATIVECHECK, TENTATIVE};
00212 
00213 // FQDN option flags
00214 #define FQDN_N 0x4
00215 #define FQDN_O 0x2
00216 #define FQDN_S 0x1
00217     
00218 bool allowOptInOpt(int msgType, int optOut, int optIn);
00219 bool allowOptInMsg(int msgType, int optType);
00220 
00221 #ifdef WIN32
00222 #define uint16_t unsigned short int
00223 #define uint32_t unsigned int
00224 #endif
00225 
00226 #endif
00227 
00228 

Generated on Sun Aug 7 22:47:14 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1