Patch Name: PHNE_20962 Patch Description: s700 10.20 CORE PCI 100Base-T cumulative patch Creation Date: 00/01/25 Post Date: 00/03/03 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: Networking2.CORE100-KRN Networking2.CORE100-RUN Networking2.CORE100-INIT Networking2.CORE100-FMT Automatic Reboot?: Yes Status: General Superseded Critical: No (superseded patches were critical) PHNE_17643: PANIC HANG CORRUPTION MEMORY_LEAK OTHER The driver could get random speed and mode when systems are connected via crossover cable. Path Name: /hp-ux_patches/s700/10.X/PHNE_20962 Symptoms: PHNE_20962: 1. SAM does not support altering speed (10 or 100Mbps) and duplex mode (half or full) settings on the interface. 2. Start up scripts fail if there are 10 or more lan cards. 3. btlan interface hangs after 36 hours of testing. 4. 100BT driver reports bad stats via netstat and lanadmin. 5. Nettl displays incorrect informative message about speed and mode. 6. ER: Display capabilities of the switch after auto negotiation completion. 7. 64 byte cache line machine interface hangs. 8. 100bt: message logged "Unable to setup Read/Write Prefetch lengths" PHNE_18763: 1. 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. 2. 'lanadmin -x [nmid]' display does not indicate whether the card is running in the auto-negotiation or manual mode. 3. lanadmin cannot alter the Maximum Transmission Unit (MTU) size value of the interface. 4. Applications do not receive outbound traffic from the interface when they enable promiscuous mode on the interface. 5. lanadmin displays incorrect station address. 6. While compiling 100BT driver, warning message says wrong number of parameters passed in function call. 7. The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hpbase100. PHNE_17643: 1.This patch enables new functionality that is part of the 10.20 ACE(Additional Core Enhancements) Workstation bundle, which adds new I/O drivers to support the B1000, C3000, and J5000 systems. 2.Data corrupted during heavy NFS traffic. 3.Under heavy traffic, the card can not receive packets but can send them. 4.Lanadmin(1M) reset caused the system to panic. 5.System panic due to data page fault 6.System hang or system panic due to depletion of memory resources. 7.Incorrect or arbitrary link configuration after cable disconnect at either ends. PHNE_16293: Lanadmin/lanscan status is incorrect when system boots with cable unplugged. PHNE_15906: IP multicast functionality does not work after cable disconnect or lanadmin(1M) reset. PHNE_15759: If AUI port of Core PCI 100Base-T is used, the interface hardware state is occasionally down after system reboot or lanadmin(1M) reset. PHNE_15538: 1. CORE 100BT incorrectly reports the mib-2 variable ifInOctets. 2. Pings to routers fail occasionally. 3. IP receives packets when network interface is configured down. PHNE_14270: CORE 100BT hangs when very long packets are received on the interface. Without the promiscuous multicast enabled on the card, IP Multicast traffic to the individual IP multicast addresses is not received. Also, the internal loopback of the multicast packets where the packet length is less than 60 bytes, and data in the packet is distributed over multiple buffers. CORE 100BT can hang on MP workstations under high stress. PHNE_13675: Under certain conditions, the link hung. PHNE_12953: Applications attempting to set IP multicast address on the Core PCI 100Base-T network interface will receive error. Applications attempting to enable promiscuous traffic mode on the Core PCI 100Base-T network interface will receive error. Defect Description: PHNE_20962: 1. JAGab64699: 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. JAGac16214: The hpbase100 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 ". 3. JAGac12427: The Transmit engine of btlan hangs under following condition - Whenever the driver receives a packet 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. 4. 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. 5. JAGab81818: The nettl logging message about speed and mode displays wrong values. Resolution: The driver is modified to display correct speed and mode. 6. 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. 7. 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. 8. JAGab72844: The message "Unable to setup Read/Write Prefetch lengths" is printed when not necessary. Resolution: This message in no longer printed. PHNE_18763: 1. 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. 2. 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. 3. 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. 4. 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. 5. The driver did not format the station address correctly for 10.20. Resolution: The station address is formated correctly now. 6. 100BT tried to pass 5 parameters to a function that only takes 4 parameters. Resolution: 100BT passes 4 parameters to the function call. 7. The array of link configuration data in /etc/rc.config.d/hpsppci100conf was non-sequential which the startup script (/sbin/init.d/hpsppci100) cannot handle correctly. Resolution: The startup script (/sbin/init.d/hpsppci100) is modified to skip over the missing indices in the array and work through all that are provided. PHNE_17643: 1.New functionality to support the B1000, C3000, and J5000 systems on HP-UX 10.20. 2.Driver did I/O mapping incorrectly for outbound data. 3.The card might stop receiving packets when receive overrun occurs. 4.Driver did not intialize I/O mapping related variables properly. 5.A null pointer dereference. 6.Buffer memory leak in the receive path in promiscuous multicast mode. 7."Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip was not set when initiating autonegotiation. PHNE_16293: Driver does not set lanadmin/lanscan status correctly when the cable is disconnected. PHNE_15906: Driver does not restore multicast addresses after reset. PHNE_15759: When network interface is reset at system reboot or manual reset using lanadmin(1M), the driver sends an external loopback packet out on the AUI port. Driver decides that the AUI port is connected to the cable on reception of the loopback packet. Transmission of the external loopback packet can fail occasionally due to collisions or deferred transmissions during heavy network traffic. Driver was not handling transmission errors of external loopback packets correctly. In such a case, driver will eventually timeout waiting for the reception of loopback packet and sets the hardware state to DOWN. PHNE_15538: 1. Driver does not update receive statistics. 2. Driver sends packets upstream without checking the configured encapsulation method. 3. Driver does not check interface state flag before passing packets upstream. PHNE_14270: When a very long packet is received on the CORE 100BT interface, it causes the receive watchdog timer to timeout, resulting in shutdown of the receiver and transmitter, and raising corresponding interrupt to the driver. The driver simply puts out the warning message on the console, but fails to restart the receiver and transmitter. The driver fails to add the individual IP multicast addresses (filters) correctly on the card. Also, for the loopback problem, the driver does not correctly pad to 60 bytes for packets smaller than 60 bytes long. PHNE_13675: Under certain conditions some subtle errors the receive path of the driver can be exposed causing link failure such as hung link etc. PHNE_12953: CORE PCI 100Base-T does not support IP Multicasting and the promiscuous - physical, multicast, SAP - traffic. SR: 8606113907 8606113954 4701430140 8606105029 8606126228 1653292060 8606109120 8606103478 4701430140 4701430132 5003466995 1653286500 5003432179 4701398263 1653274019 5003417857 1653249607 5003398834 4701378182 4701373886 Patch Files: /usr/conf/lib/libbtlan3.a /usr/conf/lib/btlan3_dbg.o /usr/lib/lanadmin/libdsbtlan3.sl /sbin/init.d/hpbase100 /usr/sbin/hpbase100_init /usr/newconfig/etc/rc.config.d/hpbase100conf /usr/lib/libfmtbtlan3.sl /usr/lib/nls/msg/C/fmtbtlan3.cat what(1) Output: /usr/conf/lib/libbtlan3.a: btlan3.c Core 100BT Cleanup PHNE_20962(10.20)$Revisi on: 1.50 $ $Date: 2000/01/25 17:36:58 $ /usr/conf/lib/btlan3_dbg.o: None /usr/lib/lanadmin/libdsbtlan3.sl: libdsbtlan3.sl: Version: B.10.20 $Date: 99/07/13 16 :25:29 $ /sbin/init.d/hpbase100: hpbase100 $Revision: 1.11 $ $Date: 2000/01/05 11:15: 02 $ /usr/sbin/hpbase100_init: hpbase100_init $Revision: 1.3 $ $Date: 99/07/16 11: 26:28 $ /usr/newconfig/etc/rc.config.d/hpbase100conf: hpbase100conf $Revision: 1.4 $ $Date: 99/07/14 13:35 :13 $ /usr/lib/libfmtbtlan3.sl: BTLAN3: Version: B.10.20 $Date: 2000/01/05 11: 32:34 $ /usr/lib/nls/msg/C/fmtbtlan3.cat: None cksum(1) Output: 3264803899 70708 /usr/conf/lib/libbtlan3.a 2718586955 166476 /usr/conf/lib/btlan3_dbg.o 4219796226 20480 /usr/lib/lanadmin/libdsbtlan3.sl 3080546837 8046 /sbin/init.d/hpbase100 3746626711 6308 /usr/sbin/hpbase100_init 506556064 1202 /usr/newconfig/etc/rc.config.d/hpbase100conf 2312485209 98784 /usr/lib/libfmtbtlan3.sl 643431616 14248 /usr/lib/nls/msg/C/fmtbtlan3.cat Patch Conflicts: None Patch Dependencies: s700: 10.20: PHNE_18173 Hardware Dependencies: 9000/700 Other Dependencies: None Supersedes: PHNE_12953 PHNE_13675 PHNE_14270 PHNE_15538 PHNE_15759 PHNE_15906 PHNE_16293 PHNE_17643 PHNE_18763 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_20962 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_20962.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_20962. 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_20962.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_20962.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/hpbase100conf is delivered as part of this patch, as /usr/newconfig/etc/rc.config.d/hpbase100conf file. If you have edited /etc/rc.config.d/hpbase100conf file, you may want to merge these files. To set speed and duplex via SAM, users need to install SAM patch: PHCO_19046. ifconfig down/up is needed while changing MTU using lanadmin -[M|R] options.