sun-rbootd-1.3

  The sun-rbootd for NetBSD/hp300, OpenBSD/hp300
  works on SunOS4/Solaris2/NEWS-OS4/HP-UX/Linux/NetBSD/OpenBSD
  (using NIT DLPI, BPF, old-BPF or SOCK_PACKET)
                                                                 Sep 29 1998
                                                       yamamori@kt.rim.or.jp

Sep 29 1998 Release ver 1.3
  Now, it works on HP-UX.

Sep 26 1998 Release ver 1.2.2
  The bug "hitting any key causes infinite boot file listing" is fixed.
  Works on the platform lacking ether_ntohost() (i.e. slackware Linux)
  Can be compiled by K&R cc (not only gcc).

Aug 21 1998 Release ver 1.2.1
  Correcting byte order for Linux/x86. (not tested)
  use read() instead of recvfrom() on Linux.

Aug 21 1998 Release ver 1.2
  Now, it works on NEWS-OS 4.x, Linux/sparc, and even on NetBSD/OpenBSD too.

Aug 15 1998 Release ver 1.1.2
  Add debugging output option.  Can specify ether interface by the option.
  (now, "sun-rbootd -a" is equivalent to previous version's "sun-rbootd")
  Some improvements.

Jul 20 1998 Release ver 1.1.1
  Some fixes. Correcting byte order for Solaris2/x86 to work (not tested).

Jul 18 1998 Release ver 1.1
  Works on Solaris 2.x(sparc) DLPI, too.

Jun 5 1998 Initial version
  Works on SunOS 4.x NIT.


The sun-rbootd was originally designed for non-BPF platform to boot hp300.
But now, it even works on BPF platform such as NetBSD/OpenBSD and NEWS-OS 4.x,
and SOCK_PACKET (linux).

  Note:
    * The BPF on NEWS-OS 4.x is an older implementation unlike other popular
      BPF.  So it has unfamiliar filter instruction such as LdHOp, EQOp
      instead of BPF_LD|BPF_H|BPF_ABS, BPF_JMP|BPF_JEQ|BPF_K,
      and the offset of jump instruction is different.

    * Linux seems not to have kernel/device level filter.
      So, we cannot help filtering packets on application level.


Contents:
  Makefile     : no need to modify for all platforms
  README       : This file
  README.jp    : README in Japanese
  sun-rbootd.c : RMP protocol program
  config.h     : contains #ifdef
  nitlib.h     : header for nitlib.c
  nitlib.c     : NIT(SunOS), DLPI(Solaris,HP-UX), BPF(NEWS-OS,NetBSD,OpenBSD),
                 and SOCK_PACKET(Linux) functions
  rmp.h        : NetBSD/OpenBSD original rbootd header
  rmp_var.h    : NetBSD/OpenBSD original rbootd header


Against the original NetBSD's rbootd, I made some changes on this
sun-rbootd as follows:
    * not use /etc/rbootd.conf but use /etc/ethers (or NIS ethers map)
    * put SYS_UBOOT (or SYS_INST) on /tftpboot instead of /usr/mdec/rbootd,
      and symlink to C0A8XXXX if client IP is 192.168.xx.xx.
      (like Sun's rarp/tftp)

How to use:
    # mkdir /tftpboot
    # cp SYS_UBOOT /tftpboot
    # cd /tftpboot; ln -s SYS_UBOOT C0A8010A  # if client IP is 192.168.1.10

    Set up /etc/ethers and /etc/hosts, (and NIS make)
    (Please refer SunOS on-line man pages)

    # sun-rbootd -a  # for normal daemon mode

Note:
  if "-d" option is used, sun-rbootd works on debug mode, and in debug mode,
  sun-rbootd reads boot file from current directory rather than /tftpboot.

Thanks to:
  Michael Wolfson, gave me an HP-UX account for porting, and many kindly
  assistance for developing sun-rbootd.


Works on:
  Boot server:
    SunOS 4.x
    Solaris 2.x    (tested on SPARC)
    NEWS-OS 4.x    (tested on both RISC and CISC Sony-NEWS)
    NetBSD         (tested on hp300 and SPARC)
    OpenBSD        (tested on hp300 and SPARC)
    Linux          (tested on RedHat/SPARC, Slackware/i386)
    HP-UX 10

  Diskless client:
    NetBSD/hp300   (tested on HP9000/318 and HP9000/345)
    OpenBSD/hp300  (tested on HP9000/318 and HP9000/345)

---
yamamori@kt.rim.or.jp
http://www.tt.rim.or.jp/~yamamori/sun/index_e.html
