Patch Name: PHNE_28635 Patch Description: s700_800 10.20 EISA 100BT cumulative patch Creation Date: 03/04/29 Post Date: 03/05/21 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 B.10.20.05 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,B.10.20.05 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,B.10.20.05 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,B.10.20.05 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,B.10.20.05 Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_28635: PANIC PHNE_27533: PANIC PHNE_24782: PANIC PHNE_23980: HANG PHNE_22443: OTHER System will not be on the network if the primary interface is EISA 100BT. PHNE_21373: PANIC 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_28635 Symptoms: PHNE_28635: 1. ( SR:8606294055 CR:JAGae57795 ) Inadequate frame padding. 2. ( SR:8606289350 CR:JAGae53281 ) When the lanadmin(1M) command is used with the "-x" option to query the EISA 10/100BT interface, the system may panic with the following stack trace. HP1_ospif_dlpi_ioctl+0x784 hp_dlpi_process_ioctl+0xf8 hp_dlpi_wput+0x188 putnext+0x74 wait_iocack+0x88 str_istr_ioctl+0x3f8 hpstreams_ioctl_int+0x590 hpstreams_ioctl+0x54 spec_ioctl+0xd4 vno_ioctl+0x98 ioctl+0x78 syscall+0x75c syscallinit+0x320 PHNE_27533: 1. ( SR:8606188846 CR:JAGad58062 ) During heavy traffic EISA 10/100BT card experiences multiple internal resets with the following message logged to NetTL log file. "bdm_watchdog: TX did not complete on time, resetting adapter btlan01". 2. ( SR:8606174509 CR:JAGad43755 ) On a system with two or more EISA 10/100BT cards, when the switch or hub is reset or powered off and on, only one of the EISA 10/100BT card comes up. 3. ( SR:8606248819 CR:JAGae15216 ) EISA 100BT driver panics with "Data page fault" in _bigmac_cmdfmt_tx(). 4. ( SR:8606219928 CR:JAGad89070 ) "dhcpclient" fails to generate bootp request over EISA 10/100BT interface. PHNE_24782: 1. EISA 100BT driver panics with "Spinlock Deadlock" in ospif_if_watchdog() and schednetisrsq(). -- JAGad69452 PHNE_23980: 1. EISA FDDI driver hangs because of EISA 100BT's bus locking. -- JAGad50169 2. Reproducible system hang in oim_open() when starting SAP. -- JAGad54480 3. suid bit set to lanadmin library. -- JAGad67830 PHNE_22443: 1. Card does not work in loopback mode with changed MAC address in hpeisabtconf -- JAGad09607 PHNE_21373: 1. PHNE_19199 can impact configuration files for systems having pre June 1999 AR version of the EISA 10/100Base-TX/9000 product -- JAGac86743. 2. Potential spinlock deadlock in PHNE_19199 -- JAGad02653. 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_28635: 1. ( SR:8606294055 CR:JAGae57795 ) Inadequate frame padding. Resolution: Adequate frame padding is done. 2. ( SR:8606289350 CR:JAGae53281 ) When EISA 10/100BT interface self-test fails, a field in the driver data structure is not initialized properly. The system panics when the lanadmin(1M) command with "-x" option tries to access this uninitialized field. Resolution: Proper check has been added to avoid accessing uninitialized field in the driver data structure. PHNE_27533: 1. ( SR:8606188846 CR:JAGad58062 ) The "Command Unit" of the EISA 10/100BT card goes into an "IDLE" state even when there are packets queued up for transmit. This would cause the card to be unaware of new packets posted for transmission resulting in bdm_watchdog timer going off thus triggering a card reset. Resolution: If the "Command Unit" has gone into "IDLE" state and transmit queue is not empty, then the "Command Unit" is restarted in bigmac watchdog routine. 2. ( SR:8606174509 CR:JAGad43755 ) A single global variable was used to represent "link state" for multiple instances of EISA 10/100BT interfaces. Resolution: Separate "link state" variable is used for every instance of EISA 10/100BT interface. 3. ( SR:8606248819 CR:JAGae15216 ) In response to EISA 100BT driver's dump command request, the interface should dump card's internal registers onto the host preallocated memory location. Instead, the data was written on to the transmit descriptor thus corrupting the transmit descriptor ring. Resolution: A separate descriptor is allocated for the dump command. 4. ( SR:8606219928 CR:JAGad89070 ) "dhcpclient" uses DLPI_BIND_XPORT and DLPI_UNBIND_XPORT ioctls to generate bootp request over EISA 10/100BT interface, which are missing in EISA 100BT driver. Resolution: DLPI_BIND_XPORT and DLPI_UNBIND_XPORT ioctls are added to support bootp request over EISA 10/100BT interface. PHNE_24782: 1. Drivers should not hold the 'driver' lock while calling functions across the subsystem. But, EISA 100BT driver was calling schednetisr() holding driver lock, which resulted in a panic. Resolution: Code has been modified such that driver will release its 'driver' lock before calling schednetisr(). PHNE_23980: 1. EISA 100BT was holding bus unnecessarily because of which EISA FDDI driver was hanging. Resolution: Unnecessary bus locking has been removed. 2. In the oim_open() function, a linked list was processed improperly in a while loop. Resolution: Processing of the linked list has been modified in the while loop. 3. The lanadmin library was set with suid bit. Resolution: File permissions have been modified. PHNE_22443: 1. During card's reset mode, card loopbacks itself with factory MAC address to sense speed. After this, card was resetting with factory MAC address. It was not using newly configured MAC address. Resolution: After loopback, card will be set with new MAC address. PHNE_21373: 1. If PHNE_19199 is installed on a system having pre June 1999 Application Release (AR) version of the EISA 10/100Base-TX/9000 product, the interface names of EISA 100BT devices are changed from btlan0x to lanx (where x is the interface index). This could cause problem for products such as Service Guard and OSI Transport Services, whose configuration files refer to EISA 100BT interfaces with the old naming convention(btlan0x). Resolution: A script is provided with this patch to interactively modify all occurrences of "btlan0" to "lan" in an ASCII text file supplied as an argument to it. The users can run this script on their configuration files to perform the switch to the new interface naming convention. 2. The spinlock deadlock was caused due to a lock ordering problem between two spinlocks used by the driver. Resolution: The lock ordering has been corrected. 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: 8606294055 8606289350 8606188846 8606174509 8606248819 8606219928 8606200268 8606180948 8606185278 8606198641 8606140285 8606129197 8606133508 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 /usr/newconfig/usr/conf/lib/libbtlan0.abtlan0 /usr/sbin/chbtlan0tolan /usr/lib/nls/msg/C/fmteisa100bt.cat what(1) Output: /usr/conf/lib/libbtlan0.a: FILESET EISA100BT: libbtlan0: Version: B.10.20.17 P HNE_28635 $Date: 2003/02/07 21:50:53 $ /usr/lib/nls/msg/C/dsbtlan0.cat: None /usr/lib/lanadmin/libdsbtlan0.sl: EISA100BT LANADMIN: libdsbtlan0: Version: B.10.20.1 7 PHNE_28635 $Date: 2003/02/07 22:22:54 $ /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: B.10.20. 17 PHNE_28635 $Date: 2003/02/07 22:25:57 $ /usr/newconfig/usr/conf/lib/libbtlan0.abtlan0: FILESET EISA100BT: libbtlan0: Version: B.10.20.16 P HNE_28635 $Date: 2003/02/07 21:50:53 $ /usr/sbin/chbtlan0tolan: None /usr/lib/nls/msg/C/fmteisa100bt.cat: None cksum(1) Output: 1377307198 317096 /usr/conf/lib/libbtlan0.a 3862894740 3138 /usr/lib/nls/msg/C/dsbtlan0.cat 785061898 36864 /usr/lib/lanadmin/libdsbtlan0.sl 780528253 5258 /usr/sbin/hpeisabt_init 3271958431 1237 /usr/newconfig/etc/rc.config.d/hpeisabtconf 2418239947 7667 /sbin/init.d/hpeisabt 1289306118 16384 /usr/lib/libeisa100btfmt.sl 470323117 317112 /usr/newconfig/usr/conf/lib/ libbtlan0.abtlan0 2014630193 5168 /usr/sbin/chbtlan0tolan 3989282158 5124 /usr/lib/nls/msg/C/fmteisa100bt.cat 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 PHNE_19199 PHNE_21373 PHNE_22443 PHNE_23980 PHNE_24782 PHNE_27533 Equivalent Patches: PHNE_28636: s700: 11.00 s800: 11.00 PHNE_28637: s700: 11.11 s800: 11.11 Patch Package Size: 350 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_28635 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_28635.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_28635. 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_28635.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_28635.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 (or patch PHNE_19199) onwards, the EISA 10/100Base-TX/9000 product began using the standard naming convention for network interface names. In the new or standard interface naming convention, the name reported by the lanscan(1M) command for these devices is lanx, where x is the interface index. In the old interface naming convention, the name reported by the lanscan command for these devices was btlan0x, where x is the interface index. This patch WILL NOT change the existing EISA 100BT interface naming convention existing on the system. Based on the naming convention currently used the appropriate patch files will be installed. If you have a version older than 10.20.03 on your system, and if you desire to migrate to the new naming convention, then you must upgrade to version 10.20.03 or later available as of the 1998 Application Release.