README revision 1.1
11.1Sgwr
21.1SgwrThis is an enhanced version of the CMU BOOTP server which was derived
31.1Sgwrfrom the original BOOTP server created by Bill Croft at Stanford.
41.1SgwrThis version merges all the enhancements and bug-fixes from the
51.1SgwrNetBSD, Columbia, and other versions.
61.1Sgwr
71.1SgwrIf you have problems or questions about this version, send email to:
81.1Sgwr	gwr@mc.com (Gordon W. Ross)
91.1Sgwr
101.1SgwrFor general questions about BOOTP, send email to the list:
111.1Sgwr	bootp@andrew.cmu.edu
121.1SgwrYou can subscribe to this mailing list by sending mail to:
131.1Sgwr	bootp-request@andrew.cmu.edu
141.1Sgwr(The body of the message should contain: "Add <your-address>")
151.1Sgwr
161.1Sgwr[ From the NetBSD README file: ]
171.1Sgwr
181.1SgwrBOOTPD is a useful adjunct to the nfs diskless boot EPROM code.
191.1Sgwr
201.1SgwrThe alternatives for initiating a boot of a kernel across a network
211.1Sgwrare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible;
221.1Sgwrit allows additional items of information to be returned to the
231.1Sgwrbooting client; it also supports booting across gateways.
241.1Sgwr
251.1Sgwr[ From the CMU README file: ]
261.1Sgwr
271.1SgwrNotes:
281.1Sgwr1) BOOTP was originally designed and implemented by Bill Croft at Stanford.
291.1Sgwr   Much of the credit for the ideas and the code goes to him.  We've added
301.1Sgwr   code to support the vendor specific area of the packet as specified in
311.1Sgwr   RFC1048.  We've also improved the host lookup algorithm and added some
321.1Sgwr   extra logging.
331.1Sgwr
341.1Sgwr2) The server now uses syslog to do logging.  Specifically it uses the 4.3bsd
351.1Sgwr   version.  I've #ifdef'd all of these calls.  If you are running 4.2 you
361.1Sgwr   should compile without the -DSYSLOG switch.
371.1Sgwr
381.1Sgwr3) You must update your /etc/services file to contain the following two lines:
391.1Sgwr	bootps		67/udp		bootp		# BOOTP Server
401.1Sgwr	bootpc		68/udp				# BOOTP Client
411.1Sgwr
421.1Sgwr4) Edit the bootptab.  It has some explanitory comments, and there
431.1Sgwr   is a manual entry describing its format (bootptab.5)
441.1Sgwr   If you have any questions, just let us know.
451.1Sgwr
461.1SgwrConstruction:
471.1Sgwr    [ See the file Installation which is more up-to-date. -gwr ]
481.1Sgwr
491.1Sgwr    Make sure all of the files exist first.  If anything is missing,
501.1Sgwr    please contact either Walt Wimer or Drew Perkins by E-mail or phone.
511.1Sgwr    Addresses and phone numbers are listed below.
521.1Sgwr
531.1Sgwr    Type 'make'.  The options at present are: -DSYSLOG which enables logging
541.1Sgwr    code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU
551.1Sgwr    which enables the CMU extensions for CMU PC/IP.
561.1Sgwr
571.1Sgwr    Edit the bootptab.  The man page and the comments in the file should
581.1Sgwr    explain how to go about doing so.  If you have any problems, let me know.
591.1Sgwr
601.1Sgwr    Type 'make install'.  This should put all of the files in the right place.
611.1Sgwr
621.1Sgwr    Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon
631.1Sgwr    reboot.  The following is a sample /etc/inetd.conf entry:
641.1Sgwr	# BOOTP server
651.1Sgwr	bootps dgram udp wait root /usr/etc/bootpd bootpd -i
661.1Sgwr
671.1SgwrCare and feeding:
681.1Sgwr    If you change the interface cards on your host or add new hosts you will
691.1Sgwr    need to update /etc/bootptab.  Just edit it as before.  Once you write
701.1Sgwr    it back out, bootpd will notice that there is a new copy and will
711.1Sgwr    reread it the next time it gets a request.
721.1Sgwr
731.1Sgwr    If your bootp clients don't get a response then several things might be
741.1Sgwr    wrong.  Most often, the entry for that host is not in the database.
751.1Sgwr    Check the hardware address and then check the entry and make sure
761.1Sgwr    everything is right.  Other problems include the server machine crashing,
771.1Sgwr    bad cables, and the like.  If your network is very congested you should
781.1Sgwr    try making your bootp clients send additional requests before giving up.
791.1Sgwr
801.1Sgwr
811.1SgwrNovember 7, 1988
821.1Sgwr
831.1Sgwr
841.1SgwrWalter L. Wimer			Drew D. Perkins
851.1Sgwrww0n@andrew.cmu.edu		ddp@andrew.cmu.edu
861.1Sgwr(412) 268-6252			(412) 268-8576
871.1Sgwr
881.1Sgwr4910 Forbes Ave
891.1SgwrPittsburgh, PA  15213
901.1Sgwr
911.1Sgwr[ Contents description by file: ]
921.1Sgwr
931.1SgwrAnnounce*	Text of release announcements
941.1SgwrInstallation	Instructions for building and installing
951.1SgwrMakefile*	for "make"
961.1SgwrREADME		This file
971.1Sgwrbootp.h		The protocol header file
981.1Sgwrbootpd.8	Manual page for bootpd, boopgw
991.1Sgwrbootpd.c	BOOTP server main module
1001.1Sgwrbootpd.h	 header for above (and others)
1011.1Sgwrbootpef.8	Manual page for bootpef
1021.1Sgwrbootpef.c	BOOTP extension file compiler
1031.1Sgwrbootpgw.c	BOOTP gateway main module
1041.1Sgwrbootptab.5	A manual describing the bootptab format
1051.1Sgwrbootptab.cmu	A sample database file for the server
1061.1Sgwrbootptab.mcs	Another sample from <gwr@mc.com>
1071.1Sgwrbootptest.8	Manual page for bootptest
1081.1Sgwrbootptest.c	BOOTP test program (fake client)
1091.1Sgwrbootptest.h	 header for above
1101.1Sgwrdovend.c	Vendor Option builder (for bootpd, bootpef)
1111.1Sgwrdovend.h	 header for above
1121.1Sgwrdumptab.c	Implements debugging dump for bootpd
1131.1Sgwrgetether.c	For bootptest (not used yet)
1141.1Sgwrgetif.c		Get network interface info.
1151.1Sgwrgetif.h		 header for above
1161.1Sgwrhash.c		The hash table module
1171.1Sgwrhash.h		 header for above
1181.1Sgwrhwaddr.c	Hardware address support
1191.1Sgwrhwaddr.h	 header for above
1201.1Sgwrlookup.c	Internet Protocol address lookup
1211.1Sgwrlookup.h	 header for above
1221.1Sgwrpatchlevel.h	Holds version numbers
1231.1Sgwrprint-bootp.c	Prints BOOTP packets (taken from BSD tcpdump)
1241.1Sgwrreadfile.c	The configuration file-reading routines
1251.1Sgwrreadfile.h	 header for above
1261.1Sgwrreport.c	Does syslog-style messages
1271.1Sgwrreport.h	 header for above
1281.1Sgwrstrerror.c	Library errno-to-string (for systems lacking it)
1291.1Sgwrsyslog.conf	Sample config file for syslogd(8)
1301.1Sgwrsyslog.h	For systems that lack syslog(3)
1311.1Sgwrtry*.c		Test programs (for debugging)
1321.1Sgwrtzone.c		Get timezone offset
1331.1Sgwrtzone.h		 header for above
134