Index Index for
Section 7
Index Alphabetical
listing for T
Bottom of page Bottom of
page

te(7)

NAME

te - TGEC Ethernet interface

SYNOPSIS

config_driver te

DESCRIPTION

The te interface provides access to a 10 Mb/s Ethernet network through the TGEC controller. The host's Internet address is specified at boot time with an SIOCSIFADDR ioctl. The te interface employs the address resolution protocol 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 TGEC. The SIOCRPHYSADDR ioctl can be used to read the physical address of the TGEC. The SIOCADDMULTI and SIOCDELMULTI ioctls can be used to add or delete multicast addresses. The TGEC recognizes a maximum of 12 multicast addresses. The SIOCRDCTRS and SIOCRDZCTRS ioctls can be used to read or ``read and clear'' the Ethernet driver counters. The argument to these two ioctls is a pointer to a counter structure, ctrreq, found in <net/if.h>. The SIOCENABLBACK and SIOCDISABLBACK ioctls can be used to enable and disable the interface loopback mode respectively.

ERRORS

The diagnostic error messages contain relevant information provided by the TGEC. [te%d: can't handle af%d] The interface was handed a message with addresses formatted in an unsuitable address family, and the packet was dropped. [te%d: cannot reset the TGEC chip] The TGEC hardware failed to reset itself properly. [te%d: buffer space not allocated or aligned properly The driver's attempt to allocate a buffer failed. [te%d: couldn't allcoate memory for buffer pointer. The driver's attempt to allocate a buffer failed. [te%d: SIOCADDMULTI fail, multicast list full Too many multicast requests have been made. [te%d: failed to get memory info] The shared memory block for the TGEC's local RAM buffer is missing from the CMOS configuration data.

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; struct ifdevea devea; /* Get a socket */ s = socket(AF_INET,SOCK_DGRAM,0); if (s < 0) { perror("socket"); exit(1); } strcpy(devea.ifr_name,"te0"); 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,"te0"); if (ioctl(s,SIOCENABLEBACK,&data) < 0) { perror("SIOCENABLEBACK:"); exit(1); } close(s); }

SEE ALSO

arp(7), inet(7), netintro(7)

Index Index for
Section 7
Index Alphabetical
listing for T
Top of page Top of
page