tu(7)tu(7)NAMEtu - Tulip Ethernet and Fast Ethernet interface
SYNOPSIS
config_driver tuDESCRIPTION
The tu interface provides access to regular 10 Mb/s Ethernet as well as
to the newer 100 Mb/s Fast Ethernet (IEEE 802.3 100BaseTX) network. In
particular, the tu interface provides access to the following devices
employed on various AlphaStations, AlphaServers, AlphaSBCs, and EISA
and PCI Network Interface Cards (NICs): DECchip 21040 - 10 Mb/s Ether‐
net only DECchip 21041 - 10 Mb/s Ethernet only DECchip 21140 - 10 Mb/s
Ethernet or 100 Mb/s Fast Ethernet DECchip 21142 - 10 Mb/s Ethernet or
100 Mb/s Fast Ethernet DECchip 21143 - 10 Mb/s Ethernet or 100 Mb/s
Fast Ethernet
The adapter does not possess an automatic mode or media (autosensing)
capabilities. Therefore, for a given interface, you select the Ether‐
net port and speed (and when using the twisted-pair port, whether or
not it operates in half- or full-duplex mode) at the SRM console level
by setting the corresponding ew*0_mode environment variable to the
desired value. For example, setting ewa0_mode to twisted-pair causes
the interface to use the UTP port in half-duplex mode for tu0. Refer
to console level help and documentation for specific options. The fol‐
lowing are exceptions to this rule: For modules that use the DECchip
21040 and offer both the AUI (Thickwire) and BNC (Thinwire) ports, you
use an on-board shunt jumper to select between these two ports. This
jumper must be positioned to reflect the ewa*0_mode setting for proper
port selection. For example, if the ew*0_mode variable selects BNC and
the jumper is set for AUI, the driver uses AUI. If the port selected
is Twisted-Pair, the jumper position is irrelevant. For the DE425 EISA
module, you must use the EISA Configuration Utility (V1.9 or higher)
for Tru64 UNIX in addition to the ewa*0_mode setting (and the jumper
setting, if applicable) to make the port selection final. The Network
Mode ECU selection overrides the ew*0_mode selection. The default for
Network Mode is AutoSense; the driver does not support this mode. You
must specify the mode.
Alternatively, you can also select a port at operating system level by
using the lan_config command or the ifconfig command. The latter com‐
mand provides a subset of the lan_config command's capabilities. Both
commands override the selection done at SRM console or ECU level, and
enable you to quickly test different modes, media, and speeds without
needing to to reboot the system. See the "Examples" section for a list
of commands.
If you want to preserve your lan_config or ifconfig command information
without having to modify the ew*0_mode SRM console variables, edit the
/etc/inet.local file and include the appropriate commands. This infor‐
mation also remains the same through system version updates.
The DE500-AA and DE500-BA adapters offer the IEEE 802.3u autonegotia‐
tion feature. This is a hardware mechanism for determining the speed
and medium to use over a given connection. To enable this feature, set
the ew*0_mode variable to auto.
As a rule, when using autonegotiating switches or repeaters, you must
use autonegotiating adapters. It is difficult (and may not be possible)
to get a non-autonegotiating adapter to work with an autonegotiating
switch or repeater. Similarly, it is difficult to get an autonegotiat‐
ing adapter to work with a non-autonegotiating switch or repeater.
The host's Internet address is specified at boot time with an SIOCSI‐
FADDR ioctl (executed by the ifconfig command). The tu interface
employs the address resolution protocol described in arp(7) to map
dynamically between Internet and Ethernet addresses on the local net‐
work.
You can use the SIOCSPHYSADDR ioctl to change the physical address of
the interface; use the ifreq structure. You can also use the SIOCR‐
PHYSADDR ioctl to read the physical address of the interface. See the
EXAMPLES section.
You can use the SIOCADDMULTI and SIOCDELMULTI ioctls to add or delete
multicast addresses. The tu interface uses perfect address filtering if
14 or fewer multicast addresses are active. Beyond 14, the interface
switches over to using an imperfect hash filtering mechanism.
You can use the SIOCRDCTRS and SIOCRDZCTRS ioctls to read and to read
and clear, respectively, the Ethernet driver counters. The argument to
these two ioctls is a pointer to a counter structure, ctrreq, found in
<net/if.h>.
You can use the SIOCENABLBACK and SIOCDISABLBACK ioctls to enable and
disable the interface loopback mode, respectively.
ERRORS
The following diagnostic error messages contain relevant information
provided by the tu interface, and are printed on the console. Each
message begins with the adapter identification, including the number of
the adapter. The tu driver failed to add a multicast address: reached
hardware limit (possible only on DECchip 21140 based products). The tu
driver's attempt to allocate a DMA mapping resource failed. The tu
driver's attempt to map a transmit packet buffer failed. The tu
driver's attempt to allocate and/or load a DMA buffer failed. The tu
driver's computation of the Ethernet checksum did not match the stored
value (possible only on DECchip 21040 based products). The tu driver
read zeroes for the Ethernet ID. The tu driver failed to locate a
standard pattern in the Ethernet ROM (possible only on DECchip 21040
based products). The tu driver failed to acquire a buffer for setting
up address filters. The tu driver failed to map the buffer used for
setting up address filters. The tu driver failed to read the serial
ROM device (possible only on DECchip 21041 and DECchip 21140 based
products). The tu driver failed to initialize the interface. The tu
driver failed to register its interrupt handler. The tu driver failed
to add a multicast address: limit reached. The tu driver failed to
allocate a buffer for creating the receive ring. The tu driver failed
to allocate a buffer for creating the transmit ring. The tu driver
failed to allocate one or more mbufs for posting receives. The tu
driver was configured for a medium that the adapter does not support.
The tu device reported a PCI master abort error. The tu device
reported a PCI parity error: the interface is reset in this case. The
tu device reported a PCI target abort error. The tu driver timed out
while reading the Ethernet ID (possible only on DECchip 21040 based
products). The tu driver found the transmit ring to be inconsistent:
the interface is reset in this case.
EXAMPLES
To set the tu0 interface for 10 Mb/s, half-duplex operation over Thin‐
Wire, enter: # lan_config -i tu0 -s 10 -x 0 -a 0 -m bnc To set the tu0
interface for 10 MB/s, full-duplex operation over twisted-pair, enter:
# ifconfig tu0 speed 20 To set the tu0 interface for 10 Mb/s, full-
duplex operation over twisted-pair, enter: # lan_config -i tu0 -s 10 -x
1 -a 0 -m utp To set the tu0 interface for 100 Mb/s, half-duplex opera‐
tion over fiber optic cable, enter: # lan_config -i tu0 -s 100 -x 0 -a
0 -m fiber To set the tu0 interface for 100 Mb/s, half-duplex operation
over twisted-pair, enter: # ifconfig tu0 speed 100 To set the tu0
interface for 100 Mb/s, full-duplex operation over twisted-pair with
autonegotiation, enter: # lan_config -i tu0 -s 100 -x 1 -a 1 -m utp
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 defini‐
tions */ #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,"tu0");
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); }
SEE ALSO
Commands: ifconfig(8), lan_config(8)
Networkinformation: arp(7), inet(7), netintro(7)
SubsystemAttributes: sys_attrs_tu(5)tu(7)