uab(8)

NAME
uab - Unix AppleTalk Bridge

SYNTAX
uab -D <level> -f <bridge_description> -l <log file> -d tdump debug nodebug statistics (stat) exit

DESCRIPTION
The Unix AppleTalk Bridge ( uab) program allows certain unix systems to act as AppleTalk Bridges. uab can be functionally divided into two parts. The first is the actual AppleTalk Bridge implementation and the second are the routines that define particular "Link Access Protocols" (aka "hardware" delivery methods e.g. EtherTalk). uab also supports an internal demultiplexing that allows packets delivered to the uab node to be delivered to other processes within that system.

Currently, uab runs on Ultrix 1.2 (and beyond) and SunOS 4.0 and supports EtherTalk (Phase 1). Unfortunately, with the current definition of KIP's UDP encapsulation and delivery rules, it is not feasible to implement KIP. The only internal packet delivery mechanism defined is a modified version of KIP's UDP encapsulation (modified-KIP) that uses a different UDP port range over the internal loopback; thus CAP programs must be relinked with a different low level delivery mechanism to work with uab. Note that all packets for these programs are sent and received through the uab process.

Since uab does not understand KIP, it is necessary to have an AppleTalk Bridge that understands both KIP encapsulation and EtherTalk before KIP based "systems" (e.g. programs compiled with CAP, bridges that only speak KIP on the ethernet interface--revisions of KIP before 2/88, etc) can work with uab's modified-KIP based programs.

uab is configured by use of a "bridge description" file described in detail later.

The flags are: D to set the debugging level to a particular value, d to increment the debug level by one, f to specify a bridge description file (default bridge_desc), and l to specify a logging file (default none). uab acts in response to certain signals. uab invoked as:
	uab <name>
where name is one of tdump (SIGUSR1), debug (SIGIOT), nodebug (SIGEMT), statistics (SIGUSR2), or exit (SIGTERM) will send these signals. tdump causes the running uab to dump its internal tables (rtmp, etc.) to /usr/tmp/uab.dump. (dump is reserved for nbp if uab ever support nbp). debug tells the running uab to increment the debug level: if not log file was currently active, the log will go to /usr/tmp/uab.run. nodebug turns off all debugging. stat or statisitics dumps statistics to /usr/tmp/uab.stats. exit causes the running uab to stop.

The bridge description file is a list of the valid ports for a particular Unix AppleTalk Bridge (UAB). In order to minimize the maintaince headache, one may use the host name as a selector. Each port description is entered on a single line.

The first item in a line is the host selector field. It can be the host name (as returned by gethostname). In addition, you can use % to match any character. "*" can be used to match any host. Finally, you can use "*" at the end of a string to complete a match. (Allowing "*" at both the beginning and end or at an arbritrary location is a pain because it is an unanchored search -- would have to use a regular expression matcher to do this -- ugh).

The second field contains a tuple that specifies the interface's link access protocol (LAP) and any device specific data required. Valid LAP method specifications:
    ELAP - EtherTalk Link Access Protocol
    EtherTalk - same as above
    ASYNC - Asynchronous AppleTalk
    ASYNCATALK - same as above
The device specific data consists of a "device name" followed by an colon and a "device number". If the colon is omitted, the device number is assumed to be zero. For Ethertalk, this should be interpreted as a ethernet "tap" device (SunOS, Ultrix). For example, "ie:1" for ethertalk on interface ie1. For Asynchronous AppleTalk, this is just a label. Suggested use as:0

The third field specifies the local demultiplexing delivery mechanism for delivery of DDP packets not destined for the bridge process. Currently defined mechanisms are: "none" which says there will be no other client processes; "mkip" - modified version of kip style udp encapsulation using a different udp port range. Specify 'none' for Asynchronous AppleTalk. (Hopefully, there will be a way to do direct kip etc. in the future)

The fourth and last field specifies two items paired in a [<item1>,<item2>] format. The first is the DDP network that should be associated with this port. If you specify zero, the ddp network number will be acquired via RTMP if there are other bridges that know the network number. Note that only a single network is allowed at this point. The network number may be specified as <number> or <high byte>.<low byte>. In both cases, the number may be decimal (no leading zero), octal (leading zero), or hexadecimal (leading 0x or 0X). If this field is not specified, uab will assume that this port is for multiplexing only. It will not send out any rtmp data packets or respond to rtmp network request packets, etc.

The second item specifies the zone name associated with the ddp network associated with this port. If it is not specified, it will be acquired via ZIP if there are other bridges on the network that know the zone name. Note: you may omit the comma if you do not wish to specify a zone. Note, can be used to quote a character (like a space in the zone name :-) A " return and line feed both terminate a line.

You MUST SPECIFY a network number and Zone for Asynchronous AppleTalk.

You should order the file from more specific to less specific (in terms of host name matches. Once a match has been found, then only matches with the exactly same pattern will succeed!

BUGS
None known.

NOTES
Better method for internal demuxing is needed.

AUTHOR
Charlie C. Kim, Academic Computing and Communications Group, Center for Computing Activities, Columbia University

FILES
/usr/tmp/uab.stats
/usr/tmp/uab.run
/usr/tmp/uab.dump