Patch Name: PHNE_14633

Patch Description: s700 10.20 LAN products cumulative Patch

Creation Date: 98/05/18

Post Date:  98/06/05

Hardware Platforms - OS Releases:
	s700: 10.20

Products: N/A

Filesets:
	Networking.LAN-KRN Networking.LAN-RUN
	Networking.NW-ENG-A-MAN

Automatic Reboot?: Yes

Status: General Superseded

Critical:
	No (superseded patches were critical)
	PHNE_14367: OTHER
		Without fix 1, DLPI type 2 applications (e.g. SNA)
		won't work over non-CKO FDDI.
	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.
	PHNE_13585: PANIC
		Fixes a panic in hp_dlpi_close.
	PHNE_12871: PANIC
		Fixes a panic in lan2_ru_restart and a panic with
		linkloop to ATM card.
	PHNE_12575: PANIC
		Fixes couple of panics in dlpi.
	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.
	PHNE_11125: PANIC
		Fixes a panic in NIO Ethernet, when operating in
		promiscuous mode.
	PHNE_11051: OTHER
		Required for T600, and supersedes other critical
		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_14633

Symptoms:
	PHNE_14633:
	1. No DELETE  multicast  requests were sent down to the
	   driver  when  application   issued  a  DELETE  on  a
	   previously added multicast address.
	2. Inconsistent   behaviour  by  network  drivers  when
	   promiscuous mode was enabled.
	3. Enabling and disabling of multicast addresses failed
	   on Token Ring drivers.
	4. lanadmin  needs   easier  way to reset  MAC  address
	   to default.

	PHNE_14367:
	1. DLPI type 2 won't work over FDDI devices that do not
	   support the Checksum  Offload feature (e.g.  HSC and
	   EISA FDDI)
	2. linkloop returns ERANGE if MTU of link changed.

	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.

	PHNE_13585:
	1. Panic in hp_dlpi_close/detach.
	2. lanadmin does not support mode and speed changes for
	   100BT cards.

	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.

	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.

	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.

	PHNE_11125:
	1. Changing MTU to more than 4096 bytes on token ring
	   fails.
	2. NIO Ethernet operating in promiscuous mode panics.

	PHNE_11051:
	1. Without this patch, NIO Ethernet will not work on T600.

	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)

	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_14633:
	1. Multicast  DELETE requests were not sent down to the
	   hardware  level  by LANC.  This  resulted  in  stale
	   multicast  addresses  enabled in the hardware.  This
	   has been corrected.
	2. There was no support for handling  promiscuous  data
	   and the  associated  filtering  at the  LANC  level.
	   This was being implemented at the driver level which
	   was not  consistent  across  drivers.  LANC has been
	   enhanced  to support  this  feature so that  drivers
	   need not  implement  handling of  promiscuous  data.
	   All promiscuous data will be processed by LANC.
	3. LANC  expects the  multicast  addresses  in the wire
	   format.  However, IP multicast addresses were passed
	   on in the  canonical  format  which was  rejected by
	   LANC.  The fix now converts all multicast  addresses
	   into wire format  before  calling  lanc  routines to
	   enable/disable multicast addresses.
	4. lanadmin -A is enhanced to reset the MAC  address to
	   default.  When  the  address   string  is   DEFAULT,
	   lanadmin restores the default address for the card.

	PHNE_14367:
	1. The  type  2  code has always  assumed that the FDDI
	   drivers support CKO  feature.  So when it builds the
	   LLC  header    for  FDDI,  the  CKO info  is  always
	   prepended to it. This is incorrect for some recently
	   introduced FDDI's that do not support CKO.
	2. "linkloop"  does not check the MTU on the PPA  prior
	   to sending out the test frame.  If the customer  has
	   changed  the MTU of the  link,  linkloop  will  fail
	   unless the MTU size (or less) is  specified  via the
	   -s   parameter.  This  causes  the   MC/ServiceGuard
	   cmlogconfig  to  fail  when  it  shouldn't.  The fix
	   would be to check  the  mtu size  via  DL_HP_PPA_REQ
	   (dl_mtu) or  DL_INFO_REQ  (dl_max_sdu)  rather  than
	   using the default size for the mac type.

	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.

	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.

	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.

	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().

	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.

	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.

	PHNE_11051:
	1. 64-byte alignment changes to NIO Ethernet for T600
	   cache-line on 10.20 TFC.

	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.

	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:
	5003388603 5003408674 1653251025 5003394551 1653232157
	5003391888 1653230078 5003386516 5003375949 5003372565
	5003362418 4701341230 5003353771 1653158527

