(C)Copyright 1994-1998 SysKonnect,
a business unit of Schneider & Koch & Co. Datensysteme GmbH.
All rights reserved
================================================================================

Name   : devices.pci.48110040.rte.README

Readme File for SK-NET FDDI-FP Network Device Driver (NDD) 
Subject: SK-NET FDDI-FP, PCI NDD Driver for AIX for IBM PowerPC Serie

Version/ Date/ Author of this file: 1.49 / 98/10/08 / A. Fischer
Version/ Date/ Author of the referred subject: v1.21b02 / 98/10/06 / A.Fischer

This file contains 
(1) overview
(2) installation instructions for the PCI device driver on AIX 4.1
(3) reference list of additional device configuration parameters
(4) known limitaions
(5) bugs fixed
(6) problems fixed

================================================================================


(1) OVERVIEW
============
The network device driver (NDD) supports max. 32 SK FDDI PCI network
adapters.

Requirements:
-------------
 The SK-NET FDDI-FP network device driver is designed for network access
on AIX 4.1 based PowerPC machines with PCI bus.

For  proper driver access the corresponding FDDI protocol interface must
be installed for TCP/IP configuration.

Required software for network driver only:
devices.mca.8ef4.com		- Software package from AIX installation CD

Required Software for network driver's diagnostic package only:
bos.diag.rte 4.1.2.0            - Diagnostic software package from AIX
				  installation CD
devices.pci.48110040.rte 1.0.0.2 - Network driver package

If you select the complete NDD software package both the network driver and
the diagnostic package will be installed.


(2) INSTALL THE DRIVER ON AIX 4.1
=================================

For the following actions you should login as root on your console:

			* Software Installation
			  - Installation from console
			* Removing Software Package
			  - Deinstallation from console
			* Configuration of the NDD
			* Copyright messages

Software Installation
---------------------

You have probably done these steps below:

Run the `smit` program and step through the following menus:

		"Software Installation and Maintenance"
		      "Install and Update Software"
	  "Install/Update Selectable Software (Custom Install)"
		  "Install Additional Device Software"

Some additional input is required when the following text appears:

		"INPUT device / directory for software [ ]"

Press F4 and select the device /dev/fd0 (Diskette Driver)

		         "SOFTWARE to install [ ]"

Press F4 to list the software package on your installation diskette.

Then move the cursor to the desired item and press F7 <RETURN>:

			"x.x.x.x devices.pci.48110040"

Installation from console:

You can also install the network driver package from the system console
with the `installp` command as follows: 

Installation from floppy: installp -d /dev/fd0 devices.pci.48110040
Installation from HD    : installp -d <image-file> devices.pci.48110040

Typically the <image-file> is a disk dump file with the extension .dd .
You can create a 3,5" install diskette from this file:
		 dd if=<image-file> of=/dev/rfd0 bs=32k .


Removing Software Package
-------------------------

Before you deinstall the NDD package from your hard disk you must remove
the network driver from the kernel:

rmdev -l fi0		Remove FDDI protocol from network driver
rmdev -l fddi0 -d	Remove the network device driver

To remove the software package step through the following smit menus:

		"Software Installation and Maintenance"
		      "Maintain Installed Software"
			"Remove Software Products"

Press F4 to list the installed software packages. Use the search key "/"
to get to the network device software package. Select the driver package
`devices.pci.48110040.driver` with F7 and return to the previous menu.
Set the field `PREVIEW only` to `no` to remove the software package ....
Then hit the RETURN key to remove the software package.

Deinstallation from console:

You can remove the driver package with the `installp` comand as follows.
Deinstallation from HD    : installp -u devices.pci.48110040

You can also invoke the `smit` command for removing the driver software.
Please refer to the following section.

Configuration of the NDD
------------------------

You can configure up to 32 network devices of the same type.   Normally
the number of devices is restricted due to the limited number of system
resources available.   You need not care for system configuration para-
meters e.g. interrupt or IO space.  This is automatically done when you
reboot the computer or if you execute the `smit` command:

				"Devices"
		   "Configure Devices Added After IPL"

The configuration manager on your computer detects the network adapter
automatically in the PCI configuration space.   It creates the network
devices for each existing adapter.

If all network adapters have been configured the devices are set to the
state `Available`. Check the FDDI network driver state by entering this
command:
			lsdev -C | grep fddi

You can also configure some parameters that can be changed by the user.
These are parameters for configuring the MAC address, software queue or
the SBA/ESS (Synchronous Bandwidth Allocator/End Station Support). Find
a detailed description below.

To get to the driver's configuration menu step through these menus:

				"Devices"
			     "Communication"
			"SK-NET  FDDI-FP Adapter"
				"Adapter"
	"Change / Show Characteristics of an SK-NET  FDDI-FP Adapter"

