Patch Name: PHNE_19199 Patch Description: s700_800 10.20 EISA 100BT cumulative patch Creation Date: 99/07/15 Post Date: 99/12/29 Repost: 00/03/28 PHNE_19199 was reposted to add important reconfiguration information to the Special Installation Instructions. The PHNE_19199.depot was re-packaged to include the additional Special Installation Instructions in the README file. However, the files installed by the patch were not changed, thus there is no need to reinstall the patch on systems that already have it installed. Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: EISA100BT B.10.20.01 B.10.20.02 B.10.20.03 B.10.20.04 Filesets: 100BT-EISA-KRN.100BT-KRN,B.10.20.01,B.10.20.02,B.10.20.03 100BT-EISA-KRN.100BT-KRN,B.10.20.04 100BT-EISA-RUN.100BT-INIT,B.10.20.01,B.10.20.02,B.10.20.03 100BT-EISA-RUN.100BT-INIT,B.10.20.04 100BT-EISA-RUN.100BT-RUN,B.10.20.01,B.10.20.02,B.10.20.03 100BT-EISA-RUN.100BT-RUN,B.10.20.04 100BT-EISA-FMT.100BT-FORMAT,B.10.20.01,B.10.20.02,B.10.20.03 100BT-EISA-FMT.100BT-FORMAT,B.10.20.04 Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHNE_19199: PANIC PHNE_16153: PANIC PHNE_13721: OTHER Multicast & Promiscuous mode not working PHNE_11507: OTHER MAC Address change results in card not working PHNE_10145: OTHER ServiceGuard fails over EISA 100bt Path Name: /hp-ux_patches/s700_800/10.X/PHNE_19199 Symptoms: PHNE_19199: 1. EISA100BT sends corrupted MAC address for DLPI test-xid requests. -- JAGaa41098 2. linkloop to self doesn't return error when cable is not connected. -- JAGab03857 3. IP multicast datagrams looped back in the driver. -- JAGaa41968 4. EISA100BT driver doesn't set ifOper status correctly in the MIB structure. -- JAGaa21367 5. Some required EISA100BT structures are not available on Q4. -- JAGaa21642 6. Automatic speed configuration doesn't work for EISA100BT. -- JAGab46349 7. EISA100BT start-up doesn't give a warning when set to full duplex. -- JAGaa21652 8. netstat -I is not working due to non-standard interface naming convention. -- JAGab64848 9. Setting the speed is not possible in hpeisabtconf file. -- JAGab65054 10. nettl traces are not formatted correctly. -- JAGab64926 11. Minimum frame length in 10BT mode should be 60 bytes instead of 64 bytes. -- JAGab64392 12. ER: Allow the MTU size configuration using lanadmin. -- JAGab64413 13. ER: IOCTL support is required for speed and duplex setting using SAM. -- JAGab64697 14. EISA100BT generates duplicate packets under heavy load. -- JAGab64911 15. Service Guard doesn't work with new interface naming convention. -- JAGab64435 16. Interface state stays UP after Service Guard's local switching. -- JAGab64418 17. Startup script does not allow for non-sequential arrays. -- JAGab70575 18. Panic with 'Already Owns this Spinlock' on EISA 100BT. -- JAGab68637 19. "lanadmin -S 0" command hangs. -- JAGab72670 20. Panic during DLPI multicast testing. -- JAGab84308 21. DLPI primitive to set physical address succeeds even for invalid values -- JAGab84309 22. Driver does not return error for invalid multicast addresses. -- JAGab84311 PHNE_16402: 1. Performance degradation. PHNE_16153: 1. EISA 100BASE-T card does not come up on 715/100/E workstations. 2. When there is heavy network traffic, EISA 100BASE-T card does not come up at boot time. 3. EISA 100BASE-T panics on D and C class with Data Page fault under heavy load. PHNE_13721: 1. SAP promiscuous mode and layer2 multicast are not supported. 2. SNAP LLC encapsulation is not supported. 3. When a request for factory MAC address is issued, the EISA 100BT driver returns the current MAC address instead. 4. Initialization scripts to alter the MAC address or the duplex mode do not function correctly. PHNE_11507: The following symptoms correspond to the descriptions in the defect descriptions fields for PHNE_11507: Changing the MAC address on EISA 100BT card prevents further correct operation of the card. PHNE_10145: The following symptoms correspond to the descriptions in the defect descriptions fields for PHNE_10145: Failover does not work correctly in ServiceGuard. Defect Description: PHNE_19199: 1. An upper layer didn't set the source MAC address while passing the packet to the driver and driver expected MAC address to be set by upper layer. Resolution: Modified transmit path to copy source MAC address for outbound packets. 2. Driver was not checking interface status for loopback packets. Resolution: Code is modified to check interface status before looping back the packet. 3. Driver didn't check whether it needs to loop back the multicast packet to the local host. Resolution: The code was modified to check whether driver needs to loop back the multicast packet. 4. EISA100BT driver was not consistent in setting ifOper Status in the MIB with respect to lanscan. Resolution: Modified code to have consistency for lanadmin & lanscan states. 5. Some required EISA100BT structures are not available in debug file. Resolution: Added the necessary structures that are required for debugging. 6. EISA100BT start-up script was not passing the speed value to the 'lanadmin' command. Resolution: Start-up script was modified to pass the speed value to the 'lanadmin' command. 7. EISA100BT start-up script didn't check for full duplex mode setting. Resolution: Added a checking for invalid speed values. 8. netstat was not able to recognize EISA100BT interface due to non-standard naming convention. Resolution: Modified EISA100BT interface to standard naming convention. 9. hpeisabtconf file didn't support SPEED variable. Resolution: Added SPEED variable in hpeisabtconf file. 10. EISA100BT subsystem formatter was not able to format the packets properly. Resolution: Rewrote the subsystem formatter to fix formatting problems. 11. EISA100BT driver supported a minimum packet length of 64 bytes in 10BT mode instead of the standard 60 bytes. Resolution: Modified the driver to support a minimum packet length of 60 bytes instead of 64 bytes. 12. ER: Allow the MTU size configuration using lanadmin. Resolution: Added new IOCTL requests to support set/reset MTU values. 13. ER: IOCTL support is required for speed and duplex setting using SAM. Resolution: Modified driver to support additional ioctl requests that are required for SAM support. 14. EISA100BT card was sending duplicate packets under heavy UDP traffic. Resolution: Modified transmit path to flush/purge the data in the cache and synchronized shared memory access between card and memory. 15. While changing the driver to new naming convention, the ifDescr variable was not modified to reflect the same. Resolution: Modified the ifDescr variable to use the new naming convention. 16. Interface state used to stay UP after IP address was moved to a different interface and cable was reconnected. Resolution: Modified code to store previous interface state before bringing the interface DOWN. The saved interface state will be checked to bring interface UP. 17. Startup script was not able to recognize interface entries in non-sequential order in file /etc/rc.config.d/hpeisabtconf Resolution: Startup script is modified to process all interface entries in file /etc/rc.config.d/hpeisabtconf, even if they are in non-sequential order. 18. The panic happens when the driver receives a SET_SPEED ioctl when there are pending inbound packets. Resolution: Modified the code to release lock and reclaim it again after processing pending inbound packets. 19. Driver used to return negative value for invalid speed values, due to which DLPI sleeps, and hence the lanadmin command used to hang. Resolution: The driver now returns EINVAL to DLPI in case of an invalid speed value. 20. The routine that deletes multicast addresses from the driver's table was stepping out of the table boundary and hence causing memory corruption. Resolution: This routine is changed to prevent memory corruption. 21. The DLPI primitive to set physical address succeeds even for invalid values (all bits 0's or 1's). Resolution: A check has been added for these invalid addresses. 22. Driver returns success for invalid multicast hardware addresses which do not have the least significant bit of the first byte set. Resolution: A check is now made to ensure that this bit is set. PHNE_16402: 1. A busy-wait in the performance path caused the performance degradation. PHNE_16153: 1. The driver did not set the speed correctly in 10Mb mode. This occurred mainly on 715/100/E systems. 2. The driver sent a loopback packet without sensing the media speed. The default speed was set to 100Mb. So, under heavy network traffic the driver failed to receive the loopback packet in 10Mb mode. 3. The driver did not do proper MP synchronization. PHNE_13721: 1. Specific code for support of Promiscuous mode and layer2 multicast did not exist. 2. Specific code for support of SNAP LLC encapsulation did not exist. 3. The driver incorrectly returned the current MAC address when the factory MAC address was requested. 4. Variable names were inconsistent in hpeisabtconf and hpeisabt scripts. PHNE_11507: The following defect description is for PHNE_11507: Although the command for MAC address change completed successfully, the change was registered only in the software data-structures and not in the card (hardware). PHNE_10145: The following defect description is for PHN_10145: When the primary cable is disconnected, the secondary does not reflect UP state in lanscan to indicate the successful Failover of ServiceGuard. SR: 5003397125 5003409003 5003451450 5003440230 1653289090 1653296236 4701430116 5003434928 1653311423 1653298547 8606103630 8606102706 8606104897 8606112069 8606112070 8606112072 1653275446 1653264465 1653267237 1653263970 1653253013 1653250639 1653255968 1653249318 1653219378 4701347781 Patch Files: /usr/conf/lib/libbtlan0.a /usr/lib/nls/msg/C/dsbtlan0.cat /usr/lib/lanadmin/libdsbtlan0.sl /usr/sbin/hpeisabt_init /usr/newconfig/etc/rc.config.d/hpeisabtconf /sbin/init.d/hpeisabt /usr/lib/libeisa100btfmt.sl what(1) Output: /usr/conf/lib/libbtlan0.a: FILESET EISA100BT: libbtlan0: Version: A.10.20.04 P HNE_19199 $Date: 99/12/16 22:08:58 $ /usr/lib/nls/msg/C/dsbtlan0.cat: None /usr/lib/lanadmin/libdsbtlan0.sl: EISA100BT LANADMIN: libdsbtlan0: Version: A.10.20.0 3 PHNE_19199 $Date: 99/09/06 05:19:08 $ /usr/sbin/hpeisabt_init: None /usr/newconfig/etc/rc.config.d/hpeisabtconf: None /sbin/init.d/hpeisabt: None /usr/lib/libeisa100btfmt.sl: EISA100BT NETTL: libeisa100btfmt: Version: A.10.20. 03 PHNE_19199 $Date: 99/09/06 05:16:31 $ cksum(1) Output: 2968653788 312520 /usr/conf/lib/libbtlan0.a 3862894740 3138 /usr/lib/nls/msg/C/dsbtlan0.cat 383167697 36864 /usr/lib/lanadmin/libdsbtlan0.sl 780528253 5258 /usr/sbin/hpeisabt_init 340626021 1254 /usr/newconfig/etc/rc.config.d/hpeisabtconf 2418239947 7667 /sbin/init.d/hpeisabt 2941399482 16384 /usr/lib/libeisa100btfmt.sl Patch Conflicts: None Patch Dependencies: s700: 10.20: PHNE_13585 s800: 10.20: PHNE_13586 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_10145 PHNE_11507 PHNE_13721 PHNE_16153 PHNE_16402 Equivalent Patches: None Patch Package Size: 450 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_19199 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_19199.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_19199. 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_19199.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_19199.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: 1. A new copy of the hpeisabtconf file is provided under the directory /usr/newconfig/etc/rc.config.d. It is recommended that the local modifications to the /etc/rc.config.d/hpeisabtconf file be incorporated into the new copy and be placed under the directory /etc/rc.config.d. This new hpeisabtconf is modified to support new speed/duplex setting options for startup script. 2. From its 10.20.03 version onwards, the EISA 10/100Base-TX/9000 product began using the standard naming convention for network interface names. In the old interface naming convention, the name reported by the lanscan command for these devices was btlan0x, where x is the interface index. In the new interface naming convention, the name reported by the lanscan command for these devices is lanx, where x is the interface index. It should be noted that btlan0x entries in the file /etc/rc.config.d/netconf are automatically updated by the patch's configure script, and therefore do not require any changes to be made by the patch installer. However, if problems are discovered with this process, the installer should make the changes manually and reconfigure the interfaces by rebooting the system, or by issuing /sbin/init.d/net stop followed by /sbin/init.d/net start. However, if there are any entries in the /etc/rc.config.d/hpeisabtconf file with the btlan0x naming format, they have to be manually modified to lanx, and the interfaces must be reconfigured by rebooting the system, or by issuing /sbin/init.d/hpeisabt stop followed by /sbin/init.d/hpeisabt start. Because of the above-mentioned change in the interface naming convention, configuration files of other products that refer to the names of EISA 100BT interfaces might cease to work after installing this patch. Currently known affected products are Service Guard and the OSI Transport Services (OTS). If the system being patched is running Service Guard, the Service Guard ASCII configuration file will need to be updated for the name change. This process cannot be performed automatically for the patch installer because the configuration file has a name unknown to the patch configure script. The Service Guard cluster does not require reconfiguration after this patch is installed. However it is highly recommended that the configuration be rebuilt with the standard Service Guard configuration procedure as soon as possible. This is to avoid confusion when listing the Service Guard configuration with cmviewcl as it will continue to report the old names for the EISA 100BT devices. To help update the interface names from btlan0x to lanx in all configuration files, a script will be provided with the next patch for EISA 100BT which will interactively perform the above modification.