xref: /minix/external/bsd/dhcp/dist/includes/dhctoken.h (revision bb9622b5)
1 /*	$NetBSD: dhctoken.h,v 1.1.1.4 2014/07/12 11:57:53 spz Exp $	*/
2 /* dhctoken.h
3 
4    Tokens for config file lexer and parser. */
5 
6 /*
7  * Copyright (c) 2011-2014 by Internet Systems Consortium, Inc. ("ISC")
8  * Copyright (c) 2004,2007-2009 by Internet Systems Consortium, Inc. ("ISC")
9  * Copyright (c) 1996-2003 by Internet Software Consortium
10  *
11  * Permission to use, copy, modify, and distribute this software for any
12  * purpose with or without fee is hereby granted, provided that the above
13  * copyright notice and this permission notice appear in all copies.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
16  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
18  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
21  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22  *
23  *   Internet Systems Consortium, Inc.
24  *   950 Charter Street
25  *   Redwood City, CA 94063
26  *   <info@isc.org>
27  *   https://www.isc.org/
28  *
29  */
30 
31 /*
32  * The following tokens have been deprecated and aren't in use anymore.
33  * They have been left in place to avoid disturbing the code.
34  * DNS_UPDATE, DNS_DELETE, NS_UPDATE, UPDATED_DNS_RR
35  */
36 enum dhcp_token {
37 	SEMI = ';',
38 	DOT = '.',
39 	COLON = ':',
40 	COMMA = ',',
41 	SLASH = '/',
42 	LBRACE = '{',
43 	RBRACE = '}',
44 	LPAREN = '(',
45 	RPAREN = ')',
46 	EQUAL = '=',
47 	TILDE = '~',
48 	BANG = '!',
49 	PERCENT = '%',
50 	PLUS = '+',
51 	MINUS = '-',
52 	ASTERISK = '*',
53 	AMPERSAND = '&',
54 	PIPE = '|',
55 	CARET = '^',
56 	ENDOFLINE = '\n',
57 	QUESTIONMARK = '?',
58 
59 	HOST = 256,
60 	FIRST_TOKEN = HOST,
61 	HARDWARE = 257,
62 	FILENAME = 258,
63 	FIXED_ADDR = 259,
64 	OPTION = 260,
65 	ETHERNET = 261,
66 	STRING = 262,
67 	NUMBER = 263,
68 	NUMBER_OR_NAME = 264,
69 	NAME = 265,
70 	TIMESTAMP = 266,
71 	STARTS = 267,
72 	ENDS = 268,
73 	UID = 269,
74 	CLASS = 270,
75 	LEASE = 271,
76 	RANGE = 272,
77 	PACKET = 273,
78 	CIADDR = 274,
79 	YIADDR = 275,
80 	SIADDR = 276,
81 	GIADDR = 277,
82 	SUBNET = 278,
83 	NETMASK = 279,
84 	DEFAULT_LEASE_TIME = 280,
85 	MAX_LEASE_TIME = 281,
86 	VENDOR_CLASS = 282,
87 	USER_CLASS = 283,
88 	SHARED_NETWORK = 284,
89 	SERVER_NAME = 285,
90 	DYNAMIC_BOOTP = 286,
91 	SERVER_IDENTIFIER = 287,
92 	DYNAMIC_BOOTP_LEASE_CUTOFF = 288,
93 	DYNAMIC_BOOTP_LEASE_LENGTH = 289,
94 	BOOT_UNKNOWN_CLIENTS = 290,
95 	NEXT_SERVER = 291,
96 	TOKEN_RING = 292,
97 	GROUP = 293,
98 	ONE_LEASE_PER_CLIENT = 294,
99 	GET_LEASE_HOSTNAMES = 295,
100 	USE_HOST_DECL_NAMES = 296,
101 	SEND = 297,
102 	CLIENT_IDENTIFIER = 298,
103 	REQUEST = 299,
104 	REQUIRE = 300,
105 	TIMEOUT = 301,
106 	RETRY = 302,
107 	SELECT_TIMEOUT = 303,
108 	SCRIPT = 304,
109 	INTERFACE = 305,
110 	RENEW = 306,
111 	REBIND = 307,
112 	EXPIRE = 308,
113 	UNKNOWN_CLIENTS = 309,
114 	ALLOW = 310,
115 	DENY = 312,
116 	BOOTING = 313,
117 	DEFAULT = 314,
118 	MEDIA = 315,
119 	MEDIUM = 316,
120 	ALIAS = 317,
121 	REBOOT = 318,
122 	TOKEN_ABANDONED = 319,
123 	BACKOFF_CUTOFF = 320,
124 	INITIAL_INTERVAL = 321,
125 	NAMESERVER = 322,
126 	DOMAIN = 323,
127 	SEARCH = 324,
128 	SUPERSEDE = 325,
129 	APPEND = 326,
130 	PREPEND = 327,
131 	HOSTNAME = 328,
132 	CLIENT_HOSTNAME = 329,
133 	REJECT = 330,
134 	USE_LEASE_ADDR_FOR_DEFAULT_ROUTE = 331,
135 	MIN_LEASE_TIME = 332,
136 	MIN_SECS = 333,
137 	AND = 334,
138 	OR = 335,
139 	SUBSTRING = 337,
140 	SUFFIX = 338,
141 	CHECK = 339,
142 	EXTRACT_INT = 340,
143 	IF = 341,
144 	TOKEN_ADD = 342,
145 	BREAK = 343,
146 	ELSE = 344,
147 	ELSIF = 345,
148 	SUBCLASS = 346,
149 	MATCH = 347,
150 	SPAWN = 348,
151 	WITH = 349,
152 	EXISTS = 350,
153 	POOL = 351,
154 	UNKNOWN = 352,
155 	CLIENTS = 353,
156 	KNOWN = 354,
157 	AUTHENTICATED = 355,
158 	UNAUTHENTICATED = 356,
159 	ALL = 357,
160 	DYNAMIC = 358,
161 	MEMBERS = 359,
162 	OF = 360,
163 	PSEUDO = 361,
164 	LIMIT = 362,
165 	BILLING = 363,
166 	PEER = 364,
167 	FAILOVER = 365,
168 	MY = 366,
169 	PARTNER = 367,
170 	PRIMARY = 368,
171 	SECONDARY = 369,
172 	IDENTIFIER = 370,
173 	PORT = 371,
174 	MAX_TRANSMIT_IDLE = 372,
175 	MAX_RESPONSE_DELAY = 373,
176 	PARTNER_DOWN = 374,
177 	NORMAL = 375,
178 	COMMUNICATIONS_INTERRUPTED = 376,
179 	POTENTIAL_CONFLICT = 377,
180 	RECOVER = 378,
181 	TOKEN_FDDI = 379,
182 	AUTHORITATIVE = 380,
183 	TOKEN_NOT = 381,
184 	AUTHENTICATION = 383,
185 	IGNORE = 384,
186 	ACCEPT = 385,
187 	PREFER = 386,
188 	DONT = 387,
189 	CODE = 388,
190 	ARRAY = 389,
191 	BOOLEAN = 390,
192 	INTEGER = 391,
193 	SIGNED = 392,
194 	UNSIGNED = 393,
195 	IP_ADDRESS = 394,
196 	TEXT = 395,
197 	STRING_TOKEN = 396,
198 	SPACE = 397,
199 	CONCAT = 398,
200 	ENCODE_INT = 399,
201 	REVERSE = 402,
202 	LEASED_ADDRESS = 403,
203 	BINARY_TO_ASCII = 404,
204 	PICK = 405,
205 	CONFIG_OPTION = 406,
206 	HOST_DECL_NAME = 407,
207 	ON = 408,
208 	EXPIRY = 409,
209 	RELEASE = 410,
210 	COMMIT = 411,
211 	DNS_UPDATE = 412,
212 	LEASE_TIME = 413,
213 	STATIC = 414,
214 	NEVER = 415,
215 	INFINITE = 416,
216 	TOKEN_DELETED = 417,
217 	UPDATED_DNS_RR = 418,
218 	DNS_DELETE = 419,
219 	DUPLICATES = 420,
220 	DECLINES = 421,
221 	TSTP = 422,
222 	TSFP = 423,
223 	OWNER = 424,
224 	IS = 425,
225 	HBA = 426,
226 	MAX_UNACKED_UPDATES = 427,
227 	MCLT = 428,
228 	SPLIT = 429,
229 	AT = 430,
230 	TOKEN_NO = 431,
231 	TOKEN_DELETE = 432,
232 	NS_UPDATE = 433,
233 	UPDATE = 434,
234 	SWITCH = 435,
235 	CASE = 436,
236 	NS_FORMERR = 437,
237 	NS_NOERROR = 438,
238 	NS_NOTAUTH = 439,
239 	NS_NOTIMP = 440,
240 	NS_NOTZONE = 441,
241 	NS_NXDOMAIN = 442,
242 	NS_NXRRSET = 443,
243 	NS_REFUSED = 444,
244 	NS_SERVFAIL = 445,
245 	NS_YXDOMAIN = 446,
246 	NS_YXRRSET = 447,
247 	TOKEN_NULL = 448,
248 	TOKEN_SET = 449,
249 	DEFINED = 450,
250 	UNSET = 451,
251 	EVAL = 452,
252 	LET = 453,
253 	FUNCTION = 454,
254 	DEFINE = 455,
255 	ZONE = 456,
256 	KEY = 457,
257 	SECRET = 458,
258 	ALGORITHM = 459,
259 	LOAD = 460,
260 	BALANCE = 461,
261 	TOKEN_MAX = 462,
262 	SECONDS = 463,
263 	ADDRESS = 464,
264 	RESOLUTION_INTERRUPTED = 465,
265 	STATE = 466,
266 	UNKNOWN_STATE = 567,
267 	CLTT = 568,
268 	INCLUDE = 569,
269 	BINDING = 570,
270 	TOKEN_FREE = 571,
271 	TOKEN_ACTIVE = 572,
272 	TOKEN_EXPIRED = 573,
273 	TOKEN_RELEASED = 574,
274 	TOKEN_RESET = 575,
275 	TOKEN_BACKUP = 576,
276 	TOKEN_RESERVED = 577,
277 	TOKEN_BOOTP = 578,
278 	TOKEN_NEXT = 579,
279 	OMAPI = 580,
280 	LOG = 581,
281 	FATAL = 582,
282 	ERROR = 583,
283 	TOKEN_DEBUG = 584,
284 	INFO = 585,
285 	RETURN = 586,
286 	PAUSED = 587,
287 	RECOVER_DONE = 588,
288 	SHUTDOWN = 589,
289 	STARTUP = 590,
290 	ENCAPSULATE = 591,
291 	VENDOR = 592,
292 	CLIENT_STATE = 593,
293 	INIT_REBOOT = 594,
294 	TOKEN_INIT = 595,
295 	SELECT = 596,
296 	BOUND = 597,
297 	RENEWING = 598,
298 	REBINDING = 599,
299 	RECONTACT_INTERVAL = 600,
300 	CLIENT_UPDATES = 601,
301 	TOKEN_NEW = 601,
302 	TRANSMISSION = 602,
303 	TOKEN_CLOSE = 603,
304 	TOKEN_CREATE = 604,
305 	TOKEN_OPEN = 605,
306 	TOKEN_HELP = 606,
307 	END_OF_FILE = 607,
308 	RECOVER_WAIT = 608,
309 	TOKEN_SERVER = 609,
310 	CONNECT = 610,
311 	REMOVE = 611,
312 	REFRESH = 612,
313 	DOMAIN_NAME = 613,
314 	DO_FORWARD_UPDATE = 614,
315 	KNOWN_CLIENTS = 615,
316 	ATSFP = 616,
317 	LCASE = 617,
318 	UCASE = 618,
319 	WIDTH = 619,
320 	LENGTH = 620,
321 	HASH = 621,
322 	SIZE = 622,
323 	EPOCH = 623,
324 	DB_TIME_FORMAT = 624,
325 	LOCAL = 625,
326 	MAX_LEASE_MISBALANCE = 626,
327 	MAX_LEASE_OWNERSHIP = 627,
328 	MAX_BALANCE = 628,
329 	MIN_BALANCE = 629,
330 	DOMAIN_LIST = 630,
331 	LEASEQUERY = 631,
332 	EXECUTE = 632,
333 	IP6_ADDRESS = 633,
334 	FIXED_ADDR6 = 634,
335 	COMPRESSED = 635,
336 	SUBNET6 = 636,
337 	HOST_IDENTIFIER = 637,
338 	IA_NA = 638,
339 	IA_TA = 639,
340 	IA_PD = 640,
341 	IAADDR = 641,
342 	IAPREFIX = 642,
343 	LEASE6 = 643,
344 	PREFERRED_LIFE = 644,
345 	MAX_LIFE = 645,
346 	DEFAULT_DUID = 646,
347 	SERVER_DUID = 647,
348 	LLT = 648,
349 	EN = 649,
350 	LL = 650,
351 	RANGE6 = 651,
352 	WHITESPACE = 652,
353 	TOKEN_ALSO = 653,
354 	AFTER = 654,
355 	ZEROLEN = 655,
356 	TEMPORARY = 656,
357 	PREFIX6 = 657,
358 	FIXED_PREFIX6 = 658,
359 	ANYCAST_MAC = 659,
360 	CONFLICT_DONE = 660,
361 	AUTO_PARTNER_DOWN = 661,
362 	GETHOSTNAME = 662,
363 	REWIND = 663,
364 	INITIAL_DELAY = 664,
365 	GETHOSTBYNAME = 665,
366 	PRIMARY6 = 666,
367 	SECONDARY6 = 667,
368 	TOKEN_INFINIBAND = 668,
369 	POOL6 = 669,
370 	V6RELAY = 670,
371 	V6RELOPT = 671
372 };
373 
374 #define is_identifier(x)	((x) >= FIRST_TOKEN &&	\
375 				 (x) != STRING &&	\
376 				 (x) != NUMBER &&	\
377 				 (x) != END_OF_FILE)
378