Patch Name: PHNE_28799 Patch Description: s700_800 11.11 100BT unified driver cumulative patch Creation Date: 03/02/21 Post Date: 03/06/04 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: Networking.100BT-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHNE_27400: OTHER HANG HPMC PHNE_26703: PANIC MEMORY_LEAK HANG PHNE_23465: PANIC MEMORY_LEAK HANG PHNE_22727: PANIC Category Tags: defect_repair enhancement general_release critical panic halts_system memory_leak manual_dependencies Path Name: /hp-ux_patches/s700_800/11.X/PHNE_28799 Symptoms: PHNE_28799: ( SR:8606296220 CR:JAGae59818 ) The 11.11 A3738A 100Base-T interface/driver (RJ-45) doesn't link to some switch blades when both the NIC and switch port have the speed/duplex fixed at 100FD. ( SR:8606294286 CR:JAGae57993 ) Interface hang on V2500 and V2600 machines due to wsio_remap() failure. PHNE_27400: ( SR:8606292836 CR:JAGae56588 ) Support for btlan tunables missing ( SR:8606268699 CR:JAGae32937 ) System may hang under low memory conditions and heavy network traffic. ( SR:8606279162 CR:JAGae43218 ) btlan reports mapping failure instead of memory allocation failure in the nettl log file ( SR:8606279010 CR:JAGae43066 ) driver updates outbound octets on the core interface even if the cable is disconnected. ( SR:8606280953 CR:JAGae44920 ) Specifying a non-existent btlan interface in the hpbtlanconf file causes incorrect error messages to be logged in /etc/rc.log during bootup. ( SR:8606243120 CR:JAGae10354 ) Under some rare timing conditions, a Online card replacement event may trigger an HPMC. ( SR:8606287203 CR:JAGae51142 ) Under some conditions, driver may cause an HPMC. ( SR:8606262443 CR:JAGae26778 ) 100BT port hang with APA configured PHNE_26703: ( SR:8606179782 CR:JAGad49004 ) The choices given when changing speeds for fiber cards is incorrect. The error message is not consistent with the response gives: lanadmin -X 10fd 6 WARNING: an incorrect setting could cause serious network problems!!! ERROR Setting 10FD is unsupported. lanadmin -x anything ntimes PPA gives the speed and duplexity as a response for each word after -x and before the PPA. ( SR:8606245870 CR:JAGae12329 ) Number outbound non-unicast packets equals the number of outbound unicast packets when broadcast ping is done. ( SR:8606255144 CR:JAGae19471 ) lanadmin -x fails for users with no root privilege. PHNE_23465: ( SR:8606226447 CR:JAGad95516 ) Overrun and Missed Frame counters are not accurate. ( SR:8606222706 CR:JAGad91818 ) 100BT driver did not handle the mapping of I/O virtual addresses correctly. ( SR:8606196763 CR:JAGad65961 ) Driver does not update the outbound octets for loop back packets. ( SR:8606180226 CR:JAGad49447 ) PCI 100BASE-FX sets AUTONEG by default. ( SR:8606183086 CR:JAGad52302 ) Connecting AUI via adapter to Procurve switch causes a system hang. ( SR:8606220769 CR:JAGad89905 ) APA link aggregation went down when Cisco 5505 switch was used. ( SR:8606197035 CR:JAGad66231 ) The driver's lanadmin libraries have their setuid bit set. ( SR:8606217890 CR:JAGad87040 ) Zero length message blocks cause I/O virtual address leak. ( SR:8606227907 CR:JAGad96966 ) The BNC port of A3738 card does not work. ( SR:8606185233 CR:JAGad54435 ) Memory leaks in btlan driver. ( SR:8606235210 CR:JAGae04387 ) Lanadmin statistics for Inbound discard and outbound nonunicast are same. ( SR:8606185127 CR:JAGad54329 ) Hpbtlanconf file accepts 100FD and auto_on for fiber connection. ( SR:8606217261 CR:JAGad86415 ) Lanadmin -x returns 255. ( SR:8606213070 CR:JAGad82257 ) Sometimes, interface hangs during heavy traffic. ( SR:8606181369 CR:JAGad50586 ) Btlan driver double-counted inbound packets. ( SR:8606226481 CR:JAGad95550 ) Unified 100BT LAN driver does not support VLAN functionality. ( SR:8606215383 CR:JAGad84570 ) Changing MTU does not propagate to IP. PHNE_22727: ( SR:8606170110 CR:JAGad39374 ) Online card replacement may cause system panic under some conditions. ( SR:8606167262 CR:JAGad36548 ) 100BT HSC-FX cards (Product numbers: J3514A#002 and J3516A#002) do not work. The card is claimed, but the link does not come up. lanadmin show the link status as "NO LINK" ( SR:8606134762 CR:JAGad03897 ) Driver was randomly missing packets. ( SR:8606171347 CR:JAGad40611 ) A false link down event is reported by the driver. ( SR:8606170105 CR:JAGad39369 ) If a 100BT card whose config parameters have been added to the config file, is replaced with a different card (like FDDI or Gigabit) and if the machine is rebooted and if the same instance number is assigned to the replaced card, then the 100BT startup script tries to set the configuration file parameters on that card. ( SR:8606170913 CR:JAGad40177 ) System panic on V-class machine due to EPIC channel error. ( SR:8606164461 CR:JAGad33760 ) 100BT card hangs occasionally. The card is unable to receive any frames. ( SR:8606173492 CR:JAGad42750 ) Interface name is not present in the interface description string displayed in the lanadmin display statistics option. Defect Description: PHNE_28799: ( SR:8606296220 CR:JAGae59818 ) Because some switch blades takes longer than expected to establish link, the first attempt at detecting link up on the RJ45 port will fail, and the btlan driver will go and detect link on AUI and BNC and assert reset on the RJ45 port. Because the driver failed to clear the reset the RJ45 port, subsequent link detection will not be able to detect link up on the RJ45 port. Resolution: Clear the reset on the RJ45 port when the driver is detecting link up on the AUI or BNC port. ( SR:8606294286 CR:JAGae57993 ) Wsio_remap() failed because the drivers buffer replenishment policy conflicts with the policy found with the V2500 and V2600. Due to the conflict, the driver cannot obtain any new buffers to remap. Resolution: Change the driver replenishment policy on V2500 and V2600 as to avoid the conflict. PHNE_27400: ( SR:8606292836 CR:JAGae56588 ) The btlan driver tunables don't work. The driver and lanadmin allow setting of the tunables. But the driver doesn't program the card with the tunables Resolution: Driver has been modified to program the card using the tunables. ( SR:8606268699 CR:JAGae32937 ) When a system is handling heavy network traffic and if there is also memory pressure, the driver replenish can fail and can trigger an interrupt flood which causes the system to hang. Resolution: The driver sends a receive poll command to the card only if atleast one buffer was replenished. This prevents the interrupt flood condition. ( SR:8606279162 CR:JAGae43218 ) When the driver encounters a memory allocation failure, it was incorrectly reporting the failure as a mapping failure in the nettl log file Resolution: driver has been modified to report memory failures correctly. ( SR:8606279010 CR:JAGae43066 ) Driver was updating the outbound octets counter on the core interface even when the cable was disconnected. Resolution: Driver has been modified to update the outbound octet counter only when the link is up. ( SR:8606280953 CR:JAGae44920 ) The btlan startup script (/sbin/rc2.d/S333hpbtlan) had a problem with the way it was searching for btlan interfaces; specifying parameters for a non-existent interface in the config file was causing an incorrect error message to be logged in /etc/rc.log during bootup. Resolution: Modify the startup script to do more extensive checks for validating the interface name. ( SR:8606243120 CR:JAGae10354 ) Driver had a small timing window when an Online card replacement event occurs while the card was transmitting/ receiving frames, which could cause a HPMC. Resolution: Driver has been modified to handle this case correctly. ( SR:8606287203 CR:JAGae51142 ) In some situations, the driver was posting an incorrect buffer address to the card causing a HPMC. Resolution: Driver has been modified to handle this case correctly. ( SR:8606262443 CR:JAGae26778 ) The driver reset call was hanging due to a deadlock condition. Resolution: The driver code has been modified to execute the reset from a different thread. PHNE_26703: ( SR:8606179782 CR:JAGad49004 ) In lanadmin, some of the information displays are inconsistent or confusing. Resolution: Solution is to change how the information is presented to the user. ( SR:8606245870 CR:JAGae12329 ) When doing broadcast ping, the number of outbound unicast packet is always equal to the outbound non-unicast packet count. Resolution: The correct behavior is that only the outbound non-unicast packet count is incremented when broadcast ping is done. ( SR:8606255144 CR:JAGae19471 ) Users with no root privilege will always get "NO LINK" when invoking lanadmin -x Resolution: The correct display is always the current link status. PHNE_23465: ( SR:8606226447 CR:JAGad95516 ) The driver checks the card's register only when no frames have been received for 3 seconds. So when there is sustained heavy traffic, the counters continue to show zero. When the traffic is stopped, they start showing a very high value. This is not correct. Resolution: The correct way to do this is to check the register every 3 seconds irrespective of whether frames were received or not. ( SR:8606222706 CR:JAGad91818 ) The driver mapped the second buffer even if the mapping for the first one failed. Due to the way unmapping was implemented, there was an IOVA leak. Resolution: The driver checks for the return value of the first map call and returns if that fails. ( SR:8606196763 CR:JAGad65961 ) When loopback frames are sent to the driver, it does not update outbound octet count. Resolution: The code was modifed to update outbound octet count correctly. ( SR:8606180226 CR:JAGad49447 ) The btlan driver was set to MII_AUTOSENSE by default for fiber cards and hence went to auto negotiation. Resolution: The driver is now set to 100HD manual mode at start. ( SR:8606183086 CR:JAGad52302 ) The interrupt service routine calls reset routine, but reset routine starts with waiting for interrupt service routine to finish. Resolution: The solution is to call reset routine asynchronously in the interrupt service routine for an AUI cable disconnect. ( SR:8606220769 CR:JAGad89905 ) The driver always overwrites source address in a packet which causes trunking to fail. Resolution: Driver will overwrite source address in a packet only when the upper layer indicates it is necessary. ( SR:8606197035 CR:JAGad66231 ) The driver's 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 are set in the psf file of a patch. ( SR:8606217890 CR:JAGad87040 ) A macro in the driver breaks when there is zero length message block. Resolution: Driver now takes out zero length message blocks before processing any outbound packets. ( SR:8606227907 CR:JAGad96966 ) The driver did not do loopback setting correctly during reset. Resolution: The routine that does AUI/BNC loopback setting during reset was modified to fix the problem. ( SR:8606185233 CR:JAGad54435 ) It appears that the driver versions after 1.52 have this problem. For packets received with errors,the driver might overwrite the buffer pointer, causing a leak. Resolution: An 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. So the fix is to check this variable only when processing frames received without errors. ( SR:8606235210 CR:JAGae04387 ) 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. ( SR:8606185127 CR:JAGad54329 ) The btlan driver for fiber card took 100FD and AUTO_ON as valid settings since the driver was set to MII_AUTOSENSE by default and no checks were being made for the 100FD setting. Resolution: The driver was modified to only accept 100HD as a valid setting for the fiber cards. ( SR:8606217261 CR:JAGad86415 ) 100BT driver's user-space library routine returns -1. Resolution: Modify the routine to return 0 appropriately. ( SR:8606213070 CR:JAGad82257 ) A window was identified in the driver's interrupt service routine where the driver acknowledges an interrupt without processing the received frames. Resolution: The code was changed to unconditionally attempt to process receive frames. ( SR:8606181369 CR:JAGad50586 ) The driver counted inbound octets twice. Resolution: The code was modified to count inbound octets only once. ( SR:8606226481 CR:JAGad95550 ) VLAN functionality was not implemented in the 100BT driver. Resolution: Implement VLAN functionality in the driver. ( SR:8606215383 CR:JAGad84570 ) The driver did not notify upper layer after MTU was changed. Resolution: The driver notifies upper layer after MTU is changed. PHNE_22727: ( SR:8606170110 CR:JAGad39374 ) In the offline ISR, the driver was attempting to read a register even if the driver state was DOWN. During Online card replacement, if this interrupt is shared with another device, the register read might cause a system panic. Resolution: The register write in the offline ISR has been removed. If the driver state is down, the offline ISR simply returns. ( SR:8606167262 CR:JAGad36548 ) The HSC-FX cards have a PHY. The driver was not handling this case correctly. Resolution: The driver code has been changed appropriately to handle this. ( SR:8606134762 CR: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. ( SR:8606171347 CR:JAGad40611 ) The LXT970 PHY chip was reporting a false link down event if the symbol error rate exceeded a certain limit. Resolution: The LXT970 PHY can be programmed in one of the following modes to report a link down event: 1) When the symbol error rate exceeds a certain limit. 2) If the PHY loses scrambler lock. By default, the LXT970 PHY operates in mode 1 whereas the DP83840 PHY always operates in mode 2. Now, the LXT970 PHY is also programmed to operate in mode 2; in this mode the PHY does not report false link down events. However, any symbol errors detected while receiving frames are handled by the MAC and reported as FCS errors. ( SR:8606170105 CR:JAGad39369 ) 100BT startup script was not verifying the card type before issuing a lanadmin command. Resolution: The startup script has been modified to check the card type before issuing a lanadmin command. If the driver that has claimed that card is not btlan, the lanadmin command is not issued. ( SR:8606170913 CR:JAGad40177 ) Whenever the driver writes data to EPIC shared memory it must read it back in order to get the shared memory updated correctly. This was not being done correctly in the inbound path. Resolution: Driver code has been changed to read back data written to the EPIC shared memory in the inbound path. ( SR:8606164461 CR:JAGad33760 ) When a very large number of receive errors occur, the driver will lose descriptors. Eventually, the card stops receiving frames. Resolution: The driver now handles receiving errors correctly. ( SR:8606173492 CR:JAGad42750 ) The driver was not writing the interface name in the mib ifDesc string. Resolution: The driver now adds the interface name to the ifDesc string. Enhancement: No (superseded patches contained enhancements) PHNE_28799: Enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 8606134762 8606164461 8606167262 8606170105 8606170110 8606170913 8606171347 8606173492 8606179782 8606180226 8606181369 8606183086 8606185127 8606185233 8606196763 8606197035 8606213070 8606215383 8606217261 8606217890 8606220769 8606222706 8606226447 8606226481 8606227907 8606235210 8606243120 8606245870 8606255144 8606262443 8606268699 8606279010 8606279162 8606280953 8606287203 8606292836 8606296220 8606294286 Patch Files: Networking.100BT-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /sbin/init.d/hpbtlan /sbin/rc2.d/S333hpbtlan /usr/contrib/bin/100btinfo /usr/lib/lanadmin/libdsbtlan.1 /usr/lib/lanadmin/libdsbtlan.sl /usr/lib/nls/msg/C/fmtbtlan.cat /usr/sbin/hpbtlan_init Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libbtlan.a OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libdebug.a(btlan_q4.o) Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libbtlan.a OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libdebug.a(btlan_q4.o) what(1) Output: Networking.100BT-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /sbin/init.d/hpbtlan: hpbtlan $Revision: i80/r11.11/4 $ $Date: 2003/02/06 15:45:35 $ /sbin/rc2.d/S333hpbtlan: hpbtlan $Revision: i80/r11.11/4 $ $Date: 2003/02/06 15:45:35 $ /usr/contrib/bin/100btinfo: None /usr/lib/lanadmin/libdsbtlan.1: dsbtlan.c $Date: 2003/03/20 08:30:00 $Revision: r11. 11/10 PATCH_11.11 (PHNE_28799) /usr/lib/lanadmin/libdsbtlan.sl: dsbtlan.c $Date: 2003/03/20 08:30:00 $Revision: r11. 11/10 PATCH_11.11 (PHNE_28799) /usr/lib/nls/msg/C/fmtbtlan.cat: None /usr/sbin/hpbtlan_init: hpbtlan_init $Revision: i80/r11.11/3 $ $Date: 2002/ 03/20 07:35:15 $ Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libbtlan.a: 100BT : btlan.c Unified Driver (PHNE_28799) $Revisio n: r11.11/16 $Date: 2003/03/18 13:45:00 $Revision: libbtlan.a: Thu Mar 20 08:50:09 PST 2003 $ OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libdebug.a(btlan_q4.o): 100BT : btlan_q4.c $Revision: r11.11/2 $Date: 2003/0 3/18 13:35:00 Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libbtlan.a: 100BT : btlan.c Unified Driver (PHNE_28799) $Revisio n: r11.11/16 $Date: 2003/03/18 13:45:00 $Revision: libbtlan.a: Thu Mar 20 08:52:41 PST 2003 $ OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libdebug.a(btlan_q4.o): 100BT : btlan_q4.c $Revision: r11.11/2 $Date: 2003/0 3/18 13:35:00 cksum(1) Output: Networking.100BT-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 1297900422 10127 /sbin/init.d/hpbtlan 1297900422 10127 /sbin/rc2.d/S333hpbtlan 2206495747 36346 /usr/contrib/bin/100btinfo 3740358780 28672 /usr/lib/lanadmin/libdsbtlan.1 3740358780 28672 /usr/lib/lanadmin/libdsbtlan.sl 1477811285 9599 /usr/lib/nls/msg/C/fmtbtlan.cat 1729594181 5416 /usr/sbin/hpbtlan_init Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 3697974939 82186 /usr/conf/lib/libbtlan.a OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 1553368911 230208 /usr/conf/lib/libdebug.a(btlan_q4.o) Networking.100BT-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 3881961022 138854 /usr/conf/lib/libbtlan.a OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 3205538752 285728 /usr/conf/lib/libdebug.a(btlan_q4.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: In order to use basic VLAN functionality on the 100BT Ethernet product, PHNE_25388 (or its superseding patch) must be installed in addition to PHNE_23465 (or its superseding patch). Supersedes: PHNE_27400 PHNE_26703 PHNE_23465 PHNE_22727 Equivalent Patches: None Patch Package Size: 870 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_28799 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_28799.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_28799. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false 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_28799.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_28799.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_28799.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None