1*171f404eSkrw /* $OpenBSD: tables.c,v 1.10 2014/01/21 03:07:51 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 }, 1475b44f46dSreyk { "relay-agent-information", "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 }, 186*171f404eSkrw { "classless-static-routes", "CIA", &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 }, 20954fd98c3Sdlg { "tftp-config-file", "t", &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 }, 215b506ca88Ssthen { "voip-configuration-server", "IA", &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 }, 314*171f404eSkrw { "classless-ms-static-routes", "CIA", &dhcp_universe, 249 }, 315e853bc5dShenning { "option-250", "X", &dhcp_universe, 250 }, 316e853bc5dShenning { "option-251", "X", &dhcp_universe, 251 }, 317def86216Sdlg { "autoproxy-script", "t", &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 */ 327cd4ecb23Skrw 328cd4ecb23Skrw unsigned char dhcp_option_default_priority_list[256] = { 329cd4ecb23Skrw DHO_DHCP_MESSAGE_TYPE, /* Mandatory */ 330cd4ecb23Skrw DHO_DHCP_SERVER_IDENTIFIER, /* Mandatory */ 331cd4ecb23Skrw DHO_DHCP_LEASE_TIME, /* Mandatory */ 332cd4ecb23Skrw DHO_DHCP_MESSAGE, /* Mandatory */ 333cd4ecb23Skrw DHO_END, /* End of mandatory options. */ 334e853bc5dShenning DHO_DHCP_REQUESTED_ADDRESS, 335e853bc5dShenning DHO_DHCP_OPTION_OVERLOAD, 336e853bc5dShenning DHO_DHCP_MAX_MESSAGE_SIZE, 337e853bc5dShenning DHO_DHCP_RENEWAL_TIME, 338e853bc5dShenning DHO_DHCP_REBINDING_TIME, 339e853bc5dShenning DHO_DHCP_CLASS_IDENTIFIER, 340e853bc5dShenning DHO_DHCP_CLIENT_IDENTIFIER, 341e853bc5dShenning DHO_SUBNET_MASK, 342e853bc5dShenning DHO_TIME_OFFSET, 343e853bc5dShenning DHO_ROUTERS, 344e853bc5dShenning DHO_TIME_SERVERS, 345e853bc5dShenning DHO_NAME_SERVERS, 346e853bc5dShenning DHO_DOMAIN_NAME_SERVERS, 347e853bc5dShenning DHO_HOST_NAME, 348e853bc5dShenning DHO_LOG_SERVERS, 349e853bc5dShenning DHO_COOKIE_SERVERS, 350e853bc5dShenning DHO_LPR_SERVERS, 351e853bc5dShenning DHO_IMPRESS_SERVERS, 352e853bc5dShenning DHO_RESOURCE_LOCATION_SERVERS, 353e853bc5dShenning DHO_BOOT_SIZE, 354e853bc5dShenning DHO_MERIT_DUMP, 355e853bc5dShenning DHO_DOMAIN_NAME, 356e853bc5dShenning DHO_SWAP_SERVER, 357e853bc5dShenning DHO_ROOT_PATH, 358e853bc5dShenning DHO_EXTENSIONS_PATH, 359e853bc5dShenning DHO_IP_FORWARDING, 360e853bc5dShenning DHO_NON_LOCAL_SOURCE_ROUTING, 361e853bc5dShenning DHO_POLICY_FILTER, 362e853bc5dShenning DHO_MAX_DGRAM_REASSEMBLY, 363e853bc5dShenning DHO_DEFAULT_IP_TTL, 364e853bc5dShenning DHO_PATH_MTU_AGING_TIMEOUT, 365e853bc5dShenning DHO_PATH_MTU_PLATEAU_TABLE, 366e853bc5dShenning DHO_INTERFACE_MTU, 367e853bc5dShenning DHO_ALL_SUBNETS_LOCAL, 368e853bc5dShenning DHO_BROADCAST_ADDRESS, 369e853bc5dShenning DHO_PERFORM_MASK_DISCOVERY, 370e853bc5dShenning DHO_MASK_SUPPLIER, 371e853bc5dShenning DHO_ROUTER_DISCOVERY, 372e853bc5dShenning DHO_ROUTER_SOLICITATION_ADDRESS, 373e853bc5dShenning DHO_STATIC_ROUTES, 374e853bc5dShenning DHO_TRAILER_ENCAPSULATION, 375e853bc5dShenning DHO_ARP_CACHE_TIMEOUT, 376e853bc5dShenning DHO_IEEE802_3_ENCAPSULATION, 377e853bc5dShenning DHO_DEFAULT_TCP_TTL, 378e853bc5dShenning DHO_TCP_KEEPALIVE_INTERVAL, 379e853bc5dShenning DHO_TCP_KEEPALIVE_GARBAGE, 380e853bc5dShenning DHO_NIS_DOMAIN, 381e853bc5dShenning DHO_NIS_SERVERS, 382e853bc5dShenning DHO_NTP_SERVERS, 383e853bc5dShenning DHO_VENDOR_ENCAPSULATED_OPTIONS, 384e853bc5dShenning DHO_NETBIOS_NAME_SERVERS, 385e853bc5dShenning DHO_NETBIOS_DD_SERVER, 386e853bc5dShenning DHO_NETBIOS_NODE_TYPE, 387e853bc5dShenning DHO_NETBIOS_SCOPE, 388e853bc5dShenning DHO_FONT_SERVERS, 389e853bc5dShenning DHO_X_DISPLAY_MANAGER, 390e853bc5dShenning DHO_DHCP_PARAMETER_REQUEST_LIST, 391ba64cb98Skrw DHO_DHCP_USER_CLASS_ID, 3925b44f46dSreyk DHO_RELAY_AGENT_INFORMATION, /* Should be the last option. */ 393cd4ecb23Skrw DHO_PAD, 394e853bc5dShenning 395e853bc5dShenning /* Presently-undefined options... */ 396ba64cb98Skrw 62, 63, 64, 65, 66, 67, 68, 69, 397ba64cb98Skrw 70, 71, 72, 73, 74, 75, 76, 78, 79, 3985b44f46dSreyk 80, 81, 83, 84, 85, 86, 87, 88, 89, 399ba64cb98Skrw 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 400ba64cb98Skrw 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 401ba64cb98Skrw 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 402ba64cb98Skrw 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 403ba64cb98Skrw 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 404ba64cb98Skrw 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 405ba64cb98Skrw 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 406ba64cb98Skrw 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 407ba64cb98Skrw 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 408ba64cb98Skrw 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 409ba64cb98Skrw 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 410ba64cb98Skrw 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 411ba64cb98Skrw 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 412ba64cb98Skrw 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 413ba64cb98Skrw 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 414ba64cb98Skrw 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 415ba64cb98Skrw 250, 251, 252, 253, 254 416e853bc5dShenning }; 417e853bc5dShenning 418e853bc5dShenning char *hardware_types[] = { 419e853bc5dShenning "unknown-0", 420e853bc5dShenning "ethernet", 421e853bc5dShenning "unknown-2", 422e853bc5dShenning "unknown-3", 423e853bc5dShenning "unknown-4", 424e853bc5dShenning "unknown-5", 425e853bc5dShenning "token-ring", 426e853bc5dShenning "unknown-7", 427e853bc5dShenning "fddi", 428e853bc5dShenning "unknown-9", 429e853bc5dShenning "unknown-10", 430e853bc5dShenning "unknown-11", 431e853bc5dShenning "unknown-12", 432e853bc5dShenning "unknown-13", 433e853bc5dShenning "unknown-14", 434e853bc5dShenning "unknown-15", 435e853bc5dShenning "unknown-16", 436e853bc5dShenning "unknown-17", 437e853bc5dShenning "unknown-18", 438e853bc5dShenning "unknown-19", 439e853bc5dShenning "unknown-20", 440e853bc5dShenning "unknown-21", 441e853bc5dShenning "unknown-22", 442e853bc5dShenning "unknown-23", 443e853bc5dShenning "unknown-24", 444e853bc5dShenning "unknown-25", 445e853bc5dShenning "unknown-26", 446e853bc5dShenning "unknown-27", 447e853bc5dShenning "unknown-28", 448e853bc5dShenning "unknown-29", 449e853bc5dShenning "unknown-30", 4505b44f46dSreyk "ipsec-tunnel", 451e853bc5dShenning "unknown-32", 452e853bc5dShenning "unknown-33", 453e853bc5dShenning "unknown-34", 454e853bc5dShenning "unknown-35", 455e853bc5dShenning "unknown-36", 456e853bc5dShenning "unknown-37", 457e853bc5dShenning "unknown-38", 458e853bc5dShenning "unknown-39", 459e853bc5dShenning "unknown-40", 460e853bc5dShenning "unknown-41", 461e853bc5dShenning "unknown-42", 462e853bc5dShenning "unknown-43", 463e853bc5dShenning "unknown-44", 464e853bc5dShenning "unknown-45", 465e853bc5dShenning "unknown-46", 466e853bc5dShenning "unknown-47", 467e853bc5dShenning "unknown-48", 468e853bc5dShenning "unknown-49", 469e853bc5dShenning "unknown-50", 470e853bc5dShenning "unknown-51", 471e853bc5dShenning "unknown-52", 472e853bc5dShenning "unknown-53", 473e853bc5dShenning "unknown-54", 474e853bc5dShenning "unknown-55", 475e853bc5dShenning "unknown-56", 476e853bc5dShenning "unknown-57", 477e853bc5dShenning "unknown-58", 478e853bc5dShenning "unknown-59", 479e853bc5dShenning "unknown-60", 480e853bc5dShenning "unknown-61", 481e853bc5dShenning "unknown-62", 482e853bc5dShenning "unknown-63", 483e853bc5dShenning "unknown-64", 484e853bc5dShenning "unknown-65", 485e853bc5dShenning "unknown-66", 486e853bc5dShenning "unknown-67", 487e853bc5dShenning "unknown-68", 488e853bc5dShenning "unknown-69", 489e853bc5dShenning "unknown-70", 490e853bc5dShenning "unknown-71", 491e853bc5dShenning "unknown-72", 492e853bc5dShenning "unknown-73", 493e853bc5dShenning "unknown-74", 494e853bc5dShenning "unknown-75", 495e853bc5dShenning "unknown-76", 496e853bc5dShenning "unknown-77", 497e853bc5dShenning "unknown-78", 498e853bc5dShenning "unknown-79", 499e853bc5dShenning "unknown-80", 500e853bc5dShenning "unknown-81", 501e853bc5dShenning "unknown-82", 502e853bc5dShenning "unknown-83", 503e853bc5dShenning "unknown-84", 504e853bc5dShenning "unknown-85", 505e853bc5dShenning "unknown-86", 506e853bc5dShenning "unknown-87", 507e853bc5dShenning "unknown-88", 508e853bc5dShenning "unknown-89", 509e853bc5dShenning "unknown-90", 510e853bc5dShenning "unknown-91", 511e853bc5dShenning "unknown-92", 512e853bc5dShenning "unknown-93", 513e853bc5dShenning "unknown-94", 514e853bc5dShenning "unknown-95", 515e853bc5dShenning "unknown-96", 516e853bc5dShenning "unknown-97", 517e853bc5dShenning "unknown-98", 518e853bc5dShenning "unknown-99", 519e853bc5dShenning "unknown-100", 520e853bc5dShenning "unknown-101", 521e853bc5dShenning "unknown-102", 522e853bc5dShenning "unknown-103", 523e853bc5dShenning "unknown-104", 524e853bc5dShenning "unknown-105", 525e853bc5dShenning "unknown-106", 526e853bc5dShenning "unknown-107", 527e853bc5dShenning "unknown-108", 528e853bc5dShenning "unknown-109", 529e853bc5dShenning "unknown-110", 530e853bc5dShenning "unknown-111", 531e853bc5dShenning "unknown-112", 532e853bc5dShenning "unknown-113", 533e853bc5dShenning "unknown-114", 534e853bc5dShenning "unknown-115", 535e853bc5dShenning "unknown-116", 536e853bc5dShenning "unknown-117", 537e853bc5dShenning "unknown-118", 538e853bc5dShenning "unknown-119", 539e853bc5dShenning "unknown-120", 540e853bc5dShenning "unknown-121", 541e853bc5dShenning "unknown-122", 542e853bc5dShenning "unknown-123", 543e853bc5dShenning "unknown-124", 544e853bc5dShenning "unknown-125", 545e853bc5dShenning "unknown-126", 546e853bc5dShenning "unknown-127", 547e853bc5dShenning "unknown-128", 548e853bc5dShenning "unknown-129", 549e853bc5dShenning "unknown-130", 550e853bc5dShenning "unknown-131", 551e853bc5dShenning "unknown-132", 552e853bc5dShenning "unknown-133", 553e853bc5dShenning "unknown-134", 554e853bc5dShenning "unknown-135", 555e853bc5dShenning "unknown-136", 556e853bc5dShenning "unknown-137", 557e853bc5dShenning "unknown-138", 558e853bc5dShenning "unknown-139", 559e853bc5dShenning "unknown-140", 560e853bc5dShenning "unknown-141", 561e853bc5dShenning "unknown-142", 562e853bc5dShenning "unknown-143", 563e853bc5dShenning "unknown-144", 564e853bc5dShenning "unknown-145", 565e853bc5dShenning "unknown-146", 566e853bc5dShenning "unknown-147", 567e853bc5dShenning "unknown-148", 568e853bc5dShenning "unknown-149", 569e853bc5dShenning "unknown-150", 570e853bc5dShenning "unknown-151", 571e853bc5dShenning "unknown-152", 572e853bc5dShenning "unknown-153", 573e853bc5dShenning "unknown-154", 574e853bc5dShenning "unknown-155", 575e853bc5dShenning "unknown-156", 576e853bc5dShenning "unknown-157", 577e853bc5dShenning "unknown-158", 578e853bc5dShenning "unknown-159", 579e853bc5dShenning "unknown-160", 580e853bc5dShenning "unknown-161", 581e853bc5dShenning "unknown-162", 582e853bc5dShenning "unknown-163", 583e853bc5dShenning "unknown-164", 584e853bc5dShenning "unknown-165", 585e853bc5dShenning "unknown-166", 586e853bc5dShenning "unknown-167", 587e853bc5dShenning "unknown-168", 588e853bc5dShenning "unknown-169", 589e853bc5dShenning "unknown-170", 590e853bc5dShenning "unknown-171", 591e853bc5dShenning "unknown-172", 592e853bc5dShenning "unknown-173", 593e853bc5dShenning "unknown-174", 594e853bc5dShenning "unknown-175", 595e853bc5dShenning "unknown-176", 596e853bc5dShenning "unknown-177", 597e853bc5dShenning "unknown-178", 598e853bc5dShenning "unknown-179", 599e853bc5dShenning "unknown-180", 600e853bc5dShenning "unknown-181", 601e853bc5dShenning "unknown-182", 602e853bc5dShenning "unknown-183", 603e853bc5dShenning "unknown-184", 604e853bc5dShenning "unknown-185", 605e853bc5dShenning "unknown-186", 606e853bc5dShenning "unknown-187", 607e853bc5dShenning "unknown-188", 608e853bc5dShenning "unknown-189", 609e853bc5dShenning "unknown-190", 610e853bc5dShenning "unknown-191", 611e853bc5dShenning "unknown-192", 612e853bc5dShenning "unknown-193", 613e853bc5dShenning "unknown-194", 614e853bc5dShenning "unknown-195", 615e853bc5dShenning "unknown-196", 616e853bc5dShenning "unknown-197", 617e853bc5dShenning "unknown-198", 618e853bc5dShenning "unknown-199", 619e853bc5dShenning "unknown-200", 620e853bc5dShenning "unknown-201", 621e853bc5dShenning "unknown-202", 622e853bc5dShenning "unknown-203", 623e853bc5dShenning "unknown-204", 624e853bc5dShenning "unknown-205", 625e853bc5dShenning "unknown-206", 626e853bc5dShenning "unknown-207", 627e853bc5dShenning "unknown-208", 628e853bc5dShenning "unknown-209", 629e853bc5dShenning "unknown-210", 630e853bc5dShenning "unknown-211", 631e853bc5dShenning "unknown-212", 632e853bc5dShenning "unknown-213", 633e853bc5dShenning "unknown-214", 634e853bc5dShenning "unknown-215", 635e853bc5dShenning "unknown-216", 636e853bc5dShenning "unknown-217", 637e853bc5dShenning "unknown-218", 638e853bc5dShenning "unknown-219", 639e853bc5dShenning "unknown-220", 640e853bc5dShenning "unknown-221", 641e853bc5dShenning "unknown-222", 642e853bc5dShenning "unknown-223", 643e853bc5dShenning "unknown-224", 644e853bc5dShenning "unknown-225", 645e853bc5dShenning "unknown-226", 646e853bc5dShenning "unknown-227", 647e853bc5dShenning "unknown-228", 648e853bc5dShenning "unknown-229", 649e853bc5dShenning "unknown-230", 650e853bc5dShenning "unknown-231", 651e853bc5dShenning "unknown-232", 652e853bc5dShenning "unknown-233", 653e853bc5dShenning "unknown-234", 654e853bc5dShenning "unknown-235", 655e853bc5dShenning "unknown-236", 656e853bc5dShenning "unknown-237", 657e853bc5dShenning "unknown-238", 658e853bc5dShenning "unknown-239", 659e853bc5dShenning "unknown-240", 660e853bc5dShenning "unknown-241", 661e853bc5dShenning "unknown-242", 662e853bc5dShenning "unknown-243", 663e853bc5dShenning "unknown-244", 664e853bc5dShenning "unknown-245", 665e853bc5dShenning "unknown-246", 666e853bc5dShenning "unknown-247", 667e853bc5dShenning "unknown-248", 668e853bc5dShenning "unknown-249", 669e853bc5dShenning "unknown-250", 670e853bc5dShenning "unknown-251", 671e853bc5dShenning "unknown-252", 672e853bc5dShenning "unknown-253", 673e853bc5dShenning "unknown-254", 674c824f21bShenning "unknown-255" 675c824f21bShenning }; 676e853bc5dShenning 677e853bc5dShenning 678e853bc5dShenning struct hash_table universe_hash; 679e853bc5dShenning 680c824f21bShenning void 681c824f21bShenning initialize_universes(void) 682e853bc5dShenning { 683e853bc5dShenning int i; 684e853bc5dShenning 685e853bc5dShenning dhcp_universe.name = "dhcp"; 686e853bc5dShenning dhcp_universe.hash = new_hash(); 687e853bc5dShenning if (!dhcp_universe.hash) 688e853bc5dShenning error("Can't allocate dhcp option hash table."); 689e853bc5dShenning for (i = 0; i < 256; i++) { 690e853bc5dShenning dhcp_universe.options[i] = &dhcp_options[i]; 691e853bc5dShenning add_hash(dhcp_universe.hash, 692e853bc5dShenning (unsigned char *)dhcp_options[i].name, 0, 693e853bc5dShenning (unsigned char *)&dhcp_options[i]); 694e853bc5dShenning } 695e853bc5dShenning universe_hash.hash_count = DEFAULT_HASH_SIZE; 696e853bc5dShenning add_hash(&universe_hash, 697e853bc5dShenning (unsigned char *)dhcp_universe.name, 0, 698e853bc5dShenning (unsigned char *)&dhcp_universe); 699e853bc5dShenning } 700