Patch Name: PHNE_23509 Patch Description: s700_800 10.20 PCI FDDI cumulative patch Creation Date: 01/04/10 Post Date: 01/04/30 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: FDDI-PCI B.10.20.01 B.10.20.03 B.10.20.04 B.10.20.05 B.10.20.09 B.10.20.10 B.10.20.11 B.10.20.13 Filesets: FDDI-PCI.FDDI4-KRN,B.10.20.01 FDDI-PCI.FDDI4-KRN,B.10.20.03 FDDI-PCI.FDDI4-KRN,B.10.20.04 FDDI-PCI.FDDI4-KRN,B.10.20.05 FDDI-PCI.FDDI4-KRN,B.10.20.09 FDDI-PCI.FDDI4-KRN,B.10.20.10 FDDI-PCI.FDDI4-KRN,B.10.20.11 FDDI-PCI.FDDI4-KRN,B.10.20.13 FDDI-PCI.FDAD-ENG-A-MAN,B.11.00.04 FDDI-PCI.FDAD-ENG-A-MAN,B.11.00.05 FDDI-PCI.FDAD-ENG-A-MAN,B.10.20.09 FDDI-PCI.FDAD-ENG-A-MAN,B.10.20.10 FDDI-PCI.FDAD-ENG-A-MAN,B.10.20.11 FDDI-PCI.FDAD-ENG-A-MAN,B.10.20.13 Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHNE_20875: PANIC ABORT PHNE_19541: HANG PHNE_18735: MEMORY_LEAK HANG PANIC PHNE_16361: OTHER Process may hang while performing NFS data transfer. Path Name: /hp-ux_patches/s700_800/10.X/PHNE_23509 Symptoms: PHNE_23509: 1. Messages similar to the following are seen either on the system console or in the system log file (/var/adm/syslog.log by default) on A and B class systems with non cache-coherent I/O which have PCI FDDI card and driver installed: vmunix: fddi4_process_cmd_rsp: cmd 0, status 1cee90 2. When the interface is reset, the multicast addresses and promiscuous level set in the card will be lost. The interface will not receive the packets destinated for these multicast addresses and packets corresponding to the promiscuous level. PHNE_20875: 1. A command to clear statistics on a functional PCI FDDI interface using the lanadmin(1M) command fails with the message : 'Unable to clear statistics registers.' 2. When 2 or more PCI FDDI cards on a single host are connected to the same physical network but are configured on different IP subnets, an IP broadcast storm may be seen on the network. 3. Applications using DLPI Type-2 connection oriented protocol over the PCI FDDI interface are unable to connect to a peer on another system. 4. Ring events (LINK UP and LINK DOWN) due to cable disconnects/reconnects and interface resets are not always communicated to upper network management layers. 5. ER: The PCI FDDI product fails to function with the Lan-Monitor product. 6. A system with the PCI FDDI product installed from the June 2000 application release may panic with a 'data memory protection fault' when an application running sustained heavy loopback traffic over a PCI FDDI interface is closed. The loopback packets have a non-SNAP destination SAP (Service Access Point). i.e. a destination SAP that is not equal to 0xAA. PHNE_19541: 1. System with PCI FDDI interface hangs. PHNE_18735: 1. The unbound promiscuous stream does not intercept outbound packets when in promiscuous mode. 2. "No entry for fddipciadmin" will be returned from the command: man fddipciadmin 3. System may hang when there is high inbound traffic over PCI FDDI interface. 4. System may panic with panic string "Spinlock timeout failure:" when there is high outbound traffic over PCI FDDI interface. PHNE_16361: 1. Data transfers over an NFS mount can hang and time out. Defect Description: PHNE_23509: 1. CR JAGad51900 / SR 8606182683 On systems with non cache-coherent I/O the PCI FDDI driver did not purge the processor cache for a command response buffer before the corresponding command request is queued to the card. On a command response, the driver checks the command response status. However on systems with non cache-coherent I/O a stale command response status value was read. Since this invalid value indicated a failed command response the message was printed. The cache purge is not necessary on systems with cache-coherent I/O. Resolution: On systems with non cache-coherent I/O the PCI FDDI driver was changed to purge the processor cache for every command response buffer before the corresponding command request is queued to the card. 2. CR JAGad16107 / SR 8606146764 When the card is reset, the card will lose all the multicast addresses and promiscuous level set in the card. After the completion of reset the driver does not restore the multicast addresses and promiscuous level onto the card. Resolution: After reset, the driver restores the multicast addresses and promiscuous level into the card PHNE_20875: 1. CR JAGab72054 / SR 8606104480 The PCI FDDI driver did not implement the command to clear statistics for the interface and returned an error value on receiving such a command, resulting in lanadmin(1M) printing the error message 'Unable to clear statistics registers.'. Resolution: The driver has been enhanced to handle the command to clear the statistics on the interface/driver and return a value of 0 to lanadmin(1M) if the command succeeds or a non-zero error value indicating the type of error encountered when the command fails. 2. CR JAGab69093 For broadcast frames received over the PCI FDDI interface, the PCI FDDI driver did not set a bit indicating that the frame was received as a broadcast frame and hence need not be forwarded by the IP module. As a result the IP module would forward the packet received from one interface onto the other interfaces besides passing the packet onto the upper layers for processing. This could repeat as the already forwarded packets comes back in again and again through the PCI FDDI interfaces, resulting in a storm of inbound packets and hence the corresponding responses by upper layers. Resolution: The driver has been modified to set a bit in packets passed up to the IP module indicating that the frame was a broadcast frame. Hence the packets are not forwarded and hence multiple packets are not received again and again on an interface. 3. CR JAGab24412 The PCI FDDI driver was dropping inbound DLPI Type-2 packets. Besides the above defect in the PCI FDDI driver, the lan-common module used to convert canonical MAC addresses to wire format for outbound DLPI Type-2 packets before passing on the packet to the PCI FDDI driver. The PCI FDDI card would also make the above conversion resulting in frames with incorrect MAC addresses being sent out on the wire. Either of the above defects would result in DLPI Type-2 packets being dropped and applications using DLPI Type-2 being unable to connect to their peers. Resolution: Inbound DLPI Type-2 packets are now processed by the PCI FDDI driver and passed up to the required stream. The PCI FDDI driver now register with the lan-common module to indicate that the PCI FDDI card is capable of converting canonical MAC addresses to wire format. Starting with lan-common patches PHNE_21215 (for s700) and PHNE_21216 (for s800) and superseding patches, the lan-common module does not convert MAC addresses if the driver registers with it indicating that the card is capable of doing the address conversion by itself. 4. CR JAGab69929 / SR 8606103307 The PCI FDDI driver did not always send a message up to the network management layers on availability of the FDDI ring (LINK UP) and the unavailability of the FDDI ring (LINK DOWN) during cable disconnects/reconnects and during card resets. Thus the network management entities would not get to know when there was a change in the status of the FDDI ring. Resolution: The PCI FDDI driver has been fixed to send the LINK UP and LINK DOWN events on cable disconnects/reconnects and card resets. 5. CR JAGad00071 / SR 8606130913 PCI FDDI driver did not have the enhancements required to direct packets destined for the SAPs (Service Access Points) used by the Lan Monitor product. Hence the Lan Monitor product would not function as expected. Resolution: The PCI FDDI driver has been enhanced to support SAPs used by the Lan Monitor product. 6. CR JAGad08463 / SR 8606139173 This defect could occur when the PCI FDDI product from the June 2000 application release was installed on a system which had a stream bound to a non-SNAP SAP (i.e. the SAP value is not 0xAA) sending packets destined to itself (loopback) in a sustained manner. When the stream/application was closed, there could be a time window during which there were packets destined for the now closed stream. In order to decide on a valid bound stream for the packet, the driver would attempt to parse unaligned fields in the packets resulting in a 'data memory protection fault' panic. Resolution: The PCI FDDI driver now performs additional validations for non-SNAP packets to avoid accessing unaligned fields in the packet and drops the packet if the stream it was destined for could not be found. PHNE_19541: 1. System hangs due to negative spinlock depth. PHNE_18735: 1. Driver does not loopback outbound packets when in promiscuous mode. Resolution: If the global flag, lanc_outbound_promisc_flag, is set, the driver will loopback outbound packets to an unbound promiscuous stream. 2. The man page for fddipciadmin was not in versions B.10.20.01 or B.10.20.03 of the driver. Resolution: The man page has been added to this patch. 3. Under heavy inbound traffic, the IP receive queue may get full and attempts by the driver to queue the messages onto the queue could fail. These messages were not getting freed, resulting in a system memory leak. Resolution: The driver has been changed to detect such conditions and free the message buffers. 4. Under heavy outbound traffic, the driver may hold a spinlock for a significant amount of time, while it processes all pending transmit completions. Resolution: The driver has been changed to process fewer transmit completions on receiving a transmit completion interrupt, thereby cutting down on time the spinlock is held. PHNE_16361: 1. The data which is sent to the driver from UDP can be in a format which requires additional transmit headers to be prepended. The headers were not properly prepended to the data. SR: 8606182683 8606146764 8606139173 8606130913 8606103307 8606104480 4701400804 Patch Files: /usr/conf/lib/libfddi4.a /usr/share/man/man1m.Z/fddipciadmin.1m what(1) Output: /usr/conf/lib/libfddi4.a: PCI FDDI B.10.20.14 PHNE_23509 $Date: 2001/03/19 14: 55:36 $ /usr/share/man/man1m.Z/fddipciadmin.1m: None cksum(1) Output: 1936018967 86100 /usr/conf/lib/libfddi4.a 241060808 4427 /usr/share/man/man1m.Z/fddipciadmin.1m Patch Conflicts: None Patch Dependencies: s700: 10.20: PHNE_21215 s800: 10.20: PHNE_21216 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_16361 PHNE_18735 PHNE_19541 PHNE_20875 Equivalent Patches: None Patch Package Size: 150 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_23509 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_23509.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_23509. 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_23509.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_23509.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None