and select a network device from the list of available devices

	"fddi0 Available 04-0X SK-NET  FDDI-FP Network Adapter"
	"fddi1 Available 04-0X SK-NET  FDDI-FP Network Adapter"
	....

A configuration window appears.Change the configuration parameters that
you want to change for the active device and press RETURN.  The network
device will be updated with the new configuration parameter.Please note
that some configuration becomes active if the network device is started
again. To do this you should detach any existing FDDI protocol from the
network device and start the protocol again.  Please note that the net-
work driver attaches to the FDDI ring if the device is opened by a user
(network protocol).  The driver detaches a device from the FDDI ring on
the last close.

Copyright messages:
-------------------

The NDD does not display any boot message on screen.When installing the
driver package the following copyright messages will be displayed:

"Copyright (C) 1995, 1996, 1997, 1998 SysKonnect
a business unit of Schneider & Koch & Co. Datensysteme GmbH.
All Rights Reserved."

"Synchronous Bandwidth Allocator, Copyright International Business
 Machines Corporation, 1993 - 1998. All rights reserved.

(3) ADDITIONAL DEVICE CONFIGURATION PARAMETERS
==============================================

"USER Data"
User data to be passed to the SMT for management information base (MIB).
	
"PMF password"
Parameter Management Frame (PMF) for the adapter. A nonzero PMF password
enables autorization checking of the adapter for remote change requests.
A PMF password of 0  disables the authorization checking of the adapter.
The PMF password consists of 16  hexadecimal digits. Default value is 0.

"Transmit Queue Size"
Number of tx - frames that can be queued by the driver software queue in
both the synchronous and the aysnchronous transmit queue when the ring is
under heavy load. Valid values: 3-250. Default value : 30.

"MAX T-REQ"
The parameter provides local write access to the 2s complement TReq value
registered as fddiMAC 51 in the SMT Standard.The value for TREQ is speci-
fied in milliseconds. The valid range reaches from 5 ms to 165 ms. If any
value is specified which is outside the limits, the upper/lower limit will
be used. If no value is specified the default value for TREQ (165 ms) will
be used.

"TVX lower bound"
This parameter provides local write access to the TVX attribute registered
as fddiMAC 54 in the SMT Standard.This attribute provides local control of
the recovery time from transient ring errors.  The value for TVX is speci-
fied in microseconds. The valid range reaches from 2500 us to 10000 us. If
a value is specified outside the limits, the upper/lower limit is used. If
no value is specified the default value for TVX (2700 us) is used.

"Enable Alternate MAC / SMT Address"
If the attribute is set to yes,the network node address will be set to the
alternate address instead of the manufacturer provided unique address.  If
the attribute is set to no, this has no effect. Valid values: yes, no.
Default value is no.

"Alternate MAC/SMT Address"
If the  `Enable Alternate Mac / SMT Address` attribute is set to yes, this
address describes the MAC address that is used as alternate network address.
A valid value is 12 hexadecimal digit. Default value is none.

"SBA_Payload"
The parameter defines the requested synchronous bandwidth for manual static
allocations. The valid range is from 0-1562 bytes per 125 micro seconds.For
example, if the required bandwidth is 1 MBit/s  (125,000 Bytes/s) the value
of the payload is  125,000 * 125E-6 = 15.625 round up to 16.  If a value is
specified outside the limits the upper/lower limit is used.
The default value is zero - no synchronous bandwidth is used.   The user is
required to define the amount of bandwidth to be able to  send  synchronous
frames.If the parameter SbaPayLoad is not specified the keyword SbaOverHead,
MaxTNeg, MinSegmentSize and SbaCategory have no effect.
The end station supports either the static allocation model,  where the re-
quested payload is specified by the parameter SbaPayload  or by the dynamic
allocation model,  where the required synchronous bandwidth is allocated by
the multimedia application.   If a multimedia application is used  that can
dynamically allocate the bandwidth, the parameter SbaPayLoad  should not be
specified.

"SBA_Overhead"
This parameter defines the requested overhead for static allocations.
The valid range reaches from 0 to 5000 bytes. If a value is specified which
is outside the limits, the upper/lower limit is taken. The default value is
50 bytes. This parameter has only an effect  if the parameter SbaPayLoad is
specified.

"Max_TNEG"
This parameter defines the maximum token rotation delay  that is acceptable
to the application(s) using synchronous bandwidth.  The valid range reaches
from 5 ms to 165 ms. If a value is specified outside the limits, the upper/
lower limit will be taken. The default value is 25 ms.This parameter has an
effect, if the parameter SbaPayLoad is specified.

"Min_Segm_Size"
This parameter defines the minimum synchronous segmentation size. The value
corresponds to the amount of bytes to be transmitted on a per token opportu-
nity. The valid range reaches from 1 to 4478 bytes. If a value is specified
which is outside the limits,the upper/lower limit is used.The parameter has
only an effect if the keyword SbaPayLoad is specified.

