 |
Index for Section 7 |
|
 |
Alphabetical listing for X |
|
 |
Bottom of page |
|
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 multicast 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.
ERRORS
The DEMNA errors are coded as follows:
xna%d: port self-test failed:<register list>
Adapter did not pass the power-up self-test during autoconfiguration
time. The port attachment fails.
xna%d: couldn't allocate...
The xna driver was unable to allocate memory for adapter data
structures. The port attachment fails.
xna%d: svatophys failed for ...
The xna driver was unable to map memory for adapter data structures.
The port attachment fails.
xna%d: port probe failed:<register list>
The xna driver was unable to bring the adapter into the initialized
state. The port attachment fails.
xna%d: port init failed:
The xna driver failed to prepare the adapter for run-time use.
xna%d: port reset failed<register list>
The xna driver was unable to bring the adapter into the initialized
state during a port reset.
xna%d: command failed, error code:<error code>
The adapter port command failed. The error code gives reason for
failure.
xna%d: addmulti failed, multicast list full
Too many multicast requests have been made.
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("\n");
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);
}
SEE ALSO
Files: arp(7), inet(7), intro(4), netstat(1)
 |
Index for Section 7 |
|
 |
Alphabetical listing for X |
|
 |
Top of page |
|