xna(7) Miscellaneous Information Manual xna(7)
NAME
xna - The DEMNA Ethernet interfaces
SYNOPSIS
config_driver xna
DESCRIPTION
The xna driver provides access to a 10-MB Ethernet network through the DEMNA adapter. The DEMNA is an Ethernet-to-XMI adapter.
The host's Internet address is specified at boot time with an SIOCSIFADDR ioctl. The xna driver employs the Address Resolution Protocol,
as described in arp(7), to map dynamically between Internet and Ethernet addresses on the local network.
The SIOCSPHYSADDR ioctl can be used to change the physical address of the adapter and SIOCRPHYSADDR can be used to read its physical
address. SIOCADDMULTI and SIOCDELMULTI can be used to add or delete multicast addresses. The xna driver supports a maximum of 12 multi-
cast addresses. The argument to the latter ioctls is a pointer to an ``ifreq'' structure found in <net/if.h>.
SIOCRDCTRS and SIOCRDZCTRS ioctls can be used to read or read and clear network counters. The argument to the latter two ioctls is a
pointer to a counter structure ``ctrreq'' found in <net/if.h>.
The ioctls SIOCENABLBACK and SIOCDISABLBACK can be used to enable and disable the interface loopback mode.
RESTRICTIONS
The PUP protocol family is not supported.
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 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,"xna0");
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("
");
close(s); }
To enable external loopback, use the SIOCENABLEBACK 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,"xna0");
if (ioctl(s,SIOCENABLEBACK,&data) < 0) {
perror("SIOCENABLEBACK:");
exit(1);
}
close(s); }
ERRORS
The DEMNA errors are coded as follows: Adapter did not pass the power-up self-test during autoconfiguration time. The port attachment
fails. The xna driver was unable to allocate memory for adapter data structures. The port attachment fails. The xna driver was unable to
map memory for adapter data structures. The port attachment fails. The xna driver was unable to bring the adapter into the initialized
state. The port attachment fails. The xna driver failed to prepare the adapter for run-time use. The xna driver was unable to bring the
adapter into the initialized state during a port reset. The adapter port command failed. The error code gives reason for failure. Too
many multicast requests have been made.
RELATED INFORMATION
Files: arp(7), inet(7), intro(4), netstat(1) delim off
xna(7)