Patch Name: PHNE_22984 Patch Description: s700_800 11.04 (VVOS) PCI 100B(Tx/Fx) cumulative patch Creation Date: 00/12/20 Post Date: 01/02/28 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: Networking.SPP100BT-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Networking.SPP100BT-INIT,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Networking.SPP100BT64SLIB,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Networking.SPP100BT-MIN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_22984: PANIC Based on PHNE_22245: PANIC Based on PHNE_21220: PANIC Based on PHNE_19094: PANIC OTHER Broken functionalities Based on PHNE_18668: PANIC Based on PHNE_17661: PANIC Based on PHNE_16930: PANIC Based on PHNE_15944: PANIC Based on PHNE_14259: PANIC Based on PHNE_13822: PANIC Based on PHNE_13310: PANIC Category Tags: defect_repair enhancement general_release critical panic Path Name: /hp-ux_patches/s700_800/11.X/PHNE_22984 Symptoms: PHNE_22984: port HP-UX patch PHNE_22245 (PCI 100B(Tx/Fx)) to VVOS. NOTE: VVOS does not support HP_APA LAN_MONITOR. Based on HP-UX patch PHNE_22245: 1. 100BT is randomly missing packets. 2. System panics due to instruction page fault 3. 'netfmt' on 100BT traces causes SIGSEGV while running HP_APA LAN_MONITOR 4. 100BT card hangs occasionally. The card is unable to receive any frames. Based on HP-UX patch PHNE_21220: 1. Start up scripts fail if there are 10 or more lan cards. 2. PCI/HSC 100BT interface hangs after 36 hours of testing. 3. PCI/HSC 100BT reports bad stats via netstat and lanadmin. 4. Nettl displays incorrect informative message about speed and mode. 5. ER: Display capabilities of the switch after auto negotiation completion. 6. ER: btlan6 does not report auto-negotiation when using lanadmin -x command. 7. btlan6 driver message is not clear in nettl log about cable disconnect. 8. lanadmin -A to change MAC address causes panic: wait_for_lock PHNE_20329: Repackage HP-UX patch PHNE_19094 (PCI 100BT) for VVOS. NOTE: VVOS does not support multicast addressing. Based on HP-UX patch PHNE_19094: 1. SAM does not support altering speed (10 or 100Mbps) and duplex mode (half or full) settings on the interface. 2. Cable disconnect message is displayed even when there is really no cable disconnected. 3. Applications (including lanadmin) receive 10 for 10Mbps or 100 for 100Mbps for the speed value in the ifSpeed field of the mib structure. lanadmin therefore displays 10 or 100 for the interface (link) speed. 4. 'lanadmin -x [ppa]' display does not indicate whether the card is running in the auto-negotiation or manual mode. 5. lanadmin cannot alter the Maximum Transmission Unit (MTU) size value of the interface. 6. Applications do not receive outbound traffic from the interface when they enable promiscuous mode on the interface. 7. Applications joining multicast address groups before cable disconnect are not able to transmit or receive traffic to and from these groups after cable reconnect. 8. After cable reconnect on the FX card: a. Applications (including lanadmin) receive LINKDOWN for the link status value in the ifOperStatus field of the mib structure. lanadmin therefore displays DOWN for the "Operation Status". b. Applications fail to establish traffic on the interface. 9. System panic due to data page fault. 10. The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hpsppci100conf. Based on HP-UX patch PHNE_18668: 1. Driver stops receiving incoming frames. 2. "Spinlock held too long" panic with debug kernel. Based on HP-UX patch PHNE_17661: 1. EPIC Read Channel Error causes system panic with a tombstone message similar to: panic: Channel error in Driver btlan6, discovered by Epic 0, Device 2 Error Config: 2aabffeb:e8aaab01 Error Cause: 00000000:00000000 Error Info: 80172000:00000006 2. System panic due to data page fault 3. System hang or system panic due to depletion of memory resources. 4. Incorrect or arbitrary link configuration after cable disconnect at either ends. Based on HP-UX patch PHNE_16930: 1. AUI connection does not work with an AUI cable between the card and the transceiver. 2. 100BASE-FX card not claimed. 3. System panics with the following message "panic Channel error in Driver btlan6, discovered by Epic 0, Device 2". 4. System panics with message: "panic: Spinlock held too long" Based on HP-UX patch PHNE_16374: 1.The statistics count for transmission collision is never updated. Based on HP-UX patch PHNE_15944: 1. The driver does not have the new template file for hpsppci100conf. 2. Lanadmin -A hangs. 3. Log messages in nettl are not accurate. 4. The driver does not support HP-APA(trunking) product. 5. The system panics in timeout function during heavy traffic. Based on HP-UX patch PHNE_15865: 1. Link hangs after adding many multicast addresses. 2. The driver does not support manual configuration for speed and mode. 3. The driver does not respond after you cycle power on Switch 2000. Based on HP-UX patch PHNE_15277: 1. Link hangs after adding many multicast addresses. 2. The driver does not support manual configuration for speed and mode. 3. The driver does not respond after you cycle power on Switch 2000. Based on HP-UX patch PHNE_14259: 1. The driver does not support setting of duplex mode across reboots. 2. Startup script is unable to execute lanadmin correctly. 3. The driver displays btlan3_abnormal_isr message when receiving long packet. 4. The driver cannot coexist with other drivers based on the same code. 5. The driver cannot be installed if there is no wsio driver in the kernel. 6. Lanadmin is unable to open catalog file. 7. The system panics with ep_error_intr_handler. Based on HP-UX patch PHNE_13822: 1. The driver does not support the SAP promiscuous mode. 2. The system panics when the SAP promiscuous mode is enabled on a PCI 100BT interface with heavy traffic. Based on HP-UX patch PHNE_13310: 1. The system panics with ep_error_intr_handler with heavy network traffic. 2. The PCI 100BT link hangs. Defect Description: PHNE_22984: port HP-UX patch PHNE_22245 (PCI 100B(Tx/Fx)) to VVOS. NOTE: VVOS does not support HP_APA LAN_MONITOR. Based on HP-UX patch PHNE_22245: 1. JAGad03897: If 100BT NIC does not have access to an available receive buffer the card will drop packets. Resolution: The driver doubles the amount of receive buffers available for the card. 2. JAGad24136: The data portion of the receive buffers was not cacheline aligned. Resolution: The 100BT driver now ensures the receive buffers data is cacheline aligned. 3. JAGad28394: Wrong number of arguments are passed to a function in the formatter. Resolution: The correct number of arguments are now passed to the function in the formatter. 4. JAGad33760: When a very high number of receive errors occur the driver will lose descriptors. Eventually the card will no longer be able to receive frames. Resolution: The driver now handles receiving errors correctly. Based on HP-UX patch PHNE_21220: 1. JAGac16214: The hpsppci100 script greps for a particular NMID, but this will match for multiple instances if there are more than 10 cards.(eg, the script greps for lan1, this will match lan1, lan10, lan11.. etc). Resolution: The script is modified so that it will match for only one instance. The script now greps for "lan ". 2. JAGac12427: The transmit engine of btlan hangs under following condition - Whenever the driver receives a packet to transmit containing more than 6 mbufs, it tries to coalesce this packet into one. If the memory allocation fails, then this packet is queued for transmit as it is, without coalescing. This can stall the transmit engine if the number of mbufs queued needs more transmit descriptors than what the driver has. Resolution: The driver drops the packet in this condition. 3. JAGab70255: The driver is not updating all the statistics correctly. Resolution: The driver is modified to update all the statistics that are supported by the card. 4. JAGab81818: The nettl logging message about speed and mode displays wrong values. Resolution: The driver is modified to display correct speed and mode. 5. JAGab64404(ER): The driver was not logging the abilities of the remote partner after auto negotiation. Resolution: The driver is modified to log the capabilities of remote partner after auto negotiation completion. 6. JAGad01576(ER): The driver was not displaying the auto-negotiation/manual status. Resolution: Added code to display auto-negotiation/manual mode status to lanadmin command. 7. JAGac42831: The nettl catalog file contained ambiguous wording about card instance. Resolution: catalog file is modified to contain "Crd In#" along with existing slot information. 8. JAGad05541: The problem is due to waking up a dlpi thread while holding spinlock on ICS. Resolution: The driver now releases spinlock when it wakes up dlpi thread in transmit completion function. PHNE_20329: Repackage HP-UX patch PHNE_19094 (PCI 100BT) for VVOS. NOTE: VVOS does not support multicast addressing. Based on HP-UX patch PHNE_19094: 1. No supporting ioctls were implemented in the driver for SAM to use. Resolution: Implemented the required ioctls that the corresponding code in SAM uses. 2. Upon receiving the fatal bus error (FBE) interrupt from the card, the driver would incorrectly process it as if the cable was disconnected. Resolution: Modified code to process the FBE interrupt by doing soft reset of the card AND putting the driver state to DOWN. 3. The driver stores 10 for 10Mbps and 100 for 100Mbps in its local mib related data structures. Resolution: Modified driver code to store 10000000 for 10Mbps and 100000000 for 100Mbps in its local mib data structures. 4. The driver did not provide ioctls for lanadmin to use to obtain the information about the mode (autonegotiation or manual) mode in which it was operating. Resolution: The driver implemented the new ioctl for obtaining the above mode information. 5. The driver did not implement ioctl for lanadmin to use to alter the MTU size value on the interface. Resolution: The driver implemented the new ioctl for changing the MTU size value for the interface. 6. The driver did not implement appropriate functionality which would return a copy of the transmitted packet to the upper protocols. Resolution: The driver implemented appropriate functionality which would return a copy of the transmitted packet to the upper protocols. 7. The driver rejected requests from the IP layer to rejoin multicast address groups because it notified the upper protocols about the cable reconnect before it entered into the correct state. Resolution: The driver entered into the correct state after cable reconnect. 8. The driver fails to invoke lanc_mib_event with NMV_LINKUP event upon cable reconnection. Resolution: The driver invoked lanc_mib_event with NMV_LINKUP event event upon cable reconnection. 9. The driver did not check for the NULL value for the mapped IO virtual address of the base of the card's registers space and used it to access a card register at offset 0x48. Resolution: A check is put in the driver's routine so that for the NULL value, the driver returns to the caller without claiming the card. 10. The array of link configuration data in /etc/rc.config.d/hpsppci100conf was non-sequential which the startup script (/sbin/init.d/hpsppci100) cannot handle correctly. Resolution: The startup script (/sbin/init.d/hpsppci100) is modified to skip over the missing indices in the array and work through all that are provided. Based on HP-UX patch PHNE_18668: 1. The receive engine of the driver was down. This problem was introduced after cache line alignment was changed from 8-longword boundary to 32-longword boundary. Resolution: Rolled back the cache line alignment changes. 2. Buffer refill logic in the driver could result in driver being in the interrupt service routine(ISR) for a long time which resulted in this panic. Resolution: Fixed the buffer refill path to avoid being in ISR for a long time period. Based on HP-UX patch PHNE_17661: 1. The race condition between the write and read to the same memory location on the EPIC shared memory issued by the driver code running on two different processors violated the expected serialization from using the spinlock. Resolution: Flush the write immediately using a dummy read to the same location. 2. A null pointer was dereferenced. Resolution: Check whether buffer allocation routine returned a valid non-null buffer pointer before attempting to use it. 3. Buffer memory leak in the receive path in promiscuous multicast mode. Resolution: Free the receive buffer if there is no match found during address lookup. 4. "Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip was not set when initiating autonegotiation. Resolution: Set the "Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip when initiating autonegotiation. Based on HP-UX patch PHNE_16930: 1. BNC was not powered down when using AUI, which caused signal interference and hence signal attenuation on the AUI connection. 2. The postinstall script was adding the driver entry to /stand/system only if ioscan(1M) output indicated that PCI 100BASE-TX card was installed. In installations with only 100BASE-FX the postinstall script did not add the driver entry to the /stand/system file. 3. Incorrect usage of init_map_context(CDIO3) in the driver. 4. Many (unrelated) receive buffers were incorrectly mapped with a single mapping context. Based on HP-UX patch PHNE_16374: 1. The transmission collision count was never updated. Based on HP-UX patch PHNE_15944: 1. The previous patches did not ship the new template file. 2. The data type of the value returned by the function that processes lanadmin -A request was incorrect. 3. The messages in the driver's catalogue file were not accurate. 4. The enhancement to support HP-APA product was not implemented. 5. The driver did not prevent concurrent access to the transmit descriptors. Based on HP-UX patch PHNE_15865: 1. The driver did not manipulate multicast transmit buffers and descriptors correctly. 2. The driver did not implement manual configuration. 3. The interface state was marked down if the driver did not detect a valid connection. Based on HP-UX patch PHNE_15277: 1. The driver did not manipulate multicast transmit buffers and descriptors correctly. 2. The driver did not implement manual configuration. 3. The interface state was marked down if the driver did not detect a valid connection. Based on HP-UX patch PHNE_14259: 1. Startup script and configuration file had inconsistent variables. 2. Startup script did not use PPA for B.11.00. 3. The driver did not handle long packet errors properly. 4. The driver used a global variable causing conflict with other drivers based on the same code. 5. The driver's master file needed to have dependence on wsio driver. 6. Lanadmin did catalog file open without a closing call. 7. The driver unmapped the entries that had never been mapped. Based on HP-UX patch PHNE_13822: 1. The SAP promiscuous mode was not implemented. 2. Length adjustment for packets smaller than 60 was incorrect. Based on HP-UX patch PHNE_13310: 1. Mapped entries are not properly unmapped in the reset path. 2. The outbound path may encounter DMA timeouts. 3. The driver may continuously reset the card when DMA timeout errors occur. 4. Counters in the receive path were not adjusted correctly. 5. The driver has not enabled the parity error and PCI system error reporting. SR: 8606164461 8606159065 8606154819 8606134762 8606135717 8606136416 8606125888 8606132427 8606113954 8606113907 8606103478 8606109120 1653292060 4701430124 5003467019 5003432179 5003465328 1653283077 4701400895 4701380733 1653260265 1653259556 5003413526 1653258533 4701383406 4701380790 Patch Files: Networking.SPP100BT-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libbtlan6.a /usr/conf/master.d/btlan6 /usr/conf/lib/btlan6_newdbg.o Networking.SPP100BT-INIT,fr=B.11.04,fa=HP-UX_B.11.04_64, v=HP: /sbin/init.d/hpsppci100 /usr/newconfig/etc/rc.config.d/hpsppci100conf /usr/sbin/hpsppci100_init Networking.SPP100BT64SLIB,fr=B.11.04,fa=HP-UX_B.11.04_64, v=HP: /usr/lib/lanadmin/libdsbtlan6.1 /usr/lib/libfmbtlan6.1 Networking.SPP100BT-MIN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/lib/nls/msg/C/fmbtlan6.cat /usr/lib/nls/msg/C/dsbtlan6.cat OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(btlan6_dbg.o) what(1) Output: Networking.SPP100BT-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libbtlan6.a: 100BT : btlan6.c PCI 100BT Cleanup PHNE_22245 B.11.0 0.13 $Revision: 1.74 $ $Date: 2000/11/07 17: 00:48 $ /usr/conf/master.d/btlan6: btlan6 PHNE_21220 $Revision: 1.1.118.10 $ /usr/conf/lib/btlan6_newdbg.o: None Networking.SPP100BT-INIT,fr=B.11.04,fa=HP-UX_B.11.04_64, v=HP: /sbin/init.d/hpsppci100: hpsppci100 /usr/newconfig/etc/rc.config.d/hpsppci100conf: hpsppci100conf /usr/sbin/hpsppci100_init: hpsppci100_init Networking.SPP100BT64SLIB,fr=B.11.04,fa=HP-UX_B.11.04_64, v=HP: /usr/lib/lanadmin/libdsbtlan6.1: libdsbtlan6.sl: Version: B.11.00 $Date: 2000/08/31 1 6:06:18 $ /usr/lib/libfmbtlan6.1: BTLAN6: Version: B.11.00 $Date: 2000/03/03 16: 25:47 $ Networking.SPP100BT-MIN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/lib/nls/msg/C/fmbtlan6.cat: None /usr/lib/nls/msg/C/dsbtlan6.cat: None OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(btlan6_dbg.o): None cksum(1) Output: Networking.SPP100BT-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 2533729784 112632 /usr/conf/lib/libbtlan6.a 4216352110 3878 /usr/conf/master.d/btlan6 682859995 226928 /usr/conf/lib/btlan6_newdbg.o Networking.SPP100BT-INIT,fr=B.11.04,fa=HP-UX_B.11.04_64, v=HP: 1418141818 8283 /sbin/init.d/hpsppci100 3174317822 1358 /usr/newconfig/etc/rc.config.d/ hpsppci100conf 1745197678 5459 /usr/sbin/hpsppci100_init Networking.SPP100BT64SLIB,fr=B.11.04,fa=HP-UX_B.11.04_64, v=HP: 3943022840 28672 /usr/lib/lanadmin/libdsbtlan6.1 1652904783 12288 /usr/lib/libfmbtlan6.1 Networking.SPP100BT-MIN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 3020725085 14712 /usr/lib/nls/msg/C/fmbtlan6.cat 2624246182 3996 /usr/lib/nls/msg/C/dsbtlan6.cat OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 470882558 224840 /usr/conf/lib/libhp-ux.a(btlan6_dbg.o) Patch Conflicts: None Patch Dependencies: s700: 11.04: PHNE_18560 PHNE_21156 s800: 11.04: PHNE_18560 PHNE_21156 Hardware Dependencies: 9000/800/V2200 9000/800/V2250 9000/800/V2500 9000/800/N4000 Other Dependencies: None Supersedes: PHNE_20329 Equivalent Patches: PHNE_22245: s700: 11.00 s800: 11.00 Patch Package Size: 690 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_22984 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_22984.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_22984. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHNE_22984.depot WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHNE_22984.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_22984.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_22984.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: I. When modifying the MTU value of an interface, please follow the following steps: 1. Bring the interface down with 'ifconfig' 2. Modify the MTU value 3. Bring the interface up with 'ifconfig' II. Install SAM patch PHCO_22107 before using SAM to modify the speed and the duplex modes. A new version of file /etc/rc.config.d/hpsppci100conf is delivered as part of this patch, as /usr/newconfig/etc/rc.config.d/hpsppci100conf file. If you have edited /etc/rc.config.d/hpsppci100conf file, you may want to merge these files.