6 NDIS 3.0 ENHANCED MODE WINDOWS DRIVER FOR ICL ETHERTEAM16I 6.1 Current Status of the Driver 6.2 Installation of the Driver The Enhanced Mode Windows drivers for EtherTeam16i can be found from the subdirectory NDIS3\WIN have the following file names: ETH16I.386 Enhanced Mode Windows Driver OEMSETUP.INF OEM Setup File To install the Enhanced Mode Windows Driver for ICL EtherTeam16i, do the following: 1. If needed, use the EtherTeam16i Configuration Utility to check that the I/O Base Addresses and IRQ Numbers of the adapters to be installed do not conflict with any other adapter(s). 2. Use the Windows Setup to install the driver. Give the path A:\NDIS3\WIN when prompted for the OEM Driver diskette. NOTE! The OEMSETUP.INF can be found also from the OEM Driver Disk root. NOTE! The I/O Base Address, Transceiver and IRQ Number are commented in the OEMSETUP.INF file, corresponding them to be left as AUTO. If the explicit definitions are wanted to appear in the Setup, remove the comment signs from these lines. 1. Select the I/O Base Address according to the EEPROM Setup value of your adapter. The value AUTO means that the adapter is searched from the possible I/O Base Addresses. NOTE! The I/O Base Addresses can be defined as AUTO although several adapters are installed. In this case, adapter instances are searched and allocated in the following order: 0240, 0260, 0280, 02A0, 0300, 0340, 0380 NOTE! In case of several adapters installed, do not use any "mixed" definitions for the I/O Base Address. Either define them all explicitly or leave them all AUTO. 2. Select the Transceiver. If the transceiver is given explicitly (BNC, TP or AUI), then it is used. Otherwise (AUTO) the driver detects automatically the network connection (provided that the cable is connected while booting the system). 6.3 Advanced Installation Features There are some keywords detected by the driver which can be accessed from the Advanced menu. NOTE! These are for special purposes only, and are not required in normal installation. In fact the StagedReceive (see below) is the only one which may be needed in some situations. 1. TransmitBufferSize Specifies the amount of Adapter Buffer Memory (as kbytes) reserved for transmit packets. Possible values : 4, 8 or 16 Default : 8 This may be used to define 16k of transmit buffer size in cases where the adapter is supposed to do a lot of transmissions compared to receives. Still it is unclear if any improvement in performance can be achieved. 2. StagedReceive Specifies the receive stage buffering when multiple protocols are bound. Possible values : No (Nonstaged) or Yes (Staged) Default : No (NonStaged) NDIS3 specification requires that the MAC driver must be prepared to copy the packet more than once per receive event. Thus, adapters (like EtherTeam16i) which do not support reading the packet from the adapter several times, must copy the packet into a temporary staging buffer when multiple protocols are bound. Because of performance, EtherTeam16i NT Driver attempts to avoid this staging, and switches to the staged mode only if necessary. The following is a description of how the driver selects the actual receive mode (if there is only one binding, the driver always uses non-staged mode): 1. When a binding is opened, the driver initially selects the staged mode. It also sets a certain threshold value for the number of first packet reads. The purpose of this value is to give the driver time to detect whether it is "safe" to start using non-staged mode. 2. If two bindings attempt to copy the same packet during these first packet reads, the driver stays in the staged mode otherwise it switches to the non-staged mode. 3. If two bindings attempt to copy the same packet when the driver is in the non-staged mode, the driver encounters an error. The packet cannot be copied another time and the binding is informed about this with an error code (the error info is also written to the log). The driver then switches back to the staged mode, and all the following packets are then received in the staged mode. 4. The driver stays in the selected mode until the binding condition is changed. If the binding which caused the staged mode is closed, or there is only one bindind left, the non-staged mode can again be used. The method described above is supposed to work reliably, provided that the protocols can recover reasonably from loosing a single packet just before switching to the staged mode. But if any problems are supposed to be due to loosing the packet, the driver can be set to the staged mode as default (but at the cost of performance).