"SBA_Category"
This parameter defines the session ID of the  SBA_Category  for the  static
allocation.The valid ranges reaches from 0 to 65535.If a value is specified
which lies outside the limits, the upper / lower limit will be taken.  This
parameter has only an effect, if the keyword SbaPayLoad is specified.

"Sync_Tx_Mode"
This keyword defines the synchronous transmission mode.The default value is
'SPLIT' where only packets identified as synchronous packets shall be trans-
mitted by the synchronous queue.The other value is 'ALL' that means that all
LLC  packets received from upper layers are transmitted via the  synchronous
queue.  This keyword has only an effect, if the end station support was able
to get the required synchronous bandwidth from the SBA.

"SBA_Command"
The SbaCommand  specifies a SBA local action to start / stop the SBA of the
network device. Valid values: start, stop. Default value : stop.

"SBA_Available"
The parameter  SbaAvailable  specifies the maximum synchronous bandwidth in 
percent available for the primary path.   If the value is outside the valid
range, the upper/lower limit will be taken. Valid values: 0 .. 100. Default
value is 50.

(4) KNOWN LIMITATIONS
=====================

No limitations are known.

(5) KNOWN BUGS
==============

(6) PROBLEMS FIXED
==================

Problems fixed in rel: v1.02b01:
--------------------------------

The DAS adapters did not insert into a dual ring. This problem is fixed.

A lack of performance may be caused on the send side due to a problem when
scheduling the transmit queue.   The performance problem when sending with
max. speed has been fixed in this driver release.

A strange behaviour of the LEDs was detected when loading or unloading the 
network driver. This problem is fixed.

The error message "ST3L: parity error in receive queue 2" has been printed
out although this error did not occur. This problem had been fixed.   This
message was caused due to checking the wrong bit. The problem is fixed.

Problems fixed in rel: v1.02b03:
--------------------------------

NFS accesses are very slow with the PCI FDDI board if there is no traffic.
Since NFS keeps on waiting for tx-mbuf to be freed immediately, the driver
checks the outgoing mbufs for an optional free - function. If such a free-
function exists  (like in NFS mbufs)  a tx-complete interrupt is generated
after the mbuf has been sent. This prevents NFS from running slowly.

When running the driver on multiprocessor machines an invalid IO address
may be used for IO access that causes one processor reading invalid data
and blocking the system. This bug has been fixed in this release.

When queueing outgoing frames with a very high rate  (more than 70% of the
tx frames) frames may be lost when the driver was not able to clear the tx
queue.

When running netperf - tests on TCP/IP  with the RFC1323 option set to one
a lack of performance was detected.In this mode additional space in the tx
ring is needed for sending higher fragmented frames. A higher number of tx
fragments in the transmit path prevents the driver from  queueing too many
frames.

Problems fixed in rel: v1.02b04:
--------------------------------

Allocation of RX mbufs has been changed. The driver allocates now receive
buffers with two 4K mbufs instead of a single mbuf with more than 4K size.
This was neccessary due to an  'out of mbuf' error that was caused by the
driver's  preallocation function for receive buffers.    System resources
exhausted due to the large amount of receive buffer storage of the driver.

Problems fixed in rel: v1.02b05:
--------------------------------

Allocation of RX mbufs has been made configurable.Configuration parameters
for allocation of both frames with two 4K mbufs and with single mbufs with
more than 4K size have been added to the smit configuration files. Now the
two configuration parameters  `Extended receive mbuf size`  and   `Receive
frame count` can be used to specify the type of allocation and the  number
of max. receive buffers (frames) in the receive queue.

Support of VPD has been implemented in the driver.

Error logging has been implemented in the driver.

Problems fixed in rel: v1.02b06
-------------------------------

The following bug in the SMT has been fixed:
After a ring op changes or a driver reset it could happen, that the FORMAC
and the ASIC became asynchronous.As a consequence the following may happen
	- PCI bus violations, the machine my hang up.
	- The FORMAC may send frames which will never
 	  stripped by any station after a ring operational change.
The bug has been fixd in this driver release release.

Problems fixed in rel: v1.02b07
-------------------------------

The RX/TX descripors have been placed into physical contiguous memory.
If a large number of descriptors are used a page size of 4K memory will be
exceeded that may not be physically contguous.

Problems fixed in rel: v1.02b08
-------------------------------

In the previous release the driver did not correctly set the multicast RX-
mode automatically if the multicast address table was full.The problem has
been fixed in this release. Independent of setting the multicast RX - mode
by I/O control the driver enables the promisuous mode automatically if the
multicast  address table is full and disables the promisuous mode again if
the address table contains less multicast addresses than the address table
can hold ( assumed that the multicast receive mode is not enabled by I/O -
control permanently).

Problems fixed in rel: v1.03b01:
--------------------------------

Previous PCI drivers that include SMT software releases  2.6.2  and before
had the following SMT bug:

