fza(7) Miscellaneous Information Manual fza(7)
NAME
fza - DEFZA FDDI Network Interface
SYNOPSIS
controller fza0 at *
DESCRIPTION
The fza interface is a high speed TURBOchannel bus to a 100 Mbit/second
Fiber Distributed Data Interface (FDDI) timed token ring network
adapter. The fza interface allows the host system to be an FDDI single
attachment station.
The host's Internet address is specified at boot time with an SIOCSI-
FADDR ioctl. The fza interface employs the address resolution protocol
described in arp(7) to map dynamically between Internet and FDDI ad-
dresses on the local network.
The Maximum Transmit Unit (MTU) size for fza interface is 4352 bytes,
which is substantially larger that the 1500 bytes maximum packet size
of the Ethernet interfaces. The fza interface does not support the BSD
trailer encapsulation.
The SIOCRPHYSADDR ioctl can be used to read the physical address of the
DEFZA adapter. The physical address of the DEFZA adapter cannot be
changed.
The SIOCADDMULTI and SIOCDELMULTI ioctls can be used to add or delete
multicast addresses. The DEFZA supports up to 64 multicast addresses.
The argument to the latter ioctls is a pointer to an ifreq structure
found in <net/if.h>.
The SIOCRDCTRS ioctl can be used to read the FDDI driver counters. The
DEFZA adapter status and characteristics can also be read through this
ioctl by providing an FDDI_STATUS flag. The argument to this ioctl is
a pointer to a counter or status structure, ctrreq, found in
<net/if.h>.
The SIOCENABLBACK and SIOCDISABLBACK ioctls can be used to enable and
disable the interface loopback mode, respectively.
The SIOCEEUPDATE ioctl can be used to update the adapter's firmware.
The SIOCIFRESET ioctl can be used to reset the adapter.
Some of the FDDI link characteristics can be changed by the SIOCIF-
SETCHAR ioctl. These characteristics include Request Token Rotation
Time (T_REQ), Valid Transmission Time, Link Error Monitor (LEM) Thresh-
old, Restricted Token Timeout, and Ring Purger Enable. The latter two
characteristics are supported by the firmware revision V1.2 and higher.
The T_REQ, Valid Transmission Time, and Restricted Token Timeout value
are based on 80 ns units. The setable FDDI attributes are shown in the
following table.
tab(@); l l l l l l. Attribute Name@Range@Default Value
Requested Token Rotation
[email protected] to
[email protected] Valid Trans-
mission
[email protected] to
[email protected] Restricted Token Timeout@0ms to
10000ms@1000ms LEM Threshold@5 to 8@8 Ring Purger Enable@True or
False@True
For a LEM Threshold attribute value of N, the threshold value is 10 of
power -N. The Ring Purger can be disabled by setting the Ring Purger
Enable field value to zero. The unchanged characteristics need to be
filled by a -1 or 0xffffffff value. The argument to this ioctl is a
pointer to an ifchar structure found in <net/if.h>. To set the FDDI
link characteristics, use the following form:
ioctl(s, SIOCIFSETCHAR, ifchar)
struct ifchar *ifchar;
The following example changes the Restricted Token Timeout value to
16ms and disables the Ring Purger mode:
int s ; struct ifchar ifchar;
if((s = socket( AF_INET, SOCK_DGRAM, 0 )) < 0 )
exit(1);
strcpy(&ifchar.ifc_name[0],"fza0");
ifchar.ifc_treq = 200000 ; /* 200000 * 80 ns = 16 ms */
ifchar.ifc_rtoken = -1; /* unchanged */
ifchar.ifc_tvx = -1; /* unchanged */
ifchar.ifc_lem = -1; /* unchanged */
ifchar.ifc_ring_purger = 0 ; /* disable the ring purger */
if(ioctl( s, SIOCIFSETCHAR, &ifchar) < 0 )
exit(1);
The FDDI link characteristics can be displayed by using the following
command:
netstat -I interface -s
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 definitions */ #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,"fza0");
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 definitions */ #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,"fza0");
if (ioctl(s,SIOCIFRESET,&data) < 0) {
perror("SIOCIFRESET:");
exit(1);
}
close(s); }
ERRORS
Diagnostic error messages contain information provided by the fza dri-
ver. For example: The DEFZA adapter did not pass the power-up selftest
during autoconfiguration. The DEFZA adapter cannot be initialized.
The DEFZA adapter went to the Halt state because of an adapter firmware
fault. The network link went down which means than the station is not
on the FDDI ring. A Ring Initialization unsolicited event has been re-
ceived from the fza%d interface. An invalid T_REQ value was discovered
by the adapter while user was trying to change the FDDI link character-
istics.
RELATED INFORMATION
netstat(1), arp(7), inet(7), fddi_config(8) delim off
fza(7)