Patch Name: PHNE_12351 Patch Description: s700 10.10 LAN products cumulative Patch Creation Date: 97/08/30 Post Date: 97/09/10 Hardware Platforms - OS Releases: s700: 10.10 Products: N/A Filesets: Networking.LAN-KRN Networking.LAN-RUN Automatic Reboot?: Yes Status: General Superseded Critical: Yes 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_12351 Symptoms: 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_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: 5003378158 5003362418 5003353771 1653158527 4701341230 5003331066 4701302661 4701312744 5003286641 1653160531 1653165597 Patch Files: /usr/conf/lib/liblan.a /usr/sbin/lanadmin /usr/sbin/linkloop 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_11169/PHNE_11170 SNA MTU Fix $Revis ion: 1.3.102.26 $ $Date: 97/06/18 16:09:20 $ 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 : $Revision: 1.7.102.20 $ PHNE_12351(700)/ PHNE_12352(800) $ /usr/sbin/lanadmin: lanadmin.c: $Revision: 1.3.102.4 $ B.10.10 PHNE_103 77(700)/PHNE_10378(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 $ cksum(1) Output: 3419170943 247908 /usr/conf/lib/liblan.a 266956055 53248 /usr/sbin/lanadmin 1379481127 36864 /usr/sbin/linkloop 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 Equivalent Patches: PHNE_12352: s800: 10.10 Patch Package Size: 390 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_12351 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_12351.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_12351.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_12351. 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_12351.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_12351.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None