A dual homing problem has been detected in DAS and DAC: If you plug port B
and then port A and then unplug port B again the ring would come up  after
50 seconds. The bug has been fixed in this new release. Now the ring comes
up immediately.The network driver contains SMT software release 2.6.3 that
complies to the SMT version 7.3.


A bug in the receive part of the driver has been fixed, that causes a loss
of performance only: on heavy receive load the receive descriptor ring was
completely cleared, that delayed the next receive interrupt.An internal rx
counter was not reset on adapter restart. As a consequence the rx-ring was
not refilled correctly. Basically the problem does not happen if the driver
was not restarted or was reloaded.  The problem occurs the first time after
the driver was stopped (but not unloaded) and restarted and if system mbufs
become low.

Error Log Entry: LABEL:          SKFX_HWM_SWE
		 IDENTIFIER:     A06C8DD0
		 FAILURE REASON:	HWM: Out of RxD condition detected


The field "Max Packets on S/W Transmit Queue:" was set to the max. transmit
queue length. It should be a 'high water' mark of the maximum number of the
packets ever queued up to the driver. In the new driver release it reflects
the high water mark of frames that have been queued after the last reset of
FDDI statistic counters. This field can be reset by 'fddistat -r' command.

Problems fixed in rel: v1.04b01:
--------------------------------

A bug was fixed  that could cause a driver crash or at least invalid data:
When the driver requeues a receive descriptor  because the descriptor ring
of the receive side was empty  an incorrect physical address may passed to
receive descriptor ring. If the length of the next receive frame exceeds a
page size of 4K the system could crash.Typically this happens only on very
strong receive load or if the driver receives an SMT - frame followed by a
any rame with a length of more than 4K. This does not happen if the driver
configuration parameter "Extended receive mbuf size" was set to "yes" (no
default value).

Internal NDD statistics will be set by the driver correctly.   The former
driver release did not set the NDD statistic variables.NDD statistics can
be displayed with the 'ndb' command.

The receive address table returned from the NDD_MIB_ADDR - IO control was
incorrect. This has been corrected.

The IO controls NDD_MIB_QUERY and NDD_MIB_GET were not implemented in the
former driver release but the driver returned zero  indicating valid data
have been copied into the caller's receive buffer. Now both  IO  controls
are implemented and will return correct data.

Problems fixed in rel: v1.04b02
-------------------------------

Additional trace IDs have been added for the trace groups 'open / close /
config / control and error conditions. This allows a trace separated from
the RX and TX path (that will normally produce very much output).

Problems fixed in rel: v1.04b03
-------------------------------

Statistic counters for in/out errors and purged frames were not correctly
updated. This has been fixed in this latest release.

Problems fixed in rel: v1.04b04
-------------------------------

The IOCTRL command 'NDD_MIB_ADDR' returned an invalid mac address. Now it
returns the physical address format of the mac address.

The  NDD_RUNNING  flag is set in the ndd_flags field before the driver is
ready to transmit packets. The NDD_RUNNING  flag remains set in the field
after the cable is unplugged.Now the flag is set when the NDD is attached
to the ring and is removed when the NDD is detached from the ring.

Not all trace points are formated in the trace format file.Additional IDs
have been added to the trace file for the rx- function:  mac_drv_rx_init.

The command fddistat showed an invalid statistic value for the Connection
Policy Violation. This is now set to zero because there is no appropriate
SMT variable available for this statistic counter.

A bug in the PowerManagement handler function was fixed that lets the NDD
crash on SMP environment only (invalid lock access).

Problems fixed in rel: v1.04b05 / v1.04
---------------------------------------

A bug in the PowerManagement handler functions was fixed  that caused the
driver not to attach to the ring again after coming up from hibernation.

IOCTLs have been added to the ADD FILTER command for receiving SMT frames
from the network driver's SMT.

The network driver description has been changed for the lsdev -C command.

Problems fixed in rel: v1.05b01 / v1.05
---------------------------------------

The error log message identifies now the adapter number  that displayed the
error e.g: fddi0, fddi1 .....

In error logs of previous driver releases it could happen that an error text
was truncated.The maximum length of error message field 'Detail_Data' is now
128 characters instead of 64 characters before.

If the driver is busy and the customer tries to unload the driver it does no
more generate an error log entry (rmdev -l fddiX).

   In previous driver releases no error message description was added to the 
error description data base (errpt -w E) for the driver specific message IDs
8500 - 8509.In this new release an appropriate error description is added to
the data base file. Instead of the message ID  the errorlog output shows now
the error description.

A bug was fixed that could cause a system crash if a not existing device was
initialized.

Problems fixed in rel: v1.06b01
-------------------------------

A bug was fixed that could cause a system crash under certain circumstances:

When the driver has to requeue outgoing frames due to heavy netload and the
cable connected to the corresponding adapter was unpluged and pluged  again
the system could crash. The problem does not occur,if the cable of an other
station was unpluged to generate the ring operational change.

