xref: /original-bsd/share/man/man4/man4.tahoe/ace.4 (revision 9f374885)
Copyright (c) 1986 Regents of the University of California.
All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.

@(#)ace.4 6.2 (Berkeley) 06/30/87

ACE 4 "May 16, 1986"
C 5
NAME
ace - ACC 10 Mb/s Ethernet interface
SYNOPSIS
"device ace0 at vba? csr 0xffff0000 flags 0xfff80000 vector acecint acerint"
DESCRIPTION
The ace interface provides access to a 10 Mb/s Ethernet network through an ACC controller.

The hardware has 32 kilobytes of dual-ported memory on the VERSAbus. This memory is used for internal buffering by the board, and the interface code reads the buffer contents directly through the VERSAbus. The address of this memory is given in the flags field in the configuration file.

Each of the host's network addresses is specified at boot time with an SIOCSIFADDR ioctl. The ace interface employs the address resolution protocol described in arp (4P) to dynamically map between Internet and Ethernet addresses on the local network.

The interface normally tries to use a ``trailer'' encapsulation to minimize copying data on input and output. The use of trailers is negotiated with ARP. This negotiation may be disabled, on a per-interface basis, by setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.

The device implements an exponential backoff algorithm when notified of a collision on the cable. This algorithm utilizes a table of random numbers setup by the system at boot time. The delay is done in the controller.

DIAGNOSTICS
"ace%d: stray xmit interrupt, xnct %d" . An unexpected transmission complete interrupt was received; the interrupt is ignored. "ace%d: can't handle af%d" . The interface was handed a message with addresses formatted in an unsuitable address family; the packet was dropped.
SEE ALSO
intro(4N), inet(4F), arp(4P)
BUGS
The hardware is not capable of talking to itself. The software implements local sending and broadcast by sending such packets to the loop interface. This is a kludge.

The device doesn't autoconfigure its interrupt vector; it is set at 0x90 + eight times the unit number.