xref: /minix3/external/bsd/dhcp/share/dhcpd/pxe.defs (revision 83ee113ee0d94f3844d44065af2311604e9a30ad)
1*83ee113eSDavid van Moolenbroek#	$NetBSD: pxe.defs,v 1.1 2013/03/24 15:54:32 christos Exp $
2*83ee113eSDavid van Moolenbroek#
3*83ee113eSDavid van Moolenbroek# Copyright 2001 Wasabi Systems, Inc.
4*83ee113eSDavid van Moolenbroek# All rights reserved.
5*83ee113eSDavid van Moolenbroek#
6*83ee113eSDavid van Moolenbroek# Written by Jason R. Thorpe for Wasabi Systems, Inc.
7*83ee113eSDavid van Moolenbroek#
8*83ee113eSDavid van Moolenbroek# Redistribution and use in source and binary forms, with or without
9*83ee113eSDavid van Moolenbroek# modification, are permitted provided that the following conditions
10*83ee113eSDavid van Moolenbroek# are met:
11*83ee113eSDavid van Moolenbroek# 1. Redistributions of source code must retain the above copyright
12*83ee113eSDavid van Moolenbroek#    notice, this list of conditions and the following disclaimer.
13*83ee113eSDavid van Moolenbroek# 2. Redistributions in binary form must reproduce the above copyright
14*83ee113eSDavid van Moolenbroek#    notice, this list of conditions and the following disclaimer in the
15*83ee113eSDavid van Moolenbroek#    documentation and/or other materials provided with the distribution.
16*83ee113eSDavid van Moolenbroek# 3. All advertising materials mentioning features or use of this software
17*83ee113eSDavid van Moolenbroek#    must display the following acknowledgement:
18*83ee113eSDavid van Moolenbroek#	This product includes software developed for the NetBSD Project by
19*83ee113eSDavid van Moolenbroek#	Wasabi Systems, Inc.
20*83ee113eSDavid van Moolenbroek# 4. The name of Wasabi Systems, Inc. may not be used to endorse
21*83ee113eSDavid van Moolenbroek#    or promote products derived from this software without specific prior
22*83ee113eSDavid van Moolenbroek#    written permission.
23*83ee113eSDavid van Moolenbroek#
24*83ee113eSDavid van Moolenbroek# THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
25*83ee113eSDavid van Moolenbroek# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26*83ee113eSDavid van Moolenbroek# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27*83ee113eSDavid van Moolenbroek# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
28*83ee113eSDavid van Moolenbroek# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29*83ee113eSDavid van Moolenbroek# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30*83ee113eSDavid van Moolenbroek# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31*83ee113eSDavid van Moolenbroek# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32*83ee113eSDavid van Moolenbroek# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33*83ee113eSDavid van Moolenbroek# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34*83ee113eSDavid van Moolenbroek# POSSIBILITY OF SUCH DAMAGE.
35*83ee113eSDavid van Moolenbroek#
36*83ee113eSDavid van Moolenbroek
37*83ee113eSDavid van Moolenbroek#
38*83ee113eSDavid van Moolenbroek# A PXE client can be identified using Option 60 (vendor-class-identifier).
39*83ee113eSDavid van Moolenbroek# The format of the option is:
40*83ee113eSDavid van Moolenbroek#
41*83ee113eSDavid van Moolenbroek#	PXEClient:Arch:xxxxx:UNDI:yyyzzz
42*83ee113eSDavid van Moolenbroek#
43*83ee113eSDavid van Moolenbroek# This allows you to select PXE clients for special treatment using
44*83ee113eSDavid van Moolenbroek# classes, like so:
45*83ee113eSDavid van Moolenbroek#
46*83ee113eSDavid van Moolenbroek#	class "pxe-clients-ia32" {
47*83ee113eSDavid van Moolenbroek#		match if substring (option vendor-class-identifier, 0, 20) =
48*83ee113eSDavid van Moolenbroek#		    "PXEClient:Arch:00000";
49*83ee113eSDavid van Moolenbroek#		.
50*83ee113eSDavid van Moolenbroek#		.
51*83ee113eSDavid van Moolenbroek#		.
52*83ee113eSDavid van Moolenbroek#	}
53*83ee113eSDavid van Moolenbroek#
54*83ee113eSDavid van Moolenbroek#	class "pxe-clients-ia64" {
55*83ee113eSDavid van Moolenbroek#		match if substring (option vendor-class-identifier, 0, 20) =
56*83ee113eSDavid van Moolenbroek#		    "PXEClient:Arch:00002";
57*83ee113eSDavid van Moolenbroek#		.
58*83ee113eSDavid van Moolenbroek#		.
59*83ee113eSDavid van Moolenbroek#		.
60*83ee113eSDavid van Moolenbroek#	}
61*83ee113eSDavid van Moolenbroek#
62*83ee113eSDavid van Moolenbroek
63*83ee113eSDavid van Moolenbroekoption space PXE;
64*83ee113eSDavid van Moolenbroekoption PXE.mtftp-ip code 1 = ip-address;
65*83ee113eSDavid van Moolenbroekoption PXE.mtftp-cport code 2 = unsigned integer 16;	# XXX little-endian!
66*83ee113eSDavid van Moolenbroekoption PXE.mtftp-sport code 3 = unsigned integer 16;	# XXX little-endian!
67*83ee113eSDavid van Moolenbroekoption PXE.mtftp-tmout code 4 = unsigned integer 8;
68*83ee113eSDavid van Moolenbroekoption PXE.mtftp-delay code 5 = unsigned integer 8;
69*83ee113eSDavid van Moolenbroek
70*83ee113eSDavid van Moolenbroek# PXE.discovery-control is actually a bitfield with the
71*83ee113eSDavid van Moolenbroek# following bits:
72*83ee113eSDavid van Moolenbroek#	0x01	disable broadcast discovery
73*83ee113eSDavid van Moolenbroek#	0x02	disable multicast discovery
74*83ee113eSDavid van Moolenbroek#	0x04	only use/accept servers in PXE.boot-servers
75*83ee113eSDavid van Moolenbroek#	0x08	if file name is present in initial DHCP OFFER,
76*83ee113eSDavid van Moolenbroek#		download that boot file, rather than prompting,
77*83ee113eSDavid van Moolenbroek#		displaying a menu, or performing Boot Server
78*83ee113eSDavid van Moolenbroek#		Discovery.
79*83ee113eSDavid van Moolenbroekoption PXE.discovery-control code 6 = unsigned integer 8;
80*83ee113eSDavid van Moolenbroek
81*83ee113eSDavid van Moolenbroek# Note, this option is REQUIRED unless PXE.discovery-control has
82*83ee113eSDavid van Moolenbroek# 0x02 set.
83*83ee113eSDavid van Moolenbroekoption PXE.discovery-mcast-addr code 7 = ip-address;
84*83ee113eSDavid van Moolenbroek
85*83ee113eSDavid van Moolenbroek# XXX
86*83ee113eSDavid van Moolenbroek# I don't even want to think about how to represent these options
87*83ee113eSDavid van Moolenbroek# in dhcpd.conf syntax.  See table 2-1 in the PXE spec.
88*83ee113eSDavid van Moolenbroek#
89*83ee113eSDavid van Moolenbroek# Luckily, these are options sent by the server back to the client,
90*83ee113eSDavid van Moolenbroek# so we don't really have to deal with them unless we want to use
91*83ee113eSDavid van Moolenbroek# their functionality.
92*83ee113eSDavid van Moolenbroek#
93*83ee113eSDavid van Moolenbroek# option PXE.boot-servers code 8 = ...
94*83ee113eSDavid van Moolenbroek# option PXE.boot-menu code 9 = ...
95*83ee113eSDavid van Moolenbroek# option PXE.menu-prompt code 10 = ...
96*83ee113eSDavid van Moolenbroek
97*83ee113eSDavid van Moolenbroek# XXX
98*83ee113eSDavid van Moolenbroek# Not sure how to represent these in dhcpd.conf syntax.
99*83ee113eSDavid van Moolenbroek# option PXE.mcast-addrs-alloc code 11 = ...
100*83ee113eSDavid van Moolenbroek# option PXE.credential-types code 12 = ...
101*83ee113eSDavid van Moolenbroek
102*83ee113eSDavid van Moolenbroek# Codes 64-127 : Loader Options : Boot Server specific
103*83ee113eSDavid van Moolenbroek
104*83ee113eSDavid van Moolenbroek# PXE.boot-item is actually two 16-bit fields packed into a single
105*83ee113eSDavid van Moolenbroek# 32-bit integer:
106*83ee113eSDavid van Moolenbroek#	Boot Server type  0xffff0000
107*83ee113eSDavid van Moolenbroek#	Boot Server layer 0x0000ffff
108*83ee113eSDavid van Moolenbroekoption PXE.boot-item code 71 = unsigned integer 32;
109*83ee113eSDavid van Moolenbroek
110*83ee113eSDavid van Moolenbroek# Codes 128-254 : Vendor Options : Vendor NBP specific
111*83ee113eSDavid van Moolenbroek
112*83ee113eSDavid van Moolenbroek# XXX NO WAY TO REPRESENT THIS!
113*83ee113eSDavid van Moolenbroek# option PXE.end code 255 = void;
114