1*ba64cb98Skrw /* $OpenBSD: tables.c,v 1.4 2007/10/28 15:19:18 krw Exp $ */ 2e853bc5dShenning 3c824f21bShenning /* Tables of information... */ 4e853bc5dShenning 5e853bc5dShenning /* 6e853bc5dShenning * Copyright (c) 1995, 1996 The Internet Software Consortium. 7e853bc5dShenning * All rights reserved. 8e853bc5dShenning * 9e853bc5dShenning * Redistribution and use in source and binary forms, with or without 10e853bc5dShenning * modification, are permitted provided that the following conditions 11e853bc5dShenning * are met: 12e853bc5dShenning * 13e853bc5dShenning * 1. Redistributions of source code must retain the above copyright 14e853bc5dShenning * notice, this list of conditions and the following disclaimer. 15e853bc5dShenning * 2. Redistributions in binary form must reproduce the above copyright 16e853bc5dShenning * notice, this list of conditions and the following disclaimer in the 17e853bc5dShenning * documentation and/or other materials provided with the distribution. 18e853bc5dShenning * 3. Neither the name of The Internet Software Consortium nor the names 19e853bc5dShenning * of its contributors may be used to endorse or promote products derived 20e853bc5dShenning * from this software without specific prior written permission. 21e853bc5dShenning * 22e853bc5dShenning * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND 23e853bc5dShenning * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 24e853bc5dShenning * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 25e853bc5dShenning * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 26e853bc5dShenning * DISCLAIMED. IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR 27e853bc5dShenning * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 28e853bc5dShenning * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 29e853bc5dShenning * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 30e853bc5dShenning * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 31e853bc5dShenning * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32e853bc5dShenning * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 33e853bc5dShenning * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34e853bc5dShenning * SUCH DAMAGE. 35e853bc5dShenning * 36e853bc5dShenning * This software has been written for the Internet Software Consortium 37e853bc5dShenning * by Ted Lemon <mellon@fugue.com> in cooperation with Vixie 38e853bc5dShenning * Enterprises. To learn more about the Internet Software Consortium, 39e853bc5dShenning * see ``http://www.vix.com/isc''. To learn more about Vixie 40e853bc5dShenning * Enterprises, see ``http://www.vix.com''. 41e853bc5dShenning */ 42e853bc5dShenning 43e853bc5dShenning #include "dhcpd.h" 44e853bc5dShenning 45c824f21bShenning /* 46c824f21bShenning * DHCP Option names, formats and codes, from RFC1533. 47c824f21bShenning * 48c824f21bShenning * Format codes: 49c824f21bShenning * 50c824f21bShenning * e - end of data 51c824f21bShenning * I - IP address 52c824f21bShenning * l - 32-bit signed integer 53c824f21bShenning * L - 32-bit unsigned integer 54c824f21bShenning * s - 16-bit signed integer 55c824f21bShenning * S - 16-bit unsigned integer 56c824f21bShenning * b - 8-bit signed integer 57c824f21bShenning * B - 8-bit unsigned integer 58c824f21bShenning * t - ASCII text 59c824f21bShenning * f - flag (true or false) 60c824f21bShenning * A - array of whatever precedes (e.g., IA means array of IP addresses) 61e853bc5dShenning */ 62e853bc5dShenning 63e853bc5dShenning struct universe dhcp_universe; 64e853bc5dShenning struct option dhcp_options[256] = { 65e853bc5dShenning { "pad", "", &dhcp_universe, 0 }, 66e853bc5dShenning { "subnet-mask", "I", &dhcp_universe, 1 }, 67e853bc5dShenning { "time-offset", "l", &dhcp_universe, 2 }, 68e853bc5dShenning { "routers", "IA", &dhcp_universe, 3 }, 69e853bc5dShenning { "time-servers", "IA", &dhcp_universe, 4 }, 70e853bc5dShenning { "ien116-name-servers", "IA", &dhcp_universe, 5 }, 71e853bc5dShenning { "domain-name-servers", "IA", &dhcp_universe, 6 }, 72e853bc5dShenning { "log-servers", "IA", &dhcp_universe, 7 }, 73e853bc5dShenning { "cookie-servers", "IA", &dhcp_universe, 8 }, 74e853bc5dShenning { "lpr-servers", "IA", &dhcp_universe, 9 }, 75e853bc5dShenning { "impress-servers", "IA", &dhcp_universe, 10 }, 76e853bc5dShenning { "resource-location-servers", "IA", &dhcp_universe, 11 }, 77e853bc5dShenning { "host-name", "X", &dhcp_universe, 12 }, 78e853bc5dShenning { "boot-size", "S", &dhcp_universe, 13 }, 79e853bc5dShenning { "merit-dump", "t", &dhcp_universe, 14 }, 80e853bc5dShenning { "domain-name", "t", &dhcp_universe, 15 }, 81e853bc5dShenning { "swap-server", "I", &dhcp_universe, 16 }, 82e853bc5dShenning { "root-path", "t", &dhcp_universe, 17 }, 83e853bc5dShenning { "extensions-path", "t", &dhcp_universe, 18 }, 84e853bc5dShenning { "ip-forwarding", "f", &dhcp_universe, 19 }, 85e853bc5dShenning { "non-local-source-routing", "f", &dhcp_universe, 20 }, 86e853bc5dShenning { "policy-filter", "IIA", &dhcp_universe, 21 }, 87e853bc5dShenning { "max-dgram-reassembly", "S", &dhcp_universe, 22 }, 88e853bc5dShenning { "default-ip-ttl", "B", &dhcp_universe, 23 }, 89e853bc5dShenning { "path-mtu-aging-timeout", "L", &dhcp_universe, 24 }, 90e853bc5dShenning { "path-mtu-plateau-table", "SA", &dhcp_universe, 25 }, 91e853bc5dShenning { "interface-mtu", "S", &dhcp_universe, 26 }, 92e853bc5dShenning { "all-subnets-local", "f", &dhcp_universe, 27 }, 93e853bc5dShenning { "broadcast-address", "I", &dhcp_universe, 28 }, 94e853bc5dShenning { "perform-mask-discovery", "f", &dhcp_universe, 29 }, 95e853bc5dShenning { "mask-supplier", "f", &dhcp_universe, 30 }, 96e853bc5dShenning { "router-discovery", "f", &dhcp_universe, 31 }, 97e853bc5dShenning { "router-solicitation-address", "I", &dhcp_universe, 32 }, 98e853bc5dShenning { "static-routes", "IIA", &dhcp_universe, 33 }, 99e853bc5dShenning { "trailer-encapsulation", "f", &dhcp_universe, 34 }, 100e853bc5dShenning { "arp-cache-timeout", "L", &dhcp_universe, 35 }, 101e853bc5dShenning { "ieee802-3-encapsulation", "f", &dhcp_universe, 36 }, 102e853bc5dShenning { "default-tcp-ttl", "B", &dhcp_universe, 37 }, 103e853bc5dShenning { "tcp-keepalive-interval", "L", &dhcp_universe, 38 }, 104e853bc5dShenning { "tcp-keepalive-garbage", "f", &dhcp_universe, 39 }, 105e853bc5dShenning { "nis-domain", "t", &dhcp_universe, 40 }, 106e853bc5dShenning { "nis-servers", "IA", &dhcp_universe, 41 }, 107e853bc5dShenning { "ntp-servers", "IA", &dhcp_universe, 42 }, 108e853bc5dShenning { "vendor-encapsulated-options", "X", &dhcp_universe, 43 }, 109e853bc5dShenning { "netbios-name-servers", "IA", &dhcp_universe, 44 }, 110e853bc5dShenning { "netbios-dd-server", "IA", &dhcp_universe, 45 }, 111e853bc5dShenning { "netbios-node-type", "B", &dhcp_universe, 46 }, 112e853bc5dShenning { "netbios-scope", "t", &dhcp_universe, 47 }, 113e853bc5dShenning { "font-servers", "IA", &dhcp_universe, 48 }, 114e853bc5dShenning { "x-display-manager", "IA", &dhcp_universe, 49 }, 115e853bc5dShenning { "dhcp-requested-address", "I", &dhcp_universe, 50 }, 116e853bc5dShenning { "dhcp-lease-time", "L", &dhcp_universe, 51 }, 117e853bc5dShenning { "dhcp-option-overload", "B", &dhcp_universe, 52 }, 118e853bc5dShenning { "dhcp-message-type", "B", &dhcp_universe, 53 }, 119e853bc5dShenning { "dhcp-server-identifier", "I", &dhcp_universe, 54 }, 120e853bc5dShenning { "dhcp-parameter-request-list", "BA", &dhcp_universe, 55 }, 121e853bc5dShenning { "dhcp-message", "t", &dhcp_universe, 56 }, 122e853bc5dShenning { "dhcp-max-message-size", "S", &dhcp_universe, 57 }, 123e853bc5dShenning { "dhcp-renewal-time", "L", &dhcp_universe, 58 }, 124e853bc5dShenning { "dhcp-rebinding-time", "L", &dhcp_universe, 59 }, 125e853bc5dShenning { "dhcp-class-identifier", "t", &dhcp_universe, 60 }, 126e853bc5dShenning { "dhcp-client-identifier", "X", &dhcp_universe, 61 }, 127e853bc5dShenning { "option-62", "X", &dhcp_universe, 62 }, 128e853bc5dShenning { "option-63", "X", &dhcp_universe, 63 }, 129e853bc5dShenning { "nisplus-domain", "t", &dhcp_universe, 64 }, 130e853bc5dShenning { "nisplus-servers", "IA", &dhcp_universe, 65 }, 131e853bc5dShenning { "tftp-server-name", "t", &dhcp_universe, 66 }, 132e853bc5dShenning { "bootfile-name", "t", &dhcp_universe, 67 }, 133e853bc5dShenning { "mobile-ip-home-agent", "IA", &dhcp_universe, 68 }, 134e853bc5dShenning { "smtp-server", "IA", &dhcp_universe, 69 }, 135e853bc5dShenning { "pop-server", "IA", &dhcp_universe, 70 }, 136e853bc5dShenning { "nntp-server", "IA", &dhcp_universe, 71 }, 137e853bc5dShenning { "www-server", "IA", &dhcp_universe, 72 }, 138e853bc5dShenning { "finger-server", "IA", &dhcp_universe, 73 }, 139e853bc5dShenning { "irc-server", "IA", &dhcp_universe, 74 }, 140e853bc5dShenning { "streettalk-server", "IA", &dhcp_universe, 75 }, 141e853bc5dShenning { "streettalk-directory-assistance-server", "IA", &dhcp_universe, 76 }, 142e853bc5dShenning { "user-class", "t", &dhcp_universe, 77 }, 143e853bc5dShenning { "option-78", "X", &dhcp_universe, 78 }, 144e853bc5dShenning { "option-79", "X", &dhcp_universe, 79 }, 145e853bc5dShenning { "option-80", "X", &dhcp_universe, 80 }, 146e853bc5dShenning { "option-81", "X", &dhcp_universe, 81 }, 147e853bc5dShenning { "option-82", "X", &dhcp_universe, 82 }, 148e853bc5dShenning { "option-83", "X", &dhcp_universe, 83 }, 149e853bc5dShenning { "option-84", "X", &dhcp_universe, 84 }, 150e853bc5dShenning { "nds-servers", "IA", &dhcp_universe, 85 }, 151e853bc5dShenning { "nds-tree-name", "X", &dhcp_universe, 86 }, 152e853bc5dShenning { "nds-context", "X", &dhcp_universe, 87 }, 153e853bc5dShenning { "option-88", "X", &dhcp_universe, 88 }, 154e853bc5dShenning { "option-89", "X", &dhcp_universe, 89 }, 155e853bc5dShenning { "option-90", "X", &dhcp_universe, 90 }, 156e853bc5dShenning { "option-91", "X", &dhcp_universe, 91 }, 157e853bc5dShenning { "option-92", "X", &dhcp_universe, 92 }, 158e853bc5dShenning { "option-93", "X", &dhcp_universe, 93 }, 159e853bc5dShenning { "option-94", "X", &dhcp_universe, 94 }, 160e853bc5dShenning { "option-95", "X", &dhcp_universe, 95 }, 161e853bc5dShenning { "option-96", "X", &dhcp_universe, 96 }, 162e853bc5dShenning { "option-97", "X", &dhcp_universe, 97 }, 163e853bc5dShenning { "option-98", "X", &dhcp_universe, 98 }, 164e853bc5dShenning { "option-99", "X", &dhcp_universe, 99 }, 165e853bc5dShenning { "option-100", "X", &dhcp_universe, 100 }, 166e853bc5dShenning { "option-101", "X", &dhcp_universe, 101 }, 167e853bc5dShenning { "option-102", "X", &dhcp_universe, 102 }, 168e853bc5dShenning { "option-103", "X", &dhcp_universe, 103 }, 169e853bc5dShenning { "option-104", "X", &dhcp_universe, 104 }, 170e853bc5dShenning { "option-105", "X", &dhcp_universe, 105 }, 171e853bc5dShenning { "option-106", "X", &dhcp_universe, 106 }, 172e853bc5dShenning { "option-107", "X", &dhcp_universe, 107 }, 173e853bc5dShenning { "option-108", "X", &dhcp_universe, 108 }, 174e853bc5dShenning { "option-109", "X", &dhcp_universe, 109 }, 175e853bc5dShenning { "option-110", "X", &dhcp_universe, 110 }, 176e853bc5dShenning { "option-111", "X", &dhcp_universe, 111 }, 177e853bc5dShenning { "option-112", "X", &dhcp_universe, 112 }, 178e853bc5dShenning { "option-113", "X", &dhcp_universe, 113 }, 179e853bc5dShenning { "option-114", "X", &dhcp_universe, 114 }, 180e853bc5dShenning { "option-115", "X", &dhcp_universe, 115 }, 181e853bc5dShenning { "option-116", "X", &dhcp_universe, 116 }, 182e853bc5dShenning { "option-117", "X", &dhcp_universe, 117 }, 183e853bc5dShenning { "option-118", "X", &dhcp_universe, 118 }, 184e853bc5dShenning { "option-119", "X", &dhcp_universe, 119 }, 185e853bc5dShenning { "option-120", "X", &dhcp_universe, 120 }, 186e853bc5dShenning { "option-121", "X", &dhcp_universe, 121 }, 187e853bc5dShenning { "option-122", "X", &dhcp_universe, 122 }, 188e853bc5dShenning { "option-123", "X", &dhcp_universe, 123 }, 189e853bc5dShenning { "option-124", "X", &dhcp_universe, 124 }, 190e853bc5dShenning { "option-125", "X", &dhcp_universe, 125 }, 191e853bc5dShenning { "option-126", "X", &dhcp_universe, 126 }, 192e853bc5dShenning { "option-127", "X", &dhcp_universe, 127 }, 193e853bc5dShenning { "option-128", "X", &dhcp_universe, 128 }, 194e853bc5dShenning { "option-129", "X", &dhcp_universe, 129 }, 195e853bc5dShenning { "option-130", "X", &dhcp_universe, 130 }, 196e853bc5dShenning { "option-131", "X", &dhcp_universe, 131 }, 197e853bc5dShenning { "option-132", "X", &dhcp_universe, 132 }, 198e853bc5dShenning { "option-133", "X", &dhcp_universe, 133 }, 199e853bc5dShenning { "option-134", "X", &dhcp_universe, 134 }, 200e853bc5dShenning { "option-135", "X", &dhcp_universe, 135 }, 201e853bc5dShenning { "option-136", "X", &dhcp_universe, 136 }, 202e853bc5dShenning { "option-137", "X", &dhcp_universe, 137 }, 203e853bc5dShenning { "option-138", "X", &dhcp_universe, 138 }, 204e853bc5dShenning { "option-139", "X", &dhcp_universe, 139 }, 205e853bc5dShenning { "option-140", "X", &dhcp_universe, 140 }, 206e853bc5dShenning { "option-141", "X", &dhcp_universe, 141 }, 207e853bc5dShenning { "option-142", "X", &dhcp_universe, 142 }, 208e853bc5dShenning { "option-143", "X", &dhcp_universe, 143 }, 209e853bc5dShenning { "option-144", "X", &dhcp_universe, 144 }, 210e853bc5dShenning { "option-145", "X", &dhcp_universe, 145 }, 211e853bc5dShenning { "option-146", "X", &dhcp_universe, 146 }, 212e853bc5dShenning { "option-147", "X", &dhcp_universe, 147 }, 213e853bc5dShenning { "option-148", "X", &dhcp_universe, 148 }, 214e853bc5dShenning { "option-149", "X", &dhcp_universe, 149 }, 215e853bc5dShenning { "option-150", "X", &dhcp_universe, 150 }, 216e853bc5dShenning { "option-151", "X", &dhcp_universe, 151 }, 217e853bc5dShenning { "option-152", "X", &dhcp_universe, 152 }, 218e853bc5dShenning { "option-153", "X", &dhcp_universe, 153 }, 219e853bc5dShenning { "option-154", "X", &dhcp_universe, 154 }, 220e853bc5dShenning { "option-155", "X", &dhcp_universe, 155 }, 221e853bc5dShenning { "option-156", "X", &dhcp_universe, 156 }, 222e853bc5dShenning { "option-157", "X", &dhcp_universe, 157 }, 223e853bc5dShenning { "option-158", "X", &dhcp_universe, 158 }, 224e853bc5dShenning { "option-159", "X", &dhcp_universe, 159 }, 225e853bc5dShenning { "option-160", "X", &dhcp_universe, 160 }, 226e853bc5dShenning { "option-161", "X", &dhcp_universe, 161 }, 227e853bc5dShenning { "option-162", "X", &dhcp_universe, 162 }, 228e853bc5dShenning { "option-163", "X", &dhcp_universe, 163 }, 229e853bc5dShenning { "option-164", "X", &dhcp_universe, 164 }, 230e853bc5dShenning { "option-165", "X", &dhcp_universe, 165 }, 231e853bc5dShenning { "option-166", "X", &dhcp_universe, 166 }, 232e853bc5dShenning { "option-167", "X", &dhcp_universe, 167 }, 233e853bc5dShenning { "option-168", "X", &dhcp_universe, 168 }, 234e853bc5dShenning { "option-169", "X", &dhcp_universe, 169 }, 235e853bc5dShenning { "option-170", "X", &dhcp_universe, 170 }, 236e853bc5dShenning { "option-171", "X", &dhcp_universe, 171 }, 237e853bc5dShenning { "option-172", "X", &dhcp_universe, 172 }, 238e853bc5dShenning { "option-173", "X", &dhcp_universe, 173 }, 239e853bc5dShenning { "option-174", "X", &dhcp_universe, 174 }, 240e853bc5dShenning { "option-175", "X", &dhcp_universe, 175 }, 241e853bc5dShenning { "option-176", "X", &dhcp_universe, 176 }, 242e853bc5dShenning { "option-177", "X", &dhcp_universe, 177 }, 243e853bc5dShenning { "option-178", "X", &dhcp_universe, 178 }, 244e853bc5dShenning { "option-179", "X", &dhcp_universe, 179 }, 245e853bc5dShenning { "option-180", "X", &dhcp_universe, 180 }, 246e853bc5dShenning { "option-181", "X", &dhcp_universe, 181 }, 247e853bc5dShenning { "option-182", "X", &dhcp_universe, 182 }, 248e853bc5dShenning { "option-183", "X", &dhcp_universe, 183 }, 249e853bc5dShenning { "option-184", "X", &dhcp_universe, 184 }, 250e853bc5dShenning { "option-185", "X", &dhcp_universe, 185 }, 251e853bc5dShenning { "option-186", "X", &dhcp_universe, 186 }, 252e853bc5dShenning { "option-187", "X", &dhcp_universe, 187 }, 253e853bc5dShenning { "option-188", "X", &dhcp_universe, 188 }, 254e853bc5dShenning { "option-189", "X", &dhcp_universe, 189 }, 255e853bc5dShenning { "option-190", "X", &dhcp_universe, 190 }, 256e853bc5dShenning { "option-191", "X", &dhcp_universe, 191 }, 257e853bc5dShenning { "option-192", "X", &dhcp_universe, 192 }, 258e853bc5dShenning { "option-193", "X", &dhcp_universe, 193 }, 259e853bc5dShenning { "option-194", "X", &dhcp_universe, 194 }, 260e853bc5dShenning { "option-195", "X", &dhcp_universe, 195 }, 261e853bc5dShenning { "option-196", "X", &dhcp_universe, 196 }, 262e853bc5dShenning { "option-197", "X", &dhcp_universe, 197 }, 263e853bc5dShenning { "option-198", "X", &dhcp_universe, 198 }, 264e853bc5dShenning { "option-199", "X", &dhcp_universe, 199 }, 265e853bc5dShenning { "option-200", "X", &dhcp_universe, 200 }, 266e853bc5dShenning { "option-201", "X", &dhcp_universe, 201 }, 267e853bc5dShenning { "option-202", "X", &dhcp_universe, 202 }, 268e853bc5dShenning { "option-203", "X", &dhcp_universe, 203 }, 269e853bc5dShenning { "option-204", "X", &dhcp_universe, 204 }, 270e853bc5dShenning { "option-205", "X", &dhcp_universe, 205 }, 271e853bc5dShenning { "option-206", "X", &dhcp_universe, 206 }, 272e853bc5dShenning { "option-207", "X", &dhcp_universe, 207 }, 273e853bc5dShenning { "option-208", "X", &dhcp_universe, 208 }, 274e853bc5dShenning { "option-209", "X", &dhcp_universe, 209 }, 275e853bc5dShenning { "option-210", "X", &dhcp_universe, 210 }, 276e853bc5dShenning { "option-211", "X", &dhcp_universe, 211 }, 277e853bc5dShenning { "option-212", "X", &dhcp_universe, 212 }, 278e853bc5dShenning { "option-213", "X", &dhcp_universe, 213 }, 279e853bc5dShenning { "option-214", "X", &dhcp_universe, 214 }, 280e853bc5dShenning { "option-215", "X", &dhcp_universe, 215 }, 281e853bc5dShenning { "option-216", "X", &dhcp_universe, 216 }, 282e853bc5dShenning { "option-217", "X", &dhcp_universe, 217 }, 283e853bc5dShenning { "option-218", "X", &dhcp_universe, 218 }, 284e853bc5dShenning { "option-219", "X", &dhcp_universe, 219 }, 285e853bc5dShenning { "option-220", "X", &dhcp_universe, 220 }, 286e853bc5dShenning { "option-221", "X", &dhcp_universe, 221 }, 287e853bc5dShenning { "option-222", "X", &dhcp_universe, 222 }, 288e853bc5dShenning { "option-223", "X", &dhcp_universe, 223 }, 289e853bc5dShenning { "option-224", "X", &dhcp_universe, 224 }, 290e853bc5dShenning { "option-225", "X", &dhcp_universe, 225 }, 291e853bc5dShenning { "option-226", "X", &dhcp_universe, 226 }, 292e853bc5dShenning { "option-227", "X", &dhcp_universe, 227 }, 293e853bc5dShenning { "option-228", "X", &dhcp_universe, 228 }, 294e853bc5dShenning { "option-229", "X", &dhcp_universe, 229 }, 295e853bc5dShenning { "option-230", "X", &dhcp_universe, 230 }, 296e853bc5dShenning { "option-231", "X", &dhcp_universe, 231 }, 297e853bc5dShenning { "option-232", "X", &dhcp_universe, 232 }, 298e853bc5dShenning { "option-233", "X", &dhcp_universe, 233 }, 299e853bc5dShenning { "option-234", "X", &dhcp_universe, 234 }, 300e853bc5dShenning { "option-235", "X", &dhcp_universe, 235 }, 301e853bc5dShenning { "option-236", "X", &dhcp_universe, 236 }, 302e853bc5dShenning { "option-237", "X", &dhcp_universe, 237 }, 303e853bc5dShenning { "option-238", "X", &dhcp_universe, 238 }, 304e853bc5dShenning { "option-239", "X", &dhcp_universe, 239 }, 305e853bc5dShenning { "option-240", "X", &dhcp_universe, 240 }, 306e853bc5dShenning { "option-241", "X", &dhcp_universe, 241 }, 307e853bc5dShenning { "option-242", "X", &dhcp_universe, 242 }, 308e853bc5dShenning { "option-243", "X", &dhcp_universe, 243 }, 309e853bc5dShenning { "option-244", "X", &dhcp_universe, 244 }, 310e853bc5dShenning { "option-245", "X", &dhcp_universe, 245 }, 311e853bc5dShenning { "option-246", "X", &dhcp_universe, 246 }, 312e853bc5dShenning { "option-247", "X", &dhcp_universe, 247 }, 313e853bc5dShenning { "option-248", "X", &dhcp_universe, 248 }, 314e853bc5dShenning { "option-249", "X", &dhcp_universe, 249 }, 315e853bc5dShenning { "option-250", "X", &dhcp_universe, 250 }, 316e853bc5dShenning { "option-251", "X", &dhcp_universe, 251 }, 317e853bc5dShenning { "option-252", "X", &dhcp_universe, 252 }, 318e853bc5dShenning { "option-253", "X", &dhcp_universe, 253 }, 319e853bc5dShenning { "option-254", "X", &dhcp_universe, 254 }, 320e853bc5dShenning { "option-end", "e", &dhcp_universe, 255 }, 321e853bc5dShenning }; 322e853bc5dShenning 323c824f21bShenning /* 324c824f21bShenning * Default dhcp option priority list (this is ad hoc and should not be 325c824f21bShenning * mistaken for a carefully crafted and optimized list). 326c824f21bShenning */ 327e853bc5dShenning unsigned char dhcp_option_default_priority_list[] = { 328e853bc5dShenning DHO_DHCP_REQUESTED_ADDRESS, 329e853bc5dShenning DHO_DHCP_OPTION_OVERLOAD, 330e853bc5dShenning DHO_DHCP_MAX_MESSAGE_SIZE, 331e853bc5dShenning DHO_DHCP_RENEWAL_TIME, 332e853bc5dShenning DHO_DHCP_REBINDING_TIME, 333e853bc5dShenning DHO_DHCP_CLASS_IDENTIFIER, 334e853bc5dShenning DHO_DHCP_CLIENT_IDENTIFIER, 335e853bc5dShenning DHO_SUBNET_MASK, 336e853bc5dShenning DHO_TIME_OFFSET, 337e853bc5dShenning DHO_ROUTERS, 338e853bc5dShenning DHO_TIME_SERVERS, 339e853bc5dShenning DHO_NAME_SERVERS, 340e853bc5dShenning DHO_DOMAIN_NAME_SERVERS, 341e853bc5dShenning DHO_HOST_NAME, 342e853bc5dShenning DHO_LOG_SERVERS, 343e853bc5dShenning DHO_COOKIE_SERVERS, 344e853bc5dShenning DHO_LPR_SERVERS, 345e853bc5dShenning DHO_IMPRESS_SERVERS, 346e853bc5dShenning DHO_RESOURCE_LOCATION_SERVERS, 347e853bc5dShenning DHO_BOOT_SIZE, 348e853bc5dShenning DHO_MERIT_DUMP, 349e853bc5dShenning DHO_DOMAIN_NAME, 350e853bc5dShenning DHO_SWAP_SERVER, 351e853bc5dShenning DHO_ROOT_PATH, 352e853bc5dShenning DHO_EXTENSIONS_PATH, 353e853bc5dShenning DHO_IP_FORWARDING, 354e853bc5dShenning DHO_NON_LOCAL_SOURCE_ROUTING, 355e853bc5dShenning DHO_POLICY_FILTER, 356e853bc5dShenning DHO_MAX_DGRAM_REASSEMBLY, 357e853bc5dShenning DHO_DEFAULT_IP_TTL, 358e853bc5dShenning DHO_PATH_MTU_AGING_TIMEOUT, 359e853bc5dShenning DHO_PATH_MTU_PLATEAU_TABLE, 360e853bc5dShenning DHO_INTERFACE_MTU, 361e853bc5dShenning DHO_ALL_SUBNETS_LOCAL, 362e853bc5dShenning DHO_BROADCAST_ADDRESS, 363e853bc5dShenning DHO_PERFORM_MASK_DISCOVERY, 364e853bc5dShenning DHO_MASK_SUPPLIER, 365e853bc5dShenning DHO_ROUTER_DISCOVERY, 366e853bc5dShenning DHO_ROUTER_SOLICITATION_ADDRESS, 367e853bc5dShenning DHO_STATIC_ROUTES, 368e853bc5dShenning DHO_TRAILER_ENCAPSULATION, 369e853bc5dShenning DHO_ARP_CACHE_TIMEOUT, 370e853bc5dShenning DHO_IEEE802_3_ENCAPSULATION, 371e853bc5dShenning DHO_DEFAULT_TCP_TTL, 372e853bc5dShenning DHO_TCP_KEEPALIVE_INTERVAL, 373e853bc5dShenning DHO_TCP_KEEPALIVE_GARBAGE, 374e853bc5dShenning DHO_NIS_DOMAIN, 375e853bc5dShenning DHO_NIS_SERVERS, 376e853bc5dShenning DHO_NTP_SERVERS, 377e853bc5dShenning DHO_VENDOR_ENCAPSULATED_OPTIONS, 378e853bc5dShenning DHO_NETBIOS_NAME_SERVERS, 379e853bc5dShenning DHO_NETBIOS_DD_SERVER, 380e853bc5dShenning DHO_NETBIOS_NODE_TYPE, 381e853bc5dShenning DHO_NETBIOS_SCOPE, 382e853bc5dShenning DHO_FONT_SERVERS, 383e853bc5dShenning DHO_X_DISPLAY_MANAGER, 384e853bc5dShenning DHO_DHCP_PARAMETER_REQUEST_LIST, 385*ba64cb98Skrw DHO_DHCP_USER_CLASS_ID, 386e853bc5dShenning 387e853bc5dShenning /* Presently-undefined options... */ 388*ba64cb98Skrw 62, 63, 64, 65, 66, 67, 68, 69, 389*ba64cb98Skrw 70, 71, 72, 73, 74, 75, 76, 78, 79, 390*ba64cb98Skrw 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 391*ba64cb98Skrw 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 392*ba64cb98Skrw 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 393*ba64cb98Skrw 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 394*ba64cb98Skrw 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 395*ba64cb98Skrw 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 396*ba64cb98Skrw 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 397*ba64cb98Skrw 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 398*ba64cb98Skrw 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 399*ba64cb98Skrw 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 400*ba64cb98Skrw 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 401*ba64cb98Skrw 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 402*ba64cb98Skrw 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 403*ba64cb98Skrw 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 404*ba64cb98Skrw 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 405*ba64cb98Skrw 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 406*ba64cb98Skrw 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 407*ba64cb98Skrw 250, 251, 252, 253, 254 408e853bc5dShenning }; 409e853bc5dShenning 410e853bc5dShenning int sizeof_dhcp_option_default_priority_list = 411c824f21bShenning sizeof(dhcp_option_default_priority_list); 412e853bc5dShenning 413e853bc5dShenning 414e853bc5dShenning char *hardware_types[] = { 415e853bc5dShenning "unknown-0", 416e853bc5dShenning "ethernet", 417e853bc5dShenning "unknown-2", 418e853bc5dShenning "unknown-3", 419e853bc5dShenning "unknown-4", 420e853bc5dShenning "unknown-5", 421e853bc5dShenning "token-ring", 422e853bc5dShenning "unknown-7", 423e853bc5dShenning "fddi", 424e853bc5dShenning "unknown-9", 425e853bc5dShenning "unknown-10", 426e853bc5dShenning "unknown-11", 427e853bc5dShenning "unknown-12", 428e853bc5dShenning "unknown-13", 429e853bc5dShenning "unknown-14", 430e853bc5dShenning "unknown-15", 431e853bc5dShenning "unknown-16", 432e853bc5dShenning "unknown-17", 433e853bc5dShenning "unknown-18", 434e853bc5dShenning "unknown-19", 435e853bc5dShenning "unknown-20", 436e853bc5dShenning "unknown-21", 437e853bc5dShenning "unknown-22", 438e853bc5dShenning "unknown-23", 439e853bc5dShenning "unknown-24", 440e853bc5dShenning "unknown-25", 441e853bc5dShenning "unknown-26", 442e853bc5dShenning "unknown-27", 443e853bc5dShenning "unknown-28", 444e853bc5dShenning "unknown-29", 445e853bc5dShenning "unknown-30", 446e853bc5dShenning "unknown-31", 447e853bc5dShenning "unknown-32", 448e853bc5dShenning "unknown-33", 449e853bc5dShenning "unknown-34", 450e853bc5dShenning "unknown-35", 451e853bc5dShenning "unknown-36", 452e853bc5dShenning "unknown-37", 453e853bc5dShenning "unknown-38", 454e853bc5dShenning "unknown-39", 455e853bc5dShenning "unknown-40", 456e853bc5dShenning "unknown-41", 457e853bc5dShenning "unknown-42", 458e853bc5dShenning "unknown-43", 459e853bc5dShenning "unknown-44", 460e853bc5dShenning "unknown-45", 461e853bc5dShenning "unknown-46", 462e853bc5dShenning "unknown-47", 463e853bc5dShenning "unknown-48", 464e853bc5dShenning "unknown-49", 465e853bc5dShenning "unknown-50", 466e853bc5dShenning "unknown-51", 467e853bc5dShenning "unknown-52", 468e853bc5dShenning "unknown-53", 469e853bc5dShenning "unknown-54", 470e853bc5dShenning "unknown-55", 471e853bc5dShenning "unknown-56", 472e853bc5dShenning "unknown-57", 473e853bc5dShenning "unknown-58", 474e853bc5dShenning "unknown-59", 475e853bc5dShenning "unknown-60", 476e853bc5dShenning "unknown-61", 477e853bc5dShenning "unknown-62", 478e853bc5dShenning "unknown-63", 479e853bc5dShenning "unknown-64", 480e853bc5dShenning "unknown-65", 481e853bc5dShenning "unknown-66", 482e853bc5dShenning "unknown-67", 483e853bc5dShenning "unknown-68", 484e853bc5dShenning "unknown-69", 485e853bc5dShenning "unknown-70", 486e853bc5dShenning "unknown-71", 487e853bc5dShenning "unknown-72", 488e853bc5dShenning "unknown-73", 489e853bc5dShenning "unknown-74", 490e853bc5dShenning "unknown-75", 491e853bc5dShenning "unknown-76", 492e853bc5dShenning "unknown-77", 493e853bc5dShenning "unknown-78", 494e853bc5dShenning "unknown-79", 495e853bc5dShenning "unknown-80", 496e853bc5dShenning "unknown-81", 497e853bc5dShenning "unknown-82", 498e853bc5dShenning "unknown-83", 499e853bc5dShenning "unknown-84", 500e853bc5dShenning "unknown-85", 501e853bc5dShenning "unknown-86", 502e853bc5dShenning "unknown-87", 503e853bc5dShenning "unknown-88", 504e853bc5dShenning "unknown-89", 505e853bc5dShenning "unknown-90", 506e853bc5dShenning "unknown-91", 507e853bc5dShenning "unknown-92", 508e853bc5dShenning "unknown-93", 509e853bc5dShenning "unknown-94", 510e853bc5dShenning "unknown-95", 511e853bc5dShenning "unknown-96", 512e853bc5dShenning "unknown-97", 513e853bc5dShenning "unknown-98", 514e853bc5dShenning "unknown-99", 515e853bc5dShenning "unknown-100", 516e853bc5dShenning "unknown-101", 517e853bc5dShenning "unknown-102", 518e853bc5dShenning "unknown-103", 519e853bc5dShenning "unknown-104", 520e853bc5dShenning "unknown-105", 521e853bc5dShenning "unknown-106", 522e853bc5dShenning "unknown-107", 523e853bc5dShenning "unknown-108", 524e853bc5dShenning "unknown-109", 525e853bc5dShenning "unknown-110", 526e853bc5dShenning "unknown-111", 527e853bc5dShenning "unknown-112", 528e853bc5dShenning "unknown-113", 529e853bc5dShenning "unknown-114", 530e853bc5dShenning "unknown-115", 531e853bc5dShenning "unknown-116", 532e853bc5dShenning "unknown-117", 533e853bc5dShenning "unknown-118", 534e853bc5dShenning "unknown-119", 535e853bc5dShenning "unknown-120", 536e853bc5dShenning "unknown-121", 537e853bc5dShenning "unknown-122", 538e853bc5dShenning "unknown-123", 539e853bc5dShenning "unknown-124", 540e853bc5dShenning "unknown-125", 541e853bc5dShenning "unknown-126", 542e853bc5dShenning "unknown-127", 543e853bc5dShenning "unknown-128", 544e853bc5dShenning "unknown-129", 545e853bc5dShenning "unknown-130", 546e853bc5dShenning "unknown-131", 547e853bc5dShenning "unknown-132", 548e853bc5dShenning "unknown-133", 549e853bc5dShenning "unknown-134", 550e853bc5dShenning "unknown-135", 551e853bc5dShenning "unknown-136", 552e853bc5dShenning "unknown-137", 553e853bc5dShenning "unknown-138", 554e853bc5dShenning "unknown-139", 555e853bc5dShenning "unknown-140", 556e853bc5dShenning "unknown-141", 557e853bc5dShenning "unknown-142", 558e853bc5dShenning "unknown-143", 559e853bc5dShenning "unknown-144", 560e853bc5dShenning "unknown-145", 561e853bc5dShenning "unknown-146", 562e853bc5dShenning "unknown-147", 563e853bc5dShenning "unknown-148", 564e853bc5dShenning "unknown-149", 565e853bc5dShenning "unknown-150", 566e853bc5dShenning "unknown-151", 567e853bc5dShenning "unknown-152", 568e853bc5dShenning "unknown-153", 569e853bc5dShenning "unknown-154", 570e853bc5dShenning "unknown-155", 571e853bc5dShenning "unknown-156", 572e853bc5dShenning "unknown-157", 573e853bc5dShenning "unknown-158", 574e853bc5dShenning "unknown-159", 575e853bc5dShenning "unknown-160", 576e853bc5dShenning "unknown-161", 577e853bc5dShenning "unknown-162", 578e853bc5dShenning "unknown-163", 579e853bc5dShenning "unknown-164", 580e853bc5dShenning "unknown-165", 581e853bc5dShenning "unknown-166", 582e853bc5dShenning "unknown-167", 583e853bc5dShenning "unknown-168", 584e853bc5dShenning "unknown-169", 585e853bc5dShenning "unknown-170", 586e853bc5dShenning "unknown-171", 587e853bc5dShenning "unknown-172", 588e853bc5dShenning "unknown-173", 589e853bc5dShenning "unknown-174", 590e853bc5dShenning "unknown-175", 591e853bc5dShenning "unknown-176", 592e853bc5dShenning "unknown-177", 593e853bc5dShenning "unknown-178", 594e853bc5dShenning "unknown-179", 595e853bc5dShenning "unknown-180", 596e853bc5dShenning "unknown-181", 597e853bc5dShenning "unknown-182", 598e853bc5dShenning "unknown-183", 599e853bc5dShenning "unknown-184", 600e853bc5dShenning "unknown-185", 601e853bc5dShenning "unknown-186", 602e853bc5dShenning "unknown-187", 603e853bc5dShenning "unknown-188", 604e853bc5dShenning "unknown-189", 605e853bc5dShenning "unknown-190", 606e853bc5dShenning "unknown-191", 607e853bc5dShenning "unknown-192", 608e853bc5dShenning "unknown-193", 609e853bc5dShenning "unknown-194", 610e853bc5dShenning "unknown-195", 611e853bc5dShenning "unknown-196", 612e853bc5dShenning "unknown-197", 613e853bc5dShenning "unknown-198", 614e853bc5dShenning "unknown-199", 615e853bc5dShenning "unknown-200", 616e853bc5dShenning "unknown-201", 617e853bc5dShenning "unknown-202", 618e853bc5dShenning "unknown-203", 619e853bc5dShenning "unknown-204", 620e853bc5dShenning "unknown-205", 621e853bc5dShenning "unknown-206", 622e853bc5dShenning "unknown-207", 623e853bc5dShenning "unknown-208", 624e853bc5dShenning "unknown-209", 625e853bc5dShenning "unknown-210", 626e853bc5dShenning "unknown-211", 627e853bc5dShenning "unknown-212", 628e853bc5dShenning "unknown-213", 629e853bc5dShenning "unknown-214", 630e853bc5dShenning "unknown-215", 631e853bc5dShenning "unknown-216", 632e853bc5dShenning "unknown-217", 633e853bc5dShenning "unknown-218", 634e853bc5dShenning "unknown-219", 635e853bc5dShenning "unknown-220", 636e853bc5dShenning "unknown-221", 637e853bc5dShenning "unknown-222", 638e853bc5dShenning "unknown-223", 639e853bc5dShenning "unknown-224", 640e853bc5dShenning "unknown-225", 641e853bc5dShenning "unknown-226", 642e853bc5dShenning "unknown-227", 643e853bc5dShenning "unknown-228", 644e853bc5dShenning "unknown-229", 645e853bc5dShenning "unknown-230", 646e853bc5dShenning "unknown-231", 647e853bc5dShenning "unknown-232", 648e853bc5dShenning "unknown-233", 649e853bc5dShenning "unknown-234", 650e853bc5dShenning "unknown-235", 651e853bc5dShenning "unknown-236", 652e853bc5dShenning "unknown-237", 653e853bc5dShenning "unknown-238", 654e853bc5dShenning "unknown-239", 655e853bc5dShenning "unknown-240", 656e853bc5dShenning "unknown-241", 657e853bc5dShenning "unknown-242", 658e853bc5dShenning "unknown-243", 659e853bc5dShenning "unknown-244", 660e853bc5dShenning "unknown-245", 661e853bc5dShenning "unknown-246", 662e853bc5dShenning "unknown-247", 663e853bc5dShenning "unknown-248", 664e853bc5dShenning "unknown-249", 665e853bc5dShenning "unknown-250", 666e853bc5dShenning "unknown-251", 667e853bc5dShenning "unknown-252", 668e853bc5dShenning "unknown-253", 669e853bc5dShenning "unknown-254", 670c824f21bShenning "unknown-255" 671c824f21bShenning }; 672e853bc5dShenning 673e853bc5dShenning 674e853bc5dShenning struct hash_table universe_hash; 675e853bc5dShenning 676c824f21bShenning void 677c824f21bShenning initialize_universes(void) 678e853bc5dShenning { 679e853bc5dShenning int i; 680e853bc5dShenning 681e853bc5dShenning dhcp_universe.name = "dhcp"; 682e853bc5dShenning dhcp_universe.hash = new_hash(); 683e853bc5dShenning if (!dhcp_universe.hash) 684e853bc5dShenning error("Can't allocate dhcp option hash table."); 685e853bc5dShenning for (i = 0; i < 256; i++) { 686e853bc5dShenning dhcp_universe.options[i] = &dhcp_options[i]; 687e853bc5dShenning add_hash(dhcp_universe.hash, 688e853bc5dShenning (unsigned char *)dhcp_options[i].name, 0, 689e853bc5dShenning (unsigned char *)&dhcp_options[i]); 690e853bc5dShenning } 691e853bc5dShenning universe_hash.hash_count = DEFAULT_HASH_SIZE; 692e853bc5dShenning add_hash(&universe_hash, 693e853bc5dShenning (unsigned char *)dhcp_universe.name, 0, 694e853bc5dShenning (unsigned char *)&dhcp_universe); 695e853bc5dShenning } 696