	IPXRIPD, Beta version 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




