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

Generated on Wed Mar 16 00:10:25 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1