Patch Name: PHNE_27127 Patch Description: s700_800 11.04 (VVOS) 4 port PCI 100BASE-T cumulative patch Creation Date: 02/05/17 Post Date: 02/06/25 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: J4254AA B.11.04.00 B.11.04.01 B.11.04.02 A5506A B.11.04.00 B.11.04.01 B.11.04.02 A5506B B.11.04.02 Filesets: 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_64,v=HP 100BASE-T.100BT-KRN,fr=B.11.04.01,fa=HP-UX_B.11.04_64,v=HP 100BASE-T.100BT-KRN,fr=B.11.04.02,fa=HP-UX_B.11.04_64,v=HP 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_32,v=HP 100BASE-T.100BT-KRN,fr=B.11.04.01,fa=HP-UX_B.11.04_32,v=HP 100BASE-T.100BT-KRN,fr=B.11.04.02,fa=HP-UX_B.11.04_32,v=HP 100BASE-T.100BT-RUN,fr=B.11.04.00,fa=HP-UX_B.11.04_32/64,v=HP 100BASE-T.100BT-RUN,fr=B.11.04.01,fa=HP-UX_B.11.04_32/64,v=HP 100BASE-T.100BT-RUN,fr=B.11.04.02,fa=HP-UX_B.11.04_32/64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_27127: PANIC MEMORY_LEAK HANG Based on HP-UX Patch PHNE_26271: HANG Based on HP-UX Patch PHNE_24007: PANIC MEMORY_LEAK PHNE_25073: PANIC MEMORY_LEAK Based on PHNE_24007: PANIC MEMORY_LEAK PHNE_22982: PANIC Based on HP-UX Patch PHNE_22728: PANIC Based on HP-UX Patch PHNE_21887: PANIC Based on HP-UX Patch PHNE_20423: PANIC Category Tags: defect_repair hardware_enablement enhancement general_release critical panic halts_system memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHNE_27127 Symptoms: PHNE_27127: Re-package HP-UX patch PHNE_26271 to VVOS Based on HP-UX patch PHNE_26271: 1. Interface hangs sometimes during heavy traffic. 2. Zero length messages (mblks) cause IO resources shortage (IOVA leak), this will lead to system hang. 3. ER : for troubleshooting, save in internal driver structure CPU that will be interrupted to handle inbound packets for this interface. 4. Lanadmin statistics for Inbound discard and outbound nonunicast packets are the same. 5. 100BASE-T.100BT-RUN fails swverify PHNE_25073: Port HP-UX patch PHNE_24007 (4 port PCI 100BT) to VVOS. Based on HP-UX patch PHNE_24007: 1. Link not coming up if switch is rebooted when speed/duplex value at both ends are set manually. 2. System panics with Data Page Fault. 3. Memory leak in btlan3-6 and btlan drivers. 4. Setuid bit is set for lanadmin library. PHNE_22982: Ported HP-UX patch PHNE_22728 to VVOS Based on HP-UX patch PHNE_22728: 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. 5. 4 port card fails to reconnect at 100 Full Duplex if a cable of bad length (35 - 41m) is connected. 6. A false link down event is reported by the driver. Based on HP-UX patch PHNE_21887: 1. lanadmin -A to change MAC address causes panic: wait_for_lock 2. Performance degradation & higher CPU utilization with the 4 port cards. Based on HP-UX patch PHNE_20423: 1. Start up scripts fail if there are 10 or more lan cards. 2. btlan interface hangs after 36 hours of testing. 3. Nettl displays incorrect informative message about speed and mode. 4. ER: Display capabilities of the switch after auto negotiation completion. 5. The driver panics with "spinlock held too long" message. 6. The driver startup script hpbtlan does not set ppa and fails to configure the card. 7. SAM does not support altering speed (10 or 100Mbps) and duplex mode (half or full) settings on the interface. 8. 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. 9. 'lanadmin -x [ppa]' display does not indicate whether the card is running in auto-negotiation or manual mode. 10.Lanadmin cannot alter the Maximum Transmission Unit (MTU) size value of the interface. 11.Applications do not receive outbound traffic from the interface when they enable promiscuous mode on the interface. 12.Outbound queue length can become negative after clearing net statistics using lanadmin. 13.Collisions are not detected by btlan driver. 14.The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hpbtlanconf. 15.Wrong message is logged in dmesg as "Unable to setup Read / write prefetch lengths". 16.lanadmin statistics are not updated & cleared correctly. Defect Description: PHNE_27127: Re-package HP-UX patch PHNE_26271 to VVOS Based on HP-UX patch PHNE_26271: 1. JAGad82257: The 21143 chip will not re-generate an interrupt for a condition if the driver acknowledges that condition without doing the processing. There is a window in the driver interrupt routine where it acknowledges an interrupt without processing received frames. Most of the time this will not be a problem, because the next received frame will anyway generate another interrupt and the driver would process all the frames. The problem happens if the frame skipped happens to be the last frame in the descriptor ring. Since the ring is now full, the card will never ever generate another received frame interrupt and will keep generating only receive descriptor unavailable interrupts. So this will happen only with heavy traffic. Resolution: The driver calls the receive processing function unconditionally each time the interrupt service routine is invoked. 2. JAGad87040: The driver was not handling the zero length mblks. Resolution: The driver now handles the zero length mblks. 3. JAGad49787: The CPU to which our interrupts are tied is not known currently by looking at the ift structure. Resolution: This information is now stored in the eim field of the ift structure. 4. JAGae06924: Btlan driver always duplicates broadcast packets and sends them back to DLPI. DLPI drops the packets if it is not expecting the pakets to be looped back. Resolution: The driver sends broadcast packets back to DLPI only when a flag in message block indicates so. 5. JAGae06717: In certain installation scenarios the btlan entry is missing from the /etc/nettlgen.conf file. Resolution: The configure script for the patch now adds the btlan entry to the /etc/nettlgen.conf file if it does not exist. PHNE_25073: Port HP-UX patch PHNE_24007 (4 port PCI 100BT) to VVOS. Based on HP-UX patch PHNE_24007: 1. JAGad54220: Link not coming up if switch is rebooted when speed/duplex value at both ends are set manually. Driver was clearing all the bits in the BMCR if the speed/duplex value were set manually. So the card was getting set to 10HD and since the other end is also manually set, the link was not coming up. Resolution: Now the driver sets the speed and duplex value in the BMCR based on the value set by the user. 2. JAGad08759: System panics with Data Page Fault. wsio_allocate_shared_memory() call made to allocate and map the transmit descriptor ring seems to have returned NULL. The driver was not checking the return value of the call and was calling bzero to init the memory allocated and this causes a panic. Stack Trace : panic+0x14 report_trap_or_int_and_panic+0x80 trap+0xdb8 nokgdb+0x8 bzero_prefetch_sl_method+0x18 _btlan3_init+0x8c isc_table_traverse+0x70 wsio_init_end+0x10 io_virt_mode_config+0xe8 main+0x128 $vstart+0x48 istackatbase+0x84 Resolution: The fix is to check the return value of all memory allocation and mapping calls in the driver init function. 3. JAGad54435: Memory leak in btlan3-6 and btlan drivers. The memory leak in 2k byte bucket is tied to inbound errors and an uninitialized local variable. That uninitialized local variable in the receive path resulted in memory leak sometimes when processing frames received with errors. This variable is required only in the case of normal frames. Resolution: The fix is to check this variable only when processing frames received without errors. 4. JAGad66231: btlan3-6 and btlan drivers lanadmin libraries have their setuid bit set. Setting this bit is not required and may cause problems that are not foreseen. Resolution: The file permissions have been modified so the setuid bit is not set. PHNE_22982: Ported HP-UX patch PHNE_22728 to VVOS Based on HP-UX patch PHNE_22728: 1. JAGad03897: When there is a transient overload, the 100BT NIC runs out of receive descriptors and drops packets. Typically this is caused by bursty traffic where several hundred packets are sent to the NIC within a few millisecs. Resolution: The number of receive descriptors have been doubled. 2. JAGad24136: The data portion of the receive buffers was not cacheline aligned. Stack trace follows, A. Original Dump: freeb_pullupmsg+0x2c4 freeb+0xe4c freemsg+0x18 ip_rput_local+0x1b80 ip_rput+0x40c putnext+0x228 hp_dlpi_unitdata_in+0x58 chp_dlpi_mblk_intr_put+0x17c streams_put_release+0x398 hp_dlpi_mblk_intr+0x7c lanc_ether_ics+0x230 btlan_receive_frame+0x550 btlan_isr+0x120 dino_isr+0x184 up_ext_interrupt+0x1e0 ivti_patch_to_nop2+0x0 idle+0x5ac swidle_exit+0x0 B. jaguar: freeb_pullupmsg+0x2c4 freeb+0xe4c soreceive+0x12cc recvit+0x1d4 recvfrom+0x94 syscall+0x758 $syscallrtn+0x0 C. kabalah: freeb+0xb64 freemsg+0x18 lanc_802_2_ics+0x130 btlan_receive_frame+0x590 btlan_isr+0x120 dino_isr+0x184 mp_ext_interrupt+0x378 ivti_patch_to_nop3+0x0 idle+0x598 swidle_exit+0x0 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. 5. JAGad41701: The national phy chip sets itself to autonegotiate after reset at cable reconnect time irrespective of the mode the interface is set to. If the cable length happens to fall between the 35 to 41 meter range, auto negotiation fails and the card fails to establish a valid link. Resolution: The national phy chip was set to autonegotiate after reset only if the interface is set to auto-negotiation mode. Auto-negotiation by the PHY chip is turned off in all other modes. 6. JAGad40611: The LXT970 chip is reporting a false link down event if the symbol error rate increases over a certain limit. Resolution: There are two modes in which the LXT970 phy can be programmed to report a link down event. 1) When the symbol error rate increases over a certain limit. 2) If the phy loses the scrambler lock. By default, the LXT970 phy was programmed to operate in mode 1 where as the DP83840 phy operates in mode 2. This fix sets the LXT970 phy to operate in mode 2. As in the case of the DP83840 phy, the fix allows the MAC to check the symbol errors and report them as FCS errors. The LXT970 phy operating in mode 2 will not report false link down events. Based on HP-UX patch PHNE_21887: 1. 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. 2. JAGad04850: Non-optimal cache alignment value in driver caused performance degradation & higher CPU utilization. Resolution: The cache alignment value is now set to the cache line size of the system. Based on HP-UX patch PHNE_20423: 1. JAGac16214: The hpbtlan script greps for a particular PPA, 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 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, with out 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. JAGab81818: The nettl logging message about speed and mode displays wrong values. Resolution: The driver is modified to display correct speed and mode. 4. 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. 5. JAGab71953: The driver holds the lock while resetting transmit list which sometimes could take long time. Resolution: The driver resets the transmit list without acquiring the lock. 6.JAGab63191: The problem occurs due to an error in hpbtlan startup script. Resolution: The error is fixed in hpbtlan start up script. 7.JAGab64699: No supporting ioctls were implemented in the driver for SAM to use. Resolution: Implemented the required ioctls that the corresponding code in SAM uses. 8.JAGab64974: 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. 9.JAGab64383: 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. 10.JAGab43887: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. 11.JAGaa22977: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. 12.JAGaa95732:The driver used to erroneously zero the outbound queue length when clear stat command was issued. Later when a queued packet was transmitted successfully the driver decrements the queue length by one, thus making the counter negative. Resolution: The code is modified, not to zero out the out bound queue length when net statistics clear command is issued. 13.JAGab64688:The checking for collisions in the driver was incorrect.The driver used to check for error summary bit only. This causes collision detection to go un-noticed. Resolution: The driver is modified to check for any and all the error conditions that can occur during transmission. 14.JAGab70552:The array of link configuration data in /etc/rc.config.d/hpbtlanconf was non-sequential which the startup script (/sbin/init.d/hpbtlan) could not handle correctly. Resolution: The startup script (/sbin/init.d/hpbtlan) is modified to skip over the missing indices in the array and work through all that are provided. 15.JAGab72844: message logged Unable to setup Read / write prefetch lengths. Resolution: Now the message is no more logged. 16.JAGab70255: Driver reports bad statistics via netstat and lanadmin. Resolution: The driver is modified to update all the statistics that are supported by the card. SR: 8606213070 8606217890 8606180566 8606237881 8606237679 8606185018 8606139460 8606185233 8606197035 8606171347 8606172441 8606164461 8606159065 8606154819 8606134762 8606136416 8606135717 8606113954 8606113907 8606109120 1653292060 8606101629 4701430140 5003467001 1653286500 5003432179 4701414177 8606103616 8606105029 8606103478 Patch Files: 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_64,v=HP: 100BASE-T.100BT-KRN,fr=B.11.04.01,fa=HP-UX_B.11.04_64,v=HP: 100BASE-T.100BT-KRN,fr=B.11.04.02,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libbtlan.a /usr/conf/lib/btlan_q4.o 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_32,v=HP: 100BASE-T.100BT-KRN,fr=B.11.04.01,fa=HP-UX_B.11.04_32,v=HP: 100BASE-T.100BT-KRN,fr=B.11.04.02,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libbtlan.a /usr/conf/lib/btlan_q4.o 100BASE-T.100BT-RUN,fr=B.11.04.00,fa=HP-UX_B.11.04_32/64, v=HP: 100BASE-T.100BT-RUN,fr=B.11.04.01,fa=HP-UX_B.11.04_32/64, v=HP: 100BASE-T.100BT-RUN,fr=B.11.04.02,fa=HP-UX_B.11.04_32/64, v=HP: /usr/lib/lanadmin/libdsbtlan.1 /usr/lib/lanadmin/libdsbtlan.sl /usr/lib/libfmtbtlan.1 /usr/lib/libfmtbtlan.sl /usr/lib/nls/msg/C/fmtbtlan.cat /usr/sbin/hpbtlan_init /sbin/init.d/hpbtlan /sbin/rc2.d/S333hpbtlan /usr/lib/nls/msg/C/dsbtlan.cat /usr/newconfig/etc/rc.config.d/hpbtlanconf what(1) Output: 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libbtlan.a: 100BT : btlan.c PCI 4 PORT 100BASE-T PHNE_26271 B.11 .00.05 $Revision: 1.79 $ $Date: 2002/02/07 1 1:50:00 $ /usr/conf/lib/btlan_q4.o: None 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libbtlan.a: 100BT : btlan.c PCI 4 PORT 100BASE-T PHNE_26271 B.11 .00.05 $Revision: 1.79 $ $Date: 2002/02/07 1 1:50:00 $ /usr/conf/lib/btlan_q4.o: None 100BASE-T.100BT-RUN,fr=B.11.04.00,fa=HP-UX_B.11.04_32/64, v=HP: /usr/lib/lanadmin/libdsbtlan.1: libdsbtlan.sl: Version: B.11.00 $Date: 2002/02/12 16 :06:18 $ /usr/lib/lanadmin/libdsbtlan.sl: libdsbtlan.sl: Version: B.11.00 $Date: 2002/02/12 16 :06:18 $ /usr/lib/nls/msg/C/dsbtlan.cat: None /usr/lib/libfmtbtlan.1: BTLAN: Version: B.11.00 $Date: 2000/01/18 15:5 9:37 $ /usr/lib/libfmtbtlan.sl: BTLAN: Version: B.11.00 $Date: 2000/01/18 15:5 9:37 $ /usr/lib/nls/msg/C/fmtbtlan.cat: None /usr/sbin/hpbtlan_init: hpbtlan_init $Revision: 1.1 $ $Date: 99/12/20 10:39 :34 $ /sbin/init.d/hpbtlan: hpbtlan $Revision: 1.2 $ $Date: 2000/09/13 09:53:32 $ /sbin/rc2.d/S333hpbtlan: hpbtlan $Revision: 1.2 $ $Date: 2000/09/13 09:53:32 $ /usr/newconfig/etc/rc.config.d/hpbtlanconf: hpbtlanconf $Revision: 1.2 $ $Date: 2000/03/02 10:14 :44 $ cksum(1) Output: 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_64,v=HP: 460031262 121948 /usr/conf/lib/libbtlan.a 855653427 227200 /usr/conf/lib/btlan_q4.o 100BASE-T.100BT-KRN,fr=B.11.04.00,fa=HP-UX_B.11.04_32,v=HP: 4270672561 71052 /usr/conf/lib/libbtlan.a 1315113270 183296 /usr/conf/lib/btlan_q4.o 100BASE-T.100BT-RUN,fr=B.11.04.00,fa=HP-UX_B.11.04_32/64, v=HP: 1331271793 28672 /usr/lib/lanadmin/libdsbtlan.1 1331271793 28672 /usr/lib/lanadmin/libdsbtlan.sl 2624246182 3996 /usr/lib/nls/msg/C/dsbtlan.cat 1349363113 12288 /usr/lib/libfmtbtlan.1 1349363113 12288 /usr/lib/libfmtbtlan.sl 3467707698 14341 /usr/lib/nls/msg/C/fmtbtlan.cat 799983117 5994 /usr/sbin/hpbtlan_init 904187253 8249 /sbin/init.d/hpbtlan 904187253 8249 /sbin/rc2.d/S333hpbtlan 2567160831 1270 /usr/newconfig/etc/rc.config.d/hpbtlanconf Patch Conflicts: None Patch Dependencies: s700: 11.04: PHNE_21156 PHNE_18560 s800: 11.04: PHNE_21156 PHNE_18560 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_22982 PHNE_25073 Equivalent Patches: PHNE_26271: s700: 11.00 s800: 11.00 Patch Package Size: 720 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_27127 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_27127.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_27127. 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_27127.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_27127.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_27127.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_27127.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: A new version of file /etc/rc.config.d/hpbtlanconf is delivered as part of this patch, as /usr/newconfig/etc/rc.config.d/hpbtlanconf file. If you have edited /etc/rc.config.d/hpbtlanconf file, you may want to merge these files. To set speed and duplex via SAM, users need to install SAM patch: PHCO_19497 ifconfig down/up is needed while changing MTU using lanadmin -[M|R] options.