# $NetBSD: pxe.defs,v 1.1 2018/04/07 22:31:38 christos Exp $ # # Copyright 2001 Wasabi Systems, Inc. # All rights reserved. # # Written by Jason R. Thorpe for Wasabi Systems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed for the NetBSD Project by # Wasabi Systems, Inc. # 4. The name of Wasabi Systems, Inc. may not be used to endorse # or promote products derived from this software without specific prior # written permission. # # THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # # A PXE client can be identified using Option 60 (vendor-class-identifier). # The format of the option is: # # PXEClient:Arch:xxxxx:UNDI:yyyzzz # # This allows you to select PXE clients for special treatment using # classes, like so: # # class "pxe-clients-ia32" { # match if substring (option vendor-class-identifier, 0, 20) = # "PXEClient:Arch:00000"; # . # . # . # } # # class "pxe-clients-ia64" { # match if substring (option vendor-class-identifier, 0, 20) = # "PXEClient:Arch:00002"; # . # . # . # } # option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; # XXX little-endian! option PXE.mtftp-sport code 3 = unsigned integer 16; # XXX little-endian! option PXE.mtftp-tmout code 4 = unsigned integer 8; option PXE.mtftp-delay code 5 = unsigned integer 8; # PXE.discovery-control is actually a bitfield with the # following bits: # 0x01 disable broadcast discovery # 0x02 disable multicast discovery # 0x04 only use/accept servers in PXE.boot-servers # 0x08 if file name is present in initial DHCP OFFER, # download that boot file, rather than prompting, # displaying a menu, or performing Boot Server # Discovery. option PXE.discovery-control code 6 = unsigned integer 8; # Note, this option is REQUIRED unless PXE.discovery-control has # 0x02 set. option PXE.discovery-mcast-addr code 7 = ip-address; # XXX # I don't even want to think about how to represent these options # in dhcpd.conf syntax. See table 2-1 in the PXE spec. # # Luckily, these are options sent by the server back to the client, # so we don't really have to deal with them unless we want to use # their functionality. # # option PXE.boot-servers code 8 = ... # option PXE.boot-menu code 9 = ... # option PXE.menu-prompt code 10 = ... # XXX # Not sure how to represent these in dhcpd.conf syntax. # option PXE.mcast-addrs-alloc code 11 = ... # option PXE.credential-types code 12 = ... # Codes 64-127 : Loader Options : Boot Server specific # PXE.boot-item is actually two 16-bit fields packed into a single # 32-bit integer: # Boot Server type 0xffff0000 # Boot Server layer 0x0000ffff option PXE.boot-item code 71 = unsigned integer 32; # Codes 128-254 : Vendor Options : Vendor NBP specific # XXX NO WAY TO REPRESENT THIS! # option PXE.end code 255 = void;