Patch Name: PHNE_19946 Patch Description: s700_800 10.20 HSC 100BT lan cumulative patch Creation Date: 99/11/08 Post Date: 99/12/08 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: J3621AA_APZ B.10.20.00 J3621AA_APZ B.10.20.01 J3621AA_APZ B.10.20.02 J3621AA_APZ B.10.20.03 J3621AA_APZ B.10.20.04 J3620BA B.10.20.04 J3623BA B.10.20.04 J3620BA B.10.20.05 J3623BA B.10.20.05 J3620BA B.10.20.06 J3623BA B.10.20.06 J3621BA B.10.20.07 J3623BA B.10.20.07 J3514A B.10.20.07 J3515A B.10.20.07 J3516A B.10.20.07 J3850A B.10.20.07 Filesets: 100BT-GSC-KRN.100BT-KRN,B.10.20.00 100BT-GSC-KRN.100BT-KRN,B.10.20.01 100BT-GSC-KRN.100BT-KRN,B.10.20.02 100BT-GSC-KRN.100BT-KRN,B.10.20.03 100BT-GSC-KRN.100BT-KRN,B.10.20.04 100BT-GSC-KRN.100BT-KRN,B.10.20.05 100BT-GSC-KRN.100BT-KRN,B.10.20.06 100BT-GSC-KRN.100BT-KRN,B.10.20.07 100BT-GSC-RUN.100BT-RUN,B.10.20.00 100BT-GSC-RUN.100BT-RUN,B.10.20.01 100BT-GSC-RUN.100BT-RUN,B.10.20.02 100BT-GSC-RUN.100BT-RUN,B.10.20.03 100BT-GSC-RUN.100BT-RUN,B.10.20.04 100BT-GSC-RUN.100BT-RUN,B.10.20.05 100BT-GSC-RUN.100BT-RUN,B.10.20.06 100BT-GSC-RUN.100BT-RUN,B.10.20.07 100BT-GSC-RUN.100BT-INIT,B.10.20.00 100BT-GSC-RUN.100BT-INIT,B.10.20.01 100BT-GSC-RUN.100BT-INIT,B.10.20.02 100BT-GSC-RUN.100BT-INIT,B.10.20.03 100BT-GSC-RUN.100BT-INIT,B.10.20.04 100BT-GSC-RUN.100BT-INIT,B.10.20.05 100BT-GSC-RUN.100BT-INIT,B.10.20.06 100BT-GSC-RUN.100BT-INIT,B.10.20.07 100BT-GSC-FMT.100BT-FORMAT,B.10.20.00 100BT-GSC-FMT.100BT-FORMAT,B.10.20.01 100BT-GSC-FMT.100BT-FORMAT,B.10.20.02 100BT-GSC-FMT.100BT-FORMAT,B.10.20.03 100BT-GSC-FMT.100BT-FORMAT,B.10.20.04 100BT-GSC-FMT.100BT-FORMAT,B.10.20.05 100BT-GSC-FMT.100BT-FORMAT,B.10.20.06 100BT-GSC-FMT.100BT-FORMAT,B.10.20.07 Automatic Reboot?: Yes Status: General Superseded Critical: No (superseded patches were critical) PHNE_18762: PANIC PHNE_15151: PANIC PHNE_12400: PANIC PHNE_11229: OTHER Changing link address with 100bt makes ARP fail. Path Name: /hp-ux_patches/s700_800/10.X/PHNE_19946 Symptoms: PHNE_19946: 1. 100BT-FX EGSC card does not recover from link disconnect & re-connect on D-class machine. 2. HSC 100BT reports bad stats via netstat and lanadmin. 3. Nettl displays incorrect informative message about speed and mode. 4. ER: Display capabilities of the switch after auto negotiation completion. PHNE_18762: 1. SAM does not support altering speed (10 or 100Mbps) and duplex mode (half or full) settings on the interface. 2. 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. 3. 'lanadmin -x [nmid]' display does not indicate whether the card is running in auto-negotiation or manual mode. 4. lanadmin cannot alter the Maximum Transmission Unit (MTU) size value of the interface. 5. Applications do not receive outbound traffic from the interface when they enable promiscuous mode on the interface. 6. Spinlock deadlock panics. 7. Unable to set the card to auto-negotiation mode by assigning "auto_on" to SPEED variable in /etc/rc.config.d /hpgsc100conf. 8. The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hpgsc100conf. PHNE_15781: The following symptoms are seen for PHNE_15781: 1. Some sequences of packets will cause poor receive performance. PHNE_15636: The following symptoms are seen for PHNE_15636: 1. After being configured down, the driver continues to pass received packets to the IP layer. PHNE_15151: The following symptoms are seen for PHNE_15151: 1. After a cable disconnection, the operation status in the lan MIB was not correctly updated. 2. System panic in the btlan4 driver code. 3. The driver will receive packets without regard to the encapsulation type(s) configured on the interface. This can cause the link to be unable to transmit if ARP packets update the ARP cache with incorrect encapsulations. PHNE_14974: The following symptoms are seen for PHNE_14974: 1. The driver is unable to receive IP Multicast frames. 2. After a cable disconnect or a lanadmin reset, IP Multicast frames are no longer received. PHNE_13940: The following symptoms are seen for PHNE_13940: 1. When the AUI port is connected lanscan still shows the hardware state as being down. 2. Driver reports receive errors under heavy traffic 3. Manual Speed and Duplex configuration is now enabled. PHNE_12400: The following symptoms are seen for PHNE_12400: 1. System panic in the btlan4 driver code. 2. HSC 100BT port hung. PHNE_11229: The following symptoms are seen for PHNE_11229. 1. Changing the link address with 100bt makes ARP fail. 2. GSC 100BT driver reports incorrect statistics. 3. Lanadmin shows incorrect (bogus) value for outbound queue on HSC 100BT. 4. Receive performance will not be as good as with this patch. 5. FTP hangs. 6. Problem with 10BT and noheartbeats. 7. Low performance due to IEEE SNAP packets not being logged and going through expensive lanc_logging. 8. Cable disconnect/reconnect interrupts are not always acknowledged. 9. DHCP does not work correctly with GSC 100BT. Defect Description: PHNE_19946: 1. JAGab77511: After cable is re-connected the driver detects cable connection and issues an internal reset command. The internal loop back fails during reset. This causes an endless loop of resets being done to recover from this error. The internal loop back fails due to Rx interrupt not being delivered to the driver during reset. Resolution: The driver recovers from this error condition in dma timeout routine by checking the owner bit for the descriptor and calls offline isr handling routine if driver owns the descriptor. 2. 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. 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. PHNE_18762: 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. 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. 3. 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. 4. 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. 5. 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. 6. The spinlock deadlock was actually a timeout on holding the spinlock. It was caused by 100BT driver holding the spinlock too long while trying to free a corrupted transmitted buffer. The corrupted transmitted buffer could be the result of passing the same map_context to multiple calls of the mapping function. Resolution: Instead of passing the same map_context to multiple calls of the mapping function, 100BT driver should pass one unique map_context to each call of the mapping function. 7. /sbin/init.d/hpgsc100 incorrectly compares "autoneg_on" with SPEED variable set in /etc/rc.config.d/hpgsc100. Resolution: /sbin/init.d/hpgsc100 should compares "auto_on", not "autoneg_on", with SPEED variable. 8. The array of link configuration data in /etc/rc.config.d/hpgsc100conf was non-sequential which the startup script (/sbin/init.d/hpgsc100) cannot handle correctly. Resolution: The startup script (/sbin/init.d/hpgsc100) is modified to skip over the missing indices in the array and work through all that are provided. PHNE_15781: The following defect descriptions are for PHNE_15781: 1. When the card receives a packet, it will only trigger an interrupt if there is not already a receive interrupt outstanding. There was a small timing window in the driver where the driver had finished processing the received packets, but had not informed the card to generate a new interrupt. This caused the last packet to be delayed. PHNE_15636: The following defect descriptions are for PHNE_15636: 1. The driver's fast path receive code did not check the correct flags before passing the packet up the network stack. PHNE_15151: The following defect descriptions are for PHNE_15151: 1. The 100BaseT driver was updating the interface state before it was informing the MIB code that the cable had been disconnected. Since the interface state was already marked down, the MIB code believed no state change had occurred and did not update the operation status. 2. The 100BaseT driver was releasing the buffers after the upper network layer had completed processing. If the upper network layer encountered a pullup error, it would free the buffer itself. The btlan4 driver would then free the buffer again causing a panic. 3. The 100BaseT driver passed received packets to the upper layer without first checking if the encapsulation was configured on the interface. PHNE_14974: The following defect descriptions are for PHNE_14974: 1. After the IP layer joined an IP multicast group, the driver did not correctly update the fast ethernet card's address list. Without the correct address list on the card, IP multicast frames were not received. 2. After a lanadmin reset or a cable disconnect, the card's address list is reset. The driver failed to update the card with the correct address list. This prevented IP multicast frames from being received. PHNE_13940: The following defect descriptions are for PHNE_13940: 1. The AUI port was not being properly initialized. 2. Modified receive path to ensure efficient processing under heavy inbound traffic PHNE_12400: The following defect descriptions are for PHNE_12400: 1. Under heavy inbound traffic for a long period of time, btlan4 driver will eventually exhaust all the receive descriptors and it can cause port hang or system panic. PHNE_11229: The following defect descriptions are for PHNE_11229. 1. Changing link address with 100bt makes ARP fail. 2. GSC 100BT driver reports incorrect statistics. 3. Lanadmin shows incorrect (bogus) value for outbound queue on HSC 100BT. 4. Modified receive path to increase performance. Use schednetisrmq instead of the older schednetisrsq. 5. Transmit and Receive data structures were not properly zero'ed out during initialization. This caused FTP's to occasionally hang the system. 6. Noheartbeat errors must be disabled when in 10BT mode. Otherwise, output packet counts will not be properly updated. 7. Low performance due to IEEE SNAP packets not being logged and going through expensive lanc_logging. 8. Transmit and Receive interrupts are not acknowledged during cable disconnect/reconnect conditions. 9. Fixed bug in BTLAN3_DO_FAST_IN which failed to check the strip header flag. This caused the GSC 100BT driver to not work correctly with DHCP. SR: 8606109120 1653292060 8606107322 8606103478 1653271023 4701430132 1653279240 1653286500 5003432179 1653292441 4701355917 1653232306 4701365569 5003405175 5003405225 1653240432 5003398388 5003407841 5003415356 5003416685 5003413443 1653265959 5003407973 1653254599 5003403618 5003419374 Patch Files: /usr/conf/lib/libbtlan4.a /usr/conf/lib/btlan4_dbg.o /usr/newconfig/etc/rc.config.d/hpgsc100conf /sbin/init.d/hpgsc100 /usr/sbin/hpgsc100_init /usr/lib/lanadmin/libdsbtlan4.sl /usr/lib/lanscan/libpebtlan4.sl /usr/lib/nls/msg/C/dsbtlan4.cat /usr/lib/nls/msg/C/pebtlan4.cat /usr/lib/libfmtbtlan4.sl /usr/lib/nls/msg/C/fmtbtlan4.cat what(1) Output: /usr/conf/lib/libbtlan4.a: btlan4.c GSC 100BT Cleanup PHNE_19946(10.20) PHNE_20 420(11.00) $Revision: 1.45 $ $Date: 99/11/18 14:21:43 $ /usr/conf/lib/btlan4_dbg.o: None /usr/newconfig/etc/rc.config.d/hpgsc100conf: hpGSC100conf $Revision: 1.4 $ $Date: 99/07/14 13:29: 49 $ /sbin/init.d/hpgsc100: hpgsc100 $Revision: 1.9 $ $Date: 99/09/20 10:41:30 $ /usr/sbin/hpgsc100_init: hpgsc100_init $Revision: 1.7 $ $Date: 99/07/16 11:2 7:52 $ /usr/lib/lanadmin/libdsbtlan4.sl: libdsbtlan4.sl: Version: B.10.20 $Date: 99/07/13 12: 07:14 $ /usr/lib/lanscan/libpebtlan4.sl: libpebtlan4.sl: Version: B.10.20 $Date: 99/06/08 20: 09:38 $ /usr/lib/nls/msg/C/dsbtlan4.cat: None /usr/lib/nls/msg/C/pebtlan4.cat: None /usr/lib/libfmtbtlan4.sl: BTLAN4: Version: B.10.20 $Date: 99/11/17 10:02 :06 $ /usr/lib/nls/msg/C/fmtbtlan4.cat: None cksum(1) Output: 3297489823 69000 /usr/conf/lib/libbtlan4.a 77159151 163252 /usr/conf/lib/btlan4_dbg.o 699998837 1142 /usr/newconfig/etc/rc.config.d/hpgsc100conf 2796687833 6704 /sbin/init.d/hpgsc100 2710659864 6217 /usr/sbin/hpgsc100_init 3445076643 20480 /usr/lib/lanadmin/libdsbtlan4.sl 1272955719 12288 /usr/lib/lanscan/libpebtlan4.sl 108149 3117 /usr/lib/nls/msg/C/dsbtlan4.cat 3231781941 114 /usr/lib/nls/msg/C/pebtlan4.cat 3895748352 98784 /usr/lib/libfmtbtlan4.sl 1226002833 14129 /usr/lib/nls/msg/C/fmtbtlan4.cat Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_11351 PHNE_18173 s800: 10.20: PHKL_11352 PHNE_18924 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_11229 PHNE_12400 PHNE_13940 PHNE_14974 PHNE_15151 PHNE_15636 PHNE_15781 PHNE_18762 Equivalent Patches: None Patch Package Size: 460 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_19946 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_19946.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_19946. 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_19946.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_19946.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: To trace the outbound packets, please do the following to turn on a global promiscuous switch before running the promiscuous applications like snoop or tcpdump: adb -w /stand/vmunix /dev/mem lanc_outbound_promisc_flag/W 1 (adb will echo the result showing that the flag has been changed) $quit A new version of file /etc/rc.config.d/hpgsc100conf is delivered as part of this patch, as /usr/newconfig/etc/rc.config.d/hpgsc100conf file. If you have edited /etc/rc.config.d/hpgsc100conf file, you may want to merge these files. To set speed and duplex via SAM, users need to install SAM patch: PHCO_18217. You also need to merge /usr/newconfig/etc/rc.config.d/hpgsc100conf file with /etc/rc.config.d/hpgsc100conf. ifconfig down/up is needed while changing MTU using lanamdin -[M|R] options.