Patch Name: PHNE_14077 Patch Description: s700_800 10.20 EISA FDDI B.10.20.01 Cumulative patch Creation Date: 98/03/30 Post Date: 98/04/08 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 Filesets: FDDI-EISA.FDDI0-KRN,B.10.20.01,B.10.20.02,B.10.20.03 FDDI-EISA.FDDI0-RUN,B.10.20.01,B.10.20.02,B.10.20.03 FDDI-CMD-COM.FDDI-CMD,B.10.20.01,B.10.20.02,B.10.20.03 Automatic Reboot?: Yes Status: General Superseded Critical: Yes 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_14077 Symptoms: 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 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 reset panics sometimes; hangs at times. 4. Transmit underruns occur when the EISA bus is loaded. PHNE_10818: The following symptoms correspond to the descriptions in the defect descriptions field for PHNE_10818: NOTE: In this document, DART 32 refers to the Application Release of March 1997. 1. ServiceGuard fails to startup with DART 32 EISA FDDI. 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_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, DART 32 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, DART 32 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: 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.04 (pD39) PHNE_1407 7 $Date: 98/04/03 04:49:40 $ /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.04 (pD39) PHNE_14077 $Date: 98/03/30 02:15:38 $ /usr/lib/lanscan/libpefddi0.1: libpefddi0.1 EISA FDDI B.10.20.04 (pD39) PHNE_14077 $Date: 98/03/30 02:26:12 $ /usr/lib/libfddifmt0.1: libfddifmt0.1 EISA FDDI B.10.20.04 (pD39) PHNE_14077 $Date: 98/04/02 15:37:49 $ /usr/lib/nls/msg/C/fddi0.cat: None /usr/bin/fddiif: fddiif EISA/HSC FDDI B.10.20.04 (pD39) PHNE_14077/8 $Date: 98/03/29 23:34:39 $ /usr/bin/fddilink: fddilink EISA/HSC FDDI B.10.20.04 (pD39) PHNE_14077/ 8 $Date: 98/03/30 00:12:09 $ /usr/bin/fddidump: fddidump EISA/HSC FDDI B.10.20.04 (pD39) PHNE_14077/ 8 $Date: 98/03/30 01:56:09 $ /sbin/init.d/eisafddi: None cksum(1) Output: 1304619520 76816 /usr/conf/lib/libfddi0.a 1279298095 222708 /usr/conf/lib/fddi0_header.o 3782332780 3765 /usr/conf/master.d/fddi0 1421523133 16384 /usr/lib/lanadmin/libdsfddi0.1 127967683 12288 /usr/lib/lanscan/libpefddi0.1 3771671656 20480 /usr/lib/libfddifmt0.1 2939345 6670 /usr/lib/nls/msg/C/fddi0.cat 2471833808 20480 /usr/bin/fddiif 311247915 65536 /usr/bin/fddilink 3726129948 20480 /usr/bin/fddidump 3976184928 846 /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 Equivalent Patches: None Patch Package Size: 520 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_14077 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_14077.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_14077.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_14077. 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_14077.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_14077.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None