Problems fixed in rel: v1.06b02
-------------------------------

Another bug was fixed that let the outgoing traffic stuck after he cable of
the corresponding adapter was unpluged and pluged during heavy netload. Any
applications e.g. TCP/IP or ping would no more operate correctly though the
operating system seems to work fine.   The problem could be resolved if the
network driver was restarted again. Under certain circumstances the machine
could also hang up.

On SMP machines tx - frames may be lost if the network driver has to  queue
outgoing frames due to heavy network load and any existing frames in the tx
queue are cleared during a long inoperational time (> 1 sec) of the network
adapter.The order of queued frames may be corrupted due to a SMP sync. bug.
A system crash or driver hang up was not yet detected concerning this bug.

Problems fixed in rel: v1.06b03 / v1.06
---------------------------------------

A new SMT release 2.6.4 has been implemented in this driver  release  with
the following changes:

- all stations: SUCCESS was returned on an PMF SET frame when setting the
  mib.a[PATH0].fddiPATHSbaOverhead , but the parameter cannot be set when
  mib.a[PATH0].fddiPATHSbaPayload is zero.
  Now 'not authorizeed' is returned in this situation.

- all stations with SBA:DENIED was returned on an PMF SET when setting the
  mib.a[PATH0].fddiPATHSbaAvailable and the SBA is not started ;
  'not authorizeed' should be returned.

- all stations: mib.fddiSMTStationStatus was not set correctly.

- all stations/concentrator: entering RM4:NON_OP_DUP via RM(34a) , RM(34b)
  or RM(34c) the station should disconnect from the ring. In the  old  SMT
  version it was working, but it immediately reconnected to the ring.  Now
  it will not reconnect. An errorlog is generated.

- all stations/concentrator:the Link Error rate was compute wrongly (about
  factor 12 to high)

- all stations/concentrator:the PLCs interrupt mask was not set correctly.
  The PL_SELF_TEST bit was not set.  The incorrect interrupt mask caused a
  missing interrupt in the TRACE state and an unnecessary wait of 7 sec.

Problems fixed in rel: v1.07b01
-------------------------------

A new SMT release 2.6.5 has been implemented in this driver  release  with
the following changes:

- all stations :  Setting SBA parameter results in success or `OutOfRange`
  error.
- all station concentrator :  duplicate address is now detected correctly.
  The Duplicate Claim with T-Bid != T-Req is signaled directly to RMT.
- PCI driver:the PLC signaling starting has changed for the internal port.
  It is now exactly according to the PLCS description.
- SN3 drivers :  sometimes the PLL logic got locked up (under strange vol-
  tage and temperature conditions).    In that case the whole card must be
  reset. The reset is handled by the individual driver. For that purpose a
  function called drv_reset_indication is introduced. Also an Error log is
  made in that situation.
- all drivers/concentrator: increment fddimibEBError_Ct if neccessary.

Problems fixed in rel: v1.07b02
-------------------------------

- The following bug was fixed:
  Under stress the TX descriptor ring of the driver may run out of free TX
  descriptors to be used for TX frames.If this happens the driver needs to
  clear fragments from the TX descriptor ring,that have been already sent.
  Clearing the TX descriptor ring may conflict with a send operation  when
  a new transmit descriptor list for a TX frame is generated. In this case
  the TX fragment list was corrupted and did not send the correct data out
  to the network. As a consequence protocols like TCP / IP receive invalid
  data frames that seem to have an invalid packet size set in the protocol
  header.TCP/IP performs retransmission and will get retransmission errors.
  As a result a bad performance may be achieved.

- The following bug was fixed:
  If the driver was just loaded but not started and was unloaded again the
  driver did not free receive mbuf resources again.The bug could cause the
  system running out of mbufs if the command is executed very frequently :

  mkdev -l fddiX		or	   chdev -l fddi0 -a MBUF_type=yes
  rmdev -l fddiX			   chdev -l fddi0 -a MBUF_type=no
  mkdev -l fddiX			   chdev -l fddi0 -a MBUF_type=no
  rmdev -l fddiX			   chdev -l fddi0 -a MBUF_type=yes
  .....					   .....

A new SMT release 2.6.6 has been implemented in this driver  release  with
the following changes:

- FDDI PCI driver: Workaround for SN3 temperature / low voltage problem has
  changed. The counter of EBUF errors increased.
- all stations and concentrators: EBErrors can now be received by SMTLOOK.

Problems fixed in rel: v1.07b03
-------------------------------

- The following bug was fixed:
  When setting a MAC address at driver initialization  a canonical address
  was expected by the driver.  As a consequence the ndb and lscfg commands
  displayed a different MAC address than passed to the driver. The address
  format that is passed to the driver is also physical format  as returned 
  from the driver in the NDD - interface structure  and therefore needs to 
  be converted into canonical form.The bug has been fixed in this release.

