USER'S GUIDE FOR THE OS2/DOS XLN2X5 MAC DRIVER
Steve Dauber
Sept. 26, 1988 (version 1.2)
1. Introduction
This document describes a MAC driver for the Excelan 205, 215,
and 225 series Ethernet boards. Versions of the driver exist for
both the OS/2 and DOS operating systems. The MAC driver provides
a standard interface to the hardware for the higher levels of the
protocol.
Much of the functionality of the MAC driver is specified by the
LAN Manager Network Driver Interface Specification Version 1.0.1.
This document will not attempt to repeat the information of the
specification. Unless otherwise noted, the driver will fully
conform to this standard.
2. Operation
2.1. Installing the driver
The driver is installed using a "device=" line in the config.sys
(or config.os2) file. The syntax is:
device=[d:][path]drivername [drivernum]
d: is the disk on which the driver can be found.
path is the path to the driver.
drivername is the filename of the driver (either
xln2x5.dos or xln2x5.os2).
drivernum is the optional driver number.
The driver number allows the user to have multiple Excelan boards
in the same machine. It allows the driver to find the correct
entry in the protocol.ini file. If not specified, it defaults to
1. If multiple boards are installed, each must have a different
driver number and corresponding entry in protocol.ini.
1
2.2. Protocol.ini
The module name of the driver is MAC2x5_drivernum, where
drivernum is the driver number specified in config.sys (or 1 if
no number was specified).
The following parameters are recognized by the driver:
DriverName: Must be "XLN2x5_$"
BoardName: The type of board the being used. Must be
EXOS_205, EXOS_215, or EXOS_225. All EXOS_205
series boards (eg. EXOS_205T, EXOS_205TM4) should
be specified as EXOS_205.
Slot: The microchannel slot number of the board. This
parameter is only relevant for the EXOS_215, and
only necessary if more than one 215 card is in the
machine. If it is not specified, the lowest
numbered slot containing a 215 board will be used.
MemSize: The size of board memory in kilobytes.
MemBase: The physical address of the board's window in host
memory.
IOBase: The base I/O address of the board.
Signal: The interrupt level of the board.
MaxMCast: The maximum number of multicast addresses allowed
at any one time (default = 5).
Loopback: Enable MAC layer loopback (see below).
For the EXOS_215 board, only the DriverName and BoardName
parameters are required. For the 205 and 225 boards, the
DriverName, BoardName, MemSize, MemBase, IOBase, and Signal
parameters all must be specified.
2.3. Errors
If the driver initializes successfully, a message will be printed
out to that effect. Otherwise, an error message will be
displayed. These error messages are largely self-explanatory. The
most common cause of error is parameters which are set
incorrectly in the protocol.ini file.
The driver does not obtain its interrupt vector until bind time.
If it fails to obtain its vector (due to an interrupt level
conflict), it will fail to bind, and an incomplete binding will
result.
2
3. Functionality
The following describes design decisions and features of the
driver which are not specified by the LAN Manager Network Driver
Interface Specification.
3.1. Interrupts
The board interrupts the host to indicate reception of a packet
or completion of a request. For the EXOS 215 board, interrupt
level sharing is completely supported under DOS and OS/2.
The PC architecture causes interrupt level 2 to be mapped to
interrupt level 9. The driver takes care of this mapping, so two
may be given as the interrupt level of the board in the
protocol.ini file.
3.2. Packet Reception
The driver passes received packets to the higher protocol layers
by using the ReceiveLookahead/TransferData mechanism. The
complete packet will always be available at the time
ReceiveLookahead is called.
3.3. Loopback
Loopback of packets which should be self-received is not
supported by the hardware. By default, the MAC driver will not
support this loopback in software. This loopback should be
supported by higher layers of the protocol.
In some cases, loopback at the MAC layer may be necessary (if a
protocol stack does not support loopback, for example). MAC layer
loopback may be enabled by including the Loopback flag in the
protocol.ini file. Note that enabling loopback will decrease
performance to some extent, and thus it should not be enabled
unless it is required.
3
3.4. General Requests
All general requests are executed asynchronously. RequestConfirm
is called when the requests complete. The following general
requests are supported.
SetStationAddress
OpenAdaptor
CloseAdaptor
SetPacketFilter
AddMulticastAddress
DeleteMulticastAddress
UpdateStatistics
ClearStatistics
SetLookahead
3.5. Statistics
The number of statistics kept is limited in order to improve
performance. Only the following statistics are kept:
Total frames received
Frames with CRC error
Total bytes received
Frames discarded - no buffer space
Frames received with errors
Total frames transmitted
Total bytes transmitted
Frames not transmitted - timeout
Frames not transmitted - hardware error
Frames with alignment error
Frames not sent - too many collisions
Transmit error mask
4