Index Index for
Section 7
Index Alphabetical
listing for X
Bottom of page 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 Index for
Section 7
Index Alphabetical
listing for X
Top of page Top of
page