Patch Name: PHNE_17062 Patch Description: s700_800 10.20 HSC FDDI B.10.20.0[1-6] cumulative patch Creation Date: 98/12/14 Post Date: 98/12/24 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: HSC FDDI B.10.20.01 B.10.20.02 B.10.20.03 B.10.20.04 Filesets: FDDI-HSC.FDDI3-KRN,B.10.20.01 FDDI-HSC.FDDI3-KRN,B.10.20.02 FDDI-HSC.FDDI3-KRN,B.10.20.03 FDDI-HSC.FDDI3-KRN,B.10.20.04 FDDI-HSC.FDDI3-RUN,B.10.20.01 FDDI-HSC.FDDI3-RUN,B.10.20.02 FDDI-HSC.FDDI3-RUN,B.10.20.03 FDDI-HSC.FDDI3-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_17062: MEMORY_LEAK PANIC HANG ABORT PHNE_16502: PANIC PHNE_15666: OTHER Card hang. PHNE_14792: PANIC PHNE_14078: OTHER Card hang. PHNE_14074: MEMORY_LEAK When multicast packets are received on the HSC FDDI link, the driver leaks memory. Path Name: /hp-ux_patches/s700_800/10.X/PHNE_17062 Symptoms: PHNE_17062: 1. The system panics with a data page fault, when many Input/Output (I/O) cards are configured on a system with HSC FDDI card/driver. 2. NFS server daemons operating over HSC FDDI hang, eventually followed by a system hang. 3. When OSI stack is configured on top of HSC FDDI interface, it fails to communicate with its peers, resulting in application aborts. 4. System panics during system shutdown when OSI stack is configured over HSC FDDI driver. 5. System crashes, with either a HPMC or a memory protection fault panic, under high network traffic over the HSC FDDI interface. 6. System panics when multiple promiscuous streams are enabled over the HSC FDDI interface. 7. The netfmt(1M) output for traces generated by the HSC FDDI driver is incorrect. PHNE_16502: 1. With heavy traffic on the HSC FDDI link, if multiple instances of ioscan(1M) are simultaneously executed, the system may panic with an HPMC. 2. Applications that use the SAP promiscuous mode may not receive packets destined for them from the HSC FDDI link. 3. Under sustained heavy load conditions, the system may sometimes hang or panic. PHNE_15666: 1. The HSC FDDI interface may hang after logging the message "Waited for stat2_ine4 but it never came" to syslog. 2. When the MAC address of the HSC FDDI card is changed, the link becomes unusable for up to 10 seconds during which a large number of void frames are seen on the ring. 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 HSC FDDI link. PHNE_14792: 1. linkloop(1M) over HSC FDDI may panic the system it is run on. PHNE_14078: 1. Under heavy load, the HSC FDDI card may hang (will not receive or send data). 2. Under certain conditions, too many informative driver messages are logged to syslog, causing it to overflow. 3. The fddiif utility sometimes reports negative numbers in the statistics. 4. 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_14074: 1. When multicast packets are received on the HSC FDDI link, memory is leaked in the driver. The system eventually runs out of free memory. 2. Multicast packets cannot be sent or received by applications on the HSC FDDI link. PHNE_13190: 1. The HSC FDDI link does not work on D-class 210/310, 220/320 and 230/330 systems. ioscan(1M) shows that the HSC FDDI card is unclaimed. 2. When the HSC bus contention goes high which means many other devices are sharing the same HSC bus with the HSC FDDI link and the HSC bus is heavily used, the HSC FDDI link has too many transmit and receive errors. Defect Description: PHNE_17062: 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. The control field in the packet header of outbound Unnumbered Information (UI) packets in the HSC FDDI driver was not initialized. As a result, communication was not established with remote hosts, causing application aborts. 4. 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. 5. Under heavy network traffic conditions, the HSC 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. 6. When multiple streams enable promiscuous mode on a single interface, the driver did not check for this condition. As a result the streams queue pointer was corrupted, resulting in a panic. 7. The HSC FDDI formatting routines were using incorrect offsets into the trace buffers, resulting in incorrect output. PHNE_16502: 1. When heavy inbound traffic occurs, and ioscan(1M) is run simultaneously, the bus adapter on the HSC FDDI interface card puts out an invalid address on the bus. This leads to a panic with HPMC. 2. The source and destination MAC addresses on inbound promiscuous SAP packets were being sent up to the DLPI layer in wire format, while DLPI assumes them to be in canonical format. 3. The driver was not freeing allocated memory in certain error paths. PHNE_15666: 1. A software reset mechanism was introduced in the HSC 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 HSC FDDI driver is required to disconnect the card from the FDDI ring before changing the MAC address. This was not being done. 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_14792: 1. The HSC FDDI driver assumed that MAC addresses were 16-bit aligned. This assumption is incorrect for linkloop packets. PHNE_14078: 1. A defect in the Motorola FSI chip causes the card to hang under heavy load. 2. SMT and other informative messages are incorrectly sent to syslog instead of the NetTL log by the HSC FDDI driver. 3. Though the statistics are maintained as unsigned integers by the driver, fddiif displays them as signed values. 4. The HSC FDDI lanadmin(1M) shared library does not close the catalog file after using it. PHNE_14074: 1. 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. 2. 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. PHNE_13190: 1. The HSC FDDI uses the node "id" property to identify a T600 system. The D-class 210/310, 220/320, and 230/330 systems do not have the "id" property defined. Thus, the HSC FDDI link does not get initialized. 2. The high error rate problem is caused by a combination of contention on the HSC bus and the small amount of memory (8K bytes) on the HSC FDDI card. The problem is seen easily if the HSC FDDI card has been put in the Core HSC slot on a K-Class system. Although the "lanadmin -S tx_threshold" command can adjust the card transmit buffer for the outbound data, in a heavily used bus, the inbound data shows many receive errors. A special setting "lanadmin -S 0" is introduced in this patch. Using this will result in a decrease in HSC bus contention. SR: 1653282905 1653282913 5003440917 1653273540 1653266973 1653266783 1653265728 1653248476 5003413930 5003413948 5003404764 Patch Files: /usr/conf/lib/libfddi3.a /usr/conf/lib/fddi3_header.o /usr/conf/master.d/fddi3 /usr/lib/lanadmin/libdsfddi3.1 /usr/lib/lanscan/libpefddi3.1 /usr/lib/libfddifmt3.1 /usr/lib/nls/msg/C/fddi3.cat /usr/bin/fddiif /usr/bin/fddilink /usr/bin/fddidump what(1) Output: /usr/conf/lib/libfddi3.a: HSC FDDI fddi3 libfddi3 B.10.20.07 PHNE_17062 $Date: 98/12/18 12:00:00 $ /usr/conf/lib/fddi3_header.o: None /usr/conf/master.d/fddi3: None /usr/lib/lanadmin/libdsfddi3.1: libdsfddi3.1 HSC FDDI B.10.20.07 PHNE_17062 $Date: 9 8/12/18 12:00:00 $ /usr/lib/lanscan/libpefddi3.1: libpefddi3.1 HSC FDDI B.10.20.07 PHNE_17062 $Date: 9 8/12/18 12:00:00 $ /usr/lib/libfddifmt3.1: libfddifmt3.1 HSC FDDI B.10.20.07 PHNE_17062 $Date: 98/12/18 12:00:00 $ /usr/lib/nls/msg/C/fddi3.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 $ cksum(1) Output: 2296677698 80872 /usr/conf/lib/libfddi3.a 2715146514 217608 /usr/conf/lib/fddi3_header.o 4146639522 3767 /usr/conf/master.d/fddi3 2063951291 16384 /usr/lib/lanadmin/libdsfddi3.1 2388265776 12288 /usr/lib/lanscan/libpefddi3.1 1300093080 20480 /usr/lib/libfddifmt3.1 3409149713 6468 /usr/lib/nls/msg/C/fddi3.cat 3328607853 20480 /usr/bin/fddiif 3374070415 65536 /usr/bin/fddilink 1893260985 20480 /usr/bin/fddidump Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_16448 s800: 10.20: PHKL_16449 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_13190 PHNE_14074 PHNE_14078 PHNE_14792 PHNE_15666 PHNE_16502 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_17062 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_17062.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_17062.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_17062. 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_17062.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_17062.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 EISA FDDI product is installed on the system, PHNE_15665 or a superseding patch, should also be installed for the common utilities fddiif, fddidump and fddilink to work over both the links.