# $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;