1: /* dhctoken.h
2:
3: Tokens for config file lexer and parser. */
4:
5: /*
6: * Copyright (c) 2011-2012 by Internet Systems Consortium, Inc. ("ISC")
7: * Copyright (c) 2004,2007-2009 by Internet Systems Consortium, Inc. ("ISC")
8: * Copyright (c) 1996-2003 by Internet Software Consortium
9: *
10: * Permission to use, copy, modify, and distribute this software for any
11: * purpose with or without fee is hereby granted, provided that the above
12: * copyright notice and this permission notice appear in all copies.
13: *
14: * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
15: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
17: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
20: * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21: *
22: * Internet Systems Consortium, Inc.
23: * 950 Charter Street
24: * Redwood City, CA 94063
25: * <info@isc.org>
26: * https://www.isc.org/
27: *
28: * This software has been written for Internet Systems Consortium
29: * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
30: * To learn more about Internet Systems Consortium, see
31: * ``https://www.isc.org/''. To learn more about Vixie Enterprises,
32: * see ``http://www.vix.com''. To learn more about Nominum, Inc., see
33: * ``http://www.nominum.com''.
34: */
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: CONFLICT_DONE = 660,
360: INITIAL_DELAY = 664,
361: GETHOSTBYNAME = 665,
362: TOKEN_INFINIBAND = 668
363: };
364:
365: #define is_identifier(x) ((x) >= FIRST_TOKEN && \
366: (x) != STRING && \
367: (x) != NUMBER && \
368: (x) != END_OF_FILE)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>