Module Name: src Committed By: christos Date: Sat Apr 7 22:31:38 UTC 2018
Added Files: src/external/mpl/dhcp: Makefile Makefile.inc dhcp2netbsd src/external/mpl/dhcp/bin: Makefile Makefile.inc src/external/mpl/dhcp/bin/client: Makefile src/external/mpl/dhcp/bin/clientscript: Makefile dhclient-script src/external/mpl/dhcp/bin/omshell: Makefile src/external/mpl/dhcp/bin/relay: Makefile src/external/mpl/dhcp/bin/server: Makefile dhcpd.conf src/external/mpl/dhcp/include: config.h src/external/mpl/dhcp/lib: Makefile Makefile.inc src/external/mpl/dhcp/lib/common: Makefile src/external/mpl/dhcp/lib/dhcpctl: Makefile src/external/mpl/dhcp/lib/omapip: Makefile src/external/mpl/dhcp/share: Makefile src/external/mpl/dhcp/share/dhcpd: Makefile pxe.defs Log Message: Add build glue. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/Makefile \ src/external/mpl/dhcp/Makefile.inc src/external/mpl/dhcp/dhcp2netbsd cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/bin/Makefile \ src/external/mpl/dhcp/bin/Makefile.inc cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/bin/client/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/bin/clientscript/Makefile \ src/external/mpl/dhcp/bin/clientscript/dhclient-script cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/bin/omshell/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/bin/relay/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/bin/server/Makefile \ src/external/mpl/dhcp/bin/server/dhcpd.conf cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/include/config.h cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/lib/Makefile \ src/external/mpl/dhcp/lib/Makefile.inc cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/lib/common/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/lib/dhcpctl/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/lib/omapip/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/share/Makefile cvs rdiff -u -r0 -r1.1 src/external/mpl/dhcp/share/dhcpd/Makefile \ src/external/mpl/dhcp/share/dhcpd/pxe.defs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: src/external/mpl/dhcp/Makefile diff -u /dev/null src/external/mpl/dhcp/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/Makefile Sat Apr 7 18:31:36 2018 @@ -0,0 +1,5 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:36 christos Exp $ + +SUBDIR= lib share .WAIT bin + +.include <bsd.subdir.mk> Index: src/external/mpl/dhcp/Makefile.inc diff -u /dev/null src/external/mpl/dhcp/Makefile.inc:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/Makefile.inc Sat Apr 7 18:31:36 2018 @@ -0,0 +1,53 @@ +# $NetBSD: Makefile.inc,v 1.1 2018/04/07 22:31:36 christos Exp $ + +WARNS?= 1 # XXX -Wshadow -Wcast-qual -Wsign-compare + +.include <bsd.own.mk> + +USE_FORT?= yes # network client/server +CWARNFLAGS.clang+= -Wno-tautological-compare \ + -Wno-conversion -Wno-constant-logical-operand \ + -Wno-format-security -Wno-error=unused-const-variable + +DIST:= ${.PARSEDIR}/dist +BIND:= ${.PARSEDIR}/../../bsd/bind/dist +.PATH: ${DIST}/${DHCPSRCDIR} + +COBJDIR!=cd ${.PARSEDIR}/lib/common && ${PRINTOBJDIR} +OMOBJDIR!=cd ${.PARSEDIR}/lib/omapip && ${PRINTOBJDIR} + +.if (${USE_INET6} != "no") +CPPFLAGS+= -DDHCPv6 +.endif +CPPFLAGS+= -DISC_PLATFORM_USETHREADS -DHAVE_CONFIG_H +CPPFLAGS+= -I${DIST} -I${DIST}/includes -I${DIST}/../include +CPPFLAGS+= -I${BIND} -I${BIND}/includes -I${BIND}/../include +.for dir in isc dns irs +CPPFLAGS+= -I${BIND}/lib/${dir}/include +CPPFLAGS+= -I${BIND}/lib/${dir}/unix/include +CPPFLAGS+= -I${BIND}/lib/${dir}/pthreads/include +.endfor +CPPFLAGS+= -DLOCALSTATEDIR='"/var"' +LDADD+= ${COBJDIR}/libdhcp.a +LDADD+= ${OMOBJDIR}/libomapi.a +.if defined(PROG) && ${PROG} == "dhclient" +LDADD+=-Wl,-Bstatic +.endif +LDADD+= -lirs -lisccfg -ldns -lisc +LDADD+=-lpthread +.if (${MKKERBEROS} != "no") +LDADD+= -lgssapi -lheimntlm ${LIBKRB5_LDADD} ${LIBKRB5_STATIC_LDADD} +DPADD+= ${LIBKRB5_DPADD} ${LIBHEIMNTLM} ${LIBGSSAPI} ${LIBKRB5_STATIC_DPADD} +.endif +.if defined(PROG) && ${PROG} == "dhclient" +LDADD+=-Wl,-Bdynamic +.endif +LDADD+= -lcrypto -lipsec -lcrypt +DPADD+= ${LIBCRYPTO} ${LIBIPSEC} ${LIBCRYPT} +.if defined(PROG) && ${PROG} == "dhclient" +LDADD+=-Wl,-Bdynamic +.endif +DPADD+= ${COBJDIR}/libdhcp.a +DPADD+= ${OMOBJDIR}/libomapi.a +DPADD+= ${LIBDNS} ${LIBISC} +DPADD+= ${LIBPTHREAD} Index: src/external/mpl/dhcp/dhcp2netbsd diff -u /dev/null src/external/mpl/dhcp/dhcp2netbsd:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/dhcp2netbsd Sat Apr 7 18:31:36 2018 @@ -0,0 +1,102 @@ +#! /bin/sh +# +# $NetBSD: dhcp2netbsd,v 1.1 2018/04/07 22:31:36 christos Exp $ +# +# Copyright (c) 2003, 2011 The NetBSD Foundation, Inc. +# All rights reserved. +# +# 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. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``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 THE FOUNDATION OR CONTRIBUTORS +# 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. +# +# dhcp2netbsd: convert a dhcp source tree into a +# format suitable for import. Works on current dir. +# You can run this only once if you want it to work. +# +# based on file2netbsd +# +PROG="$(basename "$0")" + +if [ -z "$1" ] +then + echo "Usage: $PROG <directory>" 1>&2 + exit 1 +fi +FILE="$1" + +### Wipe out stuff we don't want +rm -fr bind + +### Remove the $'s around RCS tags +cleantags "$FILE" + +### Add NetBSD RCS Id +find "$FILE" -type f -name '*.[chly]' -print | while read c; do + sed -e '1{/$NetBSD/!{i\ +/* \$NetBSD\$ */\ + +};}' $c > /tmp/dhcp1$$ +mv /tmp/dhcp1$$ $c && echo did source mods for $c +done + +find "$FILE" -type f -name '*.[cly]' -print | while read c; do +sed -e \ +'/:\/\/www.isc.org/,/^ \*\// { + /^ \*\//a\ +\ +#include <sys/cdefs.h>\ +__RCSID("\$NetBSD\$"); +}' $c > /tmp/dhcp1$$ +mv /tmp/dhcp1$$ $c && echo did source mods for $c +done + + for f in dst/dst_api.c dst/dst_support.c dst/hmac_link.c dst/prandom.c \ + omapip/inet_addr.c omapip/iscprint.c server/dhcpv6.c \ + server/dhcpleasequery.c server/ldap.c server/mdb6.c; do + c=$FILE/$f + sed -E -e \ +'/\* TH(E|IS) SOFTWARE/,/^ \*\// { + /^ \*\//a\ +\ +#include <sys/cdefs.h>\ +__RCSID("\$NetBSD\$");\ + +}' $c > /tmp/dhcp1$$ + mv /tmp/dhcp1$$ $c && echo did source mods for $c +done + + + +#### Add RCS tags to man pages +find "$FILE" -type f -name '*.[0-9]' -print | while read m; do + sed -e '1{/$NetBSD/!i\ +.\\" \$NetBSD\$\ +.\\" + +}' $m > /tmp/dhcp2$$ +mv /tmp/dhcp2$$ $m && echo did manpage mods for $m +done + +echo done + +echo You can import now. Use the following command: +echo cvs -d cvs.netbsd.org:/cvsroot import src/external/bsd/dhcp/dist ISC DHCPX_Y_Z + +exit 0 Index: src/external/mpl/dhcp/bin/Makefile diff -u /dev/null src/external/mpl/dhcp/bin/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,5 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +SUBDIR= clientscript server client relay omshell + +.include <bsd.subdir.mk> Index: src/external/mpl/dhcp/bin/Makefile.inc diff -u /dev/null src/external/mpl/dhcp/bin/Makefile.inc:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/Makefile.inc Sat Apr 7 18:31:37 2018 @@ -0,0 +1,2 @@ +.include "${.PARSEDIR}/../Makefile.inc" +BINDIR?=/usr/sbin Index: src/external/mpl/dhcp/bin/client/Makefile diff -u /dev/null src/external/mpl/dhcp/bin/client/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/client/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,17 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +BINDIR= /sbin +.include <bsd.own.mk> # for MKDYNAMICROOT definition + +SRCS = dhclient.c clparse.c dhc6.c client_tables.c +PROG = dhclient +MAN = dhclient.8 dhclient.conf.5 dhclient.leases.5 dhclient-script.8 +CPPFLAGS += -DCLIENT_PATH='"PATH=/usr/bin:/usr/sbin:/bin:/sbin"' + +DHCPSRCDIR= client + +.if (${MKDYNAMICROOT} == "no") +LDSTATIC?= -static +.endif + +.include <bsd.prog.mk> Index: src/external/mpl/dhcp/bin/clientscript/Makefile diff -u /dev/null src/external/mpl/dhcp/bin/clientscript/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/clientscript/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +NOOBJ= # defined + +SCRIPTS=dhclient-script +SCRIPTSDIR=/sbin + +.include <bsd.prog.mk> Index: src/external/mpl/dhcp/bin/clientscript/dhclient-script diff -u /dev/null src/external/mpl/dhcp/bin/clientscript/dhclient-script:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/clientscript/dhclient-script Sat Apr 7 18:31:37 2018 @@ -0,0 +1,282 @@ +#!/bin/sh +# +# $NetBSD: dhclient-script,v 1.1 2018/04/07 22:31:37 christos Exp $ + +ENTERHOOKS=/etc/dhclient-enter-hooks +EXITHOOKS=/etc/dhclient-exit-hooks +RESOLV=/etc/resolv.conf +SIGNATURE="# Created by dhclient from" +INTSIG="$SIGNATURE $interface" + +echo_resolv_conf() { + echo "$INTSIG" + echo search $new_domain_name + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver + done +} + +make_resolv_conf() { + if [ ! -z "$new_domain_name_servers" ]; then + if [ -x /sbin/resolvconf ]; then + echo_resolv_conf | /sbin/resolvconf -a $interface + else + if [ -f $RESOLV ]; then + while read line; do + case $line in + "$SIGNATURE"*) + ;; + *) + mv $RESOLV $RESOLV.save;; + esac + break + done < $RESOLV + fi + echo_resolv_conf > $RESOLV + fi + fi +} + +restore_resolv_conf() { + if [ -x /sbin/resolvconf ]; then + /sbin/resolvconf -d $interface + elif [ -f $RESOLV.save -a -f $RESOLV ]; then + while read line; do + case $line in + "$INTSIG"*) + mv $RESOLV.save $RESOLV;; + esac + break + done < $RESOLV + fi +} + +# Must be used on exit. Invokes the local dhcp client exit hooks, if any. +exit_with_hooks() { + exit_status=$1 + if [ -f "$EXITHOOKS" ]; then + . "$EXITHOOKS" + fi + # probably should do something with exit status of the local script + exit $exit_status +} + + +add_new_routes() { + for router in $new_routers; do + route add default $router + done >/dev/null 2>&1 + + set -- $new_static_routes + while [ $# -gt 1 ]; do + route add $1 $2 + shift; shift + done +} + +delete_old_routes() { + for router in $old_routers; do + route delete default $router + done >/dev/null 2>&1 + + set -- $old_static_routes + while [ $# -gt 1 ]; do + route delete $1 $2 + shift; shift + done + + route -n flush -inet -host +} + +# Invoke the local dhcp client enter hooks, if they exist. +if [ -f $ENTERHOOKS ]; then + exit_status=0 + . $ENTERHOOKS + # allow the local script to abort processing of this state + # local script must set exit_status variable to nonzero. + if [ $exit_status -ne 0 ]; then + exit $exit_status + fi +fi + +#if [ ! -z "$new_host_name" ]; then +# echo New Host Name: $new_host_name +#fi +# +#if [ ! -z "$new_nis_domain" ]; then +# echo New NIS Domain: $new_nis_domain +#fi +# +#if [ ! -z "$new_network_number" ]; then +# echo New Network Number: $new_network_number +#fi + +if [ ! -z "$new_broadcast_address" ]; then +# echo New Broadcast Address: $new_broadcast_address + new_broadcast_arg="broadcast $new_broadcast_address" +fi + +if [ ! -z "$old_broadcast_address" ]; then + old_broadcast_arg="broadcast $old_broadcast_address" +fi + +if [ ! -z "$new_subnet_mask" ]; then + new_netmask_arg="netmask $new_subnet_mask" +fi + +if [ ! -z "$old_subnet_mask" ]; then + old_netmask_arg="netmask $old_subnet_mask" +fi + +if [ ! -z "$alias_subnet_mask" ]; then + alias_subnet_arg="netmask $alias_subnet_mask" +fi + +case "$reason" in +MEDIUM) + test -z "$medium" && exit_with_hooks 0 + eval "ifconfig $interface $medium" + eval "ifconfig $interface inet -alias 0.0.0.0 $medium" >/dev/null 2>&1 + + sleep 1 + + exit_with_hooks 0 + ;; + +PREINIT) + if [ ! -z "$alias_ip_address" ]; then + ifconfig $interface inet \ + -alias $alias_ip_address >/dev/null 2>&1 + fi + + ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ + broadcast 255.255.255.255 up + + exit_with_hooks 0 + ;; + +ARPCHECK|ARPSEND) + exit_with_hooks 0 + ;; + +BOUND|RENEW|REBIND|REBOOT) + if [ ! -z "$new_nis_domain" ]; then + if type domainname > /dev/null 2>&1; then + domainname $new_nis_domain + fi + fi + + if type hostname > /dev/null 2>&1; then + if [ \( -z "$current_hostname" \) -o \ + \( "x$new_host_name" = "x$old_hostname" \) ]; then + current_hostname=`hostname` + fi + if [ \( -z "$current_hostname" \) -o \ + \( "x$new_host_name" != "x$old_hostname" \) ]; then + hostname $new_host_name + fi + fi + + if [ \( ! -z "$old_ip_address" \) -a \( ! -z "$alias_ip_address" \) -a \ + \( "x$alias_ip_address" != "x$old_ip_address" \) ]; then + ifconfig $interface inet \ + -alias $alias_ip_address > /dev/null 2>&1 + fi + + if [ \( ! -z "$old_ip_address" \) -a \ + \( "x$old_ip_address" != "x$new_ip_address" \) ]; then + eval "ifconfig $interface inet -alias $old_ip_address $medium" + delete_old_routes + fi + + if [ \( -z "$old_ip_address" \) -o \ + \( "x$old_ip_address" != "x$new_ip_address" \) -o \ + \( "x$reason" = "xBOUND" \) -o \( "x$reason" = "xREBOOT" \) ]; then + eval "ifconfig $interface inet $new_ip_address \ + $new_netmask_arg $new_broadcast_arg $medium" + add_new_routes + fi + + if [ \( ! -z "$alias_ip_address" \) -a \ + \( "x$new_ip_address" != "x$alias_ip_address" \) ]; then + ifconfig $interface inet alias $alias_ip_address \ + $alias_subnet_arg + fi + make_resolv_conf + exit_with_hooks 0 + ;; + +EXPIRE|FAIL|RELEASE|STOP) + if [ ! -z "$old_nis_domain" ]; then + if type domainname > /dev/null 2>&1; then + # delete the old nis domain name + domainname "" + fi + fi + + if [ ! -z "$alias_ip_address" ]; then + ifconfig $interface inet -alias $alias_ip_address + fi > /dev/null 2>&1 + + if [ ! -z "$old_ip_address" ]; then + eval "ifconfig $interface inet -alias $old_ip_address $medium" + delete_old_routes + + fi + + if [ ! -z "$alias_ip_address" ]; then + ifconfig $interface inet alias $alias_ip_address \ + $alias_subnet_arg + fi + + restore_resolv_conf + exit_with_hooks 0 + ;; + +TIMEOUT) + if [ ! -z "$alias_ip_address" ]; then + ifconfig $interface inet -alias $alias_ip_address + fi > /dev/null 2>&1 + + if [ ! -z "$new_host_name" ]; then + if type hostname > /dev/null 2>&1; then + hostname $new_host_name + fi + fi + + if [ ! -z "$new_nis_domain" ]; then + if type domainname > /dev/null 2>&1; then + domainname $new_nis_domain + fi + fi + + eval "ifconfig $interface inet $new_ip_address $new_netmask_arg \ + $new_broadcast_arg $medium" + sleep 1 + + if [ ! -z "$new_routers" ]; then + set -- $new_routers + if ping -n -q -c 1 -w 1 $1; then + if [ \( ! -z "$alias_ip_address" \) -a \ + \( "x$new_ip_address" != "x$alias_ip_address" \) ] + then + ifconfig $interface inet alias \ + $alias_ip_address $alias_subnet_arg + fi + + add_new_routes + make_resolv_conf + exit_with_hooks 0 + fi + fi + + eval "ifconfig $interface inet -alias $new_ip_address $medium" + + delete_old_routes + + exit_with_hooks 1 + ;; +*) + exit_with_hooks 0 + ;; +esac Index: src/external/mpl/dhcp/bin/omshell/Makefile diff -u /dev/null src/external/mpl/dhcp/bin/omshell/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/omshell/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,16 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +.include <bsd.own.mk> + +SRCS = omshell.c +PROG = omshell +MAN = omshell.1 + +DHCPSRCDIR= dhcpctl + +CTLOBJDIR!=cd $(.CURDIR)/../../lib/dhcpctl && ${PRINTOBJDIR} + +LDADD+= ${CTLOBJDIR}/libdhcpctl.a +DPADD+= ${CTLOBJDIR}/libdhcpctl.a + +.include <bsd.prog.mk> Index: src/external/mpl/dhcp/bin/relay/Makefile diff -u /dev/null src/external/mpl/dhcp/bin/relay/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/relay/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,9 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +SRCS = dhcrelay.c +PROG = dhcrelay +MAN = dhcrelay.8 + +DHCPSRCDIR= relay + +.include <bsd.prog.mk> Index: src/external/mpl/dhcp/bin/server/Makefile diff -u /dev/null src/external/mpl/dhcp/bin/server/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/server/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,20 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +.include <bsd.own.mk> + +SRCS = dhcpd.c dhcp.c dhcpv6.c bootp.c confpars.c db.c class.c failover.c \ + omapi.c mdb.c mdb6.c stables.c salloc.c ddns.c dhcpleasequery.c +PROG = dhcpd +MAN = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 + +DHCPSRCDIR= server + +.if ${MKSHARE} != "no" +FILESDIR= /usr/share/examples/dhcp + +FILES= dhcpd.conf +.endif + +COPTS.omapi.c += -Wno-stack-protector + +.include <bsd.prog.mk> Index: src/external/mpl/dhcp/bin/server/dhcpd.conf diff -u /dev/null src/external/mpl/dhcp/bin/server/dhcpd.conf:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/bin/server/dhcpd.conf Sat Apr 7 18:31:37 2018 @@ -0,0 +1,104 @@ +# dhcpd.conf +# +# Sample configuration file for ISC dhcpd +# + +# option definitions common to all supported networks... +option domain-name "example.org"; +option domain-name-servers ns1.example.org, ns2.example.org; + +default-lease-time 600; +max-lease-time 7200; + +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +#authoritative; + +# Dynamic DNS update scheme - must be set to "none", "interim" or "ad-hoc". +ddns-update-style none; + +# Use this to send dhcp log messages to a different log file (you also +# have to hack syslog.conf to complete the redirection). +log-facility local7; + +# No service will be given on this subnet, but declaring it helps the +# DHCP server to understand the network topology. + +subnet 10.152.187.0 netmask 255.255.255.0 { +} + +# This is a very basic subnet declaration. + +subnet 10.254.239.0 netmask 255.255.255.224 { + range 10.254.239.10 10.254.239.20; + option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; +} + +# This declaration allows BOOTP clients to get dynamic addresses, +# which we don't really recommend. + +subnet 10.254.239.32 netmask 255.255.255.224 { + range dynamic-bootp 10.254.239.40 10.254.239.60; + option broadcast-address 10.254.239.31; + option routers rtr-239-32-1.example.org; +} + +# A slightly different configuration for an internal subnet. +subnet 10.5.5.0 netmask 255.255.255.224 { + range 10.5.5.26 10.5.5.30; + option domain-name-servers ns1.internal.example.org; + option domain-name "internal.example.org"; + option routers 10.5.5.1; + option broadcast-address 10.5.5.31; + default-lease-time 600; + max-lease-time 7200; +} + +# Hosts which require special configuration options can be listed in +# host statements. If no address is specified, the address will be +# allocated dynamically (if possible), but the host-specific information +# will still come from the host declaration. + +host passacaglia { + hardware ethernet 0:0:c0:5d:bd:95; + filename "vmunix.passacaglia"; + server-name "toccata.fugue.com"; +} + +# Fixed IP addresses can also be specified for hosts. These addresses +# should not also be listed as being available for dynamic assignment. +# Hosts for which fixed IP addresses have been specified can boot using +# BOOTP or DHCP. Hosts for which no fixed address is specified can only +# be booted with DHCP, unless there is an address range on the subnet +# to which a BOOTP client is connected which has the dynamic-bootp flag +# set. +host fantasia { + hardware ethernet 08:00:07:26:c0:a5; + fixed-address fantasia.fugue.com; +} + +# You can declare a class of clients and then do address allocation +# based on that. The example below shows a case where all clients +# in a certain class get addresses on the 10.17.224/24 subnet, and all +# other clients get addresses on the 10.0.29/24 subnet. + +class "foo" { + match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; +} + +shared-network 224-29 { + subnet 10.17.224.0 netmask 255.255.255.0 { + option routers rtr-224.example.org; + } + subnet 10.0.29.0 netmask 255.255.255.0 { + option routers rtr-29.example.org; + } + pool { + allow members of "foo"; + range 10.17.224.10 10.17.224.250; + } + pool { + deny members of "foo"; + range 10.0.29.10 10.0.29.230; + } +} Index: src/external/mpl/dhcp/include/config.h diff -u /dev/null src/external/mpl/dhcp/include/config.h:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/include/config.h Sat Apr 7 18:31:37 2018 @@ -0,0 +1,326 @@ +/* includes/config.h. Generated from config.h.in by configure. */ +/* includes/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define to support binary insertion of leases into queues. */ +/* #undef BINARY_LEASES */ + +/* Define to compile debug-only DHCP software. */ +/* #undef DEBUG */ + +/* Define to queue multiple DHCPACK replies per fsync. */ +/* #undef DELAYED_ACK */ + +/* Define to BIG_ENDIAN for MSB (Motorola or SPARC CPUs) or LITTLE_ENDIAN for + LSB (Intel CPUs). */ +#include <sys/endian.h> +#define DHCP_BYTE_ORDER _BYTE_ORDER + +#if 0 +/* make it possible to obey USE_INET6=no, define it in the Makefile instead */ +/* Define to 1 to include DHCPv6 support. */ +#define DHCPv6 1 +#endif + +/* Define to any value to chroot() prior to loading config. */ +/* #undef EARLY_CHROOT */ + +/* Define to include execute() config language support. */ +#define ENABLE_EXECUTE 1 + +/* Define to include Failover Protocol support. */ +#define FAILOVER_PROTOCOL 1 + +/* Define to nothing if C supports flexible array members, and to 1 if it does + not. That way, with a declaration like `struct s { int n; double + d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 + compilers. When computing the size of such an object, don't use 'sizeof + (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' + instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with + MSVC and with C++ compilers. */ +#define FLEXIBLE_ARRAY_MEMBER /**/ + +/* ATF framework specified? */ +#define HAVE_ATF 1 + +/* Define to 1 to use the Berkeley Packet Filter interface code. */ +#define HAVE_BPF 1 + +/* Define to 1 if you have the /dev/random file. */ +#define HAVE_DEV_RANDOM 1 + +/* Define to 1 to use DLPI interface code. */ +/* #undef HAVE_DLPI */ + +/* Define to 1 if you have the <ifaddrs.h> header file. */ +#define HAVE_IFADDRS_H 1 + +/* Define to 1 if you have the `inet_ntop' function. */ +#define HAVE_INET_NTOP 1 + +/* Define to 1 if you have the `inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the <ldap.h> header file. */ +#define HAVE_LDAP_H 1 + +/* Define to 1 if you have the <linux/types.h> header file. */ +/* #undef HAVE_LINUX_TYPES_H */ + +/* Define to 1 to use the Linux Packet Filter interface code. */ +/* #undef HAVE_LPF */ + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the <micasa_mgmd.h> header file. */ +/* #undef HAVE_MICASA_MGMD_H */ + +/* Define to 1 if you have the <net/if6.h> header file. */ +/* #undef HAVE_NET_IF6_H */ + +/* Define to 1 if you have the <net/if_dl.h> header file. */ +#define HAVE_NET_IF_DL_H 1 + +/* Define to 1 if you have the <regex.h> header file. */ +#define HAVE_REGEX_H 1 + +/* Define to 1 if the sockaddr structure has a length field. */ +#define HAVE_SA_LEN /**/ + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcat' function. */ +#define HAVE_STRLCAT 1 + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the string for a noreturn attribute. */ +#define ISC_DHCP_NORETURN __attribute__((noreturn)) + +/* Define to 1 if the system has 'struct if_laddrconf'. */ +/* #undef ISC_PLATFORM_HAVEIF_LADDRCONF */ + +/* Define to 1 if the system has 'struct if_laddrreq'. */ +/* #undef ISC_PLATFORM_HAVEIF_LADDRREQ */ + +/* Define to 1 if the system has 'struct lifnum'. */ +/* #undef ISC_PLATFORM_HAVELIFNUM */ + +/* Define to 1 if the inet_aton() function is missing. */ +/* #undef NEED_INET_ATON */ + +/* Name of package */ +#define PACKAGE "dhcp" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "dhcp-us...@isc.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "DHCP" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "DHCP 4.3.3" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "dhcp" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "4.3.3" + +/* Define to any value to include Ari's PARANOIA patch. */ +/* #undef PARANOIA */ + +/* Define to correct bad byteorders in secs field. */ +/* #undef SECS_BYTEORDER */ + +/* The size of `struct iaddr *', as computed by sizeof. */ +#define SIZEOF_STRUCT_IADDR_P sizeof(void *) + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to include server activity tracing support. */ +#define TRACING 1 + +/* Define to include PIDs in syslog messages. */ +#define USE_LOG_PID 1 + +/* Define to 1 to use the standard BSD socket API. */ +/* #undef USE_SOCKETS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Define to 1 to enable IPv4 packet info support. */ +/* #undef USE_V4_PKTINFO */ + +/* Version number of package */ +#define VERSION "4.3.3" + +/* tpacket_auxdata.tp_vlan_tci present */ +/* #undef VLAN_TCI_PRESENT */ + +#if 0 +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif +#else +#if _BYTE_ORDER == _BIG_ENDIAN +# define WORDS_BIGENDIAN 1 +#endif +#endif + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* File for dhclient6 leases. */ +/* #undef _PATH_DHCLIENT6_DB */ + +/* File for dhclient6 process information. */ +/* #undef _PATH_DHCLIENT6_PID */ + +/* File for dhclient leases. */ +/* #undef _PATH_DHCLIENT_DB */ + +/* File for dhclient process information. */ +/* #undef _PATH_DHCLIENT_PID */ + +/* File for dhcpd6 leases. */ +/* #undef _PATH_DHCPD6_DB */ + +/* File for dhcpd6 process information. */ +/* #undef _PATH_DHCPD6_PID */ + +/* File for dhcpd leases. */ +/* #undef _PATH_DHCPD_DB */ + +/* File for dhcpd process information. */ +/* #undef _PATH_DHCPD_PID */ + +/* File for dhcrelay6 process information. */ +/* #undef _PATH_DHCRELAY6_PID */ + +/* File for dhcrelay process information. */ +/* #undef _PATH_DHCRELAY_PID */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT32_T */ + +/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT64_T */ + +/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT8_T */ + +/* Define to the type of a signed integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int16_t */ + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int32_t */ + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int64_t */ + +/* Define to the type of a signed integer type of width exactly 8 bits if such + a type exists and the standard includes do not define it. */ +/* #undef int8_t */ + +/* Define a type for 16-bit unsigned integers. */ +/* #undef u_int16_t */ + +/* Define a type for 32-bit unsigned integers. */ +/* #undef u_int32_t */ + +/* Define a type for 64-bit unsigned integers. */ +/* #undef u_int64_t */ + +/* Define a type for 8-bit unsigned integers. */ +/* #undef u_int8_t */ + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint16_t */ + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint32_t */ + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint64_t */ + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint8_t */ Index: src/external/mpl/dhcp/lib/Makefile diff -u /dev/null src/external/mpl/dhcp/lib/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/lib/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,5 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +SUBDIR= common dhcpctl omapip + +.include <bsd.subdir.mk> Index: src/external/mpl/dhcp/lib/Makefile.inc diff -u /dev/null src/external/mpl/dhcp/lib/Makefile.inc:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/lib/Makefile.inc Sat Apr 7 18:31:37 2018 @@ -0,0 +1 @@ +.include "${.PARSEDIR}/../Makefile.inc" Index: src/external/mpl/dhcp/lib/common/Makefile diff -u /dev/null src/external/mpl/dhcp/lib/common/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/lib/common/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,14 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +LIBISPRIVATE= yes + +LIB = dhcp +SRCS = raw.c parse.c nit.c icmp.c dispatch.c conflex.c upf.c bpf.c socket.c \ + lpf.c dlpi.c packet.c tr.c ethernet.c memory.c print.c options.c \ + inet.c tree.c tables.c alloc.c fddi.c ctrace.c \ + dns.c resolv.c execute.c discover.c comapi.c ns_name.c +MAN = dhcp-options.5 dhcp-eval.5 + +DHCPSRCDIR= common + +.include <bsd.lib.mk> Index: src/external/mpl/dhcp/lib/dhcpctl/Makefile diff -u /dev/null src/external/mpl/dhcp/lib/dhcpctl/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/lib/dhcpctl/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +LIBISPRIVATE= yes + +LIB = dhcpctl +SRCS = dhcpctl.c callback.c remote.c + +DHCPSRCDIR= dhcpctl + +.include <bsd.lib.mk> Index: src/external/mpl/dhcp/lib/omapip/Makefile diff -u /dev/null src/external/mpl/dhcp/lib/omapip/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/lib/omapip/Makefile Sat Apr 7 18:31:37 2018 @@ -0,0 +1,13 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:37 christos Exp $ + +LIBISPRIVATE= yes + +LIB = omapi +SRCS = protocol.c buffer.c alloc.c result.c connection.c errwarn.c \ + listener.c dispatch.c generic.c support.c handle.c message.c \ + auth.c convert.c hash.c array.c inet_addr.c trace.c \ + toisc.c isclib.c + +DHCPSRCDIR= omapip + +.include <bsd.lib.mk> Index: src/external/mpl/dhcp/share/Makefile diff -u /dev/null src/external/mpl/dhcp/share/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/share/Makefile Sat Apr 7 18:31:38 2018 @@ -0,0 +1,5 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:38 christos Exp $ + +SUBDIR= dhcpd + +.include <bsd.subdir.mk> Index: src/external/mpl/dhcp/share/dhcpd/Makefile diff -u /dev/null src/external/mpl/dhcp/share/dhcpd/Makefile:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/share/dhcpd/Makefile Sat Apr 7 18:31:38 2018 @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2018/04/07 22:31:38 christos Exp $ + +.include <bsd.own.mk> + +.if ${MKSHARE} != "no" +FILES= pxe.defs +FILESDIR=/usr/share/dhcpd +.endif + +.include <bsd.prog.mk> Index: src/external/mpl/dhcp/share/dhcpd/pxe.defs diff -u /dev/null src/external/mpl/dhcp/share/dhcpd/pxe.defs:1.1 --- /dev/null Sat Apr 7 18:31:38 2018 +++ src/external/mpl/dhcp/share/dhcpd/pxe.defs Sat Apr 7 18:31:38 2018 @@ -0,0 +1,113 @@ +# $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;