Patch Name: PHNE_17061 Patch Description: s700_800 10.20 EISA FDDI B.10.20.0[1-5] Cumulative patch Creation Date: 98/12/14 Post Date: 98/12/24 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: EISA FDDI B.10.20.01 B.10.20.02 B.10.20.03 B.10.20.04 Filesets: FDDI-EISA.FDDI0-KRN,B.10.20.01 FDDI-EISA.FDDI0-KRN,B.10.20.02 FDDI-EISA.FDDI0-KRN,B.10.20.03 FDDI-EISA.FDDI0-KRN,B.10.20.04 FDDI-EISA.FDDI0-RUN,B.10.20.01 FDDI-EISA.FDDI0-RUN,B.10.20.02 FDDI-EISA.FDDI0-RUN,B.10.20.03 FDDI-EISA.FDDI0-RUN,B.10.20.04 FDDI-CMD-COM.FDDI-CMD,B.10.20.01 FDDI-CMD-COM.FDDI-CMD,B.10.20.02 FDDI-CMD-COM.FDDI-CMD,B.10.20.03 FDDI-CMD-COM.FDDI-CMD,B.10.20.04 Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHNE_17061: MEMORY_LEAK PANIC HANG ABORT CORRUPTION OTHER Item 3 of the Symptoms/Defect Description fields causes data corruption, leading to degraded link performance. PHNE_15665: OTHER Card hang. PHNE_14791: PANIC PHNE_14077: MEMORY_LEAK OTHER Card hang. PHNE_12974: CORRUPTION PHNE_12973: CORRUPTION PHNE_11708: CORRUPTION It has a fix for data corruption, a reset panic, a bootup panic, a hang and transmit underruns. PHNE_11707: CORRUPTION It has a fix for data corruption, a reset panic, a bootup panic, a hang and transmit underruns. PHNE_10818: PANIC If there is FDDI traffic destined for a host while it is booting up, the host may panic. Path Name: /hp-ux_patches/s700_800/10.X/PHNE_17061 Symptoms: PHNE_17061: 1. The system panics with a data page fault, when many Input/Output (I/O) cards are configured on a system with EISA FDDI card/driver. 2. NFS server daemons operating over EISA FDDI hang, eventually followed by a system hang. 3. High checksum errors and degraded network performance, observed over EISA FDDI interface, on B and D class systems which are non cache coherent I/O (ie. CCIO). 4. When OSI stack is configured on top of EISA FDDI interface, it fails to communicate with its peers, resulting in application aborts. 5. System panics during system shutdown when OSI stack is configured over EISA FDDI driver. 6. System crashes, with either a HPMC or a memory protection fault panic, under high network traffic over the EISA FDDI interface. 7. System panics with an instruction page fault, when multiple promiscuous streams are enabled over the EISA FDDI interface. 8. The netfmt(1M) output for traces generated by the EISA FDDI driver is incorrect. PHNE_15665: 1. The EISA FDDI interface may hang after logging the message "Waited for stat2_ine4 but it never came" to syslog. 2. When an attempt is made to change the MAC address of the card using lanadmin(1M), the link becomes unusable for up to 10 seconds and the MAC address remains unchanged. 3. DLPI applications that use hierarchical sub-binding to SNAP SAPs other than IP or ARP may sometimes receive packets not meant for them from the EISA FDDI link. PHNE_14791: 1. linkloop(1M) over EISA FDDI may panic the system it is run on. PHNE_14077: 1. Under heavy load, the EISA FDDI card may hang (will not receive or send data). 2. When multicast packets are received on the EISA FDDI link, memory leaks occur in the driver. The system eventually runs out of free memory. 3. Applications cannot send or receive multicast packets over EISA FDDI. 4. Under certain conditions, too many informative driver messages are logged to syslog, causing it to overflow. 5. The fddiif utility sometimes reports negative numbers in the statistics. 6. When the locale is set and lanadmin(1M) is used in the interactive mode, after a certain number of commands, the following error message is displayed: Cannot open shared library ... PHNE_12974: 1. Inbound data corruption is seen on non-cache-coherent systems when UDP checksum is turned off. This problem is observed readily on D200/D210 systems with EISA FDDI. 2. Inability to bind SNAP SAPs through DLPI. 3. Underrun on transmission of every frame larger than 3000 bytes when EISA SCSI is present. PHNE_12973: 1. Inbound data corruption is seen on non-cache-coherent systems when UDP checksum is turned off. This problem is observed readily on D200/D210 systems with EISA FDDI. 2. Inability to bind SNAP SAPs through DLPI. 3. Underrun on transmission of every frame larger than 3000 bytes when EISA SCSI is present. PHNE_11708: 1. Data written from non-coherent NFS clients gets badly corrupted when UDP checksumming is turned off. With UDP checksumming turned on, data transfer rate is very slow. 2. EISA FDDI interface hangs when EISA bus is stressed. 3. lanadmin(1M) reset panics sometimes; hangs at times. 4. Transmit underruns occur when the EISA bus is loaded. PHNE_11707: 1. Data written from non-coherent NFS clients gets badly corrupted when UDP checksumming is turned off. With UDP checksumming turned on, data transfer rate is very slow. 2. EISA FDDI interface hangs when EISA bus is stressed. 3. lanadmin(1M) reset panics sometimes; hangs at times. 4. Transmit underruns occur when the EISA bus is loaded. PHNE_10818: 1. ServiceGuard fails to startup with EISA FDDI Application Release of March 1997. 2. If there is EISA FDDI traffic destined for a host while it is booting up, the host may panic. 3. EISA FDDI card reset using lanadmin hangs at times. Defect Description: PHNE_17061: 1. When multiple I/O cards are configured, it is possible that the driver's attempt to map its I/O buffer fails. Under these conditions, when the driver attempts to unmap these I/O buffers, the system panics with a data page fault. 2. When the driver fails to enqueue packets for transmission ( as was seen under heavy NFS traffic ), the driver treats these packets as dropped. However, it failed to free the buffers for the packet. This resulted in kernel memory leak, eventually leading to a system hang. 3. On systems without CCIO support, the driver needs to maintain cache coherency during DMA transactions, by flushing/purging the CPU cache as necessary. The EISA FDDI driver did not synchronize its inbound data buffer pool with the processor cache. Hence stale data was passed up to the upper layers, resulting in checksum errors and re-transmissions, leading to degraded performance. To verify this problem, run netstat(1M) to display bad checksums. In addition, to check if the system supports ccio, run the following command on the system : /usr/bin/grep "^ccio" /stand/system If the above command does not display 'ccio', then the system is non cache coherent and this patch needs to be installed, to rectify the problem. 4. The control field in the packet header of outbound Unnumbered Information (UI) packets in the EISA FDDI driver was not initialized. As a result, communication was not established with remote hosts, causing application aborts. 5. During system shutdown, the OSI stack sends the OSIUNBIND request to the driver. The driver failed to unbind the protocol stack stream as it incorrectly compared the service access point (SAP) values and returned an error. However, the OSI stack was unbound and any attempt by the driver to send packets on that stream resulted in a system panic. 6. Under heavy network traffic conditions, the EISA FDDI driver may sometimes invoke internal card resets to recover from transmit hangs. In the driver's watchdog timer, when attempting an internal reset ( for automatic recovery ), the driver invokes a kernel sleep routine while waiting for reset completion. Since the watchdog timer executes in an interrupt system context, calling sleep leads to a system crash ( HPMC or memory protection fault ). An alternate mechanism of completing resets in driver interrupt routine has been implemented. 7. When multiple streams enable promiscuous mode on a single interface, the driver failed to distinguish between bound and unbound streams. As a result the streams queue pointer was corrupted, resulting in a panic. 8. The EISA FDDI formatting routines were using incorrect offsets into the trace buffers, resulting in incorrect output. PHNE_15665: 1. A software reset mechanism was introduced in the EISA FDDI driver to work around hardware defects in the Motorola FDDI System Interface (FSI) chip. This mechanism did not detect all the circumstances under which the card had to be reset. 2. The MAC address of the card cannot be changed. Users were not prevented from attempting to do this. 3. The driver forwarded SNAP packets that were neither IP nor ARP to all applications registered with SNAP SAPs other than IP or ARP. PHNE_14791: 1. The EISA FDDI driver assumed that MAC addresses were 16-bit aligned. This assumption is incorrect for linkloop packets. PHNE_14077: 1. A defect in the Motorola FSI chip causes the card to hang under heavy load. 2. The driver relies on upper layers of the networking stack to free the memory allocated for the packets that are received. When multicast packets are received, they are not sent to the upper layers and consequently the memory allocated is not freed. 3. When checking for multicast packets (while sending or receiving data) the driver erroneously assumes that the link-level multicast address is in canonical format, while, in reality, the address is in wire format. 4. SMT and other informative messages are incorrectly sent to syslog instead of the NetTL log by the EISA FDDI driver. 5. Though the statistics are maintained as unsigned integers by the driver, fddiif displays them as signed values. 6. The EISA FDDI lanadmin(1M) shared library does not close the catalog file after using it. PHNE_12974: 1. A missing cache purge at the time the receive buffer is set up causes stale data to appear in the received packet. The stale data starts at cache line boundaries and can run to multiples of the cache line size. 2. Incorrect coding of the protocol binding functionality makes the driver think the protocol has been bound already. 3. When EISA SCSI is present, system firmware automatically disables BCLK stretching resulting in a slight slowdown of the EISA bus. This, coupled with the limited bandwidth of the EISA bus, restricts the ability of the EISA FDDI card to DMA the packet at the rate needed by the FDDI network. The EISA FDDI card, by default, sets its transmit FIFO watermark to 2 KB, which means that it starts transmission on the FDDI network after it has got 2 KB of data in its FIFO. This patch increases the watermark to the FDDI MTU (4352 bytes). PHNE_12973: 1. A missing cache purge at the time the receive buffer is set up causes stale data to appear in the received packet. The stale data starts at cache line boundaries and can run to multiples of the cache line size. 2. Incorrect coding of the protocol binding functionality makes the driver think the protocol has been bound already. 3. When EISA SCSI is present, system firmware automatically disables BCLK stretching resulting in a slight slowdown of the EISA bus. This, coupled with the limited bandwidth of the EISA bus, restricts the ability of the EISA FDDI card to DMA the packet at the rate needed by the FDDI network. The EISA FDDI card, by default, sets its transmit FIFO watermark to 2 KB, which means that it starts transmission on the FDDI network after it has got 2 KB of data in its FIFO. This patch increases the watermark to the FDDI MTU (4352 bytes). PHNE_11708: 1. Open GL requires that drivers do not assume that the data buffers they handle will be in Space ID 0. As NFS passes down buffers with non-zero space ID to the driver, cache flushes performed assuming space ID 0, result in the intended data not being flushed. 2. FDDI interface goes into CB running state under stress testing. 3. In reset sequence, freeing an already freed mbuf panics the system. 4. Under heavy load, the EISA bus is not able to supply outbound data at the rate expected by the FDDI link, thus requiring packets to be cached in on-board memory before sending on the wire. PHNE_11707: 1. Open GL requires that drivers do not assume that the data buffers they handle will be in space ID 0. As NFS passes down buffers with non-zero space ID to the driver, cache flushes performed assuming space ID 0 result in the intended data not being flushed. 2. FDDI interface goes into CB running state under stress testing. 3. In the reset sequence, freeing an already freed mbuf panics the system. Also, driver support for the card reset operation was not adequate. 4. Under heavy load, the EISA bus is not able to supply outbound data at the rate expected by the FDDI link, thus requiring packets to be cached in on-board memory before sending on the wire. 5. ServiceGuard requires the first word in the mib.ifDescr field to be the interface name and unit number, e.g., lan0. Unfortunately, EISA FDDI in the Application Release of March 1997 replaced the word with fddi0. ServiceGuard attempted to find an interface named fddi0 and failed. 6. Interrupts are enabled and the inbound path is initialized in the driver before IP initializes the ipintrq. If there is traffic destined for the host on the EISA FDDI interface before IP gets a chance to initialize ipintrq, the interrupt service routine in the driver attempts to lock the ipintrq and enqueue the packet and this results in a panic. The solution is to discard IP/ARP packets unless the interface is configured up (IFF_UP is set). PHNE_10818: 1. ServiceGuard requires the first word in the mib.ifDescr field to be the interface name and unit number, e.g., lan0. Unfortunately, EISA FDDI in the Application Release of March 1997 replaced the word with fddi0. ServiceGuard attempted to find an interface named fddi0 and failed. 2. Interrupts are enabled and the inbound path is initialized in the driver before IP initializes the ipintrq. If there is traffic destined for the host on the EISA FDDI interface before IP gets a chance to initialize ipintrq, the interrupt service routine in the driver attempts to lock the ipintrq and enqueue the packet and this results in a panic. The solution is to discard IP/ARP packets unless the interface is configured up (IFF_UP is set). 3. Driver support for card reset operation was not adequate. SR: 1653272146 1653278499 1653288043 5003418723 1653266965 1653266973 1653243592 1653248484 5003394668 5003413955 5003375485 1653233015 1653228262 1653223008 4701349886 4701343954 Patch Files: /usr/conf/lib/libfddi0.a /usr/conf/lib/fddi0_header.o /usr/conf/master.d/fddi0 /usr/lib/lanadmin/libdsfddi0.1 /usr/lib/lanscan/libpefddi0.1 /usr/lib/libfddifmt0.1 /usr/lib/nls/msg/C/fddi0.cat /usr/bin/fddiif /usr/bin/fddilink /usr/bin/fddidump /sbin/init.d/eisafddi what(1) Output: /usr/conf/lib/libfddi0.a: EISA FDDI fddi0 libfddi0 B.10.20.06 PHNE_17061 $Date : 98/12/18 12:00:00 $ /usr/conf/lib/fddi0_header.o: None /usr/conf/master.d/fddi0: None /usr/lib/lanadmin/libdsfddi0.1: libdsfddi0.1 EISA FDDI B.10.20.06 PHNE_17061 $Date: 98/12/18 10:00:00 $ /usr/lib/lanscan/libpefddi0.1: libpefddi0.1 EISA FDDI B.10.20.06 PHNE_17061 $Date: 98/12/18 10:00:00 $ /usr/lib/libfddifmt0.1: libfddifmt0.1 EISA FDDI B.10.20.06 PHNE_17061 $Date: 98/12/18 16:00:00 $ /usr/lib/nls/msg/C/fddi0.cat: None /usr/bin/fddiif: fddiif EISA/HSC FDDI B.10.20.06/7 PHNE_17061/2 $Date : 98/12/18 10:00:00 $ /usr/bin/fddilink: fddilink EISA/HSC FDDI B.10.20.06/7 PHNE_17061/2 $Da te: 98/12/18 10:00:00 $ /usr/bin/fddidump: fddidump EISA/HSC FDDI B.10.20.06/7 PHNE_17061/2 $Da te: 98/12/18 12:00:00 $ /sbin/init.d/eisafddi: None cksum(1) Output: 3587324831 79384 /usr/conf/lib/libfddi0.a 1660192802 223912 /usr/conf/lib/fddi0_header.o 3782332780 3765 /usr/conf/master.d/fddi0 3200412849 16384 /usr/lib/lanadmin/libdsfddi0.1 1700420107 12288 /usr/lib/lanscan/libpefddi0.1 1490053697 20480 /usr/lib/libfddifmt0.1 3034189258 6740 /usr/lib/nls/msg/C/fddi0.cat 3328607853 20480 /usr/bin/fddiif 3374070415 65536 /usr/bin/fddilink 1893260985 20480 /usr/bin/fddidump 1618315512 808 /sbin/init.d/eisafddi Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_10818 PHNE_11707 PHNE_11708 PHNE_12973 PHNE_12974 PHNE_14077 PHNE_14791 PHNE_15665 Equivalent Patches: None Patch Package Size: 530 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_17061 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_17061.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHNE_17061.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_17061. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHNE_17061.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_17061.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: If any of the versions B.10.20.01 through B.10.20.04 of the HSC FDDI product is installed on the system, PHNE_15666 or a superseding patch, should also be installed for the common utilities fddiif, fddidump and fddilink to work over both the links.