Problems fixed in rel: v1.07b04
-------------------------------

- The following bug was fixed for multiprocessor machines only:
  In a stress situation it happens that tx frames have to be queued in the
  transmit queue because the receive path (interrupt was busy).  Sometimes
  the tx - scheduler function was not enabled for clearing the tx - queue.
  This problem caused performance leaks  that can be detected with netperf
  tool. The bug is fixed in this new release.

Problems fixed in rel: v1.07b05
-------------------------------

A new SMT release 2.6.7 has been implemented in this driver  release  with
the following changes:

-Setting the TReq parameter was not handled correctly in the ISOLATED ring
 state.This caused situation where the SBA could not be started correctly.

Problems fixed in rel: v1.07b06
-------------------------------

- The following bug was fixed:
  If the driver was loaded and opened and was closed again the driver did
  not free receive mbuf resources again.  This bug could cause the system
  running out of mbufs if the command is executed very frequently.

Problems fixed in rel: v1.07b07
-------------------------------

The driver release number has been added to the driver's object file that
can be requested with the following command:

		what /etc/drivers/<driver-object>

A release string is displayed for a beta release e.g:
		SK-NET FDDI-PCI rel. v1.07b07 96/11/15 (C) SK" ;

or for a final release e.g:
		SK-NET FDDI-PCI rel. v1.07 96/11/15 (C) SK" ; 


Problems fixed in rel: v1.08b01
-------------------------------

 A bug was fixed for multiprocessor machines concerning the following bug
 fix that has been done already ( for single processor machines only ) in
 release: v1.07b01

- SN3 drivers :  sometimes the PLL logic got locked up (under strange vol-
  tage and temperature conditions).    In that case the whole card must be
  reset. The reset is handled by the individual driver. For that purpose a
  function called drv_reset_indication is introduced. Also an Error log is
  made in that situation.

  The workaround for the problem described above did not work correctly on
  SMP machines.A system lock may occur while recovering from the PLL error
  condition due to a conflict with the TX path. Now the problem is fixed.

Problems fixed in rel: v1.08b02
-------------------------------

  A bug was fixed concerning the `PLL logic` problem  described above for
  previous driver release.

  If the driver needs to recover from the `PLL logic hangup condition` it
  causes the consumtion of system mbufs. As a consequence the system runs
  out mbuf resources over a long time. The system locks up. Sometimes the
  error log entry may occur: HWM: Out of RxD condition detected

Problems fixed in rel: v1.08b03
-------------------------------

  The following bugs have been fixed:

  If the tx-ring runs out of space during the tx queue is cleared the tx-
  queue looses mbufs only if the tx - queue is partially cleared when the
  `tx ring is full` condition is given. As a consequence the system could 
  run out of system resources after a long time.  The problem occurs only
  if there is at least a network load of more that 90% over a long time.

  A spurious interrupt may occur after the driver has been closed and the
  adapter`s interrupt has been disabled. In this case the driver`s inter-
  rupt handler returned an invalid return code, indicating that there was
  no valid interrupt. The system displays a SYSINTR error log message.

Problems fixed in rel: v1.08b04
-------------------------------

  The following bug has been fixed for MP machines:

  The driver may loose some tx - mbufs while queueing frames due to heavy
  network load. The lack is caused by a missing SMP lock.

Problems fixed in rel: v1.08b05
-------------------------------

  The following bug has been fixed for MP machines:

  On heavy network load the tx-queue may be overload on a tx packet storm
  that caused the driver to exceed the max. number of packets in the tx -
  queue. As a consequence to much mbuf resources are held by the driver .
  The protocol stack may hang due to a resource allocation failure . This
  problem does not occur on single processor machines.  Normally the mbuf
  resources are returned to the system's mbuf pool  when  the  driver  is
  exiting the stress situation. The bug is fixed in this new release.

  Spurious interrupts may still occur  when the driver recoveres from the
  PLL elasticity event ( see also rel. v1.07b01 ) when there is heavy tx-
  load e.g. a UDP tx storm. This problem is also fixed.

Problems fixed in rel: v1.08b06
-------------------------------

  The following bug has been fixed:

  SBA/ESS did not work correctly . The allocation of synchronous bandwith
  failed. It was impossible to use synchronous bandwith between two nodes
  that requested synchronous bandwidth from an SBA. Now the bug is fixed.

Problems fixed in rel: v1.09b01
-------------------------------

  The following bug has been fixed:

  If there is transient interrupt source  that does not persist to be read
  again by the second level interrupt handler ,  this can cause the driver
  to disable interrupts without enabling them again.  As a consequence the
  driver seems to hang in the receive side . In this case the led does not
  indicate a 'ring operational change'  when disconnecting the driver from 
  the FDDI ring (green led is still on).

