faa(7)faa(7)NAMEfaa - DEFAA FDDI Network Interface
SYNOPSIS
controller faa0 at * vector faaintr
This is the entry in the configuration file.
DESCRIPTION
The faa interface is a high-speed Futurebus+ adapter to a 100 megabit
per second Fiber Distributed Data Interface (FDDI) timed token ring
network adapter. The faa interface allows the host system to be an
FDDI single attachment station.
The DEFAA uses DMA transfers for both transmitted and received data.
The driver initializes the DMA engine before placing the adapter on the
ring.
The DEFAA can operate in full duplex mode. To allow the faa interface
operate in full duplex mode, connect two DEFAA adapters back-to-back.
The full duplex mode is enabled or disabled by using the fddi_config
command.
The host's Internet address is specified at boot time with an SIOCSI‐
FADDR ioctl. The faa interface employs the address resolution protocol
described in arp(7) to map dynamically between Internet and physical
addresses on the FDDI ring.
The maximum frame size for the faa interface is 4500 bytes, which is
substantially larger that the 1500 bytes maximum packet size of the
Ethernet interfaces. The faa interface does not support the BSD trailer
encapsulation, which is specific to the VAX architecture.
The SIOCRPHYSADDR ioctl can be used to read the physical address of the
DEFAA adapter. The physical address of the DEFAA adapter can be changed
by use of the SIOCSPHYSADDR ioctl.
The SIOCADDMULTI and SIOCDELMULTI ioctls can be used to add or delete
multicast addresses. The DEFAA supports up to 62 multicast addresses.
The SIOCRDCTRS ioctl can be used to read the FDDI driver counters. The
DEFAA adapter status and characteristics can also be read through this
ioctl by providing one of the following flags: FDDI_STATUS, CTR_FDDI,
FDDIMIB_PATH, FDDIMIB_SMT, FDDIMIB_MAC, FDDIMIB_PORT, and FDDIMIB_ATTA.
The argument to this ioctl is a pointer to a counter or status struc‐
ture, ctrreq, found in <net/if.h>.
The SIOCENABLBACK and SIOCDISABLBACK ioctls can be used to enable and
disable the interface loopback mode, respectively. The driver enables
internal loopback only.
The SIOCIFRESET ioctl can be used to reset the adapter.
ERRORS
Diagnostic messages contain information provided by the faa driver and
the adapter. The following messages contain information about the
adapter's state, and are printed on the console, where n is a message
number:
faan: Reset
faan: Upgrade
faan: DMA Unavailable
faan: DMA Available
faan: Link Available
faan: Link Unavailable
faan: Halted
Once in the DMA Available state, the adapter goes to the Link Unavail‐
able state and finally to the Link Available state.
The following messages contain information about adapter events: The
DEFAA has received a directed beacon. There is a parity error on the
host bus. A link transmit underrun occurred. A link transmit failure
occurred. The DEFAA adapter has detected a parity error in the packet
memory. A PC Trace has been initiated. The DEFAA adapter received a
PC trace. The adapter's receive queue is full and packets are being
dropped. A ring beacon was initiated. The FDDI ring is being initial‐
ized. This occurs each time a machine comes on or goes off the ring. A
ring purge error has occurred.
The following are diagnostic error messages about driver events: The
driver could not start the thread that perform error recovery. This
error is not fatal. If an error occurs, the driver will not reinitial‐
ize the adapter. The DEFAA cannot transition to the DMA Available
state. The driver could not disable the internal loopback on the DEFAA
adapter. A fatal error occurred, and the driver cannot recover. The
driver is off line. The driver could not enable the internal loopback
on the DEFAA adapter. The DEFAA detected an error and signaled the
driver to flush the transmit queue. The DEFAA is being reinitialized.
The adapter will reset the adapter and force it to the DMA Available
state. The adapter self test failed. The driver accessed an illegal
location on the adapter.
EXAMPLES
To obtain the physical address of the adapter, use the SIOCRPHYSADDR
ioctl as in the following program example:
#include <stdio.h> /* standard I/O */ #include <errno.h>
/* error numbers */ #include <sys/socket.h> /* socket defini‐
tions */ #include <sys/ioctl.h> /* ioctls */ #include
<net/if.h> /* generic interface structures */
main() {
int s,i;
static struct ifdevea devea;
/* Get a socket */
s = socket(AF_INET,SOCK_DGRAM,0);
if (s < 0) {
perror("socket");
exit(1);
}
strcpy(devea.ifr_name,"faa0");
if (ioctl(s,SIOCRPHYSADDR,&devea) < 0) {
perror(&devea.ifr_name[0]);
exit(1);
}
printf("Address is ");
for (i = 0; i < 6; i++)
printf("%X ", devea.default_pa[i] & 0xff);
printf("\n");
close(s); }
To reset the adapter, use the SIOCIFRESET ioctl as in the following
program example:
#include <stdio.h> /* standard I/O */ #include <errno.h>
/* error numbers */ #include <sys/socket.h> /* socket defini‐
tions */ #include <sys/ioctl.h> /* ioctls */ #include
<net/if.h> /* generic interface structures */
main() {
int s;
struct ifreq data;
/* Get a socket */
s = socket(AF_INET,SOCK_DGRAM,0);
if (s < 0) {
perror("socket");
exit(1);
}
strcpy(data.ifr_name,"faa0");
if (ioctl(s,SIOCIFRESET,&data) < 0) {
perror("SIOCIFRESET:");
exit(1);
}
close(s); }
SEE ALSOnetstat(1), arp(7), inet(7), intro(7), fddi_config(8)faa(7)