	IPXRIPD, Beta version 0.03b

------------------------------------------------------------------
-> added by Robert Ford (robert@unbsj.ca) on April 9, 1995

This version of ipxripd will not function with kernels ealier than
version 1.2.4.

For installation of this program do the following steps:

1) Compile the ipxripd executable without the DEBUG option.
2) Create a file called /etc/networks.ipx, this file contains the
   network numbers of the directly connected networks.  Here
   is the file that I use

#
# IPX local network list
#
#Net Devices	Frame Type	Network
lo		802.3		00BED001
eth0		802.3		00BED100
eth1		802.3		00BEDBED


  The network BED001 has been bound to the 'lo' device, this is very important,
  you must bind a network to the 'lo' device or the router will not work,
  the 'lo' device is setup to be the primary network and it must be the
  first network listed in the file.  The other two entries are self
  explanatory, BED100 is bound to eth0 and BEDBED is bound to eth1.  As
  far a frame types,  802.3 works, I don't know about the rest.

3) create the directory /var/ipx, this will cause ipxripd to dump
   route and service information into two files in this directory.

4) start ipxripd, it may almost a minute for the router to gather all
   the routes and services from the nearby routers, but once this is
   done, it should work.  Check the /var/ipx/routes and /var/ipx/services
   to make sure the information is correct.


IPXCONFIG
---------
I have included a program called ipxconfig, use this program to
delete routes if the ipxripd program terminates improperly.


NOTES
-----
The kernel does not support type 20 propagation packets as of yet.

If you wish to bring the router down, don't 'kill' it, send either a
HUP or TERM signal.  Luckily, when you shutdown Linux (Cntr-Alt-Del or 
/sbin/shutdown), a TERM signal is sent to all processes.  If you
simply do a 'kill -9' the router cannot inform other routers that it
is being shutdown.


------------------------------------------------------------------
Original README file for ipxripd 0.03B
------------------------------------------------------------------
This program has been placed under the public domain.

This software is intended to run under the Linux operating system.  It
implements the IPX RIP/SAP protocols as described in the "IPX Router
Specification" from Novell Inc.  (Nov 17,1992; Version 1.10; Part
Number: 107-000029-001).

The Linux kernel supports the IPX protocol.  The Linux kernel
implementation has some code for IPX packet forwarding except for the
NetBIOS flood-fill forwarding mode.

Unfortunaly, even though the Kernel supports packet forwarding, it is
missing the RIP/SAP protocol functionality to act like a real IPX
router.  This program provides the RIP/SAP functionality.

This RIP/SAP is simmilar in functionality to TCP/IP's ROUTED or GATED
daemons.  In TCP/IP, the kernel provides gatewaying support, however,
routes and route broadcasting is done trough ROUTED/GATED daemons.
TCP/IP unlike IPX has the option of using static routes.  IPX on the
other hands very seldom uses static routes but mostly uses dynamic
routes.  Dynamic routes are propagated using a RIP/SAP daemon.

Ok, basically, this program will load a file "/etc/networks.ipx" to
initialize network numbers.  Then will start listening on IPX sockets
0x0452 and 0x0453 waiting for RIP and SAP broadcast.  As RIP/SAP
packets are received, it will udpate its internal tables (including
the network ipx routing tables).  The program will also broadcast
routes and services to other networks.  This program will also process
SAP and RIP request.

The format of "networks.ipx" file is one network per line.  The # is
used as a comment.  The first field is used to identify the network
interface.  (Use ifconfig to list interfaces).  The second field used
to specify a frame type.  Options are: 802.3, 802.2, Ethernet_II and
SNAP.  (SNAP is not supported by the Linux kernel as of v1.1.73).  The
third number is the network number.  This is a hex number.  The same
number you would use in your novell server.

If you have a directory:

	/var/ipx

the daemon will create a routes and a services file.  This file would
contain information about routes and services the daemon knows about.
(The files are recreated when the internal tables change).

NOTES on Linux v1.1.73
I have only tested this software under Linux kernel v1.1.73. (There has
been no changes in the IPX code on kernels trough 1.1.75 so this still
should work).

The standard IPX code in the kernel (v1.1.73) has a problem with
forwarding packets of different frames.  Included there is a context
diff file (kpatch.dif) to fix it.  It also contains a couple of
"improvements" over the ipx code.  To apply cd to the kernel's
net/inet subdirectory and run "patch < path_to/kpatch.dif".

BTW, you can't use Linux as a remote IPX router trough PPP or SLIP.
You probably will have to use an IP tunnel for that.  This version 
of the software does not support IP tunnels so you will need a real 
Novell server for that.

This is BETA level code.  It has been working at my office for some
time without no problems.  I have tested on a single Network card
as a frame converter and as an actual router between two networks.


Alex Liu
labrat@unitrx.com




