Patch Name: PHNE_20892 Patch Description: s700 10.20 PCI 100Base-T cumulative patch Creation Date: 00/01/14 Post Date: 00/02/01 Hardware Platforms - OS Releases: s700: 10.20 Products: B5511AA_APZ B.10.20.01 B.10.20.02 B5509BA_APZ B.10.20.03 B.10.20.04 B.10.20.05 Filesets: 100BT-PCI-KRN.100BT-KRN 100BT-PCI-RUN.100BT-RUN 100BT-PCI-RUN.100BT-INIT 100BT-PCI-FMT.100BT-FORMAT Automatic Reboot?: Yes Status: General Release Critical: No Path Name: /hp-ux_patches/s700/10.X/PHNE_20892 Symptoms: PHNE_20892: 1. Start up scripts fail if there are 10 or more lan cards. 2. The 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. 64 byte cache line machine hangs. PHNE_20351: 1. The driver startup script hppci100 does not set nmid and fails to configure the card. PHNE_19078: 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. Outbound queue length can become negative after clearing net statistics using lanadmin. 7. Collisions are not detected by btlan driver. 8. The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hppci100conf. PHNE_16396: Lanadmin/lanscan status is incorrect when system boots with cable unplugged. PHNE_15786: OTS multicast test failed because the driver itself did not receive the small multicast packet. PHNE_15539: 1. When the cable was disconnected the "Net-Interface State" from lanscan was "UP" and "Operation Status" from lanadmin was "up". 2. When there was DMA operation on the PCI bus, btlan5 got 'cable disconnect' signal while there was no physical cable disconnect. 3. ifconfig lan2(btlan5) down, IP still got the packets received on lan2. PHNE_13747: PCI 100BT can hang on MP workstations under high stress. PHNE_13378: Applications attempting to set IP multicast address on the add-in PCI 100Base-T network interface will receive error. Applications attempting to enable promiscuous traffic mode on the add-in PCI 100Base-T network interface will receive error. Defect Description: PHNE_20892: 1. JAGac16214: The hppci100 script greps for a particular NMID, 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 to transmit 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, without 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. JAGac56793 : This problem occurred due to cache line alignment mismatch on 64 byte cache line machines. The card may hang when this problem occurs. Resolution: This problem is resolved by redefining the cache line size value in the driver header file, if this value is less than 64 bytes. PHNE_20351: 1. The problem occurs due to an error in hppci100 startup script. Resolution: The error is fixed in hppci100 start up script. PHNE_19078: 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 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. 7. 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. 8. The array of link configuration data in /etc/rc.config.d/hppci100conf was non-sequential which the startup script (/sbin/init.d/hppci100) could not handle correctly. Resolution: The startup script (/sbin/init.d/hppci100) is modified to skip over the missing indices in the array and work through all that are provided. PHNE_16396: Driver does not set lanadmin/lanscan status correctly when the cable is disconnected. PHNE_15786: Driver does not set the correct length for small multicast packets with length less than 60 bytes. PHNE_15539: 1. When the cable is disconnected driver did not set the "Net-Interface State" and mib operational status correctly. 2. Link status information was being read incorrectly from the PHY. 3. The driver did not check the IP network interface state before passing the packets to IP. PHNE_13747: Under certain conditions some subtle errors the receive path of the driver can be exposed causing link failure such as hung link etc. PHNE_13378: PCI 100Base-T does not support IP Multicasting and the promiscuous - physical, multicast, SAP - traffic. SR: 8606113907 8606113954 1653292060 8606109120 8606126228 5003432179 1653286500 4701414177 5003467001 4701430140 1653273623 1653239053 5003418939 4701378182 Patch Files: /usr/conf/lib/libbtlan5.a /usr/conf/lib/btlan5_dbg.o /sbin/init.d/hppci100 /usr/newconfig/etc/rc.config.d/hppci100conf /usr/sbin/hppci100_init /usr/lib/lanadmin/libdsbtlan5.sl /usr/lib/nls/msg/C/dsbtlan5.cat /usr/lib/libfmtbtlan5.sl /usr/lib/nls/msg/C/fmtbtlan5.cat what(1) Output: /usr/conf/lib/libbtlan5.a: btlan5.c PCI 100BT Cleanup PHNE_20892(10.20) $Revisi on: 1.49 $ $Date: 2000/01/17 10:41:40 $ /usr/conf/lib/btlan5_dbg.o: None /sbin/init.d/hppci100: : hppci100 /usr/newconfig/etc/rc.config.d/hppci100conf: : hppci100conf /usr/sbin/hppci100_init: hppci100_init $Revision: 1.9 $ $Date: 99/08/18 19:4 7:12 $ /usr/lib/lanadmin/libdsbtlan5.sl: libdsbtlan5.sl: Version: B.10.20 $Date: 99/07/13 16 :07:35 $ /usr/lib/nls/msg/C/dsbtlan5.cat: None /usr/lib/libfmtbtlan5.sl: BTLAN5: Version: B.10.20 $Date: 99/11/18 14:36 :48 $ /usr/lib/nls/msg/C/fmtbtlan5.cat: None cksum(1) Output: 2454924863 70568 /usr/conf/lib/libbtlan5.a 1531509804 163252 /usr/conf/lib/btlan5_dbg.o 2502615495 6819 /sbin/init.d/hppci100 3431335505 1207 /usr/newconfig/etc/rc.config.d/hppci100conf 1031270085 6222 /usr/sbin/hppci100_init 3859313560 20480 /usr/lib/lanadmin/libdsbtlan5.sl 3452115093 3117 /usr/lib/nls/msg/C/dsbtlan5.cat 2736872981 98784 /usr/lib/libfmtbtlan5.sl 943445229 14212 /usr/lib/nls/msg/C/fmtbtlan5.cat Patch Conflicts: None Patch Dependencies: s700: 10.20: PHNE_18173 Hardware Dependencies: 9000/700 Other Dependencies: None Supersedes: PHNE_13378 PHNE_13747 PHNE_15539 PHNE_15786 PHNE_16396 PHNE_19078 PHNE_20351 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_20892 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_20892.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_20892. 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_20892.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_20892.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: A new version of file /etc/rc.config.d/hppci100conf is delivered as part of this patch, as /usr/newconfig/etc/rc.config.d/hppci100conf file. If you have edited /etc/rc.config.d/hppci100conf 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/hppci100conf file with /etc/rc.config.d/hppci100conf. ifconfig down/up is needed while changing MTU using lanadmin -[M|R] options. 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