Patch Name: PHNE_17284 Patch Description: s700_800 10.20 HSC FDDI B.10.20.0[1-8] cumulative patch Creation Date: 99/03/01 Post Date: 99/03/15 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 B.10.20.08 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-KRN,B.10.20.08 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-HSC.FDDI3-RUN,B.10.20.08 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 FDDI-CMD-COM.FDDI-CMD,B.10.20.08 Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHNE_17284: PANIC OTHER Items 5, 6 and 8 of the defect description cause system panics. Item 4 of the defect description results in a critical customer application failure and is classified as a critical defect in the corresponding SR. 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_17284 Symptoms: PHNE_17284: 1. When the MTU of the HSC FDDI interface is set or reset using the lanadmin(1M) command with -M or -R options respectively, the command completes without any errors but does not set/reset the MTU value for the interface. 2. When lanadmin(1M) is used to set the physical address of the interface to the broadcast address ( 0xffffffffffff ) or to 0 ( 0x000000000000 ), the command succeeds. 3. netstat(1M) used with the -i option shows a large number of inbound errors on the HSC FDDI interface. 4. When the HSC FDDI interface is configured down using the ifconfig(1M) command, an unbound SAP promiscuous stream opened on the interface fails to receive IP/ARP packets coming in on the interface. 5. The system may panic with a 'Data page fault' when the HSC FDDI interface is operating in promiscuous mode with heavy inbound traffic. 6. The system panics with a 'Data page fault' when promiscuous mode is repeatedly turned on and off over the HSC FDDI interface. 7. The 'Operation Status' of the HSC FDDI interface, as displayed by the lanadmin(1M) command, is not marked 'down' when there is a cable disconnect. 8. A T600 system may panic with a 'Data page fault' during boot up. 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_17284: 1. When lanadmin(1M) is run with the -M option to set the MTU for the interface or with the -R option to reset it to the default value, it sends 'change MTU' ioctl (I/O Control) request to the driver. The driver neither handled this ioctl request nor returned an error. As a result, the lanadmin(1M) command completed without errors, but did not set/reset the MTU. Resolution: The driver has been fixed to handle the ioctl request and hence set/reset the MTU as expected. An error ( EINVAL ) is returned if the driver cannot handle the request. For example, EINVAL is returned when the requested MTU value is too high (>4352) or too low (<100). 2. When the lanadmin(1M) command is used with the -A option to set the physical address of the interface to either 0xffffffffffff or 0x000000000000, the driver did not check for these addresses and set the physical address as such. This is inconsistent with the behavior of other networking cards/drivers, that prevent the physical address being set to the above values. Resolution: The driver has been fixed to return an error (EINVAL) for the above values. 3. Packets which were being dropped, either due to the interface being configured down ( using the ifconfig(1M) command ), or due to the driver not being able to decipher the protocol type of the packet, were counted as inbound errors for IP. Resolution: The driver has been fixed to increment the card specific statistics but not increment the network (IP) statistics, in the above cases. 4. When an unbound stream in SAP promiscuous mode is operating over the HSC FDDI interface and the interface is configured down using the ifconfig(1M) command, the driver stops sending up IP/ARP packets to the promiscuous stream. The expected behavior is to continue sending these packets up to the promiscuous stream. 5. Under heavy network traffic, with the HSC FDDI interface in promiscuous mode, when a call to allocate memory failed, an inbound buffer could be freed more than once, resulting in a system panic. 6. When promiscuous mode is turned on/off repeatedly, there was a time window during which the stream which had previously turned promiscuous mode off was closed before the card's promiscuous mode was turned off by the driver. The time window was introduced because of the order in which the driver carried out the steps to disable promiscuous mode on the interface. Due to this time-window, some packets were still sent up to a non-existent stream. This led to a system panic. 7. The ifOper MIB variable, that is displayed as the 'Operation Status' by the lanadmin(1M) command, shows the operational state of the interface. The HSC FDDI driver did not update the value of ifOper to 'down' when it detected a cable disconnect. Resolution: The driver has been fixed to update the state of the ifOper MIB variable on cable disconnects and reconnects. 8. Due to incorrect initialization of a card data-structure in the device driver, T600 systems, which have 64 byte cache lines, could panic with a data page fault during boot-up. Resolution: The initialization routine has been modified to work correctly for 64 byte cacheline boundaries. 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: 5003421891 5003451187 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.09 PHNE_17284 $Date: 99/02/25 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.09 PHNE_17284 $Date: 9 9/02/25 12:00:00 $ /usr/lib/lanscan/libpefddi3.1: libpefddi3.1 HSC FDDI B.10.20.09 PHNE_17284 $Date: 9 9/02/25 12:00:00 $ /usr/lib/libfddifmt3.1: libfddifmt3.1 HSC FDDI B.10.20.09 PHNE_17284 $Date: 99/02/25 12:00:00 $ /usr/lib/nls/msg/C/fddi3.cat: None /usr/bin/fddiif: fddiif EISA/HSC FDDI B.10.20.09 PHNE_17285/4 $Date: 99/02/25 10:00:00 $ /usr/bin/fddilink: fddilink EISA/HSC FDDI B.10.20.09 PHNE_17285/4 $Date : 99/02/25 10:00:00 $ /usr/bin/fddidump: fddidump EISA/HSC FDDI B.10.20.09 PHNE_17285/4 $Date : 99/02/25 12:00:00 $ cksum(1) Output: 1656401112 81028 /usr/conf/lib/libfddi3.a 1909403505 217608 /usr/conf/lib/fddi3_header.o 4146639522 3767 /usr/conf/master.d/fddi3 2762534265 16384 /usr/lib/lanadmin/libdsfddi3.1 2307240285 12288 /usr/lib/lanscan/libpefddi3.1 2429588523 20480 /usr/lib/libfddifmt3.1 3409149713 6468 /usr/lib/nls/msg/C/fddi3.cat 142644290 20480 /usr/bin/fddiif 3644144796 65536 /usr/bin/fddilink 585124529 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 PHNE_17062 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_17284 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_17284.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_17284.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_17284. 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_17284.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_17284.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. This is not needed if version B.10.20.08 of the EISA FDDI product is installed.