Patch Name: PHNE_14107 Patch Description: s700 10.10 LAN products cumulative Patch Creation Date: 98/03/11 Post Date: 98/03/20 Hardware Platforms - OS Releases: s700: 10.10 Products: N/A Filesets: Networking.LAN-KRN Networking.LAN-RUN Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_14107: PANIC Fixes a panic in hp_dlpi_close (Symptom 1). Fixes a panic in lan2_ru_restart (Symptom 2). Fixes panic with linkloop to ATM card (Symptom 3). PHNE_12531: PANIC Fixes a panic in hp_dlpi_delete_wakeup() when running stress tests(Symptom 1). Fixes a panic when operating in promiscuous mode(Symptom 2). Fixes a panic in NIO Ethernet, when memory is heavily loaded(Symptom 3). PHNE_12351: PANIC Fixes a panic in CORE ethernet, when memory is heavily loaded. PHNE_11169: PANIC Fixes a panic in NIO ethernet, when operating in promiscuous mode. PHNE_10377: OTHER 1.Avoids, excessive reset of lan interface rendering system unusable on the net. 2. Without this, SNA over FDDI interface fails PHNE_9819: OTHER Network hangs due to ip service routine not properly enabled. PHNE_7179: PANIC MP J-Series systems panic during sysadmin test PHNE_7087: PANIC Lasi based MP system panic during blast testing System panic if Lasi LAN is not connected PHNE_6371: PANIC System panic when service guard is running. Path Name: /hp-ux_patches/s700/10.X/PHNE_14107 Symptoms: PHNE_14107: 1. Panic in hp_dlpi_close/detach. 2. System panic with data page fault in lan2_ru_restart. 3. Linkloop on a ATM device panics when PHNE_12531 is installed. PHNE_12531: 1. Panic in hp_dlpi_delete_wakeup() routine when running stress tests. 2. System Panics while operating in promiscous mode. 3. System panics in lan3_process_read_completion() routine. 4. DL_HP_MULTICAST_LIST_REQ dlpi primitive returns all zero valued multicast addresses for drivers supporting IP level multicasting. 5. lanadmin command displays '%s' in its output string instead of actual error string. 6. lanadmin command fails after sufficient changing of nmid/display commands. 7. Inbound data is dropped for certain FDDI, individual, MAC address. The msb of the MAC address is checked incorrectly when received by DLPI. 8. 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. PHNE_12351: 1. System may crash (panic) when memory is heavily loaded. 2. 'lanadmin' reports interface state as 'DOWN' even when LAN cable is reconnected to Lasi lan. PHNE_11169: 1. Changing MTU to more than 4096 bytes on token ring fails. 2. NIO ethernet operating in promiscuous mode panics. PHNE_10377: 1. Systems using built in lan through External MAU see excessive resets. Applications trying to transmit a packet could see ENOLINK. 2. Some LAN interfaces need reset (lanadmin), when the H/W address is changed.(Eg. HP-PB FDDI) 3. Some LAN interfaces require other operations to be performed with reset (lanadmin) to bring back the interface UP.(Eg. HP-PB FDDI requires download operation during reset) 4. SNA fails to establish connection over FDDI -- dlpi connection mode service. PHNE_9819: 1. Inbound network hangs. PHNE_7179: 1. J-Series MP systems panic, data page fault. 2. 725 panic, freeing free mbuf. 3. Cu app found inconsistent reporting dl_src_addr_length in DL_BIND RESPONSE. 4. system panics when frees a DL_UDERROR_IND message of which b_cont!= NULL. 5. DLPI should only execute retry code for ENOBUFS errors. 6. Modified promiscuous code to use the old definitions. PHNE_7087: 1. Lasi LAN uses up to 8% of CPU/FP if it is not terminated. 2. MP systems experience silence over Lasi LAN. Outbound traffic resumes only after a packet is arrived. 3. J and K-Series MP systems panic, freeing freed mbuf. 4. On Lasi based systems, spin lock held too long if core LAN is not terminated. 5. Lanscan doesn't report correct information when the system come up if the core LAN is not connected. PHNE_6371: 1. With service guard running, a panic may occur with the message: wait_for_lock_spinner: Already own this lock 2. lanadmin and linkloop core dump on large LAN configured systems. 3. bind_req fails when running t2 over token ring with source routing. 4. Lasi LAN underrun and overrun under heavy MUX traffic. Defect Description: PHNE_14107: 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. 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 was always null. This led to a panic in lan2_ru_restart later on. 3. Linkloop on ATM device panics when PHNE_12531 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. PHNE_12531: 1. After processing a wakeup entry in hp_dlpi_wakeup_list, the entry was free'd but not being removed immediately, due to which dlpi was processing the entry second time causing a panic in hp_dlpi_delete_wakeup(). 2. If the promiscous mode application performs a close in the window between setting of lan_ift->promiscuous_filter and hp_dlpi_datap->promiscuous_flg, promiscous mode will not be disabled which causes a panic when processing the next inbound packet. 3. NIO Ethernet driver does not check the return value of m_copy() causes the system panic (crash) in lan3_process_read_completion(). This can happen when system is heavily loaded and all the memory is used up. 4. Drivers supporting IP Multicast will store multicast addresses in a separate array. DLPI does not check for DRV_IP_MULTICAST flag before copying the multicast addresses to user buffer causing all zero valued addresses returned to the user. 5. Usage of wrong syntax while calling printf() when an error is encountered was causing this problem. 6. dsname() function in lanadmin command, opens catlog 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(). 7. The checking of inbound packet was in wire format and should be in canonical format in hp_dlpi_intr_put() function. 8. 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. PHNE_12351: 1. Lasi ethernet driver does not check the return value from m_copy() routine which can cause a system panic when m_copy() fails to aquire memory during heavy load on the system. 2. Lasi ethernet driver makes the interface state as down when cable is disconnected from the card. But when the cable is reconnected, it does not send a mib event indicating that the link is up, in the proper sequence. Hence 'lanadmin' continues to report that the link is 'DOWN'. PHNE_11169: 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. PHNE_10377: 1. When built-in lan interface returns No carrier + Late collision status in response to transmit packet request, the built-in LAN driver treats the situation as carrier loss and resets the interface. The fix treats the situation as late collision, instead. 2. Lanadmin calls the device specific reset function, if any, to do the reset operation after changing the H/W address. 3. Lanadmin calls the device specific reset function, if one is found, otherwise does the reset by itself. 4. Duplicate declaration of "u_char raddr[6]" for DEV_FDDI in the function "t2_dlpi_fill_in_hdr" cuases wrong dest_addr in t2_data_t and hence removed. PHNE_9819: 1.When the network traffics are heavy, ip inbound queue is full. For some reason, IP's service routine for inbound is not scheduled (enabled). (In STREAMS's design, whenever there is any message in a queue, this queue's service routine is always enabled.) Meanwhile, since IP's queue is full, a lan driver will drop every inbound packet until IP's queue is not full. Under such situation, anything above the driver (including IP, TCP/UDP, ...) won't get any inbound message. Thus it appears the inbound path is hanging. PHNE_7179: 1. When the LAN ISR routine starts a command in the waited queue, it mistakenly forces the command to be trasmit and causes confusion to both hardware and the driver itself. 2. When hardware report NC error at the same time transmit queue is full, the inact_cmd_ptr doesn't get updated, causing mbuf of the NC command get freed twice. 3. Modified lan_dlpi.c to return SNAP information in both src and dst which are parts of DL_UNITDATA_IND primative. 4. Set b_cont field of the DL_UDERROR_IND to NULL in hp_dlpi_unitdata_out(). 5. Modified hp_dlpi_unitdata_out to do resend work only for ENOBUFS error. 6. Modified promiscuous code to use the old definitions. PHNE_7087: 1. When the cable is not connected, sent a loopback packet to Lasi LAN does not cause the 5 second timeout. Instead, HW returns NC error immediately. As a result, LAN reset happens every second rather than once every 5 seconds. 2. On MP systems, while one CPU is executing LAN ISR, another CPU can insert a command on the back of the 1st CPU. That newly inserted command will get stuck in the queue and block all following commands from execution. The only way to unblock that queue is to receive an incoming packet. 3. On MP systems, when the transmit queue is full, the current command structure is released too soon, inviting other CPU to reuse the structure before the releasing CPU finishes using it. 4. When the cable is not connected, Lasi LAN may timeout on ABORT command. The following WAIT_SCB_CMD_ZERO will cause LAN2_LOCK be held longer than it is allowed to. Only debug kernel reports this kind of error. 5. If the cable is not connected, lanscan shows interface state UP after reboot. Reconnecting the cable will cause the state to go DOWN. PHNE_6371: 1. Lan2 driver does not release the lan2_lock while it sends a broadcast/multicast packet up stream. If the upper layer software tries to send a packet while it is in the middle of receiving, the driver will attempt to lock the same lock. 2. lanadmin and linkloop were not reserving a large enough message area size for large LAN configurations. 3. This problem was caused by t2_dlpi_fill_hdr. The routing information was being added to the new header before the llc information was extracted. If the new rif was longer than the current rif this caused the llc header to be thrashed. This in turn prevented the correct protocol value from being unlog when the stream was closed and prevented any further binds to the original protocol value. OPENCONNECT and WALMART Hotsites. 4. The throttle timer limits Lasi LAN the access to the bus. Turn off the throttle timer on Hawk systems to allow more time for Lasi LAN to do its things. SR: 1653249565 5003394551 5003391888 5003375949 1653230078 5003378158 5003362418 5003353771 1653158527 4701341230 5003331066 4701302661 4701312744 5003286641 1653160531 1653165597 Patch Files: /usr/conf/lib/liblan.a /usr/sbin/lanadmin /usr/sbin/linkloop /usr/lib/lanadmin/libdslan3.1 /usr/lib/lanadmin/libdslan2.1 what(1) Output: /usr/conf/lib/liblan.a: lan_t2.c : PHNE_11169/PHNE_11170 SNA MTU Fix $Revisi on: 1.2.102.14 $ lan_dlpi.c: PHNE_14107/PHNE_14108 $Revision: 1.3.102 .34 $ $Date: 98/02/27 10:31:06 $ lanc_input.c PHNE_9819 PHNE_9820 $Revision: 1.8.102. 9 $ $Date: 97/01/15 09:58:04 $ FILESET LAN: lib lan: Version: A.10.00 lan2.c : PHNE_14107(700)/PHNE_14108(800) $Revision: 1.7.102.23 $ $Date: 98/02/18 16:38:08 $ /usr/sbin/lanadmin: lanadmin.c: $Revision: 1.3.102.6 $ B.10.10 PHNE_125 31(700)/PHNE_12532(800) LAN: Version: B.10.1 $Date: 95/08/10 12:25:29 $ /usr/sbin/linkloop: linkloop.c: $Revision: 1.6.102.4 $ $Date: 95/11/21 PHNE_6371/PHNE_6372 $ LAN: Version: B.10.1 $Date: 95/08/10 12:25:29 $ /usr/lib/lanadmin/libdslan3.1: dslan3.c: $Revision: 1.3.102.2 $ $Date: 97/10/01 01: 41:24 $ B.10.10 PHNE_12531(700)/PHNE_12532(8 00) /usr/lib/lanadmin/libdslan2.1: dslan2.c: $Revision: 1.3.102.2 $ $Date: 97/10/01 01: 41:02 $ B.10.10 PHNE_12531(700)/PHNE_12532(8 00) cksum(1) Output: 3425669896 248972 /usr/conf/lib/liblan.a 3793263705 53248 /usr/sbin/lanadmin 2093358330 36864 /usr/sbin/linkloop 2370705287 16384 /usr/lib/lanadmin/libdslan3.1 1501797462 16384 /usr/lib/lanadmin/libdslan2.1 Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_6371 PHNE_7087 PHNE_7179 PHNE_9819 PHNE_10377 PHNE_11169 PHNE_12351 PHNE_12531 Equivalent Patches: PHNE_14108: s800: 10.10 Patch Package Size: 430 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_14107 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_14107.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_14107.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_14107. 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_14107.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_14107.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None