Patch Files:
	/usr/sbin/lanadmin
	/usr/sbin/linkloop
	/usr/lib/lanadmin/libdslan2.1
	/usr/lib/lanadmin/libdslan3.1
	/usr/conf/lib/liblan.a
	/usr/lib/nls/msg/C/lanadmin.cat
	/usr/share/man/man1m.Z/lanadmin.1m

what(1) Output:
	/usr/sbin/lanadmin:
		lanadmin.c: $Revision: 1.3.116.10 $ B.10.20  PHNE_14
			633(700)/PHNE_14634(800)
		LAN:    Version: B.10.10  $Date: 96/05/09 11:26:21 $
	/usr/sbin/linkloop:
		linkloop.c: PHNE_14367/PHNE_14368 $Revision: 1.7.116
			.4 $  $Date: 98/04/17 16:11:11 $
		LAN:    Version: B.10.10  $Date: 96/05/09 11:26:21 $
	/usr/lib/lanadmin/libdslan2.1:
		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:
		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/conf/lib/liblan.a:
		lan_t2.c: PHNE_14367(700)/PHNE_14368(800) type2 fix
			for non-cko fddi fix $Revision: 1.4.112.13 $
			 $Date: 98/04/17 10:40:21 $
		lan_dlpi.c for PHNE_14633(700)/PHNE_14634(800) $Revi
			sion: 1.5.112.27 $ $Date: 98/05/28 23:07:50
			$
		lanc_input.c  Revision: B.10.20 PHNE_14633(700)/PHNE
			_14634(800)
		lanc.c NEW DHCP BIND/UNBIND$Revision: 1.10.112.7 $ $
			Date: 98/05/18 15:00:41 $ PHNE_14633(700)/PH
			NE_14634(800)
		FILESET LAN: lib lan: Version: A.10.00
		lan2.c PHNE_14501(700)/PHNE_14502(800) $Revision: 1.
			9.112.20 $ $Date: 98/03/16 08:32:48 $
	/usr/lib/nls/msg/C/lanadmin.cat:
		None
	/usr/share/man/man1m.Z/lanadmin.1m:
		None

cksum(1) Output:
	2938956012 49152 /usr/sbin/lanadmin
	1239791116 40960 /usr/sbin/linkloop
	1555651383 16384 /usr/lib/lanadmin/libdslan2.1
	1267751970 16384 /usr/lib/lanadmin/libdslan3.1
	2943918402 255392 /usr/conf/lib/liblan.a
	2104969713 5483 /usr/lib/nls/msg/C/lanadmin.cat
	2240603502 3452 /usr/share/man/man1m.Z/lanadmin.1m

Patch Conflicts: None

Patch Dependencies:
	s700: 10.20: PHCO_10947

Hardware Dependencies: None

Other Dependencies: None

Supersedes:
	PHNE_9277 PHNE_10511 PHNE_11051 PHNE_11125 PHNE_11703 PHNE_12575
	PHNE_12871 PHNE_13585 PHNE_14501 PHNE_14367

Equivalent Patches:
	PHNE_14634:
	s800: 10.20

Patch Package Size: 440 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_14633

	5a. For a standalone system, run swinstall to install the
	    patch:

		swinstall -x autoreboot=true -x match_target=true \
			-s /tmp/PHNE_14633.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_14633.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_14633.  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_14633.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_14633.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions: None