Patch Name: PHNE_14657 Patch Description: s700 10.24 (VVOS) LAN products cumulative patch Creation Date: 98/04/03 Post Date: 98/04/30 Hardware Platforms - OS Releases: s700: 10.24 Products: N/A Filesets: Networking.LAN-KRN Networking.LAN-RUN Networking.NW-ENG-A-MAN Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_14657: PANIC OTHER ABORT Based on HP-UX patch PHNE_14501: ABORT DLPI clone devices are not returned to free pool after close in PHNE_13585, hence after a certain number of operations utilities like lanadmin, linkloop etc. will fail as they will not be able to open /dev/dlpi. Based on HP-UX patch PHNE_13585: PANIC Fixes a panic in hp_dlpi_close. Based on HP-UX patch PHNE_12871: PANIC Fixes a panic in lan2_ru_restart and a panic with linkloop to ATM card. Based on HP-UX patch PHNE_12575: PANIC Fixes couple of panics in dlpi. Based on HP-UX patch PHNE_11703: OTHER The first fix allow inbound FDDI packet with certain MAC address to be accepted by DLPI. The second fix allows DLPI applications to receive control responses correctly even though another DLPI application is closing its stream. Based on HP-UX patch PHNE_11125: PANIC Fixes a panic in NIO Ethernet, when operating in promiscuous mode. Based on HP-UX patch PHNE_11051: OTHER Required for T600, and supersedes other critical patch. Based on HP-UX patch PHNE_10511: OTHER Avoids, excessive reset of lan interface rendering system unusable on the network Path Name: /hp-ux_patches/s700/10.X/PHNE_14657 Symptoms: PHNE_14657: Merged HP-UX patch PHNE_14501 into VVOS. Based on HP-UX patch PHNE_14501: 1. Defect in PHNE_13585, DLPI clone devices not returned to free pool after close. 2. DLPI command after DL_HP_HW_RESET may get ENXIO error. Based on HP-UX patch PHNE_13585: 1. Panic in hp_dlpi_close/detach. 2. lanadmin does not support mode and speed changes for 100BT cards. Based on HP-UX patch PHNE_12871: 1. System panic with data page fault in lan2_ru_restart. 2. IP multicast packets are received twice with lan3 driver. 3. Linkloop on a ATM device panics when PHNE_12575 is installed. Based on HP-UX patch PHNE_12575: 1. Panic in hp_dlpi_delete_wakeup routine under stress. 2. Panic while operating in promiscuous mode. 3. DL_HP_MULTICAST_REQ/ACK support for drivers supporting IP level multicasting. 4. Wrong ifOper status displayed for Built-In lan card. 5. lanadmin command displays "%s" in the output, instead of the error string. 6. lanadmin command fails after sufficient changing of nmid/display commands. Based on HP-UX patch PHNE_11703: 1. Inbound data is dropped for certain FDDI, individual, MAC address. The msb of the MAC address is checked incorrectly when received by DLPI. 2. Application will hang due to two applications accessing the dlpi_wakeup_list at same time. Such as lanadmin will hang while waiting for reception of dlpi control response if other dlpi stream is closing. Based on HP-UX patch PHNE_11125: 1. Changing MTU to more than 4096 bytes on token ring fails. 2. NIO Ethernet operating in promiscuous mode panics. Based on HP-UX patch PHNE_11051: 1. Without this patch, NIO Ethernet will not work on T600. Based on HP-UX patch PHNE_10511: 1. Systems using builtin lan through External MAU see excessive resets. Applications trying to transmit a packet could see ENOLINK. 2. 'mrouted' tunneling fails on HP-PB 10BaseT driver. 3. Some LAN interfaces need reset, when the H/W address is changed.(Eg. HP-PB FDDI) 4. Some LAN interfaces require other operation to be performed with reset to bring back the interface UP. (Eg. HP-PB FDDI requires download operation during reset) Based on HP-UX patch PHNE_9277: Running netperf snap_script, the ipintr queue was filled and stayed filled. Ping then start to fail. The linkloop still ran fine over the link. However, the system did not seem to recover from the queue full condition. Defect Description: PHNE_14657: Merged HP-UX patch PHNE_14501 into VVOS. Based on HP-UX patch PHNE_14501: 1. Due to a defect in close path of dlpi of PHNE_13585 dlpi clone devices will not be returned to free pool after close. Due to this reason after a certain number of operations, utilities like lanadmin, linkloop etc. will fail as they will not be able to open /dev/dlpi. 2. Process issuing DL_HP_HW_RESET was getting woken up after PORT_RESET phase of reset process. If a DLPI request is issued immediately after DL_HP_HW_RESET, ENXIO may be returned if the driver has not finished the whole reset process. PORT_RESET phase is now modified to wake up all entries in cmd_q other than the one corresponding to RESET process. The RESET process will be woken up by the process_looper after the loopback test. Based on HP-UX patch PHNE_13585: 1. hp_dlpi_close was reusing a variable after it is freed, also it was using a lock after freeing it. Access to the freed memory was causing the system panic. 2. An enhancement has been made in lanadmin to get and set driver specific options. This will support speed and mode changes for 100BT cards. Based on HP-UX patch PHNE_12871: 1. A typo in lan2_int_fr_rnr caused the driver to miss a call to lan2_rbd_supply. As a result, the rbd_act_ptr remained to be null. This led to a panic in lan2_ru_restart later on. 2. For broadcast and multicast packets IP normally sets a flag indicating driver should not loopback the packet. HP-PB Ethernet driver does not check to see whether loopback is required or not. This causes multiple packets to get delivered to IP. 3. Linkloop on ATM device panics when PHNE_12575 is installed due to the dlpi detach code assuming that Driver dependent data structure field in the hardware specific dlpi data structure points always to the ift structure of the lan. This is not true for some devices including ATM. This causes a panic due to an illegal pointer access. Based on HP-UX patch PHNE_12575: 1. Race condition between deletion of an entry in dlpi_wakeup_list and processing the entry causes panic in hp_dlpi_delete_wakeup. 2. If the promiscuous mode application does a close in the window between setting of lan_ift->promiscuous_filter and hp_dlpi_datap->promiscuous_flg, promiscuous mode will not be disabled during close, which causes a panic when processing the next inbound packet. 3. For drivers supporting IP level multicasting, the multicast address list is stored in a separate list. Hence dlpi should check if the driver supports IP level multicasting. If so it should return the multicast address list from this list while processing DL_HP_MULTICAST_REQ. 4. Sequence of setting IFF_UP flag and sending NMV_LINKUP event from Built-In lan driver causes the ifOPer status to be incorrect. 5. Due to a wrong call to 'printf' lanadmin command displays '%s' in output string instead of the error string. 6. dsname() function in lanadmin opens catalog file using catopen() but does not close the same on return. Hence if dsname() is called for sufficiently large number of times, number of open files will cross maxfiles limit, causing a failure in the next catopen(). Based on HP-UX patch PHNE_11703: 1. The checking of inbound packet was in wire format and should be in canonical format in hp_dlpi_intr_put() function. 2. The hp_dlpi_delete_wakeup(), if called by hp_dlpi_close(), will remove every entry in dlpi_wakeup_list. For those applications that are waiting for the response of control requests will not receive the response. In this case, the application will appear to hang. Based on HP-UX patch PHNE_11125: 1. DLPI uses hard coded value of 4096 bytes in the code, thereby limiting the maximum value of MTU to 4096. 2. The NIO Ethernet was trying to acquire a lock already held by it when operating in promiscuous mode, resulting in a panic. Based on HP-UX patch PHNE_11051: 1. 64-byte alignment changes to NIO Ethernet for T600 cache-line on 10.20 TFC. Based on HP-UX patch PHNE_10511: 1. When built-in lan interface returns No carrier + Late collision status in response to a transmit packet request, builtin lan driver treats the situation as carrier loss and resets the interface. The fix treats the situation as late collision, instead. 2. HP-PB Ethernet driver should be modified to support IP Multicasting. It is supported only on 10.10 release. It should support IPM on 10.20 release too. Without the IPM support, certain software (eg:gated, mrouted) functionality is limited. 3. Lanadmin calls the device specific reset function, if any, to do the reset operation after changing the H/W address. 4. Lanadmin calls the device specific reset function, if one is found, otherwise does the reset by itself. Based on HP-UX patch PHNE_9277: There was a window to enable netisr when ip input queue was filled. This work around to solve the reported problem by enabling netisr whenever receiving an incoming message. SR: 5003408674 1653251025 5003394551 1653232157 5003391888 1653230078 5003386516 5003375949 5003372565 5003362418 4701341230 5003353771 1653158527 Patch Files: /usr/conf/lib/liblan.a(lan_t2.o) /usr/conf/lib/liblan.a(lan_dlpi.o) /usr/conf/lib/liblan.a(lanc_input.o) /usr/conf/lib/liblan.a(lanc.o) /usr/conf/lib/liblan.a(lan2.o) /usr/sbin/lanadmin /usr/lib/lanadmin/libdslan2.1 /usr/lib/lanadmin/libdslan3.1 /usr/lib/nls/msg/C/lanadmin.cat /usr/share/man/man1m.Z/lanadmin.1m what(1) Output: /usr/conf/lib/liblan.a(lan_dlpi.o): lan_dlpi.c for PHNE_14501(700)/PHNE_14502(800) $Revi sion: 1.5.112.25 $ $Date: 98/03/12 13:56:04 $ /usr/conf/lib/liblan.a(lanc_input.o): $Source: kern/sio/lanc_input.c, hpuxsysio, vvos_davi s, davis97 $Date: 98/04/29 20:42:17 $ $Revis ion: 1.16 PATCH_10.24 (PHNE_14657) $ /usr/conf/lib/liblan.a(lanc.o): lanc.c NEW DHCP BIND/UNBIND$Revision: 1.10.112.5 $ $ Date: 96/02/27 14:30:32 $ FILESET LAN: lib lan: Version: A.10.00 /usr/conf/lib/liblan.a(lan2.o): lan2.c PHNE_14501(700)/PHNE_14502(800) $Revision: 1. 9.112.20 $ $Date: 98/03/16 08:32:48 $ /usr/conf/lib/liblan.a(lan_t2.o): lan_t2.c for PHNE_11703/PHNE_11704 canonical/wire fo rmat fix $Revision: 1.4.112.11 $ $Date: 97/1 2/16 10:24:32 $ /usr/sbin/lanadmin: $Revision: Hewlett-Packard ISSL Level vvos_davis40 $ $Header: Hewlett-Packard ISSL Release vvos_ davis $ $Date: Wed Apr 29 20:46:20 EDT 1998 $ $Source: lanlink/LAN/lanadmin/lanadmin.c, hpuxcmdnet , vvos_davis, davis97 $Date: 98/04/29 20:42: 16 $ $Revision: 1.9.1.4 PATCH_10.24 (PHNE_14 657/PHNE_14658) $ LAN: Version: B.10.10 $Date: 96/05/09 11:26:21 $ /usr/lib/lanadmin/libdslan2.1: $Revision: Hewlett-Packard ISSL Level vvos_davis40 $ $Header: Hewlett-Packard ISSL Release vvos_ davis $ $Date: Wed Apr 29 20:46:20 EDT 1998 $ dslan2.c: $Revision: 1.3.116.2 $ $Date: 97/10/01 01: 50:18 $ B.10.20 PHNE_12575(700)/PHNE_12576(8 00) /usr/lib/lanadmin/libdslan3.1: $Revision: Hewlett-Packard ISSL Level vvos_davis40 $ $Header: Hewlett-Packard ISSL Release vvos_ davis $ $Date: Wed Apr 29 20:46:20 EDT 1998 $ dslan3.c: $Revision: 1.3.116.2 $ $Date: 97/10/01 01: 50:40 $ B.10.20 PHNE_12575(700)/PHNE_12576(8 00) /usr/lib/nls/msg/C/lanadmin.cat: None /usr/share/man/man1m.Z/lanadmin.1m: None cksum(1) Output: 1046685004 50144 /usr/conf/lib/liblan.a(lan_dlpi.o) 607677264 17276 /usr/conf/lib/liblan.a(lanc_input.o) 526912930 17620 /usr/conf/lib/liblan.a(lanc.o) 2481117189 58812 /usr/conf/lib/liblan.a(lan2.o) 1355253080 85388 /usr/conf/lib/liblan.a(lan_t2.o) 3313869221 40960 /usr/sbin/lanadmin 601473128 16384 /usr/lib/lanadmin/libdslan2.1 1672222785 16384 /usr/lib/lanadmin/libdslan3.1 825581400 5577 /usr/lib/nls/msg/C/lanadmin.cat 1500814305 4474 /usr/share/man/man1m.Z/lanadmin.1m Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHNE_14658: s800: 10.24 Patch Package Size: 380 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_14657 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_14657.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHNE_14657.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_14657. 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_14657.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_14657.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None