[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts

Fiber Distributed Data Interface (FDDI) Device Driver

The FDDI device driver is a dynamically loadable device driver that runs on systems using AIX Version 4.1 (or later). The device driver is automatically loaded into the system at device configuration time as part of the configuration process.

The interface to the device is through the kernel services known as Network Services.

Interfacing to the device driver is achieved by calling the device driver's entry points for opening the device, closing the device, transmitting data, doing a remote dump, and issuing device control commands.

The FDDI device driver supports the SMT 7.2 standard.

Configuration Parameters for FDDI Device Driver

Software Transmit Queue The driver provides a software transmit queue to supplement the hardware queue. The queue is configurable and contains between 3 and 250 mbufs. The default is 30 mbufs.
Alternate Address The driver supports specifying a configurable alternate address to be used instead of the address burned in on the card. This address must have the local bit set. Addresses between 0x400000000000 and 0x7FFFFFFFFFFF are supported. The default is 0x400000000000.
Enable Alternate Address The driver supports enabling the alternate address set with the Alternate Address parameter. Values are YES and NO, with NO as the default.
PMF Password The driver provides the ability to configure a PMF password. The password default is 0, meaning no password.
Max T-Req The driver enables the user to configure the card's maximum T-Req.
TVX Lower Bound The driver enables the user to configure the card's TVX Lower Bound.
User Data The driver enables the user to set the user data field on the adapter. This data can be any string up to 32 bytes of data. The default is a zero length string.

FDDI Device Driver Configuration and Unconfiguration

The fddi_config entry point performs configuration functions for the FDDI device driver.

Device Driver Open

The fddi_open function is called to open the specified network device.

The device is initialized. When the resources have been successfully allocated, the device is attached to the network.

If the station is not connected to another running station, the device driver opens, but is unable to transmit Logical Link Control (LLC) packets. When in this mode, the device driver sets the CFDDI_NDD_LLC_DOWN flag (defined in /usr/include/sys/cdli_fddiuser.h). When the adapter is able to make a connection with at least one other station this flag is cleared and LLC packets can be transmitted.

Device Driver Close

The fddi_close function is called to close the specified network device. This function resets the device to a known state and frees system resources used by the device.

The device is not detached from the network until the device's transmit queue is allowed to drain.

Data Transmission

The fddi_output function transmits data using the network device.

The FDDI device driver supports up to three mbuf's for each packet. It cannot gather from more than three locations to a packet.

The FDDI device driver does not accept user-memory mbufs. It uses bcopy on small frames which does not work on user memory.

The driver supports up to the entire mtu in a single mbuf.

The driver requires that the entire mac header be in a single mbuf.

The driver will not accept chained frames of different types. The user should not send Logical Link Control (LLC) and station management (SMT) frames in the same call to output.

The user needs to fill the frame out completely before calling the output routine. The mac header for a FDDI packet is defined by the cfddi_hdr_t structure defined in /usr/include/sys/cdli_fddiuser.h. The first byte of a packet is used as a flag for routing the packet on the adapter. For most driver users the value of the packet should be set to FDDI_TX_NORM. The possible flags are:

CFDDI_TX_NORM Transmits the frame onto the ring. This is the normal flag value.
CFDDI_TX_LOOPBACK Moves the frame from the adapter's transmit queue to its receive queue as if it were received from the media. The frame is not transmitted onto the media.
CFDDI_TX_PROC_ONLY Processes the status information frame (SIF) or parameter management frame (PMF) request frame and sends a SIF or PMF response to the host. The frame is not transmitted onto the media. This flag is not valid for LLC packets.
CFDDI_TX_PROC_XMIT Processes the SIF or PMF request frames and sends a SIF or PMF response to the host. The frame is also transmitted onto the media. This flag is not valid for LLC packets.

Data Reception

When the FDDI device driver receives a valid packet from the network device, the FDDI device driver calls the nd_receive function that is specified in the ndd_t structure of the network device. The nd_receive function is part of a CDLI network demuxer. The packet is passed to the nd_receive function in mbufs.

Reliability, Availability, and Serviceability for FDDI Device Driver

The FDDI device driver has three trace points. The IDs are defined in the /usr/include/sys/cdli_fddiuser.h file.

For FDDI the type of data in an error log is the same for every error log. Only the specifics and the title of the error log change. Information that follows includes an example of an error log and a list of error log entries.

Example FDDI Error Log

Detail Data
   
FILE NAME
line: 332 file: fddiintr_b.c
   
POS REGISTERS
F48E D317 3CC7 0008
   
SOURCE ADDRESS
4000 0000 0000
   
ATTACHMENT CLASS
0000 0001
   
MICRO CHANNEL AND PIO EXCEPTION CODES
0000 0000 0000 0000 0000 0000
   
FDDI LINK STATISTICS
0080 0000 04A0 0000 0000 0000 0001 0000 0000 0000
0001 0008 0008 0005 0005 0012 0003 0002 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
   
SELF TESTS
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000
   
DEVICE DRIVER INTERNAL STATE
0fdd 0fdd 0000 0000 0000 0000 0000 0000

Error Log Entries

The FDDI device driver returns the following are the error log entries:

ERRID_CFDDI_RMV_ADAP This error indicates that the adapter has received a disconnect command from a remote station. The FDDI device driver will initiate shutdown of the device. The device is no longer functional due to this error. User intervention is require to bring the device back online.

If there is no local LAN administrator, user action is required to make the device available.

For the device to be brought back online, the device needs to be reset. This can be accomplished by having all users of the FDDI device driver close the device.

When all users have closed the device and the device is reset, the device can be brought back online.

ERRID_CFDDI_ADAP_CHECK This error indicates that an FDDI adapter check has occurred. If the device was connected to the network when this error occurred, the FDDI device goes into Network Recovery Mode in an attempt to recover from the error. The device is temporarily unavailable during the recovery procedure. User intervention is not required to bring the device back online.
ERRID_CFDDI_DWNLD Indicates that the microcode download to the FDDI adapter has failed. If this error occurs during the configuration of the device, the configuration of the device fails. User intervention is required to make the device available.
ERRID_CFDDI_RCVRY_ENTER Indicates that the FDDI device driver has entered Network Recovery Mode in an attempt to recover from an error. The error which caused the device to enter this mode, is error logged before this error log entry. The device is not fully functional until the device has left this mode. User intervention is not required to bring the device back online.
ERRID_CFDDI_RCVRY_EXIT Indicates that the FDDI device driver has successfully recovered from the error which caused the device to go into Network Recovery Mode.The device in now fully functional.
ERRID_CFDDI_RCVRY_TERM Indicates that the FDDI device driver was unable to recover from the error which caused the device to go into Network Recovery Mode and has terminated recovery logic. The termination of recovery logic may be due to an irrecoverable error being detected or the device being closed. If termination is due to an irrecoverable error, that error will be error logged before this error log entry. User intervention is required to bring the device back online.
ERRID_CFDDI_MC_ERR Indicates that the FDDI device driver has detected a Micro Channel error. The device driver initiates recovery logic in an attempt to recover from the error. User intervention is not required for this error unless the problem persists.
ERRID_CFDDI_TX_ERR Indicates that the FDDI device driver has detected a transmission error. User intervention is not required unless the problem persists.
ERRID_CFDDI_PIO Indicates the FDDI device driver has detected a program IO error. The device driver initiates recovery logic in an attempt to recover from the error. User intervention is not required for this error unless the problem persists.
ERRID_CFDDI_DOWN Indicates that the FDDI device has been shutdown due to an irrecoverable error. The FDDI device is no longer functional due to the error. The irrecoverable error which caused the device to be shutdown is error logged before this error log entry. User intervention is required to bring the device back online.
ERRID_CFDDI_SELF_TEST Indicates that the FDDI adapter has received a run self-test command from a remote station. The device is unavailable while the adapter's self-tests are being run. If the tests are successful, the FDDI device driver initiates logic to reconnect the device to the network. Otherwise, the device will be shutdown.
ERRID_CFDDI_SELFT_ERR Indicates that an error occurred during the FDDI self-tests. User intervention is required to bring the device back online.
ERRID_CFDDI_PATH_ERR Indicates that an error occurred during the FDDI adapter's path tests. The FDDI device driver will initiate recovery logic in an attempt to recover from the error. The FDDI device will temporarily be unavailable during the recovery procedure. User intervention is not required to bring the device back online.
ERRID_CFDDI_PORT Indicates that a port on the FDDI device is in a stuck condition. User intervention is not required for this error. This error typically occurs when a cable is not correctly connected.
ERRID_CFDDI_BYPASS Indicates that the optical bypass switch is in a stuck condition. User intervention is not required for this error.
ERRID_CFDDI_CMD_FAIL Indicates that a command to the adapter has failed.

[ Previous | Next | Contents | Home | Search ]