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