bobs@randvax.UUCP (Rober Schwartzkopf) (01/30/91)
#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 2 (of 3)." # Contents: aarpd.8 kboot.8 aarpd.h appletalk.h config.h kbox.h # patchlevel.h Makefile README # Wrapped by bobs@chumley on Tue Jan 29 17:41:52 1991 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'aarpd.8' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'aarpd.8'\" else echo shar: Extracting \"'aarpd.8'\" \(888 characters\) sed "s/^X//" >'aarpd.8' <<'END_OF_FILE' X.TH aarpd 8 "25 October 90" X.SH NAME Xaarpd \- Appletalk Arp daemon. X.SH SYNOPSIS X.I Xaarpd X.B [-d] X.B [-i interface] X.B [-v] X.SH DESCRIPTION X.I aarpd Ximplements the Appletalk Arp protocol on a unix host. It obtains an XAppletalk node number, and then listens and replies to other nodes Xtrying to find out if this node number is in use. X.LP XOther processes on the host (eg kboot) can obtain the node number for Xthis host via an RPC call. X.SH OPTIONS X.TP X.B \-d XTurn on debugging. X.TP X.B \-i interface XSpecify interface name (eg ie1). Defaults to first interface in kernel. X.TP X.B \-v XPrint aarpd version number. X.SH "SEE ALSO" Xkboot(8), nit(4) X.SH BUGS X.I aarpd Xdepends on the SunOS 4\.x NIT interface and probably isn't very portable. X.SH AUTHOR XBob Schwartzkopf, The RAND Corporation. Much credit is due Dan Tappan Xof BBN, who wrote the first version of X.I kboot Xthat ran on SunOS 3.x. END_OF_FILE if test 888 -ne `wc -c <'aarpd.8'`; then echo shar: \"'aarpd.8'\" unpacked with wrong size! fi # end of 'aarpd.8' fi if test -f 'kboot.8' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kboot.8'\" else echo shar: Extracting \"'kboot.8'\" \(3549 characters\) sed "s/^X//" >'kboot.8' <<'END_OF_FILE' X.TH kboot 8 "25 October 90" X.SH NAME Xkboot - Monitor and reboot Fastpath 4 gateways. X.SH SYNOPSIS X.I kboot X.B [-bclrs Fastpath] X.B [-d] X.B [-i interface] X.B [-p int] X.B [-v] X.B [-w] X.SH DESCRIPTION X.I kboot Xis a program that can monitor, load and configure Kinetics/Shiva Fastpath 4 Xgateways over an ethernet from a Sun running SunOS 4.x. X.LP X.I kboot Xwill only talk to Fastpaths specified in the configuration file X/usr/local/etc/kbootcf. The format of this file is simply the hostname Xof each Fastpath, followed by white space and the name of the KSTAR Xsoftware to be downloaded in the event that kboot reloads the Fastpath. XThe KSTAR program filename in the configuration file should be relative to Xthe directory where the configuration file is, by default this is X/usr/local/etc. X.LP X.I kboot Xgets an appletalk node number from a separate daemon called aarpd(8) via Xan RPC call. aarpd must be running for X.I kboot Xto work. X.LP X.I kboot Xreads the Fastpath's ethernet address from /etc/ethers (or equivalent XNIS map), each Fastpath managed by X.I kboot Xmust have its correct ethernet address in that file. X.LP XEach configured Fastpath should have a corresponding state file. These Xcan be obtained in one of two ways. They can be generated using the XFastpath manager program on a Mac, in which case they should be transferred Xto the file /usr/local/etc/<Fastpath>.config on the host X.I kboot Xis running on. Alternatively, the current state vector of a Fastpath Xcan be read directly from the Fastpath using the \-s option of X.I kboot. XIn this case the state will be saved as /usr/local/etc/<Fastpath>.state. XIf both files exist, the file generated by the Fastpath manager (.config) Xwill be used. X.LP XSending X.I kboot Xa HUP signal while it's in "watch" mode will cause X.I kboot Xto reread the configuration file kbootcf. This is useful after editing Xthe configuration file. X.SH OPTIONS X.TP X.B \-b Fastpath XDownload KSTAR program and state to specified Fastpath gateway. X.TP X.B \-c Fastpath XDownload state to specified Fastpath gateway. X.TP X.B \-d XTurn on debugging. X.TP X.B \-l Fastpath XRead state from specified Fastpath and print various fields. X.TP X.B \-i interface XSpecify interface name (eg ie1). Defaults to first interface in kernel. X.TP X.B \-m Fastpath XRead and print various things about the specified Fastpath. X.TP X.B \-p int XSet ping interval, in seconds. X.TP X.B \-r Fastpath XReset specified Fastpath. X.TP X.B \-s Fastpath XRead state vector from specified Fastpath and save to a file. This file Xcan be used for downloading later. X.TP X.B \-w XPut X.I kboot Xin "watch" mode. In this mode, X.I kboot Xwill periodically ping the Fastpaths Xspecified in the config file, rebooting them if they don't answer. X.TP X.B \-v XPrint X.I kboot Xversion number. X.SH FILES X.TP X.B /usr/local/etc/kbootcf XConfiguration file. X.TP X.B /usr/local/etc/<Fastpath>.config XAscii Fastpath configuration as generated by Fastpath manager. X.TP X.B /usr/local/etc/<Fastpath>.state XBinary state vector read from Fastpath. X.SH "SEE ALSO" Xaarpd(8), nit(4) X.SH BUGS X.I kboot Xwedges a Fastpath if KSTAR 8.0 is downloaded to it. If someone can Xfigure out what I'm doing wrong, please send email to bobs@rand.org. X.LP X.I kboot Xdepends on the SunOS 4\.x NIT interface and probably isn't very portable. X.LP X.I kboot Xcan only download/configure Fastpaths on the same ethernet Xthat the host X.I kboot Xis running on is attached to. X.SH AUTHOR XBob Schwartzkopf, The RAND Corporation. Much credit is due Dan Tappan Xof BBN, who wrote the first version of X.I kboot Xthat ran on SunOS 3.x. END_OF_FILE if test 3549 -ne `wc -c <'kboot.8'`; then echo shar: \"'kboot.8'\" unpacked with wrong size! fi # end of 'kboot.8' fi if test -f 'aarpd.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'aarpd.h'\" else echo shar: Extracting \"'aarpd.h'\" \(259 characters\) sed "s/^X//" >'aarpd.h' <<'END_OF_FILE' X/* X * $Header: /tmp_mnt/home/src/rand/etc/kboot/RCS/aarpd.h,v 1.1 91/01/29 17:37:30 root Exp $ X * X * $Log: aarpd.h,v $ X * Revision 1.1 91/01/29 17:37:30 root X * Initial revision X * X */ X X#define GETAAPROG 0x20000001 X#define GETAAVERS 1 X#define GETAAPROC 1 END_OF_FILE if test 259 -ne `wc -c <'aarpd.h'`; then echo shar: \"'aarpd.h'\" unpacked with wrong size! fi # end of 'aarpd.h' fi if test -f 'appletalk.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'appletalk.h'\" else echo shar: Extracting \"'appletalk.h'\" \(2078 characters\) sed "s/^X//" >'appletalk.h' <<'END_OF_FILE' X/* X * $Header: /tmp_mnt/home/src/rand/etc/kboot/RCS/appletalk.h,v 1.1 91/01/29 17:37:31 root Exp $ X * X * $Log: appletalk.h,v $ X * Revision 1.1 91/01/29 17:37:31 root X * Initial revision X * X */ X X/* X * appletalk.h - Definitions for Appletalk protocols. X */ X#define AT_Broadcast 0xFF /* Broadcast appletalk address */ X#define AARP 0x80F3 /* AARP protocol type */ X#define H_Ethernet 1 /* Hardware type for ethernet */ X#define HL_Ethernet 6 /* Ethernet address length */ X#define P_AppleTalk 0x809B /* Protocol type for appletalk */ X#define PL_AppleTalk 4 /* Appletalk address length */ X#define AReqTicks 2 /* # of ticks between requests */ X#define AReqTries 6 /* # of tries on requests */ X/* X * Inside Appletalk suggests APrbTicks should be 2 and APrbTries 20. X * Our hosts don't always respond that fast, and that seems like way X * too many retries, so we'll slow down the timeout and decrease the X * retries. X */ X#define APrbTicks 20 /* # of ticks between probes */ X#define APrbTries 5 /* # of tries on probes */ X X/* X * Appletalk ARP header. X */ Xstruct ether_aarp { X u_short aarp_hrd; /* Hardware type */ X u_short aarp_pro; /* Protocol type */ X u_char aarp_hln; /* Hardware address length */ X u_char aarp_pln; /* Protocol address length */ X u_short aarp_op; /* Command */ X#define AARPReq 1 X#define AARPResp 2 X#define AARPProbe 3 X struct ether_addr aarp_sha; /* Sender hardware address */ X u_char aarp_spa[4]; /* Sender protocol address */ X struct ether_addr aarp_tha; /* Target hardware address */ X u_char aarp_tpa[4]; /* Target protocol address */ X}; X Xstruct aarp_packet { X struct ether_header ap_ehdr; X struct ether_aarp ap_ahdr; X}; X#define ap_dhost ap_ehdr.ether_dhost X#define ap_shost ap_ehdr.ether_shost X#define ap_type ap_ehdr.ether_type X#define ap_hrd ap_ahdr.aarp_hrd X#define ap_pro ap_ahdr.aarp_pro X#define ap_hln ap_ahdr.aarp_hln X#define ap_pln ap_ahdr.aarp_pln X#define ap_op ap_ahdr.aarp_op X#define ap_sha ap_ahdr.aarp_sha X#define ap_spa ap_ahdr.aarp_spa X#define ap_tha ap_ahdr.aarp_tha X#define ap_tpa ap_ahdr.aarp_tpa END_OF_FILE if test 2078 -ne `wc -c <'appletalk.h'`; then echo shar: \"'appletalk.h'\" unpacked with wrong size! fi # end of 'appletalk.h' fi if test -f 'config.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'config.h'\" else echo shar: Extracting \"'config.h'\" \(546 characters\) sed "s/^X//" >'config.h' <<'END_OF_FILE' X/* X * $Header: /tmp_mnt/home/src/rand/etc/kboot/RCS/config.h,v 1.1 91/01/29 17:37:42 root Exp $ X * X * $Log: config.h,v $ X * Revision 1.1 91/01/29 17:37:42 root X * Initial revision X * X */ X X/* X * config.h - Tunable stuff for kboot should all be here. X */ X X /* KSTAR images and fastpath config files live here */ X#define ETCDIR "/usr/local/etc" X /* Seconds between pings to make sure fastpaths are ok */ X#define PINGINTERVAL 120 X /* Number of ping retries */ X#define PINGRETRIES 5 X /* Timeout (seconds) for pings */ X#define PINGTIMEOUT 2 END_OF_FILE if test 546 -ne `wc -c <'config.h'`; then echo shar: \"'config.h'\" unpacked with wrong size! fi # end of 'config.h' fi if test -f 'kbox.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kbox.h'\" else echo shar: Extracting \"'kbox.h'\" \(4957 characters\) sed "s/^X//" >'kbox.h' <<'END_OF_FILE' X/* X * $Header: /tmp_mnt/home/src/rand/etc/kboot/RCS/kbox.h,v 1.1 91/01/29 17:37:47 root Exp $ X * X * $Log: kbox.h,v $ X * Revision 1.1 91/01/29 17:37:47 root X * Initial revision X * X */ X X#define FP_TYPE 'K' X#define FP_CMD 'C' X#define FP_ACK 'A' X#define FP_RESP 'R' X/* X * The fp_state structure declared in cmdmacro.h doesn't align all the X * fields properly when compiled on sparc machines, so kboot uses these X * offsets into an array to access interesting fields. X */ X#define O_ATNET 0 /* Net number appletalk side */ X#define O_ETNET 2 /* Net number ethertalk side */ X#define O_VALID 4 /* Appletalk node number valid */ X#define O_NODE 5 /* Appletalk node number */ X#define O_BRIDGE 7 /* Bridge number */ X#define O_ETHER 8 /* Ethernet address */ X#define O_NAME 14 /* Gateway name */ X#define O_FILE 35 /* Loadfile name */ X#define O_PFORCE 56 /* Force execution of prom loop */ X#define O_ATZONE 62 /* Localtalk zone */ X#define O_ETZONE 95 /* Ethertalk zone */ X#define O_ETVALID 128 /* Ethertalk node number valid */ X#define O_ETNODE 129 /* Ethertalk node number */ X#define O_AUTOCONFIG 130 /* Autoconfig switch */ X#define O_AUTOBOOT 132 /* Autoboot switch */ X#define O_OPTIONS 134 /* Options */ X#define O_OPTPARAM 138 /* Optional parameters */ X#define O_SN 170 /* Serial number */ X#define O_DATE 174 /* Configuration date */ X#define O_TYPE 178 /* Type */ X#define O_CONFIG 180 /* Name of config file */ X#define O_UDPZONE 214 /* UDP zone name */ X#define O_IPDEFROUTER 248 /* Default gateway */ X#define O_IPADDRESS 252 /* Ip address */ X#define O_ATIPADDRESS 256 /* Localtalk IP net */ X#define O_IPBROADCAST 260 /* Broadcast address */ X#define O_IPSUBMASK 264 /* Subnet mask */ X#define O_IPKIPSERVER 268 /* Admin host */ X#define O_UDPNET 272 /* UDP net number */ X#define O_UDPNODE 274 /* UDP node number */ X#define O_NAMESERVER 276 /* DNS host */ X#define O_FILESERVER 280 /* File server */ X#define O_LP1 284 /* Local parameter 1 */ X#define O_LP2 288 /* Local parameter 2 */ X#define O_LP3 292 /* Local parameter 3 */ X#define O_LP4 296 /* Local parameter 4 */ X#define O_NDYNAMICS 300 /* Number of dynamic ip addrs */ X#define O_NSTATICS 302 /* Number of static ip addrs */ X#define O_SIGNATURE 304 /* Signature */ X#define O_AREANODE 308 /* DECnet area and node */ X#define O_BACKTIMER 310 /* DECnet routing timer */ X#define O_HELLOTIMER 312 /* DECnet hello timer */ X#define O_RSTART 314 /* Range start for ET 2.0 */ X#define O_REND 316 /* Range end for ET 2.0 */ X#define O_ET2NET 318 /* Net number ET 2.0 side */ X#define O_ET2VALID 320 /* ET 2.0 node number valid */ X#define O_ET2NODE 321 /* ET 2.0 node number */ X#define O_ZONELIST 322 /* Zonelist */ X#define O_CONFIGTYPES 326 /* Reserved for FPM */ X#define O_DATATYPE 330 /* Define following data */ X#define O_DATALEN 332 /* Length of following data */ X#define O_ATAPOPTIONS 334 X#define O_ATAPRETRY 336 X X#define STATE_LENGTH 0x24A /* Length of state vector */ X#define FPCOPYSIZE 10 /* Copy structure size */ X#define PROMRAMSIZE 64 /* promram structure size */ X#define HTSIZE 32 X#define MAXHOSTNAME 64 X#define MAXKBOX 256 X#define MAXFN 256 X#define MAXZONELIST 256 X Xstruct kbox { X struct sockaddr_in ip; X char name[MAXHOSTNAME]; X char bootfile[MAXFN]; X char conffile[MAXFN]; X struct ether_addr ea; X u_char aa; X struct kbox *nxt; X}; X X/* X * Send functions with no parameters. X */ X#define send_execute(kp) send_gen (kp, X_EXECUTE, 0) X#define send_promram(kp) send_gen (kp, X_PROMRAM, 5) X#define send_reset(kp) send_gen (kp, X_RESET, 0) X#define send_exprom(kp) send_gen (kp, X_EXPROM, 0) X#define send_whereis(kp) send_gen (kp, X_WHEREIS, 5) X#define send_where2(kp) send_gen (kp, X_WHERE2, 5) X#define send_rcsid(kp) send_gen (kp, X_RCSID, 5) X#define send_version(kp) send_gen (kp, X_VERSION, 5) X X/* X * Packet used to talk to Kinetics Fastpaths. Does not include link X * level header (ether_header). X */ X#define MAXFPPKT 1024 Xstruct ether_fastpath { X unsigned char fastpath_lapdest; X unsigned char fastpath_lapsrc; X unsigned char fastpath_laptype; X unsigned char fastpath_len[2]; X unsigned char fastpath_cmd; X unsigned char fastpath_scmd; X unsigned char fastpath_data[MAXFPPKT]; X}; X Xstruct fp_packet { X struct ether_header fp_ehdr; X struct ether_fastpath fp_fphdr; X}; X#define fp_dhost fp_ehdr.ether_dhost X#define fp_shost fp_ehdr.ether_shost X#define fp_type fp_ehdr.ether_type X#define fp_lapdest fp_fphdr.fastpath_lapdest X#define fp_lapsrc fp_fphdr.fastpath_lapsrc X#define fp_laptype fp_fphdr.fastpath_laptype X#define fp_len fp_fphdr.fastpath_len X#define fp_cmd fp_fphdr.fastpath_cmd X#define fp_scmd fp_fphdr.fastpath_scmd X#define fp_data fp_fphdr.fastpath_data X Xtypedef struct { X short num_elements; /* Number of elements in following array */ X short type; /* Type of element (1 for zonelist) */ X short bytes; /* Length of element */ X} elemlist; END_OF_FILE if test 4957 -ne `wc -c <'kbox.h'`; then echo shar: \"'kbox.h'\" unpacked with wrong size! fi # end of 'kbox.h' fi if test -f 'patchlevel.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patchlevel.h'\" else echo shar: Extracting \"'patchlevel.h'\" \(221 characters\) sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE' X/* X * $Header: /tmp_mnt/home/src/rand/etc/kboot/RCS/patchlevel.h,v 1.1 91/01/29 17:37:51 root Exp $ X * X * $Log: patchlevel.h,v $ X * Revision 1.1 91/01/29 17:37:51 root X * Initial revision X * X */ X X#define PATCHLEVEL 1 END_OF_FILE if test 221 -ne `wc -c <'patchlevel.h'`; then echo shar: \"'patchlevel.h'\" unpacked with wrong size! fi # end of 'patchlevel.h' fi if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(1011 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' XKBOOT = kboot.o getaa.o nitlib.o cmd.o icmp.o XAARPD = aarpd.o nitlib.o XCFLAGS = -g XETCDIR = /usr/rand/etc XMANDIR = /usr/rand/man/man8 XSRCS = aarpd.c cmd.c getaa.c icmp.c kboot.c nitlib.c XINCS1 = aarpd.h appletalk.h config.h kbox.h patchlevel.h XINCS2 = cmdidx.h cmdmacro.h XMANS = aarpd.8 kboot.8 X Xall: aarpd kboot X Xkboot: $(KBOOT) X cc -o kboot $(KBOOT) X Xaarpd: $(AARPD) X cc -o aarpd $(AARPD) X Xinstall: X install -c kboot $(ETCDIR)/kboot X install -c aarpd $(ETCDIR)/aarpd X Xinstall.man: X install -c kboot.8 $(MANDIR)/kboot.8 X install -c aarpd.8 $(MANDIR)/aarpd.8 X Xclean: X rm -f aarpd kboot *.o core *~ X Xshar: $(SRCS) $(INCS1) $(INCS2) $(MANS) Makefile README X shar -n1 -e3 $(SRCS) > kboot1.shar X shar -n2 -e3 $(MANS) $(INCS1) Makefile README > kboot2.shar X shar -n3 -e3 $(INCS2) > kboot3.shar X Xaarpd.o: appletalk.h aarpd.h config.h patchlevel.h Xkboot.o: appletalk.h kbox.h cmdidx.h cmdmacro.h config.h patchlevel.h Xcmd.o: appletalk.h kbox.h cmdidx.h cmdmacro.h config.h Xicmp.o: kbox.h config.h Xnitlib.o: config.h END_OF_FILE if test 1011 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi # end of 'Makefile' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(4134 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' XKboot is a program used to monitor, boot and configure Shiva Fastpaths Xfrom a sun running SunOS 4.x. It was originally written by Dan Tappan Xof BBN, and ran under SunOS 3.5. I've ported it to SunOS 4.x and Xadded support for KSTAR version 8.0 and up. Complaints, suggestions Xand bug fixes can be sent to me. X XBob Schwartzkopf XThe RAND Corporation X1700 Main Street XPO Box 2138 XSanta Monica, Ca. 90407-2138 Xbobs@rand.org X XThe kboot package consists of 2 separate programs, kboot and aarpd. Xkboot is the program that monitors, configures and downloads Shiva XFastpaths; aarpd implements some of the Appletalk ARP protocol. XAarpd obtains an Appletalk node number dynamically for the Xlocal host; kboot queries aarpd via an RPC call to learn the Xnode number it should use when communicating with Fastpaths. XPlease note that kboot and aarpd must be run on a sun on the same Xethernet as the Fastpaths it will be talking to, as it depends on Xbroadcasts to learn the Appeltalk addresses of each Fastpath specified Xin its configuration file. X XTo build kboot and aarpd: X X - Edit Makefile and set ETCDIR and MANDIR X X - Edit config.h as necessary X X - make X XTo install: X X - make install X X - make install.man X XOnce kboot and aarpd are installed you must create the following Xfiles in ETCDIR: X Xkbootcf - kboot configuration file. XKSTAR - KSTAR software, which comes with Fastpath Manager and is also X available via anonymous ftp from shiva.com. X XYou will also need a configuration file for each Fastpath. These Xfiles also are installed in ETCDIR with the name FASTPATH.config Xor FASTPATH.state, where FASTPATH is the hostname of the Fastpath. XThe .config files are ascii configuration files created by Fastpath XManager. The .state files are binary files created by kboot, which Xhas an option to read the state of a currently running Fastpath Xand save it to ETCDIR/FASTPATH.state. X XThe kboot configuration file (ETCDIR/kbootcf) contains a list of XFASTPATH hostnames followed by the name of the KSTAR image to download. XFor example, if you have 2 Fastpaths, one running 7.0.1 and the other Xrunning 8.0, you could copy the appropriate KSTAR software to XETCDIR/KSTAR-7.0.1 and ETCDIR/KSTAR-8.0. Your kbootcf file would Xthen look like: X X fastpath1 KSTAR-7.0.1 X fastpath2 KSTAR-8.0 X XKboot learns the ethernet address of each configured Fastpath by Xlooking at the ethernet header of the packets sent to it by each Fastpath. XIt verifies that address with the address in the ethers NIS map (or Xfile if you're not running NIS), so it is necessary that each Xconfigured Fastpath have its ethernet address entered in the ethers map. XKboot will complain about unknown Fastpaths if the ethers map Xis not correct. X XNOTE: The appletalk phase II zonelist (specified in Fastpath X Manager) is not included in the Fastpath configuration X structure. Hence it is not downloaded when a Fastpath X is configured. Instead, it is converted into s-records X and downloaded with the KSTAR software. Since a zonelist X is not part of the configuration structure, the configuration X read by kboot and stored in ETCDIR/FASTPATH.state will not X contain the zonelist in use by the Fastpath. X X The Fastpath Manager software does include the zonelist in X the ascii configuration file, and kboot knows how to read X it from there, convert it to s-records, and download it to X the Fastpath. Hence, if you're running Appletalk phase II, X and have a non empty zonelist, you cannot use the binary X state files generated by kboot. You must instead use X Fastpath manager to create an ascii configuration file which X includes the zonelist and copy it to ETCDIR. X X Since I have no documentation on the Fastpath I had to reverse X engineer the format of the s-records, the address where they're X stored in the Fastpath, and how they're encoded in the X configuration file. My thanks to Phil Budne of Shiva who X helped me with some of this stuff. I don't guarantee this X code is perfect (especially since we're not running phase II X yet), however the one test I ran did seem to work. Please X let me know if you have any problems with zonelists, or any X other part of kboot for that matter. END_OF_FILE if test 4134 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi echo shar: End of archive 2 \(of 3\). cp /dev/null ark2isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0