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