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

Generated on Mon Dec 27 21:55:22 2004 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1