Problems fixed in rel: v1.09b04
-------------------------------

  The following has been changed:

  The ODM data base entry for the interrupt level has been changed as
  follows (IBM/ID:214907):	default value == "" (empty)
				value range   == "" (empty)

  This allows the system to use a wider range of interrupt levels for
  the PCI driver.

  To avoid a possible deadlock situation in the PM handler the MP- lock in 
  the the PM handler function has been removed except for critical code as
  stopping and starting the network driver (IBM/ID:218111).

  The following bug has been fixed:

  The driver may let the system crash due to an invalid mbuf pointer  that
  is used in the `nd_trace` kernel interface function.  This may happen if
  data is sent via NFS.The problem (IBM/ID:217487) is fixed in this driver
  release.

  The driver may let the system crash during an internal data copy of SMT
  data, that have been received from the network addressed to the driver's
  local SMT. This problem is caused by a ring-op, when the driver receives
  large SMT info frames, or after loading and connecting the driver to the
  network The problem (IBM/ID:217732) is fixed in this driver release.

Problems fixed in rel: v1.10b01
-------------------------------

The following bugs have been fixed:

The machine initialization by BIOS or Firmware of the PCI command register
was overwritten since the command register was not read back before is was
configured. The bug has been fixed in this release.

There was an uninitialized local variable that is used to update the m_flag
of an mbuf that could cause kernel crashes. This function is called only if
a driver user has requested SMT frames to be returned from the driver . The
problem has been triggered by a new version of the snmpd command in AIX 4.2.
The problem does not occur in normal operation with TCP/IP of NFS.  The bug
has been fixed in this release.

When executing a `sna -display` command SNA gets a timout error if only SNA
is attached to the driver but no other protocol stack e.g. FDDI.The timeout
was cuased by a wrong signaling of the driver's LIMBO and RUNNING status to
the upper protocol with both the ndd interface structure and the  nd_status
interface function. 

The incorrect signaling is shown in picture (I). The correction is shown in
picture (II): 

L=Driver is loaded
O=First open of network driver (NDD_open)
C=(Re-)Connect to FDDI ring
D=Detach from FDDI ring
*=nd_status - messages

I)		 SK FDDI driver - status signaling (rel 1.09b04)
		 -----------------------------------------------

                L  O      C         D        C
                    
		   __________________________________        1 (set)
NDD_UP		___|.........................................0

		          ___________        ________        1 (set)
NDD_RUNNING	__________|         |________|...............0

		   ________         __________               1 (set)
NDD_LIMBO	___|      |_________|        |_______........0

*NDD_CONNECTED
*NDD_LIMBO_EXIT           X                  X
*NDD_LIMBO_ENTER                    X


II)		  SK FDDI driver - status signaling (rel 1.10b01)
		  -----------------------------------------------

                L  O      C         D        C
                    
		   __________________________________        1 (set)
NDD_UP		___|.........................................0

		          ___________        ________        1 (set)
NDD_RUNNING	__________|         |________|...............0

		                    __________               1 (set)
NDD_LIMBO	____________________|        |_______........0

*NDD_CONNECTED            X
*NDD_LIMBO_EXIT                              X
*NDD_LIMBO_ENTER                    X


Problems fixed in rel: v1.11b01
-------------------------------

64 Bit enhancement:

The 64bit enhancement does not apply to the ability of addressing physical
64 bit wide addresses by the NIC. There is still no such enhancement in the
driver. Furthermore this means only that the driver may also be loaded to a
64 bit hardware platform.

Problems fixed in rel: v1.12b01
-------------------------------

In case of a 'bus list overflow'  error a frame's fragmentation of physical 
addresses may exceed internal storage capacity of the TX descriptor ring.In
this case the frame was discarded .  The driver has been enhanced to handle
this exception by allocating a new mesage block  and copying data into this
new data block before executing the DMA operation .  If this operation also
fails the driver will generate a 'bus list overflow'. This is not a bug fix
but may solve TX problems especially if a protocol sends frames  that exist
of several mbufs that do not fit temporarily into the TX descriptor ring.

Changes for 64 Bit enhancement:

The DMA_MAXMIN_512K flag  passed to the D_MAP_INIT kernel function has been
changed to the value DMA_MAXMIN_2M. Also the DMA_BYPASS flag that is passed
to the D_MAP_LIST function has been changed to DMA_READ.

Problems fixed in rel: v1.12b02
-------------------------------

The following bug has been fixed:

   After returning from completed DMA operation when unmapping physical DMA
addresses an invalid pointer was passed to the kernel function D_UNMAP_LIST.
This occures also  if the ring is down and the protocol layer tries to send
a frame to the network. The bug may cause a system crash.A system crash has
not been detected yet but is likely especially on heavy network load.

    The configuration utility that is used for loading and initializing the
driver has been changed. Some printf messages have been removed.

Problems fixed in rel: v1.12b03
-------------------------------

The following bug has been fixed:
 
