Release Notes PN 40002064_D EtherLite(R)/SCSI Terminal Server(TM) Module Driver 4.014.00 AIX version 4.1.5 through 4.3.x Software Driver P/N 40002064_D Source Code P/N 81000128_D Release Notes P/N 93000354_D September 8,2000 INTRODUCTION Software driver for using EtherLite(R)/SCSI Terminal Server(TM) serial and parallel port units with AIX. SUPPORTED PRODUCTS This is the list of units the driver will work with. Some of these units may be legacy units. EL-2, EL-8+, EL-16, EL-160, EL-162, EL-160-VP, EL-32, EM-8, EM-16, X1800, X/SM-5008, SM-5016, SP-1003, ST-1002, ST-1008/X, ST-1016G, ST-1032, ST-1400, ST-1400X, ST-1600, ST-1610, ST-1620,ST-1622, ST1800*, ST-1800X+, ST-2000/X, SX4032. ENHANCEMENTS This version of the driver supports up to 512 Etherlite units. The cdflush routine now sends M_HANGUP upstream to close any stray opens on the affected port. The aixtrc facility now reports close activity. BUG FIXES Ports on units that had network outages sometimes would get stuck in limbo and require a kill to get the port working due to problems with the driver handling the side effects of M_HANGUP messages sent upstream. KNOWN LIMITATIONS The cdupdate program will not work on certain machines such as the 590 and 591, which use a different SCSI controller. Older SCSI units like SP-1003 will not work on newer AIX platforms. (Wide SCSI units such as ST-1620 will work, however.) HOW VERSION NUMBERS WORK The digi version number is 4.014. Under AIX 4.1, stsdd will show version 4.1.14. Under 4.3, stsdd will show version 4.3.14. The install process selects the right driver from the included 4.1.5 and 4.3.2 drivers. INSTALL HINTS The driver package which has a .sis extension must be made executable with chmod and then executed to unpack the contents. You may then either run Install, or use SMIT to install InstImage43 for 4.3 systems, or InstImage41 for older systems. The driver name is stsdd. SCSI units will show up as defined after you attach the SCSI units and restart. HISTORY V4.013.00 Unreleased internal version. V4.012.00 Enhanced the speed of serial printers, particularly those on WANs. The enhancement requires the printers to be named /dev/lp* rather than /dev/tty*, and also requires that XON/XOFF or hardware flow control be set on the printer's serial port. The driver is now fully multi-processor safe and is no longer a funneled driver. This version supports the EL-160-VP unit, and the virtual port timeout parameter (in tenths of seconds) which is specified on a unit basis. Added round trip time statistics, (Etherlite) hardware firmware version, and extra packet buffers allocated to cddiag output. This version fixes a problem with serial printers being slow, and with Etherlites on WANs being slow. This version fixes some problems with SCSI Terminal server units handling power outages to the SCSI units , and also addresses some performance problems when many SCSI-based ports are inputting data. It also fixes problems that would show up as units going offline when ports are closed and reopened rapidly. The change/show characteristic dialog for Etherlite units now allows the MAC address, netmask, gateway, bootp, and host list values to be changed. The changes generally won't take effect until after a system reset. If the driver runs out of buffer packets, it now allocates more packets and continues. Prior versions would cause the offending unit to go offline (which freed up some packets.) The error log message of stsdd: no_ctpkt OUT OF RESOURCES, remains. V4.011.00 Streamlined output handling for higher throughput and disabled all serial printer pauses for better printer performance. V4.010.00 Changed configuration termination routine to wait for ports to shut down and to redeem outstanding timer callbacks. V4.009.00 Changed ELS unit offline message for AIX error log from "permanent PIO error detected by driver" to "adapter not present", which more closely reflects the severity of the problem. V4.008.00 Changed cdetherd to handle users changing the system date and time. V4.007.00 Added tests for null unit ptrs in stswsrv, stswput, stsrsrv, stsopen, and stsclose. Changed timer routine to only wakeup openers waiting for units to become online. Corrected problem in waiting for output to finish before changing termio() settings. Changed default maximum packet size to 2046 bytes for Etherlite units. V4.006.00 Corrected deadlock problem in timer callback routine. Change driver to handle killed cdetherd better. Corrected bug in closing already offline Etherlite port. Corrected bug in changing configuration of offline Etherlite port. V4.004.00 Added standard AIX system-level tracing using trace hook 0xAF0. At present, the standard trace only includes open, close and ioctl activity. The ststrc facility provides more detail, but the system level trace is integrated with other system activity. Corrected bugs in open and close routines, ioctl handling, cross-memory handling, and other miscellaneous issues. Restored parallel-port performance. Added support for _POSIX_VDISABLE special character override. Added ODM/SMIT support for RS-485 units. Enhanced cdetherd daemon to output to syslog, and no longer litter /tmp with excess log files. Now, cdetherd maintains the last three log files in /tmp, with file extensions .log, .old, and .older. The cdetherd daemon logs now display the ELS firmware version. V4.003.00 Fixed system crash due to a NULL line pointer in wput(). Fixed EtherLite crash on Error 64 due to receiving over-limit packet size. Fixed a bug in cdupdate, which can not download firmware for SC-1600/ST-1600. Working arround for SCSI devices configuration problem on certain kind of machines such as 590 and 591 which do not use NCR's SCSI chip set. Accessing SCSI_READ_BUFFER on those machines causes SC_HOST_IO_BUS_ERR. As a consequence of the working arround, cdupdate can not be used on those machines until the problem is cleared. V4.002.00 Port the driver to AIX 4.3.2. Now the driver supports all releases of AIX 4.1 (up to 4.1.5), AIX 4.2 (4.2.0 and 4.2.1), and AIX 4.3 (4.3.0, 4.3.1, and 4.3.2). V4.001.00 Added support of T43 features for ELS units through automated configuration method. V4.000.00 Starting at this release, the driver package will include two installation images: InstImage41 (for AIX 4.1 and 4.2) and InstImage43 (for AIX 4.3). The "Install" script will automatically choose the right image to install based on the OS level of the host. After installation, the driver "stsdd" will show a version like 4.1.x.x in AIX 4.1 and 4.2 and 4.3.x.x in AIX 4.3. Its third and fourth fields of the version number will match with the second and third fields respectively of the driver package's release version. Changed copyright, documentation and device names to meet Digi's requirement. Changed stsopen routine to use a global timer blocking all open calls when unit is offline. This fixes system hang problem in MP machines. Added "cdipserv" utility. V3.009.00 IP and MAC address are verified when defining/configuring a EtherLite unit. If either the same IP address or same MAC address has been asigned to another network device, the EtherLite can not be defined/configured. Fixed stack overflow problem in ctf_pend_ioack() which caused a C20 machine to crash. Added mutex protection in open routine to prevent the NULL back pointer problem which caused a MP machine crashing. Fixed the init respawning caused by ERR_BUSY in EtherLite. This problem happened when two hosts try to open the same port in an EtherLite. V3.008.00 The driver is ported to AIX 4.3. So it can support all levels of AIX 4. Buffer size of FAS_SEND now can be changed dynamically based on the RTT of unit poll packets. This meets the output need of a slower network such as a WAN using frame relay. Fixed a bug during internal test. This bug crashes system by leaving a timer uncleared when remove a line over a slow network. The timeout/delay function table is increased to 1024 entries to accommodate the situation that massive lines are located in units over a WAN. Hardware address of a EtherLite device can be changed via SMIT without losing current configurations of unit and lines. V3.007.00 Release 3.006.00 was accidently compiled in AIX 4.2.1 environment and would not work in AIX 4.1.x. Now CLOCAL is a default attribute for runmode and logmode of rs422.sts ports. V3.006.00 This release fixed the XON/XOFF stick problem. Fixed modem signal toggling problem on close when -HUPCL is set. Fixed failures of internal tests on multiple open-close and POSIX tcsetattr 11 test. Fixed bug in building parallel for for EL8+. Added support of FAS_EXT_PARAM command and the baud extension can be set to as high as 460800 bps. Added support for new devices ST-1400B, ST-1800B, and ST-1800B+. Some SCSI device names are changed as following in the ODM: st1400A (scsiServer ST-1400A) to st1400x st1800A (scsiServer ST-1800A) to st1800x st1800A+ (scsiServer ST-1800A+) to st1800+ Etherlite device el8 (EtherLite 8 Port Server) is removed from the ODM. V3.005 Fixed a bug when an Etherlite unit is offline and its ports are configured with login enabled, unconfiguring the ports or killing the getty processes would panic the system. This release has been tested on AIX 4.2.1 and AIX 4.1.5. As noted in release notes for v3.004, to ensure the installed devices functions correctly, the following patch NEEDS to be installed in your system: For AIX 4.2.1: fix patch IX65073 For AIX 4.1.5: fix patch IX66797 V3.004 Changed the printer device names to those exactly supported by the native ports. This also eliminates the problem in listing some printer types when adding a printer queue via SMIT. Fixed the "run out of packet" problem which happened in ioctl flurry test and hung the system. This also fixes the system panic problem when backup and printing in the same SCSI bus. Internal tests discovered that the system sometimes hangs on closing a parallel port. This problem is fixed in this release by re-arranging the interrupt priority in the close routine. The TTY/Printer interface of rs422.sts now is add to SMIT panel and the ODM, so it can be configured via SMIT. Devices with rs422.sts support are marked in its description field. Installation script is changed to install the driver package only. Any device configuration needs to go through SMIT. The installation package now employes AIX 4 format. The related file systems will be automatically expanded during the installation if more space is required. New device EL-2 and new model ST-1616B, ST-1000/ST-1616b, ST-1008S, ST-1002S and EL-16E1 are supported. V3.003 This patch can support 128 Etherlite units in one system. Added Simple_lock to serialize access to the circular queue in a MP system. Added support to new devices ST-1622, EL-160, and EL-162 Now driver can be removed via SMIT. Internal test discovered that the model_name's default values in the ODM database does not meet the requirement of the configuration methods. This problem is fixed by re-organizing the devices based on their model_name attributes and port numbers. V3.002 Updated configuration entries for printers in the SMIT menu. Printers supported by the IBM internal ports are all supported by this release. DCD no longer required to use RTS/CTS flow control, matching the way the IBM internal serial port operates. Some printers which use RTS/CTS do not drive DTR. Fixed getty processes thrashing problem. This occurred when configured Etherlighgt unit(s) is offline and the tty port(s) is running in login-enabled mode. Changed timer function sts_delay() to handle more timer events. Fixed a problem of an ELS offline condition might cause the host system to panic. New devices: ST-1032 and EL-32 are supported. SMIT configuration menu for devices were reorganized for easier installation and sorting processes were added for some lists in the smit menu. ST-1610 entry was deleted. ST-1800P, ST-1800A+, and ST-8008 were combined with ST-1008 family. ST-1600 and ST-1016 family were expanded to adapt relative devices. Printers now can be configured to support printing 0 lines per page. Check and act on ERR_INITD condition, which occurs when 2008 unit is power-cycled. The correct action is to take open lines offline, which eventually results in processes to receive a hangup signal. When serial port is configured as a serial printer (e.g. "lp1"), packet buffer for that line is set to 3/4 of the maximum buffer size to improve performance, rather than 1/10 of baud rate figure we use for "normal" tty lines. Fixed rmdev panic when 16 lines configured on smaller or non-existent unit. V3.001 Port driver to AIX 4.2. Due to removal of tioc in STREAMS, changes were required for proprietary unit ioctls. This driver is also made to be backwardly compatible with AIX 4.1.x. Fixed bug that caused system to crash when SCSI Server's target ID is set to 4. Added support for EtherLite 8 port server. In this release, the parallel printer port on EL-8+ is not supported. V2.003 Fixed a bug that caused system to crash at boot time when one of SCSI server units was previously configured and currently powered off. Fixed a potential problem in driver's open & close delay function. "dinc" utility program added to the distribution. V2.001 This release is for adding Central Data's EtherLite products support. The EtherLite products currently supported are: EL-16 16 Port Server EM-16 16 Port Modem Server EM-8 8 Port Modem Server V2.002 Fixed bug introduced in prior release in tracking maximum message space in message packets which could cause SCSI adapter errors. Setup.txt, setup.html and other html files are also added to the distribution. V1.004 Removed the code that always set 'clocal' for printer devices. In tylib.c, the printer device was still open when 'splp' was invoked, this would cause 'splp' to fail in changing printer attributes. It has been fixed by closing the printer device before invoking 'splp'. In sts.c, at device close time, if output is locally stopped, we need to unconditionally resume the output so that we don't get stuck in waiting for output to drain. The 'cddiag' program was improved that now it displays the internal termios data structure for each line. V1.003 This release is for AIX 4.1.3 port. Due to the fact that several source modules of our scsiServer configuration programs use the "strtok" standard C function and on AIX 4.1.2 the "strok" function defined in standard C library was changed from reentrant to non-reentrant, it caused failure on configuration of printer devices. The fix is add a local reentrent function called "my_strtok" in cfgtools.c and replace "strtok" with "my_strtok" in all config source modules. The SCSI bus id used to be determined by the fifth character of the device name of parent SCSI adapter, e.g. 'scsi0', 'scsi1', etc. This might cause problem on some system that has SCSI adapter device name such as 'vscsi0'. A quick solution has been adopted by using the last character of the device name as the bus id. This is not a good solution since there might be some systems that have these SCSI adapter devices configured in their system, 'scsi0', 'vscsi0', etc. Will look into a better solution when these issues arises in the future. The close timer was also shortened from 10 minutes to 5 minutes. The support for 'hplj-3si' and 'hplj-4' printer devices were also added. V1.002 Fixed a bug in the previous driver version that a memory region was referenced after it was freed. No obvious problem has been observed. V1.001 This release of the stsdd driver does not support SMP (Symmetric Multi-Processing).