Native EtherTalk (Phase 1)
--------------------------

This directory contains support files for the CAP libraries. They provide the
ability to send and receive EtherTalk packets on the EtherNet from UNIX hosts.
Currently they support ...

	NIT interface on SUNs
	ENET ethernet driver on SUNs (refer ../enet)
	DLI interface under ULTRIX (probably needs some work)

The files aarpd.c et. al. also build an AARP daemon for address resolution.
In CAP 6.0, both UAB and Native EtherTalk use the file /etc/etalk.local for
information about the local network. For Native EtherTalk, the file can be
intialised with entries for "interface" and "thisZone". It is preferable,
however, to provide these as arguments when aarpd is run, IE:

	aarpd ie0 unimelb-CompSci	# ie0 for NIT

When aarpd has dynamically obtained a node number, it rewrites (or creates)
/etc/etalk.local with the values for thisNode, interface and thisZone.
Before CAP programs can run, however, the values of the local network number
(thisNet) and the default bridge address (bridgeNode) must be found.

With Native EtherTalk, atis is also an RTMP listener (in addition to ECHO
and NBP). ATIS determines the local network number (initially zero) and the
default bridge from the RTMP packets (the default bridge may randomly change
due to network disruptions, load changes etc). This information is conveyed
via SetBridgeAddress() to aarpd which maintains /etc/etalk.local.

CAP programs read /etc/etalk.local on startup and can call GetBridgeAddress()
at any time to get the latest value for the bridge address.

SetBridgeAddress() and GetBridgeAddress() are new CAP library calls. With
Native EtherTalk, the calls use RPC for interprocess communication.

For correct operation, it is thus necessary to run aarpd followed by atis
before any CAP servers are started. It is not necessary to add a delay
after aarpd as it does not return until the node number is determined. The
usual sleep after atis should be increased to 15 seconds to allow an RTMP
packet to be found and processed.

SECURITY NOTE:

The default permissions on /dev/nit or the /dev/enet devices normally preclude
average users from running CAP programs such as atlook, getzones etc. If
this is a problem at your site, then the options are as follows, in
decreasing order of preference ...

	1. make the user CAP programs set-group-ID and then have
		/dev/nit etc. writeable by this group.

	2. make the CAP programs set-user-ID to the owner of /dev/nit (root).

	3. make /dev/nit world writeable. This is the LEAST PREFERRED method
		because of the gaping security hole.