Due to a bug in the driver' s configuration part configuration of more than
10 devices was not possible  since the network device driver did not handle
the logical device name fddi10 (and higher) correctly. The bug is now fixed
in this release.

Problems fixed in rel: v1.20b02
-------------------------------

The following bug has been fixed:

In previous driver releases the 'Purged Frame' - error counter was not set
to zero when the fddi statictic was reset with the command: 'fddistat -r'.
The bug is now fixed and the statistic counter will be cleard correctly.

New features of rel: v1.20b02
-----------------------------

SubVendor/SubDevice ID support has been added to the driver's installation 
part. Packaging has been changed and supports now multiple vendor / device 
ids that will be recognized automatically if the hardware is present . For
a detailed list of supported products you may run the 'smit list software'
command that shows the contents of the installation media.

Since AIX  4.3 recognizes PCI SubVendor/Device IDs for autoconfiguration a
product specific hardware description will be installed to the object data
base depending on the NIC' s SubVendor/Device ID provided the installation
media lists the corresponding type of network adapter.

Please note : there is only one diagnostic tool on the installation media.
If the diagnose is not automatically installed by executing  'smit cfgmgr'
command you should install it manually from the list of software  that  is
shown by the `smit list software` command sequence . Normally the diagnose
is only installed automatically if the installed NIC identifies the ` base
vendor/device ID` of the diagnose software that is normally 0x48110040 for
SK network cards . The DIAGNOSE can be run on any 32-bit NIC listed on the
installation media ( THE DIAGNOSE IS NOT VALID FOR NICs THAT SUPPORT 64BIT
WIDE PCI SLOTS ) .

This sample shows the contents of an AIX installation media from SK:

devices.pci                            ALL @devices.pci _all_filesets 
  SysKonnect FDDI PCI Adapter              @devices.pci.48110040.rte
  SysKonnect FDDI PCI Adapter Diagnostics  @devices.pci.48110040.diag 
  SysKonnect FDDI PCI Adapter SK-5521      @devices.pci.48112155.rte
  SysKonnect FDDI PCI Adapter SK-5522      @devices.pci.48112255.rte
  SysKonnect FDDI PCI Adapter SK-5541      @devices.pci.48114155.rte
  SysKonnect FDDI PCI Adapter SK-5543      @devices.pci.48114355.rte
  SysKonnect FDDI PCI Adapter SK-5544      @devices.pci.48114455.rte
  SysKonnect FDDI PCI Adapter SK-5821      @devices.pci.48112158.rte
  SysKonnect FDDI PCI Adapter SK-5822      @devices.pci.48112258.rte
  SysKonnect FDDI PCI Adapter SK-5841      @devices.pci.48114158.rte
  SysKonnect FDDI PCI Adapter SK-5843      @devices.pci.48114358.rte
  SysKonnect FDDI PCI Adapter SK-5844      @devices.pci.48114458.rte

If a NIC is installed with a SubVendor/Device ID different from  48110040
(that represents the base product) only the rte part is installed but not
the diagnose.Since the first entry 'devices.pci.48110040.rte' of the list
of supported products is a prerequisite for all other products it will be
installed automatically  if the hardware matches any of the other network
products.

The following object database configuration parameters have been added:
 
- 'Enable Ring State Log'
The driver configuration parameter allows the network administrator to log
FDDI ring state transitions.If enabled this new driver feature displays an
INFO message in the system log whenever the FDDI ring state changed.
It allows the network administrator  to keep track of unexpected events in
the FDDI network e.g. the failure of a network component.
  
- 'PCI Cache Line Size'
This configuration parameter overwrites the system PCI configuration value
for PCI Cache Line Size.The default value is `ignore` that does not modify
the PCI configuration register . If set to any value of the selection list
the driver changes the PCI  configuration register to one of the following
values : 2,4,8,16,32,64 or 128 (not valid for 32 bit PCI Nic) .
   
- 'PCI Latency Timer'
This configuration parameter specifies the max. time  the PCI adapter can
continue with bus master transfers after the system arbiter  has  removed
the GNT signal. The time is specified in units of PCI bus clocks. Default
value is -1 that does not change the PCI configuration value .  The valid
range of values is: -1 - 255 ."
    
- 'PCI Memory Write and Invalidate Cycle'
The 'Memory Write and Invalidate Cycle' configuration parameter is used to
overwrite the system PCI configuration value.The default value is 'ignore'
that does not modify the PCI configuration register. If set to `enable` or
`disable`  bit 4 of the command register of the PCI configuration space is
set to the corresponding bit value 1 or 0 (MWIEN-bit).

Problems fixed in rel: v1.21b01
-------------------------------

A new SMT software release 2.8.2 has been included.This contains a bug fix
regarding dual homing: the dual homing operation mode on multiple adapters
did not work correctly  since multiple NICs affected each other  and could 
cause link state failures.